HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode.com/isolate-0x247b2390-978089-v8.log
v8-version,9,2,230,21,-node.19,0
shared-library,/home/ips/.nvm/versions/node/v16.6.1/bin/node,0x400000,0x4648000,0
shared-library,/usr/lib/x86_64-linux-gnu/libc-2.31.so,0x7efc335b2000,0x7efc3374c000,0
shared-library,/usr/lib/x86_64-linux-gnu/libpthread-2.31.so,0x7efc337a4000,0x7efc337bb000,0
shared-library,/usr/lib/x86_64-linux-gnu/libgcc_s.so.1,0x7efc337c7000,0x7efc337dc000,0
shared-library,/usr/lib/x86_64-linux-gnu/libm-2.31.so,0x7efc337e2000,0x7efc33896000,0
shared-library,/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28,0x7efc33931000,0x7efc33ab8000,0
shared-library,/usr/lib/x86_64-linux-gnu/libdl-2.31.so,0x7efc33b13000,0x7efc33b16000,0
shared-library,/usr/lib/x86_64-linux-gnu/ld-2.31.so,0x7efc33b23000,0x7efc33b47000,0
shared-library,[vdso],0x7ffdfcb52000,0x7ffdfcb53000,0
profiler,begin,1000
new,CodeRange,0x7efc24000000,0
new,MemoryChunk,0x1436aaf00000,262144
new,MemoryChunk,0x3f431e380000,262144
new,MemoryChunk,0x2de4d8cc0000,262144
new,MemoryChunk,0xfc77b780000,262144
new,MemoryChunk,0x1994bd100000,262144
heap-capacity,1031072
heap-available,2198652736
new,MemoryChunk,0x30ec9db80000,262144
new,MemoryChunk,0x208703580000,262144
tick,0xebe7c0,1862,0,0x0,6
tick,0x1229ccc,1884,0,0x0,6
new,MemoryChunk,0x73467c80000,262144
new,MemoryChunk,0xaad66740000,262144
tick,0x1229b0e,2925,0,0x0,6
new,MemoryChunk,0x456580c0000,262144
new,MemoryChunk,0x3fe299d00000,262144
new,MemoryChunk,0x10185180000,262144
tick,0x7efc339f3a40,4000,0,0x0,1
new,MemoryChunk,0x7efc24000000,262144
tick,0x122e3f7,5097,0,0x0,6
new,MemoryChunk,0x1c0f19640000,262144
tick,0x7efc337aeff3,6197,0,0x0,6
code-creation,Builtin,2,6844,0x15573c0,1596,RecordWrite
code-creation,Builtin,2,6866,0x1557a00,416,EphemeronKeyBarrier
code-creation,Builtin,2,6872,0x1557bc0,60,AdaptorWithBuiltinExitFrame
code-creation,Builtin,2,6877,0x1557c00,332,CallFunction_ReceiverIsNullOrUndefined
code-creation,Builtin,2,6884,0x1557d60,384,CallFunction_ReceiverIsNotNullOrUndefined
code-creation,Builtin,2,6890,0x1557f00,412,CallFunction_ReceiverIsAny
code-creation,Builtin,2,6896,0x15580a0,104,CallBoundFunction
code-creation,Builtin,2,6901,0x1558120,120,Call_ReceiverIsNullOrUndefined
code-creation,Builtin,2,6907,0x15581a0,120,Call_ReceiverIsNotNullOrUndefined
code-creation,Builtin,2,6912,0x1558220,120,Call_ReceiverIsAny
code-creation,Builtin,2,6917,0x15582a0,1036,Call_ReceiverIsNullOrUndefined_Baseline_Compact
code-creation,Builtin,2,6924,0x15586c0,1032,Call_ReceiverIsNullOrUndefined_Baseline
code-creation,Builtin,2,6930,0x1558ae0,1124,Call_ReceiverIsNotNullOrUndefined_Baseline_Compact
code-creation,Builtin,2,6936,0x1558f60,1120,Call_ReceiverIsNotNullOrUndefined_Baseline
code-creation,Builtin,2,6942,0x15593e0,1124,Call_ReceiverIsAny_Baseline_Compact
code-creation,Builtin,2,6948,0x1559860,1120,Call_ReceiverIsAny_Baseline
code-creation,Builtin,2,6954,0x1559ce0,992,Call_ReceiverIsNullOrUndefined_WithFeedback
code-creation,Builtin,2,6959,0x155a0e0,992,Call_ReceiverIsNotNullOrUndefined_WithFeedback
code-creation,Builtin,2,6966,0x155a4e0,992,Call_ReceiverIsAny_WithFeedback
code-creation,Builtin,2,6971,0x155a8e0,736,CallProxy
code-creation,Builtin,2,6976,0x155abe0,120,CallVarargs
code-creation,Builtin,2,6981,0x155ac60,956,CallWithSpread
code-creation,Builtin,2,6991,0x155b020,2012,CallWithSpread_Baseline
code-creation,Builtin,2,6996,0x155b800,1992,CallWithSpread_WithFeedback
code-creation,Builtin,2,7002,0x155bfe0,876,CallWithArrayLike
code-creation,Builtin,2,7007,0x155c360,1872,CallWithArrayLike_WithFeedback
code-creation,Builtin,2,7013,0x155cac0,128,CallForwardVarargs
code-creation,Builtin,2,7018,0x155cb60,128,CallFunctionForwardVarargs
code-creation,Builtin,2,7024,0x155cc00,132,CallFunctionTemplate_CheckAccess
code-creation,Builtin,2,7030,0x155cca0,228,CallFunctionTemplate_CheckCompatibleReceiver
code-creation,Builtin,2,7037,0x155cda0,316,CallFunctionTemplate_CheckAccessAndCompatibleReceiver
code-creation,Builtin,2,7044,0x155cee0,28,ConstructFunction
code-creation,Builtin,2,7049,0x155cf00,104,ConstructBoundFunction
code-creation,Builtin,2,7054,0x155cf80,28,ConstructedNonConstructable
code-creation,Builtin,2,7059,0x155cfa0,100,Construct
code-creation,Builtin,2,7077,0x155d020,120,ConstructVarargs
code-creation,Builtin,2,7081,0x155d0a0,984,ConstructWithSpread
code-creation,Builtin,2,7087,0x155d480,1804,ConstructWithSpread_Baseline
code-creation,Builtin,2,7092,0x155dba0,1820,ConstructWithSpread_WithFeedback
code-creation,Builtin,2,7099,0x155e2c0,936,ConstructWithArrayLike
code-creation,Builtin,2,7104,0x155e680,1716,ConstructWithArrayLike_WithFeedback
code-creation,Builtin,2,7109,0x155ed40,164,ConstructForwardVarargs
code-creation,Builtin,2,7114,0x155ee00,164,ConstructFunctionForwardVarargs
code-creation,Builtin,2,7124,0x155eec0,848,Construct_Baseline
code-creation,Builtin,2,7150,0x155f220,860,Construct_WithFeedback
code-creation,Builtin,2,7155,0x155f580,448,JSConstructStubGeneric
code-creation,Builtin,2,7160,0x155f760,348,JSBuiltinsConstructStub
code-creation,Builtin,2,7166,0x155f8c0,676,FastNewObject
code-creation,Builtin,2,7170,0x155fb80,292,FastNewClosure
code-creation,Builtin,2,7175,0x155fcc0,720,ConstructProxy
code-creation,Builtin,2,7179,0x155ffa0,192,JSEntry
code-creation,Builtin,2,7184,0x1560080,192,JSConstructEntry
code-creation,Builtin,2,7188,0x1560160,192,JSRunMicrotasksEntry
code-creation,Builtin,2,7194,0x1560240,96,JSEntryTrampoline
code-creation,Builtin,2,7198,0x15602c0,96,JSConstructEntryTrampoline
code-creation,Builtin,2,7204,0x1560340,304,ResumeGeneratorTrampoline
code-creation,Builtin,2,7209,0x1560480,1112,StringCodePointAt
code-creation,Builtin,2,7214,0x15608e0,1560,StringFromCodePointAt
code-creation,Builtin,2,7220,0x1560f00,544,StringEqual
code-creation,Builtin,2,7225,0x1561140,276,StringGreaterThan
code-creation,Builtin,2,7230,0x1561260,276,StringGreaterThanOrEqual
code-creation,Builtin,2,7235,0x1561380,276,StringLessThan
code-creation,Builtin,2,7240,0x15614a0,276,StringLessThanOrEqual
code-creation,Builtin,2,7245,0x15615c0,2504,StringSubstring
code-creation,Builtin,2,7250,0x1561fa0,84,OrderedHashTableHealIndex
code-creation,Builtin,2,7255,0x1562000,1200,InterpreterEntryTrampoline
code-creation,Builtin,2,7261,0x15624c0,80,InterpreterPushArgsThenCall
code-creation,Builtin,2,7275,0x1562520,88,InterpreterPushUndefinedAndArgsThenCall
code-creation,Builtin,2,7285,0x1562580,88,InterpreterPushArgsThenCallWithFinalSpread
code-creation,Builtin,2,7294,0x15625e0,80,InterpreterPushArgsThenConstruct
code-creation,Builtin,2,7303,0x1562640,80,InterpreterPushArgsThenConstructArrayFunction
code-creation,Builtin,2,7312,0x15626a0,88,InterpreterPushArgsThenConstructWithFinalSpread
code-creation,Builtin,2,7322,0x1562700,84,InterpreterEnterAtBytecode
code-creation,Builtin,2,7330,0x1562760,220,InterpreterEnterAtNextBytecode
code-creation,Builtin,2,7338,0x1562840,52,InterpreterOnStackReplacement
code-creation,Builtin,2,7346,0x1562880,596,BaselineOutOfLinePrologue
code-creation,Builtin,2,7355,0x1562ae0,56,BaselineOnStackReplacement
code-creation,Builtin,2,7363,0x1562b20,80,BaselineLeaveFrame
code-creation,Builtin,2,7370,0x1562b80,192,BaselineEnterAtBytecode
code-creation,Builtin,2,7382,0x1562c60,200,BaselineEnterAtNextBytecode
code-creation,Builtin,2,7390,0x1562d40,184,InterpreterOnStackReplacement_ToBaseline
code-creation,Builtin,2,7399,0x1562e00,1060,CompileLazy
code-creation,Builtin,2,7407,0x1563240,92,CompileLazyDeoptimizedCode
code-creation,Builtin,2,7415,0x15632a0,252,InstantiateAsmJs
code-creation,Builtin,2,7423,0x15633a0,32,NotifyDeoptimized
code-creation,Builtin,2,7431,0x15633e0,788,DeoptimizationEntry_Eager
code-creation,Builtin,2,7439,0x1563700,792,DeoptimizationEntry_Soft
code-creation,Builtin,2,7447,0x1563a20,792,DeoptimizationEntry_Bailout
code-creation,Builtin,2,7456,0x1563d40,792,DeoptimizationEntry_Lazy
code-creation,Builtin,2,7464,0x1564060,52,ContinueToCodeStubBuiltin
code-creation,Builtin,2,7472,0x15640a0,60,ContinueToCodeStubBuiltinWithResult
code-creation,Builtin,2,7481,0x15640e0,56,ContinueToJavaScriptBuiltin
code-creation,Builtin,2,7489,0x1564120,64,ContinueToJavaScriptBuiltinWithResult
code-creation,Builtin,2,7499,0x1564180,288,CallApiCallback
code-creation,Builtin,2,7507,0x15642c0,272,CallApiGetter
code-creation,Builtin,2,7519,0x15643e0,12,HandleApiCall
code-creation,Builtin,2,7527,0x1564400,12,HandleApiCallAsFunction
code-creation,Builtin,2,7535,0x1564420,12,HandleApiCallAsConstructor
code-creation,Builtin,2,7543,0x1564440,64,AllocateInYoungGeneration
code-creation,Builtin,2,7551,0x15644a0,52,AllocateRegularInYoungGeneration
code-creation,Builtin,2,7560,0x15644e0,64,AllocateInOldGeneration
code-creation,Builtin,2,7569,0x1564540,52,AllocateRegularInOldGeneration
code-creation,Builtin,2,7578,0x1564580,444,CopyFastSmiOrObjectElements
code-creation,Builtin,2,7585,0x1564740,512,GrowFastDoubleElements
code-creation,Builtin,2,7593,0x1564960,416,GrowFastSmiOrObjectElements
code-creation,Builtin,2,7602,0x1564b20,412,DebugBreakTrampoline
code-creation,Builtin,2,7610,0x1564cc0,180,ToNumber
code-creation,Builtin,2,7618,0x1564d80,292,ToNumber_Baseline
code-creation,Builtin,2,7626,0x1564ec0,360,ToNumeric_Baseline
code-creation,Builtin,2,7635,0x1565040,104,PlainPrimitiveToNumber
code-creation,Builtin,2,7642,0x15650c0,212,ToNumberConvertBigInt
code-creation,Builtin,2,7650,0x15651a0,132,Typeof
code-creation,Builtin,2,7658,0x1565240,104,BigIntToI64
code-creation,Builtin,2,7665,0x15652c0,4,BigIntToI32Pair
code-creation,Builtin,2,7673,0x15652e0,232,I64ToBigInt
code-creation,Builtin,2,7680,0x15653e0,4,I32PairToBigInt
code-creation,Builtin,2,7688,0x1565400,100,ToBooleanLazyDeoptContinuation
code-creation,Builtin,2,7697,0x1565480,208,TailCallOptimizedCodeSlot
code-creation,Builtin,2,7705,0x1565560,3500,KeyedLoadIC_PolymorphicName
code-creation,Builtin,2,7713,0x1566320,16388,KeyedStoreIC_Megamorphic
code-creation,Builtin,2,7721,0x156a340,280,LoadGlobalIC_NoFeedback
code-creation,Builtin,2,7729,0x156a460,60,LoadIC_FunctionPrototype
code-creation,Builtin,2,7737,0x156a4a0,12,LoadIC_StringLength
code-creation,Builtin,2,7745,0x156a4c0,16,LoadIC_StringWrapperLength
code-creation,Builtin,2,7753,0x156a4e0,3056,LoadIC_NoFeedback
code-creation,Builtin,2,7761,0x156b0e0,32,StoreGlobalIC_Slow
code-creation,Builtin,2,7769,0x156b120,7488,StoreIC_NoFeedback
code-creation,Builtin,2,7777,0x156ce80,180,KeyedLoadIC_SloppyArguments
code-creation,Builtin,2,7784,0x156cf40,72,LoadIndexedInterceptorIC
code-creation,Builtin,2,7792,0x156cfa0,260,KeyedStoreIC_SloppyArguments_Standard
code-creation,Builtin,2,7801,0x156d0c0,260,KeyedStoreIC_SloppyArguments_GrowNoTransitionHandleCOW
code-creation,Builtin,2,7811,0x156d1e0,260,KeyedStoreIC_SloppyArguments_NoTransitionIgnoreOOB
code-creation,Builtin,2,7820,0x156d300,260,KeyedStoreIC_SloppyArguments_NoTransitionHandleCOW
code-creation,Builtin,2,7829,0x156d420,6716,StoreFastElementIC_Standard
code-creation,Builtin,2,7837,0x156ee60,9984,StoreFastElementIC_GrowNoTransitionHandleCOW
code-creation,Builtin,2,7847,0x1571580,6712,StoreFastElementIC_NoTransitionIgnoreOOB
code-creation,Builtin,2,7855,0x1572fc0,6532,StoreFastElementIC_NoTransitionHandleCOW
code-creation,Builtin,2,7864,0x1574960,8960,ElementsTransitionAndStore_Standard
code-creation,Builtin,2,7873,0x1576c80,20096,ElementsTransitionAndStore_GrowNoTransitionHandleCOW
code-creation,Builtin,2,7883,0x157bb20,8960,ElementsTransitionAndStore_NoTransitionIgnoreOOB
code-creation,Builtin,2,7892,0x157de40,11668,ElementsTransitionAndStore_NoTransitionHandleCOW
code-creation,Builtin,2,7901,0x1580be0,792,KeyedHasIC_PolymorphicName
code-creation,Builtin,2,7909,0x1580f00,164,KeyedHasIC_SloppyArguments
code-creation,Builtin,2,7917,0x1580fc0,72,HasIndexedInterceptorIC
code-creation,Builtin,2,7925,0x1581020,88,DynamicCheckMapsTrampoline
code-creation,Builtin,2,7933,0x1581080,260,DynamicCheckMaps
code-creation,Builtin,2,7941,0x15811a0,148,EnqueueMicrotask
code-creation,Builtin,2,7949,0x1581240,8,RunMicrotasksTrampoline
code-creation,Builtin,2,7957,0x1581260,3536,RunMicrotasks
code-creation,Builtin,2,7964,0x1582040,2140,HasProperty
code-creation,Builtin,2,7971,0x15828a0,1160,DeleteProperty
code-creation,Builtin,2,7979,0x1582d40,1976,CopyDataProperties
code-creation,Builtin,2,7987,0x1583500,9364,SetDataProperties
code-creation,Builtin,2,7996,0x15859a0,28,Abort
code-creation,Builtin,2,8003,0x15859c0,28,AbortCSAAssert
code-creation,Builtin,2,8014,0x15859e0,12,EmptyFunction
code-creation,Builtin,2,8021,0x1585a00,12,Illegal
code-creation,Builtin,2,8029,0x1585a20,12,StrictPoisonPillThrower
code-creation,Builtin,2,8037,0x1585a40,12,UnsupportedThrower
code-creation,Builtin,2,8045,0x1585a60,64,ReturnReceiver
code-creation,Builtin,2,8053,0x1585ac0,28,ArrayConstructor
code-creation,Builtin,2,8061,0x1585ae0,404,ArrayConstructorImpl
code-creation,Builtin,2,8069,0x1585c80,212,ArrayNoArgumentConstructor_PackedSmi_DontOverride
code-creation,Builtin,2,8078,0x1585d60,212,ArrayNoArgumentConstructor_HoleySmi_DontOverride
code-creation,Builtin,2,8089,0x1585e40,176,ArrayNoArgumentConstructor_PackedSmi_DisableAllocationSites
code-creation,Builtin,2,8099,0x1585f00,176,ArrayNoArgumentConstructor_HoleySmi_DisableAllocationSites
code-creation,Builtin,2,8108,0x1585fc0,176,ArrayNoArgumentConstructor_Packed_DisableAllocationSites
code-creation,Builtin,2,8118,0x1586080,176,ArrayNoArgumentConstructor_Holey_DisableAllocationSites
code-creation,Builtin,2,8131,0x1586140,188,ArrayNoArgumentConstructor_PackedDouble_DisableAllocationSites
code-creation,Builtin,2,8141,0x1586200,188,ArrayNoArgumentConstructor_HoleyDouble_DisableAllocationSites
code-creation,Builtin,2,8152,0x15862c0,512,ArraySingleArgumentConstructor_PackedSmi_DontOverride
code-creation,Builtin,2,8162,0x15864e0,476,ArraySingleArgumentConstructor_HoleySmi_DontOverride
code-creation,Builtin,2,8171,0x15866c0,436,ArraySingleArgumentConstructor_PackedSmi_DisableAllocationSites
code-creation,Builtin,2,8181,0x1586880,396,ArraySingleArgumentConstructor_HoleySmi_DisableAllocationSites
code-creation,Builtin,2,8191,0x1586a20,436,ArraySingleArgumentConstructor_Packed_DisableAllocationSites
code-creation,Builtin,2,8201,0x1586be0,396,ArraySingleArgumentConstructor_Holey_DisableAllocationSites
code-creation,Builtin,2,8210,0x1586d80,448,ArraySingleArgumentConstructor_PackedDouble_DisableAllocationSites
code-creation,Builtin,2,8221,0x1586f60,412,ArraySingleArgumentConstructor_HoleyDouble_DisableAllocationSites
code-creation,Builtin,2,8231,0x1587100,64,ArrayNArgumentsConstructor
code-creation,Builtin,2,8240,0x1587160,12,ArrayConcat
code-creation,Builtin,2,8248,0x1587180,12,ArrayPrototypeFill
code-creation,Builtin,2,8256,0x15871a0,932,ArrayIncludesSmiOrObject
code-creation,Builtin,2,8265,0x1587560,140,ArrayIncludesPackedDoubles
code-creation,Builtin,2,8273,0x1587600,208,ArrayIncludesHoleyDoubles
code-creation,Builtin,2,8282,0x15876e0,548,ArrayIncludes
code-creation,Builtin,2,8289,0x1587920,856,ArrayIndexOfSmiOrObject
code-creation,Builtin,2,8298,0x1587c80,116,ArrayIndexOfPackedDoubles
code-creation,Builtin,2,8306,0x1587d00,116,ArrayIndexOfHoleyDoubles
code-creation,Builtin,2,8314,0x1587d80,552,ArrayIndexOf
code-creation,Builtin,2,8318,0x1587fc0,12,ArrayPop
code-creation,Builtin,2,8323,0x1587fe0,612,ArrayPrototypePop
code-creation,Builtin,2,8335,0x1588260,12,ArrayPush
code-creation,Builtin,2,8342,0x1588280,2496,ArrayPrototypePush
code-creation,Builtin,2,8350,0x1588c60,12,ArrayShift
code-creation,Builtin,2,8358,0x1588c80,12,ArrayUnshift
code-creation,Builtin,2,8365,0x1588ca0,968,CloneFastJSArray
code-creation,Builtin,2,8372,0x1589080,2252,CloneFastJSArrayFillingHoles
code-creation,Builtin,2,8380,0x1589960,984,ExtractFastJSArray
code-creation,Builtin,2,8387,0x1589d40,256,ArrayPrototypeEntries
code-creation,Builtin,2,8396,0x1589e60,248,ArrayPrototypeKeys
code-creation,Builtin,2,8404,0x1589f60,256,ArrayPrototypeValues
code-creation,Builtin,2,8412,0x158a080,4008,ArrayIteratorPrototypeNext
code-creation,Builtin,2,8422,0x158b040,3632,FlattenIntoArray
code-creation,Builtin,2,8430,0x158be80,3636,FlatMapIntoArray
code-creation,Builtin,2,8437,0x158ccc0,372,ArrayPrototypeFlat
code-creation,Builtin,2,8444,0x158ce40,428,ArrayPrototypeFlatMap
code-creation,Builtin,2,8453,0x158d000,12,ArrayBufferConstructor
code-creation,Builtin,2,8460,0x158d020,12,ArrayBufferConstructor_DoNotInitialize
code-creation,Builtin,2,8469,0x158d040,12,ArrayBufferPrototypeSlice
code-creation,Builtin,2,8477,0x158d060,700,AsyncFunctionEnter
code-creation,Builtin,2,8489,0x158d320,132,AsyncFunctionReject
code-creation,Builtin,2,8497,0x158d3c0,128,AsyncFunctionResolve
code-creation,Builtin,2,8507,0x158d460,12,AsyncFunctionLazyDeoptContinuation
code-creation,Builtin,2,8515,0x158d480,2276,AsyncFunctionAwaitCaught
code-creation,Builtin,2,8524,0x158dd80,2276,AsyncFunctionAwaitUncaught
code-creation,Builtin,2,8533,0x158e680,172,AsyncFunctionAwaitRejectClosure
code-creation,Builtin,2,8542,0x158e740,164,AsyncFunctionAwaitResolveClosure
code-creation,Builtin,2,8550,0x158e800,12,BigIntConstructor
code-creation,Builtin,2,8559,0x158e820,12,BigIntAsUintN
code-creation,Builtin,2,8567,0x158e840,12,BigIntAsIntN
code-creation,Builtin,2,8573,0x158e860,12,BigIntPrototypeToLocaleString
code-creation,Builtin,2,8581,0x158e880,12,BigIntPrototypeToString
code-creation,Builtin,2,8589,0x158e8a0,12,BigIntPrototypeValueOf
code-creation,Builtin,2,8597,0x158e8c0,12,CallSitePrototypeGetColumnNumber
code-creation,Builtin,2,8605,0x158e8e0,12,CallSitePrototypeGetEnclosingColumnNumber
code-creation,Builtin,2,8614,0x158e900,12,CallSitePrototypeGetEnclosingLineNumber
code-creation,Builtin,2,8623,0x158e920,12,CallSitePrototypeGetEvalOrigin
code-creation,Builtin,2,8631,0x158e940,12,CallSitePrototypeGetFileName
code-creation,Builtin,2,8640,0x158e960,12,CallSitePrototypeGetFunction
code-creation,Builtin,2,8648,0x158e980,12,CallSitePrototypeGetFunctionName
code-creation,Builtin,2,8657,0x158e9a0,12,CallSitePrototypeGetLineNumber
code-creation,Builtin,2,8666,0x158e9c0,12,CallSitePrototypeGetMethodName
code-creation,Builtin,2,8674,0x158e9e0,12,CallSitePrototypeGetPosition
code-creation,Builtin,2,8683,0x158ea00,12,CallSitePrototypeGetPromiseIndex
code-creation,Builtin,2,8692,0x158ea20,12,CallSitePrototypeGetScriptNameOrSourceURL
code-creation,Builtin,2,8702,0x158ea40,12,CallSitePrototypeGetThis
code-creation,Builtin,2,8710,0x158ea60,12,CallSitePrototypeGetTypeName
code-creation,Builtin,2,8718,0x158ea80,12,CallSitePrototypeIsAsync
code-creation,Builtin,2,8726,0x158eaa0,12,CallSitePrototypeIsConstructor
code-creation,Builtin,2,8734,0x158eac0,12,CallSitePrototypeIsEval
code-creation,Builtin,2,8742,0x158eae0,12,CallSitePrototypeIsNative
code-creation,Builtin,2,8750,0x158eb00,12,CallSitePrototypeIsPromiseAll
code-creation,Builtin,2,8758,0x158eb20,12,CallSitePrototypeIsToplevel
code-creation,Builtin,2,8766,0x158eb40,12,CallSitePrototypeToString
code-creation,Builtin,2,8774,0x158eb60,12,ConsoleDebug
code-creation,Builtin,2,8781,0x158eb80,12,ConsoleError
code-creation,Builtin,2,8790,0x158eba0,12,ConsoleInfo
code-creation,Builtin,2,8799,0x158ebc0,12,ConsoleLog
code-creation,Builtin,2,8807,0x158ebe0,12,ConsoleWarn
code-creation,Builtin,2,8815,0x158ec00,12,ConsoleDir
code-creation,Builtin,2,8823,0x158ec20,12,ConsoleDirXml
code-creation,Builtin,2,8830,0x158ec40,12,ConsoleTable
code-creation,Builtin,2,8837,0x158ec60,12,ConsoleTrace
code-creation,Builtin,2,8846,0x158ec80,12,ConsoleGroup
code-creation,Builtin,2,8853,0x158eca0,12,ConsoleGroupCollapsed
code-creation,Builtin,2,8861,0x158ecc0,12,ConsoleGroupEnd
code-creation,Builtin,2,8869,0x158ece0,12,ConsoleClear
code-creation,Builtin,2,8877,0x158ed00,12,ConsoleCount
code-creation,Builtin,2,8885,0x158ed20,12,ConsoleCountReset
code-creation,Builtin,2,8893,0x158ed40,12,ConsoleAssert
code-creation,Builtin,2,8900,0x158ed60,12,ConsoleProfile
code-creation,Builtin,2,8907,0x158ed80,12,ConsoleProfileEnd
code-creation,Builtin,2,8916,0x158eda0,12,ConsoleTime
code-creation,Builtin,2,8923,0x158edc0,12,ConsoleTimeLog
code-creation,Builtin,2,8931,0x158ede0,12,ConsoleTimeEnd
code-creation,Builtin,2,8939,0x158ee00,12,ConsoleTimeStamp
code-creation,Builtin,2,8947,0x158ee20,12,ConsoleContext
code-creation,Builtin,2,8954,0x158ee40,12,DataViewConstructor
code-creation,Builtin,2,8961,0x158ee60,12,DateConstructor
code-creation,Builtin,2,8969,0x158ee80,220,DatePrototypeGetDate
code-creation,Builtin,2,8977,0x158ef60,220,DatePrototypeGetDay
code-creation,Builtin,2,8985,0x158f040,220,DatePrototypeGetFullYear
code-creation,Builtin,2,8993,0x158f120,220,DatePrototypeGetHours
code-creation,Builtin,2,9001,0x158f200,196,DatePrototypeGetMilliseconds
code-creation,Builtin,2,9013,0x158f2e0,220,DatePrototypeGetMinutes
code-creation,Builtin,2,9022,0x158f3c0,220,DatePrototypeGetMonth
code-creation,Builtin,2,9028,0x158f4a0,220,DatePrototypeGetSeconds
code-creation,Builtin,2,9036,0x158f580,124,DatePrototypeGetTime
code-creation,Builtin,2,9044,0x158f600,196,DatePrototypeGetTimezoneOffset
code-creation,Builtin,2,9053,0x158f6e0,196,DatePrototypeGetUTCDate
code-creation,Builtin,2,9061,0x158f7c0,196,DatePrototypeGetUTCDay
code-creation,Builtin,2,9070,0x158f8a0,196,DatePrototypeGetUTCFullYear
code-creation,Builtin,2,9078,0x158f980,196,DatePrototypeGetUTCHours
code-creation,Builtin,2,9086,0x158fa60,196,DatePrototypeGetUTCMilliseconds
code-creation,Builtin,2,9093,0x158fb40,196,DatePrototypeGetUTCMinutes
code-creation,Builtin,2,9102,0x158fc20,196,DatePrototypeGetUTCMonth
code-creation,Builtin,2,9109,0x158fd00,196,DatePrototypeGetUTCSeconds
code-creation,Builtin,2,9117,0x158fde0,124,DatePrototypeValueOf
code-creation,Builtin,2,9124,0x158fe60,352,DatePrototypeToPrimitive
code-creation,Builtin,2,9133,0x158ffe0,12,DatePrototypeGetYear
code-creation,Builtin,2,9141,0x1590000,12,DatePrototypeSetYear
code-creation,Builtin,2,9149,0x1590020,12,DateNow
code-creation,Builtin,2,9156,0x1590040,12,DateParse
code-creation,Builtin,2,9164,0x1590060,12,DatePrototypeSetDate
code-creation,Builtin,2,9172,0x1590080,12,DatePrototypeSetFullYear
code-creation,Builtin,2,9180,0x15900a0,12,DatePrototypeSetHours
code-creation,Builtin,2,9188,0x15900c0,12,DatePrototypeSetMilliseconds
code-creation,Builtin,2,9197,0x15900e0,12,DatePrototypeSetMinutes
code-creation,Builtin,2,9206,0x1590100,12,DatePrototypeSetMonth
code-creation,Builtin,2,9214,0x1590120,12,DatePrototypeSetSeconds
code-creation,Builtin,2,9221,0x1590140,12,DatePrototypeSetTime
code-creation,Builtin,2,9230,0x1590160,12,DatePrototypeSetUTCDate
code-creation,Builtin,2,9238,0x1590180,12,DatePrototypeSetUTCFullYear
code-creation,Builtin,2,9246,0x15901a0,12,DatePrototypeSetUTCHours
code-creation,Builtin,2,9254,0x15901c0,12,DatePrototypeSetUTCMilliseconds
code-creation,Builtin,2,9262,0x15901e0,12,DatePrototypeSetUTCMinutes
code-creation,Builtin,2,9273,0x1590200,12,DatePrototypeSetUTCMonth
code-creation,Builtin,2,9282,0x1590220,12,DatePrototypeSetUTCSeconds
code-creation,Builtin,2,9290,0x1590240,12,DatePrototypeToDateString
code-creation,Builtin,2,9298,0x1590260,12,DatePrototypeToISOString
code-creation,Builtin,2,9307,0x1590280,12,DatePrototypeToUTCString
code-creation,Builtin,2,9315,0x15902a0,12,DatePrototypeToString
code-creation,Builtin,2,9323,0x15902c0,12,DatePrototypeToTimeString
code-creation,Builtin,2,9332,0x15902e0,12,DatePrototypeToJson
code-creation,Builtin,2,9340,0x1590300,12,DateUTC
code-creation,Builtin,2,9347,0x1590320,12,ErrorConstructor
code-creation,Builtin,2,9355,0x1590340,12,ErrorCaptureStackTrace
code-creation,Builtin,2,9363,0x1590360,12,ErrorPrototypeToString
code-creation,Builtin,2,9371,0x1590380,12,FunctionConstructor
code-creation,Builtin,2,9387,0x15903a0,68,FunctionPrototypeApply
tick,0x7efc3363cff2,9402,0,0x0,6
tick,0x7efc336c02cf,9419,0,0x0,6
tick,0x7efc336c02cf,9423,0,0x0,6
code-creation,Builtin,2,9431,0x1590400,12,FunctionPrototypeBind
code-creation,Builtin,2,9438,0x1590420,32,FunctionPrototypeCall
code-creation,Builtin,2,9443,0x1590460,12,FunctionPrototypeToString
code-creation,Builtin,2,9449,0x1590480,192,CreateIterResultObject
code-creation,Builtin,2,9454,0x1590560,788,CreateGeneratorObject
code-creation,Builtin,2,9459,0x1590880,12,GeneratorFunctionConstructor
code-creation,Builtin,2,9464,0x15908a0,412,GeneratorPrototypeNext
code-creation,Builtin,2,9469,0x1590a40,420,GeneratorPrototypeReturn
code-creation,Builtin,2,9474,0x1590c00,424,GeneratorPrototypeThrow
code-creation,Builtin,2,9480,0x1590dc0,12,AsyncFunctionConstructor
code-creation,Builtin,2,9485,0x1590de0,416,SuspendGeneratorBaseline
code-creation,Builtin,2,9490,0x1590fa0,88,ResumeGeneratorBaseline
code-creation,Builtin,2,9495,0x1591000,36,GetIteratorWithFeedbackLazyDeoptContinuation
code-creation,Builtin,2,9501,0x1591040,12,GlobalDecodeURI
code-creation,Builtin,2,9511,0x1591060,12,GlobalDecodeURIComponent
code-creation,Builtin,2,9517,0x1591080,12,GlobalEncodeURI
code-creation,Builtin,2,9522,0x15910a0,12,GlobalEncodeURIComponent
code-creation,Builtin,2,9527,0x15910c0,12,GlobalEscape
code-creation,Builtin,2,9531,0x15910e0,12,GlobalUnescape
code-creation,Builtin,2,9536,0x1591100,12,GlobalEval
code-creation,Builtin,2,9541,0x1591120,132,GlobalIsFinite
code-creation,Builtin,2,9546,0x15911c0,124,GlobalIsNaN
code-creation,Builtin,2,9550,0x1591240,12,JsonParse
code-creation,Builtin,2,9555,0x1591260,12,JsonStringify
code-creation,Builtin,2,9560,0x1591280,3868,LoadIC
code-creation,Builtin,2,9564,0x15921a0,3552,LoadIC_Megamorphic
code-creation,Builtin,2,9569,0x1592fa0,3776,LoadIC_Noninlined
code-creation,Builtin,2,9574,0x1593e80,44,LoadICTrampoline
code-creation,Builtin,2,9579,0x1593ec0,24,LoadICBaseline
code-creation,Builtin,2,9584,0x1593ee0,44,LoadICTrampoline_Megamorphic
code-creation,Builtin,2,9589,0x1593f20,6636,LoadSuperIC
code-creation,Builtin,2,9594,0x1595920,24,LoadSuperICBaseline
code-creation,Builtin,2,9599,0x1595940,7424,KeyedLoadIC
code-creation,Builtin,2,9603,0x1597660,12320,KeyedLoadIC_Megamorphic
code-creation,Builtin,2,9608,0x159a6a0,44,KeyedLoadICTrampoline
code-creation,Builtin,2,9614,0x159a6e0,24,KeyedLoadICBaseline
code-creation,Builtin,2,9619,0x159a700,44,KeyedLoadICTrampoline_Megamorphic
code-creation,Builtin,2,9625,0x159a740,5320,StoreGlobalIC
code-creation,Builtin,2,9630,0x159bc20,44,StoreGlobalICTrampoline
code-creation,Builtin,2,9635,0x159bc60,24,StoreGlobalICBaseline
code-creation,Builtin,2,9640,0x159bc80,5552,StoreIC
code-creation,Builtin,2,9644,0x159d240,44,StoreICTrampoline
code-creation,Builtin,2,9649,0x159d280,24,StoreICBaseline
code-creation,Builtin,2,9655,0x159d2a0,5984,KeyedStoreIC
code-creation,Builtin,2,9659,0x159ea20,44,KeyedStoreICTrampoline
code-creation,Builtin,2,9665,0x159ea60,24,KeyedStoreICBaseline
code-creation,Builtin,2,9670,0x159ea80,408,StoreInArrayLiteralIC
code-creation,Builtin,2,9675,0x159ec20,24,StoreInArrayLiteralICBaseline
code-creation,Builtin,2,9681,0x159ec40,140,LookupContextBaseline
code-creation,Builtin,2,9686,0x159ece0,140,LookupContextInsideTypeofBaseline
code-creation,Builtin,2,9692,0x159ed80,2580,LoadGlobalIC
code-creation,Builtin,2,9696,0x159f7a0,2556,LoadGlobalICInsideTypeof
code-creation,Builtin,2,9701,0x15a01a0,44,LoadGlobalICTrampoline
code-creation,Builtin,2,9707,0x15a01e0,24,LoadGlobalICBaseline
code-creation,Builtin,2,9712,0x15a0200,44,LoadGlobalICInsideTypeofTrampoline
code-creation,Builtin,2,9718,0x15a0240,24,LoadGlobalICInsideTypeofBaseline
code-creation,Builtin,2,9724,0x15a0260,140,LookupGlobalICBaseline
code-creation,Builtin,2,9729,0x15a0300,140,LookupGlobalICInsideTypeofBaseline
code-creation,Builtin,2,9735,0x15a03a0,2104,CloneObjectIC
code-creation,Builtin,2,9740,0x15a0be0,24,CloneObjectICBaseline
code-creation,Builtin,2,9746,0x15a0c00,1984,CloneObjectIC_Slow
code-creation,Builtin,2,9751,0x15a13e0,2752,KeyedHasIC
code-creation,Builtin,2,9755,0x15a1ec0,24,KeyedHasICBaseline
code-creation,Builtin,2,9760,0x15a1ee0,2128,KeyedHasIC_Megamorphic
code-creation,Builtin,2,9764,0x15a2740,1440,IterableToList
code-creation,Builtin,2,9769,0x15a2d00,1240,IterableToFixedArray
code-creation,Builtin,2,9775,0x15a31e0,748,IterableToListWithSymbolLookup
code-creation,Builtin,2,9781,0x15a34e0,56,IterableToFixedArrayWithSymbolLookupSlow
code-creation,Builtin,2,9787,0x15a3520,124,IterableToListMayPreserveHoles
code-creation,Builtin,2,9792,0x15a35a0,992,IterableToFixedArrayForWasm
code-creation,Builtin,2,9798,0x15a39a0,1628,StringListFromIterable
code-creation,Builtin,2,9803,0x15a4000,1220,FindOrderedHashMapEntry
code-creation,Builtin,2,9808,0x15a44e0,4164,MapConstructor
code-creation,Builtin,2,9813,0x15a5540,2012,MapPrototypeSet
code-creation,Builtin,2,9817,0x15a5d20,1524,MapPrototypeDelete
code-creation,Builtin,2,9823,0x15a6320,204,MapPrototypeGet
code-creation,Builtin,2,9828,0x15a6400,164,MapPrototypeHas
code-creation,Builtin,2,9833,0x15a64c0,12,MapPrototypeClear
code-creation,Builtin,2,9837,0x15a64e0,280,MapPrototypeEntries
code-creation,Builtin,2,9857,0x15a6600,140,MapPrototypeGetSize
code-creation,Builtin,2,9862,0x15a66a0,492,MapPrototypeForEach
code-creation,Builtin,2,9868,0x15a68a0,280,MapPrototypeKeys
code-creation,Builtin,2,9873,0x15a69c0,280,MapPrototypeValues
code-creation,Builtin,2,9878,0x15a6ae0,908,MapIteratorPrototypeNext
code-creation,Builtin,2,9883,0x15a6e80,1224,MapIteratorToList
code-creation,Builtin,2,9888,0x15a7360,12,NumberPrototypeToExponential
code-creation,Builtin,2,9894,0x15a7380,12,NumberPrototypeToFixed
code-creation,Builtin,2,9900,0x15a73a0,12,NumberPrototypeToLocaleString
code-creation,Builtin,2,9905,0x15a73c0,12,NumberPrototypeToPrecision
code-creation,Builtin,2,9911,0x15a73e0,328,SameValue
code-creation,Builtin,2,9916,0x15a7540,204,SameValueNumbersOnly
code-creation,Builtin,2,9921,0x15a7620,792,Add_Baseline
code-creation,Builtin,2,9926,0x15a7940,828,Subtract_Baseline
code-creation,Builtin,2,9931,0x15a7c80,808,Multiply_Baseline
code-creation,Builtin,2,9936,0x15a7fc0,828,Divide_Baseline
code-creation,Builtin,2,9941,0x15a8300,764,Modulus_Baseline
code-creation,Builtin,2,9946,0x15a8600,76,Exponentiate_Baseline
code-creation,Builtin,2,9951,0x15a8660,708,BitwiseAnd_Baseline
code-creation,Builtin,2,9955,0x15a8940,700,BitwiseOr_Baseline
code-creation,Builtin,2,9961,0x15a8c00,708,BitwiseXor_Baseline
code-creation,Builtin,2,9967,0x15a8ee0,720,ShiftLeft_Baseline
code-creation,Builtin,2,9971,0x15a91c0,720,ShiftRight_Baseline
code-creation,Builtin,2,9976,0x15a94a0,836,ShiftRightLogical_Baseline
code-creation,Builtin,2,9982,0x15a9800,720,Add_WithFeedback
code-creation,Builtin,2,9987,0x15a9ae0,780,Subtract_WithFeedback
code-creation,Builtin,2,9992,0x15a9e00,772,Multiply_WithFeedback
code-creation,Builtin,2,9997,0x15aa120,804,Divide_WithFeedback
code-creation,Builtin,2,10002,0x15aa460,724,Modulus_WithFeedback
code-creation,Builtin,2,10007,0x15aa740,52,Exponentiate_WithFeedback
code-creation,Builtin,2,10013,0x15aa780,684,BitwiseAnd_WithFeedback
code-creation,Builtin,2,10018,0x15aaa40,676,BitwiseOr_WithFeedback
code-creation,Builtin,2,10024,0x15aad00,684,BitwiseXor_WithFeedback
code-creation,Builtin,2,10029,0x15aafc0,692,ShiftLeft_WithFeedback
code-creation,Builtin,2,10034,0x15ab280,692,ShiftRight_WithFeedback
code-creation,Builtin,2,10039,0x15ab540,804,ShiftRightLogical_WithFeedback
code-creation,Builtin,2,10045,0x15ab880,1696,Equal_Baseline
code-creation,Builtin,2,10050,0x15abf40,908,StrictEqual_Baseline
code-creation,Builtin,2,10056,0x15ac2e0,1264,LessThan_Baseline
code-creation,Builtin,2,10061,0x15ac7e0,1264,GreaterThan_Baseline
code-creation,Builtin,2,10072,0x15acce0,1264,LessThanOrEqual_Baseline
code-creation,Builtin,2,10077,0x15ad1e0,1264,GreaterThanOrEqual_Baseline
code-creation,Builtin,2,10084,0x15ad6e0,1620,Equal_WithFeedback
code-creation,Builtin,2,10088,0x15add40,940,StrictEqual_WithFeedback
code-creation,Builtin,2,10094,0x15ae100,1240,LessThan_WithFeedback
code-creation,Builtin,2,10099,0x15ae5e0,1240,GreaterThan_WithFeedback
code-creation,Builtin,2,10104,0x15aeac0,1240,LessThanOrEqual_WithFeedback
code-creation,Builtin,2,10110,0x15aefa0,1240,GreaterThanOrEqual_WithFeedback
code-creation,Builtin,2,10115,0x15af480,332,BitwiseNot_Baseline
code-creation,Builtin,2,10120,0x15af5e0,460,Decrement_Baseline
code-creation,Builtin,2,10125,0x15af7c0,464,Increment_Baseline
code-creation,Builtin,2,10130,0x15af9a0,488,Negate_Baseline
code-creation,Builtin,2,10135,0x15afba0,316,BitwiseNot_WithFeedback
code-creation,Builtin,2,10140,0x15afce0,440,Decrement_WithFeedback
code-creation,Builtin,2,10145,0x15afea0,444,Increment_WithFeedback
code-creation,Builtin,2,10150,0x15b0060,472,Negate_WithFeedback
code-creation,Builtin,2,10155,0x15b0240,252,ObjectAssign
code-creation,Builtin,2,10160,0x15b0340,860,ObjectCreate
code-creation,Builtin,2,10164,0x15b06a0,12,ObjectDefineGetter
code-creation,Builtin,2,10169,0x15b06c0,12,ObjectDefineProperties
code-creation,Builtin,2,10174,0x15b06e0,12,ObjectDefineProperty
code-creation,Builtin,2,10179,0x15b0700,12,ObjectDefineSetter
code-creation,Builtin,2,10184,0x15b0720,1528,ObjectEntries
code-creation,Builtin,2,10192,0x15b0d20,12,ObjectFreeze
code-creation,Builtin,2,10197,0x15b0d40,5680,ObjectGetOwnPropertyDescriptor
code-creation,Builtin,2,10203,0x15b2380,12,ObjectGetOwnPropertyDescriptors
code-creation,Builtin,2,10209,0x15b23a0,596,ObjectGetOwnPropertyNames
code-creation,Builtin,2,10214,0x15b2600,12,ObjectGetOwnPropertySymbols
code-creation,Builtin,2,10220,0x15b2620,388,ObjectIs
code-creation,Builtin,2,10225,0x15b27c0,12,ObjectIsFrozen
code-creation,Builtin,2,10230,0x15b27e0,12,ObjectIsSealed
code-creation,Builtin,2,10234,0x15b2800,532,ObjectKeys
code-creation,Builtin,2,10239,0x15b2a20,12,ObjectLookupGetter
code-creation,Builtin,2,10243,0x15b2a40,12,ObjectLookupSetter
code-creation,Builtin,2,10248,0x15b2a60,1792,ObjectPrototypeHasOwnProperty
code-creation,Builtin,2,10254,0x15b3180,216,ObjectPrototypeIsPrototypeOf
code-creation,Builtin,2,10259,0x15b3260,12,ObjectPrototypePropertyIsEnumerable
code-creation,Builtin,2,10265,0x15b3280,12,ObjectPrototypeGetProto
code-creation,Builtin,2,10271,0x15b32a0,12,ObjectPrototypeSetProto
code-creation,Builtin,2,10276,0x15b32c0,12,ObjectSeal
code-creation,Builtin,2,10280,0x15b32e0,1104,ObjectToString
code-creation,Builtin,2,10286,0x15b3740,1292,ObjectValues
code-creation,Builtin,2,10290,0x15b3c60,280,OrdinaryHasInstance
code-creation,Builtin,2,10295,0x15b3d80,344,InstanceOf
code-creation,Builtin,2,10300,0x15b3ee0,644,InstanceOf_WithFeedback
code-creation,Builtin,2,10305,0x15b4180,664,InstanceOf_Baseline
code-creation,Builtin,2,10311,0x15b4420,260,ForInEnumerate
code-creation,Builtin,2,10316,0x15b4540,148,ForInPrepare
code-creation,Builtin,2,10320,0x15b45e0,2084,ForInFilter
code-creation,Builtin,2,10325,0x15b4e20,52,ReflectApply
code-creation,Builtin,2,10330,0x15b4e60,60,ReflectConstruct
code-creation,Builtin,2,10334,0x15b4ea0,12,ReflectDefineProperty
code-creation,Builtin,2,10340,0x15b4ec0,12,ReflectGetOwnPropertyDescriptor
code-creation,Builtin,2,10345,0x15b4ee0,12,ReflectOwnKeys
code-creation,Builtin,2,10351,0x15b4f00,12,ReflectSet
code-creation,Builtin,2,10355,0x15b4f20,12,RegExpCapture1Getter
code-creation,Builtin,2,10361,0x15b4f40,12,RegExpCapture2Getter
code-creation,Builtin,2,10366,0x15b4f60,12,RegExpCapture3Getter
code-creation,Builtin,2,10371,0x15b4f80,12,RegExpCapture4Getter
code-creation,Builtin,2,10377,0x15b4fa0,12,RegExpCapture5Getter
code-creation,Builtin,2,10382,0x15b4fc0,12,RegExpCapture6Getter
code-creation,Builtin,2,10387,0x15b4fe0,12,RegExpCapture7Getter
code-creation,Builtin,2,10392,0x15b5000,12,RegExpCapture8Getter
code-creation,Builtin,2,10397,0x15b5020,12,RegExpCapture9Getter
code-creation,Builtin,2,10402,0x15b5040,2208,RegExpConstructor
code-creation,Builtin,2,10407,0x15b5900,12,RegExpInputGetter
code-creation,Builtin,2,10411,0x15b5920,12,RegExpInputSetter
code-creation,Builtin,2,10416,0x15b5940,12,RegExpLastMatchGetter
code-creation,Builtin,2,10421,0x15b5960,12,RegExpLastParenGetter
code-creation,Builtin,2,10426,0x15b5980,12,RegExpLeftContextGetter
code-creation,Builtin,2,10431,0x15b59a0,908,RegExpPrototypeCompile
code-creation,Builtin,2,10436,0x15b5d40,12,RegExpPrototypeToString
code-creation,Builtin,2,10441,0x15b5d60,12,RegExpRightContextGetter
code-creation,Builtin,2,10445,0x15b5d80,288,RegExpExecAtom
code-creation,Builtin,2,10450,0x15b5ec0,1056,RegExpExecInternal
code-creation,Builtin,2,10454,0x15b6300,8,RegExpInterpreterTrampoline
code-creation,Builtin,2,10467,0x15b6320,8,RegExpExperimentalTrampoline
code-creation,Builtin,2,10473,0x15b6340,12,ResizableArrayBufferPrototypeResize
code-creation,Builtin,2,10482,0x15b6360,12,GrowableSharedArrayBufferPrototypeGrow
code-creation,Builtin,2,10492,0x15b6380,12,GrowableSharedArrayBufferPrototypeGetByteLength
code-creation,Builtin,2,10501,0x15b63a0,2696,SetConstructor
code-creation,Builtin,2,10508,0x15b6e40,1276,SetPrototypeHas
code-creation,Builtin,2,10516,0x15b7340,1728,SetPrototypeAdd
code-creation,Builtin,2,10525,0x15b7a20,1476,SetPrototypeDelete
code-creation,Builtin,2,10532,0x15b8000,12,SetPrototypeClear
code-creation,Builtin,2,10541,0x15b8020,284,SetPrototypeEntries
code-creation,Builtin,2,10548,0x15b8140,144,SetPrototypeGetSize
code-creation,Builtin,2,10559,0x15b81e0,444,SetPrototypeForEach
code-creation,Builtin,2,10567,0x15b83a0,284,SetPrototypeValues
code-creation,Builtin,2,10575,0x15b84c0,844,SetIteratorPrototypeNext
code-creation,Builtin,2,10583,0x15b8820,1144,SetOrSetIteratorToList
code-creation,Builtin,2,10591,0x15b8ca0,12,SharedArrayBufferPrototypeSlice
code-creation,Builtin,2,10599,0x15b8cc0,1272,AtomicsLoad
code-creation,Builtin,2,10607,0x15b91c0,1008,AtomicsStore
code-creation,Builtin,2,10614,0x15b95c0,1696,AtomicsExchange
code-creation,Builtin,2,10621,0x15b9c80,2088,AtomicsCompareExchange
code-creation,Builtin,2,10630,0x15ba4c0,1800,AtomicsAdd
code-creation,Builtin,2,10637,0x15babe0,1800,AtomicsSub
code-creation,Builtin,2,10645,0x15bb300,1800,AtomicsAnd
code-creation,Builtin,2,10659,0x15bba20,1800,AtomicsOr
code-creation,Builtin,2,10664,0x15bc140,1800,AtomicsXor
code-creation,Builtin,2,10669,0x15bc860,12,AtomicsNotify
code-creation,Builtin,2,10674,0x15bc880,12,AtomicsIsLockFree
code-creation,Builtin,2,10679,0x15bc8a0,12,AtomicsWait
code-creation,Builtin,2,10686,0x15bc8c0,12,AtomicsWaitAsync
code-creation,Builtin,2,10694,0x15bc8e0,12,StringFromCodePoint
code-creation,Builtin,2,10702,0x15bc900,1444,StringFromCharCode
code-creation,Builtin,2,10710,0x15bcec0,12,StringPrototypeLastIndexOf
code-creation,Builtin,2,10718,0x15bcee0,4360,StringPrototypeMatchAll
code-creation,Builtin,2,10726,0x15be000,12,StringPrototypeLocaleCompare
code-creation,Builtin,2,10734,0x15be020,1228,StringPrototypeReplace
code-creation,Builtin,2,10742,0x15be500,2912,StringPrototypeSplit
code-creation,Builtin,2,10754,0x15bf080,12,StringRaw
code-creation,Builtin,2,10761,0x15bf0a0,12,SymbolConstructor
code-creation,Builtin,2,10769,0x15bf0c0,12,SymbolFor
code-creation,Builtin,2,10777,0x15bf0e0,12,SymbolKeyFor
code-creation,Builtin,2,10784,0x15bf100,88,TypedArrayBaseConstructor
code-creation,Builtin,2,10792,0x15bf160,256,TypedArrayConstructor
code-creation,Builtin,2,10801,0x15bf280,12,TypedArrayPrototypeBuffer
code-creation,Builtin,2,10809,0x15bf2a0,876,TypedArrayPrototypeByteLength
code-creation,Builtin,2,10817,0x15bf620,292,TypedArrayPrototypeByteOffset
code-creation,Builtin,2,10827,0x15bf760,724,TypedArrayPrototypeLength
code-creation,Builtin,2,10835,0x15bfa40,12,TypedArrayPrototypeCopyWithin
code-creation,Builtin,2,10843,0x15bfa60,12,TypedArrayPrototypeFill
code-creation,Builtin,2,10851,0x15bfa80,12,TypedArrayPrototypeIncludes
code-creation,Builtin,2,10859,0x15bfaa0,12,TypedArrayPrototypeIndexOf
code-creation,Builtin,2,10869,0x15bfac0,12,TypedArrayPrototypeLastIndexOf
code-creation,Builtin,2,10877,0x15bfae0,12,TypedArrayPrototypeReverse
code-creation,Builtin,2,10885,0x15bfb00,316,TypedArrayPrototypeToStringTag
code-creation,Builtin,2,10893,0x15bfc40,10652,TypedArrayPrototypeMap
code-creation,Builtin,2,10900,0x15c25e0,796,GenericJSToWasmWrapper
code-creation,Builtin,2,10909,0x15c2900,148,WasmCompileLazy
code-creation,Builtin,2,10917,0x15c29a0,168,WasmDebugBreak
code-creation,Builtin,2,10924,0x15c2a60,16,WasmOnStackReplace
code-creation,Builtin,2,10932,0x15c2a80,136,WasmFloat32ToNumber
code-creation,Builtin,2,10940,0x15c2b20,148,WasmFloat64ToNumber
code-creation,Builtin,2,10947,0x15c2bc0,4,WasmI32AtomicWait32
code-creation,Builtin,2,10955,0x15c2be0,4,WasmI64AtomicWait32
code-creation,Builtin,2,10963,0x15c2c00,24,JSToWasmLazyDeoptContinuation
code-creation,Builtin,2,10972,0x15c2c20,4328,WeakMapConstructor
code-creation,Builtin,2,10979,0x15c3d20,196,WeakMapLookupHashIndex
code-creation,Builtin,2,10987,0x15c3e00,220,WeakMapGet
code-creation,Builtin,2,10995,0x15c3ee0,176,WeakMapPrototypeHas
code-creation,Builtin,2,11003,0x15c3fa0,204,WeakMapPrototypeSet
code-creation,Builtin,2,11011,0x15c4080,144,WeakMapPrototypeDelete
code-creation,Builtin,2,11019,0x15c4120,2888,WeakSetConstructor
code-creation,Builtin,2,11027,0x15c4c80,176,WeakSetPrototypeHas
code-creation,Builtin,2,11034,0x15c4d40,204,WeakSetPrototypeAdd
code-creation,Builtin,2,11042,0x15c4e20,144,WeakSetPrototypeDelete
code-creation,Builtin,2,11050,0x15c4ec0,372,WeakCollectionDelete
code-creation,Builtin,2,11062,0x15c5040,816,WeakCollectionSet
code-creation,Builtin,2,11070,0x15c5380,312,AsyncGeneratorResolve
code-creation,Builtin,2,11078,0x15c54c0,120,AsyncGeneratorReject
code-creation,Builtin,2,11087,0x15c5540,2232,AsyncGeneratorYield
code-creation,Builtin,2,11094,0x15c5e00,2304,AsyncGeneratorReturn
code-creation,Builtin,2,11102,0x15c6720,292,AsyncGeneratorResumeNext
code-creation,Builtin,2,11110,0x15c6860,12,AsyncGeneratorFunctionConstructor
code-creation,Builtin,2,11120,0x15c6880,1052,AsyncGeneratorPrototypeNext
tick,0x7efc336c02cf,11142,0,0x0,6
code-creation,Builtin,2,11155,0x15c6ca0,1056,AsyncGeneratorPrototypeReturn
code-creation,Builtin,2,11162,0x15c70e0,1056,AsyncGeneratorPrototypeThrow
code-creation,Builtin,2,11168,0x15c7520,2252,AsyncGeneratorAwaitCaught
code-creation,Builtin,2,11173,0x15c7e00,2252,AsyncGeneratorAwaitUncaught
code-creation,Builtin,2,11178,0x15c86e0,116,AsyncGeneratorAwaitResolveClosure
code-creation,Builtin,2,11184,0x15c8760,128,AsyncGeneratorAwaitRejectClosure
code-creation,Builtin,2,11189,0x15c8800,116,AsyncGeneratorYieldResolveClosure
code-creation,Builtin,2,11195,0x15c8880,116,AsyncGeneratorReturnClosedResolveClosure
code-creation,Builtin,2,11202,0x15c8900,112,AsyncGeneratorReturnClosedRejectClosure
code-creation,Builtin,2,11207,0x15c8980,128,AsyncGeneratorReturnResolveClosure
code-creation,Builtin,2,11213,0x15c8a20,1612,AsyncFromSyncIteratorPrototypeNext
code-creation,Builtin,2,11219,0x15c9080,1720,AsyncFromSyncIteratorPrototypeThrow
code-creation,Builtin,2,11225,0x15c9740,1736,AsyncFromSyncIteratorPrototypeReturn
code-creation,Builtin,2,11231,0x15c9e20,100,AsyncIteratorValueUnwrap
code-creation,Builtin,2,11237,0x15c9ea0,228,CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit
code-creation,Builtin,2,11244,0x15c9fa0,228,CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit
code-creation,Builtin,2,11251,0x15ca0a0,212,CEntry_Return1_DontSaveFPRegs_ArgvInRegister_NoBuiltinExit
code-creation,Builtin,2,11258,0x15ca180,408,CEntry_Return1_SaveFPRegs_ArgvOnStack_NoBuiltinExit
code-creation,Builtin,2,11264,0x15ca320,408,CEntry_Return1_SaveFPRegs_ArgvOnStack_BuiltinExit
code-creation,Builtin,2,11271,0x15ca4c0,228,CEntry_Return2_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit
code-creation,Builtin,2,11278,0x15ca5c0,228,CEntry_Return2_DontSaveFPRegs_ArgvOnStack_BuiltinExit
code-creation,Builtin,2,11284,0x15ca6c0,212,CEntry_Return2_DontSaveFPRegs_ArgvInRegister_NoBuiltinExit
code-creation,Builtin,2,11292,0x15ca7a0,408,CEntry_Return2_SaveFPRegs_ArgvOnStack_NoBuiltinExit
code-creation,Builtin,2,11298,0x15ca940,408,CEntry_Return2_SaveFPRegs_ArgvOnStack_BuiltinExit
code-creation,Builtin,2,11305,0x15caae0,4,DirectCEntry
code-creation,Builtin,2,11310,0x15cab00,1096,StringAdd_CheckNone
code-creation,Builtin,2,11315,0x15caf60,2496,SubString
code-creation,Builtin,2,11320,0x15cb940,16,StackCheck
code-creation,Builtin,2,11324,0x15cb960,84,DoubleToI
code-creation,Builtin,2,11329,0x15cb9c0,2224,GetProperty
code-creation,Builtin,2,11334,0x15cc280,2296,GetPropertyWithReceiver
code-creation,Builtin,2,11339,0x15ccb80,16528,SetProperty
code-creation,Builtin,2,11344,0x15d0c20,14092,SetPropertyInLiteral
code-creation,Builtin,2,11349,0x15d4340,8,MemCopyUint8Uint8
code-creation,Builtin,2,11354,0x15d4360,8,MemMove
code-creation,Builtin,2,11359,0x15d4380,12,IsTraceCategoryEnabled
code-creation,Builtin,2,11364,0x15d43a0,12,Trace
code-creation,Builtin,2,11368,0x15d43c0,12,FinalizationRegistryUnregister
code-creation,Builtin,2,11374,0x15d43e0,416,AsyncModuleEvaluate
code-creation,Builtin,2,11378,0x15d45a0,12,CallAsyncModuleFulfilled
code-creation,Builtin,2,11384,0x15d45c0,12,CallAsyncModuleRejected
code-creation,Builtin,2,11389,0x15d45e0,260,AggregateErrorConstructor
code-creation,Builtin,2,11395,0x15d4700,852,ArrayPrototypeAt
code-creation,Builtin,2,11401,0x15d4a60,5812,ArrayPrototypeCopyWithin
code-creation,Builtin,2,11406,0x15d6120,212,ArrayEveryLoopEagerDeoptContinuation
code-creation,Builtin,2,11411,0x15d6200,612,ArrayEveryLoopLazyDeoptContinuation
code-creation,Builtin,2,11417,0x15d6480,2736,ArrayEveryLoopContinuation
code-creation,Builtin,2,11426,0x15d6f40,1464,ArrayEvery
code-creation,Builtin,2,11430,0x15d7500,284,ArrayFilterLoopEagerDeoptContinuation
code-creation,Builtin,2,11437,0x15d7620,984,ArrayFilterLoopLazyDeoptContinuation
code-creation,Builtin,2,11443,0x15d7a00,3012,ArrayFilterLoopContinuation
code-creation,Builtin,2,11449,0x15d85e0,4324,ArrayFilter
code-creation,Builtin,2,11453,0x15d96e0,204,ArrayFindLoopEagerDeoptContinuation
code-creation,Builtin,2,11459,0x15d97c0,32,ArrayFindLoopLazyDeoptContinuation
code-creation,Builtin,2,11464,0x15d9800,312,ArrayFindLoopAfterCallbackLazyDeoptContinuation
code-creation,Builtin,2,11471,0x15d9940,524,ArrayFindLoopContinuation
code-creation,Builtin,2,11476,0x15d9b60,1456,ArrayPrototypeFind
code-creation,Builtin,2,11480,0x15da120,204,ArrayFindIndexLoopEagerDeoptContinuation
code-creation,Builtin,2,11487,0x15da200,32,ArrayFindIndexLoopLazyDeoptContinuation
code-creation,Builtin,2,11493,0x15da240,312,ArrayFindIndexLoopAfterCallbackLazyDeoptContinuation
code-creation,Builtin,2,11500,0x15da380,524,ArrayFindIndexLoopContinuation
code-creation,Builtin,2,11505,0x15da5a0,1460,ArrayPrototypeFindIndex
code-creation,Builtin,2,11510,0x15dab60,212,ArrayForEachLoopEagerDeoptContinuation
code-creation,Builtin,2,11516,0x15dac40,212,ArrayForEachLoopLazyDeoptContinuation
code-creation,Builtin,2,11522,0x15dad20,2628,ArrayForEachLoopContinuation
code-creation,Builtin,2,11537,0x15db780,1328,ArrayForEach
code-creation,Builtin,2,11543,0x15dbcc0,3560,ArrayFrom
code-creation,Builtin,2,11550,0x15dcac0,148,ArrayIsArray
code-creation,Builtin,2,11563,0x15dcb60,408,LoadJoinElement_DictionaryElements_0
code-creation,Builtin,2,11571,0x15dcd00,36,LoadJoinElement_FastSmiOrObjectElements_0
code-creation,Builtin,2,11586,0x15dcd40,140,LoadJoinElement_FastDoubleElements_0
code-creation,Builtin,2,11596,0x15dcde0,312,ConvertToLocaleString
code-creation,Builtin,2,11604,0x15dcf20,792,JoinStackPush
code-creation,Builtin,2,11612,0x15dd240,284,JoinStackPop
code-creation,Builtin,2,11616,0x15dd360,6700,ArrayPrototypeJoin
code-creation,Builtin,2,11624,0x15deda0,5412,ArrayPrototypeToLocaleString
code-creation,Builtin,2,11632,0x15e02e0,236,ArrayPrototypeToString
code-creation,Builtin,2,11641,0x15e03e0,6008,TypedArrayPrototypeJoin
code-creation,Builtin,2,11649,0x15e1b60,4692,TypedArrayPrototypeToLocaleString
code-creation,Builtin,2,11658,0x15e2dc0,3820,ArrayPrototypeLastIndexOf
code-creation,Builtin,2,11666,0x15e3cc0,260,ArrayMapPreLoopLazyDeoptContinuation
code-creation,Builtin,2,11675,0x15e3de0,252,ArrayMapLoopEagerDeoptContinuation
code-creation,Builtin,2,11683,0x15e3ee0,532,ArrayMapLoopLazyDeoptContinuation
code-creation,Builtin,2,11692,0x15e4100,2640,ArrayMapLoopContinuation
code-creation,Builtin,2,11700,0x15e4b60,3944,ArrayMap
code-creation,Builtin,2,11707,0x15e5ae0,996,ArrayOf
code-creation,Builtin,2,11714,0x15e5ee0,440,ArrayReduceRightPreLoopEagerDeoptContinuation
code-creation,Builtin,2,11724,0x15e60a0,204,ArrayReduceRightLoopEagerDeoptContinuation
code-creation,Builtin,2,11734,0x15e6180,204,ArrayReduceRightLoopLazyDeoptContinuation
code-creation,Builtin,2,11743,0x15e6260,2676,ArrayReduceRightLoopContinuation
code-creation,Builtin,2,11752,0x15e6ce0,1996,ArrayReduceRight
code-creation,Builtin,2,11760,0x15e74c0,176,ArrayReducePreLoopEagerDeoptContinuation
code-creation,Builtin,2,11768,0x15e7580,204,ArrayReduceLoopEagerDeoptContinuation
code-creation,Builtin,2,11778,0x15e7660,204,ArrayReduceLoopLazyDeoptContinuation
code-creation,Builtin,2,11787,0x15e7740,2704,ArrayReduceLoopContinuation
code-creation,Builtin,2,11795,0x15e81e0,1604,ArrayReduce
code-creation,Builtin,2,11802,0x15e8840,3264,ArrayPrototypeReverse
code-creation,Builtin,2,11810,0x15e9520,3640,ArrayPrototypeShift
code-creation,Builtin,2,11818,0x15ea360,5212,ArrayPrototypeSlice
code-creation,Builtin,2,11826,0x15eb7c0,212,ArraySomeLoopEagerDeoptContinuation
code-creation,Builtin,2,11833,0x15eb8a0,576,ArraySomeLoopLazyDeoptContinuation
code-creation,Builtin,2,11842,0x15ebb00,2720,ArraySomeLoopContinuation
code-creation,Builtin,2,11850,0x15ec5c0,1444,ArraySome
code-creation,Builtin,2,11861,0x15ecb80,14312,ArrayPrototypeSplice
code-creation,Builtin,2,11870,0x15f0380,3272,ArrayPrototypeUnshift
code-creation,Builtin,2,11878,0x15f1060,388,ArrayBufferPrototypeGetByteLength
code-creation,Builtin,2,11887,0x15f1200,388,SharedArrayBufferPrototypeGetByteLength
code-creation,Builtin,2,11897,0x15f13a0,388,ResizableArrayBufferPrototypeGetByteLength
code-creation,Builtin,2,11906,0x15f1540,388,ResizableArrayBufferPrototypeGetMaxByteLength
code-creation,Builtin,2,11916,0x15f16e0,388,GrowableSharedArrayBufferPrototypeGetMaxByteLength
code-creation,Builtin,2,11925,0x15f1880,96,ArrayBufferIsView
code-creation,Builtin,2,11933,0x15f1900,396,ToInteger
code-creation,Builtin,2,11940,0x15f1aa0,3192,FastCreateDataProperty
code-creation,Builtin,2,11948,0x15f2720,676,CheckNumberInRange
code-creation,Builtin,2,11957,0x15f29e0,584,CheckSameObject
code-creation,Builtin,2,11965,0x15f2c40,904,BooleanConstructor
code-creation,Builtin,2,11972,0x15f2fe0,164,BooleanPrototypeToString
code-creation,Builtin,2,11981,0x15f30a0,156,BooleanPrototypeValueOf
code-creation,Builtin,2,11990,0x15f3140,1180,BigIntAddNoThrow
code-creation,Builtin,2,11998,0x15f35e0,1276,BigIntAdd
code-creation,Builtin,2,12005,0x15f3ae0,1180,BigIntSubtractNoThrow
code-creation,Builtin,2,12014,0x15f3f80,1276,BigIntSubtract
code-creation,Builtin,2,12022,0x15f4480,284,BigIntUnaryMinus
code-creation,Builtin,2,12029,0x15f45a0,1388,ToString
code-creation,Builtin,2,12036,0x15f4b20,156,StringPrototypeToString
code-creation,Builtin,2,12044,0x15f4bc0,156,StringPrototypeValueOf
code-creation,Builtin,2,12052,0x15f4c60,2496,StringToList
code-creation,Builtin,2,12060,0x15f5640,1028,StringPrototypeCharAt
code-creation,Builtin,2,12067,0x15f5a60,700,StringPrototypeCharCodeAt
code-creation,Builtin,2,12075,0x15f5d20,1284,StringPrototypeCodePointAt
code-creation,Builtin,2,12083,0x15f6240,404,StringPrototypeConcat
code-creation,Builtin,2,12091,0x15f63e0,992,StringConstructor
code-creation,Builtin,2,12099,0x15f67e0,1464,StringAddConvertLeft
code-creation,Builtin,2,12107,0x15f6da0,1492,StringAddConvertRight
code-creation,Builtin,2,12115,0x15f7380,828,StringCharAt
code-creation,Builtin,2,12123,0x15f76c0,16,FastNewClosureBaseline
code-creation,Builtin,2,12131,0x15f76e0,196,FastNewFunctionContextEval
code-creation,Builtin,2,12140,0x15f77c0,196,FastNewFunctionContextFunction
code-creation,Builtin,2,12148,0x15f78a0,244,CreateRegExpLiteral
code-creation,Builtin,2,12157,0x15f79a0,1096,CreateShallowArrayLiteral
code-creation,Builtin,2,12165,0x15f7e00,532,CreateEmptyArrayLiteral
code-creation,Builtin,2,12174,0x15f8020,1752,CreateShallowObjectLiteral
code-creation,Builtin,2,12182,0x15f8700,380,ObjectConstructor
code-creation,Builtin,2,12191,0x15f8880,172,CreateEmptyLiteralObject
code-creation,Builtin,2,12199,0x15f8940,552,NumberConstructor
code-creation,Builtin,2,12207,0x15f8b80,64,GenericLazyDeoptContinuation
code-creation,Builtin,2,12215,0x15f8be0,64,StringToNumber
code-creation,Builtin,2,12227,0x15f8c40,184,NonNumberToNumber
code-creation,Builtin,2,12235,0x15f8d00,240,NonNumberToNumeric
code-creation,Builtin,2,12243,0x15f8e00,36,ToNumeric
code-creation,Builtin,2,12250,0x15f8e40,1212,NumberToString
code-creation,Builtin,2,12257,0x15f9300,92,ToBoolean
code-creation,Builtin,2,12265,0x15f9360,96,ToBooleanForBaselineJump
code-creation,Builtin,2,12273,0x15f93e0,724,ToLength
code-creation,Builtin,2,12285,0x15f96c0,1340,ToName
code-creation,Builtin,2,12293,0x15f9c00,756,ToObject
code-creation,Builtin,2,12300,0x15f9f00,208,NonPrimitiveToPrimitive_Default
code-creation,Builtin,2,12309,0x15f9fe0,208,NonPrimitiveToPrimitive_Number
code-creation,Builtin,2,12324,0x15fa0c0,208,NonPrimitiveToPrimitive_String
code-creation,Builtin,2,12332,0x15fa1a0,288,OrdinaryToPrimitive_Number
code-creation,Builtin,2,12340,0x15fa2e0,288,OrdinaryToPrimitive_String
code-creation,Builtin,2,12349,0x15fa420,216,FastConsoleAssert
code-creation,Builtin,2,12357,0x15fa500,160,DataViewPrototypeGetBuffer
code-creation,Builtin,2,12365,0x15fa5c0,336,DataViewPrototypeGetByteLength
code-creation,Builtin,2,12373,0x15fa720,336,DataViewPrototypeGetByteOffset
code-creation,Builtin,2,12386,0x15fa880,572,DataViewPrototypeGetUint8
code-creation,Builtin,2,12395,0x15faac0,572,DataViewPrototypeGetInt8
code-creation,Builtin,2,12403,0x15fad00,644,DataViewPrototypeGetUint16
code-creation,Builtin,2,12411,0x15fafa0,644,DataViewPrototypeGetInt16
code-creation,Builtin,2,12420,0x15fb240,808,DataViewPrototypeGetUint32
code-creation,Builtin,2,12429,0x15fb580,684,DataViewPrototypeGetInt32
code-creation,Builtin,2,12437,0x15fb840,844,DataViewPrototypeGetFloat32
code-creation,Builtin,2,12446,0x15fbba0,908,DataViewPrototypeGetFloat64
code-creation,Builtin,2,12454,0x15fbf40,980,DataViewPrototypeGetBigUint64
code-creation,Builtin,2,12462,0x15fc320,1000,DataViewPrototypeGetBigInt64
code-creation,Builtin,2,12471,0x15fc720,928,DataViewPrototypeSetUint8
code-creation,Builtin,2,12479,0x15fcae0,928,DataViewPrototypeSetInt8
code-creation,Builtin,2,12487,0x15fcea0,1028,DataViewPrototypeSetUint16
code-creation,Builtin,2,12496,0x15fd2c0,1028,DataViewPrototypeSetInt16
code-creation,Builtin,2,12504,0x15fd6e0,1064,DataViewPrototypeSetUint32
code-creation,Builtin,2,12512,0x15fdb20,1064,DataViewPrototypeSetInt32
code-creation,Builtin,2,12520,0x15fdf60,1032,DataViewPrototypeSetFloat32
code-creation,Builtin,2,12529,0x15fe380,1096,DataViewPrototypeSetFloat64
code-creation,Builtin,2,12537,0x15fe7e0,944,DataViewPrototypeSetBigUint64
code-creation,Builtin,2,12545,0x15feba0,944,DataViewPrototypeSetBigInt64
code-creation,Builtin,2,12554,0x15fef60,828,FinalizationRegistryConstructor
code-creation,Builtin,2,12562,0x15ff2a0,1244,FinalizationRegistryRegister
code-creation,Builtin,2,12571,0x15ff780,660,FinalizationRegistryPrototypeCleanupSome
code-creation,Builtin,2,12577,0x15ffa20,328,FunctionPrototypeHasInstance
code-creation,Builtin,2,12582,0x15ffb80,920,FastFunctionPrototypeBind
code-creation,Builtin,2,12594,0x15fff20,88,IncBlockCounter
code-creation,Builtin,2,12601,0x15fff80,252,GetTemplateObject
code-creation,Builtin,2,12610,0x1600080,28,BytecodeBudgetInterruptFromCode
code-creation,Builtin,2,12618,0x16000a0,92,ForInNext
code-creation,Builtin,2,12664,0x1600100,128,GetImportMetaObjectBaseline
code-creation,Builtin,2,12674,0x16001a0,116,GetIteratorWithFeedback
code-creation,Builtin,2,12682,0x1600220,100,GetIteratorBaseline
code-creation,Builtin,2,12689,0x16002a0,268,CreateAsyncFromSyncIteratorBaseline
code-creation,Builtin,2,12698,0x16003c0,1128,CallIteratorWithFeedback
code-creation,Builtin,2,12706,0x1600840,288,MathAbs
code-creation,Builtin,2,12714,0x1600980,424,MathCeil
code-creation,Builtin,2,12720,0x1600b40,432,MathFloor
code-creation,Builtin,2,12728,0x1600d00,488,MathRound
code-creation,Builtin,2,12735,0x1600f00,428,MathTrunc
code-creation,Builtin,2,12743,0x16010c0,364,MathPow
code-creation,Builtin,2,12750,0x1601240,396,MathMax
code-creation,Builtin,2,12757,0x16013e0,400,MathMin
code-creation,Builtin,2,12764,0x1601580,316,MathAcos
code-creation,Builtin,2,12768,0x16016c0,316,MathAcosh
code-creation,Builtin,2,12773,0x1601800,316,MathAsin
code-creation,Builtin,2,12778,0x1601940,316,MathAsinh
code-creation,Builtin,2,12782,0x1601a80,316,MathAtan
code-creation,Builtin,2,12794,0x1601bc0,412,MathAtan2
code-creation,Builtin,2,12801,0x1601d60,316,MathAtanh
code-creation,Builtin,2,12809,0x1601ea0,316,MathCbrt
code-creation,Builtin,2,12817,0x1601fe0,168,MathClz32
code-creation,Builtin,2,12824,0x16020a0,316,MathCos
code-creation,Builtin,2,12831,0x16021e0,316,MathCosh
code-creation,Builtin,2,12838,0x1602320,316,MathExp
code-creation,Builtin,2,12846,0x1602460,316,MathExpm1
code-creation,Builtin,2,12853,0x16025a0,272,MathFround
code-creation,Builtin,2,12861,0x16026c0,304,MathImul
code-creation,Builtin,2,12868,0x1602800,316,MathLog
code-creation,Builtin,2,12876,0x1602940,316,MathLog1p
code-creation,Builtin,2,12882,0x1602a80,316,MathLog10
code-creation,Builtin,2,12890,0x1602bc0,316,MathLog2
code-creation,Builtin,2,12898,0x1602d00,316,MathSin
code-creation,Builtin,2,12905,0x1602e40,180,MathSign
code-creation,Builtin,2,12912,0x1602f00,316,MathSinh
code-creation,Builtin,2,12919,0x1603040,268,MathSqrt
code-creation,Builtin,2,12931,0x1603160,316,MathTan
code-creation,Builtin,2,12938,0x16032a0,316,MathTanh
code-creation,Builtin,2,12945,0x16033e0,1048,MathHypot
code-creation,Builtin,2,12952,0x1603800,316,MathRandom
code-creation,Builtin,2,12960,0x1603940,2984,NumberPrototypeToString
code-creation,Builtin,2,12968,0x1604500,136,NumberIsFinite
code-creation,Builtin,2,12975,0x16045a0,344,NumberIsInteger
code-creation,Builtin,2,12983,0x1604700,116,NumberIsNaN
code-creation,Builtin,2,12990,0x1604780,372,NumberIsSafeInteger
code-creation,Builtin,2,12998,0x1604900,160,NumberPrototypeValueOf
code-creation,Builtin,2,13006,0x16049c0,196,NumberParseFloat
code-creation,Builtin,2,13014,0x1604aa0,248,ParseInt
code-creation,Builtin,2,13021,0x1604ba0,84,NumberParseInt
code-creation,Builtin,2,13029,0x1604c00,856,Add
code-creation,Builtin,2,13036,0x1604f60,424,Subtract
code-creation,Builtin,2,13043,0x1605120,608,Multiply
code-creation,Builtin,2,13050,0x16053a0,532,Divide
code-creation,Builtin,2,13057,0x16055c0,588,Modulus
code-creation,Builtin,2,13065,0x1605820,524,Exponentiate
code-creation,Builtin,2,13072,0x1605a40,340,Negate
code-creation,Builtin,2,13080,0x1605ba0,112,BitwiseNot
code-creation,Builtin,2,13087,0x1605c20,112,Decrement
code-creation,Builtin,2,13094,0x1605ca0,112,Increment
code-creation,Builtin,2,13102,0x1605d20,392,ShiftLeft
code-creation,Builtin,2,13110,0x1605ec0,392,ShiftRight
code-creation,Builtin,2,13117,0x1606060,508,ShiftRightLogical
code-creation,Builtin,2,13124,0x1606260,388,BitwiseAnd
code-creation,Builtin,2,13132,0x1606400,388,BitwiseOr
code-creation,Builtin,2,13139,0x16065a0,388,BitwiseXor
code-creation,Builtin,2,13146,0x1606740,796,LessThan
code-creation,Builtin,2,13154,0x1606a60,796,LessThanOrEqual
code-creation,Builtin,2,13165,0x1606d80,796,GreaterThan
code-creation,Builtin,2,13173,0x16070a0,796,GreaterThanOrEqual
code-creation,Builtin,2,13181,0x16073c0,860,Equal
code-creation,Builtin,2,13188,0x1607720,348,StrictEqual
code-creation,Builtin,2,13195,0x1607880,3036,ObjectFromEntries
code-creation,Builtin,2,13203,0x1608460,752,CreateObjectWithoutProperties
code-creation,Builtin,2,13210,0x1608760,144,ObjectIsExtensible
code-creation,Builtin,2,13218,0x1608800,148,ObjectPreventExtensions
code-creation,Builtin,2,13227,0x16088a0,144,ObjectGetPrototypeOf
code-creation,Builtin,2,13235,0x1608940,300,ObjectSetPrototypeOf
code-creation,Builtin,2,13242,0x1608a80,80,ObjectPrototypeToString
code-creation,Builtin,2,13250,0x1608ae0,96,ObjectPrototypeValueOf
code-creation,Builtin,2,13258,0x1608b60,164,ObjectPrototypeToLocaleString
code-creation,Builtin,2,13267,0x1608c20,924,FulfillPromise
code-creation,Builtin,2,13274,0x1608fc0,1064,RejectPromise
code-creation,Builtin,2,13281,0x1609400,2488,NewPromiseCapability
code-creation,Builtin,2,13289,0x1609dc0,164,PromiseCapabilityDefaultReject
code-creation,Builtin,2,13297,0x1609e80,148,PromiseCapabilityDefaultResolve
code-creation,Builtin,2,13306,0x1609f20,1428,PerformPromiseThen
code-creation,Builtin,2,13313,0x160a4c0,648,PromiseReject
code-creation,Builtin,2,13321,0x160a760,332,PromiseGetCapabilitiesExecutor
code-creation,Builtin,2,13330,0x160a8c0,104,PromiseConstructorLazyDeoptContinuation
code-creation,Builtin,2,13339,0x160a940,4604,PromiseAll
code-creation,Builtin,2,13346,0x160bb40,4944,PromiseAllSettled
code-creation,Builtin,2,13354,0x160cea0,1152,PromiseAllResolveElementClosure
code-creation,Builtin,2,13363,0x160d340,1436,PromiseAllSettledResolveElementClosure
code-creation,Builtin,2,13372,0x160d8e0,1440,PromiseAllSettledRejectElementClosure
code-creation,Builtin,2,13381,0x160dea0,1224,PromiseAnyRejectElementClosure
code-creation,Builtin,2,13389,0x160e380,2388,PromiseAny
code-creation,Builtin,2,13397,0x160ece0,2940,PromiseConstructor
code-creation,Builtin,2,13404,0x160f860,296,PromisePrototypeCatch
code-creation,Builtin,2,13412,0x160f9a0,88,PromiseValueThunkFinally
code-creation,Builtin,2,13425,0x160fa00,84,PromiseThrowerFinally
code-creation,Builtin,2,13433,0x160fa60,924,PromiseCatchFinally
code-creation,Builtin,2,13441,0x160fe00,924,PromiseThenFinally
code-creation,Builtin,2,13448,0x16101a0,1748,PromisePrototypeFinally
code-creation,Builtin,2,13466,0x1610880,1336,PromiseRace
code-creation,Builtin,2,13474,0x1610dc0,268,PromiseFulfillReactionJob
code-creation,Builtin,2,13482,0x1610ee0,364,PromiseRejectReactionJob
code-creation,Builtin,2,13490,0x1611060,156,PromiseResolveTrampoline
code-creation,Builtin,2,13499,0x1611100,652,PromiseResolve
code-creation,Builtin,2,13507,0x16113a0,708,ResolvePromise
code-creation,Builtin,2,13514,0x1611680,2236,PromisePrototypeThen
code-creation,Builtin,2,13522,0x1611f40,1184,PromiseResolveThenableJob
code-creation,Builtin,2,13530,0x1612400,444,ProxyConstructor
code-creation,Builtin,2,13537,0x16125c0,1760,ProxyDeleteProperty
code-creation,Builtin,2,13546,0x1612cc0,2108,ProxyGetProperty
code-creation,Builtin,2,13554,0x1613500,1060,ProxyGetPrototypeOf
code-creation,Builtin,2,13562,0x1613940,1668,ProxyHasProperty
code-creation,Builtin,2,13570,0x1613fe0,760,ProxyIsExtensible
code-creation,Builtin,2,13577,0x16142e0,800,ProxyPreventExtensions
code-creation,Builtin,2,13585,0x1614620,1168,ProxyRevocable
code-creation,Builtin,2,13596,0x1614ac0,120,ProxyRevoke
code-creation,Builtin,2,13604,0x1614b40,2204,ProxySetProperty
code-creation,Builtin,2,13612,0x16153e0,1292,ProxySetPrototypeOf
code-creation,Builtin,2,13620,0x1615900,208,ReflectIsExtensible
code-creation,Builtin,2,13628,0x16159e0,212,ReflectPreventExtensions
code-creation,Builtin,2,13636,0x1615ac0,188,ReflectGetPrototypeOf
code-creation,Builtin,2,13642,0x1615b80,292,ReflectSetPrototypeOf
code-creation,Builtin,2,13654,0x1615cc0,284,ReflectGet
code-creation,Builtin,2,13662,0x1615de0,160,ReflectDeleteProperty
code-creation,Builtin,2,13670,0x1615ea0,148,ReflectHas
code-creation,Builtin,2,13677,0x1615f40,5280,RegExpPrototypeExecSlow
code-creation,Builtin,2,13685,0x1617400,5268,RegExpPrototypeExec
code-creation,Builtin,2,13693,0x16188a0,2360,RegExpPrototypeMatchAll
code-creation,Builtin,2,13905,0x16191e0,9544,RegExpStringIteratorPrototypeNext
code-creation,Builtin,2,13917,0x161b740,9008,RegExpMatchFast
code-creation,Builtin,2,13922,0x161da80,3596,RegExpPrototypeMatch
code-creation,Builtin,2,13931,0x161e8a0,6368,RegExpReplace
code-creation,Builtin,2,13938,0x16201a0,524,RegExpPrototypeReplace
code-creation,Builtin,2,13946,0x16203c0,1428,RegExpSearchFast
code-creation,Builtin,2,13954,0x1620960,1636,RegExpPrototypeSearch
code-creation,Builtin,2,13962,0x1620fe0,200,RegExpPrototypeSourceGetter
code-creation,Builtin,2,13970,0x16210c0,5880,RegExpSplit
code-creation,Builtin,2,13978,0x16227c0,476,RegExpPrototypeSplit
code-creation,Builtin,2,13986,0x16229a0,2260,RegExpPrototypeTest
code-creation,Builtin,2,13994,0x1623280,1372,RegExpPrototypeTestFast
code-creation,Builtin,2,14003,0x16237e0,228,RegExpPrototypeGlobalGetter
code-creation,Builtin,2,14011,0x16238e0,244,RegExpPrototypeIgnoreCaseGetter
code-creation,Builtin,2,14020,0x16239e0,244,RegExpPrototypeMultilineGetter
code-creation,Builtin,2,14028,0x1623ae0,244,RegExpPrototypeHasIndicesGetter
code-creation,Builtin,2,14036,0x1623be0,244,RegExpPrototypeLinearGetter
code-creation,Builtin,2,14044,0x1623ce0,244,RegExpPrototypeDotAllGetter
code-creation,Builtin,2,14052,0x1623de0,272,RegExpPrototypeStickyGetter
code-creation,Builtin,2,14062,0x1623f00,272,RegExpPrototypeUnicodeGetter
code-creation,Builtin,2,14070,0x1624020,2268,RegExpPrototypeFlagsGetter
code-creation,Builtin,2,14078,0x1624900,1516,StringPrototypeAt
code-creation,Builtin,2,14088,0x1624f00,2992,StringPrototypeEndsWith
code-creation,Builtin,2,14096,0x1625ac0,480,CreateHTML
code-creation,Builtin,2,14103,0x1625cc0,164,StringPrototypeAnchor
code-creation,Builtin,2,14112,0x1625d80,128,StringPrototypeBig
code-creation,Builtin,2,14119,0x1625e20,128,StringPrototypeBlink
code-creation,Builtin,2,14127,0x1625ec0,128,StringPrototypeBold
code-creation,Builtin,2,14135,0x1625f60,168,StringPrototypeFontcolor
code-creation,Builtin,2,14143,0x1626020,168,StringPrototypeFontsize
code-creation,Builtin,2,14151,0x16260e0,128,StringPrototypeFixed
code-creation,Builtin,2,14159,0x1626180,128,StringPrototypeItalics
code-creation,Builtin,2,14167,0x1626220,168,StringPrototypeLink
code-creation,Builtin,2,14181,0x16262e0,128,StringPrototypeSmall
code-creation,Builtin,2,14189,0x1626380,128,StringPrototypeStrike
code-creation,Builtin,2,14197,0x1626420,128,StringPrototypeSub
code-creation,Builtin,2,14205,0x16264c0,128,StringPrototypeSup
code-creation,Builtin,2,14213,0x1626560,1028,StringPrototypeIncludes
code-creation,Builtin,2,14222,0x1626980,628,StringPrototypeIndexOf
code-creation,Builtin,2,14231,0x1626c00,344,StringPrototypeIterator
code-creation,Builtin,2,14239,0x1626d60,2044,StringIteratorPrototypeNext
code-creation,Builtin,2,14247,0x1627560,1304,StringPrototypeMatch
code-creation,Builtin,2,14255,0x1627a80,1304,StringPrototypeSearch
code-creation,Builtin,2,14264,0x1627fa0,824,StringPrototypePadStart
tick,0x7efc3373d8f0,14273,0,0x0,6
tick,0x7efc33a64717,14287,0,0x0,6
code-creation,Builtin,2,14291,0x16282e0,828,StringPrototypePadEnd
code-creation,Builtin,2,14301,0x1628620,120,StringRepeat
code-creation,Builtin,2,14308,0x16286a0,396,StringPrototypeRepeat
code-creation,Builtin,2,14316,0x1628840,10976,StringPrototypeReplaceAll
code-creation,Builtin,2,14324,0x162b340,3400,StringPrototypeSlice
code-creation,Builtin,2,14332,0x162c0a0,3004,StringPrototypeStartsWith
code-creation,Builtin,2,14340,0x162cc60,3340,StringPrototypeSubstr
code-creation,Builtin,2,14348,0x162d980,3276,StringPrototypeSubstring
code-creation,Builtin,2,14357,0x162e660,6928,StringPrototypeTrim
code-creation,Builtin,2,14365,0x1630180,6336,StringPrototypeTrimStart
code-creation,Builtin,2,14374,0x1631a60,5860,StringPrototypeTrimEnd
code-creation,Builtin,2,14382,0x1633160,160,SymbolPrototypeDescriptionGetter
code-creation,Builtin,2,14391,0x1633220,156,SymbolPrototypeToPrimitive
code-creation,Builtin,2,14399,0x16332c0,172,SymbolPrototypeToString
code-creation,Builtin,2,14407,0x1633380,156,SymbolPrototypeValueOf
code-creation,Builtin,2,14415,0x1633420,828,TypedArrayPrototypeAt
code-creation,Builtin,2,14423,0x1633760,9796,CreateTypedArray
code-creation,Builtin,2,14431,0x1635dc0,996,TypedArrayPrototypeEvery
code-creation,Builtin,2,14439,0x16361c0,372,TypedArrayPrototypeEntries
code-creation,Builtin,2,14447,0x1636340,3504,TypedArrayPrototypeFilter
code-creation,Builtin,2,14455,0x1637100,996,TypedArrayPrototypeFind
code-creation,Builtin,2,14463,0x1637500,1000,TypedArrayPrototypeFindIndex
code-creation,Builtin,2,14471,0x1637900,864,TypedArrayPrototypeForEach
code-creation,Builtin,2,14479,0x1637c80,2348,TypedArrayFrom
code-creation,Builtin,2,14487,0x16385c0,356,TypedArrayPrototypeKeys
code-creation,Builtin,2,14496,0x1638740,1028,TypedArrayOf
code-creation,Builtin,2,14503,0x1638b60,952,TypedArrayPrototypeReduce
code-creation,Builtin,2,14512,0x1638f20,944,TypedArrayPrototypeReduceRight
code-creation,Builtin,2,14520,0x16392e0,2408,TypedArrayPrototypeSet
code-creation,Builtin,2,14528,0x1639c60,2952,TypedArrayPrototypeSlice
code-creation,Builtin,2,14536,0x163a800,992,TypedArrayPrototypeSome
code-creation,Builtin,2,14544,0x163ac00,1116,TypedArrayMergeSort
code-creation,Builtin,2,14552,0x163b060,1652,TypedArrayPrototypeSort
code-creation,Builtin,2,14561,0x163b6e0,2724,TypedArrayPrototypeSubArray
code-creation,Builtin,2,14569,0x163c1a0,372,TypedArrayPrototypeValues
code-creation,Builtin,2,14577,0x163c320,972,WeakRefConstructor
code-creation,Builtin,2,14585,0x163c700,184,WeakRefDeref
code-creation,Builtin,2,14592,0x163c7c0,680,NewSloppyArgumentsElements
code-creation,Builtin,2,14600,0x163ca80,296,NewStrictArgumentsElements
code-creation,Builtin,2,14608,0x163cbc0,320,NewRestArgumentsElements
code-creation,Builtin,2,14616,0x163cd20,1388,FastNewSloppyArguments
code-creation,Builtin,2,14624,0x163d2a0,524,FastNewStrictArguments
code-creation,Builtin,2,14633,0x163d4c0,552,FastNewRestArguments
code-creation,Builtin,2,14641,0x163d700,696,StringSlowFlatten
code-creation,Builtin,2,14649,0x163d9c0,2000,StringIndexOf
code-creation,Builtin,2,14676,0x163e1a0,4,GenericBuiltinTest_JSAny_0
code-creation,Builtin,2,14684,0x163e1c0,20,TestHelperPlus1
code-creation,Builtin,2,14692,0x163e1e0,20,TestHelperPlus2
code-creation,Builtin,2,14697,0x163e200,96,NewSmiBox
code-creation,Builtin,2,14715,0x163e280,24,ReturnTwoValues
code-creation,Builtin,2,14723,0x163e2a0,32,Load_FastSmiElements_0
code-creation,Builtin,2,14731,0x163e2e0,32,Load_FastObjectElements_0
code-creation,Builtin,2,14740,0x163e320,144,Load_FastDoubleElements_0
code-creation,Builtin,2,14748,0x163e3c0,32,Store_FastSmiElements_0
code-creation,Builtin,2,14756,0x163e400,112,Store_FastObjectElements_0
code-creation,Builtin,2,14766,0x163e480,48,Store_FastDoubleElements_0
code-creation,Builtin,2,14774,0x163e4c0,36,Delete_FastSmiElements_0
code-creation,Builtin,2,14783,0x163e500,36,Delete_FastObjectElements_0
code-creation,Builtin,2,14791,0x163e540,44,Delete_FastDoubleElements_0
code-creation,Builtin,2,14800,0x163e580,308,SortCompareDefault
code-creation,Builtin,2,14809,0x163e6c0,92,SortCompareUserFn
code-creation,Builtin,2,14817,0x163e720,8,CanUseSameAccessor_GenericElementsAccessor_0
code-creation,Builtin,2,14826,0x163e740,340,Copy
code-creation,Builtin,2,14834,0x163e8a0,5988,MergeAt
code-creation,Builtin,2,14842,0x1640020,792,GallopLeft
code-creation,Builtin,2,14849,0x1640340,832,GallopRight
code-creation,Builtin,2,14856,0x16406a0,3952,ArrayTimSort
code-creation,Builtin,2,14864,0x1641620,2116,ArrayPrototypeSort
code-creation,Builtin,2,14872,0x1641e80,100,WasmInt32ToHeapNumber
code-creation,Builtin,2,14880,0x1641f00,124,WasmTaggedNonSmiToInt32
code-creation,Builtin,2,14888,0x1641f80,76,WasmTaggedToFloat64
code-creation,Builtin,2,14896,0x1641fe0,72,WasmMemoryGrow
code-creation,Builtin,2,14904,0x1642040,100,WasmTableInit
code-creation,Builtin,2,14912,0x16420c0,100,WasmTableCopy
code-creation,Builtin,2,14920,0x1642140,84,WasmTableFill
code-creation,Builtin,2,14928,0x16421a0,72,WasmTableGrow
code-creation,Builtin,2,14936,0x1642200,144,WasmTableGet
code-creation,Builtin,2,14945,0x16422a0,252,WasmTableSet
code-creation,Builtin,2,14953,0x16423a0,88,WasmRefFunc
code-creation,Builtin,2,14961,0x1642400,144,WasmAllocateFixedArray
code-creation,Builtin,2,14969,0x16424a0,44,WasmThrow
code-creation,Builtin,2,14977,0x16424e0,52,WasmRethrow
code-creation,Builtin,2,14984,0x1642520,44,WasmTriggerTierUp
code-creation,Builtin,2,14992,0x1642560,32,WasmStackGuard
code-creation,Builtin,2,15000,0x16425a0,32,WasmStackOverflow
code-creation,Builtin,2,15008,0x16425e0,40,WasmTraceMemory
code-creation,Builtin,2,15016,0x1642620,32,WasmTraceEnter
code-creation,Builtin,2,15024,0x1642660,40,WasmTraceExit
code-creation,Builtin,2,15032,0x16426a0,332,WasmAllocateJSArray
code-creation,Builtin,2,15040,0x1642800,104,WasmAllocatePair
code-creation,Builtin,2,15048,0x1642880,48,WasmAllocateRtt
code-creation,Builtin,2,15056,0x16428c0,112,WasmAllocateStructWithRtt
code-creation,Builtin,2,15065,0x1642940,128,WasmAllocateArrayWithRtt
code-creation,Builtin,2,15073,0x16429e0,240,WasmAllocateObjectWrapper
code-creation,Builtin,2,15082,0x1642ae0,52,WasmSubtypeCheck
code-creation,Builtin,2,15090,0x1642b20,8,WasmInt32ToNumber
code-creation,Builtin,2,15097,0x1642b40,116,WasmUint32ToNumber
code-creation,Builtin,2,15105,0x1642bc0,144,UintPtr53ToNumber
code-creation,Builtin,2,15113,0x1642c60,96,WasmAtomicNotify
code-creation,Builtin,2,15121,0x1642ce0,116,WasmI32AtomicWait64
code-creation,Builtin,2,15142,0x1642d60,116,WasmI64AtomicWait64
code-creation,Builtin,2,15152,0x1642de0,580,WasmGetOwnProperty
code-creation,Builtin,2,15159,0x1643040,40,WasmTrap
code-creation,Builtin,2,15167,0x1643080,16,ThrowWasmTrapUnreachable
code-creation,Builtin,2,15176,0x16430a0,16,ThrowWasmTrapMemOutOfBounds
code-creation,Builtin,2,15184,0x16430c0,16,ThrowWasmTrapUnalignedAccess
code-creation,Builtin,2,15193,0x16430e0,16,ThrowWasmTrapDivByZero
code-creation,Builtin,2,15201,0x1643100,16,ThrowWasmTrapDivUnrepresentable
code-creation,Builtin,2,15210,0x1643120,16,ThrowWasmTrapRemByZero
code-creation,Builtin,2,15217,0x1643140,16,ThrowWasmTrapFloatUnrepresentable
code-creation,Builtin,2,15226,0x1643160,16,ThrowWasmTrapFuncSigMismatch
code-creation,Builtin,2,15234,0x1643180,16,ThrowWasmTrapDataSegmentDropped
code-creation,Builtin,2,15242,0x16431a0,16,ThrowWasmTrapElemSegmentDropped
code-creation,Builtin,2,15251,0x16431c0,16,ThrowWasmTrapTableOutOfBounds
code-creation,Builtin,2,15263,0x16431e0,16,ThrowWasmTrapRethrowNull
code-creation,Builtin,2,15271,0x1643200,16,ThrowWasmTrapNullDereference
code-creation,Builtin,2,15280,0x1643220,16,ThrowWasmTrapIllegalCast
code-creation,Builtin,2,15288,0x1643240,16,ThrowWasmTrapArrayOutOfBounds
code-creation,Builtin,2,15297,0x1643260,168,LoadJoinElement_GenericElementsAccessor_0
code-creation,Builtin,2,15306,0x1643320,24,LoadJoinTypedElement_Int32Elements_0
code-creation,Builtin,2,15315,0x1643340,112,LoadJoinTypedElement_Float32Elements_0
code-creation,Builtin,2,15325,0x16433c0,108,LoadJoinTypedElement_Float64Elements_0
code-creation,Builtin,2,15334,0x1643440,24,LoadJoinTypedElement_Uint8ClampedElements_0
code-creation,Builtin,2,15343,0x1643460,220,LoadJoinTypedElement_BigUint64Elements_0
code-creation,Builtin,2,15351,0x1643540,248,LoadJoinTypedElement_BigInt64Elements_0
code-creation,Builtin,2,15361,0x1643640,24,LoadJoinTypedElement_Uint8Elements_0
code-creation,Builtin,2,15369,0x1643660,24,LoadJoinTypedElement_Int8Elements_0
code-creation,Builtin,2,15379,0x1643680,24,LoadJoinTypedElement_Uint16Elements_0
code-creation,Builtin,2,15388,0x16436a0,24,LoadJoinTypedElement_Int16Elements_0
code-creation,Builtin,2,15396,0x16436c0,132,LoadJoinTypedElement_Uint32Elements_0
code-creation,Builtin,2,15405,0x1643760,8,GenericBuiltinTest_Smi_0
code-creation,Builtin,2,15414,0x1643780,32,CanUseSameAccessor_FastDoubleElements_0
code-creation,Builtin,2,15423,0x16437c0,32,CanUseSameAccessor_FastSmiElements_0
code-creation,Builtin,2,15432,0x1643800,32,CanUseSameAccessor_FastObjectElements_0
code-creation,Builtin,2,15441,0x1643840,2196,Load_GenericElementsAccessor_0
code-creation,Builtin,2,15450,0x16440e0,24,Store_GenericElementsAccessor_0
code-creation,Builtin,2,15459,0x1644100,36,Delete_GenericElementsAccessor_0
code-creation,Builtin,2,15468,0x1644140,24,LoadTypedElement_Int32Elements_0
code-creation,Builtin,2,15477,0x1644160,164,StoreTypedElementNumeric_Int32Elements_0
code-creation,Builtin,2,15487,0x1644220,180,StoreTypedElementJSAny_Int32Elements_0
code-creation,Builtin,2,15496,0x16442e0,112,LoadTypedElement_Float32Elements_0
code-creation,Builtin,2,15505,0x1644360,32,StoreTypedElementNumeric_Float32Elements_0
code-creation,Builtin,2,15514,0x16443a0,156,StoreTypedElementJSAny_Float32Elements_0
code-creation,Builtin,2,15523,0x1644440,108,LoadTypedElement_Float64Elements_0
code-creation,Builtin,2,15532,0x16444c0,28,StoreTypedElementNumeric_Float64Elements_0
code-creation,Builtin,2,15541,0x16444e0,152,StoreTypedElementJSAny_Float64Elements_0
code-creation,Builtin,2,15550,0x1644580,24,LoadTypedElement_Uint8ClampedElements_0
code-creation,Builtin,2,15559,0x16445a0,24,StoreTypedElementNumeric_Uint8ClampedElements_0
code-creation,Builtin,2,15568,0x16445c0,620,StoreTypedElementJSAny_Uint8ClampedElements_0
code-creation,Builtin,2,15578,0x1644840,220,LoadTypedElement_BigUint64Elements_0
code-creation,Builtin,2,15586,0x1644920,56,StoreTypedElementNumeric_BigUint64Elements_0
code-creation,Builtin,2,15596,0x1644960,200,StoreTypedElementJSAny_BigUint64Elements_0
code-creation,Builtin,2,15605,0x1644a40,248,LoadTypedElement_BigInt64Elements_0
code-creation,Builtin,2,15614,0x1644b40,56,StoreTypedElementNumeric_BigInt64Elements_0
code-creation,Builtin,2,15623,0x1644b80,200,StoreTypedElementJSAny_BigInt64Elements_0
code-creation,Builtin,2,15632,0x1644c60,24,LoadTypedElement_Uint8Elements_0
code-creation,Builtin,2,15641,0x1644c80,24,StoreTypedElementNumeric_Uint8Elements_0
code-creation,Builtin,2,15650,0x1644ca0,180,StoreTypedElementJSAny_Uint8Elements_0
code-creation,Builtin,2,15659,0x1644d60,24,LoadTypedElement_Int8Elements_0
code-creation,Builtin,2,15667,0x1644d80,24,StoreTypedElementNumeric_Int8Elements_0
code-creation,Builtin,2,15677,0x1644da0,180,StoreTypedElementJSAny_Int8Elements_0
code-creation,Builtin,2,15686,0x1644e60,24,LoadTypedElement_Uint16Elements_0
code-creation,Builtin,2,15695,0x1644e80,24,StoreTypedElementNumeric_Uint16Elements_0
code-creation,Builtin,2,15704,0x1644ea0,180,StoreTypedElementJSAny_Uint16Elements_0
code-creation,Builtin,2,15717,0x1644f60,24,LoadTypedElement_Int16Elements_0
code-creation,Builtin,2,15726,0x1644f80,24,StoreTypedElementNumeric_Int16Elements_0
code-creation,Builtin,2,15735,0x1644fa0,180,StoreTypedElementJSAny_Int16Elements_0
code-creation,Builtin,2,15743,0x1645060,132,LoadTypedElement_Uint32Elements_0
code-creation,Builtin,2,15752,0x1645100,164,StoreTypedElementNumeric_Uint32Elements_0
code-creation,Builtin,2,15761,0x16451c0,180,StoreTypedElementJSAny_Uint32Elements_0
code-creation,Builtin,2,15768,0x1645280,12,CollatorConstructor
code-creation,Builtin,2,15782,0x16452a0,12,CollatorInternalCompare
code-creation,Builtin,2,15791,0x16452c0,12,CollatorPrototypeCompare
code-creation,Builtin,2,15799,0x16452e0,12,CollatorSupportedLocalesOf
code-creation,Builtin,2,15807,0x1645300,12,CollatorPrototypeResolvedOptions
code-creation,Builtin,2,15817,0x1645320,12,DatePrototypeToLocaleDateString
code-creation,Builtin,2,15826,0x1645340,12,DatePrototypeToLocaleString
code-creation,Builtin,2,15834,0x1645360,12,DatePrototypeToLocaleTimeString
code-creation,Builtin,2,15843,0x1645380,12,DateTimeFormatConstructor
code-creation,Builtin,2,15852,0x16453a0,12,DateTimeFormatInternalFormat
code-creation,Builtin,2,15860,0x16453c0,12,DateTimeFormatPrototypeFormat
code-creation,Builtin,2,15869,0x16453e0,12,DateTimeFormatPrototypeFormatRange
code-creation,Builtin,2,15878,0x1645400,12,DateTimeFormatPrototypeFormatRangeToParts
code-creation,Builtin,2,15887,0x1645420,12,DateTimeFormatPrototypeFormatToParts
code-creation,Builtin,2,15896,0x1645440,12,DateTimeFormatPrototypeResolvedOptions
code-creation,Builtin,2,15905,0x1645460,12,DateTimeFormatSupportedLocalesOf
code-creation,Builtin,2,15913,0x1645480,12,DisplayNamesConstructor
code-creation,Builtin,2,15921,0x16454a0,12,DisplayNamesPrototypeOf
code-creation,Builtin,2,15929,0x16454c0,12,DisplayNamesPrototypeResolvedOptions
code-creation,Builtin,2,15938,0x16454e0,12,DisplayNamesSupportedLocalesOf
code-creation,Builtin,2,15946,0x1645500,12,IntlGetCanonicalLocales
code-creation,Builtin,2,15955,0x1645520,12,ListFormatConstructor
code-creation,Builtin,2,15964,0x1645540,224,ListFormatPrototypeFormat
code-creation,Builtin,2,15972,0x1645640,224,ListFormatPrototypeFormatToParts
code-creation,Builtin,2,15980,0x1645740,12,ListFormatPrototypeResolvedOptions
code-creation,Builtin,2,15989,0x1645760,12,ListFormatSupportedLocalesOf
code-creation,Builtin,2,15997,0x1645780,12,LocaleConstructor
code-creation,Builtin,2,16006,0x16457a0,12,LocalePrototypeBaseName
code-creation,Builtin,2,16013,0x16457c0,12,LocalePrototypeCalendar
code-creation,Builtin,2,16021,0x16457e0,12,LocalePrototypeCalendars
code-creation,Builtin,2,16029,0x1645800,12,LocalePrototypeCaseFirst
code-creation,Builtin,2,16038,0x1645820,12,LocalePrototypeCollation
code-creation,Builtin,2,16047,0x1645840,12,LocalePrototypeCollations
code-creation,Builtin,2,16054,0x1645860,12,LocalePrototypeHourCycle
code-creation,Builtin,2,16063,0x1645880,12,LocalePrototypeHourCycles
code-creation,Builtin,2,16071,0x16458a0,12,LocalePrototypeLanguage
code-creation,Builtin,2,16079,0x16458c0,12,LocalePrototypeMaximize
code-creation,Builtin,2,16087,0x16458e0,12,LocalePrototypeMinimize
code-creation,Builtin,2,16095,0x1645900,12,LocalePrototypeNumeric
code-creation,Builtin,2,16103,0x1645920,12,LocalePrototypeNumberingSystem
code-creation,Builtin,2,16112,0x1645940,12,LocalePrototypeNumberingSystems
code-creation,Builtin,2,16120,0x1645960,12,LocalePrototypeRegion
code-creation,Builtin,2,16128,0x1645980,12,LocalePrototypeScript
code-creation,Builtin,2,16135,0x16459a0,12,LocalePrototypeTextInfo
code-creation,Builtin,2,16143,0x16459c0,12,LocalePrototypeTimeZones
code-creation,Builtin,2,16151,0x16459e0,12,LocalePrototypeToString
code-creation,Builtin,2,16159,0x1645a00,12,LocalePrototypeWeekInfo
code-creation,Builtin,2,16168,0x1645a20,12,NumberFormatConstructor
code-creation,Builtin,2,16176,0x1645a40,12,NumberFormatInternalFormatNumber
code-creation,Builtin,2,16185,0x1645a60,12,NumberFormatPrototypeFormatNumber
code-creation,Builtin,2,16194,0x1645a80,12,NumberFormatPrototypeFormatToParts
code-creation,Builtin,2,16206,0x1645aa0,12,NumberFormatPrototypeResolvedOptions
code-creation,Builtin,2,16216,0x1645ac0,12,NumberFormatSupportedLocalesOf
code-creation,Builtin,2,16224,0x1645ae0,12,PluralRulesConstructor
code-creation,Builtin,2,16233,0x1645b00,12,PluralRulesPrototypeResolvedOptions
code-creation,Builtin,2,16242,0x1645b20,12,PluralRulesPrototypeSelect
code-creation,Builtin,2,16250,0x1645b40,12,PluralRulesSupportedLocalesOf
code-creation,Builtin,2,16258,0x1645b60,12,RelativeTimeFormatConstructor
code-creation,Builtin,2,16266,0x1645b80,12,RelativeTimeFormatPrototypeFormat
code-creation,Builtin,2,16275,0x1645ba0,12,RelativeTimeFormatPrototypeFormatToParts
code-creation,Builtin,2,16283,0x1645bc0,12,RelativeTimeFormatPrototypeResolvedOptions
code-creation,Builtin,2,16293,0x1645be0,12,RelativeTimeFormatSupportedLocalesOf
code-creation,Builtin,2,16301,0x1645c00,12,SegmenterConstructor
code-creation,Builtin,2,16310,0x1645c20,12,SegmenterPrototypeResolvedOptions
code-creation,Builtin,2,16319,0x1645c40,12,SegmenterPrototypeSegment
code-creation,Builtin,2,16328,0x1645c60,12,SegmenterSupportedLocalesOf
code-creation,Builtin,2,16334,0x1645c80,12,SegmentIteratorPrototypeNext
code-creation,Builtin,2,16340,0x1645ca0,12,SegmentsPrototypeContaining
code-creation,Builtin,2,16348,0x1645cc0,12,SegmentsPrototypeIterator
code-creation,Builtin,2,16356,0x1645ce0,12,StringPrototypeNormalizeIntl
code-creation,Builtin,2,16365,0x1645d00,12,StringPrototypeToLocaleLowerCase
code-creation,Builtin,2,16374,0x1645d20,12,StringPrototypeToLocaleUpperCase
code-creation,Builtin,2,16383,0x1645d40,200,StringPrototypeToLowerCaseIntl
code-creation,Builtin,2,16391,0x1645e20,12,StringPrototypeToUpperCaseIntl
code-creation,Builtin,2,16400,0x1645e40,632,StringToLowerCaseIntl
code-creation,Builtin,2,16408,0x16460c0,12,V8BreakIteratorConstructor
code-creation,Builtin,2,16417,0x16460e0,12,V8BreakIteratorInternalAdoptText
code-creation,Builtin,2,16425,0x1646100,12,V8BreakIteratorInternalBreakType
code-creation,Builtin,2,16434,0x1646120,12,V8BreakIteratorInternalCurrent
code-creation,Builtin,2,16443,0x1646140,12,V8BreakIteratorInternalFirst
code-creation,Builtin,2,16450,0x1646160,12,V8BreakIteratorInternalNext
code-creation,Builtin,2,16459,0x1646180,12,V8BreakIteratorPrototypeAdoptText
code-creation,Builtin,2,16468,0x16461a0,12,V8BreakIteratorPrototypeBreakType
code-creation,Builtin,2,16477,0x16461c0,12,V8BreakIteratorPrototypeCurrent
code-creation,Builtin,2,16486,0x16461e0,12,V8BreakIteratorPrototypeFirst
code-creation,Builtin,2,16494,0x1646200,12,V8BreakIteratorPrototypeNext
code-creation,Builtin,2,16503,0x1646220,12,V8BreakIteratorPrototypeResolvedOptions
code-creation,Builtin,2,16512,0x1646240,12,V8BreakIteratorSupportedLocalesOf
code-creation,BytecodeHandler,0,16523,0x1646260,24,Wide
code-creation,BytecodeHandler,0,16532,0x1646280,24,ExtraWide
code-creation,BytecodeHandler,0,16540,0x16462a0,104,DebugBreakWide
code-creation,BytecodeHandler,0,16549,0x1646320,104,DebugBreakExtraWide
code-creation,BytecodeHandler,0,16558,0x16463a0,164,DebugBreak0
code-creation,BytecodeHandler,0,16567,0x1646460,104,DebugBreak1
code-creation,BytecodeHandler,0,16575,0x16464e0,104,DebugBreak2
code-creation,BytecodeHandler,0,16583,0x1646560,104,DebugBreak3
code-creation,BytecodeHandler,0,16591,0x16465e0,104,DebugBreak4
code-creation,BytecodeHandler,0,16600,0x1646660,104,DebugBreak5
code-creation,BytecodeHandler,0,16608,0x16466e0,104,DebugBreak6
code-creation,BytecodeHandler,0,16617,0x1646760,32,Ldar
code-creation,BytecodeHandler,0,16625,0x16467a0,68,LdaZero
code-creation,BytecodeHandler,0,16633,0x1646800,76,LdaSmi
code-creation,BytecodeHandler,0,16641,0x1646860,68,LdaUndefined
code-creation,BytecodeHandler,0,16649,0x16468c0,68,LdaNull
code-creation,BytecodeHandler,0,16657,0x1646920,68,LdaTheHole
code-creation,BytecodeHandler,0,16666,0x1646980,20,LdaTrue
code-creation,BytecodeHandler,0,16675,0x16469a0,20,LdaFalse
code-creation,BytecodeHandler,0,16683,0x16469c0,76,LdaConstant
code-creation,BytecodeHandler,0,16691,0x1646a20,132,LdaContextSlot
code-creation,BytecodeHandler,0,16704,0x1646ac0,132,LdaImmutableContextSlot
code-creation,BytecodeHandler,0,16714,0x1646b60,88,LdaCurrentContextSlot
code-creation,BytecodeHandler,0,16722,0x1646bc0,88,LdaImmutableCurrentContextSlot
code-creation,BytecodeHandler,0,16732,0x1646c20,32,Star
code-creation,BytecodeHandler,0,16740,0x1646c60,40,Mov
code-creation,BytecodeHandler,0,16748,0x1646ca0,40,PushContext
code-creation,BytecodeHandler,0,16756,0x1646ce0,36,PopContext
code-creation,BytecodeHandler,0,16764,0x1646d20,48,TestReferenceEqual
code-creation,BytecodeHandler,0,16773,0x1646d60,52,TestUndetectable
code-creation,BytecodeHandler,0,16782,0x1646da0,36,TestNull
code-creation,BytecodeHandler,0,16790,0x1646de0,36,TestUndefined
code-creation,BytecodeHandler,0,16798,0x1646e20,336,TestTypeOf
code-creation,BytecodeHandler,0,16807,0x1646f80,4892,LdaGlobal
code-creation,BytecodeHandler,0,16815,0x16482a0,3700,LdaGlobalInsideTypeof
code-creation,BytecodeHandler,0,16823,0x1649120,168,StaGlobal
code-creation,BytecodeHandler,0,16828,0x16491e0,176,StaContextSlot
code-creation,BytecodeHandler,0,16834,0x16492a0,132,StaCurrentContextSlot
code-creation,BytecodeHandler,0,16847,0x1649340,124,LdaLookupSlot
code-creation,BytecodeHandler,0,16855,0x16493c0,240,LdaLookupContextSlot
code-creation,BytecodeHandler,0,16864,0x16494c0,3944,LdaLookupGlobalSlot
code-creation,BytecodeHandler,0,16872,0x164a440,124,LdaLookupSlotInsideTypeof
code-creation,BytecodeHandler,0,16882,0x164a4c0,240,LdaLookupContextSlotInsideTypeof
code-creation,BytecodeHandler,0,16891,0x164a5c0,3908,LdaLookupGlobalSlotInsideTypeof
code-creation,BytecodeHandler,0,16900,0x164b520,220,StaLookupSlot
code-creation,BytecodeHandler,0,16909,0x164b600,4464,LdaNamedProperty
code-creation,BytecodeHandler,0,16918,0x164c780,124,LdaNamedPropertyNoFeedback
code-creation,BytecodeHandler,0,16926,0x164c800,180,LdaNamedPropertyFromSuper
code-creation,BytecodeHandler,0,16935,0x164c8c0,212,LdaKeyedProperty
code-creation,BytecodeHandler,0,16944,0x164c9a0,160,LdaModuleVariable
code-creation,BytecodeHandler,0,16952,0x164ca60,312,StaModuleVariable
code-creation,BytecodeHandler,0,16960,0x164cba0,172,StaNamedProperty
code-creation,BytecodeHandler,0,16969,0x164cc60,136,StaNamedPropertyNoFeedback
code-creation,BytecodeHandler,0,16978,0x164cd00,172,StaNamedOwnProperty
code-creation,BytecodeHandler,0,16986,0x164cdc0,164,StaKeyedProperty
code-creation,BytecodeHandler,0,16994,0x164ce80,164,StaInArrayLiteral
code-creation,BytecodeHandler,0,17003,0x164cf40,196,StaDataPropertyInLiteral
code-creation,BytecodeHandler,0,17011,0x164d020,160,CollectTypeProfile
code-creation,BytecodeHandler,0,17020,0x164d0e0,1028,Add
code-creation,BytecodeHandler,0,17029,0x164d500,1064,Sub
code-creation,BytecodeHandler,0,17037,0x164d940,1024,Mul
code-creation,BytecodeHandler,0,17045,0x164dd60,984,Div
code-creation,BytecodeHandler,0,17053,0x164e140,912,Mod
code-creation,BytecodeHandler,0,17061,0x164e4e0,184,Exp
code-creation,BytecodeHandler,0,17069,0x164e5a0,876,BitwiseOr
code-creation,BytecodeHandler,0,17077,0x164e920,888,BitwiseXor
code-creation,BytecodeHandler,0,17086,0x164eca0,888,BitwiseAnd
code-creation,BytecodeHandler,0,17094,0x164f020,900,ShiftLeft
code-creation,BytecodeHandler,0,17102,0x164f3c0,900,ShiftRight
code-creation,BytecodeHandler,0,17110,0x164f760,1020,ShiftRightLogical
code-creation,BytecodeHandler,0,17118,0x164fb60,956,AddSmi
code-creation,BytecodeHandler,0,17127,0x164ff20,1000,SubSmi
code-creation,BytecodeHandler,0,17134,0x1650320,912,MulSmi
code-creation,BytecodeHandler,0,17143,0x16506c0,920,DivSmi
code-creation,BytecodeHandler,0,17151,0x1650a60,816,ModSmi
code-creation,BytecodeHandler,0,17160,0x1650da0,184,ExpSmi
code-creation,BytecodeHandler,0,17167,0x1650e60,488,BitwiseOrSmi
code-creation,BytecodeHandler,0,17175,0x1651060,488,BitwiseXorSmi
code-creation,BytecodeHandler,0,17184,0x1651260,488,BitwiseAndSmi
code-creation,BytecodeHandler,0,17192,0x1651460,488,ShiftLeftSmi
code-creation,BytecodeHandler,0,17200,0x1651660,488,ShiftRightSmi
code-creation,BytecodeHandler,0,17208,0x1651860,640,ShiftRightLogicalSmi
code-creation,BytecodeHandler,0,17217,0x1651b00,656,Inc
code-creation,BytecodeHandler,0,17230,0x1651da0,656,Dec
code-creation,BytecodeHandler,0,17238,0x1652040,640,Negate
code-creation,BytecodeHandler,0,17245,0x16522e0,480,BitwiseNot
code-creation,BytecodeHandler,0,17254,0x16524e0,108,ToBooleanLogicalNot
code-creation,BytecodeHandler,0,17262,0x1652560,36,LogicalNot
code-creation,BytecodeHandler,0,17270,0x16525a0,208,TypeOf
code-creation,BytecodeHandler,0,17278,0x1652680,120,DeletePropertyStrict
code-creation,BytecodeHandler,0,17287,0x1652700,112,DeletePropertySloppy
code-creation,BytecodeHandler,0,17296,0x1652780,40,GetSuperConstructor
code-creation,BytecodeHandler,0,17304,0x16527c0,1176,CallAnyReceiver
code-creation,BytecodeHandler,0,17313,0x1652c60,1176,CallProperty
code-creation,BytecodeHandler,0,17321,0x1653100,1056,CallProperty0
code-creation,BytecodeHandler,0,17329,0x1653540,1072,CallProperty1
code-creation,BytecodeHandler,0,17337,0x1653980,1084,CallProperty2
code-creation,BytecodeHandler,0,17345,0x1653dc0,1056,CallUndefinedReceiver
code-creation,BytecodeHandler,0,17354,0x1654200,1088,CallUndefinedReceiver0
code-creation,BytecodeHandler,0,17362,0x1654660,1068,CallUndefinedReceiver1
code-creation,BytecodeHandler,0,17370,0x1654aa0,1080,CallUndefinedReceiver2
code-creation,BytecodeHandler,0,17379,0x1654ee0,60,CallNoFeedback
code-creation,BytecodeHandler,0,17387,0x1654f20,1176,CallWithSpread
code-creation,BytecodeHandler,0,17395,0x16553c0,124,CallRuntime
code-creation,BytecodeHandler,0,17403,0x1655440,156,CallRuntimeForPair
code-creation,BytecodeHandler,0,17413,0x16554e0,80,CallJSRuntime
code-creation,BytecodeHandler,0,17421,0x1655540,1548,InvokeIntrinsic
code-creation,BytecodeHandler,0,17430,0x1655b60,1068,Construct
code-creation,BytecodeHandler,0,17439,0x1655fa0,556,ConstructWithSpread
code-creation,BytecodeHandler,0,17448,0x16561e0,1936,TestEqual
code-creation,BytecodeHandler,0,17456,0x1656980,1064,TestEqualStrict
code-creation,BytecodeHandler,0,17464,0x1656dc0,1624,TestLessThan
code-creation,BytecodeHandler,0,17472,0x1657420,1624,TestGreaterThan
code-creation,BytecodeHandler,0,17480,0x1657a80,1624,TestLessThanOrEqual
code-creation,BytecodeHandler,0,17488,0x16580e0,1624,TestGreaterThanOrEqual
code-creation,BytecodeHandler,0,17498,0x1658740,868,TestInstanceOf
code-creation,BytecodeHandler,0,17506,0x1658ac0,156,TestIn
code-creation,BytecodeHandler,0,17514,0x1658b60,112,ToName
code-creation,BytecodeHandler,0,17523,0x1658be0,212,ToNumber
code-creation,BytecodeHandler,0,17531,0x1658cc0,232,ToNumeric
code-creation,BytecodeHandler,0,17539,0x1658dc0,112,ToObject
code-creation,BytecodeHandler,0,17547,0x1658e40,116,ToString
code-creation,BytecodeHandler,0,17555,0x1658ec0,400,CreateRegExpLiteral
code-creation,BytecodeHandler,0,17564,0x1659060,1476,CreateArrayLiteral
code-creation,BytecodeHandler,0,17573,0x1659640,92,CreateArrayFromIterable
code-creation,BytecodeHandler,0,17582,0x16596a0,820,CreateEmptyArrayLiteral
code-creation,BytecodeHandler,0,17591,0x16599e0,2188,CreateObjectLiteral
code-creation,BytecodeHandler,0,17600,0x165a280,220,CreateEmptyObjectLiteral
code-creation,BytecodeHandler,0,17608,0x165a360,168,CloneObject
code-creation,BytecodeHandler,0,17617,0x165a420,212,GetTemplateObject
code-creation,BytecodeHandler,0,17625,0x165a500,328,CreateClosure
code-creation,BytecodeHandler,0,17633,0x165a660,120,CreateBlockContext
code-creation,BytecodeHandler,0,17641,0x165a6e0,132,CreateCatchContext
code-creation,BytecodeHandler,0,17650,0x165a780,256,CreateFunctionContext
code-creation,BytecodeHandler,0,17659,0x165a8a0,256,CreateEvalContext
code-creation,BytecodeHandler,0,17667,0x165a9c0,132,CreateWithContext
code-creation,BytecodeHandler,0,17675,0x165aa60,1560,CreateMappedArguments
code-creation,BytecodeHandler,0,17683,0x165b080,588,CreateUnmappedArguments
code-creation,BytecodeHandler,0,17692,0x165b2e0,628,CreateRestParameter
code-creation,BytecodeHandler,0,17701,0x165b560,532,JumpLoop
code-creation,BytecodeHandler,0,17710,0x165b780,44,Jump
code-creation,BytecodeHandler,0,17717,0x165b7c0,56,JumpConstant
code-creation,BytecodeHandler,0,17725,0x165b800,80,JumpIfNullConstant
code-creation,BytecodeHandler,0,17738,0x165b860,80,JumpIfNotNullConstant
code-creation,BytecodeHandler,0,17746,0x165b8c0,80,JumpIfUndefinedConstant
code-creation,BytecodeHandler,0,17755,0x165b920,80,JumpIfNotUndefinedConstant
code-creation,BytecodeHandler,0,17764,0x165b980,84,JumpIfUndefinedOrNullConstant
code-creation,BytecodeHandler,0,17773,0x165b9e0,80,JumpIfTrueConstant
code-creation,BytecodeHandler,0,17781,0x165ba40,80,JumpIfFalseConstant
code-creation,BytecodeHandler,0,17789,0x165baa0,88,JumpIfJSReceiverConstant
code-creation,BytecodeHandler,0,17799,0x165bb00,152,JumpIfToBooleanTrueConstant
code-creation,BytecodeHandler,0,17808,0x165bba0,152,JumpIfToBooleanFalseConstant
code-creation,BytecodeHandler,0,17817,0x165bc40,136,JumpIfToBooleanTrue
code-creation,BytecodeHandler,0,17826,0x165bce0,136,JumpIfToBooleanFalse
code-creation,BytecodeHandler,0,17835,0x165bd80,64,JumpIfTrue
code-creation,BytecodeHandler,0,17844,0x165bde0,64,JumpIfFalse
code-creation,BytecodeHandler,0,17851,0x165be40,64,JumpIfNull
code-creation,BytecodeHandler,0,17860,0x165bea0,64,JumpIfNotNull
code-creation,BytecodeHandler,0,17868,0x165bf00,64,JumpIfUndefined
code-creation,BytecodeHandler,0,17876,0x165bf60,64,JumpIfNotUndefined
code-creation,BytecodeHandler,0,17884,0x165bfc0,72,JumpIfUndefinedOrNull
code-creation,BytecodeHandler,0,17890,0x165c020,76,JumpIfJSReceiver
code-creation,BytecodeHandler,0,17901,0x165c080,108,SwitchOnSmiNoFeedback
code-creation,BytecodeHandler,0,17907,0x165c100,464,ForInEnumerate
code-creation,BytecodeHandler,0,17915,0x165c2e0,252,ForInPrepare
code-creation,BytecodeHandler,0,17923,0x165c3e0,60,ForInContinue
code-creation,BytecodeHandler,0,17932,0x165c420,256,ForInNext
code-creation,BytecodeHandler,0,17941,0x165c540,48,ForInStep
code-creation,BytecodeHandler,0,17948,0x165c580,36,SetPendingMessage
code-creation,BytecodeHandler,0,17957,0x165c5c0,116,Throw
code-creation,BytecodeHandler,0,17965,0x165c640,116,ReThrow
code-creation,BytecodeHandler,0,17973,0x165c6c0,112,Return
code-creation,BytecodeHandler,0,17981,0x165c740,196,ThrowReferenceErrorIfHole
code-creation,BytecodeHandler,0,17990,0x165c820,132,ThrowSuperNotCalledIfHole
code-creation,BytecodeHandler,0,17999,0x165c8c0,132,ThrowSuperAlreadyCalledIfNotHole
code-creation,BytecodeHandler,0,18008,0x165c960,156,ThrowIfNotSuperConstructor
code-creation,BytecodeHandler,0,18017,0x165ca00,120,SwitchOnGeneratorState
code-creation,BytecodeHandler,0,18026,0x165ca80,556,SuspendGenerator
code-creation,BytecodeHandler,0,18034,0x165ccc0,128,ResumeGenerator
code-creation,BytecodeHandler,0,18043,0x165cd60,152,GetIterator
code-creation,BytecodeHandler,0,18051,0x165ce00,116,Debugger
code-creation,BytecodeHandler,0,18059,0x165ce80,124,IncBlockCounter
code-creation,BytecodeHandler,0,18068,0x165cf00,56,Abort
code-creation,BytecodeHandler,0,18076,0x165cf40,32,Star0
code-creation,BytecodeHandler,0,18084,0x165cf80,60,Illegal
code-creation,BytecodeHandler,0,18094,0x165cfc0,108,DebugBreak1.Wide
code-creation,BytecodeHandler,0,18103,0x165d040,108,DebugBreak2.Wide
code-creation,BytecodeHandler,0,18112,0x165d0c0,108,DebugBreak3.Wide
code-creation,BytecodeHandler,0,18120,0x165d140,108,DebugBreak4.Wide
code-creation,BytecodeHandler,0,18128,0x165d1c0,108,DebugBreak5.Wide
code-creation,BytecodeHandler,0,18138,0x165d240,108,DebugBreak6.Wide
code-creation,BytecodeHandler,0,18148,0x165d2c0,32,Ldar.Wide
code-creation,BytecodeHandler,0,18156,0x165d300,32,LdaSmi.Wide
code-creation,BytecodeHandler,0,18165,0x165d340,32,LdaConstant.Wide
code-creation,BytecodeHandler,0,18174,0x165d380,92,LdaContextSlot.Wide
code-creation,BytecodeHandler,0,18182,0x165d3e0,92,LdaImmutableContextSlot.Wide
code-creation,BytecodeHandler,0,18191,0x165d440,48,LdaCurrentContextSlot.Wide
code-creation,BytecodeHandler,0,18200,0x165d480,48,LdaImmutableCurrentContextSlot.Wide
code-creation,BytecodeHandler,0,18210,0x165d4c0,32,Star.Wide
code-creation,BytecodeHandler,0,18218,0x165d500,40,Mov.Wide
code-creation,BytecodeHandler,0,18226,0x165d540,40,PushContext.Wide
code-creation,BytecodeHandler,0,18235,0x165d580,36,PopContext.Wide
code-creation,BytecodeHandler,0,18247,0x165d5c0,48,TestReferenceEqual.Wide
code-creation,BytecodeHandler,0,18257,0x165d600,3832,LdaGlobal.Wide
code-creation,BytecodeHandler,0,18266,0x165e500,3764,LdaGlobalInsideTypeof.Wide
code-creation,BytecodeHandler,0,18275,0x165f3c0,172,StaGlobal.Wide
code-creation,BytecodeHandler,0,18284,0x165f480,176,StaContextSlot.Wide
code-creation,BytecodeHandler,0,18293,0x165f540,132,StaCurrentContextSlot.Wide
code-creation,BytecodeHandler,0,18302,0x165f5e0,128,LdaLookupSlot.Wide
code-creation,BytecodeHandler,0,18310,0x165f680,244,LdaLookupContextSlot.Wide
code-creation,BytecodeHandler,0,18326,0x165f780,4012,LdaLookupGlobalSlot.Wide
code-creation,BytecodeHandler,0,18335,0x1660740,128,LdaLookupSlotInsideTypeof.Wide
code-creation,BytecodeHandler,0,18345,0x16607e0,244,LdaLookupContextSlotInsideTypeof.Wide
code-creation,BytecodeHandler,0,18355,0x16608e0,3976,LdaLookupGlobalSlotInsideTypeof.Wide
code-creation,BytecodeHandler,0,18364,0x1661880,220,StaLookupSlot.Wide
code-creation,BytecodeHandler,0,18373,0x1661960,4468,LdaNamedProperty.Wide
code-creation,BytecodeHandler,0,18382,0x1662ae0,128,LdaNamedPropertyNoFeedback.Wide
code-creation,BytecodeHandler,0,18391,0x1662b80,188,LdaNamedPropertyFromSuper.Wide
code-creation,BytecodeHandler,0,18400,0x1662c40,160,LdaKeyedProperty.Wide
code-creation,BytecodeHandler,0,18409,0x1662d00,160,LdaModuleVariable.Wide
code-creation,BytecodeHandler,0,18417,0x1662dc0,316,StaModuleVariable.Wide
code-creation,BytecodeHandler,0,18426,0x1662f00,176,StaNamedProperty.Wide
code-creation,BytecodeHandler,0,18435,0x1662fc0,140,StaNamedPropertyNoFeedback.Wide
code-creation,BytecodeHandler,0,18444,0x1663060,176,StaNamedOwnProperty.Wide
code-creation,BytecodeHandler,0,18452,0x1663120,168,StaKeyedProperty.Wide
code-creation,BytecodeHandler,0,18461,0x16631e0,168,StaInArrayLiteral.Wide
code-creation,BytecodeHandler,0,18469,0x16632a0,200,StaDataPropertyInLiteral.Wide
code-creation,BytecodeHandler,0,18478,0x1663380,164,CollectTypeProfile.Wide
code-creation,BytecodeHandler,0,18487,0x1663440,984,Add.Wide
code-creation,BytecodeHandler,0,18495,0x1663820,1020,Sub.Wide
code-creation,BytecodeHandler,0,18503,0x1663c20,972,Mul.Wide
code-creation,BytecodeHandler,0,18512,0x1664000,988,Div.Wide
code-creation,BytecodeHandler,0,18520,0x16643e0,916,Mod.Wide
code-creation,BytecodeHandler,0,18528,0x1664780,188,Exp.Wide
code-creation,BytecodeHandler,0,18536,0x1664840,904,BitwiseOr.Wide
code-creation,BytecodeHandler,0,18545,0x1664be0,920,BitwiseXor.Wide
code-creation,BytecodeHandler,0,18553,0x1664f80,920,BitwiseAnd.Wide
code-creation,BytecodeHandler,0,18561,0x1665320,932,ShiftLeft.Wide
code-creation,BytecodeHandler,0,18570,0x16656e0,932,ShiftRight.Wide
code-creation,BytecodeHandler,0,18578,0x1665aa0,1048,ShiftRightLogical.Wide
code-creation,BytecodeHandler,0,18588,0x1665ec0,916,AddSmi.Wide
code-creation,BytecodeHandler,0,18596,0x1666260,960,SubSmi.Wide
code-creation,BytecodeHandler,0,18604,0x1666640,912,MulSmi.Wide
code-creation,BytecodeHandler,0,18613,0x16669e0,916,DivSmi.Wide
code-creation,BytecodeHandler,0,18621,0x1666d80,816,ModSmi.Wide
code-creation,BytecodeHandler,0,18630,0x16670c0,184,ExpSmi.Wide
code-creation,BytecodeHandler,0,18638,0x1667180,496,BitwiseOrSmi.Wide
code-creation,BytecodeHandler,0,18646,0x1667380,496,BitwiseXorSmi.Wide
code-creation,BytecodeHandler,0,18665,0x1667580,496,BitwiseAndSmi.Wide
code-creation,BytecodeHandler,0,18672,0x1667780,496,ShiftLeftSmi.Wide
code-creation,BytecodeHandler,0,18681,0x1667980,496,ShiftRightSmi.Wide
code-creation,BytecodeHandler,0,18690,0x1667b80,648,ShiftRightLogicalSmi.Wide
code-creation,BytecodeHandler,0,18699,0x1667e20,616,Inc.Wide
code-creation,BytecodeHandler,0,18707,0x16680a0,616,Dec.Wide
code-creation,BytecodeHandler,0,18716,0x1668320,644,Negate.Wide
code-creation,BytecodeHandler,0,18724,0x16685c0,492,BitwiseNot.Wide
code-creation,BytecodeHandler,0,18733,0x16687c0,124,DeletePropertyStrict.Wide
code-creation,BytecodeHandler,0,18742,0x1668840,116,DeletePropertySloppy.Wide
code-creation,BytecodeHandler,0,18751,0x16688c0,40,GetSuperConstructor.Wide
code-creation,BytecodeHandler,0,18765,0x1668900,1176,CallAnyReceiver.Wide
code-creation,BytecodeHandler,0,18774,0x1668da0,1176,CallProperty.Wide
code-creation,BytecodeHandler,0,18783,0x1669240,1060,CallProperty0.Wide
code-creation,BytecodeHandler,0,18791,0x1669680,1076,CallProperty1.Wide
code-creation,BytecodeHandler,0,18800,0x1669ac0,1088,CallProperty2.Wide
code-creation,BytecodeHandler,0,18809,0x1669f20,1060,CallUndefinedReceiver.Wide
code-creation,BytecodeHandler,0,18818,0x166a360,1092,CallUndefinedReceiver0.Wide
code-creation,BytecodeHandler,0,18828,0x166a7c0,1068,CallUndefinedReceiver1.Wide
code-creation,BytecodeHandler,0,18837,0x166ac00,1084,CallUndefinedReceiver2.Wide
code-creation,BytecodeHandler,0,18846,0x166b040,64,CallNoFeedback.Wide
code-creation,BytecodeHandler,0,18855,0x166b0a0,1176,CallWithSpread.Wide
code-creation,BytecodeHandler,0,18865,0x166b540,128,CallRuntime.Wide
code-creation,BytecodeHandler,0,18873,0x166b5e0,168,CallRuntimeForPair.Wide
code-creation,BytecodeHandler,0,18882,0x166b6a0,84,CallJSRuntime.Wide
code-creation,BytecodeHandler,0,18890,0x166b700,1552,InvokeIntrinsic.Wide
code-creation,BytecodeHandler,0,18899,0x166bd20,1012,Construct.Wide
code-creation,BytecodeHandler,0,18908,0x166c120,492,ConstructWithSpread.Wide
code-creation,BytecodeHandler,0,18916,0x166c320,1964,TestEqual.Wide
code-creation,BytecodeHandler,0,18925,0x166cae0,1068,TestEqualStrict.Wide
code-creation,BytecodeHandler,0,18934,0x166cf20,1512,TestLessThan.Wide
code-creation,BytecodeHandler,0,18943,0x166d520,1512,TestGreaterThan.Wide
code-creation,BytecodeHandler,0,18952,0x166db20,1512,TestLessThanOrEqual.Wide
code-creation,BytecodeHandler,0,18958,0x166e120,1512,TestGreaterThanOrEqual.Wide
code-creation,BytecodeHandler,0,18973,0x166e720,872,TestInstanceOf.Wide
code-creation,BytecodeHandler,0,18981,0x166eaa0,160,TestIn.Wide
code-creation,BytecodeHandler,0,18989,0x166eb60,116,ToName.Wide
code-creation,BytecodeHandler,0,18997,0x166ebe0,216,ToNumber.Wide
code-creation,BytecodeHandler,0,19005,0x166ecc0,236,ToNumeric.Wide
code-creation,BytecodeHandler,0,19014,0x166edc0,116,ToObject.Wide
code-creation,BytecodeHandler,0,19022,0x166ee40,404,CreateRegExpLiteral.Wide
code-creation,BytecodeHandler,0,19031,0x166efe0,1384,CreateArrayLiteral.Wide
code-creation,BytecodeHandler,0,19039,0x166f560,820,CreateEmptyArrayLiteral.Wide
code-creation,BytecodeHandler,0,19048,0x166f8a0,2088,CreateObjectLiteral.Wide
code-creation,BytecodeHandler,0,19057,0x16700e0,172,CloneObject.Wide
code-creation,BytecodeHandler,0,19065,0x16701a0,164,GetTemplateObject.Wide
code-creation,BytecodeHandler,0,19074,0x1670260,320,CreateClosure.Wide
code-creation,BytecodeHandler,0,19082,0x16703c0,124,CreateBlockContext.Wide
code-creation,BytecodeHandler,0,19090,0x1670440,136,CreateCatchContext.Wide
code-creation,BytecodeHandler,0,19100,0x16704e0,256,CreateFunctionContext.Wide
code-creation,BytecodeHandler,0,19109,0x1670600,256,CreateEvalContext.Wide
code-creation,BytecodeHandler,0,19117,0x1670720,136,CreateWithContext.Wide
code-creation,BytecodeHandler,0,19126,0x16707c0,552,JumpLoop.Wide
code-creation,BytecodeHandler,0,19146,0x1670a00,44,Jump.Wide
code-creation,BytecodeHandler,0,19155,0x1670a40,56,JumpConstant.Wide
code-creation,BytecodeHandler,0,19163,0x1670a80,80,JumpIfNullConstant.Wide
code-creation,BytecodeHandler,0,19172,0x1670ae0,80,JumpIfNotNullConstant.Wide
code-creation,BytecodeHandler,0,19181,0x1670b40,80,JumpIfUndefinedConstant.Wide
code-creation,BytecodeHandler,0,19190,0x1670ba0,80,JumpIfNotUndefinedConstant.Wide
code-creation,BytecodeHandler,0,19200,0x1670c00,84,JumpIfUndefinedOrNullConstant.Wide
code-creation,BytecodeHandler,0,19208,0x1670c60,80,JumpIfTrueConstant.Wide
code-creation,BytecodeHandler,0,19218,0x1670cc0,80,JumpIfFalseConstant.Wide
code-creation,BytecodeHandler,0,19226,0x1670d20,88,JumpIfJSReceiverConstant.Wide
code-creation,BytecodeHandler,0,19235,0x1670d80,152,JumpIfToBooleanTrueConstant.Wide
code-creation,BytecodeHandler,0,19244,0x1670e20,152,JumpIfToBooleanFalseConstant.Wide
code-creation,BytecodeHandler,0,19254,0x1670ec0,136,JumpIfToBooleanTrue.Wide
code-creation,BytecodeHandler,0,19267,0x1670f60,136,JumpIfToBooleanFalse.Wide
code-creation,BytecodeHandler,0,19276,0x1671000,64,JumpIfTrue.Wide
code-creation,BytecodeHandler,0,19285,0x1671060,64,JumpIfFalse.Wide
code-creation,BytecodeHandler,0,19294,0x16710c0,64,JumpIfNull.Wide
code-creation,BytecodeHandler,0,19303,0x1671120,64,JumpIfNotNull.Wide
code-creation,BytecodeHandler,0,19311,0x1671180,64,JumpIfUndefined.Wide
code-creation,BytecodeHandler,0,19319,0x16711e0,64,JumpIfNotUndefined.Wide
code-creation,BytecodeHandler,0,19328,0x1671240,72,JumpIfUndefinedOrNull.Wide
code-creation,BytecodeHandler,0,19337,0x16712a0,76,JumpIfJSReceiver.Wide
code-creation,BytecodeHandler,0,19345,0x1671300,108,SwitchOnSmiNoFeedback.Wide
code-creation,BytecodeHandler,0,19354,0x1671380,468,ForInEnumerate.Wide
code-creation,BytecodeHandler,0,19363,0x1671560,252,ForInPrepare.Wide
code-creation,BytecodeHandler,0,19372,0x1671660,60,ForInContinue.Wide
code-creation,BytecodeHandler,0,19380,0x16716a0,260,ForInNext.Wide
code-creation,BytecodeHandler,0,19388,0x16717c0,48,ForInStep.Wide
code-creation,BytecodeHandler,0,19397,0x1671800,156,ThrowReferenceErrorIfHole.Wide
code-creation,BytecodeHandler,0,19406,0x16718a0,160,ThrowIfNotSuperConstructor.Wide
code-creation,BytecodeHandler,0,19415,0x1671960,120,SwitchOnGeneratorState.Wide
code-creation,BytecodeHandler,0,19424,0x16719e0,568,SuspendGenerator.Wide
code-creation,BytecodeHandler,0,19433,0x1671c20,128,ResumeGenerator.Wide
code-creation,BytecodeHandler,0,19441,0x1671cc0,156,GetIterator.Wide
code-creation,BytecodeHandler,0,19450,0x1671d60,128,IncBlockCounter.Wide
code-creation,BytecodeHandler,0,19459,0x1671e00,56,Abort.Wide
code-creation,BytecodeHandler,0,19467,0x1671e40,108,DebugBreak1.ExtraWide
code-creation,BytecodeHandler,0,19476,0x1671ec0,108,DebugBreak2.ExtraWide
code-creation,BytecodeHandler,0,19485,0x1671f40,108,DebugBreak3.ExtraWide
code-creation,BytecodeHandler,0,19494,0x1671fc0,108,DebugBreak4.ExtraWide
code-creation,BytecodeHandler,0,19502,0x1672040,108,DebugBreak5.ExtraWide
code-creation,BytecodeHandler,0,19512,0x16720c0,108,DebugBreak6.ExtraWide
code-creation,BytecodeHandler,0,19521,0x1672140,32,Ldar.ExtraWide
code-creation,BytecodeHandler,0,19529,0x1672180,28,LdaSmi.ExtraWide
code-creation,BytecodeHandler,0,19538,0x16721a0,32,LdaConstant.ExtraWide
code-creation,BytecodeHandler,0,19546,0x16721e0,88,LdaContextSlot.ExtraWide
code-creation,BytecodeHandler,0,19555,0x1672240,88,LdaImmutableContextSlot.ExtraWide
code-creation,BytecodeHandler,0,19564,0x16722a0,48,LdaCurrentContextSlot.ExtraWide
code-creation,BytecodeHandler,0,19573,0x16722e0,48,LdaImmutableCurrentContextSlot.ExtraWide
code-creation,BytecodeHandler,0,19582,0x1672320,28,Star.ExtraWide
code-creation,BytecodeHandler,0,19591,0x1672340,40,Mov.ExtraWide
code-creation,BytecodeHandler,0,19599,0x1672380,36,PushContext.ExtraWide
code-creation,BytecodeHandler,0,19608,0x16723c0,32,PopContext.ExtraWide
code-creation,BytecodeHandler,0,19617,0x1672400,48,TestReferenceEqual.ExtraWide
code-creation,BytecodeHandler,0,19625,0x1672440,3820,LdaGlobal.ExtraWide
code-creation,BytecodeHandler,0,19634,0x1673340,3752,LdaGlobalInsideTypeof.ExtraWide
code-creation,BytecodeHandler,0,19643,0x1674200,168,StaGlobal.ExtraWide
code-creation,BytecodeHandler,0,19652,0x16742c0,172,StaContextSlot.ExtraWide
code-creation,BytecodeHandler,0,19660,0x1674380,132,StaCurrentContextSlot.ExtraWide
code-creation,BytecodeHandler,0,19669,0x1674420,128,LdaLookupSlot.ExtraWide
code-creation,BytecodeHandler,0,19678,0x16744c0,240,LdaLookupContextSlot.ExtraWide
code-creation,BytecodeHandler,0,19688,0x16745c0,4000,LdaLookupGlobalSlot.ExtraWide
code-creation,BytecodeHandler,0,19696,0x1675580,128,LdaLookupSlotInsideTypeof.ExtraWide
code-creation,BytecodeHandler,0,19705,0x1675620,240,LdaLookupContextSlotInsideTypeof.ExtraWide
code-creation,BytecodeHandler,0,19716,0x1675720,3964,LdaLookupGlobalSlotInsideTypeof.ExtraWide
code-creation,BytecodeHandler,0,19726,0x16766a0,220,StaLookupSlot.ExtraWide
code-creation,BytecodeHandler,0,19735,0x1676780,4448,LdaNamedProperty.ExtraWide
code-creation,BytecodeHandler,0,19743,0x1677900,124,LdaNamedPropertyNoFeedback.ExtraWide
code-creation,BytecodeHandler,0,19757,0x1677980,184,LdaNamedPropertyFromSuper.ExtraWide
code-creation,BytecodeHandler,0,19767,0x1677a40,156,LdaKeyedProperty.ExtraWide
code-creation,BytecodeHandler,0,19777,0x1677ae0,160,LdaModuleVariable.ExtraWide
code-creation,BytecodeHandler,0,19785,0x1677ba0,316,StaModuleVariable.ExtraWide
code-creation,BytecodeHandler,0,19794,0x1677ce0,172,StaNamedProperty.ExtraWide
code-creation,BytecodeHandler,0,19803,0x1677da0,136,StaNamedPropertyNoFeedback.ExtraWide
code-creation,BytecodeHandler,0,19812,0x1677e40,172,StaNamedOwnProperty.ExtraWide
code-creation,BytecodeHandler,0,19821,0x1677f00,168,StaKeyedProperty.ExtraWide
code-creation,BytecodeHandler,0,19831,0x1677fc0,168,StaInArrayLiteral.ExtraWide
code-creation,BytecodeHandler,0,19840,0x1678080,196,StaDataPropertyInLiteral.ExtraWide
code-creation,BytecodeHandler,0,19849,0x1678160,164,CollectTypeProfile.ExtraWide
code-creation,BytecodeHandler,0,19858,0x1678220,980,Add.ExtraWide
code-creation,BytecodeHandler,0,19866,0x1678600,1016,Sub.ExtraWide
code-creation,BytecodeHandler,0,19875,0x1678a00,968,Mul.ExtraWide
code-creation,BytecodeHandler,0,19883,0x1678de0,984,Div.ExtraWide
code-creation,BytecodeHandler,0,19891,0x16791c0,912,Mod.ExtraWide
code-creation,BytecodeHandler,0,19900,0x1679560,188,Exp.ExtraWide
code-creation,BytecodeHandler,0,19909,0x1679620,904,BitwiseOr.ExtraWide
code-creation,BytecodeHandler,0,19918,0x16799c0,916,BitwiseXor.ExtraWide
code-creation,BytecodeHandler,0,19926,0x1679d60,916,BitwiseAnd.ExtraWide
code-creation,BytecodeHandler,0,19936,0x167a100,928,ShiftLeft.ExtraWide
code-creation,BytecodeHandler,0,19944,0x167a4c0,928,ShiftRight.ExtraWide
code-creation,BytecodeHandler,0,19952,0x167a880,1048,ShiftRightLogical.ExtraWide
code-creation,BytecodeHandler,0,19961,0x167aca0,916,AddSmi.ExtraWide
code-creation,BytecodeHandler,0,19970,0x167b040,956,SubSmi.ExtraWide
code-creation,BytecodeHandler,0,19979,0x167b400,908,MulSmi.ExtraWide
code-creation,BytecodeHandler,0,19988,0x167b7a0,916,DivSmi.ExtraWide
code-creation,BytecodeHandler,0,19996,0x167bb40,812,ModSmi.ExtraWide
code-creation,BytecodeHandler,0,20005,0x167be80,184,ExpSmi.ExtraWide
code-creation,BytecodeHandler,0,20014,0x167bf40,492,BitwiseOrSmi.ExtraWide
code-creation,BytecodeHandler,0,20020,0x167c140,492,BitwiseXorSmi.ExtraWide
code-creation,BytecodeHandler,0,20034,0x167c340,492,BitwiseAndSmi.ExtraWide
code-creation,BytecodeHandler,0,20043,0x167c540,492,ShiftLeftSmi.ExtraWide
code-creation,BytecodeHandler,0,20052,0x167c740,492,ShiftRightSmi.ExtraWide
code-creation,BytecodeHandler,0,20061,0x167c940,644,ShiftRightLogicalSmi.ExtraWide
code-creation,BytecodeHandler,0,20070,0x167cbe0,616,Inc.ExtraWide
code-creation,BytecodeHandler,0,20079,0x167ce60,616,Dec.ExtraWide
code-creation,BytecodeHandler,0,20088,0x167d0e0,644,Negate.ExtraWide
code-creation,BytecodeHandler,0,20096,0x167d380,488,BitwiseNot.ExtraWide
code-creation,BytecodeHandler,0,20105,0x167d580,124,DeletePropertyStrict.ExtraWide
code-creation,BytecodeHandler,0,20114,0x167d600,116,DeletePropertySloppy.ExtraWide
code-creation,BytecodeHandler,0,20123,0x167d680,36,GetSuperConstructor.ExtraWide
code-creation,BytecodeHandler,0,20133,0x167d6c0,1172,CallAnyReceiver.ExtraWide
code-creation,BytecodeHandler,0,20142,0x167db60,1172,CallProperty.ExtraWide
code-creation,BytecodeHandler,0,20151,0x167e000,1052,CallProperty0.ExtraWide
code-creation,BytecodeHandler,0,20161,0x167e420,1068,CallProperty1.ExtraWide
code-creation,BytecodeHandler,0,20169,0x167e860,1080,CallProperty2.ExtraWide
code-creation,BytecodeHandler,0,20178,0x167eca0,1056,CallUndefinedReceiver.ExtraWide
code-creation,BytecodeHandler,0,20187,0x167f0e0,1092,CallUndefinedReceiver0.ExtraWide
code-creation,BytecodeHandler,0,20196,0x167f540,1068,CallUndefinedReceiver1.ExtraWide
code-creation,BytecodeHandler,0,20206,0x167f980,1080,CallUndefinedReceiver2.ExtraWide
code-creation,BytecodeHandler,0,20215,0x167fdc0,60,CallNoFeedback.ExtraWide
code-creation,BytecodeHandler,0,20224,0x167fe00,1172,CallWithSpread.ExtraWide
code-creation,BytecodeHandler,0,20237,0x16802a0,128,CallRuntime.ExtraWide
code-creation,BytecodeHandler,0,20245,0x1680340,164,CallRuntimeForPair.ExtraWide
code-creation,BytecodeHandler,0,20254,0x1680400,80,CallJSRuntime.ExtraWide
code-creation,BytecodeHandler,0,20264,0x1680460,1548,InvokeIntrinsic.ExtraWide
code-creation,BytecodeHandler,0,20272,0x1680a80,1008,Construct.ExtraWide
code-creation,BytecodeHandler,0,20281,0x1680e80,488,ConstructWithSpread.ExtraWide
code-creation,BytecodeHandler,0,20290,0x1681080,1964,TestEqual.ExtraWide
code-creation,BytecodeHandler,0,20298,0x1681840,1068,TestEqualStrict.ExtraWide
code-creation,BytecodeHandler,0,20308,0x1681c80,1508,TestLessThan.ExtraWide
code-creation,BytecodeHandler,0,20317,0x1682280,1508,TestGreaterThan.ExtraWide
code-creation,BytecodeHandler,0,20326,0x1682880,1508,TestLessThanOrEqual.ExtraWide
code-creation,BytecodeHandler,0,20335,0x1682e80,1508,TestGreaterThanOrEqual.ExtraWide
code-creation,BytecodeHandler,0,20344,0x1683480,872,TestInstanceOf.ExtraWide
code-creation,BytecodeHandler,0,20353,0x1683800,156,TestIn.ExtraWide
code-creation,BytecodeHandler,0,20362,0x16838a0,116,ToName.ExtraWide
code-creation,BytecodeHandler,0,20370,0x1683920,216,ToNumber.ExtraWide
code-creation,BytecodeHandler,0,20379,0x1683a00,236,ToNumeric.ExtraWide
code-creation,BytecodeHandler,0,20387,0x1683b00,116,ToObject.ExtraWide
code-creation,BytecodeHandler,0,20396,0x1683b80,400,CreateRegExpLiteral.ExtraWide
code-creation,BytecodeHandler,0,20405,0x1683d20,1384,CreateArrayLiteral.ExtraWide
code-creation,BytecodeHandler,0,20414,0x16842a0,820,CreateEmptyArrayLiteral.ExtraWide
code-creation,BytecodeHandler,0,20423,0x16845e0,2088,CreateObjectLiteral.ExtraWide
code-creation,BytecodeHandler,0,20432,0x1684e20,168,CloneObject.ExtraWide
code-creation,BytecodeHandler,0,20442,0x1684ee0,160,GetTemplateObject.ExtraWide
code-creation,BytecodeHandler,0,20451,0x1684fa0,320,CreateClosure.ExtraWide
code-creation,BytecodeHandler,0,20460,0x1685100,124,CreateBlockContext.ExtraWide
code-creation,BytecodeHandler,0,20469,0x1685180,132,CreateCatchContext.ExtraWide
code-creation,BytecodeHandler,0,20478,0x1685220,252,CreateFunctionContext.ExtraWide
code-creation,BytecodeHandler,0,20488,0x1685320,252,CreateEvalContext.ExtraWide
code-creation,BytecodeHandler,0,20496,0x1685420,132,CreateWithContext.ExtraWide
code-creation,BytecodeHandler,0,20505,0x16854c0,552,JumpLoop.ExtraWide
code-creation,BytecodeHandler,0,20513,0x1685700,44,Jump.ExtraWide
code-creation,BytecodeHandler,0,20521,0x1685740,56,JumpConstant.ExtraWide
code-creation,BytecodeHandler,0,20530,0x1685780,76,JumpIfNullConstant.ExtraWide
code-creation,BytecodeHandler,0,20538,0x16857e0,76,JumpIfNotNullConstant.ExtraWide
code-creation,BytecodeHandler,0,20547,0x1685840,76,JumpIfUndefinedConstant.ExtraWide
code-creation,BytecodeHandler,0,20557,0x16858a0,76,JumpIfNotUndefinedConstant.ExtraWide
code-creation,BytecodeHandler,0,20566,0x1685900,84,JumpIfUndefinedOrNullConstant.ExtraWide
code-creation,BytecodeHandler,0,20575,0x1685960,76,JumpIfTrueConstant.ExtraWide
code-creation,BytecodeHandler,0,20584,0x16859c0,76,JumpIfFalseConstant.ExtraWide
code-creation,BytecodeHandler,0,20593,0x1685a20,88,JumpIfJSReceiverConstant.ExtraWide
code-creation,BytecodeHandler,0,20603,0x1685a80,148,JumpIfToBooleanTrueConstant.ExtraWide
code-creation,BytecodeHandler,0,20612,0x1685b20,148,JumpIfToBooleanFalseConstant.ExtraWide
code-creation,BytecodeHandler,0,20622,0x1685bc0,136,JumpIfToBooleanTrue.ExtraWide
code-creation,BytecodeHandler,0,20631,0x1685c60,136,JumpIfToBooleanFalse.ExtraWide
code-creation,BytecodeHandler,0,20640,0x1685d00,64,JumpIfTrue.ExtraWide
code-creation,BytecodeHandler,0,20649,0x1685d60,64,JumpIfFalse.ExtraWide
code-creation,BytecodeHandler,0,20657,0x1685dc0,64,JumpIfNull.ExtraWide
code-creation,BytecodeHandler,0,20666,0x1685e20,64,JumpIfNotNull.ExtraWide
code-creation,BytecodeHandler,0,20675,0x1685e80,64,JumpIfUndefined.ExtraWide
code-creation,BytecodeHandler,0,20684,0x1685ee0,64,JumpIfNotUndefined.ExtraWide
code-creation,BytecodeHandler,0,20693,0x1685f40,68,JumpIfUndefinedOrNull.ExtraWide
code-creation,BytecodeHandler,0,20706,0x1685fa0,72,JumpIfJSReceiver.ExtraWide
code-creation,BytecodeHandler,0,20715,0x1686000,108,SwitchOnSmiNoFeedback.ExtraWide
code-creation,BytecodeHandler,0,20724,0x1686080,464,ForInEnumerate.ExtraWide
code-creation,BytecodeHandler,0,20734,0x1686260,252,ForInPrepare.ExtraWide
code-creation,BytecodeHandler,0,20743,0x1686360,56,ForInContinue.ExtraWide
code-creation,BytecodeHandler,0,20752,0x16863a0,256,ForInNext.ExtraWide
code-creation,BytecodeHandler,0,20760,0x16864c0,44,ForInStep.ExtraWide
code-creation,BytecodeHandler,0,20769,0x1686500,156,ThrowReferenceErrorIfHole.ExtraWide
code-creation,BytecodeHandler,0,20779,0x16865a0,160,ThrowIfNotSuperConstructor.ExtraWide
code-creation,BytecodeHandler,0,20789,0x1686660,120,SwitchOnGeneratorState.ExtraWide
code-creation,BytecodeHandler,0,20798,0x16866e0,564,SuspendGenerator.ExtraWide
code-creation,BytecodeHandler,0,20807,0x1686920,124,ResumeGenerator.ExtraWide
code-creation,BytecodeHandler,0,20816,0x16869a0,152,GetIterator.ExtraWide
code-creation,BytecodeHandler,0,20824,0x1686a40,124,IncBlockCounter.ExtraWide
code-creation,BytecodeHandler,0,20833,0x1686ac0,56,Abort.ExtraWide
tick,0x7efc3363442b,20850,0,0x0,6
tick,0x7efc337b0839,20865,0,0x0,6
tick,0x7efc336c02cf,20869,0,0x0,6
tick,0xfb458a,20873,0,0x0,6
tick,0x7efc336c02cf,20876,0,0x0,6
tick,0x7efc33a647cd,20879,0,0x0,6
tick,0x7efc3363549c,20883,0,0x0,6
new,MemoryChunk,0x340986300000,262144
new,MemoryChunk,0x2886c9200000,262144
tick,0x1beafb9,22179,0,0x0,5
tick,0x1229b11,23234,0,0x0,5
new,MemoryChunk,0x122a19940000,262144
tick,0x122a820,24306,0,0x0,5
new,MemoryChunk,0x13b40ba80000,262144
tick,0x1226bc4,25366,0,0x0,5
tick,0x10da938,26433,0,0x0,5
code-creation,Eval,10,27273,0x13b40bab8cae,5, node:internal/main/run_main_module:1:1,0x13b40bab8b58,~
script-source,90,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,0x13b40bab8cae,90,0,632,C0O0C4O632,,
code-creation,Function,10,27357,0x13b40bab8d66,58, node:internal/main/run_main_module:1:1,0x13b40bab8c18,~
code-source-info,0x13b40bab8d66,90,0,632,C0O56C3O56C8O25C13O102C15O102C19O137C22O560C25O560C30O598C35O605C40O622C47O626C51O606C57O631,,
tick,0x1254b82,27494,0,0x0,6
code-creation,LazyCompile,10,27679,0x13b40bab8fb6,76,nativeModuleRequire node:internal/bootstrap/loaders:332:29,0x30ec9db8f8c8,~
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<string\x2C NativeModule>}\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,0x13b40bab8fb6,9,10315,10658,C0O10324C2O10335C4O10331C9O10351C13O10372C14O10392C19O10405C24O10409C29O10409C35O10550C37O10560C47O10608C60O10566C65O10560C66O10629C71O10629C75O10656,,
code-creation,LazyCompile,10,28506,0x13b40bab9cc6,175,compileForInternalLoader node:internal/bootstrap/loaders:299:27,0x30ec9db8f7f8,~
code-source-info,0x13b40bab9cc6,9,9528,10089,C0O9546C6O9561C12O9590C16O9598C17O9626C22O9634C23O9647C30O9690C37O9721C45O9690C63O9820C70O9820C75O9855C89O9890C103O9847C108O9928C109O9940C124O9970C126O9983C141O10003C152O10022C160O10054C165O10003C170O10077C174O10085,,
tick,0x162c0a0,28574,0,0x0,0,0x13b40bab8ffd,0x13b40bab8d69
code-creation,Eval,10,29029,0x13b40babac26,5, node:internal/bootstrap/pre_execution:1:1,0x13b40baba880,~
script-source,91,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  shouldNotRegisterESMLoader\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  CJSLoader.Module._initPaths();\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 (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,0x13b40babac26,91,0,15915,C0O0C4O15915,,
tick,0x7efc33a63f53,30156,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x13b40bab8d69
code-creation,Function,10,30174,0x13b40babb736,426, node:internal/bootstrap/pre_execution:1:1,0x13b40babab90,~
code-source-info,0x13b40babb736,91,0,15915,C0O0C190O25C196O43C202O67C208O78C214O93C220O122C226O211C232O211C237O162C243O180C249O276C255O276C260O248C266O324C272O324C277O313C283O385C289O385C294O411C299O351C305O434C311O434C315O434C317O15518C324O15539C330O15561C336O15583C342O15606C348O15623C354O15641C360O15671C366O15697C372O15720C378O15750C384O15782C390O15804C396O15831C402O15854C408O15874C414O15897C420O15533C425O15914,,
code-creation,Eval,10,30458,0x13b40babd026,5, node:internal/options:1:1,0x13b40babce60,~
script-source,92,node:internal/options,'use strict';\n\nconst { getOptions\x2C shouldNotRegisterESMLoader } = internalBinding('options');\n\nlet warnOnAllowUnauthorized = true;\n\nlet optionsMap;\nlet aliasesMap;\n\n// getOptions() 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 getOptionsFromBinding() {\n  if (!optionsMap) {\n    ({ options: optionsMap } = getOptions());\n  }\n  return optionsMap;\n}\n\nfunction getAliasesFromBinding() {\n  if (!aliasesMap) {\n    ({ aliases: aliasesMap } = getOptions());\n  }\n  return aliasesMap;\n}\n\nfunction getOptionValue(optionName) {\n  const options = getOptionsFromBinding();\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 getOptionsFromBinding();\n  }\x2C\n  get aliases() {\n    return getAliasesFromBinding();\n  }\x2C\n  getOptionValue\x2C\n  getAllowUnauthorized\x2C\n  shouldNotRegisterESMLoader\n};\n
code-source-info,0x13b40babd026,92,0,1612,C0O0C4O1612,,
code-creation,Function,10,30588,0x13b40babd3ae,139, node:internal/options:1:1,0x13b40babcf90,~
code-source-info,0x13b40babd3ae,92,0,1612,C0O0C43O66C46O66C51O23C57O35C62O125C63O125C65O136C66O136C68O152C69O152C71O1401C78O1540C84O1558C90O1582C133O1416C138O1611,,
tick,0xf66720,30712,0,0x0,3,0x11e9ce0,0x13b40babd3dc,0x13b40bab9d2d,0x13b40bab8ffd,0x13b40babb81e,0x13b40bab9d2d,0x13b40bab8ffd,0x13b40bab8d69
code-creation,LazyCompile,10,30730,0x13b40babd84e,69,internalBinding node:internal/bootstrap/loaders:164:45,0x30ec9db8f348,~
code-source-info,0x13b40babd84e,9,5115,5353,C0O5140C7O5150C11O5164C15O5201C25O5228C30O5226C37O5262C48O5281C56O5317C61O5262C66O5338C68O5349,,
code-creation,LazyCompile,10,31016,0x13b40babdf3e,213,prepareMainThreadExecution node:internal/bootstrap/pre_execution:22:36,0x13b40babac58,~
code-source-info,0x13b40babdf3e,91,498,2387,C10O641C15O641C18O743C21O743C25O778C28O778C31O807C34O807C37O827C40O827C43O852C46O852C49O1055C52O1067C57O1071C63O1095C66O1103C77O1159C82O1163C87O1132C91O1124C95O1190C98O1190C101O1282C104O1282C107O1388C110O1388C113O1410C116O1410C119O1469C122O1469C125O1792C128O1792C131O1867C134O1867C137O2064C140O2064C143O2091C146O2091C149O2125C152O2125C155O2153C158O2153C161O2173C164O2173C167O2198C170O2198C173O2242C179O2242C184O2284C189O2302C195O2284C199O2332C202O2332C205O2356C208O2356C212O2386,,
new,MemoryChunk,0x27ba8ebc0000,262144
code-creation,LazyCompile,10,31225,0x13b40babf166,19,reconnectZeroFillToggle node:internal/buffer:1072:33,0x73467cb1b08,~
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,0x13b40babf166,19,30717,30757,C0O30724C5O30735C11O30733C18O30756,,
tick,0x7efc335d45a0,33346,0,0x0,3,0x11e9ce0,0x13b40babdf4d,0x13b40bab8d75
tick,0x1257f00,33366,0,0x0,3,0x11e9ce0,0x13b40babdf4d,0x13b40bab8d75
code-creation,LazyCompile,10,33453,0x27ba8ebc3916,432,patchProcessObject node:internal/bootstrap/pre_execution:81:28,0x13b40babaca8,~
code-source-info,0x27ba8ebc3916,91,2416,4258,C0O2450C6O2450C11O2496C19O2496C24O2734C30O2734C35O2772C40O2773C46O2703C51O2715C56O2798C61O2813C65O2825C68O2833C75O2847C79O2866C90O2887C98O2973C104O2977C111O2866C116O2989C119O2997C129O3015C133O3005C137O3028C144O3055C151O3059C158O3073C164O3107C171O3111C178O3073C185O3189C191O3189C199O3222C202O3230C210O3245C218O3261C225O3265C229O3245C234O3238C244O3433C253O3433C258O3479C267O3479C272O3532C281O3532C286O3592C295O3592C300O3650C309O3650C314O3710C323O3710C328O3774C337O3774C342O3839C351O3839C356O3910C365O3910C370O3980C379O3980C384O4040C393O4040C398O4110C409O4110C414O4180C425O4180C431O4257,,
code-creation,LazyCompile,10,33676,0x27ba8ebc3fce,113,getFastAPIs node:internal/process/per_thread:57:21,0x73467cbc6f0,~
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 ' <arg>'))\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,0x27ba8ebc3fce,23,1229,2412,C0O1229C24O1285C29O1285C34O1263C40O1500C50O1524C57O1500C62O1500C64O2232C74O2259C86O2232C91O2232C93O2367C100O2380C106O2392C112O2410,,
tick,0x7efc3373d97a,34505,0,0x0,3,0x11e9ce0,0x27ba8ebc393e,0x13b40babdf53,0x13b40bab8d75
code-creation,LazyCompile,10,34825,0x27ba8ebc56a6,175,resolve node:path:1091:10,0xaad66763910,~
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,0x27ba8ebc56a6,35,33782,34692,C0O33782C3O33817C6O33848C8O33878C12O33885C16O33898C18O33892C25O33902C27O33946C28O33948C35O33959C42O33965C45O33965C49O33984C57O33984C62O34058C68O34065C73O34082C75O34107C87O34133C92O34155C99O34182C107O34221C109O34217C113O33921C118O33860C121O34437C126O34483C137O34452C143O34569C147O34599C152O34610C156O34625C157O34656C163O34663C174O34688,,
tick,0x7efc3363549c,37944,0,0x0,3,0x11e9ce0,0x27ba8ebc39fb,0x13b40babdf53,0x13b40bab8d75
tick,0x7efc33a6471c,37965,0,0x0,3,0x11e9ce0,0x27ba8ebc39fb,0x13b40babdf53,0x13b40bab8d75
tick,0x7efc3363549c,37970,0,0x0,3,0x11e9ce0,0x27ba8ebc39fb,0x13b40babdf53,0x13b40bab8d75
code-creation,LazyCompile,10,37992,0x27ba8ebc88ee,30,validateString node:internal/validators:117:24,0x73467c99d68,~
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\nconst validateObject = hideStackFrames(\n  (value\x2C name\x2C {\n    nullable = false\x2C\n    allowArray = false\x2C\n    allowFunction = false\x2C\n  } = {}) => {\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  if (typeof signal !== 'string')\n    throw new ERR_INVALID_ARG_TYPE(name\x2C 'string'\x2C signal);\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,0x27ba8ebc88ee,17,3398,3507,C0O3416C6O3451C22O3457C27O3451C29O3506,,
tick,0x7efc3363549c,38541,0,0x0,3,0x11e9ce0,0x27ba8ebc56df,0x27ba8ebc39fb,0x13b40babdf53,0x13b40bab8d75
code-creation,LazyCompile,10,38577,0x27ba8ebc921e,13, node:path:1082:10,0xaad667638c0,~
code-source-info,0x27ba8ebc921e,35,33631,33650,C0O33645C3O33645C8O33645C12O33650,,
code-creation,LazyCompile,10,38620,0x27ba8ebc932e,40,wrappedCwd node:internal/bootstrap/switches/does_own_process_state:124:20,0x3fe299d3e480,~
script-source,89,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,0x27ba8ebc932e,89,3341,3425,C0O3348C7O3362C12O3374C17O3397C22O3397C29O3384C35O3406C39O3423,,
code-creation,LazyCompile,10,39016,0x27ba8ebc99a6,442,normalizeString node:path:66:25,0xaad66763428,~
code-source-info,0x27ba8ebc99a6,35,2161,4085,C0O2226C3O2256C5O2277C8O2294C10O2310C12O2328C14O2341C18O2333C23O2373C27O2366C32O2387C37O2394C45O2443C51O2472C53O2494C58O2530C64O2561C66O2581C69O2575C76O2593C83O2631C85O2640C90O2665C97O2672C104O2697C111O2718C114O2753C118O2760C122O2718C130O2769C132O2765C139O2793C142O2828C146O2835C150O2793C158O2844C160O2840C165O2874C172O2881C177O2923C182O2923C188O2979C190O2998C195O3022C198O3046C202O3104C215O3110C221O3210C225O3217C231O3223C234O3223C239O3221C243O3293C246O3320C248O3342C250O3377C256O3384C261O3405C264O3427C266O3462C269O3489C271O3511C273O3551C277O3594C283O3601C293O3610C308O3642C313O3706C319O3713C324O3728C326O3738C330O3750C335O3787C345O3750C363O3821C370O3864C380O3827C386O3881C388O3903C391O3915C395O3934C398O3955C402O3976C404O3989C406O3985C413O4006C418O4022C425O4049C428O2351C433O2315C439O4072C441O4083,,
code-creation,LazyCompile,10,39089,0x27ba8ebc9d36,8,isPosixPathSeparator node:path:56:30,0xaad66763388,~
code-source-info,0x27ba8ebc9d36,35,1854,1902,C0O1865C2O1881C4O1877C7O1900,,
code-creation,LazyCompile,10,39196,0x27ba8ebc9ed6,63,addReadOnlyProcessAlias node:internal/bootstrap/pre_execution:129:33,0x13b40babacf8,~
code-source-info,0x27ba8ebc9ed6,91,4292,4517,C16O4344C21O4344C26O4370C28O4387C36O4417C43O4480C49O4498C56O4387C62O4516,,
code-creation,LazyCompile,10,39256,0x27ba8ebca066,82,getOptionValue node:internal/options:28:24,0x13b40babd0f8,~
code-source-info,0x27ba8ebca066,92,692,932,C0O725C3O725C7O767C15O767C22O817C30O839C38O839C43O826C47O817C53O854C55O879C60O885C61O907C66O907C74O922C81O930,,
tick,0x7efc336c02cf,39297,0,0x0,3,0x11e9ce0,0x27ba8ebc9eeb,0x27ba8ebc3a13,0x13b40babdf53,0x13b40bab8d75
code-creation,LazyCompile,10,39309,0x27ba8ebca3ce,33,getOptionsFromBinding node:internal/options:14:31,0x13b40babd058,~
code-source-info,0x27ba8ebca3ce,92,439,537,C0O446C6O469C11O496C15O481C28O517C32O535,,
code-creation,LazyCompile,10,39756,0x27ba8ebca7ce,46,setupTraceCategoryState node:internal/bootstrap/pre_execution:221:33,0x13b40babafa0,~
code-source-info,0x27ba8ebca7ce,91,6760,6987,C0O6802C6O6802C11O6775C16O6874C22O6874C27O6845C32O6916C35O6941C40O6916C45O6986,,
code-creation,LazyCompile,10,39831,0x27ba8ebca976,77,toggleTraceCategoryState node:internal/process/per_thread:385:34,0x73467cbcce0,~
code-source-info,0x27ba8ebca976,23,11040,11337,C0O11064C4O11093C10O11128C16O11159C21O11203C26O11204C33O11149C39O11228C44O11249C49O11249C55O11268C61O11300C66O11321C71O11321C76O11336,,
code-creation,LazyCompile,10,39866,0x27ba8ebcab36,42,setupPerfHooks node:internal/bootstrap/pre_execution:227:24,0x13b40babaff0,~
code-source-info,0x27ba8ebcab36,91,7012,7132,C0O7019C6O7019C11O7055C16O7056C20O7079C26O7079C31O7109C36O7110C41O7131,,
code-creation,LazyCompile,10,39918,0x27ba8ebcacc6,42,refreshTimeOrigin node:internal/perf/performance:118:27,0x456580f84d8,~
script-source,69,node:internal/perf/performance,'use strict';\n\nconst {\n  ObjectDefineProperty\x2C\n  ObjectDefineProperties\x2C\n  ObjectSetPrototypeOf\x2C\n  TypeError\x2C\n} = primordials;\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  clearMarks\x2C\n} = require('internal/perf/usertiming');\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    // eslint-disable-next-line no-restricted-syntax\n    throw new TypeError('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}\n\nfunction toJSON() {\n  return {\n    nodeTiming: this.nodeTiming\x2C\n    timeOrigin: this.timeOrigin\x2C\n    eventLoopUtilization: this.eventLoopUtilization()\n  };\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  eventLoopUtilization: {\n    configurable: true\x2C\n    enumerable: false\x2C\n    value: eventLoopUtilization\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,0x27ba8ebcacc6,69,2596,2753,C0O2603C7O2624C10O2636C25O2720C28O2720C35O2603C41O2752,,
code-creation,LazyCompile,10,40176,0x27ba8ebcb206,19,refreshTimeOrigin node:internal/perf/utils:25:27,0xaad66775910,~
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,0x27ba8ebcb206,41,525,563,C0O532C5O545C11O543C18O562,,
code-creation,LazyCompile,10,40265,0x27ba8ebcb486,62,setupInspectorHooks node:internal/bootstrap/pre_execution:232:29,0x13b40babb040,~
code-source-info,0x27ba8ebcb486,91,7162,7715,C0O7505C6O7509C11O7534C17O7599C23O7599C28O7569C33O7583C38O7645C44O7645C49O7673C54O7674C61O7714,,
tick,0x11548ac,40367,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebcb49d,0x13b40babdf66,0x13b40bab8d75
code-creation,Eval,10,40448,0x27ba8ebcb846,5, node:internal/inspector_async_hook:1:1,0x27ba8ebcb680,~
script-source,93,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,0x27ba8ebcb846,93,0,1972,C0O0C4O1972,,
code-creation,Function,10,40613,0x27ba8ebcba76,79, node:internal/inspector_async_hook:1:1,0x27ba8ebcb7b0,~
code-source-info,0x27ba8ebcba76,93,0,1972,C0O0C42O19C43O19C45O29C46O29C48O48C54O1930C61O1951C67O1961C73O1945C78O1971,,
code-creation,LazyCompile,10,40742,0x27ba8ebcbf7e,69,setupWarningHandler node:internal/bootstrap/pre_execution:141:29,0x13b40babad48,~
code-source-info,0x27ba8ebcbf7e,91,4547,4744,C0O4582C6O4582C11O4566C16O4621C24O4625C33O4669C38O4673C45O4690C50O4705C53O4713C61O4713C68O4743,,
code-creation,LazyCompile,10,40874,0x27ba8ebcc0ee,20,addListener node:events:490:58,0x30ec9dbb24d8,~
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');\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  inspect\n} = require('internal/util/inspect');\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    const { inspect } = require('internal/util/inspect');\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,0x27ba8ebcc0ee,13,14253,14325,C0O14274C14O14281C19O14323,,
tick,0x7efc3364164e,42843,0,0x0,3,0x11e9ce0,0x27ba8ebcbfbb,0x13b40babdf6c,0x13b40bab8d75
tick,0x7efc336288f9,42855,0,0x0,3,0x11e9ce0,0x27ba8ebcbfbb,0x13b40babdf6c,0x13b40bab8d75
code-creation,LazyCompile,10,42971,0x27ba8ebce37e,387,_addListener node:events:422:22,0x30ec9dbb2438,~
code-source-info,0x27ba8ebce37e,13,12040,14055,C0O12082C2O12091C4O12105C6O12118C9O12118C13O12162C18O12173C20O12205C22O12231C27O12231C32O12229C39O12255C40O12275C46O12441C52O12483C60O12536C77O12483C82O12715C87O12734C89O12751C93O12766C97O12877C99O12890C103O12906C109O12915C115O12944C121O13049C129O13083C140O13094C149O13104C166O13117C175O13127C182O13073C193O13202C197O13232C202O13232C209O13279C214O13279C219O13337C222O13341C227O13371C228O13377C233O13393C240O13400C245O13417C251O13433C252O13449C256O13582C264O13679C278O13689C281O13689C295O13639C304O13755C307O13763C312O13755C327O13715C333O13794C339O13582C345O13876C347O13883C351O13922C353O13932C357O13948C359O13955C363O13988C367O13977C371O14002C374O14010C379O14010C384O14039C386O14053,,
code-creation,LazyCompile,10,43030,0x27ba8ebce6c6,15,checkListener node:events:130:23,0x30ec9dbb1d98,~
code-source-info,0x27ba8ebce6c6,13,3673,3729,C0O3688C8O3688C14O3728,,
code-creation,LazyCompile,10,43061,0x27ba8ebce7c6,30, node:internal/validators:227:42,0x73467c9a1d0,~
code-source-info,0x27ba8ebce7c6,17,6933,7049,C0O6954C6O6991C22O6997C27O6991C29O7048,,
code-creation,LazyCompile,10,43217,0x27ba8ebcea66,401,emit node:events:343:44,0x30ec9dbb2378,~
code-source-info,0x27ba8ebcea66,13,9744,12016,C0O9744C8O9778C10O9784C14O9821C19O9832C21O9864C27O9886C29O9885C34O9927C42O9932C52O9927C57O9961C61O9990C69O10021C73O10039C74O10052C75O10111C79O10134C81O10151C88O10158C93O10169C94O10178C98O10187C100O10205C102O10194C110O10250C112O10262C122O10307C128O10317C134O10262C139O10332C147O10357C159O10406C176O10406C188O10332C199O10680C201O10680C202O10732C204O10771C212O10771C218O10759C226O10837C234O10835C235O10870C240O10967C248O10967C254O11011C256O11023C260O11033C262O11033C263O11094C265O11100C269O11111C271O11142C272O11155C273O11159C279O11223C285O11223C292O11377C298O11430C314O11430C321O11507C326O11537C330O11537C335O11575C337O11580C339O11580C344O11615C346O11624C351O11628C357O11628C364O11890C370O11945C386O11945C391O11589C396O11562C399O12002C400O12014,,
code-creation,LazyCompile,10,43327,0x27ba8ebcee36,172,startListeningIfSignal node:internal/process/signal:22:32,0x3fe299d3cf30,~
script-source,88,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,0x27ba8ebcee36,88,429,904,C0O440C3O444C11O463C14O475C19O475C26O492C32O524C38O533C43O563C50O531C56O589C61O589C67O613C72O613C76O627C78O643C84O673C98O643C103O641C107O721C114O728C118O757C123O757C129O776C131O798C136O798C140O813C148O819C153O813C154O870C159O882C164O882C171O903,,
code-creation,LazyCompile,10,43453,0x27ba8ebcf206,19,isSignal node:internal/process/signal:17:18,0x3fe299d3cd78,~
code-source-info,0x27ba8ebcf206,88,255,334,C0O267C8O303C13O310C17O318C18O332,,
code-creation,LazyCompile,10,43505,0x27ba8ebcf3b6,75,setupDebugEnv node:internal/bootstrap/pre_execution:193:23,0x13b40babaeb0,~
code-source-info,0x27ba8ebcf3b6,91,6010,6220,C0O6017C6O6017C11O6050C19O6078C24O6082C29O6051C34O6097C42O6101C48O6145C54O6145C59O6182C64O6195C69O6196C74O6219,,
tick,0x116ed35,43565,0,0x0,2,0x11e9ce0,0x27ba8ebcf3d3,0x13b40babdfa0,0x13b40bab8d75
code-creation,LazyCompile,10,43612,0x27ba8ebcf75e,159,initializeDebugEnv node:internal/util/debuglog:22:28,0xaad66774cb8,~
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,0x27ba8ebcf75e,40,546,991,C0O561C7O574C14O572C20O596C31O709C44O709C51O753C62O754C69O782C80O783C88O833C100O848C116O833C121O833C123O871C132O883C144O959C151O971C158O990,,
code-creation,LazyCompile,10,43893,0x27ba8ebcfe5e,49,setupStacktracePrinterOnSigint node:internal/bootstrap/pre_execution:172:40,0x13b40babade8,~
code-source-info,0x27ba8ebcfe5e,91,5574,5760,C0O5581C8O5586C14O5626C15O5633C16O5667C22O5667C27O5648C32O5717C38O5750C43O5750C48O5759,,
code-creation,LazyCompile,10,43954,0x27ba8ebd00de,62,initializeReport node:internal/bootstrap/pre_execution:182:26,0x13b40babae38,~
code-source-info,0x27ba8ebd00de,91,5787,5986,C0O5787C8O5813C16O5813C21O5802C27O5851C42O5872C47O5944C55O5851C61O5985,,
code-creation,Eval,10,44169,0x27ba8ebd0696,5, node:internal/process/report:1:1,0x27ba8ebd0480,~
script-source,94,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,0x27ba8ebd0696,94,0,2623,C0O0C4O2623,,
code-creation,Function,10,44377,0x27ba8ebd11be,315, node:internal/process/report:1:1,0x27ba8ebd0600,~
code-source-info,0x27ba8ebd11be,94,0,2623,C0O0C51O66C54O66C59O92C64O24C70O48C76O189C79O189C84O110C90O129C96O147C102O169C108O232C111O232C115O232C117O269C123O312C128O316C136O756C290O2572C297O2593C303O2613C309O2587C314O2622,,
tick,0x10b1dc5,44635,0,0x0,0,0xf48b80,0x27ba8ebd12e7,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebd00ee,0x13b40babdfac,0x13b40bab8d75
code-creation,LazyCompile,10,44670,0x27ba8ebd2e8e,21,initializeReportSignalHandlers node:internal/bootstrap/pre_execution:201:40,0x13b40babaf00,~
code-source-info,0x27ba8ebd2e8e,91,6321,6417,C0O6357C6O6357C11O6336C16O6396C20O6416,,
code-creation,LazyCompile,10,44738,0x27ba8ebd2fe6,57,addSignalHandler node:internal/process/report:97:26,0x27ba8ebd06c8,~
code-source-info,0x27ba8ebd2fe6,94,2222,2368,C0O2232C5O2239C10O2239C16O2269C22O2304C27O2313C32O2313C38O2331C41O2339C49O2339C56O2367,,
code-creation,LazyCompile,10,44794,0x27ba8ebd35b6,92,initializeHeapSnapshotSignalHandlers node:internal/bootstrap/pre_execution:207:46,0x13b40babaf50,~
code-source-info,0x27ba8ebd35b6,91,6464,6726,C0O6464C8O6486C18O6486C23O6530C25O6547C26O6554C27O6558C35O6558C40O6588C45O6589C50O6649C58O6649C63O6627C69O6667C74O6675C79O6678C84O6675C91O6725,,
code-creation,LazyCompile,10,44856,0x27ba8ebd3856,138,setupChildProcessIpcChannel node:internal/bootstrap/pre_execution:337:37,0x13b40babb120,~
code-source-info,0x27ba8ebd3856,91,10478,11007,C0O10485C3O10497C8O10501C14O10539C20O10539C25O10583C33O10606C38O10610C46O10583C52O10636C53O10646C57O10636C61O10727C64O10742C73O10800C76O10808C81O10812C90O10859C93O10874C102O10916C108O10916C113O10940C118O10941C124O10980C127O10995C132O10980C137O11006,,
code-creation,LazyCompile,10,44992,0x27ba8ebd3c5e,455,initializePolicy node:internal/bootstrap/pre_execution:365:26,0x13b40babb1c0,~
code-source-info,0x27ba8ebd3c5e,91,11306,13104,C0O11340C10O11340C15O11383C17O11413C21O11421C35O11421C41O11546C49O11546C55O11523C60O11538C65O11665C67O11682C75O11686C81O11701C87O11702C94O11742C100O11774C108O11756C116O11831C120O11853C126O11853C132O11831C138O11867C149O11883C153O11897C161O11911C167O11969C175O11969C180O12003C190O12003C197O12078C207O12078C212O12120C214O12173C222O12173C227O12251C235O12251C241O12219C246O12231C251O12300C257O12300C263O12350C269O12350C275O12409C277O12435C279O12459C283O12440C288O12549C290O12565C295O12500C300O12528C305O12591C311O12627C317O12627C322O12668C328O12668C334O12697C340O12717C344O12704C349O12737C356O12784C358O12813C360O12854C366O12876C376O12876C383O12854C389O12468C394O12422C397O12911C401O12938C415O12944C420O12938C421O13027C429O13027C435O13068C441O13092C447O13069C454O13103,,
code-creation,LazyCompile,10,45062,0x27ba8ebd405e,63,initializeClusterIPC node:internal/bootstrap/pre_execution:356:30,0x13b40babb170,~
code-source-info,0x27ba8ebd405e,91,11038,11279,C0O11045C3O11057C10O11061C18O11076C23O11080C29O11118C35O11118C40O11150C45O11150C49O11239C52O11254C62O11278,,
code-creation,LazyCompile,10,45098,0x27ba8ebd41de,27,initializeSourceMapsHandlers node:internal/bootstrap/pre_execution:458:38,0x13b40babb300,~
code-source-info,0x27ba8ebd41de,91,14759,14908,C0O14803C6O14803C11O14774C16O14854C21O14883C26O14907,,
code-creation,Eval,10,45397,0x27ba8ebd4b6e,5, node:internal/source_map/source_map_cache:1:1,0x27ba8ebd47f8,~
script-source,95,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=(?<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:[<mediatype>][;base64]\x2C<data> 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,0x27ba8ebd4b6e,95,0,7654,C0O0C4O7654,,
tick,0x7efc336c02cf,46001,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebd41e4,0x13b40babdfd0,0x13b40bab8d75
code-creation,Function,10,46020,0x27ba8ebd51f6,435, node:internal/source_map/source_map_cache:1:1,0x27ba8ebd4ad8,~
code-source-info,0x27ba8ebd51f6,95,0,7654,C0O0C152O25C158O46C164O59C170O75C176O89C182O123C188O156C194O179C199O190C205O214C211O526C217O526C222O515C228O557C234O557C239O590C252O591C258O557C260O653C266O653C270O653C272O695C278O695C283O676C289O752C295O752C300O732C305O832C311O832C316O806C322O901C328O901C333O881C339O1137C341O1137C346O1137C348O1264C350O1264C355O1264C357O1325C363O1325C368O1287C374O1302C380O1317C386O1354C387O1354C389O1370C390O1370C392O7518C399O7539C405O7556C411O7580C417O7604C423O7627C429O7533C434O7653,,
code-creation,LazyCompile,10,46217,0x27ba8ebd5fee,82,debuglog node:internal/util/debuglog:71:18,0xaad66774ff0,~
code-source-info,0x27ba8ebd5fee,40,2232,3279,C0O2232C28O2357C32O2357C34O2789C35O2789C37O2811C41O2811C43O2899C48O3128C58O3149C63O3174C74O3128C79O3263C81O3277,,
code-creation,Eval,10,46431,0x27ba8ebd657e,5, node:internal/util/iterable_weak_map:1:1,0x27ba8ebd6320,~
script-source,96,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,0x27ba8ebd657e,96,0,1958,C0O0C4O1958,,
code-creation,Function,10,46597,0x27ba8ebd6cee,196, node:internal/util/iterable_weak_map:1:1,0x27ba8ebd64e8,~
code-source-info,0x27ba8ebd6cee,96,0,1958,C0O0C26O25C31O41C37O69C43O80C49O95C55O110C134O1392C168O1904C173O1875C177O1917C184O1938C190O1932C195O1957,,
code-creation,Function,10,46614,0x27ba8ebd6e7e,75,<instance_members_initializer> node:internal/util/iterable_weak_map:17:3,0x27ba8ebd6808,~
code-source-info,0x27ba8ebd6e7e,96,399,516,C3O410C10O410C27O441C34O441C48O479C62O479C74O516,,
tick,0x111fb40,46777,1,0xb515a0,5,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebd532d,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebd41e4,0x13b40babdfd0,0x13b40bab8d75
code-creation,Eval,10,47014,0x27ba8ebd7a9e,5, node:internal/modules/cjs/helpers:1:1,0x27ba8ebd77d8,~
script-source,97,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\n// TODO: Use this set when resolving pkg#exports conditions in loader.js.\nconst cjsConditions = new SafeSet(['require'\x2C 'node'\x2C ...userConditions]);\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) {\n  // Make built-in modules available directly (loaded lazily).\n  const { builtinModules } = require('internal/modules/cjs/loader').Module;\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 = 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,0x27ba8ebd7a9e,97,0,6319,C0O0C4O6319,,
code-creation,Function,10,47495,0x27ba8ebd7fee,462, node:internal/modules/cjs/helpers:1:1,0x27ba8ebd7a08,~
code-source-info,0x27ba8ebd7fee,97,0,6319,C0O0C104O25C110O50C116O72C122O94C128O118C134O151C139O162C144O173C150O202C156O229C162O253C168O373C174O373C179O399C184O307C190O342C196O432C202O432C207O415C213O499C219O499C224O480C230O544C236O544C240O544C242O607C248O607C253O569C259O584C265O599C271O660C277O660C282O641C287O712C290O712C295O757C301O757C306O790C319O791C325O757C327O935C334O970C335O970C391O935C396O935C398O1528C400O1528C405O1528C407O6159C414O6180C420O6206C426O6223C432O6239C438O6259C444O6282C450O6306C456O6174C461O6318,,
code-creation,LazyCompile,10,47697,0x27ba8ebd8b3e,27,SafeSet node:internal/per_context/primordials:364:16,0x30ec9db89f90,~
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<any>} 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,0x27ba8ebd8b3e,6,10527,10544,C3O10533C7O10539C11O10533C26O10543,,
tick,0x7efc336447c6,48580,0,0x0,3,0x11e9ce0,0x27ba8ebd8175,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebd532d,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebd41e4,0x13b40babdfd0,0x13b40bab8d75
code-creation,LazyCompile,10,48602,0x27ba8ebd998e,27,SafeMap node:internal/per_context/primordials:351:16,0x30ec9db89e08,~
code-source-info,0x27ba8ebd998e,6,10200,10217,C3O10206C7O10212C11O10206C26O10216,,
code-creation,LazyCompile,10,48664,0x27ba8ebd9b16,16,IterableWeakMap node:internal/util/iterable_weak_map:16:1,0x27ba8ebd6600,~
code-source-info,0x27ba8ebd9b16,96,373,373,C0O373C15O373,,
code-creation,LazyCompile,10,48691,0x27ba8ebd9eae,27,SafeWeakMap node:internal/per_context/primordials:357:16,0x30ec9db89ec8,~
code-source-info,0x27ba8ebd9eae,6,10371,10388,C3O10377C7O10383C11O10377C26O10387,,
code-creation,LazyCompile,10,48731,0x27ba8ebd9fc6,27,SafeFinalizationRegistry node:internal/per_context/primordials:378:16,0x30ec9db8a118,~
code-source-info,0x27ba8ebd9fc6,6,10977,11022,C3O10997C7O11003C11O10997C26O11021,,
tick,0xf8ea7c,48903,0,0x0,3,0x11e9ce0,0x13b40babdfd6,0x13b40bab8d75
code-creation,LazyCompile,10,48917,0x27ba8ebda7ae,492,initializeDeprecations node:internal/bootstrap/pre_execution:250:32,0x13b40babb090,~
code-source-info,0x27ba8ebda7ae,91,7941,10440,C0O7941C11O7970C19O7970C24O7956C29O8025C39O8025C44O8216C52O8216C57O8257C65O8257C70O8310C99O8302C127O8302C130O8628C141O8648C145O8690C156O8764C167O8854C178O8809C187O8675C196O8913C199O8646C203O8291C269O9190C277O9190C282O9169C287O9219C289O9247C304O9268C311O9386C315O9247C320O9418C324O9448C334O9484C344O9561C351O9466C356O9464C360O9647C370O9689C381O9671C386O9669C390O10028C394O10028C396O10039C407O10060C418O10089C426O10131C434O10039C439O10244C445O10244C447O10254C458O10275C469O10303C477O10344C485O10254C491O10439,,
code-creation,LazyCompile,10,49028,0x27ba8ebdadee,53,initializeWASI node:internal/bootstrap/pre_execution:414:24,0x13b40babb210,~
code-source-info,0x27ba8ebdadee,91,13129,13335,C0O13161C6O13161C11O13144C16O13227C21O13231C29O13231C35O13246C37O13277C43O13277C47O13271C52O13334,,
code-creation,LazyCompile,10,49076,0x27ba8ebdafc6,51,initializeCJSLoader node:internal/bootstrap/pre_execution:421:29,0x13b40babb260,~
code-source-info,0x27ba8ebdafc6,91,13365,13623,C0O13390C6O13390C11O13442C16O13449C21O13449C25O13541C36O13562C41O13598C45O13556C50O13622,,
tick,0x1101d12,49977,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,50310,0x27ba8ebdcf7e,5, node:internal/modules/cjs/loader:1:1,0x27ba8ebdc688,~
script-source,98,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.<ext>")\n//   -> a.<ext>\n//\n// require("a")\n//   -> a\n//   -> a.<ext>\n//   -> a/index.<ext>\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 === '<repl>' || 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,0x27ba8ebdcf7e,98,0,40182,C0O0C4O40182,,
code-creation,Function,10,53180,0x27ba8ebded1e,2547, node:internal/modules/cjs/loader:1:1,0x27ba8ebdcee8,~
code-source-info,0x27ba8ebded1e,98,0,40182,C0O0C446O1159C452O1175C458O1199C464O1223C470O1249C476O1274C482O1296C488O1318C494O1341C500O1365C506O1390C512O1420C518O1431C524O1440C530O1453C535O1469C541O1493C546O1509C552O1543C558O1567C564O1581C570O1600C576O1633C582O1657C587O1666C593O1682C599O1696C605O1719C611O1742C617O1753C622O1768C628O1778C634O1803C640O1832C646O1859C652O1889C658O1915C664O1939C670O1964C676O1988C682O2012C688O2118C690O2118C695O2118C697O2191C709O2212C715O2222C721O2230C727O2242C733O2260C763O2206C767O2376C771O2376C777O2359C783O2450C787O2450C793O2425C799O2555C803O2555C809O2507C815O2522C821O2537C827O2602C831O2602C837O2588C842O2639C846O2639C850O2639C852O2669C856O2669C860O2669C862O2708C866O2708C870O2708C872O2742C876O2742C880O2742C882O2785C886O2785C890O2785C892O2818C896O2810C902O2855C910O2855C916O2832C922O2904C926O2904C930O2904C932O2976C940O2976C946O2961C952O3132C956O3132C962O3018C968O3035C974O3051C980O3071C986O3094C992O3118C998O3200C1002O3200C1008O3181C1014O3254C1022O3254C1026O3254C1028O3322C1036O3322C1040O3322C1042O3432C1050O3432C1060O3476C1067O3432C1069O3656C1070O3656C1072O3825C1076O3825C1082O3825C1088O3687C1094O3714C1100O3748C1106O3769C1112O3804C1118O3880C1122O3880C1128O3861C1134O3939C1142O3939C1147O4051C1151O4051C1157O3991C1163O4013C1169O4036C1175O4105C1179O4105C1185O4093C1191O4155C1195O4155C1199O4155C1201O4222C1205O4222C1211O4203C1217O4290C1225O4290C1231O4275C1237O4402C1241O4402C1247O4332C1253O4351C1259O4376C1265O4462C1269O4470C1277O4479C1280O4462C1282O4522C1285O4522C1289O4522C1291O4562C1292O4562C1294O4581C1295O4581C1297O4606C1298O4606C1300O5250C1302O5250C1307O5250C1309O5546C1312O5595C1316O5595C1350O5577C1381O5566C1388O5573C1397O5612C1403O5640C1407O5640C1412O5550C1483O5687C1487O5717C1493O5739C1497O5758C1504O5774C1508O5772C1512O5794C1519O5814C1527O5812C1535O5834C1542O5855C1550O5853C1558O5893C1562O5893C1564O5897C1572O5916C1580O5937C1581O5937C1583O5995C1587O5995C1589O6091C1597O6205C1606O6218C1618O6345C1635O6195C1645O6195C1647O6484C1659O6505C1668O6525C1680O6558C1692O6484C1702O6618C1714O6639C1723O6662C1735O6703C1747O6618C1757O6796C1766O6798C1781O6832C1789O6860C1806O6832C1816O6906C1824O6940C1841O6906C1851O7132C1859O7160C1884O7190C1892O7313C1907O7211C1921O7394C1931O7418C1939O7541C1954O7439C1968O7622C1976O7132C1986O7656C1990O7656C2000O7689C2020O7690C2032O7656C2034O7737C2050O7753C2060O7751C2068O8066C2072O8066C2082O8066C2084O10869C2088O10869C2098O10869C2100O13498C2107O13498C2109O14282C2116O14282C2118O14300C2126O14317C2134O16993C2141O16993C2143O17070C2147O17078C2155O17070C2157O17086C2161O17149C2169O17173C2179O18757C2187O18781C2195O19927C2203O19954C2211O21502C2223O21520C2235O21897C2249O21502C2259O21502C2261O23185C2269O23198C2277O26129C2285O26153C2293O30233C2297O30240C2311O30255C2319O31169C2323O31176C2337O31194C2345O31632C2346O31632C2348O31667C2349O31667C2351O32724C2355O32731C2369O32750C2377O34632C2381O34639C2395O34658C2403O36402C2407O36409C2421O36430C2429O36830C2433O36837C2447O36858C2455O37671C2461O37721C2467O37671C2469O38305C2475O38326C2483O38344C2491O38362C2499O39331C2507O39354C2515O39941C2523O39970C2531O40158C2537O40172C2546O40181,,
tick,0x1257f00,53320,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
tick,0x7efc33635473,53333,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
tick,0x7efc337b0839,53337,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,53693,0x27ba8ebe2d6e,5, node:internal/modules/package_json_reader:1:1,0x27ba8ebe2bb8,~
script-source,99,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,0x27ba8ebe2d6e,99,0,983,C0O0C4O983,,
code-creation,Function,10,53799,0x27ba8ebe2ece,113, node:internal/modules/package_json_reader:1:1,0x27ba8ebe2cd8,~
code-source-info,0x27ba8ebe2ece,99,0,983,C0O0C29O23C34O83C37O83C42O56C48O132C54O132C59O114C65O177C71O177C76O156C82O209C84O209C89O209C91O229C92O229C94O956C101O975C107O971C112O982,,
code-creation,Eval,10,54005,0x27ba8ebe367e,5, node:internal/process/esm_loader:1:1,0x27ba8ebe3478,~
script-source,100,node:internal/process/esm_loader,'use strict';\n\nconst {\n  ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING\x2C\n} = require('internal/errors').codes;\nconst { Loader } = 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 = async function(wrap\x2C specifier) {\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);\n    }\n  }\n  throw new ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING();\n};\n\nlet ESMLoader = new Loader();\nexports.ESMLoader = ESMLoader;\n\nasync function initializeLoader() {\n  const { getOptionValue } = require('internal/options');\n  const userLoader = getOptionValue('--experimental-loader');\n  if (!userLoader)\n    return;\n  let cwd;\n  try {\n    cwd = process.cwd() + '/';\n  } catch {\n    cwd = 'file:///';\n  }\n  // If --experimental-loader is specified\x2C create a loader with user hooks.\n  // Otherwise create the default loader.\n  const { emitExperimentalWarning } = require('internal/util');\n  emitExperimentalWarning('--experimental-loader');\n  return (async () => {\n    const hooks =\n        await ESMLoader.import(userLoader\x2C pathToFileURL(cwd).href);\n    ESMLoader = new Loader();\n    ESMLoader.hook(hooks);\n    ESMLoader.runGlobalPreloadCode();\n    return exports.ESMLoader = ESMLoader;\n  })();\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,0x27ba8ebe367e,100,0,2326,C0O0C4O2326,,
code-creation,Function,10,54176,0x27ba8ebe3966,189, node:internal/process/esm_loader:1:1,0x27ba8ebe35e8,~
code-source-info,0x27ba8ebe3966,100,0,2326,C0O0C45O69C51O69C56O95C61O25C67O122C73O122C78O111C84O213C90O213C95O172C101O278C107O278C112O260C118O336C124O336C129O313C135O368C142O403C146O704C153O744C157O1156C160O1156C165O1156C167O1170C172O1188C176O1971C183O1987C188O2325,,
tick,0x1241cd4,54251,1,0xb515a0,6,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,54533,0x27ba8ebe4676,5, node:internal/modules/esm/loader:1:1,0x27ba8ebe4370,~
script-source,101,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  FunctionPrototypeBind\x2C\n  ObjectSetPrototypeOf\x2C\n  RegExpPrototypeExec\x2C\n  SafeWeakMap\x2C\n  StringPrototypeStartsWith\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\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 { URL\x2C pathToFileURL\x2C isURLInstance } = require('internal/url');\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 { defaultGetFormat } = require('internal/modules/esm/get_format');\nconst { defaultGetSource } = require(\n  'internal/modules/esm/get_source');\nconst { defaultTransformSource } = require(\n  'internal/modules/esm/transform_source');\nconst { translators } = require(\n  'internal/modules/esm/translators');\nconst { getOptionValue } = require('internal/options');\n\n/* A Loader 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. */\nclass Loader {\n  constructor() {\n    // Methods which translate input code or other information\n    // into es modules\n    this.translators = translators;\n\n    // Registry of loaded modules\x2C akin to `require.cache`\n    this.moduleMap = new ModuleMap();\n\n    // Map of already-loaded CJS modules to use\n    this.cjsCache = new SafeWeakMap();\n\n    // This hook is called before the first root module is imported. It's a\n    // function that returns a piece of code that runs as a sloppy-mode script.\n    // The script may evaluate to a function that can be called with a\n    // `getBuiltin` helper that can be used to retrieve builtins.\n    // If the hook returns `null` instead of a source string\x2C it opts out of\n    // running any preload code.\n    // The preload code runs as soon as the hook module has finished evaluating.\n    this._getGlobalPreloadCode = null;\n    // The resolver has the signature\n    //   (specifier : string\x2C parentURL : string\x2C defaultResolve)\n    //       -> Promise<{ url : string }>\n    // where defaultResolve is ModuleRequest.resolve (having the same\n    // signature itself).\n    this._resolve = defaultResolve;\n    // This hook is called after the module is resolved but before a translator\n    // is chosen to load it; the format returned by this function is the name\n    // of a translator.\n    this._getFormat = defaultGetFormat;\n    // This hook is called just before the source code of an ES module file\n    // is loaded.\n    this._getSource = defaultGetSource;\n    // This hook is called just after the source code of an ES module file\n    // is loaded\x2C but before anything is done with the string.\n    this._transformSource = defaultTransformSource;\n    // The index for assigning unique URLs to anonymous module evaluation\n    this.evalIndex = 0;\n  }\n\n  async resolve(specifier\x2C parentURL) {\n    const isMain = parentURL === undefined;\n    if (!isMain && typeof parentURL !== 'string' && !isURLInstance(parentURL))\n      throw new ERR_INVALID_ARG_TYPE('parentURL'\x2C ['string'\x2C 'URL']\x2C parentURL);\n\n    const resolveResponse = await this._resolve(\n      specifier\x2C { parentURL\x2C conditions: DEFAULT_CONDITIONS }\x2C defaultResolve);\n    if (typeof resolveResponse !== 'object') {\n      throw new ERR_INVALID_RETURN_VALUE(\n        'object'\x2C 'loader resolve'\x2C resolveResponse);\n    }\n\n    const { url } = resolveResponse;\n    if (typeof url !== 'string') {\n      throw new ERR_INVALID_RETURN_PROPERTY_VALUE(\n        'string'\x2C 'loader resolve'\x2C 'url'\x2C url);\n    }\n    return url;\n  }\n\n  async getFormat(url) {\n    const getFormatResponse = await this._getFormat(\n      url\x2C {}\x2C defaultGetFormat);\n    if (typeof getFormatResponse !== 'object') {\n      throw new ERR_INVALID_RETURN_VALUE(\n        'object'\x2C 'loader getFormat'\x2C getFormatResponse);\n    }\n\n    const { format } = getFormatResponse;\n    if (format === null) {\n      const dataUrl = RegExpPrototypeExec(\n        /^data:([^/]+\\/[^;\x2C]+)(?:[^\x2C]*?)(;base64)?\x2C/\x2C\n        url\x2C\n      );\n      throw new ERR_INVALID_MODULE_SPECIFIER(\n        url\x2C\n        dataUrl ? `has an unsupported MIME type "${dataUrl[1]}"` : '');\n    }\n    if (typeof format !== 'string') {\n      throw new ERR_INVALID_RETURN_PROPERTY_VALUE(\n        'string'\x2C 'loader getFormat'\x2C 'format'\x2C format);\n    }\n\n    if (format === 'builtin') {\n      return format;\n    }\n\n    if (this._resolve !== defaultResolve) {\n      try {\n        new URL(url);\n      } catch {\n        throw new ERR_INVALID_RETURN_PROPERTY(\n          'url'\x2C 'loader resolve'\x2C 'url'\x2C url\n        );\n      }\n    }\n\n    if (this._resolve === defaultResolve &&\n      !StringPrototypeStartsWith(url\x2C 'file:') &&\n      !StringPrototypeStartsWith(url\x2C 'data:')\n    ) {\n      throw new ERR_INVALID_RETURN_PROPERTY(\n        'file: or data: url'\x2C 'loader resolve'\x2C 'url'\x2C url\n      );\n    }\n\n    return format;\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    return {\n      namespace: module.getNamespace()\x2C\n    };\n  }\n\n  async import(specifier\x2C parent) {\n    const job = await this.getModuleJob(specifier\x2C parent);\n    const { module } = await job.run();\n    return module.getNamespace();\n  }\n\n  hook(hooks) {\n    const {\n      resolve\x2C\n      dynamicInstantiate\x2C\n      getFormat\x2C\n      getSource\x2C\n      transformSource\x2C\n      getGlobalPreloadCode\x2C\n    } = hooks;\n\n    // Use .bind() to avoid giving access to the Loader instance when called.\n    if (resolve !== undefined)\n      this._resolve = FunctionPrototypeBind(resolve\x2C null);\n    if (dynamicInstantiate !== undefined) {\n      process.emitWarning(\n        'The dynamicInstantiate loader hook has been removed.');\n    }\n    if (getFormat !== undefined) {\n      this._getFormat = FunctionPrototypeBind(getFormat\x2C null);\n    }\n    if (getSource !== undefined) {\n      this._getSource = FunctionPrototypeBind(getSource\x2C null);\n    }\n    if (transformSource !== undefined) {\n      this._transformSource = FunctionPrototypeBind(transformSource\x2C null);\n    }\n    if (getGlobalPreloadCode !== undefined) {\n      this._getGlobalPreloadCode =\n        FunctionPrototypeBind(getGlobalPreloadCode\x2C null);\n    }\n  }\n\n  runGlobalPreloadCode() {\n    if (!this._getGlobalPreloadCode) {\n      return;\n    }\n    const preloadCode = this._getGlobalPreloadCode();\n    if (preloadCode === null) {\n      return;\n    }\n\n    if (typeof preloadCode !== 'string') {\n      throw new ERR_INVALID_RETURN_VALUE(\n        'string'\x2C 'loader getGlobalPreloadCode'\x2C preloadCode);\n    }\n    const { compileFunction } = require('vm');\n    const preloadInit = compileFunction(preloadCode\x2C ['getBuiltin']\x2C {\n      filename: '<preload>'\x2C\n    });\n    const { NativeModule } = require('internal/bootstrap/loaders');\n\n    preloadInit.call(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  async getModuleJob(specifier\x2C parentURL) {\n    const url = await this.resolve(specifier\x2C parentURL);\n    const format = await this.getFormat(url);\n    let job = this.moduleMap.get(url);\n    // CommonJS will set functions for lazy job evaluation.\n    if (typeof job === 'function')\n      this.moduleMap.set(url\x2C job = job());\n    if (job !== undefined)\n      return job;\n\n    if (!translators.has(format))\n      throw new ERR_UNKNOWN_MODULE_FORMAT(format);\n\n    const loaderInstance = translators.get(format);\n\n    const inspectBrk = parentURL === undefined &&\n        format === 'module' && getOptionValue('--inspect-brk');\n    job = new ModuleJob(this\x2C url\x2C loaderInstance\x2C parentURL === undefined\x2C\n                        inspectBrk);\n    this.moduleMap.set(url\x2C job);\n    return job;\n  }\n}\n\nObjectSetPrototypeOf(Loader.prototype\x2C null);\n\nexports.Loader = Loader;\n
code-source-info,0x27ba8ebe4676,101,0,8716,C0O0C4O8716,,
code-creation,Function,10,55189,0x27ba8ebe4cd6,430, node:internal/modules/esm/loader:1:1,0x27ba8ebe45e0,~
code-source-info,0x27ba8ebe4cd6,101,0,8716,C0O0C89O79C95O79C99O130C105O155C110O179C116O202C122O217C128O246C134O493C140O493C145O519C150O286C156O310C162O335C168O367C174O398C180O435C186O463C192O573C198O573C203O535C209O540C215O555C221O616C227O616C231O616C233O678C239O678C243O678C245O775C251O775C256O733C262O751C268O845C274O845C279O824C285O918C291O918C296O897C302O1000C308O1000C313O973C319O1077C325O1077C330O1061C336O1152C342O1152C347O1133C410O8672C417O8644C422O8691C424O8706C429O8715,,
tick,0x15a43a7,55321,0,0x0,0,0x15a635b,0x13b40bab8fd3,0x27ba8ebe4d62,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,55416,0x27ba8ebe5bc6,5, node:internal/modules/esm/module_map:1:1,0x27ba8ebe59e8,~
script-source,102,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,0x27ba8ebe5bc6,102,0,955,C0O0C4O955,,
code-creation,Function,10,55506,0x27ba8ebe5ff6,149, node:internal/modules/esm/module_map:1:1,0x27ba8ebe5b30,~
code-source-info,0x27ba8ebe5ff6,102,0,955,C0O0C17O33C20O33C24O33C26O87C31O125C34O125C39O158C52O159C58O125C60O236C63O236C68O262C73O211C79O297C82O297C87O278C97O407C141O927C143O942C148O954,,
code-creation,Eval,10,55788,0x27ba8ebe6a4e,5, node:internal/modules/esm/module_job:1:1,0x27ba8ebe6758,~
script-source,103,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 childFileURL =\n            await this.loader.resolve(childSpecifier\x2C parentFileUrl);\n        const format = await this.loader.getFormat(childFileURL);\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,0x27ba8ebe6a4e,103,0,7676,C0O0C4O7676,,
code-creation,Function,10,56333,0x27ba8ebe6f4e,334, node:internal/modules/esm/module_job:1:1,0x27ba8ebe69b8,~
code-source-info,0x27ba8ebe6f4e,103,0,7676,C0O0C85O25C91O47C97O68C103O90C109O112C114O133C119O157C125O171C130O189C136O214C142O230C148O253C154O274C160O285C166O312C172O336C178O362C184O386C190O454C196O454C201O439C207O518C213O518C218O495C224O580C230O580C235O554C241O644C247O644C251O644C253O696C256O696C258O728C260O728C262O769C263O769C265O799C269O799C271O917C275O917C314O7630C321O7599C326O7648C328O7663C333O7675,,
tick,0x1245190,56388,1,0xb515a0,6,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebe600a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4db9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
tick,0xe80f36,57461,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebe4dd1,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,57480,0x27ba8ebe9a46,5, node:internal/modules/esm/resolve:1:1,0x27ba8ebe9380,~
script-source,104,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  RegExpPrototypeTest\x2C\n  SafeMap\x2C\n  SafeSet\x2C\n  String\x2C\n  StringPrototypeEndsWith\x2C\n  StringPrototypeIndexOf\x2C\n  StringPrototypeReplace\x2C\n  StringPrototypeSlice\x2C\n  StringPrototypeSplit\x2C\n  StringPrototypeStartsWith\x2C\n  StringPrototypeSubstr\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 { 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 DEFAULT_CONDITIONS = ObjectFreeze(['node'\x2C 'import'\x2C ...userConditions]);\nconst DEFAULT_CONDITIONS_SET = new SafeSet(DEFAULT_CONDITIONS);\n\nconst emittedPackageWarnings = new SafeSet();\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 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\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\nconst tryStatSync =\n  (path) => statSync(path\x2C { throwIfNoEntry: false }) ?? new Stats();\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\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 * 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 {string | URL} url\n * @returns {boolean}\n */\nfunction fileExists(url) {\n  return statSync(url\x2C { throwIfNoEntry: false })?.isFile() ?? false;\n}\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\nfunction resolveExtensionsWithTryExactName(search) {\n  if (fileExists(search)) return search;\n  return resolveExtensions(search);\n}\n\nconst extensions = ['.js'\x2C '.json'\x2C '.node'\x2C '.mjs'];\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\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|%2C/i;\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\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\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\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          StringPrototypeReplace(target\x2C patternRegEx\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(StringPrototypeReplace(resolved.href\x2C patternRegEx\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\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 {object} packageConfig\n * @param {string} base\n * @param {Set<string>} 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    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  const keys = ObjectGetOwnPropertyNames(exports);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if (key[key.length - 1] === '*' &&\n        StringPrototypeStartsWith(packageSubpath\x2C\n                                  StringPrototypeSlice(key\x2C 0\x2C -1)) &&\n        packageSubpath.length >= key.length &&\n        key.length > bestMatch.length) {\n      bestMatch = key;\n    } else if (key[key.length - 1] === '/' &&\n      StringPrototypeStartsWith(packageSubpath\x2C key) &&\n      key.length > bestMatch.length) {\n      bestMatch = key;\n    }\n  }\n\n  if (bestMatch) {\n    const target = exports[bestMatch];\n    const pattern = bestMatch[bestMatch.length - 1] === '*';\n    const subpath = StringPrototypeSubstr(packageSubpath\x2C bestMatch.length -\n      (pattern ? 1 : 0));\n    const resolved = resolvePackageTarget(packageJSONUrl\x2C target\x2C subpath\x2C\n                                          bestMatch\x2C base\x2C pattern\x2C false\x2C\n                                          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 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        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        const keys = ObjectGetOwnPropertyNames(imports);\n        for (let i = 0; i < keys.length; i++) {\n          const key = keys[i];\n          if (key[key.length - 1] === '*' &&\n              StringPrototypeStartsWith(name\x2C\n                                        StringPrototypeSlice(key\x2C 0\x2C -1)) &&\n              name.length >= key.length &&\n              key.length > bestMatch.length) {\n            bestMatch = key;\n          } else if (key[key.length - 1] === '/' &&\n            StringPrototypeStartsWith(name\x2C key) &&\n            key.length > bestMatch.length) {\n            bestMatch = key;\n          }\n        }\n\n        if (bestMatch) {\n          const target = imports[bestMatch];\n          const pattern = bestMatch[bestMatch.length - 1] === '*';\n          const subpath = StringPrototypeSubstr(name\x2C bestMatch.length -\n            (pattern ? 1 : 0));\n          const resolved = resolvePackageTarget(\n            packageJSONUrl\x2C target\x2C subpath\x2C bestMatch\x2C 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\nfunction getPackageType(url) {\n  const packageConfig = getPackageScopeConfig(url);\n  return packageConfig.type;\n}\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 {URL} base\n * @param {Set<string>} 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\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 {URL} base\n * @param {Set<string>} 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 = StringPrototypeReplace(found\x2C new RegExp(`\\\\${sep}`\x2C 'g')\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,0x27ba8ebe9a46,104,0,31198,C0O0C4O31198,,
tick,0x7efc33635473,59710,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebe4dd1,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
tick,0x7efc33a63f49,59725,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebe4dd1,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Function,10,59733,0x27ba8ebea8f6,977, node:internal/modules/esm/resolve:1:1,0x27ba8ebe99b0,~
code-source-info,0x27ba8ebea8f6,104,0,31198,C0O0C361O25C367O41C373O63C379O86C385O99C391O116C396O132C402O161C408O194C414O204C420O227C425O238C431O249C437O259C443O286C449O312C455O338C461O362C467O386C473O415C479O474C482O474C486O474C488O529C491O529C496O512C502O617C505O617C510O578C516O594C522O606C528O659C531O659C536O640C542O754C548O754C557O798C564O754C566O878C569O878C574O851C580O856C586O866C592O920C598O920C602O920C604O988C610O988C614O988C616O1049C622O1049C626O1049C628O1127C631O1127C636O1089C642O1094C648O1109C654O1501C657O1501C662O1527C667O1162C673O1192C679O1217C685O1249C691O1279C697O1309C703O1344C709O1368C715O1402C721O1435C727O1465C733O1565C736O1565C741O1551C747O1632C750O1632C754O1632C756O1704C762O1704C767O1763C774O1798C775O1798C829O1763C833O1763C835O1847C843O1847C848O1847C850O1912C853O1912C858O1912C860O4006C862O4006C867O4006C869O4046C871O4046C876O4046C878O4115C882O4115C884O9025C888O9025C890O9876C894O9876C896O12297C900O12297C902O12360C906O12360C908O30942C915O30963C921O30985C927O31003C933O31022C939O31047C945O31065C951O31090C957O30957C961O31154C964O31154C969O31133C976O31197,,
code-creation,Eval,10,60204,0x27ba8ebed43e,5, node:internal/modules/esm/get_format:1:1,0x27ba8ebed218,~
script-source,105,node:internal/modules/esm/get_format,'use strict';\nconst {\n  RegExpPrototypeExec\x2C\n  StringPrototypeStartsWith\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\nfunction defaultGetFormat(url\x2C context\x2C defaultGetFormatUnused) {\n  if (StringPrototypeStartsWith(url\x2C 'node:')) {\n    return { format: 'builtin' };\n  }\n  const parsed = new URL(url);\n  if (parsed.protocol === 'data:') {\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    return { format };\n  } else if (parsed.protocol === 'file:') {\n    const ext = extname(parsed.pathname);\n    let format;\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    return { format: format || null };\n  }\n  return { format: null };\n}\n\nmodule.exports = {\n  defaultGetFormat\x2C\n  extensionFormatMap\x2C\n  legacyExtensionFormatMap\x2C\n};\n
code-source-info,0x27ba8ebed43e,105,0,2537,C0O0C4O2537,,
code-creation,Function,10,60412,0x27ba8ebed6fe,258, node:internal/modules/esm/get_format:1:1,0x27ba8ebed3a8,~
code-source-info,0x27ba8ebed6fe,105,0,2537,C0O0C50O24C56O47C62O111C65O111C70O99C76O155C79O155C84O136C89O217C92O217C96O217C98O306C101O306C105O306C107O393C110O393C114O393C116O467C119O467C124O448C130O539C133O539C138O516C144O521C150O603C153O603C158O629C163O572C169O665C173O665C175O785C179O785C181O920C185O951C194O1015C200O979C204O1026C208O1057C217O1121C223O1085C227O2445C234O2466C240O2486C246O2508C252O2460C257O2536,,
code-creation,Eval,10,60607,0x27ba8ebedf26,5, node:internal/modules/esm/get_source:1:1,0x27ba8ebedd40,~
script-source,106,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,0x27ba8ebedf26,106,0,1353,C0O0C4O1353,,
code-creation,Function,10,60747,0x27ba8ebee0a6,169, node:internal/modules/esm/get_source:1:1,0x27ba8ebede90,~
code-source-info,0x27ba8ebee0a6,106,0,1353,C0O0C37O25C43O48C49O112C52O112C57O93C62O207C65O207C74O251C81O207C83O316C86O316C91O305C97O347C100O347C105O378C110O404C113O404C118O396C124O486C127O486C132O512C137O439C143O458C149O545C153O542C155O581C159O581C161O1308C163O1333C168O1352,,
tick,0x7efc33a647cd,60785,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,61642,0x27ba8ebef31e,5, node:internal/fs/promises:1:1,0x27ba8ebeebd0,~
script-source,107,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  validateOffsetLengthRead\x2C\n  validateOffsetLengthWrite\x2C\n  validateRmOptions\x2C\n  validateRmdirOptions\x2C\n  validateStringAfterArrayBufferView\x2C\n  warnOnNonPortableTemplate\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\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  [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 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    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,0x27ba8ebef31e,107,0,21471,C0O0C4O21471,,
tick,0x7efc33a646c6,63264,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebee10a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
tick,0x7efc33643e4e,63284,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebee10a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Function,10,63309,0x27ba8ebf188e,1534, node:internal/fs/promises:1:1,0x27ba8ebef288,~
code-source-info,0x27ba8ebf188e,107,0,21471,C0O0C459O25C465O47C471O56C477O67C483O78C489O101C495O112C501O136C507O154C513O175C519O206C524O216C530O311C534O311C540O339C546O256C552O264C558O277C564O289C570O299C576O360C580O360C584O360C586O402C590O402C596O391C602O550C606O550C612O550C618O445C624O472C630O499C636O534C642O608C646O608C652O586C658O667C662O667C668O648C674O1278C678O1278C684O1278C690O725C696O743C702O759C708O786C714O820C720O851C726O865C732O894C737O908C743O922C749O945C755O965C761O981C767O994C773O1026C779O1043C785O1066C791O1085C797O1108C803O1136C809O1165C814O1186C820O1210C826O1248C832O1328C836O1328C842O1316C847O1502C851O1502C857O1366C863O1383C869O1406C875O1425C881O1443C887O1463C893O1482C899O1553C903O1553C907O1553C909O1610C913O1610C919O1578C925O1596C930O1666C934O1666C940O1644C945O1718C949O1718C955O1708C960O1774C964O1774C970O1759C976O1824C980O1824C984O1824C986O1869C990O1869C994O1869C996O1900C1000O1900C1004O1900C1006O1929C1010O1929C1014O1929C1016O1968C1020O1968C1024O1968C1026O2015C1030O2015C1034O2015C1036O2061C1040O2061C1044O2061C1046O2098C1050O2098C1054O2098C1056O2129C1060O2129C1064O2129C1066O2173C1070O2156C1076O2251C1080O2251C1086O2192C1091O2208C1096O2222C1101O2233C1106O2331C1110O2331C1112O2387C1116O2387C1118O2443C1228O4728C1238O5131C1248O5188C1260O5279C1270O5316C1302O2418C1304O21036C1310O21066C1318O21072C1324O21084C1330O21098C1334O21117C1344O21141C1350O21153C1356O21167C1362O21175C1368O21186C1374O21197C1380O21210C1386O21224C1392O21237C1398O21248C1404O21258C1410O21268C1416O21280C1422O21291C1428O21303C1434O21315C1440O21326C1446O21338C1452O21351C1458O21365C1464O21378C1470O21393C1476O21409C1482O21423C1494O21438C1504O21452C1514O21460C1524O21051C1533O21470,,
code-creation,Function,10,63379,0x27ba8ebf21ae,27,<instance_members_initializer> node:internal/fs/promises:177:3,0x27ba8ebf0768,~
code-source-info,0x27ba8ebf21ae,107,3925,4723,C0O3925C12O3933C26O4723,,
tick,0xf8ea50,63874,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebf1b24,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebee10a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,63918,0x27ba8ebf4a0e,5, node:internal/fs/rimraf:1:1,0x27ba8ebf4698,~
script-source,108,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,0x27ba8ebf4a0e,108,0,7095,C0O0C4O7095,,
code-creation,Function,10,64448,0x27ba8ebf501e,409, node:internal/fs/rimraf:1:1,0x27ba8ebf4978,~
code-source-info,0x27ba8ebf501e,108,0,7095,C0O0C139O368C145O393C151O404C156O450C159O450C164O439C170O480C173O480C177O480C179O642C182O505C188O514C194O527C200O536C206O549C212O560C218O575C224O584C230O597C236O605C242O617C248O627C254O662C257O662C262O654C267O702C270O702C275O687C281O739C284O739C289O729C295O792C302O792C307O792C309O863C316O863C321O863C323O958C330O967C333O950C335O1001C345O1001C347O1060C357O1060C359O1126C361O1126C363O1154C366O1161C371O1161C376O1154C378O7038C385O7057C391O7065C397O7081C403O7053C408O7094,,
code-creation,LazyCompile,10,64744,0x27ba8ebf5ec6,188,from node:buffer:294:28,0x73467ca4940,~
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} = 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  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,0x27ba8ebf5ec6,18,8386,9337,C3O8424C9O8459C12O8466C17O8502C18O8506C28O8561C33O8565C39O8596C51O8603C56O8652C57O8680C63O8697C68O8697C73O8712C78O8751C95O8842C104O8849C109O8889C110O8911C113O8911C118O8934C120O8947C122O8956C123O8962C125O8979C127O8978C134O9040C136O9046C138O9045C145O9064C151O9082C155O9127C158O9134C163O9174C164O9196C182O9202C187O9196,,
tick,0x7efc33635473,67342,0,0x0,3,0x11e9ce0,0x27ba8ebf5191,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebf1b24,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebee10a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
tick,0x7efc3363549c,67358,0,0x0,3,0x11e9ce0,0x27ba8ebf5191,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebf1b24,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebee10a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
tick,0x7efc33a64707,67365,0,0x0,3,0x11e9ce0,0x27ba8ebf5191,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebf1b24,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebee10a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,LazyCompile,10,67391,0x27ba8ebf889e,110,fromString node:buffer:430:20,0x73467ca4d28,~
code-source-info,0x27ba8ebf889e,18,12437,12871,C0O12464C2O12471C8O12516C14O12523C19O12547C25O12554C30O12567C35O12574C40O12591C41O12596C46O12614C51O12624C56O12661C59O12667C64O12697C66O12726C73O12732C78O12726C79O12783C85O12790C90O12803C95O12810C100O12827C101O12834C104O12841C109O12869,,
code-creation,LazyCompile,10,67477,0x27ba8ebf8a66,177,fromStringFast node:buffer:411:24,0x73467ca4c88,~
code-source-info,0x27ba8ebf8a66,18,11893,12416,C0O11930C5O11930C11O11953C14O11975C18O11984C21O11964C26O11996C31O12032C36O12003C41O12045C42O12049C44O12063C49O12074C51O12072C54O12060C59O12091C62O12091C65O12115C72O12130C77O12141C85O12115C91O12183C110O12183C116O12214C118O12225C123O12309C130O12328C135O12339C143O12313C149O12366C156O12380C162O12377C168O12390C171O12390C174O12405C176O12414,,
code-creation,LazyCompile,10,67524,0x27ba8ebf8c66,36,FastBuffer node:internal/buffer:958:14,0x73467cb1850,~
code-source-info,0x27ba8ebf8c66,19,26364,26453,C3O26407C7O26441C20O26407C35O26452,,
code-creation,LazyCompile,10,67555,0x27ba8ebf8d76,23,write node:buffer:591:12,0x73467ca5098,~
code-source-info,0x27ba8ebf8d76,18,16505,16569,C0O16539C17O16539C22O16569,,
code-creation,LazyCompile,10,67595,0x27ba8ebf8e76,42,alignPool node:buffer:157:19,0x73467ca46c0,~
code-source-info,0x27ba8ebf8e76,18,3978,4082,C0O4012C4O4027C9O4040C19O4051C25O4063C34O4073C41O4081,,
code-creation,LazyCompile,10,67795,0x27ba8ebf93d6,238,promisify node:internal/util:303:19,0x30ec9dba9c10,~
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  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_INVALID_ARG_TYPE\x2C\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\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\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\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  if (code !== undefined && typeof code !== 'string')\n    throw new ERR_INVALID_ARG_TYPE('code'\x2C 'string'\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\nfunction promisify(original) {\n  if (typeof original !== 'function')\n    throw new ERR_INVALID_ARG_TYPE('original'\x2C 'Function'\x2C original);\n\n  if (original[kCustomPromisifiedSymbol]) {\n    const fn = original[kCustomPromisifiedSymbol];\n    if (typeof fn !== 'function') {\n      throw new ERR_INVALID_ARG_TYPE('util.promisify.custom'\x2C 'Function'\x2C fn);\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\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  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,0x27ba8ebf93d6,12,8265,9756,C0O8265C17O8280C23O8320C41O8326C46O8320C47O8389C54O8402C56O8401C61O8446C68O8455C70O8454C74O8486C78O8524C96O8530C101O8524C102O8607C113O8639C123O8680C130O8614C135O8746C136O8909C143O8918C145O8917C148O8909C150O9473C161O9498C167O9498C172O9473C177O9534C188O9559C198O9598C205O9534C210O9665C221O9708C227O9708C232O9672C237O9754,,
tick,0x7efc33644784,68749,0,0x0,3,0x11e9ce0,0x27ba8ebf1ce0,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebee10a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,LazyCompile,10,68937,0x27ba8ebfa866,65,EventEmitterMixin node:internal/event_target:696:27,0xaad667707d8,~
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  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');\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\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    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    this[kStop] = true;\n  }\n\n  preventDefault() {\n    this[kDefaultPrevented] = true;\n  }\n\n  get target() { return this[kTarget]; }\n  get currentTarget() { return this[kTarget]; }\n  get srcElement() { return this[kTarget]; }\n\n  get type() { return this[kType]; }\n\n  get cancelable() { return this[kCancelable]; }\n\n  get defaultPrevented() {\n    return this[kCancelable] && this[kDefaultPrevented];\n  }\n\n  get timeStamp() { return this[kTimestamp]; }\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() { return this[kIsBeingDispatched] ? [this[kTarget]] : []; }\n  get returnValue() { return !this.defaultPrevented; }\n  get bubbles() { return this[kBubbles]; }\n  get composed() { return this[kComposed]; }\n  get eventPhase() {\n    return this[kIsBeingDispatched] ? Event.AT_TARGET : Event.NONE;\n  }\n  get cancelBubble() { return this[kPropagationStopped]; }\n  set cancelBubble(value) {\n    if (value) {\n      this.stopPropagation();\n    }\n  }\n  stopPropagation() {\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\nObjectDefineProperty(Event.prototype\x2C SymbolToStringTag\x2C {\n  writable: false\x2C\n  enumerable: false\x2C\n  configurable: true\x2C\n  value: 'Event'\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 (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 (!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 (!(event instanceof Event))\n      throw new ERR_INVALID_ARG_TYPE('event'\x2C 'Event'\x2C event);\n\n    if (!isEventTarget(this))\n      throw new ERR_INVALID_THIS('EventTarget');\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      return true;\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    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: { enumerable: true }\x2C\n  removeEventListener: { enumerable: true }\x2C\n  dispatchEvent: { enumerable: true }\n});\nObjectDefineProperty(EventTarget.prototype\x2C SymbolToStringTag\x2C {\n  writable: false\x2C\n  enumerable: false\x2C\n  configurable: true\x2C\n  value: 'EventTarget'\x2C\n});\n\nfunction initNodeEventTarget(self) {\n  initEventTarget(self);\n}\n\nclass NodeEventTarget extends EventTarget {\n  static defaultMaxListeners = 10;\n\n  constructor() {\n    super();\n    initNodeEventTarget(this);\n  }\n\n  setMaxListeners(n) {\n    EventEmitter.setMaxListeners(n\x2C this);\n  }\n\n  getMaxListeners() {\n    return this[kMaxEventTargetListeners];\n  }\n\n  eventNames() {\n    return ArrayFrom(this[kEvents].keys());\n  }\n\n  listenerCount(type) {\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    this.removeEventListener(type\x2C listener\x2C options);\n    return this;\n  }\n\n  removeListener(type\x2C listener\x2C options) {\n    this.removeEventListener(type\x2C listener\x2C options);\n    return this;\n  }\n\n  on(type\x2C listener) {\n    this.addEventListener(type\x2C listener\x2C { [kIsNodeStyleListener]: true });\n    return this;\n  }\n\n  addListener(type\x2C listener) {\n    this.addEventListener(type\x2C listener\x2C { [kIsNodeStyleListener]: true });\n    return this;\n  }\n  emit(type\x2C arg) {\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    this.addEventListener(type\x2C listener\x2C\n                          { once: true\x2C [kIsNodeStyleListener]: true });\n    return this;\n  }\n\n  removeAllListeners(type) {\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: { enumerable: true }\x2C\n  getMaxListeners: { enumerable: true }\x2C\n  eventNames: { enumerable: true }\x2C\n  listenerCount: { enumerable: true }\x2C\n  off: { enumerable: true }\x2C\n  removeListener: { enumerable: true }\x2C\n  on: { enumerable: true }\x2C\n  addListener: { enumerable: true }\x2C\n  once: { enumerable: true }\x2C\n  emit: { enumerable: true }\x2C\n  removeAllListeners: { enumerable: true }\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 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,0x27ba8ebfa866,38,19901,20323,C0O19953C23O20137C30O20169C33O20182C38O20137C43O20196C47O20229C52O20270C57O20229C62O20296C64O20321,,
tick,0x7efc336c02cf,70350,0,0x0,3,0x11e9ce0,0x27ba8ebf1cec,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebee10a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
tick,0x7efc3364162a,70364,0,0x0,3,0x11e9ce0,0x27ba8ebf1cec,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebee10a,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4df9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,70674,0x27ba8ebfc256,5, node:internal/modules/esm/transform_source:1:1,0x27ba8ebfc100,~
script-source,109,node:internal/modules/esm/transform_source,'use strict';\n\nfunction defaultTransformSource(source\x2C { url\x2C format } = {}\x2C\n                                defaultTransformSource) {\n  return { source };\n}\nexports.defaultTransformSource = defaultTransformSource;\n
code-source-info,0x27ba8ebfc256,109,0,215,C0O0C4O215,,
code-creation,Function,10,70721,0x27ba8ebfc33e,13, node:internal/modules/esm/transform_source:1:1,0x27ba8ebfc1c0,~
code-source-info,0x27ba8ebfc33e,109,0,215,C0O0C5O158C7O189C12O214,,
code-creation,Eval,10,71261,0x27ba8ebfcf3e,5, node:internal/modules/esm/translators:1:1,0x27ba8ebfca58,~
script-source,110,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  PromisePrototypeCatch\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 { defaultGetSource } = require(\n  'internal/modules/esm/get_source');\nconst { defaultTransformSource } = require(\n  'internal/modules/esm/transform_source');\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 PromisePrototypeCatch(\n      asyncESM.ESMLoader.resolve(specifier\x2C parentUrl)\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) {\n  let { source } = await this._getSource(\n    url\x2C { format: 'module' }\x2C defaultGetSource);\n  assertBufferSource(source\x2C true\x2C 'getSource');\n  ({ source } = await this._transformSource(\n    source\x2C { url\x2C format: 'module' }\x2C defaultTransformSource));\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 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) {\n  emitExperimentalWarning('Importing JSON modules');\n  debug(`Translating JSONModule ${url}`);\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  let { source } = await this._getSource(\n    url\x2C { format: 'json' }\x2C defaultGetSource);\n  assertBufferSource(source\x2C true\x2C 'getSource');\n  ({ source } = await this._transformSource(\n    source\x2C { url\x2C format: 'json' }\x2C defaultTransformSource));\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) {\n  emitExperimentalWarning('Importing Web Assembly modules');\n  let { source } = await this._getSource(\n    url\x2C { format: 'wasm' }\x2C defaultGetSource);\n  assertBufferSource(source\x2C false\x2C 'getSource');\n  ({ source } = await this._transformSource(\n    source\x2C { url\x2C format: 'wasm' }\x2C defaultTransformSource));\n  assertBufferSource(source\x2C false\x2C 'transformSource');\n  debug(`Translating WASMModule ${url}`);\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,0x27ba8ebfcf3e,110,0,11976,C0O0C4O11976,,
code-creation,Function,10,72153,0x27ba8ebfd80e,813, node:internal/modules/esm/translators:1:1,0x27ba8ebfcea8,~
code-source-info,0x27ba8ebfd80e,110,0,11976,C0O0C207O25C213O50C219O71C225O82C231O95C237O119C243O152C249O166C255O191C261O208C267O229C272O240C278O251C284O277C290O301C296O330C307O368C313O414C314O414C316O559C322O559C327O542C333O606C339O606C344O582C350O591C356O683C362O683C367O633C373O649C379O669C385O773C391O773C396O742C402O755C408O839C414O839C418O839C420O893C426O893C431O872C437O975C443O975C448O948C454O1056C460O1056C464O1056C466O1145C472O1145C477O1122C483O1137C489O1173C495O1173C500O1206C513O1207C519O1173C521O1287C527O1287C532O1259C538O1391C544O1391C549O1417C554O1323C560O1353C566O1457C572O1457C577O1433C583O1525C586O1525C590O1525C592O1580C595O1565C601O1619C607O1619C612O1600C617O1690C620O1690C624O1690C626O1761C632O1761C636O1761C638O1829C644O1829C649O1809C655O1890C661O1890C666O1874C672O1925C673O1925C675O2249C677O2249C683O2264C685O2284C689O2299C691O2322C695O2355C696O2355C698O3854C711O3854C717O5235C724O5244C727O5227C729O5277C733O5277C735O5296C748O5296C754O8232C767O8232C773O8681C786O8681C792O10866C805O10866C812O11975,,
tick,0x7efc3373d981,72226,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebe4e1b,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
tick,0xd12721,72417,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebfd9da,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe4e1b,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39af,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,72496,0x27ba8ebfeed6,5, node:internal/modules/esm/create_dynamic_module:1:1,0x27ba8ebfecf0,~
script-source,111,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,0x27ba8ebfeed6,111,0,1756,C0O0C4O1756,,
code-creation,Function,10,72649,0x27ba8ebff10e,111, node:internal/modules/esm/create_dynamic_module:1:1,0x27ba8ebfee40,~
code-source-info,0x27ba8ebff10e,111,0,1756,C0O0C39O25C45O47C51O68C57O85C63O101C69O140C72O140C77O173C90O174C96O140C98O642C103O1718C105O1733C110O1755,,
new,MemoryChunk,0x1c78303c0000,262144
code-creation,Eval,10,73335,0x13b40babf6d6,5, node:internal/vm/module:1:1,0x27ba8ebffce8,~
script-source,112,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,0x13b40babf6d6,112,0,12310,C0O0C4O12310,,
tick,0xfb32c4,74239,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebe39e2,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,Function,10,74262,0x1c78303c17ae,872, node:internal/vm/module:1:1,0x13b40babf640,~
code-source-info,0x1c78303c17ae,112,0,12310,C0O0C156O30C162O30C166O30C168O68C174O84C180O109C186O134C192O156C198O172C204O196C210O220C216O244C222O258C228O274C233O289C238O299C244O320C250O371C253O371C258O357C264O462C270O462C275O412C281O439C287O576C293O576C298O504C304O524C309O547C315O858C321O858C326O884C331O612C337O636C343O661C349O693C355O728C361O771C367O804C373O832C379O1014C385O1014C390O902C396O921C402O941C408O958C414O976C420O994C426O1063C429O1063C433O1063C435O1216C438O1105C444O1119C449O1138C454O1156C460O1173C465O1188C471O1202C477O1245C484O1250C488O1268C495O1283C499O1300C506O1314C510O1330C517O1343C521O1357C528O1374C532O1387C539O1403C543O1414C550O1245C552O1450C553O1450C555O1479C557O1479C559O1516C561O1516C566O1516C568O1550C571O1550C575O1550C577O1584C580O1584C584O1584C586O1632C589O1632C593O1632C595O1677C598O1677C602O1677C660O5923C688O6683C691O6683C695O6683C697O6733C700O6733C704O6733C736O6785C799O10265C827O12150C834O12171C840O12181C846O12201C852O12220C856O12270C866O12165C871O12309,,
code-creation,Function,10,74311,0x1c78303c1cfe,30,<instance_members_initializer> node:internal/vm/module:256:3,0x13b40babfcc0,~
code-source-info,0x1c78303c1cfe,112,6796,6832,C3O6805C29O6832,,
tick,0xf48b80,74554,0,0x0,0,0xf48b80,0x1c78303c1af0,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebe39e2,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdf1c9,0x13b40bab9d2d,0x13b40bab8ffd,0x27ba8ebdafcc,0x13b40babdfe2,0x13b40bab8d75
code-creation,LazyCompile,10,74636,0x1c78303c3326,80,Loader node:internal/modules/esm/loader:45:14,0x27ba8ebe46a8,~
code-source-info,0x1c78303c3326,101,1421,3183,C0O1516C2O1535C4O1533C8O1612C10O1633C13O1629C18O1627C22O1699C24O1719C27O1715C32O1713C36O2223C37O2250C41O2504C43O2520C45O2518C49O2722C51O2740C53O2738C57O2856C59O2874C61O2872C65O3034C67O3058C69O3056C73O3160C74O3175C79O3182,,
code-creation,LazyCompile,10,74714,0x1c78303c3d46,27,ModuleMap node:internal/modules/esm/module_map:15:14,0x27ba8ebe5c48,~
code-source-info,0x1c78303c3d46,102,430,447,C3O436C7O442C11O436C26O446,,
code-creation,LazyCompile,10,74778,0x1c78303c3fb6,13,desc.value node:internal/per_context/primordials:325:32,0x30ec9db89d60,~
code-source-info,0x1c78303c3fb6,6,9496,9555,C0O9513C7O9520C12O9543,,
code-creation,LazyCompile,10,74811,0x1c78303c40ce,13,SafeIterator node:internal/per_context/primordials:270:16,0x30ec9db897b0,~
code-source-info,0x1c78303c40ce,6,7785,7845,C0O7804C3O7821C7O7819C12O7844,,
code-creation,LazyCompile,10,74843,0x1c78303c4216,13,next node:internal/per_context/primordials:273:9,0x30ec9db89878,~
code-source-info,0x1c78303c4216,6,7854,7899,C0O7865C3O7882C8O7872C12O7893,,
code-creation,LazyCompile,10,75106,0x1c78303c46e6,126,deprecate node:internal/util:81:19,0x30ec9dba9498,~
code-source-info,0x1c78303c46e6,12,1940,3027,C0O1940C26O1960C31O1972C37O1986C42O2002C44O2012C45O2020C55O2076C73O2082C78O2076C79O2148C80O2148C82O2723C95O2723C100O2763C103O2770C109O2963C115O2989C119O2984C123O3007C125O3025,,
code-creation,LazyCompile,10,75409,0x1c78303c4e26,315,Module._initPaths node:internal/modules/cjs/loader:1227:29,0x27ba8ebde200,~
code-source-info,0x1c78303c4e26,98,38372,39328,C0O38395C9O38415C14O38419C22O38433C28O38433C33O38472C42O38492C47O38496C55O38508C61O38508C66O38703C74O38719C77O38724C85O38740C93O38724C103O38762C106O38767C114O38783C125O38767C131O38823C140O38824C143O38829C157O38829C169O38868C173O38887C180O38916C183O38921C191O38921C198O38887C203O38963C210O38992C213O38997C221O38997C228O38963C233O39040C237O39060C244O39094C249O39122C254O39153C257O39158C262O39122C270O39176C273O39094C279O39060C284O39199C286O39211C292O39272C297O39293C302O39313C305O39293C309O39291C314O39327,,
tick,0x11684de,75627,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x27ba8ebdafea,0x13b40babdfe2,0x13b40bab8d75
code-creation,Eval,10,75726,0x1c78303c7f9e,5, node:internal/modules/run_main:1:1,0x1c78303c7d88,~
script-source,113,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 esmLoader = require('internal/process/esm_loader');\n  const { pathToFileURL } = require('internal/url');\n  handleMainPromise(esmLoader.loadESM((ESMLoader) => {\n    const main = path.isAbsolute(mainPath) ?\n      pathToFileURL(mainPath).href : 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,0x1c78303c7f9e,113,0,2696,C0O0C4O2696,,
code-creation,Function,10,75931,0x1c78303c82a6,149, node:internal/modules/run_main:1:1,0x1c78303c7f08,~
code-source-info,0x1c78303c82a6,113,0,2696,C0O0C60O25C66O85C72O85C77O133C83O141C89O153C95O212C101O212C106O193C112O254C118O254C122O254C124O2628C131O2649C137O2674C143O2643C148O2695,,
code-creation,LazyCompile,10,76075,0x1c78303c8886,154,initializeESMLoader node:internal/bootstrap/pre_execution:429:29,0x13b40babb2b0,~
code-source-info,0x1c78303c8886,91,13653,14720,C0O13735C6O13735C13O13784C16O13780C21O13778C25O13802C31O13834C32O13841C33O13941C39O13941C44O13857C49O13897C54O13987C60O13987C65O14188C70O14146C74O14258C79O14219C83O14424C91O14428C97O14544C103O14544C108O14493C113O14501C118O14519C123O14590C129O14590C134O14609C136O14619C140O14633C142O14653C146O14677C148O14696C153O14719,,
code-creation,LazyCompile,10,76137,0x1c78303c8a96,5,get hasLoadedAnyUserCJSModule node:internal/modules/cjs/loader:74:32,0x27ba8ebdd6f0,~
code-source-info,0x1c78303c8a96,98,2306,2346,C0O2311C4O2344,,
code-creation,LazyCompile,10,76170,0x1c78303c8b4e,21,assert node:internal/assert:11:16,0x73467c97750,~
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,0x1c78303c8b4e,16,172,307,C0O193C4O242C7O242C11O259C13O265C18O259C20O306,,
code-creation,LazyCompile,10,76245,0x1c78303c8d5e,53,loadPreloadModules node:internal/bootstrap/pre_execution:472:28,0x13b40babb3a0,~
code-source-info,0x1c78303c8d5e,91,15196,15516,C0O15283C8O15283C13O15314C15O15351C21O15358C26O15434C32O15434C37O15434C42O15401C47O15478C52O15515,,
code-creation,LazyCompile,10,76281,0x1c78303c8f56,50,initializeFrozenIntrinsics node:internal/bootstrap/pre_execution:464:36,0x13b40babb350,~
code-source-info,0x1c78303c8f56,91,14945,15167,C0O14952C8O14956C14O15001C17O15009C28O15009C34O15121C40O15121C45O15158C49O15166,,
code-creation,LazyCompile,10,76341,0x1c78303c908e,80,executeUserEntryPoint node:internal/modules/run_main:72:31,0x1c78303c8138,~
code-source-info,0x1c78303c908e,113,2321,2626,C7O2337C14O2341C22O2371C25O2371C30O2417C33O2417C38O2453C40O2477C45O2488C50O2477C56O2589C61O2596C73O2596C79O2625,,
code-creation,LazyCompile,10,76382,0x1c78303c94de,68,resolveMainPath node:internal/modules/run_main:11:25,0x1c78303c7fd0,~
code-source-info,0x1c78303c94de,113,296,710,C0O468C5O475C12O485C15O490C20O490C30O475C36O520C38O539C39O546C40O579C48O579C53O625C55O656C60O667C65O692C67O708,,
code-creation,LazyCompile,10,76545,0x1c78303c96ee,436,Module._findPath node:internal/modules/cjs/loader:494:28,0x27ba8ebdda10,~
code-source-info,0x1c78303c96ee,98,14327,16931,C0O14380C5O14385C10O14385C16O14408C18O14435C26O14458C30O14478C36O14485C41O14498C42O14511C43O14536C45O14544C51O14555C57O14555C62O14553C66O14606C69O14613C76O14623C80O14637C82O14652C84O14665C85O14673C87O14709C93O14716C100O14727C103O14770C107O14777C111O14727C119O14790C121O14782C125O14812C127O14838C134O14874C137O14854C143O14943C145O14956C149O14948C154O15041C156O15046C160O15055C165O15070C172O15084C177O15089C179O15104C183O15158C186O15158C192O15198C194O15227C196O15250C197O15279C202O15284C207O15284C214O15319C216O15345C219O15345C224O15365C228O15393C229O15400C234O15427C238O15452C244O15488C249O15504C254O15504C262O15554C265O15565C272O15614C278O16228C283O16244C288O16244C296O16290C299O16301C304O16348C308O16419C312O16453C320O16478C325O16460C330O16500C342O16511C348O16569C354O16589C359O16674C363O16706C371O16731C376O16713C381O16751C396O16762C402O16818C406O16840C409O16847C416O16868C420O16886C422O16902C423O14965C428O14930C434O16916C435O16929,,
code-creation,LazyCompile,10,76614,0x1c78303c9aae,45,isAbsolute node:path:1156:13,0xaad667639b0,~
code-source-info,0x1c78303c9aae,35,35448,35594,C0O35461C8O35461C13O35507C19O35514C26O35532C31O35532C39O35571C41O35567C44O35590,,
tick,0x11a39d0,76693,0,0x0,0,0x1205de0,0x16231c8,0x1c78303c9777,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
code-creation,LazyCompile,10,76806,0x1c78303c9cbe,85,stat node:internal/modules/cjs/loader:151:14,0x27ba8ebdcfb0,~
code-source-info,0x1c78303c9cbe,98,4627,5024,C0O4642C5O4658C10O4658C17O4688C23O4733C28O4743C33O4743C39O4762C41O4788C43O4802C44O4824C49O4824C54O4856C61O4889C66O4969C71O4979C76O4979C82O5008C84O5022,,
code-creation,LazyCompile,10,76841,0x1c78303c9e0e,3,toNamespacedPath node:path:1266:19,0xaad66763aa0,~
code-source-info,0x1c78303c9e0e,35,38609,38669,C0O38653C2O38665,,
code-creation,LazyCompile,10,76896,0x1c78303c9f0e,42,toRealPath node:internal/modules/cjs/loader:393:20,0x27ba8ebdd280,~
code-source-info,0x1c78303c9f0e,98,11292,11404,C0O11310C5O11320C10O11333C17O11353C20O11364C28O11383C35O11320C41O11402,,
code-creation,LazyCompile,10,77338,0x1c78303ca34e,1036,realpathSync node:fs:2398:22,0x3fe299d17f80,~
script-source,76,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  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 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\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\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  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,0x1c78303ca34e,76,63742,67653,C0O63759C8O63789C12O63769C19O63802C25O63806C31O63828C35O63861C45O63876C51O63876C55O63895C61O63910C67O63910C74O63939C76O63947C78O63946C82O63994C86O63999C92O64001C101O64011C103O64040C105O64065C106O64091C115O64091C120O64131C129O64131C134O64170C137O64217C139O64292C141O64387C143O64463C145O64497C151O64514C157O64544C162O64626C168O64659C176O64667C183O64679C189O64687C197O64693C201O64704C207O64704C223O64687C228O64756C234O64756C238O64789C239O64805C243O64945C247O64941C252O65000C258O65000C264O65022C267O65046C269O65057C274O65086C280O65086C287O65122C289O65133C296O65145C298O65161C302O65183C309O65210C311O65221C317O65257C328O65221C340O65269C342O65287C355O65287C360O65285C364O65331C366O65344C370O65417C372O65430C384O65445C390O65447C402O65457C407O65475C413O65490C417O65498C425O65510C429O65479C442O65543C446O65551C454O65563C458O65532C465O65584C467O65605C469O65630C471O65676C478O65681C484O65683C493O65698C495O65731C502O65913C508O65924C514O65924C520O65966C528O65974C535O66002C541O66010C559O66010C565O66055C571O66055C575O66091C581O66114C585O66096C592O66134C593O66150C597O66166C604O66171C610O66173C619O66198C621O66352C624O66368C627O66378C633O66416C640O66445C649O66416C656O66475C664O66504C673O66475C680O66522C694O66537C700O66552C702O66565C707O66583C709O66605C714O66635C718O66682C726O66690C733O66706C739O66714C757O66714C762O66761C768O66761C772O66798C778O66819C796O66819C803O66874C809O66874C813O66917C819O66943C825O66943C832O66981C836O66998C842O66998C848O67029C854O67045C856O67059C860O67125C866O67140C874O67162C878O67162C885O67140C893O67221C899O67238C905O67270C910O67356C918O67383C923O67411C931O67419C938O67433C944O67441C952O67447C956O67458C962O67458C978O67441C983O67512C989O67512C993O67547C994O67563C998O64930C1004O67584C1011O67589C1017O67591C1026O67611C1030O67618C1035O67651,,
tick,0x7efc339ceef4,82990,0,0x0,3,0x11e9ce0,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
tick,0x7efc33a63f65,83015,0,0x0,3,0x11e9ce0,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
tick,0x7efc3363537b,83020,0,0x0,3,0x11e9ce0,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
tick,0x7efc3364160a,83024,0,0x0,3,0x11e9ce0,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
tick,0x7efc33a63f65,83029,0,0x0,3,0x11e9ce0,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
tick,0xe7f670,83101,0,0x0,3,0x11e9ce0,0x1c78303ca35a,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
code-creation,LazyCompile,10,83199,0x1c78303d086e,123,getOptions node:internal/fs/utils:313:20,0x3fe299d1fec0,~
script-source,77,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  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 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 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  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,0x1c78303d086e,77,7198,7821,C0O7228C14O7320C16O7342C17O7350C23O7389C29O7433C31O7457C35O7472C42O7507C48O7546C66O7552C71O7546C72O7639C79O7648C84O7666C87O7689C92O7666C96O7715C102O7743C107O7771C115O7743C120O7804C122O7819,,
tick,0x7efc33a63f9a,84911,0,0x0,3,0x11e9ce0,0x1c78303ca35a,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
code-creation,LazyCompile,10,84944,0x1c78303d26fe,48,assertEncoding node:internal/fs/utils:150:24,0x3fe299d1f8c8,~
code-source-info,0x1c78303d26fe,77,3507,3684,C0O3522C6O3539C9O3546C14O3546C21O3589C24O3616C40O3622C45O3616C47O3683,,
code-creation,LazyCompile,10,85087,0x1c78303d2826,20,toPathIfFileURL node:internal/url:1449:25,0xaad667565e8,~
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  RegExpPrototypeExec\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 { getConstructorOf\x2C removeColors } = require('internal/util');\nconst {\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\n} = require('internal/errors').codes;\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  toUSVString: _toUSVString\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 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\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nconst IteratorPrototype = ObjectGetPrototypeOf(\n  ObjectGetPrototypeOf([][SymbolIterator]())\n);\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\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\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<sequence<USVString>>\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<USVString\x2C USVString>\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\n      throw new ERR_INVALID_THIS('URLSearchParams');\n    }\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\n      throw new ERR_INVALID_THIS('URLSearchParams');\n    }\n\n    return createSearchParamsIterator(this\x2C 'key+value');\n  }\n\n  forEach(callback\x2C thisArg = undefined) {\n    if (!this || !this[searchParams] || this[searchParams][searchParams]) {\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\n      throw new ERR_INVALID_THIS('URLSearchParams');\n    }\n\n    return createSearchParamsIterator(this\x2C 'key');\n  }\n\n  values() {\n    if (!this || !this[searchParams] || this[searchParams][searchParams]) {\n      throw new ERR_INVALID_THIS('URLSearchParams');\n    }\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 (!this || !this[searchParams] || this[searchParams][searchParams]) {\n      throw new ERR_INVALID_THIS('URLSearchParams');\n    }\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) {\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\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 = `${url.username}:${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,0x1c78303d2826,33,40960,41081,C0O40980C3O40985C9O41019C11O41040C12O41043C15O41050C19O41079,,
tick,0x7efc33a63fa1,88024,0,0x0,3,0x11e9ce0,0x1c78303ca367,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
tick,0x7efc33a63f45,88064,0,0x0,3,0x11e9ce0,0x1c78303ca367,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
tick,0x7efc33a6470f,88068,0,0x0,3,0x11e9ce0,0x1c78303ca367,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
code-creation,LazyCompile,10,88073,0x1c78303d57ee,17,isURLInstance node:internal/url:1445:23,0xaad66756598,~
code-source-info,0x1c78303d57ee,33,40837,40934,C0O40857C3O40878C6O40903C12O40925C16O40932,,
code-creation,LazyCompile,10,88154,0x1c78303d595e,81, node:internal/fs/utils:667:38,0x3fe299d208e8,~
code-source-info,0x1c78303d595e,77,18121,18391,C14O18154C22O18187C25O18187C31O18213C36O18244C49O18219C54O18213C55O18309C68O18309C74O18346C76O18375C78O18375C80O18390,,
code-creation,LazyCompile,10,88214,0x1c78303d5b7e,110, node:internal/fs/utils:356:35,0x3fe299d1ff60,~
code-source-info,0x1c78303d5b7e,77,8549,9138,C16O8613C21O8666C26O8666C31O8760C37O8783C41O8811C45O8828C51O8828C60O8879C64O8900C69O8900C76O8945C77O8952C78O8972C94O8972C100O9086C104O9108C106O9108C107O9125C109O9136,,
code-creation,LazyCompile,10,88261,0x1c78303d5d06,16,isUint8Array node:internal/util/types:13:22,0x73467c96d28,~
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,0x1c78303d5d06,15,257,342,C0O269C5O276C12O323C15O340,,
tick,0x164b61e,88510,0,0x0,0,0x27ba8ebc99b4,0x27ba8ebc572f,0x1c78303ca391,0x1c78303c9f31,0x1c78303c9819,0x1c78303c94fc,0x1c78303c90a7,0x13b40bab8d99
code-creation,LazyCompile,10,88548,0x1c78303d618e,61,splitRoot node:fs:2352:33,0x3fe299d17e90,~
code-source-info,0x1c78303d618e,76,62544,62736,C0O62569C2O62580C6O62574C11O62601C16O62605C24O62643C26O62639C31O62671C44O62678C49O62710C50O62590C55O62556C58O62721C60O62732,,
code-creation,LazyCompile,10,88587,0x1c78303d62d6,20,nextPart node:fs:2385:31,0x3fe299d17f30,~
code-source-info,0x1c78303d62d6,76,63451,63509,C0O63464C14O63471C19O63505,,
code-creation,LazyCompile,10,88692,0x1c78303d6406,63,handleErrorFromBinding node:internal/fs/utils:339:32,0x3fe299d1ff10,~
code-source-info,0x1c78303d6406,77,7910,8408,C0O7928C6O7991C11O7991C16O8013C24O8013C29O8070C31O8070C32O8095C38O8323C43O8350C51O8323C56O8396C60O8386C62O8407,,
code-creation,LazyCompile,10,88734,0x1c78303d6566,34,isFileType node:fs:202:20,0x3fe299d15c48,~
code-source-info,0x1c78303d6566,76,5240,5481,C0O5374C2O5379C6O5386C10O5420C15O5427C20O5443C22O5458C24O5456C30O5466C33O5479,,
code-creation,LazyCompile,10,88827,0x1c78303d6766,72,encodeRealpathResult node:fs:2361:30,0x3fe299d17ee0,~
code-source-info,0x1c78303d6766,76,62770,63028,C0O62792C4O62817C10O62837C17O62846C22O62862C24O62876C25O62896C30O62903C35O62903C41O62931C48O62940C53O62960C55O62976C56O62999C61O63016C66O62999C71O63026,,
code-creation,LazyCompile,10,88920,0x1c78303d6926,109,shouldUseESMLoader node:internal/modules/run_main:26:28,0x1c78303c8020,~
code-source-info,0x1c78303d6926,113,739,1299,C0O773C8O773C13O816C15O836C16O848C17O891C25O891C30O948C32O980C37O996C38O1008C39O1056C45O1072C51O1072C58O1119C59O1131C60O1134C66O1151C72O1151C79O1198C80O1211C81O1226C86O1226C91O1256C93O1274C98O1279C105O1284C108O1297,,
code-creation,LazyCompile,10,88993,0x1c78303d6b56,129,readPackageScope node:internal/modules/cjs/loader:321:26,0x27ba8ebdd190,~
code-source-info,0x1c78303d6b56,98,8919,9437,C0O8962C7O8996C10O8962C16O9008C18O9035C25O9090C28O9052C34O9100C47O9112C54O9168C61O9207C66O9211C70O9172C77O9236C78O9249C79O9268C84O9292C86O9290C90O9268C95O9302C97O9313C104O9334C110O9353C116O9370C117O9397C119O9397C124O9026C127O9422C128O9435,,
code-creation,LazyCompile,10,89094,0x1c78303d6eb6,234,readPackage node:internal/modules/cjs/loader:290:21,0x27ba8ebdd140,~
code-source-info,0x1c78303d6eb6,98,8102,8892,C0O8137C5O8142C13O8142C20O8200C25O8217C30O8217C36O8234C38O8262C40O8278C41O8297C46O8315C51O8315C57O8353C63O8366C72O8392C77O8402C79O8432C84O8449C91O8449C97O8475C98O8488C102O8521C107O8521C112O8559C117O8580C125O8605C133O8633C141O8664C149O8692C160O8708C165O8725C170O8725C176O8754C178O8770C190O8791C195O8798C199O8814C207O8843C213O8854C220O8865C224O8861C227O8824C231O8878C233O8878,,
code-creation,LazyCompile,10,89209,0x1c78303d71ce,199,read node:internal/modules/package_json_reader:16:14,0x27ba8ebe2da0,~
code-source-info,0x1c78303d71ce,99,292,954,C0O307C5O317C10O317C17O338C22O351C27O351C32O365C33O412C40O440C43O440C48O412C53O384C59O395C66O489C73O491C79O499C86O544C92O544C97O525C102O575C106O607C112O643C115O654C127O704C132O738C142O652C148O774C154O821C159O821C164O852C169O861C174O861C180O907C185O913C190O913C196O938C198O952,,
code-creation,LazyCompile,10,89463,0x1c78303d7f46,71,runMainESM node:internal/modules/run_main:43:20,0x1c78303c8070,~
code-source-info,0x1c78303d7f46,113,1320,1636,C0O1320C12O1353C20O1353C25O1421C33O1421C38O1403C44O1448C49O1476C59O1476C65O1448C70O1635,,
code-creation,LazyCompile,10,89547,0x1c78303d8186,222,loadESM node:internal/process/esm_loader:65:41,0x27ba8ebe3820,~
code-source-info,0x1c78303d8186,100,2011,2324,C10O2011C21O2036C24O2042C35O2036C58O2066C60O2081C63O2072C75O2066C113O2115C120O2119C125O2166C130O2174C138O2174C143O2202C154O2209C155O2220C163O2220C168O2245C178O2246C197O2323,,
tick,0x7efc3363549c,89599,0,0x0,3,0x11e9ce0,0x1c78303d7f81,0x1c78303c90c0,0x13b40bab8d99
code-creation,LazyCompile,10,89663,0x1c78303d87a6,172,initializeLoader node:internal/process/esm_loader:40:32,0x27ba8ebe36b0,~
code-source-info,0x1c78303d87a6,100,1233,1969,C0O1233C25O1267C33O1267C38O1248C43O1317C46O1317C50O1317C52O1360C56O1381C67O1388C68O1395C69O1395C74O1412C79O1426C84O1426C91O1432C94O1416C100O1455C102O1459C104O1634C112O1634C117O1606C122O1662C125O1662C129O1714C134O1964C147O1967,,
code-creation,LazyCompile,10,89687,0x1c78303d898e,205, node:internal/process/esm_loader:55:11,0x1c78303d86a0,~
code-source-info,0x1c78303d898e,100,1722,1963,C10O1722C18O1762C25O1778C32O1785C39O1797C44O1811C47O1797C52O1815C57O1784C71O1762C97O1827C104O1839C114O1837C122O1857C129O1867C134O1867C139O1884C146O1894C151O1894C155O1922C164O1949C167O1947C180O1959,,
code-creation,LazyCompile,10,89750,0x1c78303d8c86,170,handleMainPromise node:internal/modules/run_main:53:33,0x1c78303c80c0,~
code-source-info,0x1c78303d8c86,113,1670,2105,C10O1670C23O1989C26O1997C34O1997C43O2030C53O2037C90O2070C93O2078C101O2078C145O2104,,
code-creation,LazyCompile,10,89816,0x1c78303d8e76,55, node:internal/modules/run_main:46:39,0x1c78303d7e70,~
code-source-info,0x1c78303d8e76,113,1484,1631,C0O1518C7O1523C15O1523C24O1552C30O1552C35O1575C44O1614C49O1620C54O1627,,
code-creation,LazyCompile,10,89915,0x1c78303d90de,283,pathToFileURL node:internal/url:1408:23,0xaad66756528,~
code-source-info,0x1c78303d90de,33,39584,40813,C0O39614C10O39614C16O39636C24O39653C30O39653C37O39766C45O39766C51O39818C58O39825C63O39839C79O39845C84O39839C85O39982C87O39987C91O40009C97O40016C102O40031C118O40037C123O40031C124O40152C127O40170C131O40168C135O40199C140O40240C145O40259C151O40259C160O40240C166O40217C170O40215C176O40327C181O40332C186O40332C192O40445C197O40541C201O40548C205O40445C211O40558C213O40580C215O40576C222O40612C228O40642C230O40638C235O40693C239O40700C242O40683C248O40709C251O40714C255O40705C260O40725C269O40746C272O40764C276O40762C280O40797C282O40811,,
code-creation,LazyCompile,10,89981,0x1c78303d93be,105,URL node:internal/url:604:14,0xaad66755420,~
code-source-info,0x1c78303d93be,33,17430,17765,C0O17484C5O17512C7O17530C11O17562C18O17577C28O17591C30O17590C34O17611C38O17616C45O17631C48O17627C53O17625C57O17649C73O17701C81O17701C98O17649C104O17764,,
code-creation,LazyCompile,10,90024,0x1c78303d958e,51,URLContext node:internal/url:143:14,0xaad66754bf8,~
code-source-info,0x1c78303d958e,33,3684,3896,C0O3693C1O3704C5O3713C7O3725C11O3736C13O3750C17O3760C19O3774C23O3784C24O3794C28O3806C29O3816C33O3828C35O3838C39O3848C40O3859C44O3871C45O3885C50O3895,,
code-creation,LazyCompile,10,90139,0x1c78303d97e6,190,onParseComplete node:internal/url:516:25,0xaad66755150,~
code-source-info,0x1c78303d97e6,33,14636,15305,C0O14750C2O14755C4O14754C8O14767C10O14777C14O14788C16O14799C20O14813C22O14837C24O14835C29O14861C43O14826C47O14886C49O14910C51O14908C56O14934C70O14899C74O14959C76O14968C80O14978C82O14998C84O14996C89O15018C101O15026C103O14987C107O15039C109O15049C113O15060C115O15073C119O15087C121O15096C125O15106C127O15116C129O15115C134O15169C136O15174C141O15194C144O15190C149O15188C153O15217C155O15222C157O15221C163O15236C168O15245C172O15259C177O15281C179O15280C183O15259C189O15304,,
code-creation,LazyCompile,10,90329,0x1c78303d9c4e,881,URLSearchParams node:internal/url:161:14,0xaad66754c48,~
code-source-info,0x1c78303d9c4e,33,4197,6594,C10O4222C16O4271C18O4276C24O4290C30O4307C42O4390C44O4395C46O4394C50O4418C52O4438C54O4437C57O4429C62O4636C64O4641C66O4640C71O4664C73O4669C77O4697C83O4697C87O4683C93O4719C101O4774C107O4820C119O4826C124O4820C125O5020C128O5051C156O5043C187O5043C190O5069C208O5190C210O5189C217O5236C233O5242C238O5236C239O5345C243O5381C271O5370C302O5370C305O5399C315O5433C321O5399C329O5359C405O5466C411O5466C416O5032C490O5527C492O5532C498O5546C502O5579C530O5571C561O5571C564O5607C572O5614C577O5635C593O5641C598O5635C599O5722C607O5746C609O5745C615O5765C622O5774C627O5722C632O5560C705O5918C707O5923C713O5937C717O5964C723O5964C728O6007C730O6019C734O6012C739O6056C741O6060C745O6088C751O6088C757O6142C759O6173C765O6216C769O6216C774O6265C780O6281C785O6265C790O6301C792O6306C794O6305C799O6320C805O6320C811O6028C816O5994C821O6416C825O6423C830O6448C831O6456C838O6460C843O6481C853O6481C859O6497C863O6497C868O6569C870O6574C875O6583C880O6593,,
code-creation,LazyCompile,10,90404,0x1c78303da22e,35,initSearchParams node:internal/url:969:26,0xaad66756088,~
code-source-info,0x1c78303da22e,33,26588,26703,C0O26604C4O26621C6O26625C11O26639C15O26649C16O26656C17O26663C19O26667C25O26683C29O26681C34O26702,,
code-creation,LazyCompile,10,90483,0x1c78303da3ee,199,encodePathChars node:internal/url:1393:25,0xaad667564d8,~
code-source-info,0x1c78303da3ee,33,38868,39560,C0O38883C8O38887C15O38931C22O38975C31O38942C38O39055C46O39073C52O39073C59O39118C66O39162C75O39129C82O39188C90O39192C97O39237C104O39281C113O39248C120O39305C128O39309C135O39354C142O39398C151O39365C158O39429C166O39433C173O39478C180O39522C189O39489C196O39542C198O39558,,
code-creation,LazyCompile,10,90540,0x1c78303da62e,70,set pathname node:internal/url:868:15,0xaad66755d58,~
code-source-info,0x1c78303da62e,33,24054,24256,C0O24101C5O24123C9O24132C11O24131C16O24153C17O24160C18O24165C29O24177C38O24200C40O24199C49O24240C54O24240C63O24165C69O24255,,
code-creation,LazyCompile,10,90571,0x1c78303da78e,31, node:internal/url:620:21,0xaad667554f8,~
code-source-info,0x1c78303da78e,33,17872,17947,C0O17881C4O17894C6O17893C10O17903C19O17911C21O17909C26O17937C30O17943,,
code-creation,LazyCompile,10,90634,0x1c78303da8ce,108,onParsePathComplete node:internal/url:575:29,0xaad66755330,~
code-source-info,0x1c78303da8ce,33,16595,17061,C0O16713C2O16718C4O16717C8O16730C10O16743C12O16741C17O16763C22O16776C24O16785C28O16797C35O16810C40O16807C46O16845C48O16854C52O16864C59O16878C61O16877C66O16874C70O16956C72O16969C74O16967C79O16989C84O17002C86O17011C90O17023C97O17036C102O17033C107O17060,,
tick,0x7efc336c02cf,90716,0,0x0,3,0x11e9ce0,0xbaa280,0x1c78303da66d,0x15c9ed9,0x1c78303d91f2,0x1c78303d8e94,0x1c78303d81c5,0x158e77f
code-creation,LazyCompile,10,90732,0x1c78303daa7e,18,get href node:internal/url:718:11,0xaad66755688,~
code-source-info,0x1c78303daa7e,33,20537,20575,C0O20546C4O20558C6O20557C12O20566C17O20571,,
code-creation,LazyCompile,10,90833,0x1c78303dad76,393, node:internal/url:666:12,0xaad667555e8,~
code-source-info,0x1c78303dad76,33,19172,20422,C0O19188C4O19207C14O19207C19O19248C30O19351C37O19382C41O19387C43O19386C47O19467C52O19487C58O19510C67O19554C74O19563C79O19602C86O19611C91O19637C99O19646C103O19662C105O19687C109O19726C120O19744C124O19772C127O19787C142O19807C151O19848C165O19886C170O19866C176O19898C184O19918C190O19941C193O19956C208O19974C212O19983C214O19982C219O20017C225O20021C237O20053C243O20074C248O20079C255O20086C260O20097C266O20101C272O20105C277O20123C286O20158C291O20163C297O20181C304O20194C307O20217C315O20194C320O20192C330O20259C336O20273C342O20295C345O20310C360O20335C366O20351C372O20376C375O20391C390O20407C392O20418,,
code-creation,LazyCompile,10,90906,0x1c78303db10e,103, node:internal/validators:144:3,0x73467c99ee8,~
code-source-info,0x1c78303db10e,17,4197,4570,C10O4197C16O4217C24O4239C32O4263C40O4305C50O4352C54O4366C57O4366C71O4441C79O4506C95O4512C100O4506C102O4569,,
code-creation,LazyCompile,10,90989,0x1c78303db3d6,152,import node:internal/modules/esm/loader:176:15,0x27ba8ebe47e8,~
code-source-info,0x1c78303db3d6,101,5914,6073,C10O5914C18O5963C23O5963C37O5952C63O6029C68O6029C80O6019C103O6008C108O6054C113O6054C127O6069,,
code-creation,LazyCompile,10,91067,0x1c78303db62e,317,getModuleJob node:internal/modules/esm/loader:241:21,0x27ba8ebe48d8,~
code-source-info,0x1c78303db62e,101,7868,8640,C10O7868C18O7920C23O7920C37O7909C63O7981C68O7981C81O7970C107O8016C112O8026C117O8026C123O8100C127O8142C132O8152C137O8167C141O8152C147O8179C151O8208C163O8219C164O8225C169O8242C174O8242C181O8261C188O8267C193O8261C194O8334C199O8346C204O8346C210O8383C217O8425C224O8441C230O8441C235O8478C258O8484C264O8596C269O8606C274O8606C280O8625C292O8636,,
code-creation,LazyCompile,10,91174,0x1c78303dba1e,238,resolve node:internal/modules/esm/loader:84:16,0x27ba8ebe46f8,~
code-source-info,0x1c78303dba1e,101,3200,3907,C10O3200C18O3244C22O3273C32O3322C35O3322C41O3354C59O3360C64O3354C65O3469C70O3485C77O3498C83O3521C91O3543C100O3469C113O3458C139O3564C145O3613C161O3619C166O3613C167O3722C172O3751C176O3788C195O3794C200O3788C201O3892C213O3903,,
code-creation,LazyCompile,10,91480,0x1c78303dbfae,885,defaultResolve node:internal/modules/esm/resolve:804:24,0x27ba8ebea388,~
code-source-info,0x1c78303dbfae,104,27657,30940,C7O27657C16O27715C21O27726C26O27752C32O27769C38O27775C47O27811C53O27818C59O27827C65O27827C71O27863C73O27894C78O27903C84O27953C86O27976C92O27972C99O27953C106O28018C109O28030C110O28046C115O28066C120O28096C124O28148C130O28162C138O28176C144O28183C145O28198C149O28221C151O28234C157O28319C163O28342C170O28319C185O28230C192O28221C196O28397C201O28417C209O28426C215O28461C223O28470C228O28491C236O28513C242O28531C249O28553C253O28574C261O28583C266O28600C274O28614C280O28626C281O28629C285O28650C293O28659C298O28681C306O28690C311O28707C319O28713C324O28707C325O28759C331O28776C337O28776C344O28815C356O28843C365O28861C366O28868C372O28885C380O28885C387O28986C401O28986C406O29039C410O29066C412O29084C422O29121C428O29121C442O29096C448O29130C453O29542C459O29562C465O29568C470O29562C471O29609C475O29622C480O29658C485O29675C498O29681C508O29679C519O29849C523O29859C531O29864C540O29908C548O29913C553O29955C565O29959C572O30018C580O30030C585O30084C591O30084C597O30131C599O30233C611O30260C621O30233C627O30295C633O30321C645O30339C653O30363C657O30363C665O30390C672O30397C679O30414C688O30433C696O30433C701O30421C704O30351C708O30474C724O30496C731O30488C735O30522C737O30522C738O30542C744O30556C751O30580C756O30620C762O30620C767O30657C773O30670C781O30688C785O30699C793O30718C800O30657C806O30756C809O30765C817O30800C823O30833C827O30800C843O30797C848O30771C853O30873C857O30867C861O30900C865O30894C869O30913C877O30930C884O30938,,
code-creation,LazyCompile,10,91587,0x1c78303de296,15,get protocol node:internal/url:753:15,0xaad667557c8,~
code-source-info,0x1c78303de296,33,21375,21416,C0O21384C4O21396C6O21395C10O21405C14O21412,,
code-creation,LazyCompile,10,91623,0x1c78303de3a6,28,canBeRequiredByUsers node:internal/bootstrap/loaders:240:30,0x30ec9db8f628,~
code-source-info,0x1c78303de3a6,9,7353,7449,C0O7376C5O7389C10O7393C15O7393C21O7406C23O7424C27O7445,,
code-creation,LazyCompile,10,91714,0x1c78303de50e,64,getConditionsSet node:internal/modules/esm/resolve:107:26,0x27ba8ebe9b18,~
code-source-info,0x1c78303de50e,104,3655,3982,C0O3672C6O3719C8O3715C13O3745C18O3750C24O3784C40O3790C45O3784C46O3912C53O3919C58O3943C59O3950C63O3980,,
tick,0x7efc336c02cf,91755,0,0x0,3,0x11e9ce0,0x1c78303dc189,0x1c78303dba82,0x1c78303db645,0x1c78303db3ed,0x1c78303d8ea7,0x1c78303d81c5,0x158e77f
code-creation,LazyCompile,10,91791,0x1c78303de666,116,moduleResolve node:internal/modules/esm/resolve:741:23,0x27ba8ebea2e8,~
code-source-info,0x1c78303de666,104,25529,26078,C0O25667C2O25679C5O25683C11O25741C24O25752C32O25787C33O25800C39O25804C44O25819C56O25835C62O25822C72O25915C79O25926C88O25924C89O25966C101O25977C107O26034C110O26041C115O26076,,
code-creation,LazyCompile,10,91827,0x1c78303de7fe,31,shouldBeTreatedAsRelativeOrAbsolutePath node:internal/modules/esm/resolve:729:49,0x27ba8ebea298,~
code-source-info,0x1c78303de7fe,104,25259,25394,C0O25275C2O25289C7O25297C8O25310C9O25313C10O25326C16O25330C21O25339C22O25351C23O25354C26O25361C30O25392,,
code-creation,LazyCompile,10,91873,0x1c78303de926,81,isRelativeSpecifier node:internal/modules/esm/resolve:719:29,0x27ba8ebea248,~
code-source-info,0x1c78303de926,104,24966,25209,C0O24982C1O24995C7O24999C12O25028C19O25035C26O25053C32O25057C37O25066C38O25078C39O25083C41O25096C47O25100C52O25131C59O25138C66O25156C72O25160C77O25169C78O25181C79O25194C80O25207,,
code-creation,LazyCompile,10,91988,0x1c78303deb66,341,finalizeResolution node:internal/modules/esm/resolve:294:28,0x27ba8ebe9d98,~
code-source-info,0x1c78303deb66,104,9915,11113,C0O9936C7O9960C10O9986C15O9940C22O10001C27O10056C37O10123C40O10123C47O10007C52O10001C53O10161C58O10161C63O10188C71O10192C78O10246C83O10275C86O10275C91O10324C93O10348C95O10360C96O10365C104O10370C111O10414C116O10447C121O10454C131O10443C137O10421C142O10475C144O10499C146O10511C149O10531C152O10538C160O10582C161O10593C166O10640C173O10650C176O10650C186O10599C191O10593C192O10703C199O10715C205O10715C214O10756C220O10756C230O10703C235O10808C240O10808C246O10841C253O10878C256O10878C266O10841C272O10904C274O10914C277O10914C281O10912C285O10936C287O10936C288O10967C293O10967C299O10983C306O11021C308O11038C315O11048C319O11056C322O11056C332O10989C337O10983C338O11095C340O11111,,
code-creation,LazyCompile,10,92049,0x1c78303deeb6,78,get pathname node:internal/url:859:15,0xaad66755ce8,~
code-source-info,0x1c78303deeb6,33,23845,24038,C0O23866C4O23871C6O23870C10O23885C14O23894C16O23893C21O23926C27O23930C30O23934C31O23947C36O23952C42O23959C47O23972C49O23982C50O23987C57O23998C60O24021C68O23998C77O24034,,
code-creation,LazyCompile,10,92221,0x1c78303df11e,106,fileURLToPath node:internal/url:1366:23,0xaad66756488,~
code-source-info,0x1c78303df11e,33,37759,38084,C0O37770C6O37804C13O37811C22O37833C25O37838C31O37863C49O37869C54O37863C55O37939C62O37948C67O37965C77O37971C82O37965C83O38009C92O38028C101O38056C105O38082,,
code-creation,LazyCompile,10,92290,0x1c78303df356,150,get origin node:internal/url:730:13,0xaad66755758,~
code-source-info,0x1c78303df356,33,20800,21359,C0O20882C4O20887C6O20886C10O20913C59O20959C64O20964C70O20971C78O21006C83O21026C89O21030C95O21014C101O21036C105O21043C110O21136C116O21157C117O21263C122O21295C127O21307C132O21317C137O21270C142O21323C143O21334C149O21355,,
code-creation,LazyCompile,10,92353,0x1c78303df5ce,136,getPathFromURLPosix node:internal/url:1348:29,0xaad66756438,~
code-source-info,0x1c78303df5ce,33,37259,37735,C0O37277C7O37286C12O37300C19O37336C24O37306C29O37300C30O37374C35O37399C37O37415C41O37404C46O37434C48O37446C54O37450C59O37490C66O37504C70O37490C75O37509C79O37523C81O37538C84O37535C90O37543C97O37560C102O37579C112O37585C117O37579C118O37424C123O37386C126O37697C131O37704C135O37733,,
code-creation,LazyCompile,10,92388,0x1c78303df7be,19,get hostname node:internal/url:825:15,0xaad66755b38,~
code-source-info,0x1c78303df7be,33,23055,23100,C0O23064C4O23076C6O23075C10O23085C18O23096,,
code-creation,LazyCompile,10,92456,0x1c78303dfa0e,30,tryStatSync node:internal/modules/esm/resolve:122:3,0x27ba8ebea3d8,~
code-source-info,0x1c78303dfa0e,104,4115,4181,C0O4170C5O4134C10O4125C21O4174C24O4170C29O4181,,
code-creation,LazyCompile,10,92517,0x1c78303dfcb6,123,statSync node:fs:1518:18,0x3fe299d170d0,~
code-source-info,0x1c78303dfcb6,76,38623,39027,C7O38623C16O38685C21O38692C26O38730C33O38732C40O38756C45O38764C52O38769C55O38780C60O38780C66O38841C76O38764C82O38880C88O38895C96O38908C102O38936C103O38953C104O38960C109O38960C113O38991C118O38998C122O39025,,
code-creation,LazyCompile,10,92558,0x1c78303dfe66,37, node:internal/fs/utils:679:42,0x3fe299d20938,~
code-source-info,0x1c78303dfe66,77,18436,18571,C14O18491C19O18491C24O18525C29O18525C34O18557C36O18569,,
code-creation,LazyCompile,10,92634,0x1c78303dffe6,64,hasNoEntryError node:fs:1455:25,0x3fe299d16fa0,~
code-source-info,0x1c78303dffe6,76,37060,37251,C0O37078C6O37105C11O37121C16O37105C21O37133C27O37147C36O37151C39O37164C40O37180C46O37204C51O37210C58O37215C61O37228C62O37236C63O37249,,
code-creation,LazyCompile,10,92732,0x1c78303e012e,576,getStatsFromBinding node:internal/fs/utils:529:29,0x3fe299d20708,~
code-source-info,0x1c78303e012e,77,13953,15003,C13O13977C18O13981C24O14012C31O14050C34O14047C43O14069C46O14066C55O14088C58O14085C67O14113C70O14110C79O14132C82O14129C91O14151C94O14148C103O14176C106O14173C115O14195C118O14192C127O14214C130O14211C139O14239C142O14236C154O14286C157O14282C167O14306C170O14302C174O14256C189O14354C192O14350C202O14374C205O14370C210O14324C225O14422C228O14418C239O14442C242O14438C247O14392C263O14490C266O14486C277O14510C280O14506C285O14460C294O14019C299O14527C300O14534C307O14564C310O14561C319O14583C322O14580C331O14602C334O14599C343O14625C346O14622C355O14644C358O14641C367O14663C370O14660C379O14686C382O14683C391O14705C394O14702C403O14724C406O14721C415O14747C418O14744C430O14786C433O14782C443O14806C446O14802C450O14762C465O14846C468O14842C478O14866C481O14862C486O14822C501O14906C504O14902C515O14926C518O14922C523O14882C539O14966C542O14962C553O14986C556O14982C561O14942C570O14541C575O15001,,
code-creation,LazyCompile,10,92785,0x1c78303e056e,16,isBigUint64Array node:internal/util/types:53:26,0x73467c97190,~
code-source-info,0x1c78303e056e,15,1371,1460,C0O1383C5O1390C12O1437C15O1458,,
code-creation,LazyCompile,10,92836,0x1c78303e066e,19,msFromTimeSpec node:internal/fs/utils:445:24,0x3fe299d20430,~
code-source-info,0x1c78303e066e,77,10986,11045,C0O11002C2O11015C4O11013C10O11034C12O11032C15O11025C18O11043,,
tick,0xf825ef,92873,0,0x0,3,0x11e9ce0,0x1c78303e02f0,0x1c78303dfd2c,0x1c78303dfa18,0x1c78303dec4c,0x1c78303de6d4,0x1c78303dc1a0,0x1c78303dba82,0x1c78303db645,0x1c78303db3ed,0x1c78303d8ea7,0x1c78303d81c5,0x158e77f
code-creation,LazyCompile,10,92900,0x1c78303e08be,116,Stats node:internal/fs/utils:494:15,0x3fe299d20628,~
code-source-info,0x1c78303e08be,77,12729,13257,C0O12866C41O12866C46O12994C48O13007C52O13020C54O13033C58O13046C60O13059C64O13072C66O13089C70O13106C73O13119C77O13117C81O13142C84O13155C88O13153C92O13178C95O13191C99O13189C103O13214C106O13231C110O13229C115O13256,,
code-creation,LazyCompile,10,92942,0x1c78303e0aa6,62,StatsBase node:internal/fs/utils:399:19,0x3fe299d20000,~
code-source-info,0x1c78303e0aa6,77,9893,10182,C0O9979C2O9988C6O9997C8O10007C12O10017C14O10028C18O10039C20O10048C24O10057C26O10066C30O10075C32O10085C36O10095C38O10108C42O10121C44O10130C48O10139C50O10149C54O10159C56O10171C61O10181,,
code-creation,LazyCompile,10,93018,0x1c78303e0cae,29,dateFromMs node:internal/fs/utils:459:20,0x3fe299d204d0,~
code-source-info,0x1c78303e0cae,77,11498,11543,C0O11507C7O11523C10O11523C17O11534C23O11514C28O11541,,
code-creation,LazyCompile,10,93056,0x1c78303e0dc6,16,StatsBase.isDirectory node:internal/fs/utils:413:43,0x3fe299d20050,~
code-source-info,0x1c78303e0dc6,77,10226,10275,C0O10245C7O10264C10O10245C15O10273,,
code-creation,LazyCompile,10,93092,0x1c78303e0eee,54,Stats._checkModeProperty node:internal/fs/utils:516:46,0x3fe299d20678,~
code-source-info,0x1c78303e0eee,77,13606,13828,C0O13621C8O13652C10O13648C17O13676C19O13672C26O13704C28O13700C33O13721C34O13734C35O13798C42O13805C44O13803C50O13813C53O13826,,
code-creation,LazyCompile,10,93122,0x1c78303e1036,16,StatsBase.isFile node:internal/fs/utils:417:38,0x3fe299d200e0,~
code-source-info,0x1c78303e1036,77,10315,10364,C0O10334C7O10353C10O10334C15O10362,,
code-creation,LazyCompile,10,93331,0x1c78303e12ae,37,get search node:internal/url:877:13,0xaad66755dc8,~
code-source-info,0x1c78303e12ae,33,24270,24396,C0O24297C4O24302C6O24301C10O24287C15O24316C19O24344C24O24358C26O24368C27O24373C32O24384C36O24392,,
code-creation,LazyCompile,10,93399,0x1c78303e1446,179,set search node:internal/url:884:13,0xaad66755e38,~
code-source-info,0x1c78303e1446,33,24410,24917,C0O24437C4O24442C6O24441C10O24456C15O24465C21O24490C23O24501C28O24517C29O24527C33O24541C42O24555C44O24554C49O24551C55O24595C56O24605C62O24609C67O24618C77O24627C84O24666C86O24676C90O24688C99O24701C104O24698C108O24728C112O24750C123O24764C132O24797C140O24797C152O24750C157O24868C166O24890C168O24889C172O24868C178O24916,,
code-creation,LazyCompile,10,93453,0x1c78303e164e,41,toUSVString node:internal/url:118:21,0xaad667537a8,~
code-source-info,0x1c78303e164e,33,2647,2939,C0O2669C4O2820C11O2840C14O2820C20O2869C22O2885C24O2896C25O2899C30O2930C35O2906C40O2937,,
code-creation,LazyCompile,10,93520,0x1c78303e17a6,37,get hash node:internal/url:907:11,0xaad66755f18,~
code-source-info,0x1c78303e17a6,33,25002,25140,C0O25032C4O25037C6O25036C10O25019C15O25051C19O25085C24O25099C26O25109C27O25114C32O25125C36O25136,,
code-creation,LazyCompile,10,93571,0x1c78303e192e,144,set hash node:internal/url:914:11,0xaad66755f80,~
code-source-info,0x1c78303e192e,33,25152,25585,C0O25177C4O25182C6O25181C10O25230C15O25252C17O25271C18O25284C22O25298C31O25312C33O25311C38O25308C42O25342C43O25349C44O25360C45O25368C51O25372C56O25381C66O25388C73O25423C75O25436C79O25446C88O25459C93O25456C97O25487C108O25499C117O25531C125O25531C137O25487C143O25584,,
code-creation,LazyCompile,10,93611,0x1c78303e1aee,18,toString node:internal/url:714:11,0xaad66755638,~
code-source-info,0x1c78303e1aee,33,20487,20525,C0O20496C4O20508C6O20507C12O20516C17O20521,,
code-creation,LazyCompile,10,93725,0x1c78303e1dce,384,getFormat node:internal/modules/esm/loader:104:18,0x27ba8ebe4748,~
code-source-info,0x1c78303e1dce,101,3926,5219,C10O3926C18O3975C23O3993C27O4002C36O3975C49O3964C75O4025C81O4076C97O4082C102O4076C103O4189C108O4223C110O4268C120O4268C126O4371C136O4432C143O4482C163O4377C168O4371C169O4506C175O4546C194O4552C199O4546C200O4659C202O4670C207O4693C219O4707C220O4728C227O4741C229O4737C237O4779C244O4779C253O4817C272O4823C277O4817C278O4941C285O4954C287O4950C294O4979C300O4979C309O5029C315O5029C322O5083C341O5089C346O5083C347O5201C359O5215,,
code-creation,LazyCompile,10,93878,0x1c78303e23ce,312,defaultGetFormat node:internal/modules/esm/get_format:39:26,0x27ba8ebed470,~
code-source-info,0x1c78303e23ce,105,1157,2443,C0O1200C8O1204C15O1251C19O1280C20O1302C27O1302C33O1329C40O1338C45O1377C55O1458C60O1377C72O1368C79O1508C86O1597C101O1664C116O1710C123O1730C130O1739C136O1748C137O1769C144O1778C149O1809C154O1824C159O1809C164O1843C166O1855C168O1863C173O1882C178O1913C183O1891C190O1919C204O1976C211O2003C215O2020C219O2041C226O2077C231O2099C234O2107C245O2107C251O2232C258O2265C264O2295C271O2337C274O2337C284O2301C289O2295C290O2376C297O2393C306O2410C307O2417C311O2441,,
tick,0x110cb94,93926,0,0x0,3,0x11e9ce0,0x1c78303e1df2,0x1c78303db672,0x158e77f
code-creation,LazyCompile,10,94011,0x1c78303e29de,211,extname node:path:1385:10,0xaad66763b90,~
code-source-info,0x1c78303e29de,35,41977,43660,C0O41990C8O41990C13O42039C16O42063C18O42080C21O42107C23O42253C25O42278C29O42285C33O42292C34O42292C39O42324C44O42324C50O42366C52O42379C54O42375C59O42543C63O42574C65O42588C69O42603C71O42628C73O42652C75O42660C80O42775C82O42805C84O42813C88O42832C90O42845C92O42841C97O42940C99O42953C104O42971C111O42998C113O43014C118O43031C123O43061C125O43074C130O43234C133O42300C138O42260C141O43271C143O43284C150O43306C156O43401C163O43498C170O43533C173O43525C180O43572C183O43558C188O43586C190O43596C191O43607C205O43614C210O43656,,
code-creation,LazyCompile,10,94071,0x1c78303e2c1e,13,getPackageType node:internal/modules/esm/resolve:618:24,0x27ba8ebea108,~
code-source-info,0x1c78303e2c1e,104,21597,21687,C0O21629C3O21629C8O21680C12O21685,,
code-creation,LazyCompile,10,94139,0x1c78303e2e86,173,getPackageScopeConfig node:internal/modules/esm/resolve:176:31,0x27ba8ebe9bb8,~
code-source-info,0x1c78303e2e86,104,5554,6624,C0O5590C13O5590C19O5687C24O5701C32O5705C39O5782C41O5815C46O5832C49O5832C54O5815C60O5939C66O5947C68O5968C69O6001C72O6021C85O6038C91O6243C96O6275C100O6252C105O6285C107O5629C110O6322C115O6322C120O6377C127O6394C132O6440C137O6461C142O6503C147O6527C154O6545C159O6562C164O6562C170O6601C172O6622,,
code-creation,LazyCompile,10,94303,0x1c78303e32a6,331,getPackageConfig node:internal/modules/esm/resolve:124:26,0x27ba8ebe9b68,~
code-source-info,0x1c78303e32a6,104,4209,5522,C0O4254C5O4271C10O4271C16O4284C18O4318C20O4334C21O4356C26O4374C31O4374C37O4384C42O4395C44O4449C51O4468C56O4507C61O4530C66O4576C71O4602C78O4624C83O4641C88O4641C94O4671C96O4692C97O4704C102O4729C107O4743C115O4741C125O4786C137O4843C144O4854C163O4881C168O4895C174O4881C178O4879C185O4927C192O4792C197O4786C198O4955C203O4964C208O4970C213O4976C218O5008C223O5035C233O5088C235O5111C241O5141C243O5161C249O5191C251O5264C253O5273C260O5294C265O5310C268O5350C275O5367C281O5395C287O5405C293O5415C299O5425C305O5438C312O5454C317O5471C322O5471C328O5499C330O5520,,
code-creation,LazyCompile,10,94521,0x1c78303e39b6,34,get node:internal/modules/esm/module_map:16:6,0x27ba8ebe5c98,~
code-source-info,0x1c78303e39b6,102,499,569,C0O511C10O511C15O543C17O556C28O556C33O565,,
code-creation,LazyCompile,10,94637,0x1c78303e3c46,150,ModuleJob node:internal/modules/esm/module_job:55:14,0x27ba8ebe6ad0,~
code-source-info,0x1c78303e3c46,103,1296,2977,C0O1296C13O1352C18O1364C22O1378C27O1390C31O1404C36O1420C40O1439C44O1451C48O1586C55O1607C58O1636C67O1645C76O1650C89O1607C94O1605C98O1754C103O2661C106O2675C109O2673C113O2782C123O2809C132O2817C135O2782C140O2943C144O2961C149O2976,,
code-creation,LazyCompile,10,94788,0x1c78303e46fe,301,moduleStrategy node:internal/modules/esm/translators:137:56,0x27ba8ebfd308,~
code-source-info,0x1c78303e46fe,110,3897,4449,C10O3897C18O3935C23O3951C30O3978C39O3935C52O3924C75O3913C80O3999C91O3999C96O4073C101O4095C108O4105C114O4130C123O4073C136O4062C159O4051C164O4158C167O4167C172O4188C177O4188C182O4224C192O4260C197O4224C201O4285C220O4285C226O4333C231O4344C236O4356C241O4360C248O4374C254O4400C258O4356C264O4433C276O4447,,
code-creation,LazyCompile,10,94892,0x1c78303e5716,349,defaultGetSource node:internal/modules/esm/get_source:25:32,0x27ba8ebedf58,~
code-source-info,0x1c78303e5716,106,662,1307,C10O662C31O670C70O722C77O722C83O742C85O763C92O772C97O791C102O806C114O800C144O849C151O858C156O891C163O911C166O936C171O891C177O951C179O971C186O977C191O971C192O1024C199O1035C206O1055C211O1071C218O1076C221O1076C228O1102C237O1071C246O1146C258O1152C263O1146C264O1204C271O1214C280O1232C285O1239C290O1248C295O1248C301O1287C308O1296C324O1305,,
tick,0x7efc3364c6df,94995,0,0x0,2,0x11e9ce0,0x1c78303e577c,0x1c78303e4725,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,95073,0x1c78303e5c26,196,readFile node:internal/fs/promises:733:24,0x27ba8ebf0020,~
code-source-info,0x1c78303e5c26,107,20699,21034,C10O20699C18O20719C23O20740C28O20729C35O20788C44O20804C46O20824C48O20813C53O20840C56O20847C71O20877C72O20881C75O20902C80O20881C84O20925C98O20931C111O20925C137O20958C145O20993C151O21025C156O20965C171O21032,,
code-creation,LazyCompile,10,95150,0x1c78303e77ae,29,checkAborted node:internal/fs/promises:273:22,0x27ba8ebef3a0,~
code-source-info,0x1c78303e77ae,107,6018,6081,C0O6031C7O6041C16O6056C21O6062C26O6056C28O6080,,
code-creation,LazyCompile,10,95203,0x1c78303e7956,182,open node:internal/fs/promises:396:20,0x27ba8ebef530,~
code-source-info,0x1c78303e7956,107,9900,10206,C10O9900C18O9924C23O9931C29O9977C34O9977C39O10001C55O10008C62O10046C69O10079C72O10087C79O10102C82O10113C87O10113C95O10189C104O10087C117O10073C142O10053C157O10204,,
code-creation,LazyCompile,10,95362,0x1c78303e7eee,515,stringToFlags node:internal/fs/utils:554:23,0x3fe299d20758,~
code-source-info,0x1c78303e7eee,77,15027,16261,C14O15055C20O15092C25O15092C30O15124C32O15137C33O15145C38O15170C42O15186C43O15194C202O15226C206O15242C207O15292C214O15310C216O15308C219O15317C220O15334C224O15348C225O15400C232O15416C234O15414C237O15423C238O15440C245O15457C247O15455C253O15467C255O15465C258O15476C259O15526C266O15543C268O15541C274O15553C276O15551C282O15564C284O15562C287O15571C288O15589C295O15606C297O15604C303O15616C305O15614C308O15623C309O15673C316O15690C318O15688C324O15700C326O15698C332O15709C334O15707C337O15716C338O15733C345O15751C347O15749C353O15761C355O15759C358O15770C359O15820C366O15838C368O15836C374O15848C376O15846C382O15859C384O15857C387O15866C388O15916C395O15934C397O15932C403O15944C405O15942C411O15955C413O15953C416O15962C417O15980C424O15998C426O15996C432O16008C434O16006C437O16015C438O16065C445O16083C447O16081C453O16093C455O16091C461O16102C463O16100C466O16109C467O16159C474O16177C476O16175C482O16187C484O16185C490O16196C492O16194C495O16203C496O16211C509O16217C514O16211,,
code-creation,LazyCompile,10,95439,0x1c78303e82ee,97,parseFileMode node:internal/validators:58:23,0x73467c99c08,~
code-source-info,0x1c78303e82ee,17,1468,1764,C0O1491C11O1508C17O1545C24O1570C27O1550C34O1596C41O1641C52O1602C57O1596C58O1662C66O1670C73O1703C89O1703C94O1749C96O1762,,
code-creation,LazyCompile,10,95508,0x1c78303e84ce,206, node:internal/validators:83:3,0x73467c99cc8,~
code-source-info,0x1c78303e84ce,17,2236,2817,C36O2377C39O2382C45O2406C51O2447C67O2453C72O2447C73O2516C78O2521C84O2555C100O2561C105O2555C106O2624C116O2663C129O2676C142O2630C147O2624C148O2701C150O2711C157O2726C162O2741C172O2780C185O2793C198O2747C203O2741C205O2816,,
code-creation,LazyCompile,10,95540,0x1c78303e86a6,9,isInt32 node:internal/validators:35:17,0x73467c99810,~
code-source-info,0x1c78303e86a6,17,715,758,C0O727C2O751C5O740C8O756,,
code-creation,LazyCompile,10,95917,0x1c78303e898e,263,link node:internal/modules/esm/module_job:66:18,0x1c78303e3ac8,~
code-source-info,0x1c78303e898e,103,1754,2604,C4O1754C26O1774C36O1799C48O1788C73O1786C77O1820C89O1832C98O1850C100O1839C104O1820C108O2166C110O2166C112O2193C117O2198C122O2205C132O2205C138O2447C140O2483C151O2504C156O2500C162O2489C174O2483C199O2541C210O2563C218O2559C224O2548C238O2598,,
code-creation,LazyCompile,10,95970,0x1c78303e8c26,19,primordials.PromisePrototypeCatch node:internal/per_context/primordials:397:37,0x30ec9db8a250,~
code-source-info,0x1c78303e8c26,6,11446,11533,C0O11477C13O11477C18O11533,,
code-creation,LazyCompile,10,96025,0x1c78303e8da6,110,set node:internal/modules/esm/module_map:20:6,0x27ba8ebe5ce8,~
code-source-info,0x1c78303e8da6,102,575,848,C0O592C10O592C15O624C19O643C21O632C26O653C37O708C55O714C60O708C61O775C73O792C84O775C88O817C90O830C104O830C109O844,,
tick,0x7efc336c02cf,96068,0,0x0,3,0x11e9ce0,0x1c78303db740,0x158e77f
code-creation,LazyCompile,10,96092,0x1c78303e8f2e,104,logger node:internal/util/debuglog:96:18,0xaad66775258,~
code-source-info,0x1c78303e8f2e,40,2899,3124,C0O2899C3O2931C30O2955C35O2962C38O2970C39O2985C45O3002C49O2992C53O3007C54O3022C60O3039C66O3048C70O3029C75O3053C76O3069C80O3076C87O3089C92O3085C98O3076C103O3114,,
code-creation,LazyCompile,10,96152,0x1c78303e90be,155,debug node:internal/util/debuglog:76:15,0xaad667751b8,~
code-source-info,0x1c78303e90be,40,2357,2781,C0O2357C3O2376C6O2376C9O2484C16O2505C22O2492C30O2490C36O2524C42O2560C47O2563C50O2560C54O2588C81O2612C86O2619C89O2627C90O2642C96O2659C100O2649C104O2664C105O2679C111O2696C117O2705C121O2686C126O2710C127O2726C131O2733C138O2746C143O2742C149O2733C154O2771,,
code-creation,LazyCompile,10,96190,0x1c78303e929e,41,init node:internal/util/debuglog:72:16,0xaad66775168,~
code-source-info,0x1c78303e929e,40,2259,2342,C0O2268C10O2274C14O2272C16O2311C26O2321C33O2319C40O2341,,
code-creation,LazyCompile,10,96217,0x1c78303e939e,2,testEnabled node:internal/util/debuglog:32:19,0x27ba8ebcf628,~
code-source-info,0x1c78303e939e,40,973,984,C0O979C1O984,,
code-creation,LazyCompile,10,96287,0x1c78303e9546,116,debuglogImpl node:internal/util/debuglog:49:22,0xaad66774fa0,~
code-source-info,0x1c78303e9546,40,1451,1995,C0O1451C9O1470C18O1484C23O1511C34O1544C39O1552C43O1544C45O1563C55O1563C59O1595C71O1606C75O1611C83O1934C97O1952C99O1950C103O1970C112O1987C115O1993,,
code-creation,LazyCompile,10,96325,0x1c78303e970e,10, node:internal/modules/esm/module_map:7:63,0x27ba8ebe5bf8,~
code-source-info,0x1c78303e970e,102,175,200,C0O187C2O193C9O199,,
code-creation,LazyCompile,10,96346,0x1c78303e97ce,2,noop node:internal/util/debuglog:47:14,0xaad66774f50,~
code-source-info,0x1c78303e97ce,40,1419,1427,C1O1426,,
code-creation,LazyCompile,10,96446,0x1c78303e9bfe,433,run node:internal/modules/esm/module_job:178:12,0x27ba8ebe6bc0,~
code-source-info,0x1c78303e9bfe,103,6423,7596,C10O6423C18O6443C23O6443C35O6432C58O6478C61O6508C66O6542C71O6549C76O6549C90O6531C128O6607C133O6612C143O6619C152O6653C158O6691C163O6653C169O6711C182O6721C186O6756C196O6788C204O6760C211O6822C224O6832C228O6918C235O6949C240O6956C248O6918C259O6987C267O7037C272O7044C277O6987C292O7064C297O7118C302O7146C307O7153C312O7119C318O7185C325O7190C330O7216C344O7363C358O7306C364O7386C370O7465C376O7226C380O7542C382O7542C383O7561C388O7583C408O7592,,
code-creation,LazyCompile,10,96502,0x1c78303e9f3e,24,instantiate node:internal/modules/esm/module_job:98:14,0x27ba8ebe6b20,~
code-source-info,0x1c78303e9f3e,103,2992,3126,C0O3010C6O3071C11O3071C15O3064C19O3109C23O3122,,
code-creation,LazyCompile,10,96675,0x1c78303ea626,920,_instantiate node:internal/modules/esm/module_job:105:21,0x27ba8ebe6b70,~
code-source-info,0x1c78303ea626,103,3148,6410,C4O3148C29O3177C37O3177C42O3177C44O3229C48O3229C50O3532C54O3538C67O3532C97O3587C105O3615C111O3637C118O3652C126O3688C136O3688C142O3716C147O3763C153O3770C159O3788C165O3746C172O3825C178O3832C184O3832C203O3879C215O3879C219O4219C227O4224C236O4260C244O4286C254O4260C261O4396C273O4419C283O4396C289O4463C298O4507C313O4463C319O4602C331O4636C343O4602C350O4574C358O4593C366O4765C372O4772C378O4772C393O4754C421O4846C427O4853C433O4853C447O4835C475O4886C477O4897C482O4949C484O4959C488O5279C496O5300C502O5279C508O5368C514O5405C518O5428C531O5405C537O5479C547O5508C566O5567C577O5548C584O5629C591O5706C602O5822C617O5858C625O5909C644O5784C647O5489C651O5979C663O6002C673O5979C679O6026C691O6058C699O6038C703O6079C711O6089C719O6089C724O6087C728O6149C730O6149C731O6197C763O6180C794O6180C797O6355C801O6384C803O6382C807O6169C891O6409,,
code-creation,LazyCompile,10,96753,0x1c78303eac7e,179,addJobsToDependencyGraph node:internal/modules/esm/module_job:107:38,0x1c78303ea388,~
code-source-info,0x1c78303eac7e,103,3229,3526,C10O3229C18O3258C23O3274C28O3274C35O3300C46O3307C47O3322C52O3334C57O3334C62O3395C74O3379C100O3409C111O3431C118O3458C123O3492C126O3458C134O3427C140O3416C154O3520,,
code-creation,LazyCompile,10,96865,0x1c78303eae76,112,FileHandle node:internal/fs/promises:104:14,0x27ba8ebf0070,~
code-source-info,0x1c78303eae76,107,2570,2736,C3O2589C11O2589C40O2602C45O2607C50O2616C54O2634C59O2639C67O2646C69O2670C77O2644C81O2684C86O2689C91O2696C95O2705C100O2710C104O2725C111O2735,,
code-creation,LazyCompile,10,96918,0x1c78303eb006,63,MixedEventEmitter node:internal/event_target:698:16,0x27ba8ebfa650,~
code-source-info,0x1c78303eb006,38,19981,20111,C0O19981C8O19999C15O20006C21O20041C25O20050C29O20041C41O20063C48O20085C54O20063C62O20110,,
code-creation,LazyCompile,10,96955,0x1c78303eb12e,3, node:internal/per_context/primordials:276:21,0x30ec9db89920,~
code-source-info,0x1c78303eb12e,6,7920,7949,C0O7931C2O7943,,
code-creation,LazyCompile,10,96999,0x1c78303eb226,21,EventEmitter node:events:87:22,0x30ec9dbb1350,~
code-source-info,0x1c78303eb226,13,2482,2530,C0O2493C3O2506C8O2511C13O2511C20O2529,,
code-creation,LazyCompile,10,97052,0x1c78303eb37e,149,EventEmitter.init node:events:197:29,0x30ec9dbb2048,~
code-source-info,0x1c78303eb37e,13,5582,6171,C0O5603C6O5639C13O5651C16O5651C21O5677C25O5647C30O5693C32O5708C37O5708C41O5706C45O5732C46O5750C50O5788C60O5781C64O5820C71O5828C80O5855C85O5876C93O5855C98O5929C100O5934C105O5946C108O5959C113O5946C117O5944C123O6115C125O6120C131O6145C138O6155C140O6154C143O6130C148O6170,,
tick,0x11259c0,97174,0,0x0,2,0x11e9ce0,0x1c78303e5cb7,0x158e77f
code-creation,LazyCompile,10,97263,0x1c78303eb6fe,601,readFileHandle node:internal/fs/promises:313:30,0x27ba8ebef440,~
code-source-info,0x1c78303eb6fe,107,7255,9027,C10O7255C18O7296C25O7303C33O7316C37O7316C41O7360C47O7374C53O7391C64O7402C68O7374C82O7360C110O7420C114O7420C118O7449C120O7457C122O7472C129O7488C131O7486C138O7500C140O7496C145O7515C147O7532C153O7562C155O7579C157O7590C159O7588C164O7608C172O7614C177O7608C178O7666C180O7691C182O7711C183O7716C187O7741C190O7766C199O7787C203O7794C209O7794C215O7828C219O7828C223O7858C225O7874C227O7890C229O7902C233O7922C239O7938C247O7954C251O7938C257O7991C259O8009C266O8067C269O8094C272O8120C280O8142C287O8155C291O8129C297O8208C303O8223C309O8239C321O8313C334O8223C348O8209C379O8338C381O8351C388O8366C389O8388C396O8407C400O8421C405O8445C410O8479C412O8493C414O8489C418O8549C424O8580C433O8580C440O8607C446O8607C451O8666C455O7819C458O8686C460O8696C461O8705C466O8716C468O8735C477O8770C486O8770C495O8823C503O8830C509O8845C516O8851C520O8858C526O8858C533O8971C539O8989C545O9006C551O8989C568O9018C572O9025,,
code-creation,LazyCompile,10,97324,0x1c78303ebb56,8,get fd node:internal/fs/promises:117:9,0x27ba8ebf0128,~
code-source-info,0x1c78303ebb56,107,2807,2837,C0O2816C2O2828C4O2827C7O2833,,
code-creation,LazyCompile,10,97404,0x1c78303ebce6,33,primordials.SafePromisePrototypeFinally node:internal/per_context/primordials:409:43,0x30ec9db8a308,~
code-source-info,0x1c78303ebce6,6,12020,12293,C0O12020C13O12153C27O12153C32O12293,,
code-creation,LazyCompile,10,97440,0x1c78303ebe86,46, node:internal/per_context/primordials:412:15,0x1c78303ebc28,~
code-source-info,0x1c78303ebe86,6,12165,12289,C0O12279C14O12179C20O12253C28O12260C34O12278C39O12279C45O12289,,
code-creation,LazyCompile,10,97473,0x1c78303ebfde,27,SafePromise node:internal/per_context/primordials:393:16,0x30ec9db8a200,~
code-source-info,0x1c78303ebfde,6,11370,11401,C3O11383C7O11389C11O11383C26O11400,,
code-creation,LazyCompile,10,97508,0x1c78303ec0e6,22, node:internal/per_context/primordials:413:21,0x1c78303ebdc0,~
code-source-info,0x1c78303ec0e6,6,12195,12244,C0O12205C16O12205C21O12244,,
code-creation,LazyCompile,10,97572,0x1c78303ec1ee,19,allocUnsafeSlow node:buffer:381:50,0x73467ca4b58,~
code-source-info,0x1c78303ec1ee,18,11171,11236,C0O11182C5O11182C9O11202C14O11209C18O11234,,
code-creation,LazyCompile,10,97607,0x1c78303ec30e,54, node:buffer:347:36,0x73467ca4a30,~
code-source-info,0x1c78303ec30e,18,10149,10304,C0O10163C8O10163C13O10195C14O10206C21O10222C23O10219C28O10241C33O10273C46O10247C51O10241C53O10303,,
code-creation,LazyCompile,10,97637,0x1c78303ec446,30,validateNumber node:internal/validators:122:24,0x73467c99dd8,~
code-source-info,0x1c78303ec446,17,3532,3641,C0O3550C6O3585C22O3591C27O3585C29O3640,,
code-creation,LazyCompile,10,97673,0x1c78303ec576,71,createUnsafeBuffer node:internal/buffer:1059:28,0x73467cb1a68,~
code-source-info,0x1c78303ec576,19,30321,30430,C0O30332C8O30344C15O30361C22O30368C39O30408C48O30420C70O30429,,
code-creation,LazyCompile,10,97861,0x1c78303ec876,248,close node:internal/fs/promises:177:11,0x27ba8ebf20f0,~
code-source-info,0x1c78303ec876,107,3933,4723,C0O3945C7O3954C9O3953C15O3959C20O3975C27O3982C30O3999C31O4011C38O4020C40O4019C45O4044C52O4056C54O4055C57O4071C58O4083C65O4088C73O4094C77O4102C84O4111C86O4110C91O4118C96O4133C103O4138C108O4143C112O4155C119O4160C126O4177C136O4219C138O4218C142O4228C147O4228C157O4177C162O4175C168O4316C175O4321C182O4338C189O4379C199O4375C210O4338C215O4336C219O4668C222O4673C230O4673C235O4692C242O4704C244O4703C247O4719,,
code-creation,LazyCompile,10,97977,0x1c78303ecbee,17, node:internal/fs/promises:191:9,0x1c78303ec650,~
code-source-info,0x1c78303ecbee,107,4245,4287,C0O4253C7O4258C11O4273C16O4286,,
code-creation,LazyCompile,10,98048,0x1c78303ecd5e,83,assertBufferSource node:internal/modules/esm/translators:83:28,0x27ba8ebfd010,~
code-source-info,0x1c78303ecd5e,110,2388,2781,C0O2422C10O2473C11O2480C12O2535C15O2535C19O2495C24O2514C29O2554C35O2581C41O2611C42O2618C43O2625C50O2677C77O2631C82O2625,,
code-creation,LazyCompile,10,98083,0x1c78303ecec6,31,lazyTypes node:internal/modules/esm/translators:24:19,0x27ba8ebfcf70,~
code-source-info,0x1c78303ecec6,110,438,532,C0O445C6O466C10O480C11O483C17O499C24O497C30O530,,
code-creation,LazyCompile,10,98147,0x1c78303ed1fe,40,defaultTransformSource node:internal/modules/esm/transform_source:3:32,0x27ba8ebfc288,~
code-source-info,0x1c78303ed1fe,109,46,157,C7O46C13O57C18O62C26O137C33O146C39O155,,
code-creation,LazyCompile,10,98191,0x1c78303ed376,72,stringify node:internal/modules/esm/translators:99:19,0x27ba8ebfd060,~
code-source-info,0x1c78303ed376,110,2801,3001,C0O2812C6O2842C8O2854C9O2857C20O2857C25O2911C33O2944C36O2940C45O2960C50O2919C56O2971C61O2986C66O2986C71O2999,,
tick,0x116ec2b,98248,0,0x0,2,0x11febe0,0x1c78303ed39a,0x1c78303e47a5,0x158e77f
code-creation,LazyCompile,10,98331,0x1c78303ed546,205,TextDecoder node:internal/encoding:382:16,0x73467cb8430,~
script-source,21,node:internal/encoding,'use strict';\n\n// An implementation of the WHATWG Encoding Standard\n// https://encoding.spec.whatwg.org\n\nconst {\n  ObjectCreate\x2C\n  ObjectDefineProperties\x2C\n  ObjectGetOwnPropertyDescriptors\x2C\n  SafeMap\x2C\n  StringPrototypeSlice\x2C\n  Symbol\x2C\n  SymbolToStringTag\x2C\n  Uint32Array\x2C\n  Uint8Array\x2C\n} = primordials;\n\nconst {\n  ERR_ENCODING_INVALID_ENCODED_DATA\x2C\n  ERR_ENCODING_NOT_SUPPORTED\x2C\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_INVALID_THIS\x2C\n  ERR_NO_ICU\n} = require('internal/errors').codes;\nconst kHandle = Symbol('handle');\nconst kFlags = Symbol('flags');\nconst kEncoding = Symbol('encoding');\nconst kDecoder = Symbol('decoder');\nconst kEncoder = Symbol('encoder');\n\nconst {\n  getConstructorOf\x2C\n  customInspectSymbol: inspect\n} = require('internal/util');\n\nconst {\n  isAnyArrayBuffer\x2C\n  isArrayBufferView\x2C\n  isUint8Array\n} = require('internal/util/types');\n\nconst { validateString } = require('internal/validators');\n\nconst {\n  encodeInto\x2C\n  encodeUtf8String\n} = internalBinding('buffer');\n\nlet Buffer;\nfunction lazyBuffer() {\n  if (Buffer === undefined)\n    Buffer = require('buffer').Buffer;\n  return Buffer;\n}\n\nfunction validateEncoder(obj) {\n  if (obj == null || obj[kEncoder] !== true)\n    throw new ERR_INVALID_THIS('TextEncoder');\n}\n\nfunction validateDecoder(obj) {\n  if (obj == null || obj[kDecoder] !== true)\n    throw new ERR_INVALID_THIS('TextDecoder');\n}\n\nfunction validateArgument(prop\x2C expected\x2C propName\x2C expectedName) {\n  // eslint-disable-next-line valid-typeof\n  if (typeof prop !== expected)\n    throw new ERR_INVALID_ARG_TYPE(propName\x2C expectedName\x2C prop);\n}\n\nconst CONVERTER_FLAGS_FLUSH = 0x1;\nconst CONVERTER_FLAGS_FATAL = 0x2;\nconst CONVERTER_FLAGS_IGNORE_BOM = 0x4;\n\nconst empty = new Uint8Array(0);\n\nconst encodings = new SafeMap([\n  ['unicode-1-1-utf-8'\x2C 'utf-8']\x2C\n  ['utf8'\x2C 'utf-8']\x2C\n  ['utf-8'\x2C 'utf-8']\x2C\n  ['866'\x2C 'ibm866']\x2C\n  ['cp866'\x2C 'ibm866']\x2C\n  ['csibm866'\x2C 'ibm866']\x2C\n  ['ibm866'\x2C 'ibm866']\x2C\n  ['csisolatin2'\x2C 'iso-8859-2']\x2C\n  ['iso-8859-2'\x2C 'iso-8859-2']\x2C\n  ['iso-ir-101'\x2C 'iso-8859-2']\x2C\n  ['iso8859-2'\x2C 'iso-8859-2']\x2C\n  ['iso88592'\x2C 'iso-8859-2']\x2C\n  ['iso_8859-2'\x2C 'iso-8859-2']\x2C\n  ['iso_8859-2:1987'\x2C 'iso-8859-2']\x2C\n  ['l2'\x2C 'iso-8859-2']\x2C\n  ['latin2'\x2C 'iso-8859-2']\x2C\n  ['csisolatin3'\x2C 'iso-8859-3']\x2C\n  ['iso-8859-3'\x2C 'iso-8859-3']\x2C\n  ['iso-ir-109'\x2C 'iso-8859-3']\x2C\n  ['iso8859-3'\x2C 'iso-8859-3']\x2C\n  ['iso88593'\x2C 'iso-8859-3']\x2C\n  ['iso_8859-3'\x2C 'iso-8859-3']\x2C\n  ['iso_8859-3:1988'\x2C 'iso-8859-3']\x2C\n  ['l3'\x2C 'iso-8859-3']\x2C\n  ['latin3'\x2C 'iso-8859-3']\x2C\n  ['csisolatin4'\x2C 'iso-8859-4']\x2C\n  ['iso-8859-4'\x2C 'iso-8859-4']\x2C\n  ['iso-ir-110'\x2C 'iso-8859-4']\x2C\n  ['iso8859-4'\x2C 'iso-8859-4']\x2C\n  ['iso88594'\x2C 'iso-8859-4']\x2C\n  ['iso_8859-4'\x2C 'iso-8859-4']\x2C\n  ['iso_8859-4:1988'\x2C 'iso-8859-4']\x2C\n  ['l4'\x2C 'iso-8859-4']\x2C\n  ['latin4'\x2C 'iso-8859-4']\x2C\n  ['csisolatincyrillic'\x2C 'iso-8859-5']\x2C\n  ['cyrillic'\x2C 'iso-8859-5']\x2C\n  ['iso-8859-5'\x2C 'iso-8859-5']\x2C\n  ['iso-ir-144'\x2C 'iso-8859-5']\x2C\n  ['iso8859-5'\x2C 'iso-8859-5']\x2C\n  ['iso88595'\x2C 'iso-8859-5']\x2C\n  ['iso_8859-5'\x2C 'iso-8859-5']\x2C\n  ['iso_8859-5:1988'\x2C 'iso-8859-5']\x2C\n  ['arabic'\x2C 'iso-8859-6']\x2C\n  ['asmo-708'\x2C 'iso-8859-6']\x2C\n  ['csiso88596e'\x2C 'iso-8859-6']\x2C\n  ['csiso88596i'\x2C 'iso-8859-6']\x2C\n  ['csisolatinarabic'\x2C 'iso-8859-6']\x2C\n  ['ecma-114'\x2C 'iso-8859-6']\x2C\n  ['iso-8859-6'\x2C 'iso-8859-6']\x2C\n  ['iso-8859-6-e'\x2C 'iso-8859-6']\x2C\n  ['iso-8859-6-i'\x2C 'iso-8859-6']\x2C\n  ['iso-ir-127'\x2C 'iso-8859-6']\x2C\n  ['iso8859-6'\x2C 'iso-8859-6']\x2C\n  ['iso88596'\x2C 'iso-8859-6']\x2C\n  ['iso_8859-6'\x2C 'iso-8859-6']\x2C\n  ['iso_8859-6:1987'\x2C 'iso-8859-6']\x2C\n  ['csisolatingreek'\x2C 'iso-8859-7']\x2C\n  ['ecma-118'\x2C 'iso-8859-7']\x2C\n  ['elot_928'\x2C 'iso-8859-7']\x2C\n  ['greek'\x2C 'iso-8859-7']\x2C\n  ['greek8'\x2C 'iso-8859-7']\x2C\n  ['iso-8859-7'\x2C 'iso-8859-7']\x2C\n  ['iso-ir-126'\x2C 'iso-8859-7']\x2C\n  ['iso8859-7'\x2C 'iso-8859-7']\x2C\n  ['iso88597'\x2C 'iso-8859-7']\x2C\n  ['iso_8859-7'\x2C 'iso-8859-7']\x2C\n  ['iso_8859-7:1987'\x2C 'iso-8859-7']\x2C\n  ['sun_eu_greek'\x2C 'iso-8859-7']\x2C\n  ['csiso88598e'\x2C 'iso-8859-8']\x2C\n  ['csisolatinhebrew'\x2C 'iso-8859-8']\x2C\n  ['hebrew'\x2C 'iso-8859-8']\x2C\n  ['iso-8859-8'\x2C 'iso-8859-8']\x2C\n  ['iso-8859-8-e'\x2C 'iso-8859-8']\x2C\n  ['iso-ir-138'\x2C 'iso-8859-8']\x2C\n  ['iso8859-8'\x2C 'iso-8859-8']\x2C\n  ['iso88598'\x2C 'iso-8859-8']\x2C\n  ['iso_8859-8'\x2C 'iso-8859-8']\x2C\n  ['iso_8859-8:1988'\x2C 'iso-8859-8']\x2C\n  ['visual'\x2C 'iso-8859-8']\x2C\n  ['csiso88598i'\x2C 'iso-8859-8-i']\x2C\n  ['iso-8859-8-i'\x2C 'iso-8859-8-i']\x2C\n  ['logical'\x2C 'iso-8859-8-i']\x2C\n  ['csisolatin6'\x2C 'iso-8859-10']\x2C\n  ['iso-8859-10'\x2C 'iso-8859-10']\x2C\n  ['iso-ir-157'\x2C 'iso-8859-10']\x2C\n  ['iso8859-10'\x2C 'iso-8859-10']\x2C\n  ['iso885910'\x2C 'iso-8859-10']\x2C\n  ['l6'\x2C 'iso-8859-10']\x2C\n  ['latin6'\x2C 'iso-8859-10']\x2C\n  ['iso-8859-13'\x2C 'iso-8859-13']\x2C\n  ['iso8859-13'\x2C 'iso-8859-13']\x2C\n  ['iso885913'\x2C 'iso-8859-13']\x2C\n  ['iso-8859-14'\x2C 'iso-8859-14']\x2C\n  ['iso8859-14'\x2C 'iso-8859-14']\x2C\n  ['iso885914'\x2C 'iso-8859-14']\x2C\n  ['csisolatin9'\x2C 'iso-8859-15']\x2C\n  ['iso-8859-15'\x2C 'iso-8859-15']\x2C\n  ['iso8859-15'\x2C 'iso-8859-15']\x2C\n  ['iso885915'\x2C 'iso-8859-15']\x2C\n  ['iso_8859-15'\x2C 'iso-8859-15']\x2C\n  ['l9'\x2C 'iso-8859-15']\x2C\n  ['cskoi8r'\x2C 'koi8-r']\x2C\n  ['koi'\x2C 'koi8-r']\x2C\n  ['koi8'\x2C 'koi8-r']\x2C\n  ['koi8-r'\x2C 'koi8-r']\x2C\n  ['koi8_r'\x2C 'koi8-r']\x2C\n  ['koi8-ru'\x2C 'koi8-u']\x2C\n  ['koi8-u'\x2C 'koi8-u']\x2C\n  ['csmacintosh'\x2C 'macintosh']\x2C\n  ['mac'\x2C 'macintosh']\x2C\n  ['macintosh'\x2C 'macintosh']\x2C\n  ['x-mac-roman'\x2C 'macintosh']\x2C\n  ['dos-874'\x2C 'windows-874']\x2C\n  ['iso-8859-11'\x2C 'windows-874']\x2C\n  ['iso8859-11'\x2C 'windows-874']\x2C\n  ['iso885911'\x2C 'windows-874']\x2C\n  ['tis-620'\x2C 'windows-874']\x2C\n  ['windows-874'\x2C 'windows-874']\x2C\n  ['cp1250'\x2C 'windows-1250']\x2C\n  ['windows-1250'\x2C 'windows-1250']\x2C\n  ['x-cp1250'\x2C 'windows-1250']\x2C\n  ['cp1251'\x2C 'windows-1251']\x2C\n  ['windows-1251'\x2C 'windows-1251']\x2C\n  ['x-cp1251'\x2C 'windows-1251']\x2C\n  ['ansi_x3.4-1968'\x2C 'windows-1252']\x2C\n  ['ascii'\x2C 'windows-1252']\x2C\n  ['cp1252'\x2C 'windows-1252']\x2C\n  ['cp819'\x2C 'windows-1252']\x2C\n  ['csisolatin1'\x2C 'windows-1252']\x2C\n  ['ibm819'\x2C 'windows-1252']\x2C\n  ['iso-8859-1'\x2C 'windows-1252']\x2C\n  ['iso-ir-100'\x2C 'windows-1252']\x2C\n  ['iso8859-1'\x2C 'windows-1252']\x2C\n  ['iso88591'\x2C 'windows-1252']\x2C\n  ['iso_8859-1'\x2C 'windows-1252']\x2C\n  ['iso_8859-1:1987'\x2C 'windows-1252']\x2C\n  ['l1'\x2C 'windows-1252']\x2C\n  ['latin1'\x2C 'windows-1252']\x2C\n  ['us-ascii'\x2C 'windows-1252']\x2C\n  ['windows-1252'\x2C 'windows-1252']\x2C\n  ['x-cp1252'\x2C 'windows-1252']\x2C\n  ['cp1253'\x2C 'windows-1253']\x2C\n  ['windows-1253'\x2C 'windows-1253']\x2C\n  ['x-cp1253'\x2C 'windows-1253']\x2C\n  ['cp1254'\x2C 'windows-1254']\x2C\n  ['csisolatin5'\x2C 'windows-1254']\x2C\n  ['iso-8859-9'\x2C 'windows-1254']\x2C\n  ['iso-ir-148'\x2C 'windows-1254']\x2C\n  ['iso8859-9'\x2C 'windows-1254']\x2C\n  ['iso88599'\x2C 'windows-1254']\x2C\n  ['iso_8859-9'\x2C 'windows-1254']\x2C\n  ['iso_8859-9:1989'\x2C 'windows-1254']\x2C\n  ['l5'\x2C 'windows-1254']\x2C\n  ['latin5'\x2C 'windows-1254']\x2C\n  ['windows-1254'\x2C 'windows-1254']\x2C\n  ['x-cp1254'\x2C 'windows-1254']\x2C\n  ['cp1255'\x2C 'windows-1255']\x2C\n  ['windows-1255'\x2C 'windows-1255']\x2C\n  ['x-cp1255'\x2C 'windows-1255']\x2C\n  ['cp1256'\x2C 'windows-1256']\x2C\n  ['windows-1256'\x2C 'windows-1256']\x2C\n  ['x-cp1256'\x2C 'windows-1256']\x2C\n  ['cp1257'\x2C 'windows-1257']\x2C\n  ['windows-1257'\x2C 'windows-1257']\x2C\n  ['x-cp1257'\x2C 'windows-1257']\x2C\n  ['cp1258'\x2C 'windows-1258']\x2C\n  ['windows-1258'\x2C 'windows-1258']\x2C\n  ['x-cp1258'\x2C 'windows-1258']\x2C\n  ['x-mac-cyrillic'\x2C 'x-mac-cyrillic']\x2C\n  ['x-mac-ukrainian'\x2C 'x-mac-cyrillic']\x2C\n  ['chinese'\x2C 'gbk']\x2C\n  ['csgb2312'\x2C 'gbk']\x2C\n  ['csiso58gb231280'\x2C 'gbk']\x2C\n  ['gb2312'\x2C 'gbk']\x2C\n  ['gb_2312'\x2C 'gbk']\x2C\n  ['gb_2312-80'\x2C 'gbk']\x2C\n  ['gbk'\x2C 'gbk']\x2C\n  ['iso-ir-58'\x2C 'gbk']\x2C\n  ['x-gbk'\x2C 'gbk']\x2C\n  ['gb18030'\x2C 'gb18030']\x2C\n  ['big5'\x2C 'big5']\x2C\n  ['big5-hkscs'\x2C 'big5']\x2C\n  ['cn-big5'\x2C 'big5']\x2C\n  ['csbig5'\x2C 'big5']\x2C\n  ['x-x-big5'\x2C 'big5']\x2C\n  ['cseucpkdfmtjapanese'\x2C 'euc-jp']\x2C\n  ['euc-jp'\x2C 'euc-jp']\x2C\n  ['x-euc-jp'\x2C 'euc-jp']\x2C\n  ['csiso2022jp'\x2C 'iso-2022-jp']\x2C\n  ['iso-2022-jp'\x2C 'iso-2022-jp']\x2C\n  ['csshiftjis'\x2C 'shift_jis']\x2C\n  ['ms932'\x2C 'shift_jis']\x2C\n  ['ms_kanji'\x2C 'shift_jis']\x2C\n  ['shift-jis'\x2C 'shift_jis']\x2C\n  ['shift_jis'\x2C 'shift_jis']\x2C\n  ['sjis'\x2C 'shift_jis']\x2C\n  ['windows-31j'\x2C 'shift_jis']\x2C\n  ['x-sjis'\x2C 'shift_jis']\x2C\n  ['cseuckr'\x2C 'euc-kr']\x2C\n  ['csksc56011987'\x2C 'euc-kr']\x2C\n  ['euc-kr'\x2C 'euc-kr']\x2C\n  ['iso-ir-149'\x2C 'euc-kr']\x2C\n  ['korean'\x2C 'euc-kr']\x2C\n  ['ks_c_5601-1987'\x2C 'euc-kr']\x2C\n  ['ks_c_5601-1989'\x2C 'euc-kr']\x2C\n  ['ksc5601'\x2C 'euc-kr']\x2C\n  ['ksc_5601'\x2C 'euc-kr']\x2C\n  ['windows-949'\x2C 'euc-kr']\x2C\n  ['utf-16be'\x2C 'utf-16be']\x2C\n  ['utf-16le'\x2C 'utf-16le']\x2C\n  ['utf-16'\x2C 'utf-16le']\x2C\n]);\n\n// Unfortunately\x2C String.prototype.trim also removes non-ascii whitespace\x2C\n// so we have to do this manually\nfunction trimAsciiWhitespace(label) {\n  let s = 0;\n  let e = label.length;\n  while (s < e && (\n    label[s] === '\\u0009' ||\n    label[s] === '\\u000a' ||\n    label[s] === '\\u000c' ||\n    label[s] === '\\u000d' ||\n    label[s] === '\\u0020')) {\n    s++;\n  }\n  while (e > s && (\n    label[e - 1] === '\\u0009' ||\n    label[e - 1] === '\\u000a' ||\n    label[e - 1] === '\\u000c' ||\n    label[e - 1] === '\\u000d' ||\n    label[e - 1] === '\\u0020')) {\n    e--;\n  }\n  return StringPrototypeSlice(label\x2C s\x2C e);\n}\n\nfunction getEncodingFromLabel(label) {\n  const enc = encodings.get(label);\n  if (enc !== undefined) return enc;\n  return encodings.get(trimAsciiWhitespace(label.toLowerCase()));\n}\n\nconst encodeIntoResults = new Uint32Array(2);\n\nclass TextEncoder {\n  constructor() {\n    this[kEncoder] = true;\n  }\n\n  get encoding() {\n    validateEncoder(this);\n    return 'utf-8';\n  }\n\n  encode(input = '') {\n    validateEncoder(this);\n    return encodeUtf8String(`${input}`);\n  }\n\n  encodeInto(src\x2C dest) {\n    validateEncoder(this);\n    validateString(src\x2C 'src');\n    if (!dest || !isUint8Array(dest))\n      throw new ERR_INVALID_ARG_TYPE('dest'\x2C 'Uint8Array'\x2C dest);\n    encodeInto(src\x2C dest\x2C encodeIntoResults);\n    return { read: encodeIntoResults[0]\x2C written: encodeIntoResults[1] };\n  }\n\n  [inspect](depth\x2C opts) {\n    validateEncoder(this);\n    if (typeof depth === 'number' && depth < 0)\n      return this;\n    const ctor = getConstructorOf(this);\n    const obj = ObjectCreate({\n      constructor: ctor === null ? TextEncoder : ctor\n    });\n    obj.encoding = this.encoding;\n    // Lazy to avoid circular dependency\n    return require('internal/util/inspect').inspect(obj\x2C opts);\n  }\n}\n\nObjectDefineProperties(\n  TextEncoder.prototype\x2C {\n    'encode': { enumerable: true }\x2C\n    'encodeInto': { enumerable: true }\x2C\n    'encoding': { enumerable: true }\x2C\n    [SymbolToStringTag]: { configurable: true\x2C value: 'TextEncoder' }\x2C\n  });\n\nconst TextDecoder =\n  internalBinding('config').hasIntl ?\n    makeTextDecoderICU() :\n    makeTextDecoderJS();\n\nfunction makeTextDecoderICU() {\n  const {\n    decode: _decode\x2C\n    getConverter\x2C\n  } = internalBinding('icu');\n\n  class TextDecoder {\n    constructor(encoding = 'utf-8'\x2C options = {}) {\n      encoding = `${encoding}`;\n      validateArgument(options\x2C 'object'\x2C 'options'\x2C 'Object');\n\n      const enc = getEncodingFromLabel(encoding);\n      if (enc === undefined)\n        throw new ERR_ENCODING_NOT_SUPPORTED(encoding);\n\n      let flags = 0;\n      if (options !== null) {\n        flags |= options.fatal ? CONVERTER_FLAGS_FATAL : 0;\n        flags |= options.ignoreBOM ? CONVERTER_FLAGS_IGNORE_BOM : 0;\n      }\n\n      const handle = getConverter(enc\x2C flags);\n      if (handle === undefined)\n        throw new ERR_ENCODING_NOT_SUPPORTED(encoding);\n\n      this[kDecoder] = true;\n      this[kHandle] = handle;\n      this[kFlags] = flags;\n      this[kEncoding] = enc;\n    }\n\n\n    decode(input = empty\x2C options = {}) {\n      validateDecoder(this);\n      if (isAnyArrayBuffer(input)) {\n        input = lazyBuffer().from(input);\n      } else if (!isArrayBufferView(input)) {\n        throw new ERR_INVALID_ARG_TYPE('input'\x2C\n                                       ['ArrayBuffer'\x2C 'ArrayBufferView']\x2C\n                                       input);\n      }\n      validateArgument(options\x2C 'object'\x2C 'options'\x2C 'Object');\n\n      let flags = 0;\n      if (options !== null)\n        flags |= options.stream ? 0 : CONVERTER_FLAGS_FLUSH;\n\n      const ret = _decode(this[kHandle]\x2C input\x2C flags);\n      if (typeof ret === 'number') {\n        throw new ERR_ENCODING_INVALID_ENCODED_DATA(this.encoding\x2C ret);\n      }\n      return ret.toString('ucs2');\n    }\n  }\n\n  return TextDecoder;\n}\n\nfunction makeTextDecoderJS() {\n  let StringDecoder;\n  function lazyStringDecoder() {\n    if (StringDecoder === undefined)\n      ({ StringDecoder } = require('string_decoder'));\n    return StringDecoder;\n  }\n\n  const kBOMSeen = Symbol('BOM seen');\n\n  function hasConverter(encoding) {\n    return encoding === 'utf-8' || encoding === 'utf-16le';\n  }\n\n  class TextDecoder {\n    constructor(encoding = 'utf-8'\x2C options = {}) {\n      encoding = `${encoding}`;\n      validateArgument(options\x2C 'object'\x2C 'options'\x2C 'Object');\n\n      const enc = getEncodingFromLabel(encoding);\n      if (enc === undefined || !hasConverter(enc))\n        throw new ERR_ENCODING_NOT_SUPPORTED(encoding);\n\n      let flags = 0;\n      if (options !== null) {\n        if (options.fatal) {\n          throw new ERR_NO_ICU('"fatal" option');\n        }\n        flags |= options.ignoreBOM ? CONVERTER_FLAGS_IGNORE_BOM : 0;\n      }\n\n      this[kDecoder] = true;\n      // StringDecoder will normalize WHATWG encoding to Node.js encoding.\n      this[kHandle] = new (lazyStringDecoder())(enc);\n      this[kFlags] = flags;\n      this[kEncoding] = enc;\n      this[kBOMSeen] = false;\n    }\n\n    decode(input = empty\x2C options = {}) {\n      validateDecoder(this);\n      if (isAnyArrayBuffer(input)) {\n        input = lazyBuffer().from(input);\n      } else if (isArrayBufferView(input)) {\n        input = lazyBuffer().from(input.buffer\x2C input.byteOffset\x2C\n                                  input.byteLength);\n      } else {\n        throw new ERR_INVALID_ARG_TYPE('input'\x2C\n                                       ['ArrayBuffer'\x2C 'ArrayBufferView']\x2C\n                                       input);\n      }\n      validateArgument(options\x2C 'object'\x2C 'options'\x2C 'Object');\n\n      if (this[kFlags] & CONVERTER_FLAGS_FLUSH) {\n        this[kBOMSeen] = false;\n      }\n\n      if (options !== null && options.stream) {\n        this[kFlags] &= ~CONVERTER_FLAGS_FLUSH;\n      } else {\n        this[kFlags] |= CONVERTER_FLAGS_FLUSH;\n      }\n\n      let result = this[kFlags] & CONVERTER_FLAGS_FLUSH ?\n        this[kHandle].end(input) :\n        this[kHandle].write(input);\n\n      if (result.length > 0 &&\n          !this[kBOMSeen] &&\n          !(this[kFlags] & CONVERTER_FLAGS_IGNORE_BOM)) {\n        // If the very first result in the stream is a BOM\x2C and we are not\n        // explicitly told to ignore it\x2C then we discard it.\n        if (result[0] === '\\ufeff') {\n          result = StringPrototypeSlice(result\x2C 1);\n        }\n        this[kBOMSeen] = true;\n      }\n\n      return result;\n    }\n  }\n\n  return TextDecoder;\n}\n\n// Mix in some shared properties.\nObjectDefineProperties(\n  TextDecoder.prototype\x2C\n  ObjectGetOwnPropertyDescriptors({\n    get encoding() {\n      validateDecoder(this);\n      return this[kEncoding];\n    }\x2C\n\n    get fatal() {\n      validateDecoder(this);\n      return (this[kFlags] & CONVERTER_FLAGS_FATAL) === CONVERTER_FLAGS_FATAL;\n    }\x2C\n\n    get ignoreBOM() {\n      validateDecoder(this);\n      return (this[kFlags] & CONVERTER_FLAGS_IGNORE_BOM) ===\n              CONVERTER_FLAGS_IGNORE_BOM;\n    }\x2C\n\n    [inspect](depth\x2C opts) {\n      validateDecoder(this);\n      if (typeof depth === 'number' && depth < 0)\n        return this;\n      const constructor = getConstructorOf(this) || TextDecoder;\n      const obj = ObjectCreate({ constructor });\n      obj.encoding = this.encoding;\n      obj.fatal = this.fatal;\n      obj.ignoreBOM = this.ignoreBOM;\n      if (opts.showHidden) {\n        obj[kFlags] = this[kFlags];\n        obj[kHandle] = this[kHandle];\n      }\n      // Lazy to avoid circular dependency\n      const { inspect } = require('internal/util/inspect');\n      return `${constructor.name} ${inspect(obj)}`;\n    }\n  })\n);\n\nObjectDefineProperties(TextDecoder.prototype\x2C {\n  decode: { enumerable: true }\x2C\n  [inspect]: { enumerable: false }\x2C\n  [SymbolToStringTag]: {\n    configurable: true\x2C\n    value: 'TextDecoder'\n  }\n});\n\nmodule.exports = {\n  getEncodingFromLabel\x2C\n  TextDecoder\x2C\n  TextEncoder\n};\n
code-source-info,0x1c78303ed546,21,10490,11206,C15O10490C21O10533C25O10565C42O10565C47O10642C52O10642C57O10680C59O10711C68O10717C73O10711C74O10778C76O10787C80O10836C93O10844C102O10896C115O10908C124O10970C129O10970C135O11002C137O11036C146O11042C151O11036C152O11091C156O11096C160O11106C164O11120C168O11125C173O11134C177O11150C181O11155C186O11163C190O11178C194O11183C199O11194C204O11205,,
tick,0x7efc33635473,99547,0,0x0,3,0x11febe0,0x1c78303ed39a,0x1c78303e47a5,0x158e77f
code-creation,LazyCompile,10,99577,0x1c78303ee966,35,validateArgument node:internal/encoding:66:26,0x73467cb8120,~
code-source-info,0x1c78303ee966,21,1376,1561,C0O1464C6O1480C11O1498C27O1504C32O1498C34O1560,,
code-creation,LazyCompile,10,99615,0x1c78303eeaa6,55,getEncodingFromLabel node:internal/encoding:316:30,0x73467cb81c0,~
code-source-info,0x1c78303eeaa6,21,8836,8986,C0O8860C5O8870C10O8870C16O8884C18O8907C20O8918C21O8921C26O8938C34O8968C39O8968C44O8942C49O8938C54O8984,,
code-creation,LazyCompile,10,99723,0x1c78303eed7e,226,decode node:internal/encoding:407:11,0x73467cb8550,~
code-source-info,0x1c78303eed7e,21,11219,11973,C8O11228C25O11257C30O11257C34O11286C41O11290C47O11325C52O11333C56O11345C61O11346C69O11372C76O11377C82O11413C102O11419C107O11413C108O11589C125O11589C130O11666C132O11675C136O11722C152O11735C158O11777C167O11790C169O11789C179O11777C185O11821C189O11860C196O11909C206O11866C211O11860C212O11950C220O11950C225O11967,,
code-creation,LazyCompile,10,99770,0x1c78303eefa6,37,validateDecoder node:internal/encoding:61:25,0x73467cb80d0,~
code-source-info,0x1c78303eefa6,21,1248,1349,C0O1258C7O1281C9O1280C14O1291C19O1305C29O1311C34O1305C36O1348,,
code-creation,LazyCompile,10,99868,0x1c78303ef12e,162,toString node:buffer:781:46,0x73467ca6970,~
code-source-info,0x1c78303ef12e,18,23244,23806,C0O23244C2O23285C8O23292C13O23317C20O23335C25O23317C31O23343C32O23368C37O23379C38O23389C43O23399C48O23417C50O23427C55O23439C57O23449C58O23461C65O23476C71O23505C76O23516C83O23538C90O23551C92O23559C97O23573C99O23583C100O23587C104O23631C109O23631C115O23653C116O23669C119O23669C124O23697C126O23724C133O23730C138O23724C139O23780C156O23780C161O23804,,
code-creation,LazyCompile,10,99977,0x1c78303ef3e6,503,getEncodingOps node:buffer:677:24,0x73467ca67c8,~
code-source-info,0x1c78303ef3e6,18,19911,21712,C0O19926C10O19961C66O19989C68O20002C73O20014C78O20033C82O20038C83O20045C85O20058C90O20070C95O20089C99O20094C100O20101C105O20112C111O20156C113O20169C118O20181C123O20200C127O20205C128O20212C130O20225C135O20237C140O20256C144O20261C145O20268C147O20293C149O20306C154O20319C159O20338C163O20343C164O20350C166O20363C171O20376C176O20395C180O20401C181O20408C183O20421C188O20434C193O20453C197O20458C198O20465C203O20476C209O20520C211O20533C216O20546C221O20565C225O20570C226O20577C228O20590C233O20603C238O20622C242O20628C243O20635C245O20648C250O20661C255O20680C259O20685C260O20692C262O20717C264O20730C271O20757C274O20757C281O20794C286O20817C291O20836C295O20844C296O20851C298O20876C300O20889C307O20917C310O20917C317O20954C322O20978C327O20997C331O21005C332O21012C334O21037C336O21050C343O21075C348O21097C353O21116C357O21123C358O21130C360O21143C365O21157C370O21176C374O21183C375O21190C380O21201C386O21245C388O21258C395O21283C400O21305C405O21324C409O21331C410O21338C412O21351C417O21365C422O21384C426O21391C427O21398C429O21423C431O21436C438O21449C441O21449C448O21486C453O21505C458O21524C462O21528C463O21535C465O21560C467O21573C474O21602C477O21602C484O21639C489O21664C494O21683C498O21693C499O21700C502O21711,,
code-creation,LazyCompile,10,100049,0x1c78303ef7d6,12,slice node:buffer:601:12,0x73467ca5478,~
code-source-info,0x1c78303ef7d6,18,16951,16997,C0O16976C5O16976C11O16997,,
code-creation,LazyCompile,10,100161,0x1c78303efa8e,229,maybeCacheSourceMap node:internal/source_map/source_map_cache:74:29,0x27ba8ebd4c90,~
code-source-info,0x1c78303efa8e,95,2239,3273,C0O2308C3O2308C7O2334C10O2348C15O2352C23O2372C25O2392C26O2399C30O2412C35O2423C44O2421C54O2564C64O2574C69O2564C73O2586C74O2593C75O2614C80O2640C85O2614C91O2717C93O2747C96O2775C101O2782C106O2747C112O2817C117O2837C122O2844C127O2866C131O2897C136O2915C141O2919C148O2948C155O2979C165O3009C171O3023C175O2915C183O3149C188O3167C193O3171C201O3204C211O3234C217O3248C221O3167C228O3272,,
code-creation,LazyCompile,10,100207,0x1c78303f04fe,31,getSourceMapsEnabled node:internal/source_map/source_map_cache:43:30,0x27ba8ebd4bf0,~
code-source-info,0x1c78303f04fe,95,1418,1563,C0O1425C6O1468C11O1489C17O1489C22O1468C26O1536C30O1561,,
code-creation,LazyCompile,10,100267,0x1c78303f0686,100,setSourceMapsEnabled node:internal/source_map/source_map_cache:50:30,0x27ba8ebd4c40,~
code-source-info,0x1c78303f0686,95,1594,2209,C0O1604C8O1604C13O1709C19O1709C24O1648C29O1674C34O1738C38O1767C42O1822C48O1822C53O1796C58O1878C64O1936C70O2095C76O2095C81O2068C86O2127C90O2183C92O2201C99O2208,,
code-creation,LazyCompile,10,100303,0x1c78303f080e,30,validateBoolean node:internal/validators:138:25,0x73467c99e98,~
code-source-info,0x1c78303f080e,17,4042,4153,C0O4060C6O4096C22O4102C27O4096C29O4152,,
code-creation,LazyCompile,10,100347,0x1c78303f0916,10, node:internal/modules/esm/translators:48:63,0x27ba8ebfd2b8,~
code-source-info,0x1c78303f0916,110,1223,1248,C0O1235C2O1241C9O1247,,
tick,0x10b2de7,100418,1,0xabf940,5,0xd44a10,0x1c78303e47da,0x158e77f
code-creation,Script,10,100743,0x1c78303f1a66,324, file:///var/www/quadcode.com/build/index.js:1:1,0x1c78303f0d88,~
script-source,114,file:///var/www/quadcode.com/build/index.js,import { handler } from './handler.js';\nimport { env } from './env.js';\nimport http from 'http';\nimport * as qs from 'querystring';\n\nfunction parse$1 (str\x2C loose) {\n\x09if (str instanceof RegExp) return { keys:false\x2C pattern:str };\n\x09var c\x2C o\x2C tmp\x2C ext\x2C keys=[]\x2C pattern=''\x2C arr = str.split('/');\n\x09arr[0] || arr.shift();\n\n\x09while (tmp = arr.shift()) {\n\x09\x09c = tmp[0];\n\x09\x09if (c === '*') {\n\x09\x09\x09keys.push('wild');\n\x09\x09\x09pattern += '/(.*)';\n\x09\x09} else if (c === ':') {\n\x09\x09\x09o = tmp.indexOf('?'\x2C 1);\n\x09\x09\x09ext = tmp.indexOf('.'\x2C 1);\n\x09\x09\x09keys.push( tmp.substring(1\x2C !!~o ? o : !!~ext ? ext : tmp.length) );\n\x09\x09\x09pattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\x09\x09\x09if (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\x09\x09} else {\n\x09\x09\x09pattern += '/' + tmp;\n\x09\x09}\n\x09}\n\n\x09return {\n\x09\x09keys: keys\x2C\n\x09\x09pattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$')\x2C 'i')\n\x09};\n}\n\nclass Trouter {\n\x09constructor() {\n\x09\x09this.routes = [];\n\n\x09\x09this.all = this.add.bind(this\x2C '');\n\x09\x09this.get = this.add.bind(this\x2C 'GET');\n\x09\x09this.head = this.add.bind(this\x2C 'HEAD');\n\x09\x09this.patch = this.add.bind(this\x2C 'PATCH');\n\x09\x09this.options = this.add.bind(this\x2C 'OPTIONS');\n\x09\x09this.connect = this.add.bind(this\x2C 'CONNECT');\n\x09\x09this.delete = this.add.bind(this\x2C 'DELETE');\n\x09\x09this.trace = this.add.bind(this\x2C 'TRACE');\n\x09\x09this.post = this.add.bind(this\x2C 'POST');\n\x09\x09this.put = this.add.bind(this\x2C 'PUT');\n\x09}\n\n\x09use(route\x2C ...fns) {\n\x09\x09let handlers = [].concat.apply([]\x2C fns);\n\x09\x09let { keys\x2C pattern } = parse$1(route\x2C true);\n\x09\x09this.routes.push({ keys\x2C pattern\x2C method:''\x2C handlers });\n\x09\x09return this;\n\x09}\n\n\x09add(method\x2C route\x2C ...fns) {\n\x09\x09let { keys\x2C pattern } = parse$1(route);\n\x09\x09let handlers = [].concat.apply([]\x2C fns);\n\x09\x09this.routes.push({ keys\x2C pattern\x2C method\x2C handlers });\n\x09\x09return this;\n\x09}\n\n\x09find(method\x2C url) {\n\x09\x09let isHEAD=(method === 'HEAD');\n\x09\x09let i=0\x2C j=0\x2C k\x2C tmp\x2C arr=this.routes;\n\x09\x09let matches=[]\x2C params={}\x2C handlers=[];\n\x09\x09for (; i < arr.length; i++) {\n\x09\x09\x09tmp = arr[i];\n\x09\x09\x09if (tmp.method.length === 0 || tmp.method === method || isHEAD && tmp.method === 'GET') {\n\x09\x09\x09\x09if (tmp.keys === false) {\n\x09\x09\x09\x09\x09matches = tmp.pattern.exec(url);\n\x09\x09\x09\x09\x09if (matches === null) continue;\n\x09\x09\x09\x09\x09if (matches.groups !== void 0) for (k in matches.groups) params[k]=matches.groups[k];\n\x09\x09\x09\x09\x09tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]);\n\x09\x09\x09\x09} else if (tmp.keys.length > 0) {\n\x09\x09\x09\x09\x09matches = tmp.pattern.exec(url);\n\x09\x09\x09\x09\x09if (matches === null) continue;\n\x09\x09\x09\x09\x09for (j=0; j < tmp.keys.length;) params[tmp.keys[j]]=matches[++j];\n\x09\x09\x09\x09\x09tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]);\n\x09\x09\x09\x09} else if (tmp.pattern.test(url)) {\n\x09\x09\x09\x09\x09tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]);\n\x09\x09\x09\x09}\n\x09\x09\x09} // else not a match\n\x09\x09}\n\n\x09\x09return { params\x2C handlers };\n\x09}\n}\n\n/**\n * @typedef ParsedURL\n * @type {import('.').ParsedURL}\n */\n\n/**\n * @typedef Request\n * @property {string} url\n * @property {ParsedURL} _parsedUrl\n */\n\n/**\n * @param {Request} req\n * @returns {ParsedURL|void}\n */\nfunction parse(req) {\n\x09let raw = req.url;\n\x09if (raw == null) return;\n\n\x09let prev = req._parsedUrl;\n\x09if (prev && prev.raw === raw) return prev;\n\n\x09let pathname=raw\x2C search=''\x2C query;\n\n\x09if (raw.length > 1) {\n\x09\x09let idx = raw.indexOf('?'\x2C 1);\n\n\x09\x09if (idx !== -1) {\n\x09\x09\x09search = raw.substring(idx);\n\x09\x09\x09pathname = raw.substring(0\x2C idx);\n\x09\x09\x09if (search.length > 1) {\n\x09\x09\x09\x09query = qs.parse(search.substring(1));\n\x09\x09\x09}\n\x09\x09}\n\x09}\n\n\x09return req._parsedUrl = { pathname\x2C search\x2C query\x2C raw };\n}\n\nfunction onError(err\x2C req\x2C res) {\n\x09let code = typeof err.status === 'number' && err.status;\n\x09code = res.statusCode = (code && code >= 100 ? code : 500);\n\x09if (typeof err === 'string' || Buffer.isBuffer(err)) res.end(err);\n\x09else res.end(err.message || http.STATUS_CODES[code]);\n}\n\nconst mount = fn => fn instanceof Polka ? fn.attach : fn;\n\nclass Polka extends Trouter {\n\x09constructor(opts={}) {\n\x09\x09super();\n\x09\x09this.parse = parse;\n\x09\x09this.server = opts.server;\n\x09\x09this.handler = this.handler.bind(this);\n\x09\x09this.onError = opts.onError || onError; // catch-all handler\n\x09\x09this.onNoMatch = opts.onNoMatch || this.onError.bind(null\x2C { status: 404 });\n\x09\x09this.attach = (req\x2C res) => setImmediate(this.handler\x2C req\x2C res);\n\x09}\n\n\x09use(base\x2C ...fns) {\n\x09\x09if (base === '/') {\n\x09\x09\x09super.use(base\x2C fns.map(mount));\n\x09\x09} else if (typeof base === 'function' || base instanceof Polka) {\n\x09\x09\x09super.use('/'\x2C [base\x2C ...fns].map(mount));\n\x09\x09} else {\n\x09\x09\x09super.use(base\x2C\n\x09\x09\x09\x09(req\x2C _\x2C next) => {\n\x09\x09\x09\x09\x09if (typeof base === 'string') {\n\x09\x09\x09\x09\x09\x09let len = base.length;\n\x09\x09\x09\x09\x09\x09base.startsWith('/') || len++;\n\x09\x09\x09\x09\x09\x09req.url = req.url.substring(len) || '/';\n\x09\x09\x09\x09\x09\x09req.path = req.path.substring(len) || '/';\n\x09\x09\x09\x09\x09} else {\n\x09\x09\x09\x09\x09\x09req.url = req.url.replace(base\x2C '') || '/';\n\x09\x09\x09\x09\x09\x09req.path = req.path.replace(base\x2C '') || '/';\n\x09\x09\x09\x09\x09}\n\x09\x09\x09\x09\x09if (req.url.charAt(0) !== '/') {\n\x09\x09\x09\x09\x09\x09req.url = '/' + req.url;\n\x09\x09\x09\x09\x09}\n\x09\x09\x09\x09\x09next();\n\x09\x09\x09\x09}\x2C\n\x09\x09\x09\x09fns.map(mount)\x2C\n\x09\x09\x09\x09(req\x2C _\x2C next) => {\n\x09\x09\x09\x09\x09req.path = req._parsedUrl.pathname;\n\x09\x09\x09\x09\x09req.url = req.path + req._parsedUrl.search;\n\x09\x09\x09\x09\x09next();\n\x09\x09\x09\x09}\n\x09\x09\x09);\n\x09\x09}\n\x09\x09return this; // chainable\n\x09}\n\n\x09listen() {\n\x09\x09(this.server = this.server || http.createServer()).on('request'\x2C this.attach);\n\x09\x09this.server.listen.apply(this.server\x2C arguments);\n\x09\x09return this;\n\x09}\n\n\x09handler(req\x2C res\x2C next) {\n\x09\x09let info = this.parse(req)\x2C path = info.pathname;\n\x09\x09let obj = this.find(req.method\x2C req.path=path);\n\n\x09\x09req.url = path + info.search;\n\x09\x09req.originalUrl = req.originalUrl || req.url;\n\x09\x09req.query = info.query || {};\n\x09\x09req.search = info.search;\n\x09\x09req.params = obj.params;\n\n\x09\x09if (path.length > 1 && path.indexOf('%'\x2C 1) !== -1) {\n\x09\x09\x09for (let k in req.params) {\n\x09\x09\x09\x09try { req.params[k] = decodeURIComponent(req.params[k]); }\n\x09\x09\x09\x09catch (e) { /* malform uri segment */ }\n\x09\x09\x09}\n\x09\x09}\n\n\x09\x09let i=0\x2C arr=obj.handlers.concat(this.onNoMatch)\x2C len=arr.length;\n\x09\x09let loop = async () => res.finished || (i < len) && arr[i++](req\x2C res\x2C next);\n\x09\x09(next = next || (err => err ? this.onError(err\x2C req\x2C res\x2C next) : loop().catch(next)))(); // init\n\x09}\n}\n\nfunction polka (opts) {\n\x09return new Polka(opts);\n}\n\nconst path = env('SOCKET_PATH'\x2C false);\nconst host = env('HOST'\x2C '0.0.0.0');\nconst port = env('PORT'\x2C !path && '3000');\n\nconst server = polka().use(handler);\n\nserver.listen({ path\x2C host\x2C port }\x2C () => {\n\x09console.log(`Listening on ${path ? path : host + ':' + port}`);\n});\n\nexport { host\x2C path\x2C port\x2C server };\n
code-source-info,0x1c78303f1a66,114,0,6378,C10O0C67O0C87O0C128O3819C132O3819C141O3884C186O3864C188O6081C199O6081C204O6081C207O6121C219O6121C224O6121C227O6158C236O6171C245O6158C250O6158C253O6204C257O6211C262O6216C268O6212C273O6204C276O6227C280O6234C290O6243C297O6249C304O6255C316O6234C323O6378,,
code-creation,LazyCompile,10,101440,0x1c78303f2576,137, node:internal/modules/esm/module_job:75:41,0x1c78303e8878,~
code-source-info,0x1c78303f2576,103,2210,2437,C10O2210C18O2260C23O2265C28O2272C38O2272C45O2310C54O2329C57O2310C62O2378C72O2378C98O2415C112O2429,,
code-creation,LazyCompile,10,101528,0x1c78303f26f6,13,onParseError node:internal/url:535:22,0xaad667551a0,~
code-source-info,0x1c78303f26f6,33,15328,15382,C0O15347C7O15353C12O15347,,
tick,0xba66a0,101555,1,0xbaa280,6,0xd44a10,0x1c78303d9420,0x1c78303dc07f,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
code-creation,LazyCompile,10,101757,0x1c78303f29c6,187,NodeError node:internal/errors:342:28,0x30ec9dba4138,~
script-source,11,node:internal/errors,/* eslint node-core/documented-errors: "error" */\n/* eslint node-core/alphabetize-errors: "error" */\n/* eslint node-core/prefer-util-format-errors: "error" */\n\n'use strict';\n\n// The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change\x2C the code should not.\n\nconst {\n  AggregateError\x2C\n  ArrayFrom\x2C\n  ArrayIsArray\x2C\n  ArrayPrototypeFilter\x2C\n  ArrayPrototypeIncludes\x2C\n  ArrayPrototypeIndexOf\x2C\n  ArrayPrototypeJoin\x2C\n  ArrayPrototypeMap\x2C\n  ArrayPrototypePop\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeSlice\x2C\n  ArrayPrototypeSplice\x2C\n  ArrayPrototypeUnshift\x2C\n  Error\x2C\n  ErrorCaptureStackTrace\x2C\n  ErrorPrototypeToString\x2C\n  JSONStringify\x2C\n  MapPrototypeGet\x2C\n  MathAbs\x2C\n  MathMax\x2C\n  Number\x2C\n  NumberIsInteger\x2C\n  ObjectDefineProperty\x2C\n  ObjectDefineProperties\x2C\n  ObjectIsExtensible\x2C\n  ObjectGetOwnPropertyDescriptor\x2C\n  ObjectKeys\x2C\n  ObjectPrototypeHasOwnProperty\x2C\n  RangeError\x2C\n  ReflectApply\x2C\n  RegExpPrototypeTest\x2C\n  SafeArrayIterator\x2C\n  SafeMap\x2C\n  SafeWeakMap\x2C\n  String\x2C\n  StringPrototypeEndsWith\x2C\n  StringPrototypeIncludes\x2C\n  StringPrototypeMatch\x2C\n  StringPrototypeSlice\x2C\n  StringPrototypeSplit\x2C\n  StringPrototypeStartsWith\x2C\n  StringPrototypeToLowerCase\x2C\n  Symbol\x2C\n  SymbolFor\x2C\n  SyntaxError\x2C\n  TypeError\x2C\n  URIError\x2C\n} = primordials;\n\nconst kIsNodeError = Symbol('kIsNodeError');\n\nconst isWindows = process.platform === 'win32';\n\nconst messages = new SafeMap();\nconst codes = {};\n\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/;\n// Sorted by a rough estimate on most frequently used entries.\nconst kTypes = [\n  'string'\x2C\n  'function'\x2C\n  'number'\x2C\n  'object'\x2C\n  // Accept 'Function' and 'Object' as alternative to the lower cased version.\n  'Function'\x2C\n  'Object'\x2C\n  'boolean'\x2C\n  'bigint'\x2C\n  'symbol'\x2C\n];\n\nconst MainContextError = Error;\nconst overrideStackTrace = new SafeWeakMap();\nconst kNoOverride = Symbol('kNoOverride');\nlet userStackTraceLimit;\nconst nodeInternalPrefix = '__node_internal_';\nconst prepareStackTrace = (globalThis\x2C error\x2C trace) => {\n  // API for node internals to override error stack formatting\n  // without interfering with userland code.\n  if (overrideStackTrace.has(error)) {\n    const f = overrideStackTrace.get(error);\n    overrideStackTrace.delete(error);\n    return f(error\x2C trace);\n  }\n\n  const firstFrame = trace[0]?.getFunctionName();\n  if (firstFrame && StringPrototypeStartsWith(firstFrame\x2C nodeInternalPrefix)) {\n    for (let l = trace.length - 1; l >= 0; l--) {\n      const fn = trace[l]?.getFunctionName();\n      if (fn && StringPrototypeStartsWith(fn\x2C nodeInternalPrefix)) {\n        ArrayPrototypeSplice(trace\x2C 0\x2C l + 1);\n        break;\n      }\n    }\n    // `userStackTraceLimit` is the user value for `Error.stackTraceLimit`\x2C\n    // it is updated at every new exception in `captureLargerStackTrace`.\n    if (trace.length > userStackTraceLimit)\n      ArrayPrototypeSplice(trace\x2C userStackTraceLimit);\n  }\n\n  const globalOverride =\n    maybeOverridePrepareStackTrace(globalThis\x2C error\x2C trace);\n  if (globalOverride !== kNoOverride) return globalOverride;\n\n  // Normal error formatting:\n  //\n  // Error: Message\n  //     at function (file)\n  //     at file\n  let errorString;\n  if (kIsNodeError in error) {\n    errorString = `${error.name} [${error.code}]: ${error.message}`;\n  } else {\n    errorString = ErrorPrototypeToString(error);\n  }\n  if (trace.length === 0) {\n    return errorString;\n  }\n  return `${errorString}\\n    at ${ArrayPrototypeJoin(trace\x2C '\\n    at ')}`;\n};\n\nconst maybeOverridePrepareStackTrace = (globalThis\x2C error\x2C trace) => {\n  // Polyfill of V8's Error.prepareStackTrace API.\n  // https://crbug.com/v8/7848\n  // `globalThis` is the global that contains the constructor which\n  // created `error`.\n  if (typeof globalThis.Error?.prepareStackTrace === 'function') {\n    return globalThis.Error.prepareStackTrace(error\x2C trace);\n  }\n  // We still have legacy usage that depends on the main context's `Error`\n  // being used\x2C even when the error is from a different context.\n  // TODO(devsnek): evaluate if this can be eventually deprecated/removed.\n  if (typeof MainContextError.prepareStackTrace === 'function') {\n    return MainContextError.prepareStackTrace(error\x2C trace);\n  }\n\n  return kNoOverride;\n};\n\nconst aggregateTwoErrors = hideStackFrames((innerError\x2C outerError) => {\n  if (innerError && outerError) {\n    if (ArrayIsArray(outerError.errors)) {\n      // If `outerError` is already an `AggregateError`.\n      ArrayPrototypePush(outerError.errors\x2C innerError);\n      return outerError;\n    }\n    // eslint-disable-next-line no-restricted-syntax\n    const err = new AggregateError(new SafeArrayIterator([\n      outerError\x2C\n      innerError\x2C\n    ])\x2C outerError.message);\n    err.code = outerError.code;\n    return err;\n  }\n  return innerError || outerError;\n});\n\n// Lazily loaded\nlet util;\nlet assert;\n\nlet internalUtil = null;\nfunction lazyInternalUtil() {\n  if (!internalUtil) {\n    internalUtil = require('internal/util');\n  }\n  return internalUtil;\n}\n\nlet internalUtilInspect = null;\nfunction lazyInternalUtilInspect() {\n  if (!internalUtilInspect) {\n    internalUtilInspect = require('internal/util/inspect');\n  }\n  return internalUtilInspect;\n}\n\nlet buffer;\nfunction lazyBuffer() {\n  if (buffer === undefined)\n    buffer = require('buffer').Buffer;\n  return buffer;\n}\n\nfunction isErrorStackTraceLimitWritable() {\n  const desc = ObjectGetOwnPropertyDescriptor(Error\x2C 'stackTraceLimit');\n  if (desc === undefined) {\n    return ObjectIsExtensible(Error);\n  }\n\n  return ObjectPrototypeHasOwnProperty(desc\x2C 'writable') ?\n    desc.writable :\n    desc.set !== undefined;\n}\n\n// A specialized Error that includes an additional info property with\n// additional information about the error condition.\n// It has the properties present in a UVException but with a custom error\n// message followed by the uv error code and uv error message.\n// It also has its own error code with the original uv error context put into\n// `err.info`.\n// The context passed into this error must have .code\x2C .syscall and .message\x2C\n// and may have .path and .dest.\nclass SystemError extends Error {\n  constructor(key\x2C context) {\n    const limit = Error.stackTraceLimit;\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n    super();\n    // Reset the limit and setting the name property.\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n    const prefix = getMessage(key\x2C []\x2C this);\n    let message = `${prefix}: ${context.syscall} returned ` +\n                  `${context.code} (${context.message})`;\n\n    if (context.path !== undefined)\n      message += ` ${context.path}`;\n    if (context.dest !== undefined)\n      message += ` => ${context.dest}`;\n\n    captureLargerStackTrace(this);\n\n    this.code = key;\n\n    ObjectDefineProperties(this\x2C {\n      [kIsNodeError]: {\n        value: true\x2C\n        enumerable: false\x2C\n        writable: false\x2C\n        configurable: true\x2C\n      }\x2C\n      name: {\n        value: 'SystemError'\x2C\n        enumerable: false\x2C\n        writable: true\x2C\n        configurable: true\x2C\n      }\x2C\n      message: {\n        value: message\x2C\n        enumerable: false\x2C\n        writable: true\x2C\n        configurable: true\x2C\n      }\x2C\n      info: {\n        value: context\x2C\n        enumerable: true\x2C\n        configurable: true\x2C\n        writable: false\x2C\n      }\x2C\n      errno: {\n        get() {\n          return context.errno;\n        }\x2C\n        set: (value) => {\n          context.errno = value;\n        }\x2C\n        enumerable: true\x2C\n        configurable: true\x2C\n      }\x2C\n      syscall: {\n        get() {\n          return context.syscall;\n        }\x2C\n        set: (value) => {\n          context.syscall = value;\n        }\x2C\n        enumerable: true\x2C\n        configurable: true\x2C\n      }\x2C\n    });\n\n    if (context.path !== undefined) {\n      // TODO(BridgeAR): Investigate why and when the `.toString()` was\n      // introduced. The `path` and `dest` properties in the context seem to\n      // always be of type string. We should probably just remove the\n      // `.toString()` and `Buffer.from()` operations and set the value on the\n      // context as the user did.\n      ObjectDefineProperty(this\x2C 'path'\x2C {\n        get() {\n          return context.path != null ?\n            context.path.toString() : context.path;\n        }\x2C\n        set: (value) => {\n          context.path = value ?\n            lazyBuffer().from(value.toString()) : undefined;\n        }\x2C\n        enumerable: true\x2C\n        configurable: true\n      });\n    }\n\n    if (context.dest !== undefined) {\n      ObjectDefineProperty(this\x2C 'dest'\x2C {\n        get() {\n          return context.dest != null ?\n            context.dest.toString() : context.dest;\n        }\x2C\n        set: (value) => {\n          context.dest = value ?\n            lazyBuffer().from(value.toString()) : undefined;\n        }\x2C\n        enumerable: true\x2C\n        configurable: true\n      });\n    }\n  }\n\n  toString() {\n    return `${this.name} [${this.code}]: ${this.message}`;\n  }\n\n  [SymbolFor('nodejs.util.inspect.custom')](recurseTimes\x2C ctx) {\n    return lazyInternalUtilInspect().inspect(this\x2C {\n      ...ctx\x2C\n      getters: true\x2C\n      customInspect: false\n    });\n  }\n}\n\nfunction makeSystemErrorWithCode(key) {\n  return class NodeError extends SystemError {\n    constructor(ctx) {\n      super(key\x2C ctx);\n    }\n  };\n}\n\nfunction makeNodeErrorWithCode(Base\x2C key) {\n  return function NodeError(...args) {\n    const limit = Error.stackTraceLimit;\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n    const error = new Base();\n    // Reset the limit and setting the name property.\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n    const message = getMessage(key\x2C args\x2C error);\n    ObjectDefineProperties(error\x2C {\n      [kIsNodeError]: {\n        value: true\x2C\n        enumerable: false\x2C\n        writable: false\x2C\n        configurable: true\x2C\n      }\x2C\n      message: {\n        value: message\x2C\n        enumerable: false\x2C\n        writable: true\x2C\n        configurable: true\x2C\n      }\x2C\n      toString: {\n        value() {\n          return `${this.name} [${key}]: ${this.message}`;\n        }\x2C\n        enumerable: false\x2C\n        writable: true\x2C\n        configurable: true\x2C\n      }\x2C\n    });\n    captureLargerStackTrace(error);\n    error.code = key;\n    return error;\n  };\n}\n\n/**\n * This function removes unnecessary frames from Node.js core errors.\n * @template {(...args: any[]) => any} T\n * @type {(fn: T) => T}\n */\nfunction hideStackFrames(fn) {\n  // We rename the functions that will be hidden to cut off the stacktrace\n  // at the outermost one\n  const hidden = nodeInternalPrefix + fn.name;\n  ObjectDefineProperty(fn\x2C 'name'\x2C { value: hidden });\n  return fn;\n}\n\n// Utility function for registering the error codes. Only used here. Exported\n// *only* to allow for testing.\nfunction E(sym\x2C val\x2C def\x2C ...otherClasses) {\n  // Special case for SystemError that formats the error message differently\n  // The SystemErrors only have SystemError as their base classes.\n  messages.set(sym\x2C val);\n  if (def === SystemError) {\n    def = makeSystemErrorWithCode(sym);\n  } else {\n    def = makeNodeErrorWithCode(def\x2C sym);\n  }\n\n  if (otherClasses.length !== 0) {\n    otherClasses.forEach((clazz) => {\n      def[clazz.name] = makeNodeErrorWithCode(clazz\x2C sym);\n    });\n  }\n  codes[sym] = def;\n}\n\nfunction getMessage(key\x2C args\x2C self) {\n  const msg = messages.get(key);\n\n  if (assert === undefined) assert = require('internal/assert');\n\n  if (typeof msg === 'function') {\n    assert(\n      msg.length <= args.length\x2C // Default options do not count.\n      `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n        `match the required ones (${msg.length}).`\n    );\n    return ReflectApply(msg\x2C self\x2C args);\n  }\n\n  const expectedLength =\n    (StringPrototypeMatch(msg\x2C /%[dfijoOs]/g) || []).length;\n  assert(\n    expectedLength === args.length\x2C\n    `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n      `match the required ones (${expectedLength}).`\n  );\n  if (args.length === 0)\n    return msg;\n\n  ArrayPrototypeUnshift(args\x2C msg);\n  return ReflectApply(lazyInternalUtilInspect().format\x2C null\x2C args);\n}\n\nlet uvBinding;\n\nfunction lazyUv() {\n  if (!uvBinding) {\n    uvBinding = internalBinding('uv');\n  }\n  return uvBinding;\n}\n\nconst uvUnmappedError = ['UNKNOWN'\x2C 'unknown error'];\n\nfunction uvErrmapGet(name) {\n  uvBinding = lazyUv();\n  if (!uvBinding.errmap) {\n    uvBinding.errmap = uvBinding.getErrorMap();\n  }\n  return MapPrototypeGet(uvBinding.errmap\x2C name);\n}\n\nconst captureLargerStackTrace = hideStackFrames(\n  function captureLargerStackTrace(err) {\n    const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n    if (stackTraceLimitIsWritable) {\n      userStackTraceLimit = Error.stackTraceLimit;\n      Error.stackTraceLimit = Infinity;\n    }\n    ErrorCaptureStackTrace(err);\n    // Reset the limit\n    if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n\n    return err;\n  });\n\n/**\n * This creates an error compatible with errors produced in the C++\n * function UVException using a context object with data assembled in C++.\n * The goal is to migrate them to ERR_* errors later when compatibility is\n * not a concern.\n *\n * @param {Object} ctx\n * @returns {Error}\n */\nconst uvException = hideStackFrames(function uvException(ctx) {\n  const { 0: code\x2C 1: uvmsg } = uvErrmapGet(ctx.errno) || uvUnmappedError;\n  let message = `${code}: ${ctx.message || uvmsg}\x2C ${ctx.syscall}`;\n\n  let path;\n  let dest;\n  if (ctx.path) {\n    path = ctx.path.toString();\n    message += ` '${path}'`;\n  }\n  if (ctx.dest) {\n    dest = ctx.dest.toString();\n    message += ` -> '${dest}'`;\n  }\n\n  // Reducing the limit improves the performance significantly. We do not lose\n  // the stack frames due to the `captureStackTrace()` function that is called\n  // later.\n  const tmpLimit = Error.stackTraceLimit;\n  if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n  // Pass the message to the constructor instead of setting it on the object\n  // to make sure it is the same as the one created in C++\n  // eslint-disable-next-line no-restricted-syntax\n  const err = new Error(message);\n  if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = tmpLimit;\n\n  for (const prop of ObjectKeys(ctx)) {\n    if (prop === 'message' || prop === 'path' || prop === 'dest') {\n      continue;\n    }\n    err[prop] = ctx[prop];\n  }\n\n  err.code = code;\n  if (path) {\n    err.path = path;\n  }\n  if (dest) {\n    err.dest = dest;\n  }\n\n  return captureLargerStackTrace(err);\n});\n\n/**\n * This creates an error compatible with errors produced in the C++\n * This function should replace the deprecated\n * `exceptionWithHostPort()` function.\n *\n * @param {number} err - A libuv error number\n * @param {string} syscall\n * @param {string} address\n * @param {number} [port]\n * @returns {Error}\n */\nconst uvExceptionWithHostPort = hideStackFrames(\n  function uvExceptionWithHostPort(err\x2C syscall\x2C address\x2C port) {\n    const { 0: code\x2C 1: uvmsg } = uvErrmapGet(err) || uvUnmappedError;\n    const message = `${syscall} ${code}: ${uvmsg}`;\n    let details = '';\n\n    if (port && port > 0) {\n      details = ` ${address}:${port}`;\n    } else if (address) {\n      details = ` ${address}`;\n    }\n\n    // Reducing the limit improves the performance significantly. We do not\n    // lose the stack frames due to the `captureStackTrace()` function that\n    // is called later.\n    const tmpLimit = Error.stackTraceLimit;\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n    // eslint-disable-next-line no-restricted-syntax\n    const ex = new Error(`${message}${details}`);\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = tmpLimit;\n    ex.code = code;\n    ex.errno = err;\n    ex.syscall = syscall;\n    ex.address = address;\n    if (port) {\n      ex.port = port;\n    }\n\n    return captureLargerStackTrace(ex);\n  });\n\n/**\n * This used to be util._errnoException().\n *\n * @param {number} err - A libuv error number\n * @param {string} syscall\n * @param {string} [original]\n * @returns {Error}\n */\nconst errnoException = hideStackFrames(\n  function errnoException(err\x2C syscall\x2C original) {\n    // TODO(joyeecheung): We have to use the type-checked\n    // getSystemErrorName(err) to guard against invalid arguments from users.\n    // This can be replaced with [ code ] = errmap.get(err) when this method\n    // is no longer exposed to user land.\n    if (util === undefined) util = require('util');\n    const code = util.getSystemErrorName(err);\n    const message = original ?\n      `${syscall} ${code} ${original}` : `${syscall} ${code}`;\n\n    const tmpLimit = Error.stackTraceLimit;\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n    // eslint-disable-next-line no-restricted-syntax\n    const ex = new Error(message);\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = tmpLimit;\n    ex.errno = err;\n    ex.code = code;\n    ex.syscall = syscall;\n\n    return captureLargerStackTrace(ex);\n  });\n\n/**\n * Deprecated\x2C new function is `uvExceptionWithHostPort()`\n * New function added the error description directly\n * from C++. this method for backwards compatibility\n * @param {number} err - A libuv error number\n * @param {string} syscall\n * @param {string} address\n * @param {number} [port]\n * @param {string} [additional]\n * @returns {Error}\n */\nconst exceptionWithHostPort = hideStackFrames(\n  function exceptionWithHostPort(err\x2C syscall\x2C address\x2C port\x2C additional) {\n    // TODO(joyeecheung): We have to use the type-checked\n    // getSystemErrorName(err) to guard against invalid arguments from users.\n    // This can be replaced with [ code ] = errmap.get(err) when this method\n    // is no longer exposed to user land.\n    if (util === undefined) util = require('util');\n    const code = util.getSystemErrorName(err);\n    let details = '';\n    if (port && port > 0) {\n      details = ` ${address}:${port}`;\n    } else if (address) {\n      details = ` ${address}`;\n    }\n    if (additional) {\n      details += ` - Local (${additional})`;\n    }\n\n    // Reducing the limit improves the performance significantly. We do not\n    // lose the stack frames due to the `captureStackTrace()` function that\n    // is called later.\n    const tmpLimit = Error.stackTraceLimit;\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n    // eslint-disable-next-line no-restricted-syntax\n    const ex = new Error(`${syscall} ${code}${details}`);\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = tmpLimit;\n    ex.errno = err;\n    ex.code = code;\n    ex.syscall = syscall;\n    ex.address = address;\n    if (port) {\n      ex.port = port;\n    }\n\n    return captureLargerStackTrace(ex);\n  });\n\n/**\n * @param {number|string} code - A libuv error number or a c-ares error code\n * @param {string} syscall\n * @param {string} [hostname]\n * @returns {Error}\n */\nconst dnsException = hideStackFrames(function(code\x2C syscall\x2C hostname) {\n  let errno;\n  // If `code` is of type number\x2C it is a libuv error number\x2C else it is a\n  // c-ares error code.\n  // TODO(joyeecheung): translate c-ares error codes into numeric ones and\n  // make them available in a property that's not error.errno (since they\n  // can be in conflict with libuv error codes). Also make sure\n  // util.getSystemErrorName() can understand them when an being informed that\n  // the number is a c-ares error code.\n  if (typeof code === 'number') {\n    errno = code;\n    // ENOTFOUND is not a proper POSIX error\x2C but this error has been in place\n    // long enough that it's not practical to remove it.\n    if (code === lazyUv().UV_EAI_NODATA || code === lazyUv().UV_EAI_NONAME) {\n      code = 'ENOTFOUND'; // Fabricated error name.\n    } else {\n      code = lazyInternalUtil().getSystemErrorName(code);\n    }\n  }\n  const message = `${syscall} ${code}${hostname ? ` ${hostname}` : ''}`;\n  // Reducing the limit improves the performance significantly. We do not lose\n  // the stack frames due to the `captureStackTrace()` function that is called\n  // later.\n  const tmpLimit = Error.stackTraceLimit;\n  if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n  // eslint-disable-next-line no-restricted-syntax\n  const ex = new Error(message);\n  if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = tmpLimit;\n  ex.errno = errno;\n  ex.code = code;\n  ex.syscall = syscall;\n  if (hostname) {\n    ex.hostname = hostname;\n  }\n\n  return captureLargerStackTrace(ex);\n});\n\nfunction connResetException(msg) {\n  // eslint-disable-next-line no-restricted-syntax\n  const ex = new Error(msg);\n  ex.code = 'ECONNRESET';\n  return ex;\n}\n\nlet maxStack_ErrorName;\nlet maxStack_ErrorMessage;\n/**\n * Returns true if `err.name` and `err.message` are equal to engine-specific\n * values indicating max call stack size has been exceeded.\n * "Maximum call stack size exceeded" in V8.\n *\n * @param {Error} err\n * @returns {boolean}\n */\nfunction isStackOverflowError(err) {\n  if (maxStack_ErrorMessage === undefined) {\n    try {\n      function overflowStack() { overflowStack(); }\n      overflowStack();\n    } catch (err) {\n      maxStack_ErrorMessage = err.message;\n      maxStack_ErrorName = err.name;\n    }\n  }\n\n  return err && err.name === maxStack_ErrorName &&\n         err.message === maxStack_ErrorMessage;\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n  let res = '';\n  let i = val.length;\n  const start = val[0] === '-' ? 1 : 0;\n  for (; i >= start + 4; i -= 3) {\n    res = `_${StringPrototypeSlice(val\x2C i - 3\x2C i)}${res}`;\n  }\n  return `${StringPrototypeSlice(val\x2C 0\x2C i)}${res}`;\n}\n\n// Used to enhance the stack that will be picked up by the inspector\nconst kEnhanceStackBeforeInspector = Symbol('kEnhanceStackBeforeInspector');\n\n// These are supposed to be called only on fatal exceptions before\n// the process exits.\nconst fatalExceptionStackEnhancers = {\n  beforeInspector(error) {\n    if (typeof error[kEnhanceStackBeforeInspector] !== 'function') {\n      return error.stack;\n    }\n\n    try {\n      // Set the error.stack here so it gets picked up by the\n      // inspector.\n      error.stack = error[kEnhanceStackBeforeInspector]();\n    } catch {\n      // We are just enhancing the error. If it fails\x2C ignore it.\n    }\n    return error.stack;\n  }\x2C\n  afterInspector(error) {\n    const originalStack = error.stack;\n    let useColors = true;\n    // Some consoles do not convert ANSI escape sequences to colors\x2C\n    // rather display them directly to the stdout. On those consoles\x2C\n    // libuv emulates colors by intercepting stdout stream and calling\n    // corresponding Windows API functions for setting console colors.\n    // However\x2C fatal error are handled differently and we cannot easily\n    // highlight them. On Windows\x2C detecting whether a console supports\n    // ANSI escape sequences is not reliable.\n    if (process.platform === 'win32') {\n      const info = internalBinding('os').getOSInformation();\n      const ver = ArrayPrototypeMap(StringPrototypeSplit(info[2]\x2C '.')\x2C\n                                    Number);\n      if (ver[0] !== 10 || ver[2] < 14393) {\n        useColors = false;\n      }\n    }\n    const {\n      inspect\x2C\n      inspectDefaultOptions: {\n        colors: defaultColors\n      }\n    } = lazyInternalUtilInspect();\n    const colors = useColors &&\n                   ((internalBinding('util').guessHandleType(2) === 'TTY' &&\n                   require('internal/tty').hasColors()) ||\n                   defaultColors);\n    try {\n      return inspect(error\x2C {\n        colors\x2C\n        customInspect: false\x2C\n        depth: MathMax(inspect.defaultOptions.depth\x2C 5)\n      });\n    } catch {\n      return originalStack;\n    }\n  }\n};\n\n// Ensures the printed error line is from user code.\nlet _kArrowMessagePrivateSymbol\x2C _setHiddenValue;\nfunction setArrowMessage(err\x2C arrowMessage) {\n  if (!_kArrowMessagePrivateSymbol) {\n    ({\n      arrow_message_private_symbol: _kArrowMessagePrivateSymbol\x2C\n      setHiddenValue: _setHiddenValue\x2C\n    } = internalBinding('util'));\n  }\n  _setHiddenValue(err\x2C _kArrowMessagePrivateSymbol\x2C arrowMessage);\n}\n\n// Hide stack lines before the first user code line.\nfunction hideInternalStackFrames(error) {\n  overrideStackTrace.set(error\x2C (error\x2C stackFrames) => {\n    let frames = stackFrames;\n    if (typeof stackFrames === 'object') {\n      frames = ArrayPrototypeFilter(\n        stackFrames\x2C\n        (frm) => !StringPrototypeStartsWith(frm.getFileName() || ''\x2C\n                                            'node:internal')\n      );\n    }\n    ArrayPrototypeUnshift(frames\x2C error);\n    return ArrayPrototypeJoin(frames\x2C '\\n    at ');\n  });\n}\n\n// Node uses an AbortError that isn't exactly the same as the DOMException\n// to make usage of the error in userland and readable-stream easier.\n// It is a regular error with `.code` and `.name`.\nclass AbortError extends Error {\n  constructor() {\n    super('The operation was aborted');\n    this.code = 'ABORT_ERR';\n    this.name = 'AbortError';\n  }\n}\nmodule.exports = {\n  aggregateTwoErrors\x2C\n  codes\x2C\n  dnsException\x2C\n  errnoException\x2C\n  exceptionWithHostPort\x2C\n  getMessage\x2C\n  hideStackFrames\x2C\n  hideInternalStackFrames\x2C\n  isErrorStackTraceLimitWritable\x2C\n  isStackOverflowError\x2C\n  setArrowMessage\x2C\n  connResetException\x2C\n  uvErrmapGet\x2C\n  uvException\x2C\n  uvExceptionWithHostPort\x2C\n  SystemError\x2C\n  AbortError\x2C\n  // This is exported only to facilitate testing.\n  E\x2C\n  kNoOverride\x2C\n  prepareStackTrace\x2C\n  maybeOverridePrepareStackTrace\x2C\n  overrideStackTrace\x2C\n  kEnhanceStackBeforeInspector\x2C\n  fatalExceptionStackEnhancers\x2C\n  kIsNodeError\x2C\n  captureLargerStackTrace\x2C\n};\n\n// To declare an error message\x2C use the E(sym\x2C val\x2C def) function above. The sym\n// must be an upper case string. The val can be either a function or a string.\n// The def must be an error class.\n// The return value of the function must be a string.\n// Examples:\n// E('EXAMPLE_KEY1'\x2C 'This is the error value'\x2C Error);\n// E('EXAMPLE_KEY2'\x2C (a\x2C b) => return `${a} ${b}`\x2C RangeError);\n//\n// Once an error code has been assigned\x2C the code itself MUST NOT change and\n// any given error code must never be reused to identify a different error.\n//\n// Any error code added here should also be added to the documentation\n//\n// Note: Please try to keep these in alphabetical order\n//\n// Note: Node.js specific errors must begin with the prefix ERR_\n\nE('ERR_AMBIGUOUS_ARGUMENT'\x2C 'The "%s" argument is ambiguous. %s'\x2C TypeError);\nE('ERR_ARG_NOT_ITERABLE'\x2C '%s must be iterable'\x2C TypeError);\nE('ERR_ASSERTION'\x2C '%s'\x2C Error);\nE('ERR_ASYNC_CALLBACK'\x2C '%s must be a function'\x2C TypeError);\nE('ERR_ASYNC_TYPE'\x2C 'Invalid name for async "type": %s'\x2C TypeError);\nE('ERR_BROTLI_INVALID_PARAM'\x2C '%s is not a valid Brotli parameter'\x2C RangeError);\nE('ERR_BUFFER_OUT_OF_BOUNDS'\x2C\n  // Using a default argument here is important so the argument is not counted\n  // towards `Function#length`.\n  (name = undefined) => {\n    if (name) {\n      return `"${name}" is outside of buffer bounds`;\n    }\n    return 'Attempt to access memory outside buffer bounds';\n  }\x2C RangeError);\nE('ERR_BUFFER_TOO_LARGE'\x2C\n  'Cannot create a Buffer larger than %s bytes'\x2C\n  RangeError);\nE('ERR_CANNOT_WATCH_SIGINT'\x2C 'Cannot watch for SIGINT signals'\x2C Error);\nE('ERR_CHILD_CLOSED_BEFORE_REPLY'\x2C\n  'Child closed before reply received'\x2C Error);\nE('ERR_CHILD_PROCESS_IPC_REQUIRED'\x2C\n  "Forked processes must have an IPC channel\x2C missing value 'ipc' in %s"\x2C\n  Error);\nE('ERR_CHILD_PROCESS_STDIO_MAXBUFFER'\x2C '%s maxBuffer length exceeded'\x2C\n  RangeError);\nE('ERR_CONSOLE_WRITABLE_STREAM'\x2C\n  'Console expects a writable stream instance for %s'\x2C TypeError);\nE('ERR_CONTEXT_NOT_INITIALIZED'\x2C 'context used is not initialized'\x2C Error);\nE('ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED'\x2C\n  'Custom engines not supported by this OpenSSL'\x2C Error);\nE('ERR_CRYPTO_ECDH_INVALID_FORMAT'\x2C 'Invalid ECDH format: %s'\x2C TypeError);\nE('ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY'\x2C\n  'Public key is not valid for specified curve'\x2C Error);\nE('ERR_CRYPTO_ENGINE_UNKNOWN'\x2C 'Engine "%s" was not found'\x2C Error);\nE('ERR_CRYPTO_FIPS_FORCED'\x2C\n  'Cannot set FIPS mode\x2C it was forced with --force-fips at startup.'\x2C Error);\nE('ERR_CRYPTO_FIPS_UNAVAILABLE'\x2C 'Cannot set FIPS mode in a non-FIPS build.'\x2C\n  Error);\nE('ERR_CRYPTO_HASH_FINALIZED'\x2C 'Digest already called'\x2C Error);\nE('ERR_CRYPTO_HASH_UPDATE_FAILED'\x2C 'Hash update failed'\x2C Error);\nE('ERR_CRYPTO_INCOMPATIBLE_KEY'\x2C 'Incompatible %s: %s'\x2C Error);\nE('ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS'\x2C 'The selected key encoding %s %s.'\x2C\n  Error);\nE('ERR_CRYPTO_INVALID_DIGEST'\x2C 'Invalid digest: %s'\x2C TypeError);\nE('ERR_CRYPTO_INVALID_JWK'\x2C 'Invalid JWK data'\x2C TypeError);\nE('ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE'\x2C\n  'Invalid key object type %s\x2C expected %s.'\x2C TypeError);\nE('ERR_CRYPTO_INVALID_STATE'\x2C 'Invalid state for operation %s'\x2C Error);\nE('ERR_CRYPTO_PBKDF2_ERROR'\x2C 'PBKDF2 error'\x2C Error);\nE('ERR_CRYPTO_SCRYPT_INVALID_PARAMETER'\x2C 'Invalid scrypt parameter'\x2C Error);\nE('ERR_CRYPTO_SCRYPT_NOT_SUPPORTED'\x2C 'Scrypt algorithm not supported'\x2C Error);\n// Switch to TypeError. The current implementation does not seem right.\nE('ERR_CRYPTO_SIGN_KEY_REQUIRED'\x2C 'No key provided to sign'\x2C Error);\nE('ERR_DEBUGGER_ERROR'\x2C '%s'\x2C Error);\nE('ERR_DEBUGGER_STARTUP_ERROR'\x2C '%s'\x2C Error);\nE('ERR_DIR_CLOSED'\x2C 'Directory handle was closed'\x2C Error);\nE('ERR_DIR_CONCURRENT_OPERATION'\x2C\n  'Cannot do synchronous work on directory handle with concurrent ' +\n  'asynchronous operations'\x2C Error);\nE('ERR_DNS_SET_SERVERS_FAILED'\x2C 'c-ares failed to set servers: "%s" [%s]'\x2C\n  Error);\nE('ERR_DOMAIN_CALLBACK_NOT_AVAILABLE'\x2C\n  'A callback was registered through ' +\n     'process.setUncaughtExceptionCaptureCallback()\x2C which is mutually ' +\n     'exclusive with using the `domain` module'\x2C\n  Error);\nE('ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE'\x2C\n  'The `domain` module is in use\x2C which is mutually exclusive with calling ' +\n     'process.setUncaughtExceptionCaptureCallback()'\x2C\n  Error);\nE('ERR_ENCODING_INVALID_ENCODED_DATA'\x2C function(encoding\x2C ret) {\n  this.errno = ret;\n  return `The encoded data was not valid for encoding ${encoding}`;\n}\x2C TypeError);\nE('ERR_ENCODING_NOT_SUPPORTED'\x2C 'The "%s" encoding is not supported'\x2C\n  RangeError);\nE('ERR_EVAL_ESM_CANNOT_PRINT'\x2C '--print cannot be used with ESM input'\x2C Error);\nE('ERR_EVENT_RECURSION'\x2C 'The event "%s" is already being dispatched'\x2C Error);\nE('ERR_FALSY_VALUE_REJECTION'\x2C function(reason) {\n  this.reason = reason;\n  return 'Promise was rejected with falsy value';\n}\x2C Error);\nE('ERR_FEATURE_UNAVAILABLE_ON_PLATFORM'\x2C\n  'The feature %s is unavailable on the current platform' +\n  '\x2C which is being used to run Node.js'\x2C\n  TypeError);\nE('ERR_FS_EISDIR'\x2C 'Path is a directory'\x2C SystemError);\nE('ERR_FS_FILE_TOO_LARGE'\x2C 'File size (%s) is greater than 2 GB'\x2C RangeError);\nE('ERR_FS_INVALID_SYMLINK_TYPE'\x2C\n  'Symlink type must be one of "dir"\x2C "file"\x2C or "junction". Received "%s"'\x2C\n  Error); // Switch to TypeError. The current implementation does not seem right\nE('ERR_HTTP2_ALTSVC_INVALID_ORIGIN'\x2C\n  'HTTP/2 ALTSVC frames require a valid origin'\x2C TypeError);\nE('ERR_HTTP2_ALTSVC_LENGTH'\x2C\n  'HTTP/2 ALTSVC frames are limited to 16382 bytes'\x2C TypeError);\nE('ERR_HTTP2_CONNECT_AUTHORITY'\x2C\n  ':authority header is required for CONNECT requests'\x2C Error);\nE('ERR_HTTP2_CONNECT_PATH'\x2C\n  'The :path header is forbidden for CONNECT requests'\x2C Error);\nE('ERR_HTTP2_CONNECT_SCHEME'\x2C\n  'The :scheme header is forbidden for CONNECT requests'\x2C Error);\nE('ERR_HTTP2_GOAWAY_SESSION'\x2C\n  'New streams cannot be created after receiving a GOAWAY'\x2C Error);\nE('ERR_HTTP2_HEADERS_AFTER_RESPOND'\x2C\n  'Cannot specify additional headers after response initiated'\x2C Error);\nE('ERR_HTTP2_HEADERS_SENT'\x2C 'Response has already been initiated.'\x2C Error);\nE('ERR_HTTP2_HEADER_SINGLE_VALUE'\x2C\n  'Header field "%s" must only have a single value'\x2C TypeError);\nE('ERR_HTTP2_INFO_STATUS_NOT_ALLOWED'\x2C\n  'Informational status codes cannot be used'\x2C RangeError);\nE('ERR_HTTP2_INVALID_CONNECTION_HEADERS'\x2C\n  'HTTP/1 Connection specific headers are forbidden: "%s"'\x2C TypeError);\nE('ERR_HTTP2_INVALID_HEADER_VALUE'\x2C\n  'Invalid value "%s" for header "%s"'\x2C TypeError);\nE('ERR_HTTP2_INVALID_INFO_STATUS'\x2C\n  'Invalid informational status code: %s'\x2C RangeError);\nE('ERR_HTTP2_INVALID_ORIGIN'\x2C\n  'HTTP/2 ORIGIN frames require a valid origin'\x2C TypeError);\nE('ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH'\x2C\n  'Packed settings length must be a multiple of six'\x2C RangeError);\nE('ERR_HTTP2_INVALID_PSEUDOHEADER'\x2C\n  '"%s" is an invalid pseudoheader or is used incorrectly'\x2C TypeError);\nE('ERR_HTTP2_INVALID_SESSION'\x2C 'The session has been destroyed'\x2C Error);\nE('ERR_HTTP2_INVALID_SETTING_VALUE'\x2C\n  // Using default arguments here is important so the arguments are not counted\n  // towards `Function#length`.\n  function(name\x2C actual\x2C min = undefined\x2C max = undefined) {\n    this.actual = actual;\n    if (min !== undefined) {\n      this.min = min;\n      this.max = max;\n    }\n    return `Invalid value for setting "${name}": ${actual}`;\n  }\x2C TypeError\x2C RangeError);\nE('ERR_HTTP2_INVALID_STREAM'\x2C 'The stream has been destroyed'\x2C Error);\nE('ERR_HTTP2_MAX_PENDING_SETTINGS_ACK'\x2C\n  'Maximum number of pending settings acknowledgements'\x2C Error);\nE('ERR_HTTP2_NESTED_PUSH'\x2C\n  'A push stream cannot initiate another push stream.'\x2C Error);\nE('ERR_HTTP2_NO_MEM'\x2C 'Out of memory'\x2C Error);\nE('ERR_HTTP2_NO_SOCKET_MANIPULATION'\x2C\n  'HTTP/2 sockets should not be directly manipulated (e.g. read and written)'\x2C\n  Error);\nE('ERR_HTTP2_ORIGIN_LENGTH'\x2C\n  'HTTP/2 ORIGIN frames are limited to 16382 bytes'\x2C TypeError);\nE('ERR_HTTP2_OUT_OF_STREAMS'\x2C\n  'No stream ID is available because maximum stream ID has been reached'\x2C\n  Error);\nE('ERR_HTTP2_PAYLOAD_FORBIDDEN'\x2C\n  'Responses with %s status must not have a payload'\x2C Error);\nE('ERR_HTTP2_PING_CANCEL'\x2C 'HTTP2 ping cancelled'\x2C Error);\nE('ERR_HTTP2_PING_LENGTH'\x2C 'HTTP2 ping payload must be 8 bytes'\x2C RangeError);\nE('ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED'\x2C\n  'Cannot set HTTP/2 pseudo-headers'\x2C TypeError);\nE('ERR_HTTP2_PUSH_DISABLED'\x2C 'HTTP/2 client has disabled push streams'\x2C Error);\nE('ERR_HTTP2_SEND_FILE'\x2C 'Directories cannot be sent'\x2C Error);\nE('ERR_HTTP2_SEND_FILE_NOSEEK'\x2C\n  'Offset or length can only be specified for regular files'\x2C Error);\nE('ERR_HTTP2_SESSION_ERROR'\x2C 'Session closed with error code %s'\x2C Error);\nE('ERR_HTTP2_SETTINGS_CANCEL'\x2C 'HTTP2 session settings canceled'\x2C Error);\nE('ERR_HTTP2_SOCKET_BOUND'\x2C\n  'The socket is already bound to an Http2Session'\x2C Error);\nE('ERR_HTTP2_SOCKET_UNBOUND'\x2C\n  'The socket has been disconnected from the Http2Session'\x2C Error);\nE('ERR_HTTP2_STATUS_101'\x2C\n  'HTTP status code 101 (Switching Protocols) is forbidden in HTTP/2'\x2C Error);\nE('ERR_HTTP2_STATUS_INVALID'\x2C 'Invalid status code: %s'\x2C RangeError);\nE('ERR_HTTP2_STREAM_CANCEL'\x2C function(error) {\n  let msg = 'The pending stream has been canceled';\n  if (error) {\n    this.cause = error;\n    if (typeof error.message === 'string')\n      msg += ` (caused by: ${error.message})`;\n  }\n  return msg;\n}\x2C Error);\nE('ERR_HTTP2_STREAM_ERROR'\x2C 'Stream closed with error code %s'\x2C Error);\nE('ERR_HTTP2_STREAM_SELF_DEPENDENCY'\x2C\n  'A stream cannot depend on itself'\x2C Error);\nE('ERR_HTTP2_TOO_MANY_INVALID_FRAMES'\x2C 'Too many invalid HTTP/2 frames'\x2C Error);\nE('ERR_HTTP2_TRAILERS_ALREADY_SENT'\x2C\n  'Trailing headers have already been sent'\x2C Error);\nE('ERR_HTTP2_TRAILERS_NOT_READY'\x2C\n  'Trailing headers cannot be sent until after the wantTrailers event is ' +\n  'emitted'\x2C Error);\nE('ERR_HTTP2_UNSUPPORTED_PROTOCOL'\x2C 'protocol "%s" is unsupported.'\x2C Error);\nE('ERR_HTTP_HEADERS_SENT'\x2C\n  'Cannot %s headers after they are sent to the client'\x2C Error);\nE('ERR_HTTP_INVALID_HEADER_VALUE'\x2C\n  'Invalid value "%s" for header "%s"'\x2C TypeError);\nE('ERR_HTTP_INVALID_STATUS_CODE'\x2C 'Invalid status code: %s'\x2C RangeError);\nE('ERR_HTTP_REQUEST_TIMEOUT'\x2C 'Request timeout'\x2C Error);\nE('ERR_HTTP_SOCKET_ENCODING'\x2C\n  'Changing the socket encoding is not allowed per RFC7230 Section 3.'\x2C Error);\nE('ERR_HTTP_TRAILER_INVALID'\x2C\n  'Trailers are invalid with this transfer encoding'\x2C Error);\nE('ERR_ILLEGAL_CONSTRUCTOR'\x2C 'Illegal constructor'\x2C TypeError);\nE('ERR_INCOMPATIBLE_OPTION_PAIR'\x2C\n  'Option "%s" cannot be used in combination with option "%s"'\x2C TypeError);\nE('ERR_INPUT_TYPE_NOT_ALLOWED'\x2C '--input-type can only be used with string ' +\n  'input via --eval\x2C --print\x2C or STDIN'\x2C Error);\nE('ERR_INSPECTOR_ALREADY_ACTIVATED'\x2C\n  'Inspector is already activated. Close it with inspector.close() ' +\n  'before activating it again.'\x2C\n  Error);\nE('ERR_INSPECTOR_ALREADY_CONNECTED'\x2C '%s is already connected'\x2C Error);\nE('ERR_INSPECTOR_CLOSED'\x2C 'Session was closed'\x2C Error);\nE('ERR_INSPECTOR_COMMAND'\x2C 'Inspector error %d: %s'\x2C Error);\nE('ERR_INSPECTOR_NOT_ACTIVE'\x2C 'Inspector is not active'\x2C Error);\nE('ERR_INSPECTOR_NOT_AVAILABLE'\x2C 'Inspector is not available'\x2C Error);\nE('ERR_INSPECTOR_NOT_CONNECTED'\x2C 'Session is not connected'\x2C Error);\nE('ERR_INSPECTOR_NOT_WORKER'\x2C 'Current thread is not a worker'\x2C Error);\nE('ERR_INTERNAL_ASSERTION'\x2C (message) => {\n  const suffix = 'This is caused by either a bug in Node.js ' +\n    'or incorrect usage of Node.js internals.\\n' +\n    'Please open an issue with this stack trace at ' +\n    'https://github.com/nodejs/node/issues\\n';\n  return message === undefined ? suffix : `${message}\\n${suffix}`;\n}\x2C Error);\nE('ERR_INVALID_ADDRESS_FAMILY'\x2C function(addressType\x2C host\x2C port) {\n  this.host = host;\n  this.port = port;\n  return `Invalid address family: ${addressType} ${host}:${port}`;\n}\x2C RangeError);\nE('ERR_INVALID_ARG_TYPE'\x2C\n  (name\x2C expected\x2C actual) => {\n    assert(typeof name === 'string'\x2C "'name' must be a string");\n    if (!ArrayIsArray(expected)) {\n      expected = [expected];\n    }\n\n    let msg = 'The ';\n    if (StringPrototypeEndsWith(name\x2C ' argument')) {\n      // For cases like 'first argument'\n      msg += `${name} `;\n    } else {\n      const type = StringPrototypeIncludes(name\x2C '.') ? 'property' : 'argument';\n      msg += `"${name}" ${type} `;\n    }\n    msg += 'must be ';\n\n    const types = [];\n    const instances = [];\n    const other = [];\n\n    for (const value of expected) {\n      assert(typeof value === 'string'\x2C\n             'All expected entries have to be of type string');\n      if (ArrayPrototypeIncludes(kTypes\x2C value)) {\n        ArrayPrototypePush(types\x2C StringPrototypeToLowerCase(value));\n      } else if (RegExpPrototypeTest(classRegExp\x2C value)) {\n        ArrayPrototypePush(instances\x2C value);\n      } else {\n        assert(value !== 'object'\x2C\n               'The value "object" should be written as "Object"');\n        ArrayPrototypePush(other\x2C value);\n      }\n    }\n\n    // Special handle `object` in case other instances are allowed to outline\n    // the differences between each other.\n    if (instances.length > 0) {\n      const pos = ArrayPrototypeIndexOf(types\x2C 'object');\n      if (pos !== -1) {\n        ArrayPrototypeSplice(types\x2C pos\x2C 1);\n        ArrayPrototypePush(instances\x2C 'Object');\n      }\n    }\n\n    if (types.length > 0) {\n      if (types.length > 2) {\n        const last = ArrayPrototypePop(types);\n        msg += `one of type ${ArrayPrototypeJoin(types\x2C '\x2C ')}\x2C or ${last}`;\n      } else if (types.length === 2) {\n        msg += `one of type ${types[0]} or ${types[1]}`;\n      } else {\n        msg += `of type ${types[0]}`;\n      }\n      if (instances.length > 0 || other.length > 0)\n        msg += ' or ';\n    }\n\n    if (instances.length > 0) {\n      if (instances.length > 2) {\n        const last = ArrayPrototypePop(instances);\n        msg +=\n          `an instance of ${ArrayPrototypeJoin(instances\x2C '\x2C ')}\x2C or ${last}`;\n      } else {\n        msg += `an instance of ${instances[0]}`;\n        if (instances.length === 2) {\n          msg += ` or ${instances[1]}`;\n        }\n      }\n      if (other.length > 0)\n        msg += ' or ';\n    }\n\n    if (other.length > 0) {\n      if (other.length > 2) {\n        const last = ArrayPrototypePop(other);\n        msg += `one of ${ArrayPrototypeJoin(other\x2C '\x2C ')}\x2C or ${last}`;\n      } else if (other.length === 2) {\n        msg += `one of ${other[0]} or ${other[1]}`;\n      } else {\n        if (StringPrototypeToLowerCase(other[0]) !== other[0])\n          msg += 'an ';\n        msg += `${other[0]}`;\n      }\n    }\n\n    if (actual == null) {\n      msg += `. Received ${actual}`;\n    } else if (typeof actual === 'function' && actual.name) {\n      msg += `. Received function ${actual.name}`;\n    } else if (typeof actual === 'object') {\n      if (actual.constructor && actual.constructor.name) {\n        msg += `. Received an instance of ${actual.constructor.name}`;\n      } else {\n        const inspected = lazyInternalUtilInspect()\n          .inspect(actual\x2C { depth: -1 });\n        msg += `. Received ${inspected}`;\n      }\n    } else {\n      let inspected = lazyInternalUtilInspect()\n        .inspect(actual\x2C { colors: false });\n      if (inspected.length > 25)\n        inspected = `${StringPrototypeSlice(inspected\x2C 0\x2C 25)}...`;\n      msg += `. Received type ${typeof actual} (${inspected})`;\n    }\n    return msg;\n  }\x2C TypeError);\nE('ERR_INVALID_ARG_VALUE'\x2C (name\x2C value\x2C reason = 'is invalid') => {\n  let inspected = lazyInternalUtilInspect().inspect(value);\n  if (inspected.length > 128) {\n    inspected = `${StringPrototypeSlice(inspected\x2C 0\x2C 128)}...`;\n  }\n  const type = StringPrototypeIncludes(name\x2C '.') ? 'property' : 'argument';\n  return `The ${type} '${name}' ${reason}. Received ${inspected}`;\n}\x2C TypeError\x2C RangeError);\nE('ERR_INVALID_ASYNC_ID'\x2C 'Invalid %s value: %s'\x2C RangeError);\nE('ERR_INVALID_BUFFER_SIZE'\x2C\n  'Buffer size must be a multiple of %s'\x2C RangeError);\nE('ERR_INVALID_CALLBACK'\x2C\n  'Callback must be a function. Received %O'\x2C TypeError);\nE('ERR_INVALID_CHAR'\x2C\n  // Using a default argument here is important so the argument is not counted\n  // towards `Function#length`.\n  (name\x2C field = undefined) => {\n    let msg = `Invalid character in ${name}`;\n    if (field !== undefined) {\n      msg += ` ["${field}"]`;\n    }\n    return msg;\n  }\x2C TypeError);\nE('ERR_INVALID_CURSOR_POS'\x2C\n  'Cannot set cursor row without setting its column'\x2C TypeError);\nE('ERR_INVALID_FD'\x2C\n  '"fd" must be a positive integer: %s'\x2C RangeError);\nE('ERR_INVALID_FD_TYPE'\x2C 'Unsupported fd type: %s'\x2C TypeError);\nE('ERR_INVALID_FILE_URL_HOST'\x2C\n  'File URL host must be "localhost" or empty on %s'\x2C TypeError);\nE('ERR_INVALID_FILE_URL_PATH'\x2C 'File URL path %s'\x2C TypeError);\nE('ERR_INVALID_HANDLE_TYPE'\x2C 'This handle type cannot be sent'\x2C TypeError);\nE('ERR_INVALID_HTTP_TOKEN'\x2C '%s must be a valid HTTP token ["%s"]'\x2C TypeError);\nE('ERR_INVALID_IP_ADDRESS'\x2C 'Invalid IP address: %s'\x2C TypeError);\nE('ERR_INVALID_MODULE_SPECIFIER'\x2C (request\x2C reason\x2C base = undefined) => {\n  return `Invalid module "${request}" ${reason}${base ?\n    ` imported from ${base}` : ''}`;\n}\x2C TypeError);\nE('ERR_INVALID_PACKAGE_CONFIG'\x2C (path\x2C base\x2C message) => {\n  return `Invalid package config ${path}${base ? ` while importing ${base}` :\n    ''}${message ? `. ${message}` : ''}`;\n}\x2C Error);\nE('ERR_INVALID_PACKAGE_TARGET'\x2C\n  (pkgPath\x2C key\x2C target\x2C isImport = false\x2C base = undefined) => {\n    const relError = typeof target === 'string' && !isImport &&\n      target.length && !StringPrototypeStartsWith(target\x2C './');\n    if (key === '.') {\n      assert(isImport === false);\n      return `Invalid "exports" main target ${JSONStringify(target)} defined ` +\n        `in the package config ${pkgPath}package.json${base ?\n          ` imported from ${base}` : ''}${relError ?\n          '; targets must start with "./"' : ''}`;\n    }\n    return `Invalid "${isImport ? 'imports' : 'exports'}" target ${\n      JSONStringify(target)} defined for '${key}' in the package config ${\n      pkgPath}package.json${base ? ` imported from ${base}` : ''}${relError ?\n      '; targets must start with "./"' : ''}`;\n  }\x2C Error);\nE('ERR_INVALID_PERFORMANCE_MARK'\x2C\n  'The "%s" performance mark has not been set'\x2C Error);\nE('ERR_INVALID_PROTOCOL'\x2C\n  'Protocol "%s" not supported. Expected "%s"'\x2C\n  TypeError);\nE('ERR_INVALID_REPL_EVAL_CONFIG'\x2C\n  'Cannot specify both "breakEvalOnSigint" and "eval" for REPL'\x2C TypeError);\nE('ERR_INVALID_REPL_INPUT'\x2C '%s'\x2C TypeError);\nE('ERR_INVALID_RETURN_PROPERTY'\x2C (input\x2C name\x2C prop\x2C value) => {\n  return `Expected a valid ${input} to be returned for the "${prop}" from the` +\n         ` "${name}" function but got ${value}.`;\n}\x2C TypeError);\nE('ERR_INVALID_RETURN_PROPERTY_VALUE'\x2C (input\x2C name\x2C prop\x2C value) => {\n  let type;\n  if (value && value.constructor && value.constructor.name) {\n    type = `instance of ${value.constructor.name}`;\n  } else {\n    type = `type ${typeof value}`;\n  }\n  return `Expected ${input} to be returned for the "${prop}" from the` +\n         ` "${name}" function but got ${type}.`;\n}\x2C TypeError);\nE('ERR_INVALID_RETURN_VALUE'\x2C (input\x2C name\x2C value) => {\n  let type;\n  if (value && value.constructor && value.constructor.name) {\n    type = `instance of ${value.constructor.name}`;\n  } else {\n    type = `type ${typeof value}`;\n  }\n  return `Expected ${input} to be returned from the "${name}"` +\n         ` function but got ${type}.`;\n}\x2C TypeError\x2C RangeError);\nE('ERR_INVALID_STATE'\x2C 'Invalid state: %s'\x2C Error\x2C TypeError\x2C RangeError);\nE('ERR_INVALID_SYNC_FORK_INPUT'\x2C\n  'Asynchronous forks do not support ' +\n    'Buffer\x2C TypedArray\x2C DataView or string input: %s'\x2C\n  TypeError);\nE('ERR_INVALID_THIS'\x2C 'Value of "this" must be of type %s'\x2C TypeError);\nE('ERR_INVALID_TUPLE'\x2C '%s must be an iterable %s tuple'\x2C TypeError);\nE('ERR_INVALID_URI'\x2C 'URI malformed'\x2C URIError);\nE('ERR_INVALID_URL'\x2C function(input) {\n  this.input = input;\n  // Don't include URL in message.\n  // (See https://github.com/nodejs/node/pull/38614)\n  return 'Invalid URL';\n}\x2C TypeError);\nE('ERR_INVALID_URL_SCHEME'\x2C\n  (expected) => {\n    if (typeof expected === 'string')\n      expected = [expected];\n    assert(expected.length <= 2);\n    const res = expected.length === 2 ?\n      `one of scheme ${expected[0]} or ${expected[1]}` :\n      `of scheme ${expected[0]}`;\n    return `The URL must be ${res}`;\n  }\x2C TypeError);\nE('ERR_IPC_CHANNEL_CLOSED'\x2C 'Channel closed'\x2C Error);\nE('ERR_IPC_DISCONNECTED'\x2C 'IPC channel is already disconnected'\x2C Error);\nE('ERR_IPC_ONE_PIPE'\x2C 'Child process can have only one IPC pipe'\x2C Error);\nE('ERR_IPC_SYNC_FORK'\x2C 'IPC cannot be used with synchronous forks'\x2C Error);\nE('ERR_MANIFEST_ASSERT_INTEGRITY'\x2C\n  (moduleURL\x2C realIntegrities) => {\n    let msg = `The content of "${\n      moduleURL\n    }" does not match the expected integrity.`;\n    if (realIntegrities.size) {\n      const sri = ArrayPrototypeJoin(\n        ArrayFrom(realIntegrities.entries()\x2C\n                  ({ 0: alg\x2C 1: dgs }) => `${alg}-${dgs}`)\x2C\n        ' '\n      );\n      msg += ` Integrities found are: ${sri}`;\n    } else {\n      msg += ' The resource was not found in the policy.';\n    }\n    return msg;\n  }\x2C Error);\nE('ERR_MANIFEST_DEPENDENCY_MISSING'\x2C\n  'Manifest resource %s does not list %s as a dependency specifier for ' +\n  'conditions: %s'\x2C\n  Error);\nE('ERR_MANIFEST_INTEGRITY_MISMATCH'\x2C\n  'Manifest resource %s has multiple entries but integrity lists do not match'\x2C\n  SyntaxError);\nE('ERR_MANIFEST_INVALID_RESOURCE_FIELD'\x2C\n  'Manifest resource %s has invalid property value for %s'\x2C\n  TypeError);\nE('ERR_MANIFEST_TDZ'\x2C 'Manifest initialization has not yet run'\x2C Error);\nE('ERR_MANIFEST_UNKNOWN_ONERROR'\x2C\n  'Manifest specified unknown error behavior "%s".'\x2C\n  SyntaxError);\nE('ERR_METHOD_NOT_IMPLEMENTED'\x2C 'The %s method is not implemented'\x2C Error);\nE('ERR_MISSING_ARGS'\x2C\n  (...args) => {\n    assert(args.length > 0\x2C 'At least one arg needs to be specified');\n    let msg = 'The ';\n    const len = args.length;\n    const wrap = (a) => `"${a}"`;\n    args = ArrayPrototypeMap(\n      args\x2C\n      (a) => (ArrayIsArray(a) ?\n        ArrayPrototypeJoin(ArrayPrototypeMap(a\x2C wrap)\x2C ' or ') :\n        wrap(a))\n    );\n    switch (len) {\n      case 1:\n        msg += `${args[0]} argument`;\n        break;\n      case 2:\n        msg += `${args[0]} and ${args[1]} arguments`;\n        break;\n      default:\n        msg += ArrayPrototypeJoin(ArrayPrototypeSlice(args\x2C 0\x2C len - 1)\x2C '\x2C ');\n        msg += `\x2C and ${args[len - 1]} arguments`;\n        break;\n    }\n    return `${msg} must be specified`;\n  }\x2C TypeError);\nE('ERR_MISSING_OPTION'\x2C '%s is required'\x2C TypeError);\nE('ERR_MODULE_NOT_FOUND'\x2C (path\x2C base\x2C type = 'package') => {\n  return `Cannot find ${type} '${path}' imported from ${base}`;\n}\x2C Error);\nE('ERR_MULTIPLE_CALLBACK'\x2C 'Callback called multiple times'\x2C Error);\nE('ERR_NAPI_CONS_FUNCTION'\x2C 'Constructor must be a function'\x2C TypeError);\nE('ERR_NAPI_INVALID_DATAVIEW_ARGS'\x2C\n  'byte_offset + byte_length should be less than or equal to the size in ' +\n    'bytes of the array passed in'\x2C\n  RangeError);\nE('ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT'\x2C\n  'start offset of %s should be a multiple of %s'\x2C RangeError);\nE('ERR_NAPI_INVALID_TYPEDARRAY_LENGTH'\x2C\n  'Invalid typed array length'\x2C RangeError);\nE('ERR_NO_CRYPTO'\x2C\n  'Node.js is not compiled with OpenSSL crypto support'\x2C Error);\nE('ERR_NO_ICU'\x2C\n  '%s is not supported on Node.js compiled without ICU'\x2C TypeError);\nE('ERR_OPERATION_FAILED'\x2C 'Operation failed: %s'\x2C Error\x2C TypeError);\nE('ERR_OUT_OF_RANGE'\x2C\n  (str\x2C range\x2C input\x2C replaceDefaultBoolean = false) => {\n    assert(range\x2C 'Missing "range" argument');\n    let msg = replaceDefaultBoolean ? str :\n      `The value of "${str}" is out of range.`;\n    let received;\n    if (NumberIsInteger(input) && MathAbs(input) > 2 ** 32) {\n      received = addNumericalSeparator(String(input));\n    } else if (typeof input === 'bigint') {\n      received = String(input);\n      if (input > 2n ** 32n || input < -(2n ** 32n)) {\n        received = addNumericalSeparator(received);\n      }\n      received += 'n';\n    } else {\n      received = lazyInternalUtilInspect().inspect(input);\n    }\n    msg += ` It must be ${range}. Received ${received}`;\n    return msg;\n  }\x2C RangeError);\nE('ERR_PACKAGE_IMPORT_NOT_DEFINED'\x2C (specifier\x2C packagePath\x2C base) => {\n  return `Package import specifier "${specifier}" is not defined${packagePath ?\n    ` in package ${packagePath}package.json` : ''} imported from ${base}`;\n}\x2C TypeError);\nE('ERR_PACKAGE_PATH_NOT_EXPORTED'\x2C (pkgPath\x2C subpath\x2C base = undefined) => {\n  if (subpath === '.')\n    return `No "exports" main defined in ${pkgPath}package.json${base ?\n      ` imported from ${base}` : ''}`;\n  return `Package subpath '${subpath}' is not defined by "exports" in ${\n    pkgPath}package.json${base ? ` imported from ${base}` : ''}`;\n}\x2C Error);\nE('ERR_PERFORMANCE_INVALID_TIMESTAMP'\x2C\n  '%d is not a valid timestamp'\x2C TypeError);\nE('ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS'\x2C '%s'\x2C TypeError);\nE('ERR_REQUIRE_ESM'\x2C\n  function(filename\x2C hasEsmSyntax\x2C parentPath = null\x2C packageJsonPath = null) {\n    hideInternalStackFrames(this);\n    let msg = `require() of ES Module ${filename}${parentPath ? ` from ${\n      parentPath}` : ''} not supported.`;\n    if (!packageJsonPath) {\n      if (StringPrototypeEndsWith(filename\x2C '.mjs'))\n        msg += `\\nInstead change the require of ${filename} to a dynamic ` +\n            'import() which is available in all CommonJS modules.';\n      return msg;\n    }\n    const path = require('path');\n    const basename = path.basename(filename) === path.basename(parentPath) ?\n      filename : path.basename(filename);\n    if (hasEsmSyntax) {\n      msg += `\\nInstead change the require of ${basename} in ${parentPath} to` +\n        ' a dynamic import() which is available in all CommonJS modules.';\n      return msg;\n    }\n    msg += `\\n${basename} is treated as an ES module file as it is a .js ` +\n      'file whose nearest parent package.json contains "type": "module" ' +\n      'which declares all .js files in that package scope as ES modules.' +\n      `\\nInstead rename ${basename} to end in .cjs\x2C change the requiring ` +\n      'code to use dynamic import() which is available in all CommonJS ' +\n      'modules\x2C or change "type": "module" to "type": "commonjs" in ' +\n      `${packageJsonPath} to treat all .js files as CommonJS (using .mjs for ` +\n      'all ES modules instead).\\n';\n    return msg;\n  }\x2C Error);\nE('ERR_SCRIPT_EXECUTION_INTERRUPTED'\x2C\n  'Script execution was interrupted by `SIGINT`'\x2C Error);\nE('ERR_SERVER_ALREADY_LISTEN'\x2C\n  'Listen method has been called more than once without closing.'\x2C Error);\nE('ERR_SERVER_NOT_RUNNING'\x2C 'Server is not running.'\x2C Error);\nE('ERR_SOCKET_ALREADY_BOUND'\x2C 'Socket is already bound'\x2C Error);\nE('ERR_SOCKET_BAD_BUFFER_SIZE'\x2C\n  'Buffer size must be a positive integer'\x2C TypeError);\nE('ERR_SOCKET_BAD_PORT'\x2C (name\x2C port\x2C allowZero = true) => {\n  assert(typeof allowZero === 'boolean'\x2C\n         "The 'allowZero' argument must be of type boolean.");\n  const operator = allowZero ? '>=' : '>';\n  return `${name} should be ${operator} 0 and < 65536. Received ${port}.`;\n}\x2C RangeError);\nE('ERR_SOCKET_BAD_TYPE'\x2C\n  'Bad socket type specified. Valid types are: udp4\x2C udp6'\x2C TypeError);\nE('ERR_SOCKET_BUFFER_SIZE'\x2C\n  'Could not get or set buffer size'\x2C\n  SystemError);\nE('ERR_SOCKET_CLOSED'\x2C 'Socket is closed'\x2C Error);\nE('ERR_SOCKET_DGRAM_IS_CONNECTED'\x2C 'Already connected'\x2C Error);\nE('ERR_SOCKET_DGRAM_NOT_CONNECTED'\x2C 'Not connected'\x2C Error);\nE('ERR_SOCKET_DGRAM_NOT_RUNNING'\x2C 'Not running'\x2C Error);\nE('ERR_SRI_PARSE'\x2C\n  'Subresource Integrity string %j had an unexpected %j at position %d'\x2C\n  SyntaxError);\nE('ERR_STREAM_ALREADY_FINISHED'\x2C\n  'Cannot call %s after a stream was finished'\x2C\n  Error);\nE('ERR_STREAM_CANNOT_PIPE'\x2C 'Cannot pipe\x2C not readable'\x2C Error);\nE('ERR_STREAM_DESTROYED'\x2C 'Cannot call %s after a stream was destroyed'\x2C Error);\nE('ERR_STREAM_NULL_VALUES'\x2C 'May not write null values to stream'\x2C TypeError);\nE('ERR_STREAM_PREMATURE_CLOSE'\x2C 'Premature close'\x2C Error);\nE('ERR_STREAM_PUSH_AFTER_EOF'\x2C 'stream.push() after EOF'\x2C Error);\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT'\x2C\n  'stream.unshift() after end event'\x2C Error);\nE('ERR_STREAM_WRAP'\x2C 'Stream has StringDecoder set or is in objectMode'\x2C Error);\nE('ERR_STREAM_WRITE_AFTER_END'\x2C 'write after end'\x2C Error);\nE('ERR_SYNTHETIC'\x2C 'JavaScript Callstack'\x2C Error);\nE('ERR_SYSTEM_ERROR'\x2C 'A system error occurred'\x2C SystemError);\nE('ERR_TLS_CERT_ALTNAME_INVALID'\x2C function(reason\x2C host\x2C cert) {\n  this.reason = reason;\n  this.host = host;\n  this.cert = cert;\n  return `Hostname/IP does not match certificate's altnames: ${reason}`;\n}\x2C Error);\nE('ERR_TLS_DH_PARAM_SIZE'\x2C 'DH parameter size %s is less than 2048'\x2C Error);\nE('ERR_TLS_HANDSHAKE_TIMEOUT'\x2C 'TLS handshake timeout'\x2C Error);\nE('ERR_TLS_INVALID_CONTEXT'\x2C '%s must be a SecureContext'\x2C TypeError);\nE('ERR_TLS_INVALID_PROTOCOL_VERSION'\x2C\n  '%j is not a valid %s TLS protocol version'\x2C TypeError);\nE('ERR_TLS_INVALID_STATE'\x2C 'TLS socket connection must be securely established'\x2C\n  Error);\nE('ERR_TLS_PROTOCOL_VERSION_CONFLICT'\x2C\n  'TLS protocol version %j conflicts with secureProtocol %j'\x2C TypeError);\nE('ERR_TLS_RENEGOTIATION_DISABLED'\x2C\n  'TLS session renegotiation disabled for this socket'\x2C Error);\n\n// This should probably be a `TypeError`.\nE('ERR_TLS_REQUIRED_SERVER_NAME'\x2C\n  '"servername" is required parameter for Server.addContext'\x2C Error);\nE('ERR_TLS_SESSION_ATTACK'\x2C 'TLS session renegotiation attack detected'\x2C Error);\nE('ERR_TLS_SNI_FROM_SERVER'\x2C\n  'Cannot issue SNI from a TLS server-side socket'\x2C Error);\nE('ERR_TRACE_EVENTS_CATEGORY_REQUIRED'\x2C\n  'At least one category is required'\x2C TypeError);\nE('ERR_TRACE_EVENTS_UNAVAILABLE'\x2C 'Trace events are unavailable'\x2C Error);\n\n// This should probably be a `RangeError`.\nE('ERR_TTY_INIT_FAILED'\x2C 'TTY initialization failed'\x2C SystemError);\nE('ERR_UNAVAILABLE_DURING_EXIT'\x2C 'Cannot call function in process exit ' +\n  'handler'\x2C Error);\nE('ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET'\x2C\n  '`process.setupUncaughtExceptionCapture()` was called while a capture ' +\n    'callback was already active'\x2C\n  Error);\nE('ERR_UNESCAPED_CHARACTERS'\x2C '%s contains unescaped characters'\x2C TypeError);\nE('ERR_UNHANDLED_ERROR'\x2C\n  // Using a default argument here is important so the argument is not counted\n  // towards `Function#length`.\n  (err = undefined) => {\n    const msg = 'Unhandled error.';\n    if (err === undefined) return msg;\n    return `${msg} (${err})`;\n  }\x2C Error);\nE('ERR_UNKNOWN_BUILTIN_MODULE'\x2C 'No such built-in module: %s'\x2C Error);\nE('ERR_UNKNOWN_CREDENTIAL'\x2C '%s identifier does not exist: %s'\x2C Error);\nE('ERR_UNKNOWN_ENCODING'\x2C 'Unknown encoding: %s'\x2C TypeError);\nE('ERR_UNKNOWN_FILE_EXTENSION'\x2C\n  'Unknown file extension "%s" for %s'\x2C\n  TypeError);\nE('ERR_UNKNOWN_MODULE_FORMAT'\x2C 'Unknown module format: %s'\x2C RangeError);\nE('ERR_UNKNOWN_SIGNAL'\x2C 'Unknown signal: %s'\x2C TypeError);\nE('ERR_UNSUPPORTED_DIR_IMPORT'\x2C "Directory import '%s' is not supported " +\n'resolving ES modules imported from %s'\x2C Error);\nE('ERR_UNSUPPORTED_ESM_URL_SCHEME'\x2C (url) => {\n  let msg = 'Only file and data URLs are supported by the default ESM loader';\n  if (isWindows && url.protocol.length === 2) {\n    msg +=\n      '. On Windows\x2C absolute paths must be valid file:// URLs';\n  }\n  msg += `. Received protocol '${url.protocol}'`;\n  return msg;\n}\x2C Error);\n\n// This should probably be a `TypeError`.\nE('ERR_VALID_PERFORMANCE_ENTRY_TYPE'\x2C\n  'At least one valid performance entry type is required'\x2C Error);\nE('ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING'\x2C\n  'A dynamic import callback was not specified.'\x2C TypeError);\nE('ERR_VM_MODULE_ALREADY_LINKED'\x2C 'Module has already been linked'\x2C Error);\nE('ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA'\x2C\n  'Cached data cannot be created for a module which has been evaluated'\x2C Error);\nE('ERR_VM_MODULE_DIFFERENT_CONTEXT'\x2C\n  'Linked modules must use the same context'\x2C Error);\nE('ERR_VM_MODULE_LINKING_ERRORED'\x2C\n  'Linking has already failed for the provided module'\x2C Error);\nE('ERR_VM_MODULE_NOT_MODULE'\x2C\n  'Provided module is not an instance of Module'\x2C Error);\nE('ERR_VM_MODULE_STATUS'\x2C 'Module status %s'\x2C Error);\nE('ERR_WASI_ALREADY_STARTED'\x2C 'WASI instance has already started'\x2C Error);\nE('ERR_WORKER_INIT_FAILED'\x2C 'Worker initialization failure: %s'\x2C Error);\nE('ERR_WORKER_INVALID_EXEC_ARGV'\x2C (errors\x2C msg = 'invalid execArgv flags') =>\n  `Initiated Worker with ${msg}: ${ArrayPrototypeJoin(errors\x2C '\x2C ')}`\x2C\n  Error);\nE('ERR_WORKER_NOT_RUNNING'\x2C 'Worker instance not running'\x2C Error);\nE('ERR_WORKER_OUT_OF_MEMORY'\x2C\n  'Worker terminated due to reaching memory limit: %s'\x2C Error);\nE('ERR_WORKER_PATH'\x2C (filename) =>\n  'The worker script or module filename must be an absolute path or a ' +\n  'relative path starting with \\'./\\' or \\'../\\'.' +\n  (StringPrototypeStartsWith(filename\x2C 'file://') ?\n    ' Wrap file:// URLs with `new URL`.' : ''\n  ) +\n  (StringPrototypeStartsWith(filename\x2C 'data:text/javascript') ?\n    ' Wrap data: URLs with `new URL`.' : ''\n  ) +\n  ` Received "${filename}"`\x2C\n  TypeError);\nE('ERR_WORKER_UNSERIALIZABLE_ERROR'\x2C\n  'Serializing an uncaught exception failed'\x2C Error);\nE('ERR_WORKER_UNSUPPORTED_EXTENSION'\x2C\n  'The worker script extension must be ".js"\x2C ".mjs"\x2C or ".cjs". Received "%s"'\x2C\n  TypeError);\nE('ERR_WORKER_UNSUPPORTED_OPERATION'\x2C\n  '%s is not supported in workers'\x2C TypeError);\nE('ERR_ZLIB_INITIALIZATION_FAILED'\x2C 'Initialization failed'\x2C Error);\n
code-source-info,0x1c78303f29c6,11,9545,10454,C0O9545C3O9575C10O9581C15O9602C20O9606C25O9640C33O9662C37O9685C40O9685C46O9755C51O9759C56O9793C65O9815C69O9844C83O9844C89O9878C96O9901C105O9917C109O9932C121O10059C128O10076C142O10189C147O10199C162O9878C167O10379C174O10379C178O10415C180O10426C184O10437C186O10450,,
tick,0x7efc33635473,105824,0,0x0,3,0x11febe0,0x1c78303f26fd,0xbaa280,0x1c78303d9420,0x1c78303dc07f,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
tick,0x7efc3364164f,105843,0,0x0,3,0x11febe0,0x1c78303f26fd,0xbaa280,0x1c78303d9420,0x1c78303dc07f,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
tick,0x7efc33628939,105846,0,0x0,3,0x11febe0,0x1c78303f26fd,0xbaa280,0x1c78303d9420,0x1c78303dc07f,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
tick,0x7efc337b0839,105850,0,0x0,3,0x11febe0,0x1c78303f26fd,0xbaa280,0x1c78303d9420,0x1c78303dc07f,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
code-creation,LazyCompile,10,105896,0x1c78303f5e9e,64,isErrorStackTraceLimitWritable node:internal/errors:198:40,0x30ec9dba3de8,~
code-source-info,0x1c78303f5e9e,11,5518,5775,C0O5538C7O5569C13O5538C19O5598C21O5628C28O5654C31O5635C35O5661C36O5669C44O5676C51O5735C57O5755C62O5759C63O5773,,
code-creation,LazyCompile,10,106037,0x1c78303f615e,287,getMessage node:internal/errors:410:20,0x30ec9dba43f0,~
code-source-info,0x1c78303f615e,11,11491,12327,C0O11525C5O11534C10O11534C16O11547C22O11573C28O11582C35O11580C41O11613C47O11650C52O11668C57O11683C61O11675C70O11739C81O11783C99O11845C113O11803C117O11650C122O11867C136O11874C141O11904C142O11939C147O11961C152O11940C162O11988C167O11998C172O12034C176O12025C185O12055C196O12099C216O12155C226O12119C230O11998C235O12190C241O12197C246O12208C248O12219C249O12223C254O12223C259O12259C267O12279C271O12304C281O12266C286O12325,,
code-creation,LazyCompile,10,106097,0x1c78303f640e,9, node:internal/errors:1307:30,0x30ec9dba4fa0,~
code-source-info,0x1c78303f640e,11,45679,45824,C0O45691C2O45702C6O45801C8O45822,,
code-creation,LazyCompile,10,106179,0x1c78303f655e,68,captureLargerStackTrace node:internal/errors:458:35,0x30ec9dba44e0,~
code-source-info,0x1c78303f655e,11,12774,13144,C0O12820C3O12820C7O12858C9O12897C14O12925C21O12917C27O12948C32O12972C35O12970C39O12992C44O12992C48O13048C52O13079C59O13103C61O13101C65O13129C67O13140,,
new,MemoryChunk,0x7efc24040000,262144
code-creation,RegExp,3,106494,0x7efc24043060,956,%2F|%2C
code-creation,RegExp,3,106831,0x7efc24043480,600,(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])
tick,0x7efc336c02cf,106912,0,0x0,0,0x1205de0,0x1618433,0x1c78303e165c,0x1c78303e1455,0x15c9ed9,0x1c78303dc307,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
code-creation,LazyCompile,10,107678,0x1c78303f706e,153,builtinStrategy node:internal/modules/esm/translators:276:58,0x27ba8ebfd3d0,~
code-source-info,0x1c78303f706e,110,8277,8629,C6O8277C14O8287C24O8322C29O8287C33O8369C41O8369C47O8416C52O8416C58O8445C66O8450C75O8494C77O8508C84O8514C89O8508C90O8557C100O8588C105O8557C109O8612C114O8612C128O8627,,
code-creation,LazyCompile,10,107762,0x1c78303f7276,62,loadNativeModule node:internal/modules/cjs/helpers:36:26,0x27ba8ebd7ad0,~
code-source-info,0x1c78303f7276,97,1014,1294,C0O1050C5O1063C10O1067C15O1067C21O1084C26O1091C35O1121C43O1121C48O1247C53O1247C57O1277C59O1288C61O1293,,
code-creation,LazyCompile,10,107805,0x1c78303f7a96,10, node:internal/modules/cjs/helpers:29:66,0x27ba8ebd7cf0,~
code-source-info,0x1c78303f7a96,97,810,835,C0O822C2O828C9O834,,
code-creation,LazyCompile,10,107860,0x1c78303f7c1e,129,compileForPublicLoader node:internal/bootstrap/loaders:246:25,0x30ec9db8f6a0,~
code-source-info,0x1c78303f7c1e,9,7543,8215,C0O7562C6O7706C16O7749C33O7712C38O7706C39O7786C44O7786C48O7828C54O8017C61O8048C69O8017C75O8072C80O8090C90O8106C93O8122C98O8106C102O8088C106O8147C111O8147C115O8172C120O8172C124O8203C128O8211,,
tick,0xd115a0,107944,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,108086,0x1c78303f8296,5, node:http:1:1,0x1c78303f80e0,~
script-source,115,node:http,// 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  ArrayPrototypeSlice\x2C\n  ArrayPrototypeSort\x2C\n  ObjectDefineProperty\x2C\n} = primordials;\n\nconst httpAgent = require('_http_agent');\nconst { ClientRequest } = require('_http_client');\nconst { methods } = require('_http_common');\nconst { IncomingMessage } = require('_http_incoming');\nconst {\n  validateHeaderName\x2C\n  validateHeaderValue\x2C\n  OutgoingMessage\n} = require('_http_outgoing');\nconst {\n  _connectionListener\x2C\n  STATUS_CODES\x2C\n  Server\x2C\n  ServerResponse\n} = require('_http_server');\nlet maxHeaderSize;\n\n/**\n * Returns a new instance of `http.Server`.\n * @param {{\n *   IncomingMessage?: IncomingMessage;\n *   ServerResponse?: ServerResponse;\n *   insecureHTTPParser?: boolean;\n *   maxHeaderSize?: number;\n *   }} [opts]\n * @param {Function} [requestListener]\n * @returns {Server}\n */\nfunction createServer(opts\x2C requestListener) {\n  return new Server(opts\x2C requestListener);\n}\n\n/**\n * @typedef {Object} HTTPRequestOptions\n * @property {httpAgent.Agent | boolean} [agent]\n * @property {string} [auth]\n * @property {Function} [createConnection]\n * @property {number} [defaultPort]\n * @property {number} [family]\n * @property {Object} [headers]\n * @property {number} [hints]\n * @property {string} [host]\n * @property {string} [hostname]\n * @property {boolean} [insecureHTTPParser]\n * @property {string} [localAddress]\n * @property {number} [localPort]\n * @property {Function} [lookup]\n * @property {number} [maxHeaderSize]\n * @property {string} [method]\n * @property {string} [path]\n * @property {number} [port]\n * @property {string} [protocol]\n * @property {boolean} [setHost]\n * @property {string} [socketPath]\n * @property {number} [timeout]\n * @property {AbortSignal} [signal]\n */\n\n/**\n * Makes an HTTP request.\n * @param {string | URL} url\n * @param {HTTPRequestOptions} [options]\n * @param {Function} [cb]\n * @returns {ClientRequest}\n */\nfunction request(url\x2C options\x2C cb) {\n  return new ClientRequest(url\x2C options\x2C cb);\n}\n\n/**\n * Makes a `GET` HTTP request.\n * @param {string | URL} url\n * @param {HTTPRequestOptions} [options]\n * @param {Function} [cb]\n * @returns {ClientRequest}\n */\nfunction get(url\x2C options\x2C cb) {\n  const req = request(url\x2C options\x2C cb);\n  req.end();\n  return req;\n}\n\nmodule.exports = {\n  _connectionListener\x2C\n  METHODS: ArrayPrototypeSort(ArrayPrototypeSlice(methods))\x2C\n  STATUS_CODES\x2C\n  Agent: httpAgent.Agent\x2C\n  ClientRequest\x2C\n  IncomingMessage\x2C\n  OutgoingMessage\x2C\n  Server\x2C\n  ServerResponse\x2C\n  createServer\x2C\n  validateHeaderName\x2C\n  validateHeaderValue\x2C\n  get\x2C\n  request\n};\n\nObjectDefineProperty(module.exports\x2C 'maxHeaderSize'\x2C {\n  configurable: true\x2C\n  enumerable: true\x2C\n  get() {\n    if (maxHeaderSize === undefined) {\n      const { getOptionValue } = require('internal/options');\n      maxHeaderSize = getOptionValue('--max-http-header-size');\n    }\n\n    return maxHeaderSize;\n  }\n});\n\nObjectDefineProperty(module.exports\x2C 'globalAgent'\x2C {\n  configurable: true\x2C\n  enumerable: true\x2C\n  get() {\n    return httpAgent.globalAgent;\n  }\x2C\n  set(value) {\n    httpAgent.globalAgent = value;\n  }\n});\n
code-source-info,0x1c78303f8296,115,0,4182,C0O0C4O4182,,
code-creation,Function,10,108400,0x1c78303f87c6,349, node:http:1:1,0x1c78303f8200,~
code-source-info,0x1c78303f87c6,115,0,4182,C0O0C37O1159C42O1182C47O1204C52O1262C58O1262C62O1262C64O1312C70O1312C75O1294C81O1357C87O1357C92O1345C97O1410C103O1410C108O1390C113O1512C119O1512C124O1447C129O1469C134O1492C139O1617C145O1617C150O1549C155O1572C160O1588C166O1598C171O1646C172O1646C174O3354C181O3375C185O3426C191O3407C201O3459C209O3492C219O3501C225O3518C231O3537C237O3556C243O3566C249O3584C255O3600C261O3622C267O3645C273O3652C279O3369C283O3692C298O3764C306O3664C311O4007C326O4077C334O4126C342O3979C348O4181,,
code-creation,Eval,10,109013,0x1c78303f9a3e,5, node:_http_agent:1:1,0x1c78303f9698,~
script-source,116,node:_http_agent,// 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  ArrayPrototypeIncludes\x2C\n  ArrayPrototypeIndexOf\x2C\n  ArrayPrototypePop\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeShift\x2C\n  ArrayPrototypeSome\x2C\n  ArrayPrototypeSplice\x2C\n  FunctionPrototypeCall\x2C\n  NumberIsNaN\x2C\n  ObjectCreate\x2C\n  ObjectKeys\x2C\n  ObjectSetPrototypeOf\x2C\n  ObjectValues\x2C\n  StringPrototypeIndexOf\x2C\n  StringPrototypeSplit\x2C\n  StringPrototypeStartsWith\x2C\n  StringPrototypeSubstr\x2C\n  Symbol\x2C\n} = primordials;\n\nconst net = require('net');\nconst EventEmitter = require('events');\nlet debug = require('internal/util/debuglog').debuglog('http'\x2C (fn) => {\n  debug = fn;\n});\nconst { AsyncResource } = require('async_hooks');\nconst { async_id_symbol } = require('internal/async_hooks').symbols;\nconst {\n  codes: {\n    ERR_OUT_OF_RANGE\x2C\n  }\x2C\n} = require('internal/errors');\nconst { once } = require('internal/util');\nconst {\n  validateNumber\x2C\n  validateOneOf\x2C\n  validateString\x2C\n} = require('internal/validators');\n\nconst kOnKeylog = Symbol('onkeylog');\nconst kRequestOptions = Symbol('requestOptions');\nconst kRequestAsyncResource = Symbol('requestAsyncResource');\n// New Agent code.\n\n// The largest departure from the previous implementation is that\n// an Agent instance holds connections for a variable number of host:ports.\n// Surprisingly\x2C this is still API compatible as far as third parties are\n// concerned. The only code that really notices the difference is the\n// request object.\n\n// Another departure is that all code related to HTTP parsing is in\n// ClientRequest.onSocket(). The Agent is now *strictly*\n// concerned with managing a connection pool.\n\nclass ReusedHandle {\n  constructor(type\x2C handle) {\n    this.type = type;\n    this.handle = handle;\n  }\n}\n\nfunction freeSocketErrorListener(err) {\n  const socket = this;\n  debug('SOCKET ERROR on FREE socket:'\x2C err.message\x2C err.stack);\n  socket.destroy();\n  socket.emit('agentRemove');\n}\n\nfunction Agent(options) {\n  if (!(this instanceof Agent))\n    return new Agent(options);\n\n  FunctionPrototypeCall(EventEmitter\x2C this);\n\n  this.defaultPort = 80;\n  this.protocol = 'http:';\n\n  this.options = { __proto__: null\x2C ...options };\n\n  // Don't confuse net and make it think that we're connecting to a pipe\n  this.options.path = null;\n  this.requests = ObjectCreate(null);\n  this.sockets = ObjectCreate(null);\n  this.freeSockets = ObjectCreate(null);\n  this.keepAliveMsecs = this.options.keepAliveMsecs || 1000;\n  this.keepAlive = this.options.keepAlive || false;\n  this.maxSockets = this.options.maxSockets || Agent.defaultMaxSockets;\n  this.maxFreeSockets = this.options.maxFreeSockets || 256;\n  this.scheduling = this.options.scheduling || 'lifo';\n  this.maxTotalSockets = this.options.maxTotalSockets;\n  this.totalSocketCount = 0;\n\n  validateOneOf(this.scheduling\x2C 'scheduling'\x2C ['fifo'\x2C 'lifo']);\n\n  if (this.maxTotalSockets !== undefined) {\n    validateNumber(this.maxTotalSockets\x2C 'maxTotalSockets');\n    if (this.maxTotalSockets <= 0 || NumberIsNaN(this.maxTotalSockets))\n      throw new ERR_OUT_OF_RANGE('maxTotalSockets'\x2C '> 0'\x2C\n                                 this.maxTotalSockets);\n  } else {\n    this.maxTotalSockets = Infinity;\n  }\n\n  this.on('free'\x2C (socket\x2C options) => {\n    const name = this.getName(options);\n    debug('agent.on(free)'\x2C name);\n\n    // TODO(ronag): socket.destroy(err) might have been called\n    // before coming here and have an 'error' scheduled. In the\n    // case of socket.destroy() below this 'error' has no handler\n    // and could cause unhandled exception.\n\n    if (!socket.writable) {\n      socket.destroy();\n      return;\n    }\n\n    const requests = this.requests[name];\n    if (requests && requests.length) {\n      const req = ArrayPrototypeShift(requests);\n      const reqAsyncRes = req[kRequestAsyncResource];\n      if (reqAsyncRes) {\n        // Run request within the original async context.\n        reqAsyncRes.runInAsyncScope(() => {\n          asyncResetHandle(socket);\n          setRequestSocket(this\x2C req\x2C socket);\n        });\n        req[kRequestAsyncResource] = null;\n      } else {\n        setRequestSocket(this\x2C req\x2C socket);\n      }\n      if (requests.length === 0) {\n        delete this.requests[name];\n      }\n      return;\n    }\n\n    // If there are no pending requests\x2C then put it in\n    // the freeSockets pool\x2C but only if we're allowed to do so.\n    const req = socket._httpMessage;\n    if (!req || !req.shouldKeepAlive || !this.keepAlive) {\n      socket.destroy();\n      return;\n    }\n\n    const freeSockets = this.freeSockets[name] || [];\n    const freeLen = freeSockets.length;\n    let count = freeLen;\n    if (this.sockets[name])\n      count += this.sockets[name].length;\n\n    if (this.totalSocketCount > this.maxTotalSockets ||\n        count > this.maxSockets ||\n        freeLen >= this.maxFreeSockets ||\n        !this.keepSocketAlive(socket)) {\n      socket.destroy();\n      return;\n    }\n\n    this.freeSockets[name] = freeSockets;\n    socket[async_id_symbol] = -1;\n    socket._httpMessage = null;\n    this.removeSocket(socket\x2C options);\n\n    socket.once('error'\x2C freeSocketErrorListener);\n    ArrayPrototypePush(freeSockets\x2C socket);\n  });\n\n  // Don't emit keylog events unless there is a listener for them.\n  this.on('newListener'\x2C maybeEnableKeylog);\n}\nObjectSetPrototypeOf(Agent.prototype\x2C EventEmitter.prototype);\nObjectSetPrototypeOf(Agent\x2C EventEmitter);\n\nfunction maybeEnableKeylog(eventName) {\n  if (eventName === 'keylog') {\n    this.removeListener('newListener'\x2C maybeEnableKeylog);\n    // Future sockets will listen on keylog at creation.\n    const agent = this;\n    this[kOnKeylog] = function onkeylog(keylog) {\n      agent.emit('keylog'\x2C keylog\x2C this);\n    };\n    // Existing sockets will start listening on keylog now.\n    const sockets = ObjectValues(this.sockets);\n    for (let i = 0; i < sockets.length; i++) {\n      sockets[i].on('keylog'\x2C this[kOnKeylog]);\n    }\n  }\n}\n\nAgent.defaultMaxSockets = Infinity;\n\nAgent.prototype.createConnection = net.createConnection;\n\n// Get the key for a given set of request options\nAgent.prototype.getName = function getName(options) {\n  let name = options.host || 'localhost';\n\n  name += ':';\n  if (options.port)\n    name += options.port;\n\n  name += ':';\n  if (options.localAddress)\n    name += options.localAddress;\n\n  // Pacify parallel/test-http-agent-getname by only appending\n  // the ':' when options.family is set.\n  if (options.family === 4 || options.family === 6)\n    name += `:${options.family}`;\n\n  if (options.socketPath)\n    name += `:${options.socketPath}`;\n\n  return name;\n};\n\nAgent.prototype.addRequest = function addRequest(req\x2C options\x2C port/* legacy */\x2C\n                                                 localAddress/* legacy */) {\n  // Legacy API: addRequest(req\x2C host\x2C port\x2C localAddress)\n  if (typeof options === 'string') {\n    options = {\n      __proto__: null\x2C\n      host: options\x2C\n      port\x2C\n      localAddress\n    };\n  }\n\n  options = { __proto__: null\x2C ...options\x2C ...this.options };\n  if (options.socketPath)\n    options.path = options.socketPath;\n\n  if (!options.servername && options.servername !== '')\n    options.servername = calculateServerName(options\x2C req);\n\n  const name = this.getName(options);\n  if (!this.sockets[name]) {\n    this.sockets[name] = [];\n  }\n\n  const freeSockets = this.freeSockets[name];\n  let socket;\n  if (freeSockets) {\n    while (freeSockets.length && freeSockets[0].destroyed) {\n      ArrayPrototypeShift(freeSockets);\n    }\n    socket = this.scheduling === 'fifo' ?\n      ArrayPrototypeShift(freeSockets) :\n      ArrayPrototypePop(freeSockets);\n    if (!freeSockets.length)\n      delete this.freeSockets[name];\n  }\n\n  const freeLen = freeSockets ? freeSockets.length : 0;\n  const sockLen = freeLen + this.sockets[name].length;\n\n  if (socket) {\n    asyncResetHandle(socket);\n    this.reuseSocket(socket\x2C req);\n    setRequestSocket(this\x2C req\x2C socket);\n    ArrayPrototypePush(this.sockets[name]\x2C socket);\n    this.totalSocketCount++;\n  } else if (sockLen < this.maxSockets &&\n             this.totalSocketCount < this.maxTotalSockets) {\n    debug('call onSocket'\x2C sockLen\x2C freeLen);\n    // If we are under maxSockets create a new one.\n    this.createSocket(req\x2C options\x2C (err\x2C socket) => {\n      if (err)\n        req.onSocket(socket\x2C err);\n      else\n        setRequestSocket(this\x2C req\x2C socket);\n    });\n  } else {\n    debug('wait for socket');\n    // We are over limit so we'll add it to the queue.\n    if (!this.requests[name]) {\n      this.requests[name] = [];\n    }\n\n    // Used to create sockets for pending requests from different origin\n    req[kRequestOptions] = options;\n    // Used to capture the original async context.\n    req[kRequestAsyncResource] = new AsyncResource('QueuedRequest');\n\n    ArrayPrototypePush(this.requests[name]\x2C req);\n  }\n};\n\nAgent.prototype.createSocket = function createSocket(req\x2C options\x2C cb) {\n  options = { __proto__: null\x2C ...options\x2C ...this.options };\n  if (options.socketPath)\n    options.path = options.socketPath;\n\n  if (!options.servername && options.servername !== '')\n    options.servername = calculateServerName(options\x2C req);\n\n  const name = this.getName(options);\n  options._agentKey = name;\n\n  debug('createConnection'\x2C name\x2C options);\n  options.encoding = null;\n\n  const oncreate = once((err\x2C s) => {\n    if (err)\n      return cb(err);\n    if (!this.sockets[name]) {\n      this.sockets[name] = [];\n    }\n    ArrayPrototypePush(this.sockets[name]\x2C s);\n    this.totalSocketCount++;\n    debug('sockets'\x2C name\x2C this.sockets[name].length\x2C this.totalSocketCount);\n    installListeners(this\x2C s\x2C options);\n    cb(null\x2C s);\n  });\n\n  const newSocket = this.createConnection(options\x2C oncreate);\n  if (newSocket)\n    oncreate(null\x2C newSocket);\n};\n\nfunction calculateServerName(options\x2C req) {\n  let servername = options.host;\n  const hostHeader = req.getHeader('host');\n  if (hostHeader) {\n    validateString(hostHeader\x2C 'options.headers.host');\n\n    // abc => abc\n    // abc:123 => abc\n    // [::1] => ::1\n    // [::1]:123 => ::1\n    if (StringPrototypeStartsWith(hostHeader\x2C '[')) {\n      const index = StringPrototypeIndexOf(hostHeader\x2C ']');\n      if (index === -1) {\n        // Leading '['\x2C but no ']'. Need to do something...\n        servername = hostHeader;\n      } else {\n        servername = StringPrototypeSubstr(hostHeader\x2C 1\x2C index - 1);\n      }\n    } else {\n      servername = StringPrototypeSplit(hostHeader\x2C ':'\x2C 1)[0];\n    }\n  }\n  // Don't implicitly set invalid (IP) servernames.\n  if (net.isIP(servername))\n    servername = '';\n  return servername;\n}\n\nfunction installListeners(agent\x2C s\x2C options) {\n  function onFree() {\n    debug('CLIENT socket onFree');\n    agent.emit('free'\x2C s\x2C options);\n  }\n  s.on('free'\x2C onFree);\n\n  function onClose(err) {\n    debug('CLIENT socket onClose');\n    // This is the only place where sockets get removed from the Agent.\n    // If you want to remove a socket from the pool\x2C just close it.\n    // All socket errors end in a close event anyway.\n    agent.removeSocket(s\x2C options);\n  }\n  s.on('close'\x2C onClose);\n\n  function onTimeout() {\n    debug('CLIENT socket onTimeout');\n\n    // Destroy if in free list.\n    // TODO(ronag): Always destroy\x2C even if not in free list.\n    const sockets = agent.freeSockets;\n    if (ArrayPrototypeSome(ObjectKeys(sockets)\x2C (name) =>\n      ArrayPrototypeIncludes(sockets[name]\x2C s)\n    )) {\n      return s.destroy();\n    }\n  }\n  s.on('timeout'\x2C onTimeout);\n\n  function onRemove() {\n    // We need this function for cases like HTTP 'upgrade'\n    // (defined by WebSockets) where we need to remove a socket from the\n    // pool because it'll be locked up indefinitely\n    debug('CLIENT socket onRemove');\n    agent.removeSocket(s\x2C options);\n    s.removeListener('close'\x2C onClose);\n    s.removeListener('free'\x2C onFree);\n    s.removeListener('timeout'\x2C onTimeout);\n    s.removeListener('agentRemove'\x2C onRemove);\n  }\n  s.on('agentRemove'\x2C onRemove);\n\n  if (agent[kOnKeylog]) {\n    s.on('keylog'\x2C agent[kOnKeylog]);\n  }\n}\n\nAgent.prototype.removeSocket = function removeSocket(s\x2C options) {\n  const name = this.getName(options);\n  debug('removeSocket'\x2C name\x2C 'writable:'\x2C s.writable);\n  const sets = [this.sockets];\n\n  // If the socket was destroyed\x2C remove it from the free buffers too.\n  if (!s.writable)\n    ArrayPrototypePush(sets\x2C this.freeSockets);\n\n  for (let sk = 0; sk < sets.length; sk++) {\n    const sockets = sets[sk];\n\n    if (sockets[name]) {\n      const index = ArrayPrototypeIndexOf(sockets[name]\x2C s);\n      if (index !== -1) {\n        ArrayPrototypeSplice(sockets[name]\x2C index\x2C 1);\n        // Don't leak\n        if (sockets[name].length === 0)\n          delete sockets[name];\n        this.totalSocketCount--;\n      }\n    }\n  }\n\n  let req;\n  if (this.requests[name] && this.requests[name].length) {\n    debug('removeSocket\x2C have a request\x2C make a socket');\n    req = this.requests[name][0];\n  } else {\n    // TODO(rickyes): this logic will not be FIFO across origins.\n    // There might be older requests in a different origin\x2C but\n    // if the origin which releases the socket has pending requests\n    // that will be prioritized.\n    const keys = ObjectKeys(this.requests);\n    for (let i = 0; i < keys.length; i++) {\n      const prop = keys[i];\n      // Check whether this specific origin is already at maxSockets\n      if (this.sockets[prop] && this.sockets[prop].length) break;\n      debug('removeSocket\x2C have a request with different origin\x2C' +\n        ' make a socket');\n      req = this.requests[prop][0];\n      options = req[kRequestOptions];\n      break;\n    }\n  }\n\n  if (req && options) {\n    req[kRequestOptions] = undefined;\n    // If we have pending requests and a socket gets closed make a new one\n    this.createSocket(req\x2C options\x2C (err\x2C socket) => {\n      if (err)\n        req.onSocket(socket\x2C err);\n      else\n        socket.emit('free');\n    });\n  }\n\n};\n\nAgent.prototype.keepSocketAlive = function keepSocketAlive(socket) {\n  socket.setKeepAlive(true\x2C this.keepAliveMsecs);\n  socket.unref();\n\n  const agentTimeout = this.options.timeout || 0;\n  if (socket.timeout !== agentTimeout) {\n    socket.setTimeout(agentTimeout);\n  }\n\n  return true;\n};\n\nAgent.prototype.reuseSocket = function reuseSocket(socket\x2C req) {\n  debug('have free socket');\n  socket.removeListener('error'\x2C freeSocketErrorListener);\n  req.reusedSocket = true;\n  socket.ref();\n};\n\nAgent.prototype.destroy = function destroy() {\n  const sets = [this.freeSockets\x2C this.sockets];\n  for (let s = 0; s < sets.length; s++) {\n    const set = sets[s];\n    const keys = ObjectKeys(set);\n    for (let v = 0; v < keys.length; v++) {\n      const setName = set[keys[v]];\n      for (let n = 0; n < setName.length; n++) {\n        setName[n].destroy();\n      }\n    }\n  }\n};\n\nfunction setRequestSocket(agent\x2C req\x2C socket) {\n  req.onSocket(socket);\n  const agentTimeout = agent.options.timeout || 0;\n  if (req.timeout === undefined || req.timeout === agentTimeout) {\n    return;\n  }\n  socket.setTimeout(req.timeout);\n}\n\nfunction asyncResetHandle(socket) {\n  // Guard against an uninitialized or user supplied Socket.\n  const handle = socket._handle;\n  if (handle && typeof handle.asyncReset === 'function') {\n    // Assign the handle a new asyncId and run any destroy()/init() hooks.\n    handle.asyncReset(new ReusedHandle(handle.getProviderType()\x2C handle));\n    socket[async_id_symbol] = handle.getAsyncId();\n  }\n}\n\nmodule.exports = {\n  Agent\x2C\n  globalAgent: new Agent()\n};\n
code-source-info,0x1c78303f9a3e,116,0,16460,C0O0C4O16460,,
code-creation,Function,10,110184,0x1c78303fa3de,636, node:_http_agent:1:1,0x1c78303f99a8,~
code-source-info,0x1c78303fa3de,116,0,16460,C0O0C137O1159C143O1185C149O1210C155O1231C161O1253C167O1276C173O1298C179O1322C185O1347C191O1362C197O1378C203O1392C208O1416C214O1432C220O1458C226O1482C232O1511C238O1536C243O1574C246O1574C250O1574C252O1611C255O1611C259O1611C261O1642C264O1642C269O1675C282O1676C288O1642C290O1747C293O1747C298O1729C304O1799C307O1799C312O1830C317O1779C323O1890C326O1890C331O1890C336O1863C342O1935C345O1935C350O1926C356O2026C359O2026C364O1971C370O1989C376O2006C382O2077C385O2077C389O2077C391O2121C394O2121C398O2121C400O2177C403O2177C407O2177C430O2707C432O6330C435O6357C443O6381C448O6330C453O6393C459O6393C464O6964C467O6990C470O6988C474O7001C477O7007C485O7040C489O7034C493O7109C496O7115C505O7133C509O7621C512O7627C521O7648C525O9844C528O9850C537O9873C541O13025C544O13031C553O13054C557O14893C560O14899C569O14925C573O15183C576O15189C585O15211C589O15384C592O15390C601O15408C605O16402C612O16423C619O16445C630O16417C635O16459,,
tick,0xe80f36,110244,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303f8800,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x7efc33635410,110256,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303f8800,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x11523f3,111172,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303fa4d4,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f8800,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
new,MemoryChunk,0x3f8cd5540000,262144
code-creation,Eval,10,111837,0x1c78303fd526,5, node:net:1:1,0x1c78303fcd38,~
script-source,117,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\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  const self = handle[owner_symbol];\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,0x1c78303fd526,117,0,47197,C0O0C4O47197,,
tick,0xfb2e21,115205,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303fa4d4,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f8800,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x7efc3363536d,115230,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303fa4d4,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f8800,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Function,10,115235,0x3f8cd5541926,2513, node:net:1:1,0x1c78303fd490,~
code-source-info,0x3f8cd5541926,117,0,47197,C0O0C411O1159C417O1175C423O1200C429O1211C435O1220C441O1230C447O1245C453O1263C459O1287C464O1311C469O1358C475O1358C479O1358C481O1392C487O1392C491O1392C493O1423C499O1423C504O1456C518O1457C524O1423C526O1581C532O1581C537O1511C543O1519C548O1529C553O1539C559O1563C565O1621C571O1621C575O1621C577O1705C580O1705C585O1659C591O1676C597O1689C603O1748C609O1748C614O1737C620O1795C623O1795C628O1775C634O1845C637O1845C642O1828C648O1940C651O1940C656O1887C662O1894C668O1923C674O2035C677O2035C682O1979C688O1987C694O2017C700O2166C706O2166C711O2075C717O2089C728O2130C734O2147C740O2364C746O2364C751O2209C757O2226C763O2242C769O2258C774O2278C780O2289C785O2305C790O2325C796O2336C802O2349C808O2744C814O2744C819O2744C824O2428C830O2460C836O2486C842O2513C848O2538C854O2566C860O2597C866O2625C872O2648C878O2673C884O2691C890O2716C896O2797C902O2797C907O2780C913O2952C919O2952C924O2839C930O2862C936O2882C942O2899C948O2917C954O2933C960O3012C963O3012C967O3012C969O3110C975O3110C980O3052C986O3084C992O3190C993O3190C995O3203C996O3203C998O3212C999O3212C1001O3227C1002O3227C1004O3268C1010O3268C1015O3251C1021O3308C1027O3308C1032O3295C1038O3363C1040O3363C1042O3400C1044O3400C1046O3425C1049O3433C1056O3442C1059O3425C1061O3469C1065O3469C1067O6921C1070O6921C1074O6921C1076O6965C1079O6965C1083O6965C1085O7010C1088O7010C1092O7010C1094O10628C1097O10656C1105O10674C1110O10681C1115O10628C1120O10693C1126O10729C1131O10693C1136O10769C1139O10776C1148O10798C1152O11024C1155O11031C1164O11048C1168O12594C1171O12601C1178O12622C1182O12644C1185O12651C1194O12672C1198O13182C1201O13189C1210O13210C1214O13665C1217O13672C1226O13695C1230O13948C1233O13955C1242O13973C1246O14023C1252O14051C1266O14086C1274O14023C1279O14136C1285O14164C1299O14190C1307O14136C1312O14275C1318O14303C1332O14337C1340O14275C1345O14659C1351O14687C1365O14721C1373O14659C1378O14807C1384O14835C1389O14846C1395O14869C1406O14807C1411O15234C1414O15241C1423O15257C1427O15492C1430O15499C1439O15513C1443O15706C1446O15713C1455O15729C1459O16069C1462O16076C1471O16093C1475O16283C1478O16290C1487O16305C1491O16642C1494O16649C1503O16671C1507O16824C1510O16831C1519O16850C1523O17809C1526O17816C1535O17839C1539O18300C1547O18300C1552O18420C1560O18420C1565O18519C1573O18519C1578O18615C1586O18615C1596O18706C1599O18713C1608O18736C1616O19018C1624O19018C1634O19116C1642O19116C1652O19205C1655O19212C1660O19222C1664O19240C1672O19292C1675O19299C1684O19323C1692O20090C1695O20097C1704O20115C1712O20189C1715O20196C1724O20213C1732O20457C1740O20457C1750O20597C1758O20597C1768O24069C1771O24076C1780O24094C1788O28495C1791O28502C1800O28516C1808O28709C1811O28716C1820O28732C1828O31467C1831O31495C1843O31519C1852O31467C1862O31531C1868O31531C1878O35517C1881O35524C1892O35543C1900O36991C1903O36998C1916O37015C1924O40972C1930O41000C1951O41033C1963O40972C1973O41124C1976O41131C1989O41149C1997O42219C2000O42226C2013O42251C2021O43010C2024O43017C2037O43033C2045O43905C2048O43912C2061O43942C2069O44420C2072O44427C2084O44450C2097O44474C2105O44792C2111O44817C2132O44841C2144O44881C2156O44792C2166O44928C2172O44956C2189O44982C2201O45017C2213O44928C2223O45059C2226O45066C2239O45089C2247O45335C2250O45342C2263O45356C2271O45459C2274O45466C2287O45482C2295O45590C2297O45645C2298O45645C2300O45652C2311O45675C2312O45675C2314O45699C2323O46407C2328O46679C2338O46721C2348O46759C2358O46776C2368O47035C2378O47064C2388O47075C2398O47097C2408O47113C2418O47131C2428O47141C2438O47151C2448O47169C2503O46694C2512O47196,,
tick,0x7efc33635314,115369,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303fa4d4,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f8800,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x10c34c6,115469,1,0xb515a0,6,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303fa4d4,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f8800,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,115920,0x3f8cd554706e,5, node:internal/net:1:1,0x3f8cd5546e98,~
script-source,118,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,0x3f8cd554706e,118,0,1749,C0O0C4O1749,,
code-creation,Function,10,116076,0x3f8cd554746e,617, node:internal/net:1:1,0x3f8cd5546fd8,~
code-source-info,0x3f8cd554746e,118,0,1749,C0O0C45O25C50O35C56O58C61O99C64O99C69O116C73O99C75O149C78O149C83O133C89O187C92O187C96O187C98O246C101O316C106O320C119O335C124O360C129O375C142O360C147O360C149O417C152O457C160O483C173O499C183O473C192O521C205O537C218O547C228O511C237O569C250O586C263O597C273O559C282O625C295O643C308O658C321O669C331O615C340O697C353O715C366O730C379O741C389O687C398O769C411O787C424O802C437O813C447O759C456O841C469O859C482O874C495O885C505O831C514O919C527O934C540O947C550O903C556O965C562O457C567O457C569O1633C576O1654C582O1662C588O1672C594O1682C601O1721C611O1648C616O1748,,
tick,0x116a2c1,116562,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x3f8cd5541cf5,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303fa4d4,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f8800,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,116588,0x3f8cd554a666,5, node:internal/dtrace:1:1,0x3f8cd554a510,~
script-source,119,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,0x3f8cd554a666,119,0,568,C0O0C4O568,,
code-creation,Function,10,116657,0x3f8cd554ab4e,140, node:internal/dtrace:1:1,0x3f8cd554a5d0,~
code-source-info,0x3f8cd554ab4e,119,0,568,C0O30C3O30C8O322C17O334C25O68C36O109C47O151C58O192C69O234C80O277C91O368C98O389C104O419C110O450C116O480C122O511C128O543C134O383C139O567,,
code-creation,LazyCompile,10,116962,0x3f8cd554b486,34,protoGetter node:net:703:21,0x1c78303fd968,~
code-source-info,0x3f8cd554b486,117,18158,18298,C0O18179C8O18207C13O18218C20O18282C27O18179C33O18297,,
code-creation,LazyCompile,10,117295,0x3f8cd554f8be,505,Agent node:_http_agent:93:15,0x1c78303f9ac0,~
code-source-info,0x3f8cd554f8be,116,3008,6329,C0O3008C9O3022C16O3033C21O3056C28O3063C33O3082C34O3086C45O3108C51O3086C56O3132C61O3149C65O3157C70O3171C74O3185C88O3222C94O3198C98O3309C101O3314C107O3327C111O3337C118O3353C123O3353C127O3351C131O3375C138O3390C143O3390C147O3388C151O3412C158O3431C163O3431C167O3429C171O3453C177O3480C182O3488C192O3473C196O3514C202O3536C207O3544C214O3529C218O3566C224O3589C229O3597C240O3617C244O3582C248O3638C254O3665C259O3673C269O3658C273O3698C279O3721C284O3729C292O3714C296O3753C302O3781C307O3789C311O3774C315O3808C319O3830C323O3838C333O3857C346O3838C351O3905C354O3914C360O3951C370O3971C378O3951C383O4012C386O4021C392O4037C401O4045C407O4062C412O4045C418O4086C434O4177C441O4092C446O4086C449O4210C452O4233C455O4231C459O4250C462O4255C475O4255C481O6285C484O6290C497O6290C504O6328,,
code-creation,LazyCompile,10,117444,0x3f8cd5550eb6,75, node:internal/validators:127:39,0x73467c99e48,~
code-source-info,0x3f8cd5550eb6,17,3681,4014,C0O3709C5O3714C12O3774C19O3800C22O3818C27O3800C36O3774C42O3921C47O3940C51O3955C67O3961C72O3955C74O4013,,
tick,0x1173d5d,117829,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,118447,0x3f8cd5551e4e,5, node:_http_client:1:1,0x3f8cd5551888,~
script-source,120,node:_http_client,// 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  Boolean\x2C\n  Error\x2C\n  FunctionPrototypeCall\x2C\n  NumberIsFinite\x2C\n  ObjectAssign\x2C\n  ObjectKeys\x2C\n  ObjectSetPrototypeOf\x2C\n  ReflectApply\x2C\n  RegExpPrototypeTest\x2C\n  String\x2C\n  StringPrototypeCharCodeAt\x2C\n  StringPrototypeIncludes\x2C\n  StringPrototypeIndexOf\x2C\n  StringPrototypeToUpperCase\x2C\n  Symbol\x2C\n  TypedArrayPrototypeSlice\x2C\n} = primordials;\n\nconst net = require('net');\nconst assert = require('internal/assert');\nconst { once } = require('internal/util');\nconst {\n  _checkIsHttpToken: checkIsHttpToken\x2C\n  freeParser\x2C\n  parsers\x2C\n  HTTPParser\x2C\n  isLenient\x2C\n  prepareError\x2C\n} = require('_http_common');\nconst { OutgoingMessage } = require('_http_outgoing');\nconst Agent = require('_http_agent');\nconst { Buffer } = require('buffer');\nconst { defaultTriggerAsyncIdScope } = require('internal/async_hooks');\nconst { URL\x2C urlToHttpOptions\x2C searchParamsSymbol } = require('internal/url');\nconst { kOutHeaders\x2C kNeedDrain } = require('internal/http');\nconst { connResetException\x2C codes } = require('internal/errors');\nconst {\n  ERR_HTTP_HEADERS_SENT\x2C\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_INVALID_HTTP_TOKEN\x2C\n  ERR_INVALID_PROTOCOL\x2C\n  ERR_UNESCAPED_CHARACTERS\n} = codes;\nconst {\n  validateInteger\x2C\n} = require('internal/validators');\nconst { getTimerDuration } = require('internal/timers');\nconst {\n  DTRACE_HTTP_CLIENT_REQUEST\x2C\n  DTRACE_HTTP_CLIENT_RESPONSE\n} = require('internal/dtrace');\n\nconst { addAbortSignal\x2C finished } = require('stream');\n\nlet debug = require('internal/util/debuglog').debuglog('http'\x2C (fn) => {\n  debug = fn;\n});\n\nconst INVALID_PATH_REGEX = /[^\\u0021-\\u00ff]/;\nconst kError = Symbol('kError');\n\nconst kLenientAll = HTTPParser.kLenientAll | 0;\nconst kLenientNone = HTTPParser.kLenientNone | 0;\n\nfunction validateHost(host\x2C name) {\n  if (host !== null && host !== undefined && typeof host !== 'string') {\n    throw new ERR_INVALID_ARG_TYPE(`options.${name}`\x2C\n                                   ['string'\x2C 'undefined'\x2C 'null']\x2C\n                                   host);\n  }\n  return host;\n}\n\nclass HTTPClientAsyncResource {\n  constructor(type\x2C req) {\n    this.type = type;\n    this.req = req;\n  }\n}\n\nfunction ClientRequest(input\x2C options\x2C cb) {\n  FunctionPrototypeCall(OutgoingMessage\x2C this);\n\n  if (typeof input === 'string') {\n    const urlStr = input;\n    input = urlToHttpOptions(new URL(urlStr));\n  } else if (input && input[searchParamsSymbol] &&\n             input[searchParamsSymbol][searchParamsSymbol]) {\n    // url.URL instance\n    input = urlToHttpOptions(input);\n  } else {\n    cb = options;\n    options = input;\n    input = null;\n  }\n\n  if (typeof options === 'function') {\n    cb = options;\n    options = input || {};\n  } else {\n    options = ObjectAssign(input || {}\x2C options);\n  }\n\n  let agent = options.agent;\n  const defaultAgent = options._defaultAgent || Agent.globalAgent;\n  if (agent === false) {\n    agent = new defaultAgent.constructor();\n  } else if (agent === null || agent === undefined) {\n    if (typeof options.createConnection !== 'function') {\n      agent = defaultAgent;\n    }\n    // Explicitly pass through this statement as agent will not be used\n    // when createConnection is provided.\n  } else if (typeof agent.addRequest !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE('options.agent'\x2C\n                                   ['Agent-like Object'\x2C 'undefined'\x2C 'false']\x2C\n                                   agent);\n  }\n  this.agent = agent;\n\n  const protocol = options.protocol || defaultAgent.protocol;\n  let expectedProtocol = defaultAgent.protocol;\n  if (this.agent && this.agent.protocol)\n    expectedProtocol = this.agent.protocol;\n\n  if (options.path) {\n    const path = String(options.path);\n    if (RegExpPrototypeTest(INVALID_PATH_REGEX\x2C path))\n      throw new ERR_UNESCAPED_CHARACTERS('Request path');\n  }\n\n  if (protocol !== expectedProtocol) {\n    throw new ERR_INVALID_PROTOCOL(protocol\x2C expectedProtocol);\n  }\n\n  const defaultPort = options.defaultPort ||\n                    (this.agent && this.agent.defaultPort);\n\n  const port = options.port = options.port || defaultPort || 80;\n  const host = options.host = validateHost(options.hostname\x2C 'hostname') ||\n                            validateHost(options.host\x2C 'host') || 'localhost';\n\n  const setHost = (options.setHost === undefined || Boolean(options.setHost));\n\n  this.socketPath = options.socketPath;\n\n  if (options.timeout !== undefined)\n    this.timeout = getTimerDuration(options.timeout\x2C 'timeout');\n\n  const signal = options.signal;\n  if (signal) {\n    addAbortSignal(signal\x2C this);\n  }\n  let method = options.method;\n  const methodIsString = (typeof method === 'string');\n  if (method !== null && method !== undefined && !methodIsString) {\n    throw new ERR_INVALID_ARG_TYPE('options.method'\x2C 'string'\x2C method);\n  }\n\n  if (methodIsString && method) {\n    if (!checkIsHttpToken(method)) {\n      throw new ERR_INVALID_HTTP_TOKEN('Method'\x2C method);\n    }\n    method = this.method = StringPrototypeToUpperCase(method);\n  } else {\n    method = this.method = 'GET';\n  }\n\n  const maxHeaderSize = options.maxHeaderSize;\n  if (maxHeaderSize !== undefined)\n    validateInteger(maxHeaderSize\x2C 'maxHeaderSize'\x2C 0);\n  this.maxHeaderSize = maxHeaderSize;\n\n  const insecureHTTPParser = options.insecureHTTPParser;\n  if (insecureHTTPParser !== undefined &&\n      typeof insecureHTTPParser !== 'boolean') {\n    throw new ERR_INVALID_ARG_TYPE(\n      'options.insecureHTTPParser'\x2C 'boolean'\x2C insecureHTTPParser);\n  }\n  this.insecureHTTPParser = insecureHTTPParser;\n\n  this.path = options.path || '/';\n  if (cb) {\n    this.once('response'\x2C cb);\n  }\n\n  if (method === 'GET' ||\n      method === 'HEAD' ||\n      method === 'DELETE' ||\n      method === 'OPTIONS' ||\n      method === 'TRACE' ||\n      method === 'CONNECT') {\n    this.useChunkedEncodingByDefault = false;\n  } else {\n    this.useChunkedEncodingByDefault = true;\n  }\n\n  this._ended = false;\n  this.res = null;\n  this.aborted = false;\n  this.timeoutCb = null;\n  this.upgradeOrConnect = false;\n  this.parser = null;\n  this.maxHeadersCount = null;\n  this.reusedSocket = false;\n  this.host = host;\n  this.protocol = protocol;\n\n  if (this.agent) {\n    // If there is an agent we should default to Connection:keep-alive\x2C\n    // but only if the Agent will actually reuse the connection!\n    // If it's not a keepAlive agent\x2C and the maxSockets==Infinity\x2C then\n    // there's never a case where this socket will actually be reused\n    if (!this.agent.keepAlive && !NumberIsFinite(this.agent.maxSockets)) {\n      this._last = true;\n      this.shouldKeepAlive = false;\n    } else {\n      this._last = false;\n      this.shouldKeepAlive = true;\n    }\n  }\n\n  const headersArray = ArrayIsArray(options.headers);\n  if (!headersArray) {\n    if (options.headers) {\n      const keys = ObjectKeys(options.headers);\n      // Retain for(;;) loop for performance reasons\n      // Refs: https://github.com/nodejs/node/pull/30958\n      for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        this.setHeader(key\x2C options.headers[key]);\n      }\n    }\n\n    if (host && !this.getHeader('host') && setHost) {\n      let hostHeader = host;\n\n      // For the Host header\x2C ensure that IPv6 addresses are enclosed\n      // in square brackets\x2C as defined by URI formatting\n      // https://tools.ietf.org/html/rfc3986#section-3.2.2\n      const posColon = StringPrototypeIndexOf(hostHeader\x2C ':');\n      if (posColon !== -1 &&\n          StringPrototypeIncludes(hostHeader\x2C ':'\x2C posColon + 1) &&\n          StringPrototypeCharCodeAt(hostHeader\x2C 0) !== 91/* '[' */) {\n        hostHeader = `[${hostHeader}]`;\n      }\n\n      if (port && +port !== defaultPort) {\n        hostHeader += ':' + port;\n      }\n      this.setHeader('Host'\x2C hostHeader);\n    }\n\n    if (options.auth && !this.getHeader('Authorization')) {\n      this.setHeader('Authorization'\x2C 'Basic ' +\n                     Buffer.from(options.auth).toString('base64'));\n    }\n\n    if (this.getHeader('expect')) {\n      if (this._header) {\n        throw new ERR_HTTP_HEADERS_SENT('render');\n      }\n\n      this._storeHeader(this.method + ' ' + this.path + ' HTTP/1.1\\r\\n'\x2C\n                        this[kOutHeaders]);\n    }\n  } else {\n    this._storeHeader(this.method + ' ' + this.path + ' HTTP/1.1\\r\\n'\x2C\n                      options.headers);\n  }\n\n  let optsWithoutSignal = options;\n  if (optsWithoutSignal.signal) {\n    optsWithoutSignal = ObjectAssign({}\x2C options);\n    delete optsWithoutSignal.signal;\n  }\n\n  // initiate connection\n  if (this.agent) {\n    this.agent.addRequest(this\x2C optsWithoutSignal);\n  } else {\n    // No agent\x2C default to Connection:close.\n    this._last = true;\n    this.shouldKeepAlive = false;\n    if (typeof optsWithoutSignal.createConnection === 'function') {\n      const oncreate = once((err\x2C socket) => {\n        if (err) {\n          process.nextTick(() => this.emit('error'\x2C err));\n        } else {\n          this.onSocket(socket);\n        }\n      });\n\n      try {\n        const newSocket = optsWithoutSignal.createConnection(optsWithoutSignal\x2C\n                                                             oncreate);\n        if (newSocket) {\n          oncreate(null\x2C newSocket);\n        }\n      } catch (err) {\n        oncreate(err);\n      }\n    } else {\n      debug('CLIENT use net.createConnection'\x2C optsWithoutSignal);\n      this.onSocket(net.createConnection(optsWithoutSignal));\n    }\n  }\n}\nObjectSetPrototypeOf(ClientRequest.prototype\x2C OutgoingMessage.prototype);\nObjectSetPrototypeOf(ClientRequest\x2C OutgoingMessage);\n\nClientRequest.prototype._finish = function _finish() {\n  DTRACE_HTTP_CLIENT_REQUEST(this\x2C this.socket);\n  FunctionPrototypeCall(OutgoingMessage.prototype._finish\x2C this);\n};\n\nClientRequest.prototype._implicitHeader = function _implicitHeader() {\n  if (this._header) {\n    throw new ERR_HTTP_HEADERS_SENT('render');\n  }\n  this._storeHeader(this.method + ' ' + this.path + ' HTTP/1.1\\r\\n'\x2C\n                    this[kOutHeaders]);\n};\n\nClientRequest.prototype.abort = function abort() {\n  if (this.aborted) {\n    return;\n  }\n  this.aborted = true;\n  process.nextTick(emitAbortNT\x2C this);\n  this.destroy();\n};\n\nClientRequest.prototype.destroy = function destroy(err) {\n  if (this.destroyed) {\n    return this;\n  }\n  this.destroyed = true;\n\n  // If we're aborting\x2C we don't care about any more response data.\n  if (this.res) {\n    this.res._dump();\n  }\n\n  this[kError] = err;\n  this.socket?.destroy(err);\n\n  return this;\n};\n\nfunction emitAbortNT(req) {\n  req.emit('abort');\n}\n\nfunction ondrain() {\n  const msg = this._httpMessage;\n  if (msg && !msg.finished && msg[kNeedDrain]) {\n    msg[kNeedDrain] = false;\n    msg.emit('drain');\n  }\n}\n\nfunction socketCloseListener() {\n  const socket = this;\n  const req = socket._httpMessage;\n  debug('HTTP socket close');\n\n  // Pull through final chunk\x2C if anything is buffered.\n  // the ondata function will handle it properly\x2C and this\n  // is a no-op if no final chunk remains.\n  socket.read();\n\n  // NOTE: It's important to get parser here\x2C because it could be freed by\n  // the `socketOnData`.\n  const parser = socket.parser;\n  const res = req.res;\n\n  req.destroyed = true;\n  if (res) {\n    // Socket closed before we emitted 'end' below.\n    if (!res.complete) {\n      res.destroy(connResetException('aborted'));\n    }\n    req._closed = true;\n    req.emit('close');\n    if (!res.aborted && res.readable) {\n      res.push(null);\n    }\n  } else {\n    if (!req.socket._hadError) {\n      // This socket error fired before we started to\n      // receive a response. The error needs to\n      // fire on the request.\n      req.socket._hadError = true;\n      req.emit('error'\x2C connResetException('socket hang up'));\n    }\n    req._closed = true;\n    req.emit('close');\n  }\n\n  // Too bad.  That output wasn't getting written.\n  // This is pretty terrible that it doesn't raise an error.\n  // Fixed better in v0.10\n  if (req.outputData)\n    req.outputData.length = 0;\n\n  if (parser) {\n    parser.finish();\n    freeParser(parser\x2C req\x2C socket);\n  }\n}\n\nfunction socketErrorListener(err) {\n  const socket = this;\n  const req = socket._httpMessage;\n  debug('SOCKET ERROR:'\x2C err.message\x2C err.stack);\n\n  if (req) {\n    // For Safety. Some additional errors might fire later on\n    // and we need to make sure we don't double-fire the error event.\n    req.socket._hadError = true;\n    req.emit('error'\x2C err);\n  }\n\n  const parser = socket.parser;\n  if (parser) {\n    parser.finish();\n    freeParser(parser\x2C req\x2C socket);\n  }\n\n  // Ensure that no further data will come out of the socket\n  socket.removeListener('data'\x2C socketOnData);\n  socket.removeListener('end'\x2C socketOnEnd);\n  socket.destroy();\n}\n\nfunction socketOnEnd() {\n  const socket = this;\n  const req = this._httpMessage;\n  const parser = this.parser;\n\n  if (!req.res && !req.socket._hadError) {\n    // If we don't have a response then we know that the socket\n    // ended prematurely and we need to emit an error on the request.\n    req.socket._hadError = true;\n    req.emit('error'\x2C connResetException('socket hang up'));\n  }\n  if (parser) {\n    parser.finish();\n    freeParser(parser\x2C req\x2C socket);\n  }\n  socket.destroy();\n}\n\nfunction socketOnData(d) {\n  const socket = this;\n  const req = this._httpMessage;\n  const parser = this.parser;\n\n  assert(parser && parser.socket === socket);\n\n  const ret = parser.execute(d);\n  if (ret instanceof Error) {\n    prepareError(ret\x2C parser\x2C d);\n    debug('parse error'\x2C ret);\n    freeParser(parser\x2C req\x2C socket);\n    socket.destroy();\n    req.socket._hadError = true;\n    req.emit('error'\x2C ret);\n  } else if (parser.incoming && parser.incoming.upgrade) {\n    // Upgrade (if status code 101) or CONNECT\n    const bytesParsed = ret;\n    const res = parser.incoming;\n    req.res = res;\n\n    socket.removeListener('data'\x2C socketOnData);\n    socket.removeListener('end'\x2C socketOnEnd);\n    socket.removeListener('drain'\x2C ondrain);\n\n    if (req.timeoutCb) socket.removeListener('timeout'\x2C req.timeoutCb);\n    socket.removeListener('timeout'\x2C responseOnTimeout);\n\n    parser.finish();\n    freeParser(parser\x2C req\x2C socket);\n\n    const bodyHead = TypedArrayPrototypeSlice(d\x2C bytesParsed\x2C d.length);\n\n    const eventName = req.method === 'CONNECT' ? 'connect' : 'upgrade';\n    if (req.listenerCount(eventName) > 0) {\n      req.upgradeOrConnect = true;\n\n      // detach the socket\n      socket.emit('agentRemove');\n      socket.removeListener('close'\x2C socketCloseListener);\n      socket.removeListener('error'\x2C socketErrorListener);\n\n      socket._httpMessage = null;\n      socket.readableFlowing = null;\n\n      req.emit(eventName\x2C res\x2C socket\x2C bodyHead);\n      req.destroyed = true;\n      req._closed = true;\n      req.emit('close');\n    } else {\n      // Requested Upgrade or used CONNECT method\x2C but have no handler.\n      socket.destroy();\n    }\n  } else if (parser.incoming && parser.incoming.complete &&\n             // When the status code is informational (100\x2C 102-199)\x2C\n             // the server will send a final response after this client\n             // sends a request body\x2C so we must not free the parser.\n             // 101 (Switching Protocols) and all other status codes\n             // should be processed normally.\n             !statusIsInformational(parser.incoming.statusCode)) {\n    socket.removeListener('data'\x2C socketOnData);\n    socket.removeListener('end'\x2C socketOnEnd);\n    socket.removeListener('drain'\x2C ondrain);\n    freeParser(parser\x2C req\x2C socket);\n  }\n}\n\nfunction statusIsInformational(status) {\n  // 100 (Continue)    RFC7231 Section 6.2.1\n  // 102 (Processing)  RFC2518\n  // 103 (Early Hints) RFC8297\n  // 104-199 (Unassigned)\n  return (status < 200 && status >= 100 && status !== 101);\n}\n\n// client\nfunction parserOnIncomingClient(res\x2C shouldKeepAlive) {\n  const socket = this.socket;\n  const req = socket._httpMessage;\n\n  debug('AGENT incoming response!');\n\n  if (req.res) {\n    // We already have a response object\x2C this means the server\n    // sent a double response.\n    socket.destroy();\n    return 0;  // No special treatment.\n  }\n  req.res = res;\n\n  // Skip body and treat as Upgrade.\n  if (res.upgrade)\n    return 2;\n\n  // Responses to CONNECT request is handled as Upgrade.\n  const method = req.method;\n  if (method === 'CONNECT') {\n    res.upgrade = true;\n    return 2;  // Skip body and treat as Upgrade.\n  }\n\n  if (statusIsInformational(res.statusCode)) {\n    // Restart the parser\x2C as this is a 1xx informational message.\n    req.res = null; // Clear res so that we don't hit double-responses.\n    // Maintain compatibility by sending 100-specific events\n    if (res.statusCode === 100) {\n      req.emit('continue');\n    }\n    // Send information events to all 1xx responses except 101 Upgrade.\n    req.emit('information'\x2C {\n      statusCode: res.statusCode\x2C\n      statusMessage: res.statusMessage\x2C\n      httpVersion: res.httpVersion\x2C\n      httpVersionMajor: res.httpVersionMajor\x2C\n      httpVersionMinor: res.httpVersionMinor\x2C\n      headers: res.headers\x2C\n      rawHeaders: res.rawHeaders\n    });\n\n    return 1;  // Skip body but don't treat as Upgrade.\n  }\n\n  if (req.shouldKeepAlive && !shouldKeepAlive && !req.upgradeOrConnect) {\n    // Server MUST respond with Connection:keep-alive for us to enable it.\n    // If we've been upgraded (via WebSockets) we also shouldn't try to\n    // keep the connection open.\n    req.shouldKeepAlive = false;\n  }\n\n  DTRACE_HTTP_CLIENT_RESPONSE(socket\x2C req);\n  req.res = res;\n  res.req = req;\n\n  // Add our listener first\x2C so that we guarantee socket cleanup\n  res.on('end'\x2C responseOnEnd);\n  req.on('prefinish'\x2C requestOnPrefinish);\n  socket.on('timeout'\x2C responseOnTimeout);\n\n  // If the user did not listen for the 'response' event\x2C then they\n  // can't possibly read the data\x2C so we ._dump() it into the void\n  // so that the socket doesn't hang there in a paused state.\n  if (req.aborted || !req.emit('response'\x2C res))\n    res._dump();\n\n  if (method === 'HEAD')\n    return 1;  // Skip body but don't treat as Upgrade.\n\n  if (res.statusCode === 304) {\n    res.complete = true;\n    return 1; // Skip body as there won't be any\n  }\n\n  return 0;  // No special treatment.\n}\n\n// client\nfunction responseKeepAlive(req) {\n  const socket = req.socket;\n\n  debug('AGENT socket keep-alive');\n  if (req.timeoutCb) {\n    socket.setTimeout(0\x2C req.timeoutCb);\n    req.timeoutCb = null;\n  }\n  socket.removeListener('close'\x2C socketCloseListener);\n  socket.removeListener('error'\x2C socketErrorListener);\n  socket.removeListener('data'\x2C socketOnData);\n  socket.removeListener('end'\x2C socketOnEnd);\n\n  // TODO(ronag): Between here and emitFreeNT the socket\n  // has no 'error' handler.\n\n  // There are cases where _handle === null. Avoid those. Passing undefined to\n  // nextTick() will call getDefaultTriggerAsyncId() to retrieve the id.\n  const asyncId = socket._handle ? socket._handle.getAsyncId() : undefined;\n  // Mark this socket as available\x2C AFTER user-added end\n  // handlers have a chance to run.\n  defaultTriggerAsyncIdScope(asyncId\x2C process.nextTick\x2C emitFreeNT\x2C req);\n\n  req.destroyed = true;\n  if (req.res) {\n    // Detach socket from IncomingMessage to avoid destroying the freed\n    // socket in IncomingMessage.destroy().\n    req.res.socket = null;\n  }\n}\n\nfunction responseOnEnd() {\n  const req = this.req;\n  const socket = req.socket;\n\n  if (socket) {\n    if (req.timeoutCb) socket.removeListener('timeout'\x2C emitRequestTimeout);\n    socket.removeListener('timeout'\x2C responseOnTimeout);\n  }\n\n  req._ended = true;\n\n  if (!req.shouldKeepAlive) {\n    if (socket.writable) {\n      debug('AGENT socket.destroySoon()');\n      if (typeof socket.destroySoon === 'function')\n        socket.destroySoon();\n      else\n        socket.end();\n    }\n    assert(!socket.writable);\n  } else if (req.finished && !this.aborted) {\n    // We can assume `req.finished` means all data has been written since:\n    // - `'responseOnEnd'` means we have been assigned a socket.\n    // - when we have a socket we write directly to it without buffering.\n    // - `req.finished` means `end()` has been called and no further data.\n    //   can be written\n    responseKeepAlive(req);\n  }\n}\n\nfunction responseOnTimeout() {\n  const req = this._httpMessage;\n  if (!req) return;\n  const res = req.res;\n  if (!res) return;\n  res.emit('timeout');\n}\n\nfunction requestOnPrefinish() {\n  const req = this;\n\n  if (req.shouldKeepAlive && req._ended)\n    responseKeepAlive(req);\n}\n\nfunction emitFreeNT(req) {\n  req._closed = true;\n  req.emit('close');\n  if (req.socket) {\n    req.socket.emit('free');\n  }\n}\n\nfunction tickOnSocket(req\x2C socket) {\n  const parser = parsers.alloc();\n  req.socket = socket;\n  const lenient = req.insecureHTTPParser === undefined ?\n    isLenient() : req.insecureHTTPParser;\n  parser.initialize(HTTPParser.RESPONSE\x2C\n                    new HTTPClientAsyncResource('HTTPINCOMINGMESSAGE'\x2C req)\x2C\n                    req.maxHeaderSize || 0\x2C\n                    lenient ? kLenientAll : kLenientNone\x2C\n                    0);\n  parser.socket = socket;\n  parser.outgoing = req;\n  req.parser = parser;\n\n  socket.parser = parser;\n  socket._httpMessage = req;\n\n  // Propagate headers limit from request object to parser\n  if (typeof req.maxHeadersCount === 'number') {\n    parser.maxHeaderPairs = req.maxHeadersCount << 1;\n  }\n\n  parser.onIncoming = parserOnIncomingClient;\n  socket.on('error'\x2C socketErrorListener);\n  socket.on('data'\x2C socketOnData);\n  socket.on('end'\x2C socketOnEnd);\n  socket.on('close'\x2C socketCloseListener);\n  socket.on('drain'\x2C ondrain);\n\n  if (\n    req.timeout !== undefined ||\n    (req.agent && req.agent.options && req.agent.options.timeout)\n  ) {\n    listenSocketTimeout(req);\n  }\n  req.emit('socket'\x2C socket);\n}\n\nfunction emitRequestTimeout() {\n  const req = this._httpMessage;\n  if (req) {\n    req.emit('timeout');\n  }\n}\n\nfunction listenSocketTimeout(req) {\n  if (req.timeoutCb) {\n    return;\n  }\n  // Set timeoutCb so it will get cleaned up on request end.\n  req.timeoutCb = emitRequestTimeout;\n  // Delegate socket timeout event.\n  if (req.socket) {\n    req.socket.once('timeout'\x2C emitRequestTimeout);\n  } else {\n    req.on('socket'\x2C (socket) => {\n      socket.once('timeout'\x2C emitRequestTimeout);\n    });\n  }\n}\n\nClientRequest.prototype.onSocket = function onSocket(socket\x2C err) {\n  // TODO(ronag): Between here and onSocketNT the socket\n  // has no 'error' handler.\n  process.nextTick(onSocketNT\x2C this\x2C socket\x2C err);\n};\n\nfunction onSocketNT(req\x2C socket\x2C err) {\n  if (req.destroyed || err) {\n    req.destroyed = true;\n\n    function _destroy(req\x2C err) {\n      if (!req.aborted && !err) {\n        err = connResetException('socket hang up');\n      }\n      if (err) {\n        req.emit('error'\x2C err);\n      }\n      req._closed = true;\n      req.emit('close');\n    }\n\n    if (socket) {\n      if (!err && req.agent && !socket.destroyed) {\n        socket.emit('free');\n      } else {\n        finished(socket.destroy(err || req[kError])\x2C (er) => {\n          _destroy(req\x2C er || err);\n        });\n        return;\n      }\n    }\n\n    _destroy(req\x2C err || req[kError]);\n  } else {\n    tickOnSocket(req\x2C socket);\n    req._flush();\n  }\n}\n\nClientRequest.prototype._deferToConnect = _deferToConnect;\nfunction _deferToConnect(method\x2C arguments_) {\n  // This function is for calls that need to happen once the socket is\n  // assigned to this request and writable. It's an important promisy\n  // thing for all the socket calls that happen either now\n  // (when a socket is assigned) or in the future (when a socket gets\n  // assigned out of the pool and is eventually writable).\n\n  const callSocketMethod = () => {\n    if (method)\n      ReflectApply(this.socket[method]\x2C this.socket\x2C arguments_);\n  };\n\n  const onSocket = () => {\n    if (this.socket.writable) {\n      callSocketMethod();\n    } else {\n      this.socket.once('connect'\x2C callSocketMethod);\n    }\n  };\n\n  if (!this.socket) {\n    this.once('socket'\x2C onSocket);\n  } else {\n    onSocket();\n  }\n}\n\nClientRequest.prototype.setTimeout = function setTimeout(msecs\x2C callback) {\n  if (this._ended) {\n    return this;\n  }\n\n  listenSocketTimeout(this);\n  msecs = getTimerDuration(msecs\x2C 'msecs');\n  if (callback) this.once('timeout'\x2C callback);\n\n  if (this.socket) {\n    setSocketTimeout(this.socket\x2C msecs);\n  } else {\n    this.once('socket'\x2C (sock) => setSocketTimeout(sock\x2C msecs));\n  }\n\n  return this;\n};\n\nfunction setSocketTimeout(sock\x2C msecs) {\n  if (sock.connecting) {\n    sock.once('connect'\x2C function() {\n      sock.setTimeout(msecs);\n    });\n  } else {\n    sock.setTimeout(msecs);\n  }\n}\n\nClientRequest.prototype.setNoDelay = function setNoDelay(noDelay) {\n  this._deferToConnect('setNoDelay'\x2C [noDelay]);\n};\n\nClientRequest.prototype.setSocketKeepAlive =\n    function setSocketKeepAlive(enable\x2C initialDelay) {\n      this._deferToConnect('setKeepAlive'\x2C [enable\x2C initialDelay]);\n    };\n\nClientRequest.prototype.clearTimeout = function clearTimeout(cb) {\n  this.setTimeout(0\x2C cb);\n};\n\nmodule.exports = {\n  ClientRequest\n};\n
code-source-info,0x3f8cd5551e4e,120,0,25980,C0O0C4O25980,,
code-creation,Function,10,120311,0x3f8cd5552e1e,940, node:_http_client:1:1,0x3f8cd5551db8,~
code-source-info,0x3f8cd5552e1e,120,0,25980,C0O0C286O1159C292O1175C298O1186C304O1195C310O1220C316O1238C322O1254C328O1268C333O1292C339O1308C345O1331C351O1341C357O1370C363O1397C369O1423C375O1453C380O1463C386O1519C389O1519C393O1519C395O1550C398O1550C402O1550C404O1595C407O1595C412O1586C418O1740C421O1740C426O1650C432O1670C438O1684C444O1695C450O1709C456O1722C462O1793C465O1793C470O1773C476O1834C479O1834C483O1834C485O1877C488O1877C493O1866C499O1935C502O1935C507O1904C513O2022C516O2022C521O1976C527O1981C533O1999C539O2083C542O2083C547O2055C553O2068C559O2147C562O2147C567O2117C573O2137C578O2185C584O2210C590O2234C596O2260C602O2284C608O2351C611O2351C616O2330C622O2412C625O2412C630O2391C636O2512C639O2512C644O2450C650O2480C656O2578C659O2578C664O2549C670O2565C676O2610C679O2610C684O2643C697O2644C703O2610C705O2717C709O2717C711O2752C714O2752C718O2752C720O2791C723O2802C727O2814C730O2791C732O2840C735O2851C739O2864C742O2840C765O3165C767O10531C775O10558C780O10496C785O10570C788O10570C793O10639C802O10657C806O10813C815O10839C819O11070C828O11086C832O11243C841O11261C845O23244C854O23263C858O24155C865O24181C869O24968C878O24989C882O25561C891O25582C895O25682C904O25711C908O25859C917O25882C921O25942C928O25963C934O25957C939O25979,,
tick,0xfb31b8,120380,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x7efc33635473,120393,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,120816,0x3f8cd5555dc6,5, node:_http_common:1:1,0x3f8cd5555a80,~
script-source,121,node:_http_common,// 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  MathMin\x2C\n  Symbol\x2C\n  RegExpPrototypeTest\x2C\n} = primordials;\nconst { setImmediate } = require('timers');\n\nconst { methods\x2C HTTPParser } = internalBinding('http_parser');\nconst { getOptionValue } = require('internal/options');\nconst insecureHTTPParser = getOptionValue('--insecure-http-parser');\n\nconst FreeList = require('internal/freelist');\nconst incoming = require('_http_incoming');\nconst {\n  IncomingMessage\x2C\n  readStart\x2C\n  readStop\n} = incoming;\n\nlet debug = require('internal/util/debuglog').debuglog('http'\x2C (fn) => {\n  debug = fn;\n});\n\nconst kIncomingMessage = Symbol('IncomingMessage');\nconst kRequestTimeout = Symbol('RequestTimeout');\nconst kOnMessageBegin = HTTPParser.kOnMessageBegin | 0;\nconst kOnHeaders = HTTPParser.kOnHeaders | 0;\nconst kOnHeadersComplete = HTTPParser.kOnHeadersComplete | 0;\nconst kOnBody = HTTPParser.kOnBody | 0;\nconst kOnMessageComplete = HTTPParser.kOnMessageComplete | 0;\nconst kOnExecute = HTTPParser.kOnExecute | 0;\nconst kOnTimeout = HTTPParser.kOnTimeout | 0;\n\nconst MAX_HEADER_PAIRS = 2000;\n\n// Only called in the slow case where slow means\n// that the request headers were either fragmented\n// across multiple TCP packets or too large to be\n// processed in a single run. This method is also\n// called to process trailing HTTP headers.\nfunction parserOnHeaders(headers\x2C url) {\n  // Once we exceeded headers limit - stop collecting them\n  if (this.maxHeaderPairs <= 0 ||\n      this._headers.length < this.maxHeaderPairs) {\n    this._headers.push(...headers);\n  }\n  this._url += url;\n}\n\n// `headers` and `url` are set only if .onHeaders() has not been called for\n// this request.\n// `url` is not set for response parsers but that's not applicable here since\n// all our parsers are request parsers.\nfunction parserOnHeadersComplete(versionMajor\x2C versionMinor\x2C headers\x2C method\x2C\n                                 url\x2C statusCode\x2C statusMessage\x2C upgrade\x2C\n                                 shouldKeepAlive) {\n  const parser = this;\n  const { socket } = parser;\n\n  if (headers === undefined) {\n    headers = parser._headers;\n    parser._headers = [];\n  }\n\n  if (url === undefined) {\n    url = parser._url;\n    parser._url = '';\n  }\n\n  // Parser is also used by http client\n  const ParserIncomingMessage = (socket && socket.server &&\n                                 socket.server[kIncomingMessage]) ||\n                                 IncomingMessage;\n\n  const incoming = parser.incoming = new ParserIncomingMessage(socket);\n  incoming.httpVersionMajor = versionMajor;\n  incoming.httpVersionMinor = versionMinor;\n  incoming.httpVersion = `${versionMajor}.${versionMinor}`;\n  incoming.url = url;\n  incoming.upgrade = upgrade;\n\n  if (socket) {\n    debug('requestTimeout timer moved to req');\n    incoming[kRequestTimeout] = incoming.socket[kRequestTimeout];\n    incoming.socket[kRequestTimeout] = undefined;\n  }\n\n  let n = headers.length;\n\n  // If parser.maxHeaderPairs <= 0 assume that there's no limit.\n  if (parser.maxHeaderPairs > 0)\n    n = MathMin(n\x2C parser.maxHeaderPairs);\n\n  incoming._addHeaderLines(headers\x2C n);\n\n  if (typeof method === 'number') {\n    // server only\n    incoming.method = methods[method];\n  } else {\n    // client only\n    incoming.statusCode = statusCode;\n    incoming.statusMessage = statusMessage;\n  }\n\n  return parser.onIncoming(incoming\x2C shouldKeepAlive);\n}\n\nfunction parserOnBody(b\x2C start\x2C len) {\n  const stream = this.incoming;\n\n  // If the stream has already been removed\x2C then drop it.\n  if (stream === null)\n    return;\n\n  // Pretend this was the result of a stream._read call.\n  if (len > 0 && !stream._dumped) {\n    const slice = b.slice(start\x2C start + len);\n    const ret = stream.push(slice);\n    if (!ret)\n      readStop(this.socket);\n  }\n}\n\nfunction parserOnMessageComplete() {\n  const parser = this;\n  const stream = parser.incoming;\n\n  if (stream !== null) {\n    stream.complete = true;\n    // Emit any trailing headers.\n    const headers = parser._headers;\n    if (headers.length) {\n      stream._addHeaderLines(headers\x2C headers.length);\n      parser._headers = [];\n      parser._url = '';\n    }\n\n    // For emit end event\n    stream.push(null);\n  }\n\n  // Force to read the next incoming message\n  readStart(parser.socket);\n}\n\n\nconst parsers = new FreeList('parsers'\x2C 1000\x2C function parsersCb() {\n  const parser = new HTTPParser();\n\n  cleanParser(parser);\n\n  parser[kOnHeaders] = parserOnHeaders;\n  parser[kOnHeadersComplete] = parserOnHeadersComplete;\n  parser[kOnBody] = parserOnBody;\n  parser[kOnMessageComplete] = parserOnMessageComplete;\n\n  return parser;\n});\n\nfunction closeParserInstance(parser) { parser.close(); }\n\n// Free the parser and also break any links that it\n// might have to any other things.\n// TODO: All parser data should be attached to a\n// single object\x2C so that it can be easily cleaned\n// up by doing `parser.data = {}`\x2C which should\n// be done in FreeList.free.  `parsers.free(parser)`\n// should be all that is needed.\nfunction freeParser(parser\x2C req\x2C socket) {\n  if (parser) {\n    if (parser._consumed)\n      parser.unconsume();\n    cleanParser(parser);\n    if (parsers.free(parser) === false) {\n      // Make sure the parser's stack has unwound before deleting the\n      // corresponding C++ object through .close().\n      setImmediate(closeParserInstance\x2C parser);\n    } else {\n      // Since the Parser destructor isn't going to run the destroy() callbacks\n      // it needs to be triggered manually.\n      parser.free();\n    }\n  }\n  if (req) {\n    req.parser = null;\n  }\n  if (socket) {\n    socket.parser = null;\n  }\n}\n\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/;\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nfunction checkIsHttpToken(val) {\n  return RegExpPrototypeTest(tokenRegExp\x2C val);\n}\n\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n/**\n * True if val contains an invalid field-vchar\n *  field-value    = *( field-content / obs-fold )\n *  field-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n *  field-vchar    = VCHAR / obs-text\n */\nfunction checkInvalidHeaderChar(val) {\n  return RegExpPrototypeTest(headerCharRegex\x2C val);\n}\n\nfunction cleanParser(parser) {\n  parser._headers = [];\n  parser._url = '';\n  parser.socket = null;\n  parser.incoming = null;\n  parser.outgoing = null;\n  parser.maxHeaderPairs = MAX_HEADER_PAIRS;\n  parser[kOnMessageBegin] = null;\n  parser[kOnExecute] = null;\n  parser[kOnTimeout] = null;\n  parser._consumed = false;\n  parser.onIncoming = null;\n}\n\nfunction prepareError(err\x2C parser\x2C rawPacket) {\n  err.rawPacket = rawPacket || parser.getCurrentBuffer();\n  if (typeof err.reason === 'string')\n    err.message = `Parse Error: ${err.reason}`;\n}\n\nlet warnedLenient = false;\n\nfunction isLenient() {\n  if (insecureHTTPParser && !warnedLenient) {\n    warnedLenient = true;\n    process.emitWarning('Using insecure HTTP parsing');\n  }\n  return insecureHTTPParser;\n}\n\nmodule.exports = {\n  _checkInvalidHeaderChar: checkInvalidHeaderChar\x2C\n  _checkIsHttpToken: checkIsHttpToken\x2C\n  chunkExpression: /(?:^|\\W)chunked(?:$|\\W)/i\x2C\n  continueExpression: /(?:^|\\W)100-continue(?:$|\\W)/i\x2C\n  CRLF: '\\r\\n'\x2C\n  freeParser\x2C\n  methods\x2C\n  parsers\x2C\n  kIncomingMessage\x2C\n  kRequestTimeout\x2C\n  HTTPParser\x2C\n  isLenient\x2C\n  prepareError\x2C\n};\n
code-source-info,0x3f8cd5555dc6,121,0,8441,C0O0C4O8441,,
code-creation,Function,10,121444,0x3f8cd555650e,512, node:_http_common:1:1,0x3f8cd5555d30,~
code-source-info,0x3f8cd555650e,121,0,8441,C0O0C142O1159C148O1170C153O1180C159O1243C162O1243C167O1226C173O1295C176O1295C181O1271C187O1280C193O1354C196O1354C201O1335C206O1410C209O1410C213O1410C215O1470C218O1470C223O1517C226O1517C231O1554C237O1573C243O1586C249O1622C252O1622C257O1655C270O1656C276O1622C278O1727C281O1727C285O1727C287O1778C290O1778C294O1778C296O1828C299O1839C303O1855C306O1828C308O1879C311O1890C315O1901C318O1879C320O1933C323O1944C327O1963C330O1933C332O1984C335O1995C339O2003C342O1984C344O2035C347O2046C351O2065C354O2035C356O2089C359O2100C363O2111C366O2089C368O2135C371O2146C375O2157C378O2135C380O2188C384O2188C386O5382C401O5382C406O5382C408O6709C412O6709C414O7007C418O7007C420O7898C421O7898C423O8093C430O8139C436O8184C440O8221C448O8271C458O8322C464O8336C470O8347C476O8358C482O8378C488O8397C494O8411C500O8424C506O8108C511O8440,,
tick,0x7efc33635473,121497,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x3f8cd5552fc3,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,121797,0x3f8cd555826e,5, node:internal/freelist:1:1,0x3f8cd5558108,~
script-source,122,node:internal/freelist,'use strict';\n\nconst {\n  ReflectApply\x2C\n} = primordials;\n\nclass FreeList {\n  constructor(name\x2C max\x2C ctor) {\n    this.name = name;\n    this.ctor = ctor;\n    this.max = max;\n    this.list = [];\n  }\n\n  alloc() {\n    return this.list.length > 0 ?\n      this.list.pop() :\n      ReflectApply(this.ctor\x2C this\x2C arguments);\n  }\n\n  free(obj) {\n    if (this.list.length < this.max) {\n      this.list.push(obj);\n      return true;\n    }\n    return false;\n  }\n}\n\nmodule.exports = FreeList;\n
code-source-info,0x3f8cd555826e,122,0,476,C0O0C4O476,,
code-creation,Function,10,121862,0x3f8cd5558586,54, node:internal/freelist:1:1,0x3f8cd55581d8,~
code-source-info,0x3f8cd5558586,122,0,476,C0O0C8O25C46O449C48O464C53O475,,
tick,0x11e79c3,121944,0,0x0,0,0x11e8550,0x3f8cd55585ab,0x13b40bab9d2d,0x13b40bab8ffd,0x3f8cd55565e8,0x13b40bab9d2d,0x13b40bab8ffd,0x3f8cd5552fc3,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,122266,0x3f8cd5558c86,5, node:_http_incoming:1:1,0x3f8cd5558a70,~
script-source,123,node:_http_incoming,// 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  ObjectDefineProperty\x2C\n  ObjectSetPrototypeOf\x2C\n  StringPrototypeCharCodeAt\x2C\n  StringPrototypeSlice\x2C\n  StringPrototypeToLowerCase\x2C\n  Symbol\n} = primordials;\n\nconst { Readable\x2C finished } = require('stream');\n\nconst kHeaders = Symbol('kHeaders');\nconst kHeadersCount = Symbol('kHeadersCount');\nconst kTrailers = Symbol('kTrailers');\nconst kTrailersCount = Symbol('kTrailersCount');\n\nfunction readStart(socket) {\n  if (socket && !socket._paused && socket.readable)\n    socket.resume();\n}\n\nfunction readStop(socket) {\n  if (socket)\n    socket.pause();\n}\n\n/* Abstract base class for ServerRequest and ClientResponse. */\nfunction IncomingMessage(socket) {\n  let streamOptions;\n\n  if (socket) {\n    streamOptions = {\n      highWaterMark: socket.readableHighWaterMark\n    };\n  }\n\n  Readable.call(this\x2C streamOptions);\n\n  this._readableState.readingMore = true;\n\n  this.socket = socket;\n\n  this.httpVersionMajor = null;\n  this.httpVersionMinor = null;\n  this.httpVersion = null;\n  this.complete = false;\n  this[kHeaders] = null;\n  this[kHeadersCount] = 0;\n  this.rawHeaders = [];\n  this[kTrailers] = null;\n  this[kTrailersCount] = 0;\n  this.rawTrailers = [];\n\n  this.aborted = false;\n\n  this.upgrade = null;\n\n  // request (server) only\n  this.url = '';\n  this.method = null;\n\n  // response (client) only\n  this.statusCode = null;\n  this.statusMessage = null;\n  this.client = socket;\n\n  this._consuming = false;\n  // Flag for when we decide that this message cannot possibly be\n  // read by the user\x2C so there's no point continuing to handle it.\n  this._dumped = false;\n}\nObjectSetPrototypeOf(IncomingMessage.prototype\x2C Readable.prototype);\nObjectSetPrototypeOf(IncomingMessage\x2C Readable);\n\nObjectDefineProperty(IncomingMessage.prototype\x2C 'connection'\x2C {\n  get: function() {\n    return this.socket;\n  }\x2C\n  set: function(val) {\n    this.socket = val;\n  }\n});\n\nObjectDefineProperty(IncomingMessage.prototype\x2C 'headers'\x2C {\n  get: function() {\n    if (!this[kHeaders]) {\n      this[kHeaders] = {};\n\n      const src = this.rawHeaders;\n      const dst = this[kHeaders];\n\n      for (let n = 0; n < this[kHeadersCount]; n += 2) {\n        this._addHeaderLine(src[n + 0]\x2C src[n + 1]\x2C dst);\n      }\n    }\n    return this[kHeaders];\n  }\x2C\n  set: function(val) {\n    this[kHeaders] = val;\n  }\n});\n\nObjectDefineProperty(IncomingMessage.prototype\x2C 'trailers'\x2C {\n  get: function() {\n    if (!this[kTrailers]) {\n      this[kTrailers] = {};\n\n      const src = this.rawTrailers;\n      const dst = this[kTrailers];\n\n      for (let n = 0; n < this[kTrailersCount]; n += 2) {\n        this._addHeaderLine(src[n + 0]\x2C src[n + 1]\x2C dst);\n      }\n    }\n    return this[kTrailers];\n  }\x2C\n  set: function(val) {\n    this[kTrailers] = val;\n  }\n});\n\nIncomingMessage.prototype.setTimeout = function setTimeout(msecs\x2C callback) {\n  if (callback)\n    this.on('timeout'\x2C callback);\n  this.socket.setTimeout(msecs);\n  return this;\n};\n\n// Argument n cannot be factored out due to the overhead of\n// argument adaptor frame creation inside V8 in case that number of actual\n// arguments is different from expected arguments.\n// Ref: https://bugs.chromium.org/p/v8/issues/detail?id=10201\n// NOTE: Argument adapt frame issue might be solved in V8 engine v8.9.\n// Refactoring `n` out might be possible when V8 is upgraded to that\n// version.\n// Ref: https://v8.dev/blog/v8-release-89\nIncomingMessage.prototype._read = function _read(n) {\n  if (!this._consuming) {\n    this._readableState.readingMore = false;\n    this._consuming = true;\n  }\n\n  // We actually do almost nothing here\x2C because the parserOnBody\n  // function fills up our internal buffer directly.  However\x2C we\n  // do need to unpause the underlying socket so that it flows.\n  if (this.socket.readable)\n    readStart(this.socket);\n};\n\n// It's possible that the socket will be destroyed\x2C and removed from\n// any messages\x2C before ever calling this.  In that case\x2C just skip\n// it\x2C since something else is destroying this connection anyway.\nIncomingMessage.prototype._destroy = function _destroy(err\x2C cb) {\n  if (!this.readableEnded || !this.complete) {\n    this.aborted = true;\n    this.emit('aborted');\n  }\n\n  // If aborted and the underlying socket is not already destroyed\x2C\n  // destroy it.\n  // We have to check if the socket is already destroyed because finished\n  // does not call the callback when this methdod is invoked from `_http_client`\n  // in `test/parallel/test-http-client-spurious-aborted.js`\n  if (this.socket && !this.socket.destroyed && this.aborted) {\n    this.socket.destroy(err);\n    const cleanup = finished(this.socket\x2C (e) => {\n      cleanup();\n      onError(this\x2C e || err\x2C cb);\n    });\n  } else {\n    onError(this\x2C err\x2C cb);\n  }\n};\n\nIncomingMessage.prototype._addHeaderLines = _addHeaderLines;\nfunction _addHeaderLines(headers\x2C n) {\n  if (headers && headers.length) {\n    let dest;\n    if (this.complete) {\n      this.rawTrailers = headers;\n      this[kTrailersCount] = n;\n      dest = this[kTrailers];\n    } else {\n      this.rawHeaders = headers;\n      this[kHeadersCount] = n;\n      dest = this[kHeaders];\n    }\n\n    if (dest) {\n      for (let i = 0; i < n; i += 2) {\n        this._addHeaderLine(headers[i]\x2C headers[i + 1]\x2C dest);\n      }\n    }\n  }\n}\n\n\n// This function is used to help avoid the lowercasing of a field name if it\n// matches a 'traditional cased' version of a field name. It then returns the\n// lowercased name to both avoid calling toLowerCase() a second time and to\n// indicate whether the field was a 'no duplicates' field. If a field is not a\n// 'no duplicates' field\x2C a `0` byte is prepended as a flag. The one exception\n// to this is the Set-Cookie header which is indicated by a `1` byte flag\x2C since\n// it is an 'array' field and thus is treated differently in _addHeaderLines().\n// TODO: perhaps http_parser could be returning both raw and lowercased versions\n// of known header names to avoid us having to call toLowerCase() for those\n// headers.\nfunction matchKnownFields(field\x2C lowercased) {\n  switch (field.length) {\n    case 3:\n      if (field === 'Age' || field === 'age') return 'age';\n      break;\n    case 4:\n      if (field === 'Host' || field === 'host') return 'host';\n      if (field === 'From' || field === 'from') return 'from';\n      if (field === 'ETag' || field === 'etag') return 'etag';\n      if (field === 'Date' || field === 'date') return '\\u0000date';\n      if (field === 'Vary' || field === 'vary') return '\\u0000vary';\n      break;\n    case 6:\n      if (field === 'Server' || field === 'server') return 'server';\n      if (field === 'Cookie' || field === 'cookie') return '\\u0002cookie';\n      if (field === 'Origin' || field === 'origin') return '\\u0000origin';\n      if (field === 'Expect' || field === 'expect') return '\\u0000expect';\n      if (field === 'Accept' || field === 'accept') return '\\u0000accept';\n      break;\n    case 7:\n      if (field === 'Referer' || field === 'referer') return 'referer';\n      if (field === 'Expires' || field === 'expires') return 'expires';\n      if (field === 'Upgrade' || field === 'upgrade') return '\\u0000upgrade';\n      break;\n    case 8:\n      if (field === 'Location' || field === 'location')\n        return 'location';\n      if (field === 'If-Match' || field === 'if-match')\n        return '\\u0000if-match';\n      break;\n    case 10:\n      if (field === 'User-Agent' || field === 'user-agent')\n        return 'user-agent';\n      if (field === 'Set-Cookie' || field === 'set-cookie')\n        return '\\u0001';\n      if (field === 'Connection' || field === 'connection')\n        return '\\u0000connection';\n      break;\n    case 11:\n      if (field === 'Retry-After' || field === 'retry-after')\n        return 'retry-after';\n      break;\n    case 12:\n      if (field === 'Content-Type' || field === 'content-type')\n        return 'content-type';\n      if (field === 'Max-Forwards' || field === 'max-forwards')\n        return 'max-forwards';\n      break;\n    case 13:\n      if (field === 'Authorization' || field === 'authorization')\n        return 'authorization';\n      if (field === 'Last-Modified' || field === 'last-modified')\n        return 'last-modified';\n      if (field === 'Cache-Control' || field === 'cache-control')\n        return '\\u0000cache-control';\n      if (field === 'If-None-Match' || field === 'if-none-match')\n        return '\\u0000if-none-match';\n      break;\n    case 14:\n      if (field === 'Content-Length' || field === 'content-length')\n        return 'content-length';\n      break;\n    case 15:\n      if (field === 'Accept-Encoding' || field === 'accept-encoding')\n        return '\\u0000accept-encoding';\n      if (field === 'Accept-Language' || field === 'accept-language')\n        return '\\u0000accept-language';\n      if (field === 'X-Forwarded-For' || field === 'x-forwarded-for')\n        return '\\u0000x-forwarded-for';\n      break;\n    case 16:\n      if (field === 'Content-Encoding' || field === 'content-encoding')\n        return '\\u0000content-encoding';\n      if (field === 'X-Forwarded-Host' || field === 'x-forwarded-host')\n        return '\\u0000x-forwarded-host';\n      break;\n    case 17:\n      if (field === 'If-Modified-Since' || field === 'if-modified-since')\n        return 'if-modified-since';\n      if (field === 'Transfer-Encoding' || field === 'transfer-encoding')\n        return '\\u0000transfer-encoding';\n      if (field === 'X-Forwarded-Proto' || field === 'x-forwarded-proto')\n        return '\\u0000x-forwarded-proto';\n      break;\n    case 19:\n      if (field === 'Proxy-Authorization' || field === 'proxy-authorization')\n        return 'proxy-authorization';\n      if (field === 'If-Unmodified-Since' || field === 'if-unmodified-since')\n        return 'if-unmodified-since';\n      break;\n  }\n  if (lowercased) {\n    return '\\u0000' + field;\n  }\n  return matchKnownFields(StringPrototypeToLowerCase(field)\x2C true);\n}\n// Add the given (field\x2C value) pair to the message\n//\n// Per RFC2616\x2C section 4.2 it is acceptable to join multiple instances of the\n// same header with a '\x2C ' if the header in question supports specification of\n// multiple values this way. The one exception to this is the Cookie header\x2C\n// which has multiple values joined with a '; ' instead. If a header's values\n// cannot be joined in either of these ways\x2C we declare the first instance the\n// winner and drop the second. Extended header fields (those beginning with\n// 'x-') are always joined.\nIncomingMessage.prototype._addHeaderLine = _addHeaderLine;\nfunction _addHeaderLine(field\x2C value\x2C dest) {\n  field = matchKnownFields(field);\n  const flag = StringPrototypeCharCodeAt(field\x2C 0);\n  if (flag === 0 || flag === 2) {\n    field = StringPrototypeSlice(field\x2C 1);\n    // Make a delimited list\n    if (typeof dest[field] === 'string') {\n      dest[field] += (flag === 0 ? '\x2C ' : '; ') + value;\n    } else {\n      dest[field] = value;\n    }\n  } else if (flag === 1) {\n    // Array header -- only Set-Cookie at the moment\n    if (dest['set-cookie'] !== undefined) {\n      dest['set-cookie'].push(value);\n    } else {\n      dest['set-cookie'] = [value];\n    }\n  } else if (dest[field] === undefined) {\n    // Drop duplicates\n    dest[field] = value;\n  }\n}\n\n\n// Call this instead of resume() if we want to just\n// dump all the data to /dev/null\nIncomingMessage.prototype._dump = function _dump() {\n  if (!this._dumped) {\n    this._dumped = true;\n    // If there is buffered data\x2C it may trigger 'data' events.\n    // Remove 'data' event listeners explicitly.\n    this.removeAllListeners('data');\n    this.resume();\n  }\n};\n\nfunction onError(self\x2C error\x2C cb) {\n  // This is to keep backward compatible behavior.\n  // An error is emitted only if there are listeners attached to the event.\n  if (self.listenerCount('error') === 0) {\n    cb();\n  } else {\n    cb(error);\n  }\n}\n\nmodule.exports = {\n  IncomingMessage\x2C\n  readStart\x2C\n  readStop\n};\n
code-source-info,0x3f8cd5558c86,123,0,12951,C0O0C4O12951,,
code-creation,Function,10,123205,0x3f8cd5559636,392, node:_http_incoming:1:1,0x3f8cd5558bf0,~
code-source-info,0x3f8cd5559636,123,0,12951,C0O0C70O1159C75O1183C80O1207C86O1236C92O1260C98O1290C103O1346C106O1346C111O1323C117O1333C123O1383C126O1383C130O1383C132O1425C135O1425C139O1425C141O1468C144O1468C148O1468C150O1512C153O1512C157O1512C159O2757C167O2777C172O2720C177O2789C180O2789C185O2876C198O2910C206O2959C214O2839C219O3044C232O3075C240O3381C248O3007C253O3469C266O3501C274O3813C282O3432C287O3881C296O3902C300O4503C309O4519C313O5120C322O5139C326O5841C333O5867C337O11529C344O11554C348O12375C357O12391C361O12886C368O12907C374O12926C380O12939C386O12901C391O12950,,
tick,0xfb3388,123250,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x3f8cd55565f0,0x13b40bab9d2d,0x13b40bab8ffd,0x3f8cd5552fc3,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,123417,0x3f8cd555aa46,26,FreeList node:internal/freelist:8:14,0x3f8cd55582a0,~
code-source-info,0x3f8cd555aa46,122,87,194,C0O111C2O121C6O133C8O143C12O155C14O164C18O175C20O185C25O193,,
tick,0x1168658,124090,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x3f8cd5552fef,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,124369,0x3f8cd555ba5e,5, node:_http_outgoing:1:1,0x3f8cd555b588,~
script-source,124,node:_http_outgoing,// 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  ArrayPrototypeJoin\x2C\n  MathFloor\x2C\n  NumberPrototypeToString\x2C\n  ObjectCreate\x2C\n  ObjectDefineProperty\x2C\n  ObjectKeys\x2C\n  ObjectValues\x2C\n  ObjectPrototypeHasOwnProperty\x2C\n  ObjectSetPrototypeOf\x2C\n  RegExpPrototypeTest\x2C\n  StringPrototypeToLowerCase\x2C\n  Symbol\x2C\n} = primordials;\n\nconst { getDefaultHighWaterMark } = require('internal/streams/state');\nconst assert = require('internal/assert');\nconst EE = require('events');\nconst Stream = require('stream');\nconst internalUtil = require('internal/util');\nconst { kOutHeaders\x2C utcDate\x2C kNeedDrain } = require('internal/http');\nconst { Buffer } = require('buffer');\nconst common = require('_http_common');\nconst checkIsHttpToken = common._checkIsHttpToken;\nconst checkInvalidHeaderChar = common._checkInvalidHeaderChar;\nconst {\n  defaultTriggerAsyncIdScope\x2C\n  symbols: { async_id_symbol }\n} = require('internal/async_hooks');\nconst {\n  codes: {\n    ERR_HTTP_HEADERS_SENT\x2C\n    ERR_HTTP_INVALID_HEADER_VALUE\x2C\n    ERR_HTTP_TRAILER_INVALID\x2C\n    ERR_INVALID_HTTP_TOKEN\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_INVALID_CHAR\x2C\n    ERR_METHOD_NOT_IMPLEMENTED\x2C\n    ERR_STREAM_CANNOT_PIPE\x2C\n    ERR_STREAM_ALREADY_FINISHED\x2C\n    ERR_STREAM_WRITE_AFTER_END\x2C\n    ERR_STREAM_NULL_VALUES\x2C\n    ERR_STREAM_DESTROYED\n  }\x2C\n  hideStackFrames\n} = require('internal/errors');\nconst { validateString } = require('internal/validators');\nconst { isUint8Array } = require('internal/util/types');\n\nlet debug = require('internal/util/debuglog').debuglog('http'\x2C (fn) => {\n  debug = fn;\n});\n\nconst HIGH_WATER_MARK = getDefaultHighWaterMark();\nconst { CRLF } = common;\n\nconst kCorked = Symbol('corked');\n\nconst nop = () => {};\n\nconst RE_CONN_CLOSE = /(?:^|\\W)close(?:$|\\W)/i;\nconst RE_TE_CHUNKED = common.chunkExpression;\n\n// isCookieField performs a case-insensitive comparison of a provided string\n// against the word "cookie." As of V8 6.6 this is faster than handrolling or\n// using a case-insensitive RegExp.\nfunction isCookieField(s) {\n  return s.length === 6 && StringPrototypeToLowerCase(s) === 'cookie';\n}\n\nfunction OutgoingMessage() {\n  Stream.call(this);\n\n  // Queue that holds all currently pending data\x2C until the response will be\n  // assigned to the socket (until it will its turn in the HTTP pipeline).\n  this.outputData = [];\n\n  // `outputSize` is an approximate measure of how much data is queued on this\n  // response. `_onPendingData` will be invoked to update similar global\n  // per-connection counter. That counter will be used to pause/unpause the\n  // TCP socket and HTTP Parser and thus handle the backpressure.\n  this.outputSize = 0;\n\n  this.writable = true;\n  this.destroyed = false;\n\n  this._last = false;\n  this.chunkedEncoding = false;\n  this.shouldKeepAlive = true;\n  this._defaultKeepAlive = true;\n  this.useChunkedEncodingByDefault = true;\n  this.sendDate = false;\n  this._removedConnection = false;\n  this._removedContLen = false;\n  this._removedTE = false;\n\n  this._contentLength = null;\n  this._hasBody = true;\n  this._trailer = '';\n  this[kNeedDrain] = false;\n\n  this.finished = false;\n  this._headerSent = false;\n  this[kCorked] = 0;\n  this._closed = false;\n\n  this.socket = null;\n  this._header = null;\n  this[kOutHeaders] = null;\n\n  this._keepAliveTimeout = 0;\n\n  this._onPendingData = nop;\n}\nObjectSetPrototypeOf(OutgoingMessage.prototype\x2C Stream.prototype);\nObjectSetPrototypeOf(OutgoingMessage\x2C Stream);\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C 'writableFinished'\x2C {\n  get() {\n    return (\n      this.finished &&\n      this.outputSize === 0 &&\n      (!this.socket || this.socket.writableLength === 0)\n    );\n  }\n});\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C 'writableObjectMode'\x2C {\n  get() {\n    return false;\n  }\n});\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C 'writableLength'\x2C {\n  get() {\n    return this.outputSize + (this.socket ? this.socket.writableLength : 0);\n  }\n});\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C 'writableHighWaterMark'\x2C {\n  get() {\n    return this.socket ? this.socket.writableHighWaterMark : HIGH_WATER_MARK;\n  }\n});\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C 'writableCorked'\x2C {\n  get() {\n    const corked = this.socket ? this.socket.writableCorked : 0;\n    return corked + this[kCorked];\n  }\n});\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C '_headers'\x2C {\n  get: internalUtil.deprecate(function() {\n    return this.getHeaders();\n  }\x2C 'OutgoingMessage.prototype._headers is deprecated'\x2C 'DEP0066')\x2C\n  set: internalUtil.deprecate(function(val) {\n    if (val == null) {\n      this[kOutHeaders] = null;\n    } else if (typeof val === 'object') {\n      const headers = this[kOutHeaders] = ObjectCreate(null);\n      const keys = ObjectKeys(val);\n      // Retain for(;;) loop for performance reasons\n      // Refs: https://github.com/nodejs/node/pull/30958\n      for (let i = 0; i < keys.length; ++i) {\n        const name = keys[i];\n        headers[StringPrototypeToLowerCase(name)] = [name\x2C val[name]];\n      }\n    }\n  }\x2C 'OutgoingMessage.prototype._headers is deprecated'\x2C 'DEP0066')\n});\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C 'connection'\x2C {\n  get: function() {\n    return this.socket;\n  }\x2C\n  set: function(val) {\n    this.socket = val;\n  }\n});\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C '_headerNames'\x2C {\n  get: internalUtil.deprecate(function() {\n    const headers = this[kOutHeaders];\n    if (headers !== null) {\n      const out = ObjectCreate(null);\n      const keys = ObjectKeys(headers);\n      // Retain for(;;) loop for performance reasons\n      // Refs: https://github.com/nodejs/node/pull/30958\n      for (let i = 0; i < keys.length; ++i) {\n        const key = keys[i];\n        const val = headers[key][0];\n        out[key] = val;\n      }\n      return out;\n    }\n    return null;\n  }\x2C 'OutgoingMessage.prototype._headerNames is deprecated'\x2C 'DEP0066')\x2C\n  set: internalUtil.deprecate(function(val) {\n    if (typeof val === 'object' && val !== null) {\n      const headers = this[kOutHeaders];\n      if (!headers)\n        return;\n      const keys = ObjectKeys(val);\n      // Retain for(;;) loop for performance reasons\n      // Refs: https://github.com/nodejs/node/pull/30958\n      for (let i = 0; i < keys.length; ++i) {\n        const header = headers[keys[i]];\n        if (header)\n          header[0] = val[keys[i]];\n      }\n    }\n  }\x2C 'OutgoingMessage.prototype._headerNames is deprecated'\x2C 'DEP0066')\n});\n\n\nOutgoingMessage.prototype._renderHeaders = function _renderHeaders() {\n  if (this._header) {\n    throw new ERR_HTTP_HEADERS_SENT('render');\n  }\n\n  const headersMap = this[kOutHeaders];\n  const headers = {};\n\n  if (headersMap !== null) {\n    const keys = ObjectKeys(headersMap);\n    // Retain for(;;) loop for performance reasons\n    // Refs: https://github.com/nodejs/node/pull/30958\n    for (let i = 0\x2C l = keys.length; i < l; i++) {\n      const key = keys[i];\n      headers[headersMap[key][0]] = headersMap[key][1];\n    }\n  }\n  return headers;\n};\n\nOutgoingMessage.prototype.cork = function() {\n  if (this.socket) {\n    this.socket.cork();\n  } else {\n    this[kCorked]++;\n  }\n};\n\nOutgoingMessage.prototype.uncork = function() {\n  if (this.socket) {\n    this.socket.uncork();\n  } else if (this[kCorked]) {\n    this[kCorked]--;\n  }\n};\n\nOutgoingMessage.prototype.setTimeout = function setTimeout(msecs\x2C callback) {\n\n  if (callback) {\n    this.on('timeout'\x2C callback);\n  }\n\n  if (!this.socket) {\n    this.once('socket'\x2C function socketSetTimeoutOnConnect(socket) {\n      socket.setTimeout(msecs);\n    });\n  } else {\n    this.socket.setTimeout(msecs);\n  }\n  return this;\n};\n\n\n// It's possible that the socket will be destroyed\x2C and removed from\n// any messages\x2C before ever calling this.  In that case\x2C just skip\n// it\x2C since something else is destroying this connection anyway.\nOutgoingMessage.prototype.destroy = function destroy(error) {\n  if (this.destroyed) {\n    return this;\n  }\n  this.destroyed = true;\n\n  if (this.socket) {\n    this.socket.destroy(error);\n  } else {\n    this.once('socket'\x2C function socketDestroyOnConnect(socket) {\n      socket.destroy(error);\n    });\n  }\n\n  return this;\n};\n\n\n// This abstract either writing directly to the socket or buffering it.\nOutgoingMessage.prototype._send = function _send(data\x2C encoding\x2C callback) {\n  // This is a shameful hack to get the headers and first body chunk onto\n  // the same packet. Future versions of Node are going to take care of\n  // this at a lower level and in a more general way.\n  if (!this._headerSent) {\n    if (typeof data === 'string' &&\n        (encoding === 'utf8' || encoding === 'latin1' || !encoding)) {\n      data = this._header + data;\n    } else {\n      const header = this._header;\n      this.outputData.unshift({\n        data: header\x2C\n        encoding: 'latin1'\x2C\n        callback: null\n      });\n      this.outputSize += header.length;\n      this._onPendingData(header.length);\n    }\n    this._headerSent = true;\n  }\n  return this._writeRaw(data\x2C encoding\x2C callback);\n};\n\n\nOutgoingMessage.prototype._writeRaw = _writeRaw;\nfunction _writeRaw(data\x2C encoding\x2C callback) {\n  const conn = this.socket;\n  if (conn && conn.destroyed) {\n    // The socket was destroyed. If we're still trying to write to it\x2C\n    // then we haven't gotten the 'close' event yet.\n    return false;\n  }\n\n  if (typeof encoding === 'function') {\n    callback = encoding;\n    encoding = null;\n  }\n\n  if (conn && conn._httpMessage === this && conn.writable) {\n    // There might be pending data in the this.output buffer.\n    if (this.outputData.length) {\n      this._flushOutput(conn);\n    }\n    // Directly write to socket.\n    return conn.write(data\x2C encoding\x2C callback);\n  }\n  // Buffer\x2C as long as we're not destroyed.\n  this.outputData.push({ data\x2C encoding\x2C callback });\n  this.outputSize += data.length;\n  this._onPendingData(data.length);\n  return this.outputSize < HIGH_WATER_MARK;\n}\n\n\nOutgoingMessage.prototype._storeHeader = _storeHeader;\nfunction _storeHeader(firstLine\x2C headers) {\n  // firstLine in the case of request is: 'GET /index.html HTTP/1.1\\r\\n'\n  // in the case of response it is: 'HTTP/1.1 200 OK\\r\\n'\n  const state = {\n    connection: false\x2C\n    contLen: false\x2C\n    te: false\x2C\n    date: false\x2C\n    expect: false\x2C\n    trailer: false\x2C\n    header: firstLine\n  };\n\n  if (headers) {\n    if (headers === this[kOutHeaders]) {\n      for (const key in headers) {\n        const entry = headers[key];\n        processHeader(this\x2C state\x2C entry[0]\x2C entry[1]\x2C false);\n      }\n    } else if (ArrayIsArray(headers)) {\n      if (headers.length && ArrayIsArray(headers[0])) {\n        for (let i = 0; i < headers.length; i++) {\n          const entry = headers[i];\n          processHeader(this\x2C state\x2C entry[0]\x2C entry[1]\x2C true);\n        }\n      } else {\n        if (headers.length % 2 !== 0) {\n          throw new ERR_INVALID_ARG_VALUE('headers'\x2C headers);\n        }\n\n        for (let n = 0; n < headers.length; n += 2) {\n          processHeader(this\x2C state\x2C headers[n + 0]\x2C headers[n + 1]\x2C true);\n        }\n      }\n    } else {\n      for (const key in headers) {\n        if (ObjectPrototypeHasOwnProperty(headers\x2C key)) {\n          processHeader(this\x2C state\x2C key\x2C headers[key]\x2C true);\n        }\n      }\n    }\n  }\n\n  let { header } = state;\n\n  // Date header\n  if (this.sendDate && !state.date) {\n    header += 'Date: ' + utcDate() + CRLF;\n  }\n\n  // Force the connection to close when the response is a 204 No Content or\n  // a 304 Not Modified and the user has set a "Transfer-Encoding: chunked"\n  // header.\n  //\n  // RFC 2616 mandates that 204 and 304 responses MUST NOT have a body but\n  // node.js used to send out a zero chunk anyway to accommodate clients\n  // that don't have special handling for those responses.\n  //\n  // It was pointed out that this might confuse reverse proxies to the point\n  // of creating security liabilities\x2C so suppress the zero chunk and force\n  // the connection to close.\n  if (this.chunkedEncoding && (this.statusCode === 204 ||\n                               this.statusCode === 304)) {\n    debug(this.statusCode + ' response should not use chunked encoding\x2C' +\n          ' closing connection.');\n    this.chunkedEncoding = false;\n    this.shouldKeepAlive = false;\n  }\n\n  // keep-alive logic\n  if (this._removedConnection) {\n    this._last = true;\n    this.shouldKeepAlive = false;\n  } else if (!state.connection) {\n    const shouldSendKeepAlive = this.shouldKeepAlive &&\n        (state.contLen || this.useChunkedEncodingByDefault || this.agent);\n    if (shouldSendKeepAlive) {\n      header += 'Connection: keep-alive' + CRLF;\n      if (this._keepAliveTimeout && this._defaultKeepAlive) {\n        const timeoutSeconds = MathFloor(this._keepAliveTimeout / 1000);\n        header += `Keep-Alive: timeout=${timeoutSeconds}${CRLF}`;\n      }\n    } else {\n      this._last = true;\n      header += 'Connection: close' + CRLF;\n    }\n  }\n\n  if (!state.contLen && !state.te) {\n    if (!this._hasBody) {\n      // Make sure we don't end the 0\\r\\n\\r\\n at the end of the message.\n      this.chunkedEncoding = false;\n    } else if (!this.useChunkedEncodingByDefault) {\n      this._last = true;\n    } else if (!state.trailer &&\n               !this._removedContLen &&\n               typeof this._contentLength === 'number') {\n      header += 'Content-Length: ' + this._contentLength + CRLF;\n    } else if (!this._removedTE) {\n      header += 'Transfer-Encoding: chunked' + CRLF;\n      this.chunkedEncoding = true;\n    } else {\n      // We should only be able to get here if both Content-Length and\n      // Transfer-Encoding are removed by the user.\n      // See: test/parallel/test-http-remove-header-stays-removed.js\n      debug('Both Content-Length and Transfer-Encoding are removed');\n    }\n  }\n\n  // Test non-chunked message does not have trailer header set\x2C\n  // message will be terminated by the first empty line after the\n  // header fields\x2C regardless of the header fields present in the\n  // message\x2C and thus cannot contain a message body or 'trailers'.\n  if (this.chunkedEncoding !== true && state.trailer) {\n    throw new ERR_HTTP_TRAILER_INVALID();\n  }\n\n  this._header = header + CRLF;\n  this._headerSent = false;\n\n  // Wait until the first body chunk\x2C or close()\x2C is sent to flush\x2C\n  // UNLESS we're sending Expect: 100-continue.\n  if (state.expect) this._send('');\n}\n\nfunction processHeader(self\x2C state\x2C key\x2C value\x2C validate) {\n  if (validate)\n    validateHeaderName(key);\n  if (ArrayIsArray(value)) {\n    if (value.length < 2 || !isCookieField(key)) {\n      // Retain for(;;) loop for performance reasons\n      // Refs: https://github.com/nodejs/node/pull/30958\n      for (let i = 0; i < value.length; i++)\n        storeHeader(self\x2C state\x2C key\x2C value[i]\x2C validate);\n      return;\n    }\n    value = ArrayPrototypeJoin(value\x2C '; ');\n  }\n  storeHeader(self\x2C state\x2C key\x2C value\x2C validate);\n}\n\nfunction storeHeader(self\x2C state\x2C key\x2C value\x2C validate) {\n  if (validate)\n    validateHeaderValue(key\x2C value);\n  state.header += key + ': ' + value + CRLF;\n  matchHeader(self\x2C state\x2C key\x2C value);\n}\n\nfunction matchHeader(self\x2C state\x2C field\x2C value) {\n  if (field.length < 4 || field.length > 17)\n    return;\n  field = StringPrototypeToLowerCase(field);\n  switch (field) {\n    case 'connection':\n      state.connection = true;\n      self._removedConnection = false;\n      if (RegExpPrototypeTest(RE_CONN_CLOSE\x2C value))\n        self._last = true;\n      else\n        self.shouldKeepAlive = true;\n      break;\n    case 'transfer-encoding':\n      state.te = true;\n      self._removedTE = false;\n      if (RegExpPrototypeTest(RE_TE_CHUNKED\x2C value))\n        self.chunkedEncoding = true;\n      break;\n    case 'content-length':\n      state.contLen = true;\n      self._removedContLen = false;\n      break;\n    case 'date':\n    case 'expect':\n    case 'trailer':\n      state[field] = true;\n      break;\n    case 'keep-alive':\n      self._defaultKeepAlive = false;\n      break;\n  }\n}\n\nconst validateHeaderName = hideStackFrames((name) => {\n  if (typeof name !== 'string' || !name || !checkIsHttpToken(name)) {\n    throw new ERR_INVALID_HTTP_TOKEN('Header name'\x2C name);\n  }\n});\n\nconst validateHeaderValue = hideStackFrames((name\x2C value) => {\n  if (value === undefined) {\n    throw new ERR_HTTP_INVALID_HEADER_VALUE(value\x2C name);\n  }\n  if (checkInvalidHeaderChar(value)) {\n    debug('Header "%s" contains invalid characters'\x2C name);\n    throw new ERR_INVALID_CHAR('header content'\x2C name);\n  }\n});\n\nOutgoingMessage.prototype.setHeader = function setHeader(name\x2C value) {\n  if (this._header) {\n    throw new ERR_HTTP_HEADERS_SENT('set');\n  }\n  validateHeaderName(name);\n  validateHeaderValue(name\x2C value);\n\n  let headers = this[kOutHeaders];\n  if (headers === null)\n    this[kOutHeaders] = headers = ObjectCreate(null);\n\n  headers[StringPrototypeToLowerCase(name)] = [name\x2C value];\n  return this;\n};\n\n\nOutgoingMessage.prototype.getHeader = function getHeader(name) {\n  validateString(name\x2C 'name');\n\n  const headers = this[kOutHeaders];\n  if (headers === null)\n    return;\n\n  const entry = headers[StringPrototypeToLowerCase(name)];\n  return entry && entry[1];\n};\n\n\n// Returns an array of the names of the current outgoing headers.\nOutgoingMessage.prototype.getHeaderNames = function getHeaderNames() {\n  return this[kOutHeaders] !== null ? ObjectKeys(this[kOutHeaders]) : [];\n};\n\n\n// Returns an array of the names of the current outgoing raw headers.\nOutgoingMessage.prototype.getRawHeaderNames = function getRawHeaderNames() {\n  const headersMap = this[kOutHeaders];\n  if (headersMap === null) return [];\n\n  const values = ObjectValues(headersMap);\n  const headers = Array(values.length);\n  // Retain for(;;) loop for performance reasons\n  // Refs: https://github.com/nodejs/node/pull/30958\n  for (let i = 0\x2C l = values.length; i < l; i++) {\n    headers[i] = values[i][0];\n  }\n\n  return headers;\n};\n\n\n// Returns a shallow copy of the current outgoing headers.\nOutgoingMessage.prototype.getHeaders = function getHeaders() {\n  const headers = this[kOutHeaders];\n  const ret = ObjectCreate(null);\n  if (headers) {\n    const keys = ObjectKeys(headers);\n    // Retain for(;;) loop for performance reasons\n    // Refs: https://github.com/nodejs/node/pull/30958\n    for (let i = 0; i < keys.length; ++i) {\n      const key = keys[i];\n      const val = headers[key][1];\n      ret[key] = val;\n    }\n  }\n  return ret;\n};\n\n\nOutgoingMessage.prototype.hasHeader = function hasHeader(name) {\n  validateString(name\x2C 'name');\n  return this[kOutHeaders] !== null &&\n    !!this[kOutHeaders][StringPrototypeToLowerCase(name)];\n};\n\n\nOutgoingMessage.prototype.removeHeader = function removeHeader(name) {\n  validateString(name\x2C 'name');\n\n  if (this._header) {\n    throw new ERR_HTTP_HEADERS_SENT('remove');\n  }\n\n  const key = StringPrototypeToLowerCase(name);\n\n  switch (key) {\n    case 'connection':\n      this._removedConnection = true;\n      break;\n    case 'content-length':\n      this._removedContLen = true;\n      break;\n    case 'transfer-encoding':\n      this._removedTE = true;\n      break;\n    case 'date':\n      this.sendDate = false;\n      break;\n  }\n\n  if (this[kOutHeaders] !== null) {\n    delete this[kOutHeaders][key];\n  }\n};\n\n\nOutgoingMessage.prototype._implicitHeader = function _implicitHeader() {\n  throw new ERR_METHOD_NOT_IMPLEMENTED('_implicitHeader()');\n};\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C 'headersSent'\x2C {\n  configurable: true\x2C\n  enumerable: true\x2C\n  get: function() { return !!this._header; }\n});\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C 'writableEnded'\x2C {\n  get: function() { return this.finished; }\n});\n\nObjectDefineProperty(OutgoingMessage.prototype\x2C 'writableNeedDrain'\x2C {\n  get: function() {\n    return !this.destroyed && !this.finished && this[kNeedDrain];\n  }\n});\n\nconst crlf_buf = Buffer.from(CRLF);\nOutgoingMessage.prototype.write = function write(chunk\x2C encoding\x2C callback) {\n  if (typeof encoding === 'function') {\n    callback = encoding;\n    encoding = null;\n  }\n\n  const ret = write_(this\x2C chunk\x2C encoding\x2C callback\x2C false);\n  if (!ret)\n    this[kNeedDrain] = true;\n  return ret;\n};\n\nfunction onError(msg\x2C err\x2C callback) {\n  const triggerAsyncId = msg.socket ? msg.socket[async_id_symbol] : undefined;\n  defaultTriggerAsyncIdScope(triggerAsyncId\x2C\n                             process.nextTick\x2C\n                             emitErrorNt\x2C\n                             msg\x2C\n                             err\x2C\n                             callback);\n}\n\nfunction emitErrorNt(msg\x2C err\x2C callback) {\n  callback(err);\n  if (typeof msg.emit === 'function' && !msg._closed) {\n    msg.emit('error'\x2C err);\n  }\n}\n\nfunction write_(msg\x2C chunk\x2C encoding\x2C callback\x2C fromEnd) {\n  if (typeof callback !== 'function')\n    callback = nop;\n\n  let len;\n  if (chunk === null) {\n    throw new ERR_STREAM_NULL_VALUES();\n  } else if (typeof chunk === 'string') {\n    len = Buffer.byteLength(chunk\x2C encoding);\n  } else if (isUint8Array(chunk)) {\n    len = chunk.length;\n  } else {\n    throw new ERR_INVALID_ARG_TYPE(\n      'chunk'\x2C ['string'\x2C 'Buffer'\x2C 'Uint8Array']\x2C chunk);\n  }\n\n  let err;\n  if (msg.finished) {\n    err = new ERR_STREAM_WRITE_AFTER_END();\n  } else if (msg.destroyed) {\n    err = new ERR_STREAM_DESTROYED('write');\n  }\n\n  if (err) {\n    if (!msg.destroyed) {\n      onError(msg\x2C err\x2C callback);\n    } else {\n      process.nextTick(callback\x2C err);\n    }\n    return false;\n  }\n\n  if (!msg._header) {\n    if (fromEnd) {\n      msg._contentLength = len;\n    }\n    msg._implicitHeader();\n  }\n\n  if (!msg._hasBody) {\n    debug('This type of response MUST NOT have a body. ' +\n          'Ignoring write() calls.');\n    process.nextTick(callback);\n    return true;\n  }\n\n  if (!fromEnd && msg.socket && !msg.socket.writableCorked) {\n    msg.socket.cork();\n    process.nextTick(connectionCorkNT\x2C msg.socket);\n  }\n\n  let ret;\n  if (msg.chunkedEncoding && chunk.length !== 0) {\n    msg._send(NumberPrototypeToString(len\x2C 16)\x2C 'latin1'\x2C null);\n    msg._send(crlf_buf\x2C null\x2C null);\n    msg._send(chunk\x2C encoding\x2C null);\n    ret = msg._send(crlf_buf\x2C null\x2C callback);\n  } else {\n    ret = msg._send(chunk\x2C encoding\x2C callback);\n  }\n\n  debug('write ret = ' + ret);\n  return ret;\n}\n\n\nfunction connectionCorkNT(conn) {\n  conn.uncork();\n}\n\n\nOutgoingMessage.prototype.addTrailers = function addTrailers(headers) {\n  this._trailer = '';\n  const keys = ObjectKeys(headers);\n  const isArray = ArrayIsArray(headers);\n  // Retain for(;;) loop for performance reasons\n  // Refs: https://github.com/nodejs/node/pull/30958\n  for (let i = 0\x2C l = keys.length; i < l; i++) {\n    let field\x2C value;\n    const key = keys[i];\n    if (isArray) {\n      field = headers[key][0];\n      value = headers[key][1];\n    } else {\n      field = key;\n      value = headers[key];\n    }\n    if (typeof field !== 'string' || !field || !checkIsHttpToken(field)) {\n      throw new ERR_INVALID_HTTP_TOKEN('Trailer name'\x2C field);\n    }\n    if (checkInvalidHeaderChar(value)) {\n      debug('Trailer "%s" contains invalid characters'\x2C field);\n      throw new ERR_INVALID_CHAR('trailer content'\x2C field);\n    }\n    this._trailer += field + ': ' + value + CRLF;\n  }\n};\n\nfunction onFinish(outmsg) {\n  if (outmsg && outmsg.socket && outmsg.socket._hadError) return;\n  outmsg.emit('finish');\n}\n\nOutgoingMessage.prototype.end = function end(chunk\x2C encoding\x2C callback) {\n  if (typeof chunk === 'function') {\n    callback = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    callback = encoding;\n    encoding = null;\n  }\n\n  if (chunk) {\n    if (this.finished) {\n      onError(this\x2C\n              new ERR_STREAM_WRITE_AFTER_END()\x2C\n              typeof callback !== 'function' ? nop : callback);\n      return this;\n    }\n\n    if (this.socket) {\n      this.socket.cork();\n    }\n\n    write_(this\x2C chunk\x2C encoding\x2C null\x2C true);\n  } else if (this.finished) {\n    if (typeof callback === 'function') {\n      if (!this.writableFinished) {\n        this.on('finish'\x2C callback);\n      } else {\n        callback(new ERR_STREAM_ALREADY_FINISHED('end'));\n      }\n    }\n    return this;\n  } else if (!this._header) {\n    if (this.socket) {\n      this.socket.cork();\n    }\n\n    this._contentLength = 0;\n    this._implicitHeader();\n  }\n\n  if (typeof callback === 'function')\n    this.once('finish'\x2C callback);\n\n  const finish = onFinish.bind(undefined\x2C this);\n\n  if (this._hasBody && this.chunkedEncoding) {\n    this._send('0\\r\\n' + this._trailer + '\\r\\n'\x2C 'latin1'\x2C finish);\n  } else {\n    // Force a flush\x2C HACK.\n    this._send(''\x2C 'latin1'\x2C finish);\n  }\n\n  if (this.socket) {\n    // Fully uncork connection on end().\n    this.socket._writableState.corked = 1;\n    this.socket.uncork();\n  }\n  this[kCorked] = 0;\n\n  this.finished = true;\n\n  // There is the first message on the outgoing queue\x2C and we've sent\n  // everything to the socket.\n  debug('outgoing message end.');\n  if (this.outputData.length === 0 &&\n      this.socket &&\n      this.socket._httpMessage === this) {\n    this._finish();\n  }\n\n  return this;\n};\n\n\nOutgoingMessage.prototype._finish = function _finish() {\n  assert(this.socket);\n  this.emit('prefinish');\n};\n\n\n// This logic is probably a bit confusing. Let me explain a bit:\n//\n// In both HTTP servers and clients it is possible to queue up several\n// outgoing messages. This is easiest to imagine in the case of a client.\n// Take the following situation:\n//\n//    req1 = client.request('GET'\x2C '/');\n//    req2 = client.request('POST'\x2C '/');\n//\n// When the user does\n//\n//   req2.write('hello world\\n');\n//\n// it's possible that the first request has not been completely flushed to\n// the socket yet. Thus the outgoing messages need to be prepared to queue\n// up data internally before sending it on further to the socket's queue.\n//\n// This function\x2C outgoingFlush()\x2C is called by both the Server and Client\n// to attempt to flush any pending messages out to the socket.\nOutgoingMessage.prototype._flush = function _flush() {\n  const socket = this.socket;\n\n  if (socket && socket.writable) {\n    // There might be remaining data in this.output; write it out\n    const ret = this._flushOutput(socket);\n\n    if (this.finished) {\n      // This is a queue to the server or client to bring in the next this.\n      this._finish();\n    } else if (ret && this[kNeedDrain]) {\n      this[kNeedDrain] = false;\n      this.emit('drain');\n    }\n  }\n};\n\nOutgoingMessage.prototype._flushOutput = function _flushOutput(socket) {\n  while (this[kCorked]) {\n    this[kCorked]--;\n    socket.cork();\n  }\n\n  const outputLength = this.outputData.length;\n  if (outputLength <= 0)\n    return undefined;\n\n  const outputData = this.outputData;\n  socket.cork();\n  let ret;\n  // Retain for(;;) loop for performance reasons\n  // Refs: https://github.com/nodejs/node/pull/30958\n  for (let i = 0; i < outputLength; i++) {\n    const { data\x2C encoding\x2C callback } = outputData[i];\n    ret = socket.write(data\x2C encoding\x2C callback);\n  }\n  socket.uncork();\n\n  this.outputData = [];\n  this._onPendingData(-this.outputSize);\n  this.outputSize = 0;\n\n  return ret;\n};\n\n\nOutgoingMessage.prototype.flushHeaders = function flushHeaders() {\n  if (!this._header) {\n    this._implicitHeader();\n  }\n\n  // Force-flush the headers.\n  this._send('');\n};\n\nOutgoingMessage.prototype.pipe = function pipe() {\n  // OutgoingMessage should be write-only. Piping from it is disabled.\n  this.emit('error'\x2C new ERR_STREAM_CANNOT_PIPE());\n};\n\nOutgoingMessage.prototype[EE.captureRejectionSymbol] =\nfunction(err\x2C event) {\n  this.destroy(err);\n};\n\nmodule.exports = {\n  validateHeaderName\x2C\n  validateHeaderValue\x2C\n  OutgoingMessage\n};\n
code-source-info,0x3f8cd555ba5e,124,0,28594,C0O0C4O28594,,
tick,0x7efc3363549c,126354,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x3f8cd5552fef,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x7efc3363549c,126368,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x3f8cd5552fef,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Function,10,126375,0x3f8cd555d54e,1476, node:_http_outgoing:1:1,0x3f8cd555b9c8,~
code-source-info,0x3f8cd555d54e,124,0,28594,C0O0C216O1159C222O1168C228O1184C234O1206C240O1219C246O1246C252O1262C257O1286C263O1300C269O1316C275O1349C280O1373C286O1396C292O1426C297O1488C300O1488C305O1460C310O1538C313O1538C317O1538C319O1577C322O1577C327O1611C330O1611C334O1611C336O1651C339O1651C344O1722C347O1722C352O1685C358O1698C364O1707C370O1767C373O1767C378O1756C384O1801C387O1801C392O1858C396O1851C398O1915C402O1908C404O2013C407O2013C412O1950C423O1991C429O2465C432O2465C437O2465C442O2069C448O2096C454O2131C460O2161C466O2189C472O2215C478O2242C484O2264C490O2296C496O2324C502O2357C508O2389C514O2417C520O2445C525O2520C528O2520C533O2501C539O2577C542O2577C547O2560C553O2622C556O2622C561O2655C574O2656C580O2622C582O2726C585O2726C587O2761C593O2795C596O2795C600O2795C602O2826C606O2826C608O2859C612O2859C614O2914C618O2907C620O4480C628O4498C633O4443C638O4510C641O4510C646O4595C659O4630C667O4558C672O4815C685O4852C693O4778C698O4924C711O4957C719O4887C724O5088C737O5128C745O5051C750O5260C763O5293C771O5223C776O5447C789O5492C812O5492C821O5634C844O5634C853O5410C858O6236C871O6270C879O6319C887O6199C892O6404C905O6453C928O6453C937O7009C960O7009C969O6367C974O7560C983O7585C987O8110C996O8125C1000O8241C1009O8258C1013O8395C1022O8416C1026O8935C1035O8953C1039O9332C1048O9348C1052O10117C1059O10137C1063O11008C1070O11031C1074O17027C1079O17027C1083O17027C1085O17221C1090O17221C1094O17221C1096O17527C1105O17547C1109O17929C1118O17949C1122O18259C1131O18284C1135O18479C1144O18507C1148O18989C1157O19010C1161O19441C1170O19461C1174O19641C1183O19664C1187O20251C1196O20277C1200O20410C1213O20487C1221O20373C1226O20567C1239O20604C1247O20530C1252O20683C1265O20724C1273O20646C1278O20829C1281O20836C1289O20836C1294O20829C1296O20864C1305O20880C1309O23276C1318O23298C1322O24287C1331O24301C1335O26040C1344O26058C1348O26913C1357O26930C1361O27381C1370O27404C1374O28069C1383O28092C1387O28244C1396O28259C1400O28422C1405O28435C1418O28459C1426O28509C1436O28530C1446O28552C1456O28575C1466O28524C1475O28593,,
code-creation,Eval,10,126755,0x3f8cd55607ce,5, node:internal/http:1:1,0x3f8cd55605c8,~
script-source,125,node:internal/http,'use strict';\n\nconst {\n  Symbol\x2C\n  Date\x2C\n  DatePrototypeGetMilliseconds\x2C\n  DatePrototypeToUTCString\x2C\n} = primordials;\n\nconst { setUnrefTimeout } = require('internal/timers');\n\nconst { InternalPerformanceEntry } = require('internal/perf/performance_entry');\n\nconst {\n  enqueue\x2C\n  hasObserver\x2C\n} = require('internal/perf/observe');\n\nlet utcCache;\n\nfunction utcDate() {\n  if (!utcCache) cache();\n  return utcCache;\n}\n\nfunction cache() {\n  const d = new Date();\n  utcCache = DatePrototypeToUTCString(d);\n  setUnrefTimeout(resetCache\x2C 1000 - DatePrototypeGetMilliseconds(d));\n}\n\nfunction resetCache() {\n  utcCache = undefined;\n}\n\nfunction emitStatistics(statistics) {\n  if (!hasObserver('http') || statistics == null) return;\n  const startTime = statistics.startTime;\n  const diff = process.hrtime(startTime);\n  const entry = new InternalPerformanceEntry(\n    'HttpRequest'\x2C\n    'http'\x2C\n    startTime[0] * 1000 + startTime[1] / 1e6\x2C\n    diff[0] * 1000 + diff[1] / 1e6\x2C\n    undefined\x2C\n  );\n  enqueue(entry);\n}\n\nmodule.exports = {\n  kOutHeaders: Symbol('kOutHeaders')\x2C\n  kNeedDrain: Symbol('kNeedDrain')\x2C\n  utcDate\x2C\n  emitStatistics\x2C\n};\n
code-source-info,0x3f8cd55607ce,125,0,1130,C0O0C4O1130,,
code-creation,Function,10,126857,0x3f8cd5560a9e,176, node:internal/http:1:1,0x3f8cd5560738,~
code-source-info,0x3f8cd5560a9e,125,0,1130,C0O0C55O25C60O35C66O43C72O75C78O147C81O147C86O127C92O213C95O213C100O184C106O296C109O296C114O268C120O279C126O335C127O335C129O1005C137O1039C148O1076C158O1100C164O1111C170O1020C175O1129,,
code-creation,LazyCompile,10,127001,0x3f8cd5561026,13,getDefaultHighWaterMark node:internal/streams/state:15:33,0x456580d3bc0,~
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,0x3f8cd5561026,53,343,397,C0O360C12O395,,
code-creation,LazyCompile,10,127218,0x3f8cd55616be,43,hideStackFrames node:internal/errors:382:25,0x30ec9dba4188,~
code-source-info,0x3f8cd55616be,11,10626,10850,C0O10751C5O10775C9O10770C13O10783C21O10804C28O10825C35O10783C40O10838C42O10848,,
tick,0x156209b,127295,0,0x0,0,0x27ba8ebf8906,0x27ba8ebf5ed2,0x3f8cd555da57,0x13b40bab9d2d,0x13b40bab8ffd,0x3f8cd5552fef,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f880c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,128235,0x3f8cd5563dd6,5, node:_http_server:1:1,0x3f8cd5563710,~
script-source,126,node:_http_server,// 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  Error\x2C\n  ObjectKeys\x2C\n  ObjectSetPrototypeOf\x2C\n  RegExpPrototypeTest\x2C\n  Symbol\x2C\n  SymbolFor\x2C\n} = primordials;\n\nconst net = require('net');\nconst EE = require('events');\nconst assert = require('internal/assert');\nconst {\n  parsers\x2C\n  freeParser\x2C\n  CRLF\x2C\n  continueExpression\x2C\n  chunkExpression\x2C\n  kIncomingMessage\x2C\n  kRequestTimeout\x2C\n  HTTPParser\x2C\n  isLenient\x2C\n  _checkInvalidHeaderChar: checkInvalidHeaderChar\x2C\n  prepareError\x2C\n} = require('_http_common');\nconst { OutgoingMessage } = require('_http_outgoing');\nconst {\n  kOutHeaders\x2C\n  kNeedDrain\x2C\n  emitStatistics\n} = require('internal/http');\nconst {\n  defaultTriggerAsyncIdScope\x2C\n  getOrSetAsyncId\n} = require('internal/async_hooks');\nconst { IncomingMessage } = require('_http_incoming');\nconst {\n  connResetException\x2C\n  codes\n} = require('internal/errors');\nconst {\n  ERR_HTTP_REQUEST_TIMEOUT\x2C\n  ERR_HTTP_HEADERS_SENT\x2C\n  ERR_HTTP_INVALID_STATUS_CODE\x2C\n  ERR_HTTP_SOCKET_ENCODING\x2C\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_INVALID_ARG_VALUE\x2C\n  ERR_INVALID_CHAR\n} = codes;\nconst {\n  validateInteger\x2C\n  validateBoolean\n} = require('internal/validators');\nconst Buffer = require('buffer').Buffer;\nconst {\n  DTRACE_HTTP_SERVER_REQUEST\x2C\n  DTRACE_HTTP_SERVER_RESPONSE\n} = require('internal/dtrace');\nconst { setTimeout\x2C clearTimeout } = require('timers');\n\nlet debug = require('internal/util/debuglog').debuglog('http'\x2C (fn) => {\n  debug = fn;\n});\n\nconst dc = require('diagnostics_channel');\nconst onRequestStartChannel = dc.channel('http.server.request.start');\nconst onResponseFinishChannel = dc.channel('http.server.response.finish');\n\nconst kServerResponse = Symbol('ServerResponse');\nconst kServerResponseStatistics = Symbol('ServerResponseStatistics');\n\nconst {\n  hasObserver\x2C\n} = require('internal/perf/observe');\n\nconst STATUS_CODES = {\n  100: 'Continue'\x2C                   // RFC 7231 6.2.1\n  101: 'Switching Protocols'\x2C        // RFC 7231 6.2.2\n  102: 'Processing'\x2C                 // RFC 2518 10.1 (obsoleted by RFC 4918)\n  103: 'Early Hints'\x2C                // RFC 8297 2\n  200: 'OK'\x2C                         // RFC 7231 6.3.1\n  201: 'Created'\x2C                    // RFC 7231 6.3.2\n  202: 'Accepted'\x2C                   // RFC 7231 6.3.3\n  203: 'Non-Authoritative Information'\x2C // RFC 7231 6.3.4\n  204: 'No Content'\x2C                 // RFC 7231 6.3.5\n  205: 'Reset Content'\x2C              // RFC 7231 6.3.6\n  206: 'Partial Content'\x2C            // RFC 7233 4.1\n  207: 'Multi-Status'\x2C               // RFC 4918 11.1\n  208: 'Already Reported'\x2C           // RFC 5842 7.1\n  226: 'IM Used'\x2C                    // RFC 3229 10.4.1\n  300: 'Multiple Choices'\x2C           // RFC 7231 6.4.1\n  301: 'Moved Permanently'\x2C          // RFC 7231 6.4.2\n  302: 'Found'\x2C                      // RFC 7231 6.4.3\n  303: 'See Other'\x2C                  // RFC 7231 6.4.4\n  304: 'Not Modified'\x2C               // RFC 7232 4.1\n  305: 'Use Proxy'\x2C                  // RFC 7231 6.4.5\n  307: 'Temporary Redirect'\x2C         // RFC 7231 6.4.7\n  308: 'Permanent Redirect'\x2C         // RFC 7238 3\n  400: 'Bad Request'\x2C                // RFC 7231 6.5.1\n  401: 'Unauthorized'\x2C               // RFC 7235 3.1\n  402: 'Payment Required'\x2C           // RFC 7231 6.5.2\n  403: 'Forbidden'\x2C                  // RFC 7231 6.5.3\n  404: 'Not Found'\x2C                  // RFC 7231 6.5.4\n  405: 'Method Not Allowed'\x2C         // RFC 7231 6.5.5\n  406: 'Not Acceptable'\x2C             // RFC 7231 6.5.6\n  407: 'Proxy Authentication Required'\x2C // RFC 7235 3.2\n  408: 'Request Timeout'\x2C            // RFC 7231 6.5.7\n  409: 'Conflict'\x2C                   // RFC 7231 6.5.8\n  410: 'Gone'\x2C                       // RFC 7231 6.5.9\n  411: 'Length Required'\x2C            // RFC 7231 6.5.10\n  412: 'Precondition Failed'\x2C        // RFC 7232 4.2\n  413: 'Payload Too Large'\x2C          // RFC 7231 6.5.11\n  414: 'URI Too Long'\x2C               // RFC 7231 6.5.12\n  415: 'Unsupported Media Type'\x2C     // RFC 7231 6.5.13\n  416: 'Range Not Satisfiable'\x2C      // RFC 7233 4.4\n  417: 'Expectation Failed'\x2C         // RFC 7231 6.5.14\n  418: 'I\\'m a Teapot'\x2C              // RFC 7168 2.3.3\n  421: 'Misdirected Request'\x2C        // RFC 7540 9.1.2\n  422: 'Unprocessable Entity'\x2C       // RFC 4918 11.2\n  423: 'Locked'\x2C                     // RFC 4918 11.3\n  424: 'Failed Dependency'\x2C          // RFC 4918 11.4\n  425: 'Too Early'\x2C                  // RFC 8470 5.2\n  426: 'Upgrade Required'\x2C           // RFC 2817 and RFC 7231 6.5.15\n  428: 'Precondition Required'\x2C      // RFC 6585 3\n  429: 'Too Many Requests'\x2C          // RFC 6585 4\n  431: 'Request Header Fields Too Large'\x2C // RFC 6585 5\n  451: 'Unavailable For Legal Reasons'\x2C // RFC 7725 3\n  500: 'Internal Server Error'\x2C      // RFC 7231 6.6.1\n  501: 'Not Implemented'\x2C            // RFC 7231 6.6.2\n  502: 'Bad Gateway'\x2C                // RFC 7231 6.6.3\n  503: 'Service Unavailable'\x2C        // RFC 7231 6.6.4\n  504: 'Gateway Timeout'\x2C            // RFC 7231 6.6.5\n  505: 'HTTP Version Not Supported'\x2C // RFC 7231 6.6.6\n  506: 'Variant Also Negotiates'\x2C    // RFC 2295 8.1\n  507: 'Insufficient Storage'\x2C       // RFC 4918 11.5\n  508: 'Loop Detected'\x2C              // RFC 5842 7.2\n  509: 'Bandwidth Limit Exceeded'\x2C\n  510: 'Not Extended'\x2C               // RFC 2774 7\n  511: 'Network Authentication Required' // RFC 6585 6\n};\n\nconst kOnMessageBegin = HTTPParser.kOnMessageBegin | 0;\nconst kOnExecute = HTTPParser.kOnExecute | 0;\nconst kOnTimeout = HTTPParser.kOnTimeout | 0;\nconst kLenientAll = HTTPParser.kLenientAll | 0;\nconst kLenientNone = HTTPParser.kLenientNone | 0;\n\nclass HTTPServerAsyncResource {\n  constructor(type\x2C socket) {\n    this.type = type;\n    this.socket = socket;\n  }\n}\n\nfunction ServerResponse(req) {\n  OutgoingMessage.call(this);\n\n  if (req.method === 'HEAD') this._hasBody = false;\n\n  this.req = req;\n  this.sendDate = true;\n  this._sent100 = false;\n  this._expect_continue = false;\n\n  if (req.httpVersionMajor < 1 || req.httpVersionMinor < 1) {\n    this.useChunkedEncodingByDefault = RegExpPrototypeTest(chunkExpression\x2C\n                                                           req.headers.te);\n    this.shouldKeepAlive = false;\n  }\n\n  if (hasObserver('http')) {\n    this[kServerResponseStatistics] = {\n      startTime: process.hrtime()\n    };\n  }\n}\nObjectSetPrototypeOf(ServerResponse.prototype\x2C OutgoingMessage.prototype);\nObjectSetPrototypeOf(ServerResponse\x2C OutgoingMessage);\n\nServerResponse.prototype._finish = function _finish() {\n  DTRACE_HTTP_SERVER_RESPONSE(this.socket);\n  emitStatistics(this[kServerResponseStatistics]);\n  OutgoingMessage.prototype._finish.call(this);\n};\n\n\nServerResponse.prototype.statusCode = 200;\nServerResponse.prototype.statusMessage = undefined;\n\nfunction onServerResponseClose() {\n  // EventEmitter.emit makes a copy of the 'close' listeners array before\n  // calling the listeners. detachSocket() unregisters onServerResponseClose\n  // but if detachSocket() is called\x2C directly or indirectly\x2C by a 'close'\n  // listener\x2C onServerResponseClose is still in that copy of the listeners\n  // array. That is\x2C in the example below\x2C b still gets called even though\n  // it's been removed by a:\n  //\n  //   var EventEmitter = require('events');\n  //   var obj = new EventEmitter();\n  //   obj.on('event'\x2C a);\n  //   obj.on('event'\x2C b);\n  //   function a() { obj.removeListener('event'\x2C b) }\n  //   function b() { throw "BAM!" }\n  //   obj.emit('event');  // throws\n  //\n  // Ergo\x2C we need to deal with stale 'close' events and handle the case\n  // where the ServerResponse object has already been deconstructed.\n  // Fortunately\x2C that requires only a single if check. :-)\n  if (this._httpMessage) {\n    this._httpMessage.destroyed = true;\n    this._httpMessage._closed = true;\n    this._httpMessage.emit('close');\n  }\n}\n\nServerResponse.prototype.assignSocket = function assignSocket(socket) {\n  assert(!socket._httpMessage);\n  socket._httpMessage = this;\n  socket.on('close'\x2C onServerResponseClose);\n  this.socket = socket;\n  this.emit('socket'\x2C socket);\n  this._flush();\n};\n\nServerResponse.prototype.detachSocket = function detachSocket(socket) {\n  assert(socket._httpMessage === this);\n  socket.removeListener('close'\x2C onServerResponseClose);\n  socket._httpMessage = null;\n  this.socket = null;\n};\n\nServerResponse.prototype.writeContinue = function writeContinue(cb) {\n  this._writeRaw(`HTTP/1.1 100 Continue${CRLF}${CRLF}`\x2C 'ascii'\x2C cb);\n  this._sent100 = true;\n};\n\nServerResponse.prototype.writeProcessing = function writeProcessing(cb) {\n  this._writeRaw(`HTTP/1.1 102 Processing${CRLF}${CRLF}`\x2C 'ascii'\x2C cb);\n};\n\nServerResponse.prototype._implicitHeader = function _implicitHeader() {\n  this.writeHead(this.statusCode);\n};\n\nServerResponse.prototype.writeHead = writeHead;\nfunction writeHead(statusCode\x2C reason\x2C obj) {\n  const originalStatusCode = statusCode;\n\n  statusCode |= 0;\n  if (statusCode < 100 || statusCode > 999) {\n    throw new ERR_HTTP_INVALID_STATUS_CODE(originalStatusCode);\n  }\n\n\n  if (typeof reason === 'string') {\n    // writeHead(statusCode\x2C reasonPhrase[\x2C headers])\n    this.statusMessage = reason;\n  } else {\n    // writeHead(statusCode[\x2C headers])\n    if (!this.statusMessage)\n      this.statusMessage = STATUS_CODES[statusCode] || 'unknown';\n    obj = reason;\n  }\n  this.statusCode = statusCode;\n\n  let headers;\n  if (this[kOutHeaders]) {\n    // Slow-case: when progressive API and header fields are passed.\n    let k;\n    if (ArrayIsArray(obj)) {\n      if (obj.length % 2 !== 0) {\n        throw new ERR_INVALID_ARG_VALUE('headers'\x2C obj);\n      }\n\n      for (let n = 0; n < obj.length; n += 2) {\n        k = obj[n + 0];\n        if (k) this.setHeader(k\x2C obj[n + 1]);\n      }\n    } else if (obj) {\n      const keys = ObjectKeys(obj);\n      // Retain for(;;) loop for performance reasons\n      // Refs: https://github.com/nodejs/node/pull/30958\n      for (let i = 0; i < keys.length; i++) {\n        k = keys[i];\n        if (k) this.setHeader(k\x2C obj[k]);\n      }\n    }\n    if (k === undefined && this._header) {\n      throw new ERR_HTTP_HEADERS_SENT('render');\n    }\n    // Only progressive api is used\n    headers = this[kOutHeaders];\n  } else {\n    // Only writeHead() called\n    headers = obj;\n  }\n\n  if (checkInvalidHeaderChar(this.statusMessage))\n    throw new ERR_INVALID_CHAR('statusMessage');\n\n  const statusLine = `HTTP/1.1 ${statusCode} ${this.statusMessage}${CRLF}`;\n\n  if (statusCode === 204 || statusCode === 304 ||\n      (statusCode >= 100 && statusCode <= 199)) {\n    // RFC 2616\x2C 10.2.5:\n    // The 204 response MUST NOT include a message-body\x2C and thus is always\n    // terminated by the first empty line after the header fields.\n    // RFC 2616\x2C 10.3.5:\n    // The 304 response MUST NOT contain a message-body\x2C and thus is always\n    // terminated by the first empty line after the header fields.\n    // RFC 2616\x2C 10.1 Informational 1xx:\n    // This class of status code indicates a provisional response\x2C\n    // consisting only of the Status-Line and optional headers\x2C and is\n    // terminated by an empty line.\n    this._hasBody = false;\n  }\n\n  // Don't keep alive connections where the client expects 100 Continue\n  // but we sent a final status; they may put extra bytes on the wire.\n  if (this._expect_continue && !this._sent100) {\n    this.shouldKeepAlive = false;\n  }\n\n  this._storeHeader(statusLine\x2C headers);\n\n  return this;\n}\n\n// Docs-only deprecated: DEP0063\nServerResponse.prototype.writeHeader = ServerResponse.prototype.writeHead;\n\nfunction storeHTTPOptions(options) {\n  this[kIncomingMessage] = options.IncomingMessage || IncomingMessage;\n  this[kServerResponse] = options.ServerResponse || ServerResponse;\n\n  const maxHeaderSize = options.maxHeaderSize;\n  if (maxHeaderSize !== undefined)\n    validateInteger(maxHeaderSize\x2C 'maxHeaderSize'\x2C 0);\n  this.maxHeaderSize = maxHeaderSize;\n\n  const insecureHTTPParser = options.insecureHTTPParser;\n  if (insecureHTTPParser !== undefined)\n    validateBoolean(insecureHTTPParser\x2C 'options.insecureHTTPParser');\n  this.insecureHTTPParser = insecureHTTPParser;\n}\n\nfunction Server(options\x2C requestListener) {\n  if (!(this instanceof Server)) return new Server(options\x2C requestListener);\n\n  if (typeof options === 'function') {\n    requestListener = options;\n    options = {};\n  } else if (options == null || typeof options === 'object') {\n    options = { ...options };\n  } else {\n    throw new ERR_INVALID_ARG_TYPE('options'\x2C 'object'\x2C options);\n  }\n\n  storeHTTPOptions.call(this\x2C options);\n  net.Server.call(this\x2C { allowHalfOpen: true });\n\n  if (requestListener) {\n    this.on('request'\x2C requestListener);\n  }\n\n  // Similar option to this. Too lazy to write my own docs.\n  // http://www.squid-cache.org/Doc/config/half_closed_clients/\n  // https://wiki.squid-cache.org/SquidFaq/InnerWorkings#What_is_a_half-closed_filedescriptor.3F\n  this.httpAllowHalfOpen = false;\n\n  this.on('connection'\x2C connectionListener);\n\n  this.timeout = 0;\n  this.keepAliveTimeout = 5000;\n  this.maxHeadersCount = null;\n  this.headersTimeout = 60 * 1000; // 60 seconds\n  this.requestTimeout = 0;\n}\nObjectSetPrototypeOf(Server.prototype\x2C net.Server.prototype);\nObjectSetPrototypeOf(Server\x2C net.Server);\n\n\nServer.prototype.setTimeout = function setTimeout(msecs\x2C callback) {\n  this.timeout = msecs;\n  if (callback)\n    this.on('timeout'\x2C callback);\n  return this;\n};\n\nServer.prototype[EE.captureRejectionSymbol] = function(err\x2C event\x2C ...args) {\n  switch (event) {\n    case 'request':\n      const { 1: res } = args;\n      if (!res.headersSent && !res.writableEnded) {\n        // Don't leak headers.\n        const names = res.getHeaderNames();\n        for (let i = 0; i < names.length; i++) {\n          res.removeHeader(names[i]);\n        }\n        res.statusCode = 500;\n        res.end(STATUS_CODES[500]);\n      } else {\n        res.destroy();\n      }\n      break;\n    default:\n      net.Server.prototype[SymbolFor('nodejs.rejection')]\n        .apply(this\x2C arguments);\n  }\n};\n\nfunction connectionListener(socket) {\n  defaultTriggerAsyncIdScope(\n    getOrSetAsyncId(socket)\x2C connectionListenerInternal\x2C this\x2C socket\n  );\n}\n\nfunction connectionListenerInternal(server\x2C socket) {\n  debug('SERVER new http connection');\n\n  // Ensure that the server property of the socket is correctly set.\n  // See https://github.com/nodejs/node/issues/13435\n  socket.server = server;\n\n  // If the user has added a listener to the server\x2C\n  // request\x2C or response\x2C then it's their responsibility.\n  // otherwise\x2C destroy on timeout by default\n  if (server.timeout && typeof socket.setTimeout === 'function')\n    socket.setTimeout(server.timeout);\n  socket.on('timeout'\x2C socketOnTimeout);\n\n  const parser = parsers.alloc();\n\n  const lenient = server.insecureHTTPParser === undefined ?\n    isLenient() : server.insecureHTTPParser;\n\n  // TODO(addaleax): This doesn't play well with the\n  // `async_hooks.currentResource()` proposal\x2C see\n  // https://github.com/nodejs/node/pull/21313\n  parser.initialize(\n    HTTPParser.REQUEST\x2C\n    new HTTPServerAsyncResource('HTTPINCOMINGMESSAGE'\x2C socket)\x2C\n    server.maxHeaderSize || 0\x2C\n    lenient ? kLenientAll : kLenientNone\x2C\n    server.headersTimeout || 0\x2C\n  );\n  parser.socket = socket;\n  socket.parser = parser;\n\n  // Propagate headers limit from server instance to parser\n  if (typeof server.maxHeadersCount === 'number') {\n    parser.maxHeaderPairs = server.maxHeadersCount << 1;\n  }\n\n  const state = {\n    onData: null\x2C\n    onEnd: null\x2C\n    onClose: null\x2C\n    onDrain: null\x2C\n    outgoing: []\x2C\n    incoming: []\x2C\n    // `outgoingData` is an approximate amount of bytes queued through all\n    // inactive responses. If more data than the high watermark is queued - we\n    // need to pause TCP socket/HTTP parser\x2C and wait until the data will be\n    // sent to the client.\n    outgoingData: 0\x2C\n    keepAliveTimeoutSet: false\n  };\n  state.onData = socketOnData.bind(undefined\x2C\n                                   server\x2C socket\x2C parser\x2C state);\n  state.onEnd = socketOnEnd.bind(undefined\x2C\n                                 server\x2C socket\x2C parser\x2C state);\n  state.onClose = socketOnClose.bind(undefined\x2C\n                                     socket\x2C state);\n  state.onDrain = socketOnDrain.bind(undefined\x2C\n                                     socket\x2C state);\n  socket.on('data'\x2C state.onData);\n  socket.on('error'\x2C socketOnError);\n  socket.on('end'\x2C state.onEnd);\n  socket.on('close'\x2C state.onClose);\n  socket.on('drain'\x2C state.onDrain);\n  parser.onIncoming = parserOnIncoming.bind(undefined\x2C\n                                            server\x2C socket\x2C state);\n\n  // We are consuming socket\x2C so it won't get any actual data\n  socket.on('resume'\x2C onSocketResume);\n  socket.on('pause'\x2C onSocketPause);\n\n  // Overrides to unconsume on `data`\x2C `readable` listeners\n  socket.on = generateSocketListenerWrapper('on');\n  socket.addListener = generateSocketListenerWrapper('addListener');\n  socket.prependListener = generateSocketListenerWrapper('prependListener');\n  socket.setEncoding = socketSetEncoding;\n\n  // We only consume the socket if it has never been consumed before.\n  if (socket._handle && socket._handle.isStreamBase &&\n      !socket._handle._consumed) {\n    parser._consumed = true;\n    socket._handle._consumed = true;\n    parser.consume(socket._handle);\n  }\n  parser[kOnExecute] =\n    onParserExecute.bind(undefined\x2C\n                         server\x2C socket\x2C parser\x2C state);\n\n  parser[kOnTimeout] =\n    onParserTimeout.bind(undefined\x2C\n                         server\x2C socket);\n\n  // When receiving new requests on the same socket (pipelining or keep alive)\n  // make sure the requestTimeout is active.\n  parser[kOnMessageBegin] =\n    setRequestTimeout.bind(undefined\x2C\n                           server\x2C socket);\n\n  // This protects from DOS attack where an attacker establish the connection\n  // without sending any data on applications where server.timeout is left to\n  // the default value of zero.\n  setRequestTimeout(server\x2C socket);\n\n  socket._paused = false;\n}\n\nfunction socketSetEncoding() {\n  throw new ERR_HTTP_SOCKET_ENCODING();\n}\n\nfunction updateOutgoingData(socket\x2C state\x2C delta) {\n  state.outgoingData += delta;\n  socketOnDrain(socket\x2C state);\n}\n\nfunction socketOnDrain(socket\x2C state) {\n  const needPause = state.outgoingData > socket.writableHighWaterMark;\n\n  // If we previously paused\x2C then start reading again.\n  if (socket._paused && !needPause) {\n    socket._paused = false;\n    if (socket.parser)\n      socket.parser.resume();\n    socket.resume();\n  }\n\n  const msg = socket._httpMessage;\n  if (msg && !msg.finished && msg[kNeedDrain]) {\n    msg[kNeedDrain] = false;\n    msg.emit('drain');\n  }\n}\n\nfunction socketOnTimeout() {\n  const req = this.parser && this.parser.incoming;\n  const reqTimeout = req && !req.complete && req.emit('timeout'\x2C this);\n  const res = this._httpMessage;\n  const resTimeout = res && res.emit('timeout'\x2C this);\n  const serverTimeout = this.server.emit('timeout'\x2C this);\n\n  if (!reqTimeout && !resTimeout && !serverTimeout)\n    this.destroy();\n}\n\nfunction socketOnClose(socket\x2C state) {\n  debug('server socket close');\n  freeParser(socket.parser\x2C null\x2C socket);\n  abortIncoming(state.incoming);\n}\n\nfunction abortIncoming(incoming) {\n  while (incoming.length) {\n    const req = incoming.shift();\n    req.destroy(connResetException('aborted'));\n  }\n  // Abort socket._httpMessage ?\n}\n\nfunction socketOnEnd(server\x2C socket\x2C parser\x2C state) {\n  const ret = parser.finish();\n\n  if (ret instanceof Error) {\n    debug('parse error');\n    // socketOnError has additional logic and will call socket.destroy(err).\n    socketOnError.call(socket\x2C ret);\n  } else if (!server.httpAllowHalfOpen) {\n    socket.end();\n  } else if (state.outgoing.length) {\n    state.outgoing[state.outgoing.length - 1]._last = true;\n  } else if (socket._httpMessage) {\n    socket._httpMessage._last = true;\n  } else {\n    socket.end();\n  }\n}\n\nfunction socketOnData(server\x2C socket\x2C parser\x2C state\x2C d) {\n  assert(!socket._paused);\n  debug('SERVER socketOnData %d'\x2C d.length);\n\n  const ret = parser.execute(d);\n  onParserExecuteCommon(server\x2C socket\x2C parser\x2C state\x2C ret\x2C d);\n}\n\nfunction onRequestTimeout(socket) {\n  socket[kRequestTimeout] = undefined;\n  // socketOnError has additional logic and will call socket.destroy(err).\n  socketOnError.call(socket\x2C new ERR_HTTP_REQUEST_TIMEOUT());\n}\n\nfunction onParserExecute(server\x2C socket\x2C parser\x2C state\x2C ret) {\n  // When underlying `net.Socket` instance is consumed - no\n  // `data` events are emitted\x2C and thus `socket.setTimeout` fires the\n  // callback even if the data is constantly flowing into the socket.\n  // See\x2C https://github.com/nodejs/node/commit/ec2822adaad76b126b5cccdeaa1addf2376c9aa6\n  socket._unrefTimer();\n  debug('SERVER socketOnParserExecute %d'\x2C ret);\n  onParserExecuteCommon(server\x2C socket\x2C parser\x2C state\x2C ret\x2C undefined);\n}\n\nfunction onParserTimeout(server\x2C socket) {\n  const serverTimeout = server.emit('timeout'\x2C socket);\n\n  if (!serverTimeout)\n    socket.destroy();\n}\n\nconst noop = () => {};\nconst badRequestResponse = Buffer.from(\n  `HTTP/1.1 400 ${STATUS_CODES[400]}${CRLF}` +\n  `Connection: close${CRLF}${CRLF}`\x2C 'ascii'\n);\nconst requestTimeoutResponse = Buffer.from(\n  `HTTP/1.1 408 ${STATUS_CODES[408]}${CRLF}` +\n  `Connection: close${CRLF}${CRLF}`\x2C 'ascii'\n);\nconst requestHeaderFieldsTooLargeResponse = Buffer.from(\n  `HTTP/1.1 431 ${STATUS_CODES[431]}${CRLF}` +\n  `Connection: close${CRLF}${CRLF}`\x2C 'ascii'\n);\nfunction socketOnError(e) {\n  // Ignore further errors\n  this.removeListener('error'\x2C socketOnError);\n  this.on('error'\x2C noop);\n\n  if (!this.server.emit('clientError'\x2C e\x2C this)) {\n    if (this.writable && this.bytesWritten === 0) {\n      let response;\n\n      switch (e.code) {\n        case 'HPE_HEADER_OVERFLOW':\n          response = requestHeaderFieldsTooLargeResponse;\n          break;\n        case 'ERR_HTTP_REQUEST_TIMEOUT':\n          response = requestTimeoutResponse;\n          break;\n        default:\n          response = badRequestResponse;\n          break;\n      }\n\n      this.write(response);\n    }\n    this.destroy(e);\n  }\n}\n\nfunction onParserExecuteCommon(server\x2C socket\x2C parser\x2C state\x2C ret\x2C d) {\n  resetSocketTimeout(server\x2C socket\x2C state);\n\n  if (ret instanceof Error) {\n    prepareError(ret\x2C parser\x2C d);\n    ret.rawPacket = d || parser.getCurrentBuffer();\n    debug('parse error'\x2C ret);\n    socketOnError.call(socket\x2C ret);\n  } else if (parser.incoming && parser.incoming.upgrade) {\n    // Upgrade or CONNECT\n    const req = parser.incoming;\n    debug('SERVER upgrade or connect'\x2C req.method);\n\n    if (!d)\n      d = parser.getCurrentBuffer();\n\n    socket.removeListener('data'\x2C state.onData);\n    socket.removeListener('end'\x2C state.onEnd);\n    socket.removeListener('close'\x2C state.onClose);\n    socket.removeListener('drain'\x2C state.onDrain);\n    socket.removeListener('error'\x2C socketOnError);\n    socket.removeListener('timeout'\x2C socketOnTimeout);\n    unconsume(parser\x2C socket);\n    parser.finish();\n    freeParser(parser\x2C req\x2C socket);\n    parser = null;\n\n    const eventName = req.method === 'CONNECT' ? 'connect' : 'upgrade';\n    if (eventName === 'upgrade' || server.listenerCount(eventName) > 0) {\n      debug('SERVER have listener for %s'\x2C eventName);\n      const bodyHead = d.slice(ret\x2C d.length);\n\n      socket.readableFlowing = null;\n\n      // Clear the requestTimeout after upgrading the connection.\n      clearRequestTimeout(req);\n\n      server.emit(eventName\x2C req\x2C socket\x2C bodyHead);\n    } else {\n      // Got CONNECT method\x2C but have no handler.\n      socket.destroy();\n    }\n  } else if (parser.incoming && parser.incoming.method === 'PRI') {\n    debug('SERVER got PRI request');\n    socket.destroy();\n  } else {\n    // When receiving new requests on the same socket (pipelining or keep alive)\n    // make sure the requestTimeout is active.\n    parser[kOnMessageBegin] =\n      setRequestTimeout.bind(undefined\x2C server\x2C socket);\n  }\n\n  if (socket._paused && socket.parser) {\n    // onIncoming paused the socket\x2C we should pause the parser as well\n    debug('pause parser');\n    socket.parser.pause();\n  }\n}\n\nfunction clearIncoming(req) {\n  req = req || this;\n  const parser = req.socket && req.socket.parser;\n  // Reset the .incoming property so that the request object can be gc'ed.\n  if (parser && parser.incoming === req) {\n    if (req.readableEnded) {\n      parser.incoming = null;\n    } else {\n      req.on('end'\x2C clearIncoming);\n    }\n  }\n}\n\nfunction setRequestTimeout(server\x2C socket) {\n  // Set the request timeout handler.\n  if (\n    !socket[kRequestTimeout] &&\n    server.requestTimeout && server.requestTimeout > 0\n  ) {\n    debug('requestTimeout timer set');\n    socket[kRequestTimeout] =\n      setTimeout(onRequestTimeout\x2C server.requestTimeout\x2C socket).unref();\n  }\n}\n\nfunction clearRequestTimeout(req) {\n  if (!req) {\n    req = this;\n  }\n\n  if (!req[kRequestTimeout]) {\n    return;\n  }\n\n  debug('requestTimeout timer cleared');\n  clearTimeout(req[kRequestTimeout]);\n  req[kRequestTimeout] = undefined;\n}\n\nfunction resOnFinish(req\x2C res\x2C socket\x2C state\x2C server) {\n  if (onResponseFinishChannel.hasSubscribers) {\n    onResponseFinishChannel.publish({\n      request: req\x2C\n      response: res\x2C\n      socket\x2C\n      server\n    });\n  }\n\n  // Usually the first incoming element should be our request.  it may\n  // be that in the case abortIncoming() was called that the incoming\n  // array will be empty.\n  assert(state.incoming.length === 0 || state.incoming[0] === req);\n\n  state.incoming.shift();\n\n  // If the user never called req.read()\x2C and didn't pipe() or\n  // .resume() or .on('data')\x2C then we call req._dump() so that the\n  // bytes will be pulled off the wire.\n  if (!req._consuming && !req._readableState.resumeScheduled)\n    req._dump();\n\n  // Make sure the requestTimeout is cleared before finishing.\n  // This might occur if the application has sent a response\n  // without consuming the request body\x2C which would have already\n  // cleared the timer.\n  // clearRequestTimeout can be executed even if the timer is not active\x2C\n  // so this is safe.\n  clearRequestTimeout(req);\n\n  res.detachSocket(socket);\n  clearIncoming(req);\n  process.nextTick(emitCloseNT\x2C res);\n\n  if (res._last) {\n    if (typeof socket.destroySoon === 'function') {\n      socket.destroySoon();\n    } else {\n      socket.end();\n    }\n  } else if (state.outgoing.length === 0) {\n    if (server.keepAliveTimeout && typeof socket.setTimeout === 'function') {\n      socket.setTimeout(server.keepAliveTimeout);\n      state.keepAliveTimeoutSet = true;\n    }\n  } else {\n    // Start sending the next message\n    const m = state.outgoing.shift();\n    if (m) {\n      m.assignSocket(socket);\n    }\n  }\n}\n\nfunction emitCloseNT(self) {\n  self.destroyed = true;\n  self._closed = true;\n  self.emit('close');\n}\n\n// The following callback is issued after the headers have been read on a\n// new message. In this callback we setup the response object and pass it\n// to the user.\nfunction parserOnIncoming(server\x2C socket\x2C state\x2C req\x2C keepAlive) {\n  resetSocketTimeout(server\x2C socket\x2C state);\n\n  if (req.upgrade) {\n    req.upgrade = req.method === 'CONNECT' ||\n                  server.listenerCount('upgrade') > 0;\n    if (req.upgrade)\n      return 2;\n  }\n\n  state.incoming.push(req);\n\n  // If the writable end isn't consuming\x2C then stop reading\n  // so that we don't become overwhelmed by a flood of\n  // pipelined requests that may never be resolved.\n  if (!socket._paused) {\n    const ws = socket._writableState;\n    if (ws.needDrain || state.outgoingData >= socket.writableHighWaterMark) {\n      socket._paused = true;\n      // We also need to pause the parser\x2C but don't do that until after\n      // the call to execute\x2C because we may still be processing the last\n      // chunk.\n      socket.pause();\n    }\n  }\n\n  const res = new server[kServerResponse](req);\n  res._keepAliveTimeout = server.keepAliveTimeout;\n  res._onPendingData = updateOutgoingData.bind(undefined\x2C\n                                               socket\x2C state);\n\n  res.shouldKeepAlive = keepAlive;\n  DTRACE_HTTP_SERVER_REQUEST(req\x2C socket);\n\n  if (onRequestStartChannel.hasSubscribers) {\n    onRequestStartChannel.publish({\n      request: req\x2C\n      response: res\x2C\n      socket\x2C\n      server\n    });\n  }\n\n  if (socket._httpMessage) {\n    // There are already pending outgoing res\x2C append.\n    state.outgoing.push(res);\n  } else {\n    res.assignSocket(socket);\n  }\n\n  // When we're finished writing the response\x2C check if this is the last\n  // response\x2C if so destroy the socket.\n  res.on('finish'\x2C\n         resOnFinish.bind(undefined\x2C\n                          req\x2C res\x2C socket\x2C state\x2C server));\n\n  if (req.headers.expect !== undefined &&\n      (req.httpVersionMajor === 1 && req.httpVersionMinor === 1)) {\n    if (RegExpPrototypeTest(continueExpression\x2C req.headers.expect)) {\n      res._expect_continue = true;\n\n      if (server.listenerCount('checkContinue') > 0) {\n        server.emit('checkContinue'\x2C req\x2C res);\n      } else {\n        res.writeContinue();\n        server.emit('request'\x2C req\x2C res);\n      }\n    } else if (server.listenerCount('checkExpectation') > 0) {\n      server.emit('checkExpectation'\x2C req\x2C res);\n    } else {\n      res.writeHead(417);\n      res.end();\n    }\n  } else {\n    req.on('end'\x2C clearRequestTimeout);\n\n    server.emit('request'\x2C req\x2C res);\n  }\n  return 0;  // No special treatment.\n}\n\nfunction resetSocketTimeout(server\x2C socket\x2C state) {\n  if (!state.keepAliveTimeoutSet)\n    return;\n\n  socket.setTimeout(server.timeout || 0);\n  state.keepAliveTimeoutSet = false;\n}\n\nfunction onSocketResume() {\n  // It may seem that the socket is resumed\x2C but this is an enemy's trick to\n  // deceive us! `resume` is emitted asynchronously\x2C and may be called from\n  // `incoming.readStart()`. Stop the socket again here\x2C just to preserve the\n  // state.\n  //\n  // We don't care about stream semantics for the consumed socket anyway.\n  if (this._paused) {\n    this.pause();\n    return;\n  }\n\n  if (this._handle && !this._handle.reading) {\n    this._handle.reading = true;\n    this._handle.readStart();\n  }\n}\n\nfunction onSocketPause() {\n  if (this._handle && this._handle.reading) {\n    this._handle.reading = false;\n    this._handle.readStop();\n  }\n}\n\nfunction unconsume(parser\x2C socket) {\n  if (socket._handle) {\n    if (parser._consumed)\n      parser.unconsume();\n    parser._consumed = false;\n    socket.removeListener('pause'\x2C onSocketPause);\n    socket.removeListener('resume'\x2C onSocketResume);\n  }\n}\n\nfunction generateSocketListenerWrapper(originalFnName) {\n  return function socketListenerWrap(ev\x2C fn) {\n    const res = net.Socket.prototype[originalFnName].call(this\x2C\n                                                          ev\x2C fn);\n    if (!this.parser) {\n      this.on = net.Socket.prototype.on;\n      this.addListener = net.Socket.prototype.addListener;\n      this.prependListener = net.Socket.prototype.prependListener;\n      return res;\n    }\n\n    if (ev === 'data' || ev === 'readable')\n      unconsume(this.parser\x2C this);\n\n    return res;\n  };\n}\n\nmodule.exports = {\n  STATUS_CODES\x2C\n  Server\x2C\n  ServerResponse\x2C\n  storeHTTPOptions\x2C\n  _connectionListener: connectionListener\x2C\n  kServerResponse\n};\n
code-source-info,0x3f8cd5563dd6,126,0,32121,C0O0C4O32121,,
tick,0x7efc33a646e7,130493,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303f8857,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x7efc336353a5,130508,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303f8857,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x7efc336c02cf,130512,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1c78303f8857,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Function,10,130515,0x3f8cd5565606,1410, node:_http_server:1:1,0x3f8cd5563d40,~
code-source-info,0x3f8cd5565606,126,0,32121,C0O0C362O1159C368O1175C374O1184C380O1198C385O1222C391O1245C396O1255C402O1296C405O1296C409O1296C411O1323C414O1323C419O1357C422O1357C426O1357C428O1604C431O1604C436O1395C442O1406C448O1420C454O1428C460O1450C466O1469C472O1489C478O1508C484O1522C490O1560C496O1586C502O1657C505O1657C510O1637C516O1742C519O1742C524O1694C530O1709C536O1723C542O1828C545O1828C550O1778C556O1808C562O1889C565O1889C570O1869C576O1958C579O1958C584O1926C590O1948C595O1996C601O2024C607O2049C613O2081C619O2109C625O2133C631O2158C637O2235C640O2235C645O2196C651O2215C657O2282C660O2282C665O2299C670O2380C673O2380C678O2318C684O2348C690O2445C693O2445C698O2416C704O2428C710O2477C713O2477C718O2510C731O2511C737O2477C739O2568C742O2568C747O2633C755O2633C760O2630C762O2706C770O2706C775O2703C777O2771C780O2771C784O2771C786O2831C789O2831C793O2831C795O2895C798O2895C803O2878C809O2951C813O2951C815O6430C818O6441C822O6457C825O6430C827O6481C830O6492C834O6503C837O6481C839O6527C842O6538C846O6549C849O6527C851O6574C854O6585C858O6597C861O6574C863O6623C866O6634C870O6647C873O6623C896O6653C898O7355C901O7391C909O7418C914O7355C919O7430C925O7430C930O7486C933O7501C942O7519C946O7690C949O7705C958O7726C962O7733C965O7748C971O7772C975O8853C978O8868C987O8891C991O9108C994O9123C1003O9146C1007O9333C1010O9348C1019O9372C1023O9501C1026O9516C1035O9542C1039O9651C1042O9666C1051O9692C1055O9762C1058O9777C1065O9797C1069O12443C1072O12458C1080O12497C1085O12507C1089O12480C1093O14103C1096O14131C1104O14146C1109O14153C1114O14103C1119O14165C1125O14198C1130O14165C1135O14209C1138O14216C1147O14237C1151O14371C1154O14378C1159O14391C1168O14415C1172O21984C1176O21984C1178O22028C1193O22064C1203O22072C1213O22103C1220O22110C1224O22079C1231O22028C1237O22021C1239O22167C1254O22203C1264O22211C1274O22242C1281O22249C1285O22218C1292O22167C1298O22160C1300O22319C1315O22355C1325O22363C1335O22394C1342O22401C1346O22370C1353O22319C1359O22312C1361O31974C1368O31995C1374O32011C1380O32021C1386O32039C1392O32080C1398O32102C1404O31989C1409O32120,,
code-creation,Eval,10,131007,0x3f8cd5568796,5, node:diagnostics_channel:1:1,0x3f8cd5568538,~
script-source,127,node:diagnostics_channel,'use strict';\n\nconst {\n  ArrayPrototypeIndexOf\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeSplice\x2C\n  ObjectCreate\x2C\n  ObjectGetPrototypeOf\x2C\n  ObjectSetPrototypeOf\x2C\n  SymbolHasInstance\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_INVALID_ARG_TYPE\x2C\n  }\n} = require('internal/errors');\nconst {\n  validateFunction\x2C\n} = require('internal/validators');\n\nconst { triggerUncaughtException } = internalBinding('errors');\n\nconst { WeakReference } = internalBinding('util');\n\n// TODO(qard): should there be a C++ channel interface?\nclass ActiveChannel {\n  subscribe(subscription) {\n    validateFunction(subscription\x2C 'subscription');\n    ArrayPrototypePush(this._subscribers\x2C subscription);\n  }\n\n  unsubscribe(subscription) {\n    const index = ArrayPrototypeIndexOf(this._subscribers\x2C subscription);\n    if (index >= 0) {\n      ArrayPrototypeSplice(this._subscribers\x2C index\x2C 1);\n\n      // When there are no more active subscribers\x2C restore to fast prototype.\n      if (!this._subscribers.length) {\n        // eslint-disable-next-line no-use-before-define\n        ObjectSetPrototypeOf(this\x2C Channel.prototype);\n      }\n    }\n  }\n\n  get hasSubscribers() {\n    return true;\n  }\n\n  publish(data) {\n    for (let i = 0; i < this._subscribers.length; i++) {\n      try {\n        const onMessage = this._subscribers[i];\n        onMessage(data\x2C this.name);\n      } catch (err) {\n        process.nextTick(() => {\n          triggerUncaughtException(err\x2C false);\n        });\n      }\n    }\n  }\n}\n\nclass Channel {\n  constructor(name) {\n    this._subscribers = undefined;\n    this.name = name;\n  }\n\n  static [SymbolHasInstance](instance) {\n    const prototype = ObjectGetPrototypeOf(instance);\n    return prototype === Channel.prototype ||\n           prototype === ActiveChannel.prototype;\n  }\n\n  subscribe(subscription) {\n    ObjectSetPrototypeOf(this\x2C ActiveChannel.prototype);\n    this._subscribers = [];\n    this.subscribe(subscription);\n  }\n\n  get hasSubscribers() {\n    return false;\n  }\n\n  publish() {}\n}\n\nconst channels = ObjectCreate(null);\n\nfunction channel(name) {\n  let channel;\n  const ref = channels[name];\n  if (ref) channel = ref.get();\n  if (channel) return channel;\n\n  if (typeof name !== 'string' && typeof name !== 'symbol') {\n    throw new ERR_INVALID_ARG_TYPE('channel'\x2C ['string'\x2C 'symbol']\x2C name);\n  }\n\n  channel = new Channel(name);\n  channels[name] = new WeakReference(channel);\n  return channel;\n}\n\nfunction hasSubscribers(name) {\n  let channel;\n  const ref = channels[name];\n  if (ref) channel = ref.get();\n  if (!channel) {\n    return false;\n  }\n\n  return channel.hasSubscribers;\n}\n\nmodule.exports = {\n  channel\x2C\n  hasSubscribers\x2C\n  Channel\n};\n
code-source-info,0x3f8cd5568796,127,0,2641,C0O0C4O2641,,
code-creation,Function,10,131238,0x3f8cd55692a6,308, node:diagnostics_channel:1:1,0x3f8cd5568700,~
code-source-info,0x3f8cd55692a6,127,0,2641,C0O0C55O25C61O50C67O72C73O96C78O112C84O136C90O160C95O250C98O250C103O250C108O220C114O310C117O310C122O288C128O380C131O380C136O351C142O434C145O434C150O416C197O516C215O1577C267O1467C269O1998C271O1998C275O1998C277O2580C284O2601C290O2612C296O2630C302O2595C307O2640,,
code-creation,LazyCompile,10,131428,0x3f8cd5569b3e,105,channel node:diagnostics_channel:91:17,0x3f8cd55687c8,~
code-source-info,0x3f8cd5569b3e,127,2035,2392,C0O2050C2O2073C9O2081C13O2091C15O2114C20O2114C25O2123C29O2136C31O2151C32O2155C44O2219C62O2225C67O2219C68O2297C75O2307C81O2328C88O2349C93O2345C98O2343C102O2375C104O2390,,
code-creation,LazyCompile,10,131470,0x3f8cd556a0c6,13,Channel node:diagnostics_channel:65:14,0x3f8cd5568a20,~
code-source-info,0x3f8cd556a0c6,127,1496,1565,C0O1509C1O1527C5O1544C7O1554C12O1564,,
tick,0xe80f36,131554,0,0x0,0,0x11f81c0,0x3f8cd556592f,0x13b40bab9d2d,0x13b40bab8ffd,0x1c78303f8857,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,131648,0x3f8cd556a436,5,byteLength node:buffer:626:17,0x73467ca5c08,~
code-source-info,0x3f8cd556a436,18,17956,17981,C0O17975C4O17981,,
code-creation,LazyCompile,10,131691,0x3f8cd556a51e,23,write node:buffer:627:12,0x73467ca5cf0,~
code-source-info,0x3f8cd556a51e,18,17994,18059,C0O18028C17O18028C22O18059,,
code-creation,LazyCompile,10,131868,0x3f8cd556a756,151,getESMFacade node:internal/bootstrap/loaders:264:15,0x30ec9db8f718,~
code-source-info,0x3f8cd556a756,9,8231,8860,C0O8231C8O8249C14O8269C18O8276C19O8304C29O8304C34O8289C39O8352C42O8365C51O8396C53O8396C55O8426C62O8451C67O8426C72O8468C82O8468C87O8516C89O8568C102O8530C107O8528C111O8774C116O8781C121O8781C125O8805C130O8812C140O8812C146O8849C150O8856,,
code-creation,LazyCompile,10,131946,0x3f8cd556aad6,40, node:internal/bootstrap/loaders:273:15,0x3f8cd556a640,~
code-source-info,0x3f8cd556aad6,9,8595,8700,C0O8608C5O8621C10O8621C14O8649C24O8670C27O8683C32O8649C39O8699,,
code-creation,LazyCompile,10,131998,0x3f8cd556ac26,89,syncExports node:internal/bootstrap/loaders:287:14,0x30ec9db8f788,~
code-source-info,0x3f8cd556ac26,9,9167,9500,C0O9195C5O9220C11O9249C13O9262C17O9254C22O9304C24O9309C28O9322C30O9337C35O9352C37O9375C42O9382C51O9434C54O9446C59O9472C67O9434C73O9382C79O9271C84O9236C88O9499,,
code-creation,LazyCompile,10,132035,0x3f8cd556ad9e,35,getOwn node:internal/bootstrap/loaders:180:16,0x30ec9db8f420,~
code-source-info,0x3f8cd556ad9e,9,5498,5652,C0O5534C5O5541C14O5595C26O5595C34O5650,,
code-creation,LazyCompile,10,132125,0x3f8cd556b05e,43,get node:http:132:6,0x1c78303f83b8,~
code-source-info,0x3f8cd556b05e,115,3767,3973,C0O3776C6O3844C12O3844C17O3825C22O3879C25O3895C32O3893C38O3948C42O3969,,
code-creation,LazyCompile,10,132159,0x3f8cd556b656,10,get node:http:145:6,0x1c78303f8408,~
code-source-info,0x3f8cd556b656,115,4080,4122,C0O4089C5O4106C9O4118,,
tick,0x1557f85,132615,0,0x0,0,0x1c78303e47a5,0x158e77f
code-creation,Script,10,132743,0x3f8cd556bcae,72, file:///var/www/quadcode.com/build/env.js:1:1,0x3f8cd556ba68,~
script-source,128,file:///var/www/quadcode.com/build/env.js,/* global "" */\n\nconst expected = new Set([\n\x09'SOCKET_PATH'\x2C\n\x09'HOST'\x2C\n\x09'PORT'\x2C\n\x09'ORIGIN'\x2C\n\x09'XFF_DEPTH'\x2C\n\x09'ADDRESS_HEADER'\x2C\n\x09'PROTOCOL_HEADER'\x2C\n\x09'HOST_HEADER'\x2C\n\x09'BODY_SIZE_LIMIT'\n]);\n\nif ("") {\n\x09for (const name in process.env) {\n\x09\x09if (name.startsWith("")) {\n\x09\x09\x09const unprefixed = name.slice("".length);\n\x09\x09\x09if (!expected.has(unprefixed)) {\n\x09\x09\x09\x09throw new Error(\n\x09\x09\x09\x09\x09`You should change envPrefix (${""}) to avoid conflicts with existing environment variables \u2014 unexpectedly saw ${name}`\n\x09\x09\x09\x09);\n\x09\x09\x09}\n\x09\x09}\n\x09}\n}\n\n/**\n * @param {string} name\n * @param {any} fallback\n */\nfunction env(name\x2C fallback) {\n\x09const prefixed = "" + name;\n\x09return prefixed in process.env ? process.env[prefixed] : fallback;\n}\n\nexport { env };\n
code-source-info,0x3f8cd556bcae,128,0,709,C10O0C28O0C48O0C52O34C63O34C71O709,,
tick,0x115a8e3,133690,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
code-creation,Script,10,134317,0x3f8cd5574ec6,819, file:///var/www/quadcode.com/build/handler.js:1:1,0x3f8cd5571cc0,~
script-source,129,file:///var/www/quadcode.com/build/handler.js,import './shims.js';\nimport fs$1 from 'node:fs';\nimport path from 'node:path';\nimport * as fs from 'fs';\nimport { readdirSync\x2C statSync } from 'fs';\nimport { resolve\x2C join\x2C normalize } from 'path';\nimport * as qs from 'querystring';\nimport { fileURLToPath } from 'node:url';\nimport { Server } from './server/index.js';\nimport { manifest\x2C prerendered } from './server/manifest.js';\nimport { env } from './env.js';\n\nfunction totalist(dir\x2C callback\x2C pre='') {\n\x09dir = resolve('.'\x2C dir);\n\x09let arr = readdirSync(dir);\n\x09let i=0\x2C abs\x2C stats;\n\x09for (; i < arr.length; i++) {\n\x09\x09abs = join(dir\x2C arr[i]);\n\x09\x09stats = statSync(abs);\n\x09\x09stats.isDirectory()\n\x09\x09\x09? totalist(abs\x2C callback\x2C join(pre\x2C arr[i]))\n\x09\x09\x09: callback(join(pre\x2C arr[i])\x2C abs\x2C stats);\n\x09}\n}\n\n/**\n * @typedef ParsedURL\n * @type {import('.').ParsedURL}\n */\n\n/**\n * @typedef Request\n * @property {string} url\n * @property {ParsedURL} _parsedUrl\n */\n\n/**\n * @param {Request} req\n * @returns {ParsedURL|void}\n */\nfunction parse$1(req) {\n\x09let raw = req.url;\n\x09if (raw == null) return;\n\n\x09let prev = req._parsedUrl;\n\x09if (prev && prev.raw === raw) return prev;\n\n\x09let pathname=raw\x2C search=''\x2C query;\n\n\x09if (raw.length > 1) {\n\x09\x09let idx = raw.indexOf('?'\x2C 1);\n\n\x09\x09if (idx !== -1) {\n\x09\x09\x09search = raw.substring(idx);\n\x09\x09\x09pathname = raw.substring(0\x2C idx);\n\x09\x09\x09if (search.length > 1) {\n\x09\x09\x09\x09query = qs.parse(search.substring(1));\n\x09\x09\x09}\n\x09\x09}\n\x09}\n\n\x09return req._parsedUrl = { pathname\x2C search\x2C query\x2C raw };\n}\n\nconst mimes = {\n  "ez": "application/andrew-inset"\x2C\n  "aw": "application/applixware"\x2C\n  "atom": "application/atom+xml"\x2C\n  "atomcat": "application/atomcat+xml"\x2C\n  "atomdeleted": "application/atomdeleted+xml"\x2C\n  "atomsvc": "application/atomsvc+xml"\x2C\n  "dwd": "application/atsc-dwd+xml"\x2C\n  "held": "application/atsc-held+xml"\x2C\n  "rsat": "application/atsc-rsat+xml"\x2C\n  "bdoc": "application/bdoc"\x2C\n  "xcs": "application/calendar+xml"\x2C\n  "ccxml": "application/ccxml+xml"\x2C\n  "cdfx": "application/cdfx+xml"\x2C\n  "cdmia": "application/cdmi-capability"\x2C\n  "cdmic": "application/cdmi-container"\x2C\n  "cdmid": "application/cdmi-domain"\x2C\n  "cdmio": "application/cdmi-object"\x2C\n  "cdmiq": "application/cdmi-queue"\x2C\n  "cu": "application/cu-seeme"\x2C\n  "mpd": "application/dash+xml"\x2C\n  "davmount": "application/davmount+xml"\x2C\n  "dbk": "application/docbook+xml"\x2C\n  "dssc": "application/dssc+der"\x2C\n  "xdssc": "application/dssc+xml"\x2C\n  "es": "application/ecmascript"\x2C\n  "ecma": "application/ecmascript"\x2C\n  "emma": "application/emma+xml"\x2C\n  "emotionml": "application/emotionml+xml"\x2C\n  "epub": "application/epub+zip"\x2C\n  "exi": "application/exi"\x2C\n  "fdt": "application/fdt+xml"\x2C\n  "pfr": "application/font-tdpfr"\x2C\n  "geojson": "application/geo+json"\x2C\n  "gml": "application/gml+xml"\x2C\n  "gpx": "application/gpx+xml"\x2C\n  "gxf": "application/gxf"\x2C\n  "gz": "application/gzip"\x2C\n  "hjson": "application/hjson"\x2C\n  "stk": "application/hyperstudio"\x2C\n  "ink": "application/inkml+xml"\x2C\n  "inkml": "application/inkml+xml"\x2C\n  "ipfix": "application/ipfix"\x2C\n  "its": "application/its+xml"\x2C\n  "jar": "application/java-archive"\x2C\n  "war": "application/java-archive"\x2C\n  "ear": "application/java-archive"\x2C\n  "ser": "application/java-serialized-object"\x2C\n  "class": "application/java-vm"\x2C\n  "js": "application/javascript"\x2C\n  "mjs": "application/javascript"\x2C\n  "json": "application/json"\x2C\n  "map": "application/json"\x2C\n  "json5": "application/json5"\x2C\n  "jsonml": "application/jsonml+json"\x2C\n  "jsonld": "application/ld+json"\x2C\n  "lgr": "application/lgr+xml"\x2C\n  "lostxml": "application/lost+xml"\x2C\n  "hqx": "application/mac-binhex40"\x2C\n  "cpt": "application/mac-compactpro"\x2C\n  "mads": "application/mads+xml"\x2C\n  "webmanifest": "application/manifest+json"\x2C\n  "mrc": "application/marc"\x2C\n  "mrcx": "application/marcxml+xml"\x2C\n  "ma": "application/mathematica"\x2C\n  "nb": "application/mathematica"\x2C\n  "mb": "application/mathematica"\x2C\n  "mathml": "application/mathml+xml"\x2C\n  "mbox": "application/mbox"\x2C\n  "mscml": "application/mediaservercontrol+xml"\x2C\n  "metalink": "application/metalink+xml"\x2C\n  "meta4": "application/metalink4+xml"\x2C\n  "mets": "application/mets+xml"\x2C\n  "maei": "application/mmt-aei+xml"\x2C\n  "musd": "application/mmt-usd+xml"\x2C\n  "mods": "application/mods+xml"\x2C\n  "m21": "application/mp21"\x2C\n  "mp21": "application/mp21"\x2C\n  "mp4s": "application/mp4"\x2C\n  "m4p": "application/mp4"\x2C\n  "doc": "application/msword"\x2C\n  "dot": "application/msword"\x2C\n  "mxf": "application/mxf"\x2C\n  "nq": "application/n-quads"\x2C\n  "nt": "application/n-triples"\x2C\n  "cjs": "application/node"\x2C\n  "bin": "application/octet-stream"\x2C\n  "dms": "application/octet-stream"\x2C\n  "lrf": "application/octet-stream"\x2C\n  "mar": "application/octet-stream"\x2C\n  "so": "application/octet-stream"\x2C\n  "dist": "application/octet-stream"\x2C\n  "distz": "application/octet-stream"\x2C\n  "pkg": "application/octet-stream"\x2C\n  "bpk": "application/octet-stream"\x2C\n  "dump": "application/octet-stream"\x2C\n  "elc": "application/octet-stream"\x2C\n  "deploy": "application/octet-stream"\x2C\n  "exe": "application/octet-stream"\x2C\n  "dll": "application/octet-stream"\x2C\n  "deb": "application/octet-stream"\x2C\n  "dmg": "application/octet-stream"\x2C\n  "iso": "application/octet-stream"\x2C\n  "img": "application/octet-stream"\x2C\n  "msi": "application/octet-stream"\x2C\n  "msp": "application/octet-stream"\x2C\n  "msm": "application/octet-stream"\x2C\n  "buffer": "application/octet-stream"\x2C\n  "oda": "application/oda"\x2C\n  "opf": "application/oebps-package+xml"\x2C\n  "ogx": "application/ogg"\x2C\n  "omdoc": "application/omdoc+xml"\x2C\n  "onetoc": "application/onenote"\x2C\n  "onetoc2": "application/onenote"\x2C\n  "onetmp": "application/onenote"\x2C\n  "onepkg": "application/onenote"\x2C\n  "oxps": "application/oxps"\x2C\n  "relo": "application/p2p-overlay+xml"\x2C\n  "xer": "application/patch-ops-error+xml"\x2C\n  "pdf": "application/pdf"\x2C\n  "pgp": "application/pgp-encrypted"\x2C\n  "asc": "application/pgp-signature"\x2C\n  "sig": "application/pgp-signature"\x2C\n  "prf": "application/pics-rules"\x2C\n  "p10": "application/pkcs10"\x2C\n  "p7m": "application/pkcs7-mime"\x2C\n  "p7c": "application/pkcs7-mime"\x2C\n  "p7s": "application/pkcs7-signature"\x2C\n  "p8": "application/pkcs8"\x2C\n  "ac": "application/pkix-attr-cert"\x2C\n  "cer": "application/pkix-cert"\x2C\n  "crl": "application/pkix-crl"\x2C\n  "pkipath": "application/pkix-pkipath"\x2C\n  "pki": "application/pkixcmp"\x2C\n  "pls": "application/pls+xml"\x2C\n  "ai": "application/postscript"\x2C\n  "eps": "application/postscript"\x2C\n  "ps": "application/postscript"\x2C\n  "provx": "application/provenance+xml"\x2C\n  "cww": "application/prs.cww"\x2C\n  "pskcxml": "application/pskc+xml"\x2C\n  "raml": "application/raml+yaml"\x2C\n  "rdf": "application/rdf+xml"\x2C\n  "owl": "application/rdf+xml"\x2C\n  "rif": "application/reginfo+xml"\x2C\n  "rnc": "application/relax-ng-compact-syntax"\x2C\n  "rl": "application/resource-lists+xml"\x2C\n  "rld": "application/resource-lists-diff+xml"\x2C\n  "rs": "application/rls-services+xml"\x2C\n  "rapd": "application/route-apd+xml"\x2C\n  "sls": "application/route-s-tsid+xml"\x2C\n  "rusd": "application/route-usd+xml"\x2C\n  "gbr": "application/rpki-ghostbusters"\x2C\n  "mft": "application/rpki-manifest"\x2C\n  "roa": "application/rpki-roa"\x2C\n  "rsd": "application/rsd+xml"\x2C\n  "rss": "application/rss+xml"\x2C\n  "rtf": "application/rtf"\x2C\n  "sbml": "application/sbml+xml"\x2C\n  "scq": "application/scvp-cv-request"\x2C\n  "scs": "application/scvp-cv-response"\x2C\n  "spq": "application/scvp-vp-request"\x2C\n  "spp": "application/scvp-vp-response"\x2C\n  "sdp": "application/sdp"\x2C\n  "senmlx": "application/senml+xml"\x2C\n  "sensmlx": "application/sensml+xml"\x2C\n  "setpay": "application/set-payment-initiation"\x2C\n  "setreg": "application/set-registration-initiation"\x2C\n  "shf": "application/shf+xml"\x2C\n  "siv": "application/sieve"\x2C\n  "sieve": "application/sieve"\x2C\n  "smi": "application/smil+xml"\x2C\n  "smil": "application/smil+xml"\x2C\n  "rq": "application/sparql-query"\x2C\n  "srx": "application/sparql-results+xml"\x2C\n  "gram": "application/srgs"\x2C\n  "grxml": "application/srgs+xml"\x2C\n  "sru": "application/sru+xml"\x2C\n  "ssdl": "application/ssdl+xml"\x2C\n  "ssml": "application/ssml+xml"\x2C\n  "swidtag": "application/swid+xml"\x2C\n  "tei": "application/tei+xml"\x2C\n  "teicorpus": "application/tei+xml"\x2C\n  "tfi": "application/thraud+xml"\x2C\n  "tsd": "application/timestamped-data"\x2C\n  "toml": "application/toml"\x2C\n  "trig": "application/trig"\x2C\n  "ttml": "application/ttml+xml"\x2C\n  "ubj": "application/ubjson"\x2C\n  "rsheet": "application/urc-ressheet+xml"\x2C\n  "td": "application/urc-targetdesc+xml"\x2C\n  "vxml": "application/voicexml+xml"\x2C\n  "wasm": "application/wasm"\x2C\n  "wgt": "application/widget"\x2C\n  "hlp": "application/winhlp"\x2C\n  "wsdl": "application/wsdl+xml"\x2C\n  "wspolicy": "application/wspolicy+xml"\x2C\n  "xaml": "application/xaml+xml"\x2C\n  "xav": "application/xcap-att+xml"\x2C\n  "xca": "application/xcap-caps+xml"\x2C\n  "xdf": "application/xcap-diff+xml"\x2C\n  "xel": "application/xcap-el+xml"\x2C\n  "xns": "application/xcap-ns+xml"\x2C\n  "xenc": "application/xenc+xml"\x2C\n  "xhtml": "application/xhtml+xml"\x2C\n  "xht": "application/xhtml+xml"\x2C\n  "xlf": "application/xliff+xml"\x2C\n  "xml": "application/xml"\x2C\n  "xsl": "application/xml"\x2C\n  "xsd": "application/xml"\x2C\n  "rng": "application/xml"\x2C\n  "dtd": "application/xml-dtd"\x2C\n  "xop": "application/xop+xml"\x2C\n  "xpl": "application/xproc+xml"\x2C\n  "xslt": "application/xml"\x2C\n  "xspf": "application/xspf+xml"\x2C\n  "mxml": "application/xv+xml"\x2C\n  "xhvml": "application/xv+xml"\x2C\n  "xvml": "application/xv+xml"\x2C\n  "xvm": "application/xv+xml"\x2C\n  "yang": "application/yang"\x2C\n  "yin": "application/yin+xml"\x2C\n  "zip": "application/zip"\x2C\n  "3gpp": "video/3gpp"\x2C\n  "adp": "audio/adpcm"\x2C\n  "amr": "audio/amr"\x2C\n  "au": "audio/basic"\x2C\n  "snd": "audio/basic"\x2C\n  "mid": "audio/midi"\x2C\n  "midi": "audio/midi"\x2C\n  "kar": "audio/midi"\x2C\n  "rmi": "audio/midi"\x2C\n  "mxmf": "audio/mobile-xmf"\x2C\n  "mp3": "audio/mpeg"\x2C\n  "m4a": "audio/mp4"\x2C\n  "mp4a": "audio/mp4"\x2C\n  "mpga": "audio/mpeg"\x2C\n  "mp2": "audio/mpeg"\x2C\n  "mp2a": "audio/mpeg"\x2C\n  "m2a": "audio/mpeg"\x2C\n  "m3a": "audio/mpeg"\x2C\n  "oga": "audio/ogg"\x2C\n  "ogg": "audio/ogg"\x2C\n  "spx": "audio/ogg"\x2C\n  "opus": "audio/ogg"\x2C\n  "s3m": "audio/s3m"\x2C\n  "sil": "audio/silk"\x2C\n  "wav": "audio/wav"\x2C\n  "weba": "audio/webm"\x2C\n  "xm": "audio/xm"\x2C\n  "ttc": "font/collection"\x2C\n  "otf": "font/otf"\x2C\n  "ttf": "font/ttf"\x2C\n  "woff": "font/woff"\x2C\n  "woff2": "font/woff2"\x2C\n  "exr": "image/aces"\x2C\n  "apng": "image/apng"\x2C\n  "avif": "image/avif"\x2C\n  "bmp": "image/bmp"\x2C\n  "cgm": "image/cgm"\x2C\n  "drle": "image/dicom-rle"\x2C\n  "emf": "image/emf"\x2C\n  "fits": "image/fits"\x2C\n  "g3": "image/g3fax"\x2C\n  "gif": "image/gif"\x2C\n  "heic": "image/heic"\x2C\n  "heics": "image/heic-sequence"\x2C\n  "heif": "image/heif"\x2C\n  "heifs": "image/heif-sequence"\x2C\n  "hej2": "image/hej2k"\x2C\n  "hsj2": "image/hsj2"\x2C\n  "ief": "image/ief"\x2C\n  "jls": "image/jls"\x2C\n  "jp2": "image/jp2"\x2C\n  "jpg2": "image/jp2"\x2C\n  "jpeg": "image/jpeg"\x2C\n  "jpg": "image/jpeg"\x2C\n  "jpe": "image/jpeg"\x2C\n  "jph": "image/jph"\x2C\n  "jhc": "image/jphc"\x2C\n  "jpm": "image/jpm"\x2C\n  "jpx": "image/jpx"\x2C\n  "jpf": "image/jpx"\x2C\n  "jxr": "image/jxr"\x2C\n  "jxra": "image/jxra"\x2C\n  "jxrs": "image/jxrs"\x2C\n  "jxs": "image/jxs"\x2C\n  "jxsc": "image/jxsc"\x2C\n  "jxsi": "image/jxsi"\x2C\n  "jxss": "image/jxss"\x2C\n  "ktx": "image/ktx"\x2C\n  "ktx2": "image/ktx2"\x2C\n  "png": "image/png"\x2C\n  "btif": "image/prs.btif"\x2C\n  "pti": "image/prs.pti"\x2C\n  "sgi": "image/sgi"\x2C\n  "svg": "image/svg+xml"\x2C\n  "svgz": "image/svg+xml"\x2C\n  "t38": "image/t38"\x2C\n  "tif": "image/tiff"\x2C\n  "tiff": "image/tiff"\x2C\n  "tfx": "image/tiff-fx"\x2C\n  "webp": "image/webp"\x2C\n  "wmf": "image/wmf"\x2C\n  "disposition-notification": "message/disposition-notification"\x2C\n  "u8msg": "message/global"\x2C\n  "u8dsn": "message/global-delivery-status"\x2C\n  "u8mdn": "message/global-disposition-notification"\x2C\n  "u8hdr": "message/global-headers"\x2C\n  "eml": "message/rfc822"\x2C\n  "mime": "message/rfc822"\x2C\n  "3mf": "model/3mf"\x2C\n  "gltf": "model/gltf+json"\x2C\n  "glb": "model/gltf-binary"\x2C\n  "igs": "model/iges"\x2C\n  "iges": "model/iges"\x2C\n  "msh": "model/mesh"\x2C\n  "mesh": "model/mesh"\x2C\n  "silo": "model/mesh"\x2C\n  "mtl": "model/mtl"\x2C\n  "obj": "model/obj"\x2C\n  "stpz": "model/step+zip"\x2C\n  "stpxz": "model/step-xml+zip"\x2C\n  "stl": "model/stl"\x2C\n  "wrl": "model/vrml"\x2C\n  "vrml": "model/vrml"\x2C\n  "x3db": "model/x3d+fastinfoset"\x2C\n  "x3dbz": "model/x3d+binary"\x2C\n  "x3dv": "model/x3d-vrml"\x2C\n  "x3dvz": "model/x3d+vrml"\x2C\n  "x3d": "model/x3d+xml"\x2C\n  "x3dz": "model/x3d+xml"\x2C\n  "appcache": "text/cache-manifest"\x2C\n  "manifest": "text/cache-manifest"\x2C\n  "ics": "text/calendar"\x2C\n  "ifb": "text/calendar"\x2C\n  "coffee": "text/coffeescript"\x2C\n  "litcoffee": "text/coffeescript"\x2C\n  "css": "text/css"\x2C\n  "csv": "text/csv"\x2C\n  "html": "text/html"\x2C\n  "htm": "text/html"\x2C\n  "shtml": "text/html"\x2C\n  "jade": "text/jade"\x2C\n  "jsx": "text/jsx"\x2C\n  "less": "text/less"\x2C\n  "markdown": "text/markdown"\x2C\n  "md": "text/markdown"\x2C\n  "mml": "text/mathml"\x2C\n  "mdx": "text/mdx"\x2C\n  "n3": "text/n3"\x2C\n  "txt": "text/plain"\x2C\n  "text": "text/plain"\x2C\n  "conf": "text/plain"\x2C\n  "def": "text/plain"\x2C\n  "list": "text/plain"\x2C\n  "log": "text/plain"\x2C\n  "in": "text/plain"\x2C\n  "ini": "text/plain"\x2C\n  "dsc": "text/prs.lines.tag"\x2C\n  "rtx": "text/richtext"\x2C\n  "sgml": "text/sgml"\x2C\n  "sgm": "text/sgml"\x2C\n  "shex": "text/shex"\x2C\n  "slim": "text/slim"\x2C\n  "slm": "text/slim"\x2C\n  "spdx": "text/spdx"\x2C\n  "stylus": "text/stylus"\x2C\n  "styl": "text/stylus"\x2C\n  "tsv": "text/tab-separated-values"\x2C\n  "t": "text/troff"\x2C\n  "tr": "text/troff"\x2C\n  "roff": "text/troff"\x2C\n  "man": "text/troff"\x2C\n  "me": "text/troff"\x2C\n  "ms": "text/troff"\x2C\n  "ttl": "text/turtle"\x2C\n  "uri": "text/uri-list"\x2C\n  "uris": "text/uri-list"\x2C\n  "urls": "text/uri-list"\x2C\n  "vcard": "text/vcard"\x2C\n  "vtt": "text/vtt"\x2C\n  "yaml": "text/yaml"\x2C\n  "yml": "text/yaml"\x2C\n  "3gp": "video/3gpp"\x2C\n  "3g2": "video/3gpp2"\x2C\n  "h261": "video/h261"\x2C\n  "h263": "video/h263"\x2C\n  "h264": "video/h264"\x2C\n  "m4s": "video/iso.segment"\x2C\n  "jpgv": "video/jpeg"\x2C\n  "jpgm": "image/jpm"\x2C\n  "mj2": "video/mj2"\x2C\n  "mjp2": "video/mj2"\x2C\n  "ts": "video/mp2t"\x2C\n  "mp4": "video/mp4"\x2C\n  "mp4v": "video/mp4"\x2C\n  "mpg4": "video/mp4"\x2C\n  "mpeg": "video/mpeg"\x2C\n  "mpg": "video/mpeg"\x2C\n  "mpe": "video/mpeg"\x2C\n  "m1v": "video/mpeg"\x2C\n  "m2v": "video/mpeg"\x2C\n  "ogv": "video/ogg"\x2C\n  "qt": "video/quicktime"\x2C\n  "mov": "video/quicktime"\x2C\n  "webm": "video/webm"\n};\n\nfunction lookup(extn) {\n\x09let tmp = ('' + extn).trim().toLowerCase();\n\x09let idx = tmp.lastIndexOf('.');\n\x09return mimes[!~idx ? tmp : tmp.substring(++idx)];\n}\n\nconst noop = () => {};\n\nfunction isMatch(uri\x2C arr) {\n\x09for (let i=0; i < arr.length; i++) {\n\x09\x09if (arr[i].test(uri)) return true;\n\x09}\n}\n\nfunction toAssume(uri\x2C extns) {\n\x09let i=0\x2C x\x2C len=uri.length - 1;\n\x09if (uri.charCodeAt(len) === 47) {\n\x09\x09uri = uri.substring(0\x2C len);\n\x09}\n\n\x09let arr=[]\x2C tmp=`${uri}/index`;\n\x09for (; i < extns.length; i++) {\n\x09\x09x = extns[i] ? `.${extns[i]}` : '';\n\x09\x09if (uri) arr.push(uri + x);\n\x09\x09arr.push(tmp + x);\n\x09}\n\n\x09return arr;\n}\n\nfunction viaCache(cache\x2C uri\x2C extns) {\n\x09let i=0\x2C data\x2C arr=toAssume(uri\x2C extns);\n\x09for (; i < arr.length; i++) {\n\x09\x09if (data = cache[arr[i]]) return data;\n\x09}\n}\n\nfunction viaLocal(dir\x2C isEtag\x2C uri\x2C extns) {\n\x09let i=0\x2C arr=toAssume(uri\x2C extns);\n\x09let abs\x2C stats\x2C name\x2C headers;\n\x09for (; i < arr.length; i++) {\n\x09\x09abs = normalize(join(dir\x2C name=arr[i]));\n\x09\x09if (abs.startsWith(dir) && fs.existsSync(abs)) {\n\x09\x09\x09stats = fs.statSync(abs);\n\x09\x09\x09if (stats.isDirectory()) continue;\n\x09\x09\x09headers = toHeaders(name\x2C stats\x2C isEtag);\n\x09\x09\x09headers['Cache-Control'] = isEtag ? 'no-cache' : 'no-store';\n\x09\x09\x09return { abs\x2C stats\x2C headers };\n\x09\x09}\n\x09}\n}\n\nfunction is404(req\x2C res) {\n\x09return (res.statusCode=404\x2Cres.end());\n}\n\nfunction send(req\x2C res\x2C file\x2C stats\x2C headers) {\n\x09let code=200\x2C tmp\x2C opts={};\n\x09headers = { ...headers };\n\n\x09for (let key in headers) {\n\x09\x09tmp = res.getHeader(key);\n\x09\x09if (tmp) headers[key] = tmp;\n\x09}\n\n\x09if (tmp = res.getHeader('content-type')) {\n\x09\x09headers['Content-Type'] = tmp;\n\x09}\n\n\x09if (req.headers.range) {\n\x09\x09code = 206;\n\x09\x09let [x\x2C y] = req.headers.range.replace('bytes='\x2C '').split('-');\n\x09\x09let end = opts.end = parseInt(y\x2C 10) || stats.size - 1;\n\x09\x09let start = opts.start = parseInt(x\x2C 10) || 0;\n\n\x09\x09if (end >= stats.size) {\n\x09\x09\x09end = stats.size - 1;\n\x09\x09}\n\n\x09\x09if (start >= stats.size) {\n\x09\x09\x09res.setHeader('Content-Range'\x2C `bytes */${stats.size}`);\n\x09\x09\x09res.statusCode = 416;\n\x09\x09\x09return res.end();\n\x09\x09}\n\n\x09\x09headers['Content-Range'] = `bytes ${start}-${end}/${stats.size}`;\n\x09\x09headers['Content-Length'] = (end - start + 1);\n\x09\x09headers['Accept-Ranges'] = 'bytes';\n\x09}\n\n\x09res.writeHead(code\x2C headers);\n\x09fs.createReadStream(file\x2C opts).pipe(res);\n}\n\nconst ENCODING = {\n\x09'.br': 'br'\x2C\n\x09'.gz': 'gzip'\x2C\n};\n\nfunction toHeaders(name\x2C stats\x2C isEtag) {\n\x09let enc = ENCODING[name.slice(-3)];\n\n\x09let ctype = lookup(name.slice(0\x2C enc && -3)) || '';\n\x09if (ctype === 'text/html') ctype += ';charset=utf-8';\n\n\x09let headers = {\n\x09\x09'Content-Length': stats.size\x2C\n\x09\x09'Content-Type': ctype\x2C\n\x09\x09'Last-Modified': stats.mtime.toUTCString()\x2C\n\x09};\n\n\x09if (enc) headers['Content-Encoding'] = enc;\n\x09if (isEtag) headers['ETag'] = `W/"${stats.size}-${stats.mtime.getTime()}"`;\n\n\x09return headers;\n}\n\nfunction sirv (dir\x2C opts={}) {\n\x09dir = resolve(dir || '.');\n\n\x09let isNotFound = opts.onNoMatch || is404;\n\x09let setHeaders = opts.setHeaders || noop;\n\n\x09let extensions = opts.extensions || ['html'\x2C 'htm'];\n\x09let gzips = opts.gzip && extensions.map(x => `${x}.gz`).concat('gz');\n\x09let brots = opts.brotli && extensions.map(x => `${x}.br`).concat('br');\n\n\x09const FILES = {};\n\n\x09let fallback = '/';\n\x09let isEtag = !!opts.etag;\n\x09let isSPA = !!opts.single;\n\x09if (typeof opts.single === 'string') {\n\x09\x09let idx = opts.single.lastIndexOf('.');\n\x09\x09fallback += !!~idx ? opts.single.substring(0\x2C idx) : opts.single;\n\x09}\n\n\x09let ignores = [];\n\x09if (opts.ignores !== false) {\n\x09\x09ignores.push(/[/]([A-Za-z\\s\\d~$._-]+\\.\\w+){1\x2C}$/); // any extn\n\x09\x09if (opts.dotfiles) ignores.push(/\\/\\.\\w/);\n\x09\x09else ignores.push(/\\/\\.well-known/);\n\x09\x09[].concat(opts.ignores || []).forEach(x => {\n\x09\x09\x09ignores.push(new RegExp(x\x2C 'i'));\n\x09\x09});\n\x09}\n\n\x09let cc = opts.maxAge != null && `public\x2Cmax-age=${opts.maxAge}`;\n\x09if (cc && opts.immutable) cc += '\x2Cimmutable';\n\x09else if (cc && opts.maxAge === 0) cc += '\x2Cmust-revalidate';\n\n\x09if (!opts.dev) {\n\x09\x09totalist(dir\x2C (name\x2C abs\x2C stats) => {\n\x09\x09\x09if (/\\.well-known[\\\\+\\/]/.test(name)) ; // keep\n\x09\x09\x09else if (!opts.dotfiles && /(^\\.|[\\\\+|\\/+]\\.)/.test(name)) return;\n\n\x09\x09\x09let headers = toHeaders(name\x2C stats\x2C isEtag);\n\x09\x09\x09if (cc) headers['Cache-Control'] = cc;\n\n\x09\x09\x09FILES['/' + name.normalize().replace(/\\\\+/g\x2C '/')] = { abs\x2C stats\x2C headers };\n\x09\x09});\n\x09}\n\n\x09let lookup = opts.dev ? viaLocal.bind(0\x2C dir\x2C isEtag) : viaCache.bind(0\x2C FILES);\n\n\x09return function (req\x2C res\x2C next) {\n\x09\x09let extns = [''];\n\x09\x09let pathname = parse$1(req).pathname;\n\x09\x09let val = req.headers['accept-encoding'] || '';\n\x09\x09if (gzips && val.includes('gzip')) extns.unshift(...gzips);\n\x09\x09if (brots && /(br|brotli)/i.test(val)) extns.unshift(...brots);\n\x09\x09extns.push(...extensions); // [...br\x2C ...gz\x2C orig\x2C ...exts]\n\n\x09\x09if (pathname.indexOf('%') !== -1) {\n\x09\x09\x09try { pathname = decodeURI(pathname); }\n\x09\x09\x09catch (err) { /* malform uri */ }\n\x09\x09}\n\n\x09\x09let data = lookup(pathname\x2C extns) || isSPA && !isMatch(pathname\x2C ignores) && lookup(fallback\x2C extns);\n\x09\x09if (!data) return next ? next() : isNotFound(req\x2C res);\n\n\x09\x09if (isEtag && req.headers['if-none-match'] === data.headers['ETag']) {\n\x09\x09\x09res.writeHead(304);\n\x09\x09\x09return res.end();\n\x09\x09}\n\n\x09\x09if (gzips || brots) {\n\x09\x09\x09res.setHeader('Vary'\x2C 'Accept-Encoding');\n\x09\x09}\n\n\x09\x09setHeaders(res\x2C pathname\x2C data.stats);\n\x09\x09send(req\x2C res\x2C data.abs\x2C data.stats\x2C data.headers);\n\x09};\n}\n\nvar setCookie = {exports: {}};\n\nvar defaultParseOptions = {\n  decodeValues: true\x2C\n  map: false\x2C\n  silent: false\x2C\n};\n\nfunction isNonEmptyString(str) {\n  return typeof str === "string" && !!str.trim();\n}\n\nfunction parseString(setCookieValue\x2C options) {\n  var parts = setCookieValue.split(";").filter(isNonEmptyString);\n\n  var nameValuePairStr = parts.shift();\n  var parsed = parseNameValuePair(nameValuePairStr);\n  var name = parsed.name;\n  var value = parsed.value;\n\n  options = options\n    ? Object.assign({}\x2C defaultParseOptions\x2C options)\n    : defaultParseOptions;\n\n  try {\n    value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n  } catch (e) {\n    console.error(\n      "set-cookie-parser encountered an error while decoding a cookie with value '" +\n        value +\n        "'. Set options.decodeValues to false to disable this feature."\x2C\n      e\n    );\n  }\n\n  var cookie = {\n    name: name\x2C\n    value: value\x2C\n  };\n\n  parts.forEach(function (part) {\n    var sides = part.split("=");\n    var key = sides.shift().trimLeft().toLowerCase();\n    var value = sides.join("=");\n    if (key === "expires") {\n      cookie.expires = new Date(value);\n    } else if (key === "max-age") {\n      cookie.maxAge = parseInt(value\x2C 10);\n    } else if (key === "secure") {\n      cookie.secure = true;\n    } else if (key === "httponly") {\n      cookie.httpOnly = true;\n    } else if (key === "samesite") {\n      cookie.sameSite = value;\n    } else {\n      cookie[key] = value;\n    }\n  });\n\n  return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n  // Parses name-value-pair according to rfc6265bis draft\n\n  var name = "";\n  var value = "";\n  var nameValueArr = nameValuePairStr.split("=");\n  if (nameValueArr.length > 1) {\n    name = nameValueArr.shift();\n    value = nameValueArr.join("="); // everything after the first =\x2C joined by a "=" if there was more than one part\n  } else {\n    value = nameValuePairStr;\n  }\n\n  return { name: name\x2C value: value };\n}\n\nfunction parse(input\x2C options) {\n  options = options\n    ? Object.assign({}\x2C defaultParseOptions\x2C options)\n    : defaultParseOptions;\n\n  if (!input) {\n    if (!options.map) {\n      return [];\n    } else {\n      return {};\n    }\n  }\n\n  if (input.headers) {\n    if (typeof input.headers.getSetCookie === "function") {\n      // for fetch responses - they combine headers of the same type in the headers array\x2C\n      // but getSetCookie returns an uncombined array\n      input = input.headers.getSetCookie();\n    } else if (input.headers["set-cookie"]) {\n      // fast-path for node.js (which automatically normalizes header names to lower-case\n      input = input.headers["set-cookie"];\n    } else {\n      // slow-path for other environments - see #25\n      var sch =\n        input.headers[\n          Object.keys(input.headers).find(function (key) {\n            return key.toLowerCase() === "set-cookie";\n          })\n        ];\n      // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34\x2C 36\n      if (!sch && input.headers.cookie && !options.silent) {\n        console.warn(\n          "Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses\x2C not Cookie headers from requests. Set the option {silent: true} to suppress this warning."\n        );\n      }\n      input = sch;\n    }\n  }\n  if (!Array.isArray(input)) {\n    input = [input];\n  }\n\n  options = options\n    ? Object.assign({}\x2C defaultParseOptions\x2C options)\n    : defaultParseOptions;\n\n  if (!options.map) {\n    return input.filter(isNonEmptyString).map(function (str) {\n      return parseString(str\x2C options);\n    });\n  } else {\n    var cookies = {};\n    return input.filter(isNonEmptyString).reduce(function (cookies\x2C str) {\n      var cookie = parseString(str\x2C options);\n      cookies[cookie.name] = cookie;\n      return cookies;\n    }\x2C cookies);\n  }\n}\n\n/*\n  Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n  that are within a single set-cookie field-value\x2C such as in the Expires portion.\n\n  This is uncommon\x2C but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n  Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n  React Native's fetch does this for *every* header\x2C including set-cookie.\n\n  Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n  Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n  if (Array.isArray(cookiesString)) {\n    return cookiesString;\n  }\n  if (typeof cookiesString !== "string") {\n    return [];\n  }\n\n  var cookiesStrings = [];\n  var pos = 0;\n  var start;\n  var ch;\n  var lastComma;\n  var nextStart;\n  var cookiesSeparatorFound;\n\n  function skipWhitespace() {\n    while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n      pos += 1;\n    }\n    return pos < cookiesString.length;\n  }\n\n  function notSpecialChar() {\n    ch = cookiesString.charAt(pos);\n\n    return ch !== "=" && ch !== ";" && ch !== "\x2C";\n  }\n\n  while (pos < cookiesString.length) {\n    start = pos;\n    cookiesSeparatorFound = false;\n\n    while (skipWhitespace()) {\n      ch = cookiesString.charAt(pos);\n      if (ch === "\x2C") {\n        // '\x2C' is a cookie separator if we have later first '='\x2C not ';' or '\x2C'\n        lastComma = pos;\n        pos += 1;\n\n        skipWhitespace();\n        nextStart = pos;\n\n        while (pos < cookiesString.length && notSpecialChar()) {\n          pos += 1;\n        }\n\n        // currently special character\n        if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") {\n          // we found cookies separator\n          cookiesSeparatorFound = true;\n          // pos is inside the next cookie\x2C so back up and return it.\n          pos = nextStart;\n          cookiesStrings.push(cookiesString.substring(start\x2C lastComma));\n          start = pos;\n        } else {\n          // in param '\x2C' or param separator ';'\x2C\n          // we continue from that comma\n          pos = lastComma + 1;\n        }\n      } else {\n        pos += 1;\n      }\n    }\n\n    if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n      cookiesStrings.push(cookiesString.substring(start\x2C cookiesString.length));\n    }\n  }\n\n  return cookiesStrings;\n}\n\nsetCookie.exports = parse;\nsetCookie.exports.parse = parse;\nsetCookie.exports.parseString = parseString;\nvar splitCookiesString_1 = setCookie.exports.splitCookiesString = splitCookiesString;\n\nclass HttpError {\n\x09/**\n\x09 * @param {number} status\n\x09 * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body\n\x09 */\n\x09constructor(status\x2C body) {\n\x09\x09this.status = status;\n\x09\x09if (typeof body === 'string') {\n\x09\x09\x09this.body = { message: body };\n\x09\x09} else if (body) {\n\x09\x09\x09this.body = body;\n\x09\x09} else {\n\x09\x09\x09this.body = { message: `Error: ${status}` };\n\x09\x09}\n\x09}\n\n\x09toString() {\n\x09\x09return JSON.stringify(this.body);\n\x09}\n}\n\n/**\n * @overload\n * @param {number} status\n * @param {App.Error} body\n * @return {HttpError}\n */\n\n/**\n * @overload\n * @param {number} status\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} [body]\n * @return {HttpError}\n */\n\n/**\n * Creates an `HttpError` object with an HTTP status code and an optional message.\n * This object\x2C if thrown during request handling\x2C will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error\x2C which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} body An object that conforms to the App.Error type. If a string is passed\x2C it will be used as the message property.\n */\nfunction error(status\x2C body) {\n\x09if ((isNaN(status) || status < 400 || status > 599)) {\n\x09\x09throw new Error(`HTTP error status codes must be between 400 and 599 \u2014 ${status} is invalid`);\n\x09}\n\n\x09return new HttpError(status\x2C body);\n}\n\nnew TextEncoder();\n\n/**\n * @param {import('http').IncomingMessage} req\n * @param {number} [body_size_limit]\n */\nfunction get_raw_body(req\x2C body_size_limit) {\n\x09const h = req.headers;\n\n\x09if (!h['content-type']) {\n\x09\x09return null;\n\x09}\n\n\x09const content_length = Number(h['content-length']);\n\n\x09// check if no request body\n\x09if (\n\x09\x09(req.httpVersionMajor === 1 && isNaN(content_length) && h['transfer-encoding'] == null) ||\n\x09\x09content_length === 0\n\x09) {\n\x09\x09return null;\n\x09}\n\n\x09let length = content_length;\n\n\x09if (body_size_limit) {\n\x09\x09if (!length) {\n\x09\x09\x09length = body_size_limit;\n\x09\x09} else if (length > body_size_limit) {\n\x09\x09\x09throw error(\n\x09\x09\x09\x09413\x2C\n\x09\x09\x09\x09`Received content-length of ${length}\x2C but only accept up to ${body_size_limit} bytes.`\n\x09\x09\x09);\n\x09\x09}\n\x09}\n\n\x09if (req.destroyed) {\n\x09\x09const readable = new ReadableStream();\n\x09\x09readable.cancel();\n\x09\x09return readable;\n\x09}\n\n\x09let size = 0;\n\x09let cancelled = false;\n\n\x09return new ReadableStream({\n\x09\x09start(controller) {\n\x09\x09\x09req.on('error'\x2C (error) => {\n\x09\x09\x09\x09cancelled = true;\n\x09\x09\x09\x09controller.error(error);\n\x09\x09\x09});\n\n\x09\x09\x09req.on('end'\x2C () => {\n\x09\x09\x09\x09if (cancelled) return;\n\x09\x09\x09\x09controller.close();\n\x09\x09\x09});\n\n\x09\x09\x09req.on('data'\x2C (chunk) => {\n\x09\x09\x09\x09if (cancelled) return;\n\n\x09\x09\x09\x09size += chunk.length;\n\x09\x09\x09\x09if (size > length) {\n\x09\x09\x09\x09\x09cancelled = true;\n\x09\x09\x09\x09\x09controller.error(\n\x09\x09\x09\x09\x09\x09error(\n\x09\x09\x09\x09\x09\x09\x09413\x2C\n\x09\x09\x09\x09\x09\x09\x09`request body size exceeded ${\n\x09\x09\x09\x09\x09\x09\x09\x09content_length ? "'content-length'" : 'BODY_SIZE_LIMIT'\n\x09\x09\x09\x09\x09\x09\x09} of ${length}`\n\x09\x09\x09\x09\x09\x09)\n\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09return;\n\x09\x09\x09\x09}\n\n\x09\x09\x09\x09controller.enqueue(chunk);\n\n\x09\x09\x09\x09if (controller.desiredSize === null || controller.desiredSize <= 0) {\n\x09\x09\x09\x09\x09req.pause();\n\x09\x09\x09\x09}\n\x09\x09\x09});\n\x09\x09}\x2C\n\n\x09\x09pull() {\n\x09\x09\x09req.resume();\n\x09\x09}\x2C\n\n\x09\x09cancel(reason) {\n\x09\x09\x09cancelled = true;\n\x09\x09\x09req.destroy(reason);\n\x09\x09}\n\x09});\n}\n\n/**\n * @param {{\n *   request: import('http').IncomingMessage;\n *   base: string;\n *   bodySizeLimit?: number;\n * }} options\n * @returns {Promise<Request>}\n */\nasync function getRequest({ request\x2C base\x2C bodySizeLimit }) {\n\x09return new Request(base + request.url\x2C {\n\x09\x09// @ts-expect-error\n\x09\x09duplex: 'half'\x2C\n\x09\x09method: request.method\x2C\n\x09\x09headers: /** @type {Record<string\x2C string>} */ (request.headers)\x2C\n\x09\x09body: get_raw_body(request\x2C bodySizeLimit)\n\x09});\n}\n\n/**\n * @param {import('http').ServerResponse} res\n * @param {Response} response\n * @returns {Promise<void>}\n */\nasync function setResponse(res\x2C response) {\n\x09for (const [key\x2C value] of response.headers) {\n\x09\x09try {\n\x09\x09\x09res.setHeader(\n\x09\x09\x09\x09key\x2C\n\x09\x09\x09\x09key === 'set-cookie'\n\x09\x09\x09\x09\x09? splitCookiesString_1(\n\x09\x09\x09\x09\x09\x09\x09// This is absurd but necessary\x2C TODO: investigate why\n\x09\x09\x09\x09\x09\x09\x09/** @type {string}*/ (response.headers.get(key))\n\x09\x09\x09\x09\x09  )\n\x09\x09\x09\x09\x09: value\n\x09\x09\x09);\n\x09\x09} catch (error) {\n\x09\x09\x09res.getHeaderNames().forEach((name) => res.removeHeader(name));\n\x09\x09\x09res.writeHead(500).end(String(error));\n\x09\x09\x09return;\n\x09\x09}\n\x09}\n\n\x09res.writeHead(response.status);\n\n\x09if (!response.body) {\n\x09\x09res.end();\n\x09\x09return;\n\x09}\n\n\x09if (response.body.locked) {\n\x09\x09res.end(\n\x09\x09\x09'Fatal error: Response body is locked. ' +\n\x09\x09\x09\x09"This can happen when the response was already read (for example through 'response.json()' or 'response.text()')."\n\x09\x09);\n\x09\x09return;\n\x09}\n\n\x09const reader = response.body.getReader();\n\n\x09if (res.destroyed) {\n\x09\x09reader.cancel();\n\x09\x09return;\n\x09}\n\n\x09const cancel = (/** @type {Error|undefined} */ error) => {\n\x09\x09res.off('close'\x2C cancel);\n\x09\x09res.off('error'\x2C cancel);\n\n\x09\x09// If the reader has already been interrupted with an error earlier\x2C\n\x09\x09// then it will appear here\x2C it is useless\x2C but it needs to be catch.\n\x09\x09reader.cancel(error).catch(() => {});\n\x09\x09if (error) res.destroy(error);\n\x09};\n\n\x09res.on('close'\x2C cancel);\n\x09res.on('error'\x2C cancel);\n\n\x09next();\n\x09async function next() {\n\x09\x09try {\n\x09\x09\x09for (;;) {\n\x09\x09\x09\x09const { done\x2C value } = await reader.read();\n\n\x09\x09\x09\x09if (done) break;\n\n\x09\x09\x09\x09if (!res.write(value)) {\n\x09\x09\x09\x09\x09res.once('drain'\x2C next);\n\x09\x09\x09\x09\x09return;\n\x09\x09\x09\x09}\n\x09\x09\x09}\n\x09\x09\x09res.end();\n\x09\x09} catch (error) {\n\x09\x09\x09cancel(error instanceof Error ? error : new Error(String(error)));\n\x09\x09}\n\x09}\n}\n\n/* global "" */\n\nconst server = new Server(manifest);\nawait server.init({ env: process.env });\nconst origin = env('ORIGIN'\x2C undefined);\nconst xff_depth = parseInt(env('XFF_DEPTH'\x2C '1'));\nconst address_header = env('ADDRESS_HEADER'\x2C '').toLowerCase();\nconst protocol_header = env('PROTOCOL_HEADER'\x2C '').toLowerCase();\nconst host_header = env('HOST_HEADER'\x2C 'host').toLowerCase();\nconst body_size_limit = parseInt(env('BODY_SIZE_LIMIT'\x2C '524288'));\n\nconst dir = path.dirname(fileURLToPath(import.meta.url));\n\n/**\n * @param {string} path\n * @param {boolean} client\n */\nfunction serve(path\x2C client = false) {\n\x09return (\n\x09\x09fs$1.existsSync(path) &&\n\x09\x09sirv(path\x2C {\n\x09\x09\x09etag: true\x2C\n\x09\x09\x09gzip: true\x2C\n\x09\x09\x09brotli: true\x2C\n\x09\x09\x09setHeaders:\n\x09\x09\x09\x09client &&\n\x09\x09\x09\x09((res\x2C pathname) => {\n\x09\x09\x09\x09\x09// only apply to build directory\x2C not e.g. version.json\n\x09\x09\x09\x09\x09if (pathname.startsWith(`/${manifest.appPath}/immutable/`) && res.statusCode === 200) {\n\x09\x09\x09\x09\x09\x09res.setHeader('cache-control'\x2C 'public\x2Cmax-age=31536000\x2Cimmutable');\n\x09\x09\x09\x09\x09}\n\x09\x09\x09\x09})\n\x09\x09})\n\x09);\n}\n\n// required because the static file server ignores trailing slashes\n/** @returns {import('polka').Middleware} */\nfunction serve_prerendered() {\n\x09const handler = serve(path.join(dir\x2C 'prerendered'));\n\n\x09return (req\x2C res\x2C next) => {\n\x09\x09let { pathname\x2C search\x2C query } = parse$1(req);\n\n\x09\x09try {\n\x09\x09\x09pathname = decodeURIComponent(pathname);\n\x09\x09} catch {\n\x09\x09\x09// ignore invalid URI\n\x09\x09}\n\n\x09\x09if (prerendered.has(pathname)) {\n\x09\x09\x09return handler(req\x2C res\x2C next);\n\x09\x09}\n\n\x09\x09// remove or add trailing slash as appropriate\n\x09\x09let location = pathname.at(-1) === '/' ? pathname.slice(0\x2C -1) : pathname + '/';\n\x09\x09if (prerendered.has(location)) {\n\x09\x09\x09if (query) location += search;\n\x09\x09\x09res.writeHead(308\x2C { location }).end();\n\x09\x09} else {\n\x09\x09\x09next();\n\x09\x09}\n\x09};\n}\n\n/** @type {import('polka').Middleware} */\nconst ssr = async (req\x2C res) => {\n\x09/** @type {Request | undefined} */\n\x09let request;\n\n\x09try {\n\x09\x09request = await getRequest({\n\x09\x09\x09base: origin || get_origin(req.headers)\x2C\n\x09\x09\x09request: req\x2C\n\x09\x09\x09bodySizeLimit: body_size_limit\n\x09\x09});\n\x09} catch (err) {\n\x09\x09res.statusCode = err.status || 400;\n\x09\x09res.end('Invalid request body');\n\x09\x09return;\n\x09}\n\n\x09setResponse(\n\x09\x09res\x2C\n\x09\x09await server.respond(request\x2C {\n\x09\x09\x09platform: { req }\x2C\n\x09\x09\x09getClientAddress: () => {\n\x09\x09\x09\x09if (address_header) {\n\x09\x09\x09\x09\x09if (!(address_header in req.headers)) {\n\x09\x09\x09\x09\x09\x09throw new Error(\n\x09\x09\x09\x09\x09\x09\x09`Address header was specified with ${\n\x09\x09\x09\x09\x09\x09\x09\x09"" + 'ADDRESS_HEADER'\n\x09\x09\x09\x09\x09\x09\x09}=${address_header} but is absent from request`\n\x09\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09const value = /** @type {string} */ (req.headers[address_header]) || '';\n\n\x09\x09\x09\x09\x09if (address_header === 'x-forwarded-for') {\n\x09\x09\x09\x09\x09\x09const addresses = value.split('\x2C');\n\n\x09\x09\x09\x09\x09\x09if (xff_depth < 1) {\n\x09\x09\x09\x09\x09\x09\x09throw new Error(`${"" + 'XFF_DEPTH'} must be a positive integer`);\n\x09\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09\x09if (xff_depth > addresses.length) {\n\x09\x09\x09\x09\x09\x09\x09throw new Error(\n\x09\x09\x09\x09\x09\x09\x09\x09`${"" + 'XFF_DEPTH'} is ${xff_depth}\x2C but only found ${\n\x09\x09\x09\x09\x09\x09\x09\x09\x09addresses.length\n\x09\x09\x09\x09\x09\x09\x09\x09} addresses`\n\x09\x09\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09\x09}\n\x09\x09\x09\x09\x09\x09return addresses[addresses.length - xff_depth].trim();\n\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09return value;\n\x09\x09\x09\x09}\n\n\x09\x09\x09\x09return (\n\x09\x09\x09\x09\x09req.connection?.remoteAddress ||\n\x09\x09\x09\x09\x09// @ts-expect-error\n\x09\x09\x09\x09\x09req.connection?.socket?.remoteAddress ||\n\x09\x09\x09\x09\x09req.socket?.remoteAddress ||\n\x09\x09\x09\x09\x09// @ts-expect-error\n\x09\x09\x09\x09\x09req.info?.remoteAddress\n\x09\x09\x09\x09);\n\x09\x09\x09}\n\x09\x09})\n\x09);\n};\n\n/** @param {import('polka').Middleware[]} handlers */\nfunction sequence(handlers) {\n\x09/** @type {import('polka').Middleware} */\n\x09return (req\x2C res\x2C next) => {\n\x09\x09/**\n\x09\x09 * @param {number} i\n\x09\x09 * @returns {ReturnType<import('polka').Middleware>}\n\x09\x09 */\n\x09\x09function handle(i) {\n\x09\x09\x09if (i < handlers.length) {\n\x09\x09\x09\x09return handlers[i](req\x2C res\x2C () => handle(i + 1));\n\x09\x09\x09} else {\n\x09\x09\x09\x09return next();\n\x09\x09\x09}\n\x09\x09}\n\n\x09\x09return handle(0);\n\x09};\n}\n\n/**\n * @param {import('http').IncomingHttpHeaders} headers\n * @returns\n */\nfunction get_origin(headers) {\n\x09const protocol = (protocol_header && headers[protocol_header]) || 'https';\n\x09const host = headers[host_header];\n\x09return `${protocol}://${host}`;\n}\n\nconst handler = sequence(\n\x09[\n\x09\x09serve(path.join(dir\x2C 'client')\x2C true)\x2C\n\x09\x09serve(path.join(dir\x2C 'static'))\x2C\n\x09\x09serve_prerendered()\x2C\n\x09\x09ssr\n\x09].filter(Boolean)\n);\n\nexport { handler };\n
code-source-info,0x3f8cd5574ec6,129,0,35385,C10O0C224O0C244O0C256O1443C260O1443C262O14074C266O14074C268O16136C272O16136C274O19077C279O19119C283O19119C285O25585C287O25603C291O25622C298O25636C302O25655C309O25675C313O25727C320O25754C326O25717C354O25777C356O27407C360O27407C365O31299C371O31310C379O31299C384O31299C386O31321C389O31334C399O31346C403O31354C411O31334C424O31321C447O31377C458O31377C463O31377C465O31421C469O31430C481O31430C487O31421C491O31421C493O31477C505O31477C511O31502C516O31503C520O31477C522O31542C534O31542C540O31568C545O31569C549O31542C551O31604C563O31604C569O31630C574O31631C578O31604C580O31670C584O31679C596O31679C602O31670C606O31670C608O31727C614O31732C619O31740C630O31766C635O31740C640O31732C645O31727C647O33062C652O35224C662O35245C668O35250C681O35250C690O35239C705O35286C711O35291C724O35291C731O35280C742O35315C754O35338C758O35345C763O35352C770O35345C776O35224C780O35224C794O35385,,
tick,0x1257f00,137177,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3363549c,137192,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33644134,137195,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x124e603,138004,1,0xbaa280,5,0xd44a10,0x1c78303d9420,0x1c78303d93d0,0x1c78303de67e,0x1c78303dc1a0,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
code-creation,LazyCompile,10,138973,0x3f8cd557948e,11,get ReadStream node:fs:2934:17,0x3fe299d18450,~
code-source-info,0x3f8cd557948e,76,77445,77499,C0O77454C3O77454C6O77477C10O77495,,
code-creation,LazyCompile,10,139029,0x3f8cd55795ce,71,lazyLoadStreams node:fs:2793:25,0x3fe299d18318,~
code-source-info,0x3f8cd55795ce,76,75066,75233,C0O75073C6O75096C12O75127C17O75099C30O75111C43O75164C50O75179C56O75197C63O75213C70O75232,,
tick,0x7efc3373d9ac,139081,1,0xb515a0,5,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x3f8cd55795da,0x3f8cd5579491,0x1615d7f,0x3f8cd556adb8,0x3f8cd556ac69,0x3f8cd556aae0,0xac12f0,0x3f8cd556a7e2,0x1c78303f7c8d,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,139581,0x3f8cd5579dfe,5, node:internal/fs/streams:1:1,0x3f8cd5579a68,~
script-source,130,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  stream.fd = null;\n  if (options.fd != null) {\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.fd = 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      stream[kHandle] = options.fd;\n      stream.fd = options.fd.fd;\n      stream[kFs] = FileHandleOperations(stream[kHandle]);\n      stream[kHandle][kRef]();\n      options.fd.on('close'\x2C FunctionPrototypeBind(stream.close\x2C stream));\n    } else\n      throw ERR_INVALID_ARG_TYPE('options.fd'\x2C\n                                 ['number'\x2C 'FileHandle']\x2C options.fd);\n  }\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  this[kFs] = options.fs || fs;\n\n  validateFunction(this[kFs].open\x2C 'options.fs.open');\n  validateFunction(this[kFs].read\x2C 'options.fs.read');\n  validateFunction(this[kFs].close\x2C 'options.fs.close');\n\n  options.autoDestroy = options.autoClose === undefined ?\n    true : options.autoClose;\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  importFd(this\x2C options);\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  // If fd has been set\x2C validate\x2C otherwise validate path.\n  if (this.fd != null) {\n    this.fd = getValidatedFd(this.fd);\n  } else {\n    validatePath(this.path);\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  this[kFs] = options.fs || fs;\n\n  validateFunction(this[kFs].open\x2C 'options.fs.open');\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  validateFunction(this[kFs].close\x2C 'options.fs.close');\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  options.autoDestroy = options.autoClose === undefined ?\n    true : options.autoClose;\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  importFd(this\x2C options);\n\n  this.start = options.start;\n  this.pos = undefined;\n  this.bytesWritten = 0;\n  this.closed = false;\n  this[kIsPerformingIO] = false;\n\n  // If fd has been set\x2C validate\x2C otherwise validate path.\n  if (this.fd != null) {\n    this.fd = getValidatedFd(this.fd);\n  } else {\n    validatePath(this.path);\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,0x3f8cd5579dfe,130,0,13325,C0O0C4O13325,,
tick,0x7efc33635473,140578,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x3f8cd55795da,0x3f8cd5579491,0x1615d7f,0x3f8cd556adb8,0x3f8cd556ac69,0x3f8cd556aae0,0xac12f0,0x3f8cd556a7e2,0x1c78303f7c8d,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Function,10,140594,0x3f8cd557aab6,866, node:internal/fs/streams:1:1,0x3f8cd5579d68,~
code-source-info,0x3f8cd557aab6,130,0,13325,C0O0C131O25C137O34C143O59C149O70C154O94C159O118C165O142C171O158C176O270C179O270C184O296C189O194C195O218C201O238C207O326C210O326C215O312C220O403C223O403C228O362C234O382C240O462C243O462C248O443C254O510C257O510C261O510C263O562C266O562C271O533C277O539C283O547C289O614C292O614C297O603C303O707C306O707C311O643C317O657C323O671C329O689C335O778C338O778C343O745C349O755C355O765C361O825C364O825C369O805C375O866C378O866C382O866C384O909C387O909C391O909C393O949C396O949C400O949C402O980C405O980C409O980C411O1996C415O1996C417O6064C420O6096C428O6116C433O6064C438O6128C444O6128C449O6173C452O6205C465O6233C473O6292C481O6173C486O6374C497O6374C502O6374C504O6468C507O6479C514O6494C518O6509C521O6520C528O6541C532O6556C535O6567C544O6583C548O7719C551O7730C560O7749C564O8315C567O8326C576O8342C580O8433C583O8465C596O8491C604O8433C609O10361C612O10394C620O10414C625O10361C630O10426C636O10426C641O10472C644O10505C657O10533C665O10592C673O10472C678O10675C689O10675C694O10675C696O10770C699O10782C706O10797C710O10813C713O10825C720O10846C724O10861C727O10873C736O10890C740O11366C743O11378C752O11396C756O12041C759O12053C768O12072C772O12638C775O12650C784O12666C788O13090C791O13102C799O13138C804O13148C808O13124C812O13154C815O13187C828O13213C836O13154C841O13275C848O13296C854O13310C860O13290C865O13324,,
code-creation,LazyCompile,10,140901,0x3f8cd557c606,11,get WriteStream node:fs:2943:18,0x3fe299d18530,~
code-source-info,0x3f8cd557c606,76,77571,77626,C0O77580C3O77580C6O77603C10O77622,,
code-creation,LazyCompile,10,140933,0x3f8cd557c726,11,get FileReadStream node:fs:2954:21,0x3fe299d18610,~
code-source-info,0x3f8cd557c726,76,77836,77894,C0O77845C3O77845C6O77868C10O77890,,
code-creation,LazyCompile,10,140957,0x3f8cd557c846,11,get FileWriteStream node:fs:2963:22,0x3fe299d18700,~
code-source-info,0x3f8cd557c846,76,77978,78037,C0O77987C3O77987C6O78010C10O78033,,
code-creation,LazyCompile,10,140994,0x3f8cd557c94e,35,get node:fs:2989:8,0x3fe299d187f0,~
code-source-info,0x3f8cd557c94e,76,78533,78655,C0O78544C6O78575C12O78586C17O78617C24O78584C30O78633C34O78649,,
tick,0x108f56d,141203,1,0xabf940,5,0xd44a10,0x3f8cd556a7bc,0x1c78303f7c8d,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x1101d12,142281,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
new,MemoryChunk,0x36d16ac80000,262144
code-creation,Script,10,142581,0x3f8cd557eeb6,88, file:///var/www/quadcode.com/build/server/manifest.js:1:1,0x3f8cd557ec60,~
script-source,131,file:///var/www/quadcode.com/build/server/manifest.js,const manifest = (() => {\nfunction __memo(fn) {\n\x09let value;\n\x09return () => value ??= (value = fn());\n}\n\nreturn {\n\x09appDir: "_app"\x2C\n\x09appPath: "_app"\x2C\n\x09assets: new Set(["favicon.ico"\x2C"libs/animations/trading-platform/Hero.js"\x2C"libs/animations/trading-platform/NotEnough.js"\x2C"libs/animations/turnkey-solution/HeroDesktop.js"\x2C"libs/animations/turnkey-solution/HeroMobile.js"\x2C"libs/animations/white-label-broker/Markets.js"\x2C"libs/createjs.min.js"\x2C"libs/iti/flags_sprite.png"\x2C"libs/metrics/googleTagManager.js"\x2C"libs/preloader.js"\x2C"marketing-guide/Marketing_Guide.pdf"\x2C"storage/files/marketing_guidelines.pdf"])\x2C\n\x09mimeTypes: {".ico":"image/vnd.microsoft.icon"\x2C".js":"application/javascript"\x2C".png":"image/png"\x2C".pdf":"application/pdf"}\x2C\n\x09_: {\n\x09\x09client: {"start":"_app/immutable/entry/start.7c4643f5.js"\x2C"app":"_app/immutable/entry/app.41ad7f3b.js"\x2C"imports":["_app/immutable/entry/start.7c4643f5.js"\x2C"_app/immutable/chunks/index.91aaa99e.js"\x2C"_app/immutable/chunks/singletons.04db4fa9.js"\x2C"_app/immutable/entry/app.41ad7f3b.js"\x2C"_app/immutable/chunks/index.d7104f59.js"\x2C"_app/immutable/chunks/index.91aaa99e.js"]\x2C"stylesheets":[]\x2C"fonts":[]}\x2C\n\x09\x09nodes: [\n\x09\x09\x09__memo(() => import('./chunks/0-86103af2.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/1-9b200e6d.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/2-bcefd330.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/3-6f559a21.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/4-208d4414.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/5-d638f360.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/6-2dd4ae4d.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/7-db80a6d6.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/8-b8c43314.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/9-3e47dac2.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/10-c9e90344.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/11-0f45ae09.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/12-a3859586.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/13-a0e82bcd.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/14-a6d3f235.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/15-f870d01f.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/16-f4151656.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/17-78d4ea9c.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/18-54add8cd.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/19-cffba77a.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/20-6f3d0c3e.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/21-4dd46962.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/22-97d86c44.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/23-afd67331.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/24-abe0d36b.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/25-be0f1bcb.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/26-30ab5ef4.js'))\x2C\n\x09\x09\x09__memo(() => import('./chunks/27-b8c3e1b1.js'))\n\x09\x09]\x2C\n\x09\x09routes: [\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/api/getPosts"\x2C\n\x09\x09\x09\x09pattern: /^\\/api\\/getPosts\\/?$/\x2C\n\x09\x09\x09\x09params: []\x2C\n\x09\x09\x09\x09page: null\x2C\n\x09\x09\x09\x09endpoint: __memo(() => import('./chunks/_server.ts-edb556f6.js'))\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/api/popup"\x2C\n\x09\x09\x09\x09pattern: /^\\/api\\/popup\\/?$/\x2C\n\x09\x09\x09\x09params: []\x2C\n\x09\x09\x09\x09page: null\x2C\n\x09\x09\x09\x09endpoint: __memo(() => import('./chunks/_server.ts-c04aa18d.js'))\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/api/send"\x2C\n\x09\x09\x09\x09pattern: /^\\/api\\/send\\/?$/\x2C\n\x09\x09\x09\x09params: []\x2C\n\x09\x09\x09\x09page: null\x2C\n\x09\x09\x09\x09endpoint: __memo(() => import('./chunks/_server.ts-c9e639a6.js'))\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/api/send/email"\x2C\n\x09\x09\x09\x09pattern: /^\\/api\\/send\\/email\\/?$/\x2C\n\x09\x09\x09\x09params: []\x2C\n\x09\x09\x09\x09page: null\x2C\n\x09\x09\x09\x09endpoint: __memo(() => import('./chunks/_server.ts-ea5f2619.js'))\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/sitemap.xml"\x2C\n\x09\x09\x09\x09pattern: /^\\/sitemap\\.xml\\/?$/\x2C\n\x09\x09\x09\x09params: []\x2C\n\x09\x09\x09\x09page: null\x2C\n\x09\x09\x09\x09endpoint: __memo(() => import('./chunks/_server.ts-72eb3839.js'))\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/about"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/about\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 3 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/author/[author]"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/author\\/([^/]+?)\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}\x2C{"name":"author"\x2C"optional":false\x2C"rest":false\x2C"chained":false}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 4 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/back-office"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/back-office\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 5 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/blog"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/blog\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 6 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/blog/[post]"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/blog\\/([^/]+?)\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}\x2C{"name":"post"\x2C"optional":false\x2C"rest":false\x2C"chained":false}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 7 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/business-plan"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/business-plan\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 8 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/cookie-policy"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/cookie-policy\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 9 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/events"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/events\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 10 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/for-traders"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/for-traders\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 11 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/glossary"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/glossary\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 12 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/glossary/[post]"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/glossary\\/([^/]+?)\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}\x2C{"name":"post"\x2C"optional":false\x2C"rest":false\x2C"chained":false}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 13 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/marketing-guide"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/marketing-guide\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 14 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/news/[post]"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/news\\/([^/]+?)\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}\x2C{"name":"post"\x2C"optional":false\x2C"rest":false\x2C"chained":false}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 15 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/privacy-policy"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/privacy-policy\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 16 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/prop-firm"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/prop-firm\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 17 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/team"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/team\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 18 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/terms-and-conditions"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/terms-and-conditions\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 19 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/trading-platform"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/trading-platform\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 20 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/turnkey-solution"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/turnkey-solution\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 21 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/under-construction"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/under-construction\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 22 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/video-tutorials"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/video-tutorials\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 23 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/vulnerability-disclosure-policy"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/vulnerability-disclosure-policy\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 24 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/webinars"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/webinars\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 25 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/white-label-binary-options"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/white-label-binary-options\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 26 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]/white-label-broker"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/white-label-broker\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 27 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\x2C\n\x09\x09\x09{\n\x09\x09\x09\x09id: "/[...lang=locale]"\x2C\n\x09\x09\x09\x09pattern: /^(?:\\/(.*))?\\/?$/\x2C\n\x09\x09\x09\x09params: [{"name":"lang"\x2C"matcher":"locale"\x2C"optional":false\x2C"rest":true\x2C"chained":true}]\x2C\n\x09\x09\x09\x09page: { layouts: [0\x2C]\x2C errors: [1\x2C]\x2C leaf: 2 }\x2C\n\x09\x09\x09\x09endpoint: null\n\x09\x09\x09}\n\x09\x09]\x2C\n\x09\x09matchers: async () => {\n\x09\x09\x09const { match: locale } = await import ('./chunks/locale-2b77e80b.js');\n\x09\x09\x09return { locale };\n\x09\x09}\n\x09}\n}\n})();\n\nconst prerendered = new Set(["/robots.txt"]);\n\nexport { manifest\x2C prerendered };\n//# sourceMappingURL=manifest.js.map\n
code-source-info,0x3f8cd557eeb6,131,0,10940,C10O0C28O0C48O0C55O17C60O10817C63O17C66O10842C77O10842C82O10842C87O10940,,
code-creation,Function,10,143762,0x36d16ac83fde,1267, file:///var/www/quadcode.com/build/server/manifest.js:1:19,0x3f8cd557edc0,~
code-source-info,0x36d16ac83fde,131,18,10816,C0O18C5O103C10O160C21O156C30O733C35O1144C42O1149C47O1149C58O1200C63O1200C74O1251C79O1251C90O1302C95O1302C106O1353C111O1353C122O1404C127O1404C138O1455C143O1455C154O1506C159O1506C170O1557C175O1557C186O1608C191O1608C202O1659C207O1659C218O1711C223O1711C234O1763C239O1763C250O1815C255O1815C266O1867C271O1867C282O1919C287O1919C298O1971C303O1971C314O2023C319O2023C330O2075C335O2075C346O2127C351O2127C362O2179C367O2179C378O2231C383O2231C394O2283C399O2283C410O2335C415O2335C426O2387C431O2387C442O2439C447O2439C458O2491C463O2491C474O2543C479O2543C493O2606C505O2651C513O2721C518O2721C540O2823C548O2890C553O2890C575O2991C583O3057C588O3057C610O3164C618O3237C623O3237C645O3341C653O3410C658O3410C680O3525C702O3786C724O4118C746O4374C768O4630C790O4960C812O5227C834O5487C856O5746C878O6007C900O6272C922O6609C944O6877C966O7209C988O7474C1010O7729C1032O7995C1054O8273C1076O8547C1098O8823C1120O9098C1142O9386C1164O9667C1186O9943C1208O10229C1230O10488C1250O10695C1266O10814,,
tick,0x1257f00,143822,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
new,MemoryChunk,0x2db796400000,143360
tick,0x1173dd0,144432,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x1168528,145742,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x110cce5,146831,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
code-creation,Script,10,146986,0x36d16ac8d1a6,1799, file:///var/www/quadcode.com/build/server/index.js:1:1,0x36d16ac881a8,~
script-source,132,file:///var/www/quadcode.com/build/server/index.js,import { A as A$1\x2C y\x2C T as T$1\x2C S } from './chunks/ssr-c1febd33.js';\nimport { a\x2C d\x2C g as g$1\x2C c\x2C o\x2C i as i$1 } from './chunks/index-d9e8b680.js';\nimport { A as A$2\x2C z as z$1 } from './chunks/index2-db879dd9.js';\nimport { t\x2C i\x2C n } from './chunks/shared-server-de020940.js';\n\nlet g=""\x2Cp=g;const v={base:g\x2Cassets:p};function T(){g=v.base\x2Cp=v.assets;}const w=A$1((n\x2Ct\x2Ce\x2C_)=>{let{stores:o}=t\x2C{page:d}=t\x2C{constructors:s}=t\x2C{components:a=[]}=t\x2C{form:l}=t\x2C{data_0:c=null}=t\x2C{data_1:m=null}=t;y("__svelte__"\x2Co)\x2Co.page.notify\x2Ct.stores===void 0&&e.stores&&o!==void 0&&e.stores(o)\x2Ct.page===void 0&&e.page&&d!==void 0&&e.page(d)\x2Ct.constructors===void 0&&e.constructors&&s!==void 0&&e.constructors(s)\x2Ct.components===void 0&&e.components&&a!==void 0&&e.components(a)\x2Ct.form===void 0&&e.form&&l!==void 0&&e.form(l)\x2Ct.data_0===void 0&&e.data_0&&c!==void 0&&e.data_0(c)\x2Ct.data_1===void 0&&e.data_1&&m!==void 0&&e.data_1(m);let i\x2Cu;do i=!0\x2Co.page.set(d)\x2Cu=`  ${s[1]?`${T$1(s[0]||S\x2C"svelte:component").$$render(n\x2C{data:c\x2Cthis:a[0]}\x2C{this:r=>{a[0]=r\x2Ci=!1;}}\x2C{default:()=>`${T$1(s[1]||S\x2C"svelte:component").$$render(n\x2C{data:m\x2Cform:l\x2Cthis:a[1]}\x2C{this:r=>{a[1]=r\x2Ci=!1;}}\x2C{})}`})}`:`${T$1(s[0]||S\x2C"svelte:component").$$render(n\x2C{data:c\x2Cform:l\x2Cthis:a[0]}\x2C{this:r=>{a[0]=r\x2Ci=!1;}}\x2C{})}`} `;while(!i);return u})\x2Cz={app_template_contains_nonce:!1\x2Ccsp:{mode:"auto"\x2Cdirectives:{"upgrade-insecure-requests":!1\x2C"block-all-mixed-content":!1}\x2CreportOnly:{"upgrade-insecure-requests":!1\x2C"block-all-mixed-content":!1}}\x2Ccsrf_check_origin:!1\x2Ctrack_server_fetches:!1\x2Cembedded:!1\x2Cenv_public_prefix:"PUBLIC_"\x2Cenv_private_prefix:""\x2Chooks:null\x2Cpreload_strategy:"modulepreload"\x2Croot:w\x2Cservice_worker:!1\x2Ctemplates:{app:({head:n\x2Cbody:t\x2Cassets:e\x2Cnonce:_\x2Cenv:o})=>`<!DOCTYPE html>\n<html lang="%lang%">\n  <head>\n    <meta charset="utf-8" />\n    <base href="/" />\n    <meta name="viewport" content="width=device-width\x2C initial-scale=1.0" />\n    <meta content="true" name="HandheldFriendly" />\n    <meta content="width" name="MobileOptimized" />\n    <meta name="mobile-web-app-capable" content="yes">\n    <link rel="shortcut icon" type="image/x-icon" href="`+e+`/favicon.ico" />\n\n    <meta name="msapplication-TileColor" content="#da532c" />\n    <meta name="theme-color" content="#f8fbfd" />\n\n    `+n+`\n  </head>\n  <body data-sveltekit-reload>\n    <main id="root">`+t+`</main>\n    <!-- Google Tag Manager (noscript) -->\n    <noscript><iframe\n        src="https://www.googletagmanager.com/ns.html?id=GTM-KQ8QT66"\n        height="0"\n        width="0"\n        loading="lazy"\n        style="display: none; visibility: hidden"\n      ></iframe\n    ></noscript>\n    <!-- End Google Tag Manager (noscript) -->\n  </body>\n</html>\n`\x2Cerror:({status:n\x2Cmessage:t})=>`<!DOCTYPE html>\n<html lang="en">\n\x09<head>\n\x09\x09<meta charset="utf-8" />\n\x09\x09<title>`+t+`</title>\n\n\x09\x09<style>\n\x09\x09\x09body {\n\x09\x09\x09\x09--bg: white;\n\x09\x09\x09\x09--fg: #222;\n\x09\x09\x09\x09--divider: #ccc;\n\x09\x09\x09\x09background: var(--bg);\n\x09\x09\x09\x09color: var(--fg);\n\x09\x09\x09\x09font-family: system-ui\x2C -apple-system\x2C BlinkMacSystemFont\x2C 'Segoe UI'\x2C Roboto\x2C Oxygen\x2C\n\x09\x09\x09\x09\x09Ubuntu\x2C Cantarell\x2C 'Open Sans'\x2C 'Helvetica Neue'\x2C sans-serif;\n\x09\x09\x09\x09display: flex;\n\x09\x09\x09\x09align-items: center;\n\x09\x09\x09\x09justify-content: center;\n\x09\x09\x09\x09height: 100vh;\n\x09\x09\x09\x09margin: 0;\n\x09\x09\x09}\n\n\x09\x09\x09.error {\n\x09\x09\x09\x09display: flex;\n\x09\x09\x09\x09align-items: center;\n\x09\x09\x09\x09max-width: 32rem;\n\x09\x09\x09\x09margin: 0 1rem;\n\x09\x09\x09}\n\n\x09\x09\x09.status {\n\x09\x09\x09\x09font-weight: 200;\n\x09\x09\x09\x09font-size: 3rem;\n\x09\x09\x09\x09line-height: 1;\n\x09\x09\x09\x09position: relative;\n\x09\x09\x09\x09top: -0.05rem;\n\x09\x09\x09}\n\n\x09\x09\x09.message {\n\x09\x09\x09\x09border-left: 1px solid var(--divider);\n\x09\x09\x09\x09padding: 0 0 0 1rem;\n\x09\x09\x09\x09margin: 0 0 0 1rem;\n\x09\x09\x09\x09min-height: 2.5rem;\n\x09\x09\x09\x09display: flex;\n\x09\x09\x09\x09align-items: center;\n\x09\x09\x09}\n\n\x09\x09\x09.message h1 {\n\x09\x09\x09\x09font-weight: 400;\n\x09\x09\x09\x09font-size: 1em;\n\x09\x09\x09\x09margin: 0;\n\x09\x09\x09}\n\n\x09\x09\x09@media (prefers-color-scheme: dark) {\n\x09\x09\x09\x09body {\n\x09\x09\x09\x09\x09--bg: #222;\n\x09\x09\x09\x09\x09--fg: #ddd;\n\x09\x09\x09\x09\x09--divider: #666;\n\x09\x09\x09\x09}\n\x09\x09\x09}\n\x09\x09</style>\n\x09</head>\n\x09<body>\n\x09\x09<div class="error">\n\x09\x09\x09<span class="status">`+n+`</span>\n\x09\x09\x09<div class="message">\n\x09\x09\x09\x09<h1>`+t+`</h1>\n\x09\x09\x09</div>\n\x09\x09</div>\n\x09</body>\n</html>\n`}\x2Cversion_hash:"1ixzavt"};function M$1(){return import('./chunks/hooks.server-2187e3d5.js')}\n\n/** @type {Record<string\x2C string>} */\nconst escaped = {\n\x09'<': '\\\\u003C'\x2C\n\x09'\\\\': '\\\\\\\\'\x2C\n\x09'\\b': '\\\\b'\x2C\n\x09'\\f': '\\\\f'\x2C\n\x09'\\n': '\\\\n'\x2C\n\x09'\\r': '\\\\r'\x2C\n\x09'\\t': '\\\\t'\x2C\n\x09'\\u2028': '\\\\u2028'\x2C\n\x09'\\u2029': '\\\\u2029'\n};\n\nclass DevalueError extends Error {\n\x09/**\n\x09 * @param {string} message\n\x09 * @param {string[]} keys\n\x09 */\n\x09constructor(message\x2C keys) {\n\x09\x09super(message);\n\x09\x09this.name = 'DevalueError';\n\x09\x09this.path = keys.join('');\n\x09}\n}\n\n/** @param {any} thing */\nfunction is_primitive(thing) {\n\x09return Object(thing) !== thing;\n}\n\nconst object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(\n\x09Object.prototype\n)\n\x09.sort()\n\x09.join('\\0');\n\n/** @param {any} thing */\nfunction is_plain_object(thing) {\n\x09const proto = Object.getPrototypeOf(thing);\n\n\x09return (\n\x09\x09proto === Object.prototype ||\n\x09\x09proto === null ||\n\x09\x09Object.getOwnPropertyNames(proto).sort().join('\\0') === object_proto_names\n\x09);\n}\n\n/** @param {any} thing */\nfunction get_type(thing) {\n\x09return Object.prototype.toString.call(thing).slice(8\x2C -1);\n}\n\n/** @param {string} char */\nfunction get_escaped_char(char) {\n\x09switch (char) {\n\x09\x09case '"':\n\x09\x09\x09return '\\\\"';\n\x09\x09case '<':\n\x09\x09\x09return '\\\\u003C';\n\x09\x09case '\\\\':\n\x09\x09\x09return '\\\\\\\\';\n\x09\x09case '\\n':\n\x09\x09\x09return '\\\\n';\n\x09\x09case '\\r':\n\x09\x09\x09return '\\\\r';\n\x09\x09case '\\t':\n\x09\x09\x09return '\\\\t';\n\x09\x09case '\\b':\n\x09\x09\x09return '\\\\b';\n\x09\x09case '\\f':\n\x09\x09\x09return '\\\\f';\n\x09\x09case '\\u2028':\n\x09\x09\x09return '\\\\u2028';\n\x09\x09case '\\u2029':\n\x09\x09\x09return '\\\\u2029';\n\x09\x09default:\n\x09\x09\x09return char < ' '\n\x09\x09\x09\x09? `\\\\u${char.charCodeAt(0).toString(16).padStart(4\x2C '0')}`\n\x09\x09\x09\x09: '';\n\x09}\n}\n\n/** @param {string} str */\nfunction stringify_string(str) {\n\x09let result = '';\n\x09let last_pos = 0;\n\x09const len = str.length;\n\n\x09for (let i = 0; i < len; i += 1) {\n\x09\x09const char = str[i];\n\x09\x09const replacement = get_escaped_char(char);\n\x09\x09if (replacement) {\n\x09\x09\x09result += str.slice(last_pos\x2C i) + replacement;\n\x09\x09\x09last_pos = i + 1;\n\x09\x09}\n\x09}\n\n\x09return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`;\n}\n\nconst chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$';\nconst unsafe_chars = /[<\\b\\f\\n\\r\\t\\0\\u2028\\u2029]/g;\nconst reserved =\n\x09/^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/;\n\n/**\n * Turn a value into the JavaScript that creates an equivalent value\n * @param {any} value\n * @param {(value: any) => string | void} [replacer]\n */\nfunction uneval(value\x2C replacer) {\n\x09const counts = new Map();\n\n\x09/** @type {string[]} */\n\x09const keys = [];\n\n\x09const custom = new Map();\n\n\x09/** @param {any} thing */\n\x09function walk(thing) {\n\x09\x09if (typeof thing === 'function') {\n\x09\x09\x09throw new DevalueError(`Cannot stringify a function`\x2C keys);\n\x09\x09}\n\n\x09\x09if (!is_primitive(thing)) {\n\x09\x09\x09if (counts.has(thing)) {\n\x09\x09\x09\x09counts.set(thing\x2C counts.get(thing) + 1);\n\x09\x09\x09\x09return;\n\x09\x09\x09}\n\n\x09\x09\x09counts.set(thing\x2C 1);\n\n\x09\x09\x09if (replacer) {\n\x09\x09\x09\x09const str = replacer(thing);\n\n\x09\x09\x09\x09if (typeof str === 'string') {\n\x09\x09\x09\x09\x09custom.set(thing\x2C str);\n\x09\x09\x09\x09\x09return;\n\x09\x09\x09\x09}\n\x09\x09\x09}\n\n\x09\x09\x09const type = get_type(thing);\n\n\x09\x09\x09switch (type) {\n\x09\x09\x09\x09case 'Number':\n\x09\x09\x09\x09case 'BigInt':\n\x09\x09\x09\x09case 'String':\n\x09\x09\x09\x09case 'Boolean':\n\x09\x09\x09\x09case 'Date':\n\x09\x09\x09\x09case 'RegExp':\n\x09\x09\x09\x09\x09return;\n\n\x09\x09\x09\x09case 'Array':\n\x09\x09\x09\x09\x09/** @type {any[]} */ (thing).forEach((value\x2C i) => {\n\x09\x09\x09\x09\x09\x09keys.push(`[${i}]`);\n\x09\x09\x09\x09\x09\x09walk(value);\n\x09\x09\x09\x09\x09\x09keys.pop();\n\x09\x09\x09\x09\x09});\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Set':\n\x09\x09\x09\x09\x09Array.from(thing).forEach(walk);\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Map':\n\x09\x09\x09\x09\x09for (const [key\x2C value] of thing) {\n\x09\x09\x09\x09\x09\x09keys.push(\n\x09\x09\x09\x09\x09\x09\x09`.get(${is_primitive(key) ? stringify_primitive$1(key) : '...'})`\n\x09\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09\x09walk(value);\n\x09\x09\x09\x09\x09\x09keys.pop();\n\x09\x09\x09\x09\x09}\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09default:\n\x09\x09\x09\x09\x09if (!is_plain_object(thing)) {\n\x09\x09\x09\x09\x09\x09throw new DevalueError(\n\x09\x09\x09\x09\x09\x09\x09`Cannot stringify arbitrary non-POJOs`\x2C\n\x09\x09\x09\x09\x09\x09\x09keys\n\x09\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09if (Object.getOwnPropertySymbols(thing).length > 0) {\n\x09\x09\x09\x09\x09\x09throw new DevalueError(\n\x09\x09\x09\x09\x09\x09\x09`Cannot stringify POJOs with symbolic keys`\x2C\n\x09\x09\x09\x09\x09\x09\x09keys\n\x09\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09for (const key in thing) {\n\x09\x09\x09\x09\x09\x09keys.push(`.${key}`);\n\x09\x09\x09\x09\x09\x09walk(thing[key]);\n\x09\x09\x09\x09\x09\x09keys.pop();\n\x09\x09\x09\x09\x09}\n\x09\x09\x09}\n\x09\x09}\n\x09}\n\n\x09walk(value);\n\n\x09const names = new Map();\n\n\x09Array.from(counts)\n\x09\x09.filter((entry) => entry[1] > 1)\n\x09\x09.sort((a\x2C b) => b[1] - a[1])\n\x09\x09.forEach((entry\x2C i) => {\n\x09\x09\x09names.set(entry[0]\x2C get_name(i));\n\x09\x09});\n\n\x09/**\n\x09 * @param {any} thing\n\x09 * @returns {string}\n\x09 */\n\x09function stringify(thing) {\n\x09\x09if (names.has(thing)) {\n\x09\x09\x09return names.get(thing);\n\x09\x09}\n\n\x09\x09if (is_primitive(thing)) {\n\x09\x09\x09return stringify_primitive$1(thing);\n\x09\x09}\n\n\x09\x09if (custom.has(thing)) {\n\x09\x09\x09return custom.get(thing);\n\x09\x09}\n\n\x09\x09const type = get_type(thing);\n\n\x09\x09switch (type) {\n\x09\x09\x09case 'Number':\n\x09\x09\x09case 'String':\n\x09\x09\x09case 'Boolean':\n\x09\x09\x09\x09return `Object(${stringify(thing.valueOf())})`;\n\n\x09\x09\x09case 'RegExp':\n\x09\x09\x09\x09return `new RegExp(${stringify_string(thing.source)}\x2C "${\n\x09\x09\x09\x09\x09thing.flags\n\x09\x09\x09\x09}")`;\n\n\x09\x09\x09case 'Date':\n\x09\x09\x09\x09return `new Date(${thing.getTime()})`;\n\n\x09\x09\x09case 'Array':\n\x09\x09\x09\x09const members = /** @type {any[]} */ (thing).map((v\x2C i) =>\n\x09\x09\x09\x09\x09i in thing ? stringify(v) : ''\n\x09\x09\x09\x09);\n\x09\x09\x09\x09const tail = thing.length === 0 || thing.length - 1 in thing ? '' : '\x2C';\n\x09\x09\x09\x09return `[${members.join('\x2C')}${tail}]`;\n\n\x09\x09\x09case 'Set':\n\x09\x09\x09case 'Map':\n\x09\x09\x09\x09return `new ${type}([${Array.from(thing).map(stringify).join('\x2C')}])`;\n\n\x09\x09\x09default:\n\x09\x09\x09\x09const obj = `{${Object.keys(thing)\n\x09\x09\x09\x09\x09.map((key) => `${safe_key(key)}:${stringify(thing[key])}`)\n\x09\x09\x09\x09\x09.join('\x2C')}}`;\n\x09\x09\x09\x09const proto = Object.getPrototypeOf(thing);\n\x09\x09\x09\x09if (proto === null) {\n\x09\x09\x09\x09\x09return Object.keys(thing).length > 0\n\x09\x09\x09\x09\x09\x09? `Object.assign(Object.create(null)\x2C${obj})`\n\x09\x09\x09\x09\x09\x09: `Object.create(null)`;\n\x09\x09\x09\x09}\n\n\x09\x09\x09\x09return obj;\n\x09\x09}\n\x09}\n\n\x09const str = stringify(value);\n\n\x09if (names.size) {\n\x09\x09/** @type {string[]} */\n\x09\x09const params = [];\n\n\x09\x09/** @type {string[]} */\n\x09\x09const statements = [];\n\n\x09\x09/** @type {string[]} */\n\x09\x09const values = [];\n\n\x09\x09names.forEach((name\x2C thing) => {\n\x09\x09\x09params.push(name);\n\n\x09\x09\x09if (custom.has(thing)) {\n\x09\x09\x09\x09values.push(/** @type {string} */ (custom.get(thing)));\n\x09\x09\x09\x09return;\n\x09\x09\x09}\n\n\x09\x09\x09if (is_primitive(thing)) {\n\x09\x09\x09\x09values.push(stringify_primitive$1(thing));\n\x09\x09\x09\x09return;\n\x09\x09\x09}\n\n\x09\x09\x09const type = get_type(thing);\n\n\x09\x09\x09switch (type) {\n\x09\x09\x09\x09case 'Number':\n\x09\x09\x09\x09case 'String':\n\x09\x09\x09\x09case 'Boolean':\n\x09\x09\x09\x09\x09values.push(`Object(${stringify(thing.valueOf())})`);\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'RegExp':\n\x09\x09\x09\x09\x09values.push(thing.toString());\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Date':\n\x09\x09\x09\x09\x09values.push(`new Date(${thing.getTime()})`);\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Array':\n\x09\x09\x09\x09\x09values.push(`Array(${thing.length})`);\n\x09\x09\x09\x09\x09/** @type {any[]} */ (thing).forEach((v\x2C i) => {\n\x09\x09\x09\x09\x09\x09statements.push(`${name}[${i}]=${stringify(v)}`);\n\x09\x09\x09\x09\x09});\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Set':\n\x09\x09\x09\x09\x09values.push(`new Set`);\n\x09\x09\x09\x09\x09statements.push(\n\x09\x09\x09\x09\x09\x09`${name}.${Array.from(thing)\n\x09\x09\x09\x09\x09\x09\x09.map((v) => `add(${stringify(v)})`)\n\x09\x09\x09\x09\x09\x09\x09.join('.')}`\n\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Map':\n\x09\x09\x09\x09\x09values.push(`new Map`);\n\x09\x09\x09\x09\x09statements.push(\n\x09\x09\x09\x09\x09\x09`${name}.${Array.from(thing)\n\x09\x09\x09\x09\x09\x09\x09.map(([k\x2C v]) => `set(${stringify(k)}\x2C ${stringify(v)})`)\n\x09\x09\x09\x09\x09\x09\x09.join('.')}`\n\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09default:\n\x09\x09\x09\x09\x09values.push(\n\x09\x09\x09\x09\x09\x09Object.getPrototypeOf(thing) === null ? 'Object.create(null)' : '{}'\n\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09Object.keys(thing).forEach((key) => {\n\x09\x09\x09\x09\x09\x09statements.push(\n\x09\x09\x09\x09\x09\x09\x09`${name}${safe_prop(key)}=${stringify(thing[key])}`\n\x09\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09});\n\x09\x09\x09}\n\x09\x09});\n\n\x09\x09statements.push(`return ${str}`);\n\n\x09\x09return `(function(${params.join('\x2C')}){${statements.join(\n\x09\x09\x09';'\n\x09\x09)}}(${values.join('\x2C')}))`;\n\x09} else {\n\x09\x09return str;\n\x09}\n}\n\n/** @param {number} num */\nfunction get_name(num) {\n\x09let name = '';\n\n\x09do {\n\x09\x09name = chars[num % chars.length] + name;\n\x09\x09num = ~~(num / chars.length) - 1;\n\x09} while (num >= 0);\n\n\x09return reserved.test(name) ? `${name}0` : name;\n}\n\n/** @param {string} c */\nfunction escape_unsafe_char(c) {\n\x09return escaped[c] || c;\n}\n\n/** @param {string} str */\nfunction escape_unsafe_chars(str) {\n\x09return str.replace(unsafe_chars\x2C escape_unsafe_char);\n}\n\n/** @param {string} key */\nfunction safe_key(key) {\n\x09return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key)\n\x09\x09? key\n\x09\x09: escape_unsafe_chars(JSON.stringify(key));\n}\n\n/** @param {string} key */\nfunction safe_prop(key) {\n\x09return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key)\n\x09\x09? `.${key}`\n\x09\x09: `[${escape_unsafe_chars(JSON.stringify(key))}]`;\n}\n\n/** @param {any} thing */\nfunction stringify_primitive$1(thing) {\n\x09if (typeof thing === 'string') return stringify_string(thing);\n\x09if (thing === void 0) return 'void 0';\n\x09if (thing === 0 && 1 / thing < 0) return '-0';\n\x09const str = String(thing);\n\x09if (typeof thing === 'number') return str.replace(/^(-)?0\\./\x2C '$1.');\n\x09if (typeof thing === 'bigint') return thing + 'n';\n\x09return str;\n}\n\nconst UNDEFINED = -1;\nconst HOLE = -2;\nconst NAN = -3;\nconst POSITIVE_INFINITY = -4;\nconst NEGATIVE_INFINITY = -5;\nconst NEGATIVE_ZERO = -6;\n\n/**\n * Turn a value into a JSON string that can be parsed with `devalue.parse`\n * @param {any} value\n * @param {Record<string\x2C (value: any) => any>} [reducers]\n */\nfunction stringify(value\x2C reducers) {\n\x09/** @type {any[]} */\n\x09const stringified = [];\n\n\x09/** @type {Map<any\x2C number>} */\n\x09const indexes = new Map();\n\n\x09/** @type {Array<{ key: string\x2C fn: (value: any) => any }>} */\n\x09const custom = [];\n\x09for (const key in reducers) {\n\x09\x09custom.push({ key\x2C fn: reducers[key] });\n\x09}\n\n\x09/** @type {string[]} */\n\x09const keys = [];\n\n\x09let p = 0;\n\n\x09/** @param {any} thing */\n\x09function flatten(thing) {\n\x09\x09if (typeof thing === 'function') {\n\x09\x09\x09throw new DevalueError(`Cannot stringify a function`\x2C keys);\n\x09\x09}\n\n\x09\x09if (indexes.has(thing)) return indexes.get(thing);\n\n\x09\x09if (thing === undefined) return UNDEFINED;\n\x09\x09if (Number.isNaN(thing)) return NAN;\n\x09\x09if (thing === Infinity) return POSITIVE_INFINITY;\n\x09\x09if (thing === -Infinity) return NEGATIVE_INFINITY;\n\x09\x09if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO;\n\n\x09\x09const index = p++;\n\x09\x09indexes.set(thing\x2C index);\n\n\x09\x09for (const { key\x2C fn } of custom) {\n\x09\x09\x09const value = fn(thing);\n\x09\x09\x09if (value) {\n\x09\x09\x09\x09stringified[index] = `["${key}"\x2C${flatten(value)}]`;\n\x09\x09\x09\x09return index;\n\x09\x09\x09}\n\x09\x09}\n\n\x09\x09let str = '';\n\n\x09\x09if (is_primitive(thing)) {\n\x09\x09\x09str = stringify_primitive(thing);\n\x09\x09} else {\n\x09\x09\x09const type = get_type(thing);\n\n\x09\x09\x09switch (type) {\n\x09\x09\x09\x09case 'Number':\n\x09\x09\x09\x09case 'String':\n\x09\x09\x09\x09case 'Boolean':\n\x09\x09\x09\x09\x09str = `["Object"\x2C${stringify_primitive(thing)}]`;\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'BigInt':\n\x09\x09\x09\x09\x09str = `["BigInt"\x2C${thing}]`;\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Date':\n\x09\x09\x09\x09\x09str = `["Date"\x2C"${thing.toISOString()}"]`;\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'RegExp':\n\x09\x09\x09\x09\x09const { source\x2C flags } = thing;\n\x09\x09\x09\x09\x09str = flags\n\x09\x09\x09\x09\x09\x09? `["RegExp"\x2C${stringify_string(source)}\x2C"${flags}"]`\n\x09\x09\x09\x09\x09\x09: `["RegExp"\x2C${stringify_string(source)}]`;\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Array':\n\x09\x09\x09\x09\x09str = '[';\n\n\x09\x09\x09\x09\x09for (let i = 0; i < thing.length; i += 1) {\n\x09\x09\x09\x09\x09\x09if (i > 0) str += '\x2C';\n\n\x09\x09\x09\x09\x09\x09if (i in thing) {\n\x09\x09\x09\x09\x09\x09\x09keys.push(`[${i}]`);\n\x09\x09\x09\x09\x09\x09\x09str += flatten(thing[i]);\n\x09\x09\x09\x09\x09\x09\x09keys.pop();\n\x09\x09\x09\x09\x09\x09} else {\n\x09\x09\x09\x09\x09\x09\x09str += HOLE;\n\x09\x09\x09\x09\x09\x09}\n\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09str += ']';\n\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Set':\n\x09\x09\x09\x09\x09str = '["Set"';\n\n\x09\x09\x09\x09\x09for (const value of thing) {\n\x09\x09\x09\x09\x09\x09str += `\x2C${flatten(value)}`;\n\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09str += ']';\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09case 'Map':\n\x09\x09\x09\x09\x09str = '["Map"';\n\n\x09\x09\x09\x09\x09for (const [key\x2C value] of thing) {\n\x09\x09\x09\x09\x09\x09keys.push(\n\x09\x09\x09\x09\x09\x09\x09`.get(${is_primitive(key) ? stringify_primitive(key) : '...'})`\n\x09\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09\x09str += `\x2C${flatten(key)}\x2C${flatten(value)}`;\n\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09str += ']';\n\x09\x09\x09\x09\x09break;\n\n\x09\x09\x09\x09default:\n\x09\x09\x09\x09\x09if (!is_plain_object(thing)) {\n\x09\x09\x09\x09\x09\x09throw new DevalueError(\n\x09\x09\x09\x09\x09\x09\x09`Cannot stringify arbitrary non-POJOs`\x2C\n\x09\x09\x09\x09\x09\x09\x09keys\n\x09\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09if (Object.getOwnPropertySymbols(thing).length > 0) {\n\x09\x09\x09\x09\x09\x09throw new DevalueError(\n\x09\x09\x09\x09\x09\x09\x09`Cannot stringify POJOs with symbolic keys`\x2C\n\x09\x09\x09\x09\x09\x09\x09keys\n\x09\x09\x09\x09\x09\x09);\n\x09\x09\x09\x09\x09}\n\n\x09\x09\x09\x09\x09if (Object.getPrototypeOf(thing) === null) {\n\x09\x09\x09\x09\x09\x09str = '["null"';\n\x09\x09\x09\x09\x09\x09for (const key in thing) {\n\x09\x09\x09\x09\x09\x09\x09keys.push(`.${key}`);\n\x09\x09\x09\x09\x09\x09\x09str += `\x2C${stringify_string(key)}\x2C${flatten(thing[key])}`;\n\x09\x09\x09\x09\x09\x09\x09keys.pop();\n\x09\x09\x09\x09\x09\x09}\n\x09\x09\x09\x09\x09\x09str += ']';\n\x09\x09\x09\x09\x09} else {\n\x09\x09\x09\x09\x09\x09str = '{';\n\x09\x09\x09\x09\x09\x09let started = false;\n\x09\x09\x09\x09\x09\x09for (const key in thing) {\n\x09\x09\x09\x09\x09\x09\x09if (started) str += '\x2C';\n\x09\x09\x09\x09\x09\x09\x09started = true;\n\x09\x09\x09\x09\x09\x09\x09keys.push(`.${key}`);\n\x09\x09\x09\x09\x09\x09\x09str += `${stringify_string(key)}:${flatten(thing[key])}`;\n\x09\x09\x09\x09\x09\x09\x09keys.pop();\n\x09\x09\x09\x09\x09\x09}\n\x09\x09\x09\x09\x09\x09str += '}';\n\x09\x09\x09\x09\x09}\n\x09\x09\x09}\n\x09\x09}\n\n\x09\x09stringified[index] = str;\n\x09\x09return index;\n\x09}\n\n\x09const index = flatten(value);\n\n\x09// special case \u2014\xa0value is represented as a negative index\n\x09if (index < 0) return `${index}`;\n\n\x09return `[${stringified.join('\x2C')}]`;\n}\n\n/**\n * @param {any} thing\n * @returns {string}\n */\nfunction stringify_primitive(thing) {\n\x09const type = typeof thing;\n\x09if (type === 'string') return stringify_string(thing);\n\x09if (thing instanceof String) return stringify_string(thing.toString());\n\x09if (thing === void 0) return UNDEFINED.toString();\n\x09if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString();\n\x09if (type === 'bigint') return `["BigInt"\x2C"${thing}"]`;\n\x09return String(thing);\n}\n\nvar cookie = {};\n\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\nvar hasRequiredCookie;\n\nfunction requireCookie () {\n\x09if (hasRequiredCookie) return cookie;\n\x09hasRequiredCookie = 1;\n\n\x09/**\n\x09 * Module exports.\n\x09 * @public\n\x09 */\n\n\x09cookie.parse = parse;\n\x09cookie.serialize = serialize;\n\n\x09/**\n\x09 * Module variables.\n\x09 * @private\n\x09 */\n\n\x09var __toString = Object.prototype.toString;\n\n\x09/**\n\x09 * RegExp to match field-content in RFC 7230 sec 3.2\n\x09 *\n\x09 * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n\x09 * field-vchar   = VCHAR / obs-text\n\x09 * obs-text      = %x80-FF\n\x09 */\n\n\x09var fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n\x09/**\n\x09 * Parse a cookie header.\n\x09 *\n\x09 * Parse the given cookie header string into an object\n\x09 * The object has the various cookies as keys(names) => values\n\x09 *\n\x09 * @param {string} str\n\x09 * @param {object} [options]\n\x09 * @return {object}\n\x09 * @public\n\x09 */\n\n\x09function parse(str\x2C options) {\n\x09  if (typeof str !== 'string') {\n\x09    throw new TypeError('argument str must be a string');\n\x09  }\n\n\x09  var obj = {};\n\x09  var opt = options || {};\n\x09  var dec = opt.decode || decode;\n\n\x09  var index = 0;\n\x09  while (index < str.length) {\n\x09    var eqIdx = str.indexOf('='\x2C index);\n\n\x09    // no more cookie pairs\n\x09    if (eqIdx === -1) {\n\x09      break\n\x09    }\n\n\x09    var endIdx = str.indexOf(';'\x2C index);\n\n\x09    if (endIdx === -1) {\n\x09      endIdx = str.length;\n\x09    } else if (endIdx < eqIdx) {\n\x09      // backtrack on prior semicolon\n\x09      index = str.lastIndexOf(';'\x2C eqIdx - 1) + 1;\n\x09      continue\n\x09    }\n\n\x09    var key = str.slice(index\x2C eqIdx).trim();\n\n\x09    // only assign once\n\x09    if (undefined === obj[key]) {\n\x09      var val = str.slice(eqIdx + 1\x2C endIdx).trim();\n\n\x09      // quoted values\n\x09      if (val.charCodeAt(0) === 0x22) {\n\x09        val = val.slice(1\x2C -1);\n\x09      }\n\n\x09      obj[key] = tryDecode(val\x2C dec);\n\x09    }\n\n\x09    index = endIdx + 1;\n\x09  }\n\n\x09  return obj;\n\x09}\n\n\x09/**\n\x09 * Serialize data into a cookie header.\n\x09 *\n\x09 * Serialize the a name value pair into a cookie string suitable for\n\x09 * http headers. An optional options object specified cookie parameters.\n\x09 *\n\x09 * serialize('foo'\x2C 'bar'\x2C { httpOnly: true })\n\x09 *   => "foo=bar; httpOnly"\n\x09 *\n\x09 * @param {string} name\n\x09 * @param {string} val\n\x09 * @param {object} [options]\n\x09 * @return {string}\n\x09 * @public\n\x09 */\n\n\x09function serialize(name\x2C val\x2C options) {\n\x09  var opt = options || {};\n\x09  var enc = opt.encode || encode;\n\n\x09  if (typeof enc !== 'function') {\n\x09    throw new TypeError('option encode is invalid');\n\x09  }\n\n\x09  if (!fieldContentRegExp.test(name)) {\n\x09    throw new TypeError('argument name is invalid');\n\x09  }\n\n\x09  var value = enc(val);\n\n\x09  if (value && !fieldContentRegExp.test(value)) {\n\x09    throw new TypeError('argument val is invalid');\n\x09  }\n\n\x09  var str = name + '=' + value;\n\n\x09  if (null != opt.maxAge) {\n\x09    var maxAge = opt.maxAge - 0;\n\n\x09    if (isNaN(maxAge) || !isFinite(maxAge)) {\n\x09      throw new TypeError('option maxAge is invalid')\n\x09    }\n\n\x09    str += '; Max-Age=' + Math.floor(maxAge);\n\x09  }\n\n\x09  if (opt.domain) {\n\x09    if (!fieldContentRegExp.test(opt.domain)) {\n\x09      throw new TypeError('option domain is invalid');\n\x09    }\n\n\x09    str += '; Domain=' + opt.domain;\n\x09  }\n\n\x09  if (opt.path) {\n\x09    if (!fieldContentRegExp.test(opt.path)) {\n\x09      throw new TypeError('option path is invalid');\n\x09    }\n\n\x09    str += '; Path=' + opt.path;\n\x09  }\n\n\x09  if (opt.expires) {\n\x09    var expires = opt.expires;\n\n\x09    if (!isDate(expires) || isNaN(expires.valueOf())) {\n\x09      throw new TypeError('option expires is invalid');\n\x09    }\n\n\x09    str += '; Expires=' + expires.toUTCString();\n\x09  }\n\n\x09  if (opt.httpOnly) {\n\x09    str += '; HttpOnly';\n\x09  }\n\n\x09  if (opt.secure) {\n\x09    str += '; Secure';\n\x09  }\n\n\x09  if (opt.priority) {\n\x09    var priority = typeof opt.priority === 'string'\n\x09      ? opt.priority.toLowerCase()\n\x09      : opt.priority;\n\n\x09    switch (priority) {\n\x09      case 'low':\n\x09        str += '; Priority=Low';\n\x09        break\n\x09      case 'medium':\n\x09        str += '; Priority=Medium';\n\x09        break\n\x09      case 'high':\n\x09        str += '; Priority=High';\n\x09        break\n\x09      default:\n\x09        throw new TypeError('option priority is invalid')\n\x09    }\n\x09  }\n\n\x09  if (opt.sameSite) {\n\x09    var sameSite = typeof opt.sameSite === 'string'\n\x09      ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n\x09    switch (sameSite) {\n\x09      case true:\n\x09        str += '; SameSite=Strict';\n\x09        break;\n\x09      case 'lax':\n\x09        str += '; SameSite=Lax';\n\x09        break;\n\x09      case 'strict':\n\x09        str += '; SameSite=Strict';\n\x09        break;\n\x09      case 'none':\n\x09        str += '; SameSite=None';\n\x09        break;\n\x09      default:\n\x09        throw new TypeError('option sameSite is invalid');\n\x09    }\n\x09  }\n\n\x09  return str;\n\x09}\n\n\x09/**\n\x09 * URL-decode string value. Optimized to skip native call when no %.\n\x09 *\n\x09 * @param {string} str\n\x09 * @returns {string}\n\x09 */\n\n\x09function decode (str) {\n\x09  return str.indexOf('%') !== -1\n\x09    ? decodeURIComponent(str)\n\x09    : str\n\x09}\n\n\x09/**\n\x09 * URL-encode value.\n\x09 *\n\x09 * @param {string} str\n\x09 * @returns {string}\n\x09 */\n\n\x09function encode (val) {\n\x09  return encodeURIComponent(val)\n\x09}\n\n\x09/**\n\x09 * Determine if value is a Date.\n\x09 *\n\x09 * @param {*} val\n\x09 * @private\n\x09 */\n\n\x09function isDate (val) {\n\x09  return __toString.call(val) === '[object Date]' ||\n\x09    val instanceof Date\n\x09}\n\n\x09/**\n\x09 * Try decoding a string using a decoding function.\n\x09 *\n\x09 * @param {string} str\n\x09 * @param {function} decode\n\x09 * @private\n\x09 */\n\n\x09function tryDecode(str\x2C decode) {\n\x09  try {\n\x09    return decode(str);\n\x09  } catch (e) {\n\x09    return str;\n\x09  }\n\x09}\n\x09return cookie;\n}\n\nvar cookieExports = requireCookie();\n\nvar setCookie = {exports: {}};\n\nvar hasRequiredSetCookie;\n\nfunction requireSetCookie () {\n\x09if (hasRequiredSetCookie) return setCookie.exports;\n\x09hasRequiredSetCookie = 1;\n\n\x09var defaultParseOptions = {\n\x09  decodeValues: true\x2C\n\x09  map: false\x2C\n\x09  silent: false\x2C\n\x09};\n\n\x09function isNonEmptyString(str) {\n\x09  return typeof str === "string" && !!str.trim();\n\x09}\n\n\x09function parseString(setCookieValue\x2C options) {\n\x09  var parts = setCookieValue.split(";").filter(isNonEmptyString);\n\n\x09  var nameValuePairStr = parts.shift();\n\x09  var parsed = parseNameValuePair(nameValuePairStr);\n\x09  var name = parsed.name;\n\x09  var value = parsed.value;\n\n\x09  options = options\n\x09    ? Object.assign({}\x2C defaultParseOptions\x2C options)\n\x09    : defaultParseOptions;\n\n\x09  try {\n\x09    value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n\x09  } catch (e) {\n\x09    console.error(\n\x09      "set-cookie-parser encountered an error while decoding a cookie with value '" +\n\x09        value +\n\x09        "'. Set options.decodeValues to false to disable this feature."\x2C\n\x09      e\n\x09    );\n\x09  }\n\n\x09  var cookie = {\n\x09    name: name\x2C\n\x09    value: value\x2C\n\x09  };\n\n\x09  parts.forEach(function (part) {\n\x09    var sides = part.split("=");\n\x09    var key = sides.shift().trimLeft().toLowerCase();\n\x09    var value = sides.join("=");\n\x09    if (key === "expires") {\n\x09      cookie.expires = new Date(value);\n\x09    } else if (key === "max-age") {\n\x09      cookie.maxAge = parseInt(value\x2C 10);\n\x09    } else if (key === "secure") {\n\x09      cookie.secure = true;\n\x09    } else if (key === "httponly") {\n\x09      cookie.httpOnly = true;\n\x09    } else if (key === "samesite") {\n\x09      cookie.sameSite = value;\n\x09    } else {\n\x09      cookie[key] = value;\n\x09    }\n\x09  });\n\n\x09  return cookie;\n\x09}\n\n\x09function parseNameValuePair(nameValuePairStr) {\n\x09  // Parses name-value-pair according to rfc6265bis draft\n\n\x09  var name = "";\n\x09  var value = "";\n\x09  var nameValueArr = nameValuePairStr.split("=");\n\x09  if (nameValueArr.length > 1) {\n\x09    name = nameValueArr.shift();\n\x09    value = nameValueArr.join("="); // everything after the first =\x2C joined by a "=" if there was more than one part\n\x09  } else {\n\x09    value = nameValuePairStr;\n\x09  }\n\n\x09  return { name: name\x2C value: value };\n\x09}\n\n\x09function parse(input\x2C options) {\n\x09  options = options\n\x09    ? Object.assign({}\x2C defaultParseOptions\x2C options)\n\x09    : defaultParseOptions;\n\n\x09  if (!input) {\n\x09    if (!options.map) {\n\x09      return [];\n\x09    } else {\n\x09      return {};\n\x09    }\n\x09  }\n\n\x09  if (input.headers) {\n\x09    if (typeof input.headers.getSetCookie === "function") {\n\x09      // for fetch responses - they combine headers of the same type in the headers array\x2C\n\x09      // but getSetCookie returns an uncombined array\n\x09      input = input.headers.getSetCookie();\n\x09    } else if (input.headers["set-cookie"]) {\n\x09      // fast-path for node.js (which automatically normalizes header names to lower-case\n\x09      input = input.headers["set-cookie"];\n\x09    } else {\n\x09      // slow-path for other environments - see #25\n\x09      var sch =\n\x09        input.headers[\n\x09          Object.keys(input.headers).find(function (key) {\n\x09            return key.toLowerCase() === "set-cookie";\n\x09          })\n\x09        ];\n\x09      // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34\x2C 36\n\x09      if (!sch && input.headers.cookie && !options.silent) {\n\x09        console.warn(\n\x09          "Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses\x2C not Cookie headers from requests. Set the option {silent: true} to suppress this warning."\n\x09        );\n\x09      }\n\x09      input = sch;\n\x09    }\n\x09  }\n\x09  if (!Array.isArray(input)) {\n\x09    input = [input];\n\x09  }\n\n\x09  options = options\n\x09    ? Object.assign({}\x2C defaultParseOptions\x2C options)\n\x09    : defaultParseOptions;\n\n\x09  if (!options.map) {\n\x09    return input.filter(isNonEmptyString).map(function (str) {\n\x09      return parseString(str\x2C options);\n\x09    });\n\x09  } else {\n\x09    var cookies = {};\n\x09    return input.filter(isNonEmptyString).reduce(function (cookies\x2C str) {\n\x09      var cookie = parseString(str\x2C options);\n\x09      cookies[cookie.name] = cookie;\n\x09      return cookies;\n\x09    }\x2C cookies);\n\x09  }\n\x09}\n\n\x09/*\n\x09  Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n\x09  that are within a single set-cookie field-value\x2C such as in the Expires portion.\n\n\x09  This is uncommon\x2C but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n\x09  Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n\x09  React Native's fetch does this for *every* header\x2C including set-cookie.\n\n\x09  Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n\x09  Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n\x09*/\n\x09function splitCookiesString(cookiesString) {\n\x09  if (Array.isArray(cookiesString)) {\n\x09    return cookiesString;\n\x09  }\n\x09  if (typeof cookiesString !== "string") {\n\x09    return [];\n\x09  }\n\n\x09  var cookiesStrings = [];\n\x09  var pos = 0;\n\x09  var start;\n\x09  var ch;\n\x09  var lastComma;\n\x09  var nextStart;\n\x09  var cookiesSeparatorFound;\n\n\x09  function skipWhitespace() {\n\x09    while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n\x09      pos += 1;\n\x09    }\n\x09    return pos < cookiesString.length;\n\x09  }\n\n\x09  function notSpecialChar() {\n\x09    ch = cookiesString.charAt(pos);\n\n\x09    return ch !== "=" && ch !== ";" && ch !== "\x2C";\n\x09  }\n\n\x09  while (pos < cookiesString.length) {\n\x09    start = pos;\n\x09    cookiesSeparatorFound = false;\n\n\x09    while (skipWhitespace()) {\n\x09      ch = cookiesString.charAt(pos);\n\x09      if (ch === "\x2C") {\n\x09        // '\x2C' is a cookie separator if we have later first '='\x2C not ';' or '\x2C'\n\x09        lastComma = pos;\n\x09        pos += 1;\n\n\x09        skipWhitespace();\n\x09        nextStart = pos;\n\n\x09        while (pos < cookiesString.length && notSpecialChar()) {\n\x09          pos += 1;\n\x09        }\n\n\x09        // currently special character\n\x09        if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") {\n\x09          // we found cookies separator\n\x09          cookiesSeparatorFound = true;\n\x09          // pos is inside the next cookie\x2C so back up and return it.\n\x09          pos = nextStart;\n\x09          cookiesStrings.push(cookiesString.substring(start\x2C lastComma));\n\x09          start = pos;\n\x09        } else {\n\x09          // in param '\x2C' or param separator ';'\x2C\n\x09          // we continue from that comma\n\x09          pos = lastComma + 1;\n\x09        }\n\x09      } else {\n\x09        pos += 1;\n\x09      }\n\x09    }\n\n\x09    if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n\x09      cookiesStrings.push(cookiesString.substring(start\x2C cookiesString.length));\n\x09    }\n\x09  }\n\n\x09  return cookiesStrings;\n\x09}\n\n\x09setCookie.exports = parse;\n\x09setCookie.exports.parse = parse;\n\x09setCookie.exports.parseString = parseString;\n\x09setCookie.exports.splitCookiesString = splitCookiesString;\n\x09return setCookie.exports;\n}\n\nvar setCookieExports = requireSetCookie();\n\nconst gt="/_svelte_kit_assets"\x2CHe=new Set(["GET"\x2C"POST"\x2C"PUT"\x2C"PATCH"\x2C"DELETE"\x2C"OPTIONS"\x2C"HEAD"])\x2C$t=new Set(["GET"\x2C"POST"\x2C"HEAD"]);function ce(e\x2Ct){const r=[];e.split("\x2C").forEach((o\x2Ca)=>{const u=/([^/]+)\\/([^;]+)(?:;q=([0-9.]+))?/.exec(o);if(u){const[\x2Cd\x2Ci\x2Cc="1"]=u;r.push({type:d\x2Csubtype:i\x2Cq:+c\x2Ci:a});}})\x2Cr.sort((o\x2Ca)=>o.q!==a.q?a.q-o.q:o.subtype==="*"!=(a.subtype==="*")?o.subtype==="*"?1:-1:o.type==="*"!=(a.type==="*")?o.type==="*"?1:-1:o.i-a.i);let n\x2Cs=1/0;for(const o of t){const[a\x2Cu]=o.split("/")\x2Cd=r.findIndex(i=>(i.type===a||i.type==="*")&&(i.subtype===u||i.subtype==="*"));d!==-1&&d<s&&(n=o\x2Cs=d);}return n}function kt(e\x2C...t){const r=e.headers.get("content-type")?.split(";"\x2C1)[0].trim()??"";return t.includes(r.toLowerCase())}function Ue(e){return kt(e\x2C"application/x-www-form-urlencoded"\x2C"multipart/form-data"\x2C"text/plain")}function bt(e\x2Ct\x2Cr){const n={}\x2Cs=e.slice(1);let o=0;for(let a=0;a<t.length;a+=1){const u=t[a];let d=s[a-o];if(u.chained&&u.rest&&o&&(d=s.slice(a-o\x2Ca+1).filter(i=>i).join("/")\x2Co=0)\x2Cd===void 0){u.rest&&(n[u.name]="");continue}if(!u.matcher||r[u.matcher](d)){n[u.name]=d;const i=t[a+1]\x2Cc=s[a+1];i&&!i.rest&&i.optional&&c&&u.chained&&(o=0);continue}if(u.optional&&u.chained){o++;continue}return}if(!o)return n}function vt(e){return e instanceof Error||e&&e.name&&e.message?e:new Error(JSON.stringify(e))}function ze(e\x2Ct){return g$1(`${t} method not allowed`\x2C{status:405\x2Cheaders:{allow:xt(e).join("\x2C ")}})}function xt(e){const t=Array.from(He).filter(r=>r in e);return ("GET"in e||"HEAD"in e)&&t.push("HEAD")\x2Ct}function ue(e\x2Ct\x2Cr){let n=e.templates.error({status:t\x2Cmessage:r});return g$1(n\x2C{headers:{"content-type":"text/html; charset=utf-8"}\x2Cstatus:t})}async function we(e\x2Ct\x2Cr){r=r instanceof o?r:vt(r);const n=r instanceof o?r.status:500\x2Cs=await A(e\x2Ct\x2Cr)\x2Co$1=ce(e.request.headers.get("accept")||"text/html"\x2C["application/json"\x2C"text/html"]);return e.isDataRequest||o$1==="application/json"?d(s\x2C{status:n}):ue(t\x2Cn\x2Cs.message)}async function A(e\x2Ct\x2Cr){return r instanceof o?r.body:await t.hooks.handleError({error:r\x2Cevent:e})??{message:e.route.id!=null?"Internal Error":"Not Found"}}function K(e\x2Ct){return new Response(void 0\x2C{status:e\x2Cheaders:{location:t}})}function Ie(e\x2Ct){return t.path?`Data returned from \\`load\\` while rendering ${e.route.id} is not serializable: ${t.message} (data${t.path})`:t.path===""?`Data returned from \\`load\\` while rendering ${e.route.id} is not a plain object`:t.message}function Ne(e){const t=[];return e.uses&&e.uses.dependencies.size>0&&t.push(`"dependencies":${JSON.stringify(Array.from(e.uses.dependencies))}`)\x2Ce.uses&&e.uses.params.size>0&&t.push(`"params":${JSON.stringify(Array.from(e.uses.params))}`)\x2Ce.uses?.parent&&t.push('"parent":1')\x2Ce.uses?.route&&t.push('"route":1')\x2Ce.uses?.url&&t.push('"url":1')\x2C`"uses":{${t.join("\x2C")}}`}async function Et(e\x2Ct\x2Cr){const n=e.request.method;let s=t[n];if(!s&&n==="HEAD"&&(s=t.GET)\x2C!s)return ze(t\x2Cn);const o=t.prerender??r.prerender_default;if(o&&(t.POST||t.PATCH||t.PUT||t.DELETE))throw new Error("Cannot prerender endpoints that have mutative methods");if(r.prerendering&&!o){if(r.depth>0)throw new Error(`${e.route.id} is not prerenderable`);return new Response(void 0\x2C{status:204})}try{let a=await s(e);if(!(a instanceof Response))throw new Error(`Invalid response from route ${e.url.pathname}: handler should return a Response object`);return r.prerendering&&(a=new Response(a.body\x2C{status:a.status\x2CstatusText:a.statusText\x2Cheaders:new Headers(a.headers)})\x2Ca.headers.set("x-sveltekit-prerender"\x2CString(o)))\x2Ca}catch(a){if(a instanceof c)return new Response(void 0\x2C{status:a.status\x2Cheaders:{location:a.location}});throw a}}function jt(e){const{method:t\x2Cheaders:r}=e.request;if(He.has(t)&&!$t.has(t))return !0;if(t==="POST"&&r.get("x-sveltekit-action")==="true")return !1;const n=e.request.headers.get("accept")??"*/*";return ce(n\x2C["*"\x2C"text/html"])!=="text/html"}function ge(e){return e.filter(t=>t!=null)}function le(e\x2Ct){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0\x2C-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function St(e){return e.split("%25").map(decodeURI).join("%25")}function Rt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}const Tt=["href"\x2C"pathname"\x2C"search"\x2C"searchParams"\x2C"toString"\x2C"toJSON"];function Ot(e\x2Ct){const r=new URL(e);for(const n of Tt)Object.defineProperty(r\x2Cn\x2C{get(){return t()\x2Ce[n]}\x2Cenumerable:!0\x2Cconfigurable:!0});return r[Symbol.for("nodejs.util.inspect.custom")]=(n\x2Cs\x2Co)=>o(e\x2Cs)\x2CPt(r)\x2Cr}function Pt(e){Le(e)\x2CObject.defineProperty(e\x2C"hash"\x2C{get(){throw new Error("Cannot access event.url.hash. Consider using `$page.url.hash` inside a component instead")}});}function De(e){Le(e);for(const t of ["search"\x2C"searchParams"])Object.defineProperty(e\x2Ct\x2C{get(){throw new Error(`Cannot access url.${t} on a page with prerendering enabled`)}});}function Le(e){e[Symbol.for("nodejs.util.inspect.custom")]=(t\x2Cr\x2Cn)=>n(new URL(e)\x2Cr);}const de="/__data.json";function At(e){return e.endsWith(de)}function qt(e){return e.replace(/\\/$/\x2C"")+de}function $e(e){return e.slice(0\x2C-de.length)}function We(e){return ce(e.request.headers.get("accept")??"*/*"\x2C["application/json"\x2C"text/html"])==="application/json"&&e.request.method==="POST"}async function Ct(e\x2Ct\x2Cr){const n=r?.actions;if(!n){const s=a(405\x2C"POST method not allowed. No actions exist for this page");return J({type:"error"\x2Cerror:await A(e\x2Ct\x2Cs)}\x2C{status:s.status\x2Cheaders:{allow:"GET"}})}Me(n);try{const s=await Fe(e\x2Cn);return s instanceof i$1?J({type:"failure"\x2Cstatus:s.status\x2Cdata:ke(s.data\x2Ce.route.id)}):J({type:"success"\x2Cstatus:s?200:204\x2Cdata:ke(s\x2Ce.route.id)})}catch(s){const o$1=s;return o$1 instanceof c?Je(o$1):J({type:"error"\x2Cerror:await A(e\x2Ct\x2CGe(o$1))}\x2C{status:o$1 instanceof o?o$1.status:500})}}function Ge(e){return e instanceof i$1?new Error('Cannot "throw fail()". Use "return fail()"'):e}function Je(e){return J({type:"redirect"\x2Cstatus:e.status\x2Clocation:e.location})}function J(e\x2Ct){return d(e\x2Ct)}function Ht(e){return e.request.method==="POST"}async function Ut(e\x2Ct){const r=t?.actions;if(!r)return e.setHeaders({allow:"GET"})\x2C{type:"error"\x2Cerror:a(405\x2C"POST method not allowed. No actions exist for this page")};Me(r);try{const n=await Fe(e\x2Cr);return n instanceof i$1?{type:"failure"\x2Cstatus:n.status\x2Cdata:n.data}:{type:"success"\x2Cstatus:200\x2Cdata:n}}catch(n){const s=n;return s instanceof c?{type:"redirect"\x2Cstatus:s.status\x2Clocation:s.location}:{type:"error"\x2Cerror:Ge(s)}}}function Me(e){if(e.default&&Object.keys(e).length>1)throw new Error("When using named actions\x2C the default action cannot be used. See the docs for more info: https://kit.svelte.dev/docs/form-actions#named-actions")}async function Fe(e\x2Ct){const r=new URL(e.request.url);let n="default";for(const o of r.searchParams)if(o[0].startsWith("/")){if(n=o[0].slice(1)\x2Cn==="default")throw new Error('Cannot use reserved action name "default"');break}const s=t[n];if(!s)throw new Error(`No action with name '${n}' found`);if(!Ue(e.request))throw new Error(`Actions expect form-encoded data (received ${e.request.headers.get("content-type")})`);return s(e)}function zt(e\x2Ct){return Ve(e\x2Cuneval\x2Ct)}function ke(e\x2Ct){return Ve(e\x2Cstringify\x2Ct)}function Ve(e\x2Ct\x2Cr){try{return t(e)}catch(n){const s=n;if("path"in s){let o=`Data returned from action inside ${r} is not serializable: ${s.message}`;throw s.path!==""&&(o+=` (data.${s.path})`)\x2Cnew Error(o)}throw s}}async function Be(e){for(const t in e)if(typeof e[t]?.then=="function")return Object.fromEntries(await Promise.all(Object.entries(e).map(async([r\x2Cn])=>[r\x2Cawait n])));return e}const be="x-sveltekit-invalidated"\x2Cve="x-sveltekit-trailing-slash";async function fe({event:e\x2Cstate:t\x2Cnode:r\x2Cparent:n\x2Ctrack_server_fetches:s}){if(!r?.server)return null;const o={dependencies:new Set\x2Cparams:new Set\x2Cparent:!1\x2Croute:!1\x2Curl:!1}\x2Ca=Ot(e.url\x2C()=>{o.url=!0;});t.prerendering&&De(a);const u=await r.server.load?.call(null\x2C{...e\x2Cfetch:(i\x2Cc)=>{const _=new URL(i instanceof Request?i.url:i\x2Ce.url);return s&&o.dependencies.add(_.href)\x2Ce.fetch(i\x2Cc)}\x2Cdepends:(...i)=>{for(const c of i){const{href:_}=new URL(c\x2Ce.url);o.dependencies.add(_);}}\x2Cparams:new Proxy(e.params\x2C{get:(i\x2Cc)=>(o.params.add(c)\x2Ci[c])})\x2Cparent:async()=>(o.parent=!0\x2Cn())\x2Croute:new Proxy(e.route\x2C{get:(i\x2Cc)=>(o.route=!0\x2Ci[c])})\x2Curl:a});return {type:"data"\x2Cdata:u?await Be(u):null\x2Cuses:o\x2Cslash:r.server.trailingSlash}}async function Xe({event:e\x2Cfetched:t\x2Cnode:r\x2Cparent:n\x2Cserver_data_promise:s\x2Cstate:o\x2Cresolve_opts:a\x2Ccsr:u}){const d=await s;if(!r?.universal?.load)return d?.data??null;const i=await r.universal.load.call(null\x2C{url:e.url\x2Cparams:e.params\x2Cdata:d?.data??null\x2Croute:e.route\x2Cfetch:It(e\x2Co\x2Ct\x2Cu\x2Ca)\x2CsetHeaders:e.setHeaders\x2Cdepends:()=>{}\x2Cparent:n});return i?await Be(i):null}function It(e\x2Ct\x2Cr\x2Cn\x2Cs){return async(o\x2Ca)=>{const u=o instanceof Request&&o.body?o.clone().body:null\x2Cd=o instanceof Request&&[...o.headers].length?new Headers(o.headers):a?.headers;let i=await e.fetch(o\x2Ca);const c=new URL(o instanceof Request?o.url:o\x2Ce.url)\x2C_=c.origin===e.url.origin;let m;if(_)t.prerendering&&(m={response:i\x2Cbody:null}\x2Ct.prerendering.dependencies.set(c.pathname\x2Cm));else if((o instanceof Request?o.mode:a?.mode??"cors")==="no-cors")i=new Response(""\x2C{status:i.status\x2CstatusText:i.statusText\x2Cheaders:i.headers});else {const w=i.headers.get("access-control-allow-origin");if(!w||w!==e.url.origin&&w!=="*")throw new Error(`CORS error: ${w?"Incorrect":"No"} 'Access-Control-Allow-Origin' header is present on the requested resource`)}const l=new Proxy(i\x2C{get(p\x2Cw\x2Ch){async function y(){const g=await p.text();if(!g||typeof g=="string"){const f=Number(p.status);if(isNaN(f))throw new Error(`response.status is not a number. value: "${p.status}" type: ${typeof p.status}`);r.push({url:_?c.href.slice(e.url.origin.length):c.href\x2Cmethod:e.request.method\x2Crequest_body:o instanceof Request&&u?await Nt(u):a?.body\x2Crequest_headers:d\x2Cresponse_body:g\x2Cresponse:p});}return m&&(m.body=g)\x2Cg}return w==="arrayBuffer"?async()=>{const g=await p.arrayBuffer();return m&&(m.body=new Uint8Array(g))\x2Cg}:w==="text"?y:w==="json"?async()=>JSON.parse(await y()):Reflect.get(p\x2Cw\x2Cp)}});if(n){const p=i.headers.get;i.headers.get=w=>{const h=w.toLowerCase()\x2Cy=p.call(i.headers\x2Ch);if(y&&!h.startsWith("x-sveltekit-")&&!s.filterSerializedResponseHeaders(h\x2Cy))throw new Error(`Failed to get response header "${h}" \u2014 it must be included by the \\`filterSerializedResponseHeaders\\` option: https://kit.svelte.dev/docs/hooks#server-hooks-handle (at ${e.route.id})`);return y};}return l}}async function Nt(e){let t="";const r=e.getReader()\x2Cn=new TextDecoder;for(;;){const{done:s\x2Cvalue:o}=await r.read();if(s)break;t+=n.decode(o);}return t}function Ke(...e){let t=5381;for(const r of e)if(typeof r=="string"){let n=r.length;for(;n;)t=t*33^r.charCodeAt(--n);}else if(ArrayBuffer.isView(r)){const n=new Uint8Array(r.buffer\x2Cr.byteOffset\x2Cr.byteLength);let s=n.length;for(;s;)t=t*33^n[--s];}else throw new TypeError("value must be a string or TypedArray");return (t>>>0).toString(36)}const Qe={"&":"&amp;"\x2C'"':"&quot;"}\x2CDt=new RegExp(`[${Object.keys(Qe).join("")}]|[\\\\ud800-\\\\udbff](?![\\\\udc00-\\\\udfff])|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[\\\\udc00-\\\\udfff]`\x2C"g");function Ye(e){return `"${e.replace(Dt\x2Cr=>r.length===2?r:Qe[r]??`&#${r.charCodeAt(0)};`)}"`}const Ze={"<":"\\\\u003C"\x2C"\\u2028":"\\\\u2028"\x2C"\\u2029":"\\\\u2029"}\x2CLt=new RegExp(`[${Object.keys(Ze).join("")}]`\x2C"g");function Wt(e\x2Ct\x2Cr=!1){const n={};let s=null\x2Co=null\x2Ca=!1;for(const[c\x2C_]of e.response.headers)t(c\x2C_)&&(n[c]=_)\x2Cc==="cache-control"?s=_:c==="age"?o=_:c==="vary"&&_.trim()==="*"&&(a=!0);const u={status:e.response.status\x2CstatusText:e.response.statusText\x2Cheaders:n\x2Cbody:e.response_body}\x2Cd=JSON.stringify(u).replace(Lt\x2Cc=>Ze[c])\x2Ci=['type="application/json"'\x2C"data-sveltekit-fetched"\x2C`data-url=${Ye(e.url)}`];if(e.request_headers||e.request_body){const c=[];e.request_headers&&c.push([...new Headers(e.request_headers)].join("\x2C"))\x2Ce.request_body&&c.push(e.request_body)\x2Ci.push(`data-hash="${Ke(...c)}"`);}if(!r&&e.method==="GET"&&s&&!a){const c=/s-maxage=(\\d+)/g.exec(s)??/max-age=(\\d+)/g.exec(s);if(c){const _=+c[1]-+(o??"0");i.push(`data-ttl="${_}"`);}}return `<script ${i.join(" ")}>${d}<\\/script>`}const N=JSON.stringify\x2CGt=new TextEncoder;function xe(e){re[0]||Jt();const t=et.slice(0)\x2Cr=Mt(e);for(let s=0;s<r.length;s+=16){const o=r.subarray(s\x2Cs+16);let a\x2Cu\x2Cd\x2Ci=t[0]\x2Cc=t[1]\x2C_=t[2]\x2Cm=t[3]\x2Cl=t[4]\x2Cp=t[5]\x2Cw=t[6]\x2Ch=t[7];for(let y=0;y<64;y++)y<16?a=o[y]:(u=o[y+1&15]\x2Cd=o[y+14&15]\x2Ca=o[y&15]=(u>>>7^u>>>18^u>>>3^u<<25^u<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+o[y&15]+o[y+9&15]|0)\x2Ca=a+h+(l>>>6^l>>>11^l>>>25^l<<26^l<<21^l<<7)+(w^l&(p^w))+re[y]\x2Ch=w\x2Cw=p\x2Cp=l\x2Cl=m+a|0\x2Cm=_\x2C_=c\x2Cc=i\x2Ci=a+(c&_^m&(c^_))+(c>>>2^c>>>13^c>>>22^c<<30^c<<19^c<<10)|0;t[0]=t[0]+i|0\x2Ct[1]=t[1]+c|0\x2Ct[2]=t[2]+_|0\x2Ct[3]=t[3]+m|0\x2Ct[4]=t[4]+l|0\x2Ct[5]=t[5]+p|0\x2Ct[6]=t[6]+w|0\x2Ct[7]=t[7]+h|0;}const n=new Uint8Array(t.buffer);return tt(n)\x2Crt(n)}const et=new Uint32Array(8)\x2Cre=new Uint32Array(64);function Jt(){function e(r){return (r-Math.floor(r))*4294967296}let t=2;for(let r=0;r<64;t++){let n=!0;for(let s=2;s*s<=t;s++)if(t%s===0){n=!1;break}n&&(r<8&&(et[r]=e(t**(1/2)))\x2Cre[r]=e(t**(1/3))\x2Cr++);}}function tt(e){for(let t=0;t<e.length;t+=4){const r=e[t+0]\x2Cn=e[t+1]\x2Cs=e[t+2]\x2Co=e[t+3];e[t+0]=o\x2Ce[t+1]=s\x2Ce[t+2]=n\x2Ce[t+3]=r;}}function Mt(e){const t=Gt.encode(e)\x2Cr=t.length*8\x2Cn=512*Math.ceil((r+65)/512)\x2Cs=new Uint8Array(n/8);s.set(t)\x2Cs[t.length]=128\x2Ctt(s);const o=new Uint32Array(s.buffer);return o[o.length-2]=Math.floor(r/4294967296)\x2Co[o.length-1]=r\x2Co}const H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");function rt(e){const t=e.length;let r=""\x2Cn;for(n=2;n<t;n+=3)r+=H[e[n-2]>>2]\x2Cr+=H[(e[n-2]&3)<<4|e[n-1]>>4]\x2Cr+=H[(e[n-1]&15)<<2|e[n]>>6]\x2Cr+=H[e[n]&63];return n===t+1&&(r+=H[e[n-2]>>2]\x2Cr+=H[(e[n-2]&3)<<4]\x2Cr+="==")\x2Cn===t&&(r+=H[e[n-2]>>2]\x2Cr+=H[(e[n-2]&3)<<4|e[n-1]>>4]\x2Cr+=H[(e[n-1]&15)<<2]\x2Cr+="=")\x2Cr}const Ee=new Uint8Array(16);function Ft(){return crypto.getRandomValues(Ee)\x2Crt(Ee)}const Vt=new Set(["self"\x2C"unsafe-eval"\x2C"unsafe-hashes"\x2C"unsafe-inline"\x2C"none"\x2C"strict-dynamic"\x2C"report-sample"\x2C"wasm-unsafe-eval"\x2C"script"])\x2CBt=/^(nonce|sha\\d\\d\\d)-/;class nt{#e;#t;#s;#o;#r;#n;#a;constructor(t\x2Cr\x2Cn){this.#e=t\x2Cthis.#o=r;const s=this.#o;this.#r=[]\x2Cthis.#n=[];const o=s["script-src"]||s["default-src"]\x2Ca=s["style-src"]||s["default-src"];this.#t=!!o&&o.filter(u=>u!=="unsafe-inline").length>0\x2Cthis.#s=!!a&&a.filter(u=>u!=="unsafe-inline").length>0\x2Cthis.script_needs_nonce=this.#t&&!this.#e\x2Cthis.style_needs_nonce=this.#s&&!this.#e\x2Cthis.#a=n;}add_script(t){this.#t&&(this.#e?this.#r.push(`sha256-${xe(t)}`):this.#r.length===0&&this.#r.push(`nonce-${this.#a}`));}add_style(t){this.#s&&(this.#e?this.#n.push(`sha256-${xe(t)}`):this.#n.length===0&&this.#n.push(`nonce-${this.#a}`));}get_header(t=!1){const r=[]\x2Cn={...this.#o};this.#n.length>0&&(n["style-src"]=[...n["style-src"]||n["default-src"]||[]\x2C...this.#n])\x2Cthis.#r.length>0&&(n["script-src"]=[...n["script-src"]||n["default-src"]||[]\x2C...this.#r]);for(const s in n){if(t&&(s==="frame-ancestors"||s==="report-uri"||s==="sandbox"))continue;const o=n[s];if(!o)continue;const a=[s];Array.isArray(o)&&o.forEach(u=>{Vt.has(u)||Bt.test(u)?a.push(`'${u}'`):a.push(u);})\x2Cr.push(a.join(" "));}return r.join("; ")}}class Xt extends nt{get_meta(){const t=this.get_header(!0);if(t)return `<meta http-equiv="content-security-policy" content=${Ye(t)}>`}}class Kt extends nt{constructor(t\x2Cr\x2Cn){if(super(t\x2Cr\x2Cn)\x2CObject.values(r).filter(s=>!!s).length>0){const s=r["report-to"]?.length??0>0\x2Co=r["report-uri"]?.length??0>0;if(!s&&!o)throw Error("`content-security-policy-report-only` must be specified with either the `report-to` or `report-uri` directives\x2C or both")}}}class Qt{nonce=Ft();csp_provider;report_only_provider;constructor({mode:t\x2Cdirectives:r\x2CreportOnly:n}\x2C{prerender:s}){const o=t==="hash"||t==="auto"&&s;this.csp_provider=new Xt(o\x2Cr\x2Cthis.nonce)\x2Cthis.report_only_provider=new Kt(o\x2Cn\x2Cthis.nonce);}get script_needs_nonce(){return this.csp_provider.script_needs_nonce||this.report_only_provider.script_needs_nonce}get style_needs_nonce(){return this.csp_provider.style_needs_nonce||this.report_only_provider.style_needs_nonce}add_script(t){this.csp_provider.add_script(t)\x2Cthis.report_only_provider.add_script(t);}add_style(t){this.csp_provider.add_style(t)\x2Cthis.report_only_provider.add_style(t);}}function je(){let e\x2Ct;return {promise:new Promise((n\x2Cs)=>{e=n\x2Ct=s;})\x2Cfulfil:e\x2Creject:t}}function st(){const e=[je()];return {iterator:{[Symbol.asyncIterator](){return {next:async()=>{const t=await e[0].promise;return t.done||e.shift()\x2Ct}}}}\x2Cpush:t=>{e[e.length-1].fulfil({value:t\x2Cdone:!1})\x2Ce.push(je());}\x2Cdone:()=>{e[e.length-1].fulfil({done:!0});}}}const Yt={...z$1(!1)\x2Ccheck:()=>!1}\x2CSe=new TextEncoder;async function M({branch:e\x2Cfetched:t\x2Coptions:r\x2Cmanifest:n$1\x2Cstate:s\x2Cpage_config:o\x2Cstatus:a\x2Cerror:u=null\x2Cevent:d\x2Cresolve_opts:i\x2Caction_result:c}){if(s.prerendering){if(r.csp.mode==="nonce")throw new Error('Cannot use prerendering if config.kit.csp.mode === "nonce"');if(r.app_template_contains_nonce)throw new Error("Cannot use prerendering if page template contains %sveltekit.nonce%")}const{client:_}=n$1._\x2Cm=new Set(_.imports)\x2Cl=new Set(_.stylesheets)\x2Cp$1=new Set(_.fonts)\x2Cw=new Set\x2Ch=new Map;let y;const g$2=c?.type==="success"||c?.type==="failure"?c.data??null:null;let f=g\x2Cb=p\x2C$=N(g);if(s.prerendering?.fallback||(f=d.url.pathname.slice(g.length).split("/").slice(2).map(()=>"..").join("/")||"."\x2C$=`new URL(${N(f)}\x2C location).pathname.slice(0\x2C -1)`\x2C(!p||p[0]==="/"&&p!==gt)&&(b=f))\x2Co.ssr){const v={stores:{page:A$2(null)\x2Cnavigating:A$2(null)\x2Cupdated:Yt}\x2Cconstructors:await Promise.all(e.map(({node:S})=>S.component()))\x2Cform:g$2};let E={};for(let S=0;S<e.length;S+=1)E={...E\x2C...e[S].data}\x2Cv[`data_${S}`]=E;v.page={error:u\x2Cparams:d.params\x2Croute:d.route\x2Cstatus:a\x2Curl:d.url\x2Cdata:E\x2Cform:g$2};try{y=r.root.render(v);}finally{T();}for(const{node:S}of e){for(const T of S.imports)m.add(T);for(const T of S.stylesheets)l.add(T);for(const T of S.fonts)p$1.add(T);S.inline_styles&&Object.entries(await S.inline_styles()).forEach(([T\x2CB])=>h.set(T\x2CB));}}else y={head:""\x2Chtml:""\x2Ccss:{code:""\x2Cmap:null}};let k=""\x2Cx=y.html;const j=new Qt(r.csp\x2C{prerender:!!s.prerendering})\x2CR=v=>v.startsWith("/")?g+v:`${b}/${v}`;if(h.size>0){const v=Array.from(h.values()).join(`\n`)\x2CE=[];j.style_needs_nonce&&E.push(` nonce="${j.nonce}"`)\x2Cj.add_style(v)\x2Ck+=`\n\x09<style${E.join("")}>${v}</style>`;}for(const v of l){const E=R(v)\x2CS=['rel="stylesheet"'];if(h.has(v))S.push("disabled"\x2C'media="(max-width: 0)"');else if(i.preload({type:"css"\x2Cpath:E})){const T=['rel="preload"'\x2C'as="style"'];w.add(`<${encodeURI(E)}>; ${T.join(";")}; nopush`);}k+=`\n\x09\x09<link href="${E}" ${S.join(" ")}>`;}for(const v of p$1){const E=R(v);if(i.preload({type:"font"\x2Cpath:E})){const T=['rel="preload"'\x2C'as="font"'\x2C`type="font/${v.slice(v.lastIndexOf(".")+1)}"`\x2C`href="${E}"`\x2C"crossorigin"];k+=`\n\x09\x09<link ${T.join(" ")}>`;}}const L=`__sveltekit_${r.version_hash}`\x2C{data:W\x2Cchunks:V}=Zt(d\x2Cr\x2Ce.map(v=>v.server_data)\x2CL);if(o.ssr&&o.csr&&(x+=`\n\x09\x09\x09${t.map(v=>Wt(v\x2Ci.filterSerializedResponseHeaders\x2C!!s.prerendering)).join(`\n\x09\x09\x09`)}`)\x2Co.csr){const v=Array.from(m\x2CO=>R(O)).filter(O=>i.preload({type:"js"\x2Cpath:O}));for(const O of v)w.add(`<${encodeURI(O)}>; rel="modulepreload"; nopush`)\x2Cr.preload_strategy!=="modulepreload"?k+=`\n\x09\x09<link rel="preload" as="script" crossorigin="anonymous" href="${O}">`:s.prerendering&&(k+=`\n\x09\x09<link rel="modulepreload" href="${O}">`);const E=[]\x2CS=[p&&`assets: ${N(p)}`\x2C`base: ${$}`\x2C`env: ${N(n)}`].filter(Boolean);V&&(E.push("const deferred = new Map();")\x2CS.push(`defer: (id) => new Promise((fulfil\x2C reject) => {\n\x09\x09\x09\x09\x09\x09\x09deferred.set(id\x2C { fulfil\x2C reject });\n\x09\x09\x09\x09\x09\x09})`)\x2CS.push(`resolve: ({ id\x2C data\x2C error }) => {\n\x09\x09\x09\x09\x09\x09\x09const { fulfil\x2C reject } = deferred.get(id);\n\x09\x09\x09\x09\x09\x09\x09deferred.delete(id);\n\n\x09\x09\x09\x09\x09\x09\x09if (error) reject(error);\n\x09\x09\x09\x09\x09\x09\x09else fulfil(data);\n\x09\x09\x09\x09\x09\x09}`))\x2CE.push(`${L} = {\n\x09\x09\x09\x09\x09\x09${S.join(`\x2C\n\x09\x09\x09\x09\x09\x09`)}\n\x09\x09\x09\x09\x09};`);const T=["app"\x2C"element"];if(E.push("const element = document.currentScript.parentElement;")\x2Co.ssr){const O={form:"null"\x2Cerror:"null"};E.push(`const data = ${W};`)\x2Cg$2&&(O.form=zt(g$2\x2Cd.route.id))\x2Cu&&(O.error=uneval(u));const Z=[`node_ids: [${e.map(({node:ft})=>ft.index).join("\x2C ")}]`\x2C"data"\x2C`form: ${O.form}`\x2C`error: ${O.error}`];a!==200&&Z.push(`status: ${a}`)\x2Cr.embedded&&Z.push(`params: ${uneval(d.params)}`\x2C`route: ${N(d.route)}`)\x2CT.push(`{\n\x09\x09\x09\x09\x09\x09\x09${Z.join(`\x2C\n\x09\x09\x09\x09\x09\x09\x09`)}\n\x09\x09\x09\x09\x09\x09}`);}if(E.push(`Promise.all([\n\x09\x09\x09\x09\x09\x09import(${N(R(_.start))})\x2C\n\x09\x09\x09\x09\x09\x09import(${N(R(_.app))})\n\x09\x09\x09\x09\x09]).then(([kit\x2C app]) => {\n\x09\x09\x09\x09\x09\x09kit.start(${T.join("\x2C ")});\n\x09\x09\x09\x09\x09});`)\x2Cr.service_worker){const O="";E.push(`if ('serviceWorker' in navigator) {\n\x09\x09\x09\x09\x09\x09addEventListener('load'\x2C function () {\n\x09\x09\x09\x09\x09\x09\x09navigator.serviceWorker.register('${R("service-worker.js")}'${O});\n\x09\x09\x09\x09\x09\x09});\n\x09\x09\x09\x09\x09}`);}const B=`\n\x09\x09\x09\x09{\n\x09\x09\x09\x09\x09${E.join(`\n\n\x09\x09\x09\x09\x09`)}\n\x09\x09\x09\x09}\n\x09\x09\x09`;j.add_script(B)\x2Cx+=`\n\x09\x09\x09<script${j.script_needs_nonce?` nonce="${j.nonce}"`:""}>${B}<\\/script>\n\x09\x09`;}const G=new Headers({"x-sveltekit-page":"true"\x2C"content-type":"text/html"});if(s.prerendering){const v=[]\x2CE=j.csp_provider.get_meta();E&&v.push(E)\x2Cs.prerendering.cache&&v.push(`<meta http-equiv="cache-control" content="${s.prerendering.cache}">`)\x2Cv.length>0&&(k=v.join(`\n`)+k);}else {const v=j.csp_provider.get_header();v&&G.set("content-security-policy"\x2Cv);const E=j.report_only_provider.get_header();E&&G.set("content-security-policy-report-only"\x2CE)\x2Cw.size&&G.set("link"\x2CArray.from(w).join("\x2C "));}k+=y.head;const dt=r.templates.app({head:k\x2Cbody:x\x2Cassets:b\x2Cnonce:j.nonce\x2Cenv:n})\x2CY=await i.transformPageChunk({html:dt\x2Cdone:!0})||"";return V||G.set("etag"\x2C`"${Ke(Y)}"`)\x2CV?new Response(new ReadableStream({async start(v){v.enqueue(Se.encode(Y+`\n`));for await(const E of V)v.enqueue(Se.encode(E));v.close();}\x2Ctype:"bytes"})\x2C{headers:{"content-type":"text/html"}}):g$1(Y\x2C{status:a\x2Cheaders:G})}function Zt(e\x2Ct\x2Cr\x2Cn){let s=1\x2Co=0;const{iterator:a\x2Cpush:u\x2Cdone:d}=st();function i(c){if(typeof c?.then=="function"){const _=s++;return o+=1\x2Cc.then(m=>({data:m})).catch(async m=>({error:await A(e\x2Ct\x2Cm)})).then(async({data:m\x2Cerror:l})=>{o-=1;let p;try{p=uneval({id:_\x2Cdata:m\x2Cerror:l}\x2Ci);}catch{l=await A(e\x2Ct\x2Cnew Error(`Failed to serialize promise while rendering ${e.route.id}`))\x2Cm=void 0\x2Cp=uneval({id:_\x2Cdata:m\x2Cerror:l}\x2Ci);}u(`<script>${n}.resolve(${p})<\\/script>\n`)\x2Co===0&&d();})\x2C`${n}.defer(${_})`}}try{return {data:`[${r.map(_=>_?`{"type":"data"\x2C"data":${uneval(_.data\x2Ci)}\x2C${Ne(_)}${_.slash?`\x2C"slash":${JSON.stringify(_.slash)}`:""}}`:"null").join("\x2C")}]`\x2Cchunks:o>0?a:null}}catch(c){throw new Error(Ie(e\x2Cc))}}function U(e\x2Ct){return e.reduce((r\x2Cn)=>n?.universal?.[t]??n?.server?.[t]??r\x2Cvoid 0)}async function ot({event:e\x2Coptions:t\x2Cmanifest:r\x2Cstate:n\x2Cstatus:s\x2Cerror:o$1\x2Cresolve_opts:a}){const u=[];try{const d=[]\x2Ci=await r._.nodes[0]()\x2Cc=U([i]\x2C"ssr")??!0\x2C_=U([i]\x2C"csr")??!0;if(c){n.error=!0;const m=fe({event:e\x2Cstate:n\x2Cnode:i\x2Cparent:async()=>({})\x2Ctrack_server_fetches:t.track_server_fetches})\x2Cl=await m\x2Cp=await Xe({event:e\x2Cfetched:u\x2Cnode:i\x2Cparent:async()=>({})\x2Cresolve_opts:a\x2Cserver_data_promise:m\x2Cstate:n\x2Ccsr:_});d.push({node:i\x2Cserver_data:l\x2Cdata:p}\x2C{node:await r._.nodes[1]()\x2Cdata:null\x2Cserver_data:null});}return await M({options:t\x2Cmanifest:r\x2Cstate:n\x2Cpage_config:{ssr:c\x2Ccsr:U([i]\x2C"csr")??!0}\x2Cstatus:s\x2Cerror:await A(e\x2Ct\x2Co$1)\x2Cbranch:d\x2Cfetched:u\x2Cevent:e\x2Cresolve_opts:a})}catch(d){return d instanceof c?K(d.status\x2Cd.location):ue(t\x2Cd instanceof o?d.status:500\x2C(await A(e\x2Ct\x2Cd)).message)}}function er(e){let t=!1\x2Cr;return ()=>t?r:(t=!0\x2Cr=e())}const Re=new TextEncoder;async function tr(e\x2Ct\x2Cr\x2Cn\x2Cs\x2Co$1\x2Ca){if(!t.page)return new Response(void 0\x2C{status:404});try{const u=[...t.page.layouts\x2Ct.page.leaf]\x2Cd=o$1??u.map(()=>!0);let i=!1;const c$1=new URL(e.url);c$1.pathname=le(c$1.pathname\x2Ca);const _={...e\x2Curl:c$1}\x2Cm=u.map((g\x2Cf)=>er(async()=>{try{if(i)return {type:"skip"};const b=g==null?g:await n._.nodes[g]();return fe({event:_\x2Cstate:s\x2Cnode:b\x2Cparent:async()=>{const $={};for(let k=0;k<f;k+=1){const x=await m[k]();x&&Object.assign($\x2Cx.data);}return $}\x2Ctrack_server_fetches:r.track_server_fetches})}catch(b){throw i=!0\x2Cb}}))\x2Cl=m.map(async(g\x2Cf)=>d[f]?g():{type:"skip"});let p=l.length;const w=await Promise.all(l.map((g\x2Cf)=>g.catch(async b=>{if(b instanceof c)throw b;return p=Math.min(p\x2Cf+1)\x2C{type:"error"\x2Cerror:await A(e\x2Cr\x2Cb)\x2Cstatus:b instanceof o?b.status:void 0}})))\x2C{data:h\x2Cchunks:y}=at(e\x2Cr\x2Cw);return y?new Response(new ReadableStream({async start(g){g.enqueue(Re.encode(h));for await(const f of y)g.enqueue(Re.encode(f));g.close();}\x2Ctype:"bytes"})\x2C{headers:{"content-type":"text/sveltekit-data"\x2C"cache-control":"private\x2C no-store"}}):ne(h)}catch(u){const d=u;return d instanceof c?se(d):ne(await A(e\x2Cr\x2Cd)\x2C500)}}function ne(e\x2Ct=200){return g$1(typeof e=="string"?e:JSON.stringify(e)\x2C{status:t\x2Cheaders:{"content-type":"application/json"\x2C"cache-control":"private\x2C no-store"}})}function se(e){return ne({type:"redirect"\x2Clocation:e.location})}function at(e\x2Ct\x2Cr){let n=1\x2Cs=0;const{iterator:o\x2Cpush:a\x2Cdone:u}=st()\x2Cd={Promise:i=>{if(typeof i?.then=="function"){const c=n++;s+=1;let _="data";return i.catch(async m=>(_="error"\x2CA(e\x2Ct\x2Cm))).then(async m=>{let l;try{l=stringify(m\x2Cd);}catch{const w=await A(e\x2Ct\x2Cnew Error(`Failed to serialize promise while rendering ${e.route.id}`));_="error"\x2Cl=stringify(w\x2Cd);}s-=1\x2Ca(`{"type":"chunk"\x2C"id":${c}\x2C"${_}":${l}}\n`)\x2Cs===0&&u();})\x2Cc}}};try{return {data:`{"type":"data"\x2C"nodes":[${r.map(c=>c?c.type==="error"||c.type==="skip"?JSON.stringify(c):`{"type":"data"\x2C"data":${stringify(c.data\x2Cd)}\x2C${Ne(c)}${c.slash?`\x2C"slash":${JSON.stringify(c.slash)}`:""}}`:"null").join("\x2C")}]}\n`\x2Cchunks:s>0?o:null}}catch(i){throw new Error(Ie(e\x2Ci))}}const rr=10;async function nr(e\x2Ct\x2Cr\x2Cn\x2Cs\x2Co$1){if(s.depth>rr)return g$1(`Not found: ${e.url.pathname}`\x2C{status:404});if(We(e)){const a=await n._.nodes[t.leaf]();return Ct(e\x2Cr\x2Ca?.server)}try{const a=await Promise.all([...t.layouts.map(f=>f==null?f:n._.nodes[f]())\x2Cn._.nodes[t.leaf]()])\x2Cu=a.at(-1);let d=200\x2Ci;if(Ht(e)){if(i=await Ut(e\x2Cu.server)\x2Ci?.type==="redirect")return K(i.status\x2Ci.location);if(i?.type==="error"){const f=i.error;d=f instanceof o?f.status:500;}i?.type==="failure"&&(d=i.status);}const c$1=a.some(f=>f?.server)\x2C_=qt(e.url.pathname)\x2Cm=U(a\x2C"prerender")??!1;if(m){if(u.server?.actions)throw new Error("Cannot prerender pages with actions")}else if(s.prerendering)return new Response(void 0\x2C{status:204});s.prerender_default=m;const l=[];if(U(a\x2C"ssr")===!1)return await M({branch:[]\x2Cfetched:l\x2Cpage_config:{ssr:!1\x2Ccsr:U(a\x2C"csr")??!0}\x2Cstatus:d\x2Cerror:null\x2Cevent:e\x2Coptions:r\x2Cmanifest:n\x2Cstate:s\x2Cresolve_opts:o$1});const p=[];let w=null;const h=a.map((f\x2Cb)=>{if(w)throw w;return Promise.resolve().then(async()=>{try{if(f===u&&i?.type==="error")throw i.error;return await fe({event:e\x2Cstate:s\x2Cnode:f\x2Cparent:async()=>{const $={};for(let k=0;k<b;k+=1){const x=await h[k];x&&Object.assign($\x2Cawait x.data);}return $}\x2Ctrack_server_fetches:r.track_server_fetches})}catch($){throw w=$\x2Cw}})})\x2Cy=U(a\x2C"csr")??!0\x2Cg=a.map((f\x2Cb)=>{if(w)throw w;return Promise.resolve().then(async()=>{try{return await Xe({event:e\x2Cfetched:l\x2Cnode:f\x2Cparent:async()=>{const $={};for(let k=0;k<b;k+=1)Object.assign($\x2Cawait g[k]);return $}\x2Cresolve_opts:o$1\x2Cserver_data_promise:h[b]\x2Cstate:s\x2Ccsr:y})}catch($){throw w=$\x2Cw}})});for(const f of h)f.catch(()=>{});for(const f of g)f.catch(()=>{});for(let f=0;f<a.length;f+=1){const b=a[f];if(b)try{const $=await h[f]\x2Ck=await g[f];p.push({node:b\x2Cserver_data:$\x2Cdata:k});}catch($){const k=$;if(k instanceof c){if(s.prerendering&&c$1){const R=JSON.stringify({type:"redirect"\x2Clocation:k.location});s.prerendering.dependencies.set(_\x2C{response:g$1(R)\x2Cbody:R});}return K(k.status\x2Ck.location)}const x=k instanceof o?k.status:500\x2Cj=await A(e\x2Cr\x2Ck);for(;f--;)if(t.errors[f]){const R=t.errors[f]\x2CL=await n._.nodes[R]();let W=f;for(;!p[W];)W-=1;return await M({event:e\x2Coptions:r\x2Cmanifest:n\x2Cstate:s\x2Cresolve_opts:o$1\x2Cpage_config:{ssr:!0\x2Ccsr:!0}\x2Cstatus:x\x2Cerror:j\x2Cbranch:ge(p.slice(0\x2CW+1)).concat({node:L\x2Cdata:null\x2Cserver_data:null})\x2Cfetched:l})}return ue(r\x2Cx\x2Cj.message)}else p.push(null);}if(s.prerendering&&c$1){let{data:f\x2Cchunks:b}=at(e\x2Cr\x2Cp.map($=>$?.server_data));if(b)for await(const $ of b)f+=$;s.prerendering.dependencies.set(_\x2C{response:g$1(f)\x2Cbody:f});}return await M({event:e\x2Coptions:r\x2Cmanifest:n\x2Cstate:s\x2Cresolve_opts:o$1\x2Cpage_config:{csr:U(a\x2C"csr")??!0\x2Cssr:!0}\x2Cstatus:d\x2Cerror:null\x2Cbranch:ge(p)\x2Caction_result:i\x2Cfetched:l})}catch(a){return await ot({event:e\x2Coptions:r\x2Cmanifest:n\x2Cstate:s\x2Cstatus:500\x2Cerror:a\x2Cresolve_opts:o$1})}}function sr(e\x2Ct\x2Cr){const n=e.headers.get("cookie")??""\x2Cs=cookieExports.parse(n\x2C{decode:m=>m})\x2Ca=le(t.pathname\x2Cr).split("/").slice(0\x2C-1).join("/")||"/"\x2Cu={}\x2Cd={httpOnly:!0\x2CsameSite:"lax"\x2Csecure:!(t.hostname==="localhost"&&t.protocol==="http:")}\x2Ci={get(m\x2Cl){const p=u[m];if(p&&ee(t.hostname\x2Cp.options.domain)&&te(t.pathname\x2Cp.options.path))return p.value;const w=l?.decode||decodeURIComponent;return cookieExports.parse(n\x2C{decode:w})[m]}\x2CgetAll(m){const l=m?.decode||decodeURIComponent\x2Cp=cookieExports.parse(n\x2C{decode:l});for(const w of Object.values(u))ee(t.hostname\x2Cw.options.domain)&&te(t.pathname\x2Cw.options.path)&&(p[w.name]=w.value);return Object.entries(p).map(([w\x2Ch])=>({name:w\x2Cvalue:h}))}\x2Cset(m\x2Cl\x2Cp={}){_(m\x2Cl\x2C{...d\x2C...p});}\x2Cdelete(m\x2Cl={}){i.set(m\x2C""\x2C{...l\x2CmaxAge:0});}\x2Cserialize(m\x2Cl\x2Cp){return cookieExports.serialize(m\x2Cl\x2C{...d\x2C...p})}};function c(m\x2Cl){const p={...s};for(const w in u){const h=u[w];if(!ee(m.hostname\x2Ch.options.domain)||!te(m.pathname\x2Ch.options.path))continue;const y=h.options.encode||encodeURIComponent;p[h.name]=y(h.value);}if(l){const w=cookieExports.parse(l\x2C{decode:h=>h});for(const h in w)p[h]=w[h];}return Object.entries(p).map(([w\x2Ch])=>`${w}=${h}`).join("; ")}function _(m\x2Cl\x2Cp){const w=p.path??a;u[m]={name:m\x2Cvalue:l\x2Coptions:{...p\x2Cpath:w}};}return {cookies:i\x2Cnew_cookies:u\x2Cget_cookie_header:c\x2Cset_internal:_}}function ee(e\x2Ct){if(!t)return !0;const r=t[0]==="."?t.slice(1):t;return e===r?!0:e.endsWith("."+r)}function te(e\x2Ct){if(!t)return !0;const r=t.endsWith("/")?t.slice(0\x2C-1):t;return e===r?!0:e.startsWith(r+"/")}function Te(e\x2Ct){for(const r of t){const{name:n\x2Cvalue:s\x2Coptions:o}=r;e.append("set-cookie"\x2CcookieExports.serialize(n\x2Cs\x2Co));}}function or({event:e\x2Coptions:t\x2Cmanifest:r\x2Cstate:n\x2Cget_cookie_header:s\x2Cset_internal:o}){return async(a\x2Cu)=>{const d=Oe(a\x2Cu\x2Ce.url);let i=(a instanceof Request?a.mode:u?.mode)??"cors"\x2Cc=(a instanceof Request?a.credentials:u?.credentials)??"same-origin";return await t.hooks.handleFetch({event:e\x2Crequest:d\x2Cfetch:async(_\x2Cm)=>{const l=Oe(_\x2Cm\x2Ce.url)\x2Cp$1=new URL(l.url);if(l.headers.has("origin")||l.headers.set("origin"\x2Ce.url.origin)\x2C_!==d&&(i=(_ instanceof Request?_.mode:m?.mode)??"cors"\x2Cc=(_ instanceof Request?_.credentials:m?.credentials)??"same-origin")\x2C(l.method==="GET"||l.method==="HEAD")&&(i==="no-cors"&&p$1.origin!==e.url.origin||p$1.origin===e.url.origin)&&l.headers.delete("origin")\x2Cp$1.origin!==e.url.origin){if(`.${p$1.hostname}`.endsWith(`.${e.url.hostname}`)&&c!=="omit"){const x=s(p$1\x2Cl.headers.get("cookie"));x&&l.headers.set("cookie"\x2Cx);}return fetch(l)}const w=p||g\x2Ch=decodeURIComponent(p$1.pathname)\x2Cy=(h.startsWith(w)?h.slice(w.length):h).slice(1)\x2Cg$1=`${y}/index.html`\x2Cf=r.assets.has(y)\x2Cb=r.assets.has(g$1);if(f||b){const x=f?y:g$1;if(n.read){const j=f?r.mimeTypes[y.slice(y.lastIndexOf("."))]:"text/html";return new Response(n.read(x)\x2C{headers:j?{"content-type":j}:{}})}return await fetch(l)}if(c!=="omit"){const x=s(p$1\x2Cl.headers.get("cookie"));x&&l.headers.set("cookie"\x2Cx);const j=e.request.headers.get("authorization");j&&!l.headers.has("authorization")&&l.headers.set("authorization"\x2Cj);}l.headers.has("accept")||l.headers.set("accept"\x2C"*/*")\x2Cl.headers.has("accept-language")||l.headers.set("accept-language"\x2Ce.request.headers.get("accept-language"));const $=await lt(l\x2Ct\x2Cr\x2C{...n\x2Cdepth:n.depth+1})\x2Ck=$.headers.get("set-cookie");if(k)for(const x of setCookieExports.splitCookiesString(k)){const{name:j\x2Cvalue:R\x2C...L}=setCookieExports.parseString(x);o(j\x2CR\x2CL);}return $}})}}function Oe(e\x2Ct\x2Cr){return e instanceof Request?e:new Request(typeof e=="string"?new URL(e\x2Cr):e\x2Ct)}const Q=new Set(["load"\x2C"prerender"\x2C"csr"\x2C"ssr"\x2C"trailingSlash"\x2C"config"]);new Set([...Q\x2C"entries"]);const he=new Set([...Q]);new Set([...he\x2C"actions"\x2C"entries"]);const Pe=({html:e})=>e\x2CAe=()=>!1\x2Cqe=({type:e})=>e==="js"||e==="css"\x2Cir=new Set(["GET"\x2C"HEAD"\x2C"POST"])\x2Ccr=new Set(["GET"\x2C"HEAD"\x2C"OPTIONS"]);async function lt(e\x2Ct\x2Cr\x2Cn){const s=new URL(e.url);if(t.csrf_check_origin&&Ue(e)&&(e.method==="POST"||e.method==="PUT"||e.method==="PATCH"||e.method==="DELETE")&&e.headers.get("origin")!==s.origin){const y=a(403\x2C`Cross-site ${e.method} form submissions are forbidden`);return e.headers.get("accept")==="application/json"?d(y.body\x2C{status:y.status}):g$1(y.body.message\x2C{status:y.status})}let o;try{o=St(s.pathname);}catch{return g$1("Malformed URI"\x2C{status:400})}let a$1=null\x2Cu={};if(g&&!n.prerendering?.fallback){if(!o.startsWith(g))return g$1("Not found"\x2C{status:404});o=o.slice(g.length)||"/";}const d$1=At(o);let i;if(d$1&&(o=$e(o)||"/"\x2Cs.pathname=$e(s.pathname)+(s.searchParams.get(ve)==="1"?"/":"")||"/"\x2Cs.searchParams.delete(ve)\x2Ci=s.searchParams.get(be)?.split("").map(h=>h==="1")\x2Cs.searchParams.delete(be))\x2C!n.prerendering?.fallback){const h=await r._.matchers();for(const y of r._.routes){const g=y.pattern.exec(o);if(!g)continue;const f=bt(g\x2Cy.params\x2Ch);if(f){a$1=y\x2Cu=Rt(f);break}}}let c$1;const _={};let m={};const l={cookies:null\x2Cfetch:null\x2CgetClientAddress:n.getClientAddress||(()=>{throw new Error("@sveltejs/adapter-node does not specify getClientAddress. Please raise an issue")})\x2Clocals:{}\x2Cparams:u\x2Cplatform:n.platform\x2Crequest:e\x2Croute:{id:a$1?.id??null}\x2CsetHeaders:h=>{for(const y in h){const g=y.toLowerCase()\x2Cf=h[y];if(g==="set-cookie")throw new Error("Use `event.cookies.set(name\x2C value\x2C options)` instead of `event.setHeaders` to set cookies");if(g in _)throw new Error(`"${y}" header is already set`);_[g]=f\x2Cn.prerendering&&g==="cache-control"&&(n.prerendering.cache=f);}}\x2Curl:s\x2CisDataRequest:d$1\x2CisSubRequest:n.depth>0};let p={transformPageChunk:Pe\x2CfilterSerializedResponseHeaders:Ae\x2Cpreload:qe};try{if(a$1){if(s.pathname===g||s.pathname===g+"/")c$1="always";else if(a$1.page){const $=await Promise.all([...a$1.page.layouts.map(k=>k==null?k:r._.nodes[k]())\x2Cr._.nodes[a$1.page.leaf]()]);c$1=U($\x2C"trailingSlash");}else a$1.endpoint&&(c$1=(await a$1.endpoint()).trailingSlash);if(!d$1){const $=le(s.pathname\x2Cc$1??"never");if($!==s.pathname&&!n.prerendering?.fallback)return new Response(void 0\x2C{status:308\x2Cheaders:{"x-sveltekit-normalize":"1"\x2Clocation:($.startsWith("//")?s.origin+$:$)+(s.search==="?"?"":s.search)}})}}const{cookies:h\x2Cnew_cookies:y\x2Cget_cookie_header:g$1\x2Cset_internal:f}=sr(e\x2Cs\x2Cc$1??"never");m=y\x2Cl.cookies=h\x2Cl.fetch=or({event:l\x2Coptions:t\x2Cmanifest:r\x2Cstate:n\x2Cget_cookie_header:g$1\x2Cset_internal:f})\x2Cn.prerendering&&!n.prerendering.fallback&&De(s);const b=await t.hooks.handle({event:l\x2Cresolve:($\x2Ck)=>w($\x2Ck).then(x=>{for(const j in _){const R=_[j];x.headers.set(j\x2CR);}return Te(x.headers\x2CObject.values(m))\x2Cn.prerendering&&$.route.id!==null&&x.headers.set("x-sveltekit-routeid"\x2CencodeURI($.route.id))\x2Cx})});if(b.status===200&&b.headers.has("etag")){let $=e.headers.get("if-none-match");$?.startsWith('W/"')&&($=$.substring(2));const k=b.headers.get("etag");if($===k){const x=new Headers({etag:k});for(const j of ["cache-control"\x2C"content-location"\x2C"date"\x2C"expires"\x2C"vary"\x2C"set-cookie"]){const R=b.headers.get(j);R&&x.set(j\x2CR);}return new Response(void 0\x2C{status:304\x2Cheaders:x})}}if(d$1&&b.status>=300&&b.status<=308){const $=b.headers.get("location");if($)return se(new c(b.status\x2C$))}return b}catch(h){if(h instanceof c){const y=d$1?se(h):a$1?.page&&We(l)?Je(h):K(h.status\x2Ch.location);return Te(y.headers\x2CObject.values(m))\x2Cy}return await we(l\x2Ct\x2Ch)}async function w(h\x2Cy){try{if(y){if("ssr"in y)throw new Error("ssr has been removed\x2C set it in the appropriate +layout.js instead. See the PR for more information: https://github.com/sveltejs/kit/pull/6197");p={transformPageChunk:y.transformPageChunk||Pe\x2CfilterSerializedResponseHeaders:y.filterSerializedResponseHeaders||Ae\x2Cpreload:y.preload||qe};}if(n.prerendering?.fallback)return await M({event:h\x2Coptions:t\x2Cmanifest:r\x2Cstate:n\x2Cpage_config:{ssr:!1\x2Ccsr:!0}\x2Cstatus:200\x2Cerror:null\x2Cbranch:[]\x2Cfetched:[]\x2Cresolve_opts:p});if(a$1){const g=h.request.method;let f;if(d$1)f=await tr(h\x2Ca$1\x2Ct\x2Cr\x2Cn\x2Ci\x2Cc$1??"never");else if(a$1.endpoint&&(!a$1.page||jt(h)))f=await Et(h\x2Cawait a$1.endpoint()\x2Cn);else if(a$1.page)if(ir.has(g))f=await nr(h\x2Ca$1.page\x2Ct\x2Cr\x2Cn\x2Cp);else {const b=new Set(cr);if((await r._.nodes[a$1.page.leaf]())?.server?.actions&&b.add("POST")\x2Cg==="OPTIONS")f=new Response(null\x2C{status:204\x2Cheaders:{allow:Array.from(b.values()).join("\x2C ")}});else {const k=[...b].reduce((x\x2Cj)=>(x[j]=!0\x2Cx)\x2C{});f=ze(k\x2Cg);}}else throw new Error("This should never happen");if(e.method==="GET"&&a$1.page&&a$1.endpoint){const b=f.headers.get("vary")?.split("\x2C")?.map($=>$.trim().toLowerCase());b?.includes("accept")||b?.includes("*")||(f=new Response(f.body\x2C{status:f.status\x2CstatusText:f.statusText\x2Cheaders:new Headers(f.headers)})\x2Cf.headers.append("Vary"\x2C"Accept"));}return f}return n.error?g$1("Internal Server Error"\x2C{status:500}):n.depth===0?await ot({event:h\x2Coptions:t\x2Cmanifest:r\x2Cstate:n\x2Cstatus:404\x2Cerror:new Error(`Not found: ${h.url.pathname}`)\x2Cresolve_opts:p}):n.prerendering?g$1("not found"\x2C{status:404}):await fetch(e)}catch(g){return await we(h\x2Ct\x2Cg)}finally{h.cookies.set=()=>{throw new Error("Cannot use `cookies.set(...)` after the response has been generated")}\x2Ch.setHeaders=()=>{throw new Error("Cannot use `setHeaders(...)` after the response has been generated")};}}}function ur(e\x2C{public_prefix:t\x2Cprivate_prefix:r}){return Object.fromEntries(Object.entries(e).filter(([n])=>n.startsWith(r)&&(t===""||!n.startsWith(t))))}function lr(e\x2C{public_prefix:t\x2Cprivate_prefix:r}){return Object.fromEntries(Object.entries(e).filter(([n])=>n.startsWith(t)&&(r===""||!n.startsWith(r))))}class kr{#e;#t;constructor(t){this.#e=z\x2Cthis.#t=t;}async init({env:t$1}){if(t(ur(t$1\x2C{public_prefix:this.#e.env_public_prefix\x2Cprivate_prefix:this.#e.env_private_prefix}))\x2Ci(lr(t$1\x2C{public_prefix:this.#e.env_public_prefix\x2Cprivate_prefix:this.#e.env_private_prefix}))\x2C!this.#e.hooks)try{const r=await M$1();this.#e.hooks={handle:r.handle||(({event:n\x2Cresolve:s})=>s(n))\x2ChandleError:r.handleError||(({error:n})=>console.error(n))\x2ChandleFetch:r.handleFetch||(({request:n\x2Cfetch:s})=>s(n))};}catch(r){throw r}}async respond(t\x2Cr){if(!(t instanceof Request))throw new Error("The first argument to server.respond must be a Request object. See https://github.com/sveltejs/kit/pull/3384 for details");return lt(t\x2Cthis.#e\x2Cthis.#t\x2C{...r\x2Cerror:!1\x2Cdepth:0})}}\n\nexport { kr as Server };\n//# sourceMappingURL=index.js.map\n
code-source-info,0x36d16ac8d1a6,132,0,68213,C10O0C713O0C733O0C737O281C739O281C741O286C743O286C745O296C752O302C758O311C764O296C766O356C777O356C782O1287C789O1639C793O1669C798O1674C806O2677C822O1287C824O4112C828O4112C830O4290C853O4263C855O4612C859O4619C864O4641C868O4648C873O4619C879O4661C884O4662C889O4670C897O4671C902O4612C904O5975C906O5975C908O6054C912O6054C914O6104C918O6104C920O12787C922O12787C924O12804C926O12804C928O12820C930O12820C932O12850C934O12850C936O12880C938O12880C940O12906C942O12906C944O16997C945O16997C947O22592C950O22592C952O22626C956O22626C958O29683C961O29683C963O29713C965O29713C967O29738C978O29738C983O29738C985O29805C996O29805C1001O29805C1003O33895C1007O33895C1009O34612C1011O34612C1013O37235C1015O37235C1017O37264C1019O37264C1021O40638C1025O40638C1027O40668C1034O40683C1038O40690C1046O40690C1052O40698C1060O40699C1081O40668C1086O40668C1088O40909C1092O40909C1094O40966C1101O40981C1105O40988C1113O40988C1119O40996C1127O40997C1148O40966C1153O40966C1155O41816C1159O41821C1163O41816C1165O41834C1169O41834C1174O41834C1176O42515C1185O42515C1190O42515C1192O42537C1201O42537C1206O42537C1208O43120C1211O43187C1219O43187C1224O43120C1226O43502C1235O43502C1240O43502C1242O43585C1253O43585C1258O43585C1260O43720C1264O43720C1409O44861C1436O44844C1438O44996C1460O44979C1512O45290C1514O46289C1522O46293C1532O46307C1542O46289C1544O46318C1548O46318C1553O46318C1555O53067C1559O53067C1564O53067C1566O55183C1568O55183C1570O61573C1581O61573C1587O61640C1593O61652C1608O61640C1613O61675C1619O61687C1623O61675C1629O61691C1635O61703C1661O61691C1667O61737C1671O61737C1673O61754C1677O61754C1679O61764C1683O61764C1685O61799C1696O61799C1701O61799C1703O61833C1714O61833C1719O61833C1793O67409C1798O68213,,
code-creation,Function,10,152297,0x36d16ac8daf6,25,<instance_members_initializer> file:///var/www/quadcode.com/build/server/index.js:1264:12301,0x36d16ac8bce8,~
code-source-info,0x36d16ac8daf6,132,67418,67423,C8O67418C24O67423,,
code-creation,Function,10,152320,0x36d16ac8db96,40,<instance_members_initializer> file:///var/www/quadcode.com/build/server/index.js:1220:15596,0x36d16ac8ba50,~
code-source-info,0x36d16ac8db96,132,45299,45343,C3O45305C6O45305C39O45343,,
code-creation,Function,10,152349,0x36d16ac8dc3e,75,<instance_members_initializer> file:///var/www/quadcode.com/build/server/index.js:1220:14048,0x36d16ac8b748,~
code-source-info,0x36d16ac8dc3e,132,43751,43771,C8O43751C74O43771,,
tick,0x7efc3363549c,152376,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3364160a,152393,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3363549c,152398,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33641626,152402,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3373d8f0,152406,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0xe84100,153237,0,0x0,0,0x15a432b,0x15a635b,0x1c78303ca3aa,0x1c78303dc2ce,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
tick,0x7efc337b40bb,154319,1,0xb05ac0,6,0xd44a10,0x1c78303e79be,0x1c78303e5c88,0x1c78303e577c,0x1c78303e4725,0x1c78303e3c9f,0x1c78303db730,0x158e77f
new,MemoryChunk,0x173fd9080000,262144
new,MemoryChunk,0x1f7ebecc0000,262144
new,MemoryChunk,0x31f39f740000,262144
new,MemoryChunk,0x2e5212b80000,262144
scavenge,begin,0,153548,1745847819636
scavenge,end,0,155045,1745847819637
tick,0x7efc336479d6,155355,0,0x0,6
tick,0x1b83584,156453,1,0xb3be80,6,0xd44a10,0x1c78303eee31,0x1c78303ed3b8,0x1c78303e47a5,0x158e77f
tick,0x1b83584,157528,1,0xb3be80,6,0xd44a10,0x1c78303eee31,0x1c78303ed3b8,0x1c78303e47a5,0x158e77f
new,MemoryChunk,0x3786dc740000,1531904
tick,0x7efc3373d963,158622,1,0xad9440,5,0xd44a10,0x1c78303ef7db,0x1c78303ef1ca,0x1c78303eee5a,0x1c78303ed3b8,0x1c78303e47a5,0x158e77f
tick,0x1151bc9,159698,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x11685ab,160774,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x114fe19,161845,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
tick,0xd1241a,162919,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x113d860,163974,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x110ccd0,168456,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
new,MemoryChunk,0x2fbc64680000,167936
code-creation,Script,10,169337,0x36d16acb0fa6,16244, file:///var/www/quadcode.com/build/shims.js:1:1,0x36d16ac9de50,~
script-source,133,file:///var/www/quadcode.com/build/shims.js,import { ReadableStream as ReadableStream$1\x2C TransformStream\x2C WritableStream } from 'node:stream/web';\nimport buffer from 'node:buffer';\nimport { webcrypto } from 'node:crypto';\nimport require$$0 from 'assert';\nimport require$$4 from 'net';\nimport require$$2 from 'http';\nimport require$$0$1 from 'stream';\nimport require$$7 from 'buffer';\nimport require$$0$2 from 'util';\nimport require$$8 from 'querystring';\nimport require$$13 from 'stream/web';\nimport require$$0$3 from 'worker_threads';\nimport require$$2$1 from 'perf_hooks';\nimport require$$5 from 'util/types';\nimport require$$0$4 from 'events';\nimport require$$4$1 from 'tls';\nimport require$$4$2 from 'async_hooks';\nimport 'console';\nimport 'url';\nimport require$$3 from 'zlib';\nimport require$$6 from 'string_decoder';\nimport require$$0$5 from 'crypto';\nimport require$$1 from 'diagnostics_channel';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar symbols$3 = {\n  kClose: Symbol('close')\x2C\n  kDestroy: Symbol('destroy')\x2C\n  kDispatch: Symbol('dispatch')\x2C\n  kUrl: Symbol('url')\x2C\n  kWriting: Symbol('writing')\x2C\n  kResuming: Symbol('resuming')\x2C\n  kQueue: Symbol('queue')\x2C\n  kConnect: Symbol('connect')\x2C\n  kConnecting: Symbol('connecting')\x2C\n  kHeadersList: Symbol('headers list')\x2C\n  kKeepAliveDefaultTimeout: Symbol('default keep alive timeout')\x2C\n  kKeepAliveMaxTimeout: Symbol('max keep alive timeout')\x2C\n  kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold')\x2C\n  kKeepAliveTimeoutValue: Symbol('keep alive timeout')\x2C\n  kKeepAlive: Symbol('keep alive')\x2C\n  kHeadersTimeout: Symbol('headers timeout')\x2C\n  kBodyTimeout: Symbol('body timeout')\x2C\n  kServerName: Symbol('server name')\x2C\n  kLocalAddress: Symbol('local address')\x2C\n  kHost: Symbol('host')\x2C\n  kNoRef: Symbol('no ref')\x2C\n  kBodyUsed: Symbol('used')\x2C\n  kRunning: Symbol('running')\x2C\n  kBlocking: Symbol('blocking')\x2C\n  kPending: Symbol('pending')\x2C\n  kSize: Symbol('size')\x2C\n  kBusy: Symbol('busy')\x2C\n  kQueued: Symbol('queued')\x2C\n  kFree: Symbol('free')\x2C\n  kConnected: Symbol('connected')\x2C\n  kClosed: Symbol('closed')\x2C\n  kNeedDrain: Symbol('need drain')\x2C\n  kReset: Symbol('reset')\x2C\n  kDestroyed: Symbol.for('nodejs.stream.destroyed')\x2C\n  kMaxHeadersSize: Symbol('max headers size')\x2C\n  kRunningIdx: Symbol('running index')\x2C\n  kPendingIdx: Symbol('pending index')\x2C\n  kError: Symbol('error')\x2C\n  kClients: Symbol('clients')\x2C\n  kClient: Symbol('client')\x2C\n  kParser: Symbol('parser')\x2C\n  kOnDestroyed: Symbol('destroy callbacks')\x2C\n  kPipelining: Symbol('pipelining')\x2C\n  kSocket: Symbol('socket')\x2C\n  kHostHeader: Symbol('host header')\x2C\n  kConnector: Symbol('connector')\x2C\n  kStrictContentLength: Symbol('strict content length')\x2C\n  kMaxRedirections: Symbol('maxRedirections')\x2C\n  kMaxRequests: Symbol('maxRequestsPerClient')\x2C\n  kProxy: Symbol('proxy agent options')\x2C\n  kCounter: Symbol('socket request counter')\x2C\n  kInterceptors: Symbol('dispatch interceptors')\x2C\n  kMaxResponseSize: Symbol('max response size')\n};\n\nlet UndiciError$1 = class UndiciError extends Error {\n  constructor (message) {\n    super(message);\n    this.name = 'UndiciError';\n    this.code = 'UND_ERR';\n  }\n};\n\nlet ConnectTimeoutError$1 = class ConnectTimeoutError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C ConnectTimeoutError$1);\n    this.name = 'ConnectTimeoutError';\n    this.message = message || 'Connect Timeout Error';\n    this.code = 'UND_ERR_CONNECT_TIMEOUT';\n  }\n};\n\nlet HeadersTimeoutError$1 = class HeadersTimeoutError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C HeadersTimeoutError$1);\n    this.name = 'HeadersTimeoutError';\n    this.message = message || 'Headers Timeout Error';\n    this.code = 'UND_ERR_HEADERS_TIMEOUT';\n  }\n};\n\nlet HeadersOverflowError$1 = class HeadersOverflowError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C HeadersOverflowError$1);\n    this.name = 'HeadersOverflowError';\n    this.message = message || 'Headers Overflow Error';\n    this.code = 'UND_ERR_HEADERS_OVERFLOW';\n  }\n};\n\nlet BodyTimeoutError$1 = class BodyTimeoutError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C BodyTimeoutError$1);\n    this.name = 'BodyTimeoutError';\n    this.message = message || 'Body Timeout Error';\n    this.code = 'UND_ERR_BODY_TIMEOUT';\n  }\n};\n\nlet ResponseStatusCodeError$1 = class ResponseStatusCodeError extends UndiciError$1 {\n  constructor (message\x2C statusCode\x2C headers\x2C body) {\n    super(message);\n    Error.captureStackTrace(this\x2C ResponseStatusCodeError$1);\n    this.name = 'ResponseStatusCodeError';\n    this.message = message || 'Response Status Code Error';\n    this.code = 'UND_ERR_RESPONSE_STATUS_CODE';\n    this.body = body;\n    this.status = statusCode;\n    this.statusCode = statusCode;\n    this.headers = headers;\n  }\n};\n\nlet InvalidArgumentError$j = class InvalidArgumentError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C InvalidArgumentError$j);\n    this.name = 'InvalidArgumentError';\n    this.message = message || 'Invalid Argument Error';\n    this.code = 'UND_ERR_INVALID_ARG';\n  }\n};\n\nlet InvalidReturnValueError$2 = class InvalidReturnValueError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C InvalidReturnValueError$2);\n    this.name = 'InvalidReturnValueError';\n    this.message = message || 'Invalid Return Value Error';\n    this.code = 'UND_ERR_INVALID_RETURN_VALUE';\n  }\n};\n\nlet RequestAbortedError$8 = class RequestAbortedError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C RequestAbortedError$8);\n    this.name = 'AbortError';\n    this.message = message || 'Request aborted';\n    this.code = 'UND_ERR_ABORTED';\n  }\n};\n\nlet InformationalError$1 = class InformationalError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C InformationalError$1);\n    this.name = 'InformationalError';\n    this.message = message || 'Request information';\n    this.code = 'UND_ERR_INFO';\n  }\n};\n\nlet RequestContentLengthMismatchError$1 = class RequestContentLengthMismatchError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C RequestContentLengthMismatchError$1);\n    this.name = 'RequestContentLengthMismatchError';\n    this.message = message || 'Request body length does not match content-length header';\n    this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH';\n  }\n};\n\nlet ResponseContentLengthMismatchError$1 = class ResponseContentLengthMismatchError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C ResponseContentLengthMismatchError$1);\n    this.name = 'ResponseContentLengthMismatchError';\n    this.message = message || 'Response body length does not match content-length header';\n    this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH';\n  }\n};\n\nlet ClientDestroyedError$2 = class ClientDestroyedError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C ClientDestroyedError$2);\n    this.name = 'ClientDestroyedError';\n    this.message = message || 'The client is destroyed';\n    this.code = 'UND_ERR_DESTROYED';\n  }\n};\n\nlet ClientClosedError$1 = class ClientClosedError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C ClientClosedError$1);\n    this.name = 'ClientClosedError';\n    this.message = message || 'The client is closed';\n    this.code = 'UND_ERR_CLOSED';\n  }\n};\n\nlet SocketError$3 = class SocketError extends UndiciError$1 {\n  constructor (message\x2C socket) {\n    super(message);\n    Error.captureStackTrace(this\x2C SocketError$3);\n    this.name = 'SocketError';\n    this.message = message || 'Socket error';\n    this.code = 'UND_ERR_SOCKET';\n    this.socket = socket;\n  }\n};\n\nlet NotSupportedError$2 = class NotSupportedError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C NotSupportedError$2);\n    this.name = 'NotSupportedError';\n    this.message = message || 'Not supported error';\n    this.code = 'UND_ERR_NOT_SUPPORTED';\n  }\n};\n\nclass BalancedPoolMissingUpstreamError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C NotSupportedError$2);\n    this.name = 'MissingUpstreamError';\n    this.message = message || 'No upstream has been added to the BalancedPool';\n    this.code = 'UND_ERR_BPL_MISSING_UPSTREAM';\n  }\n}\n\nlet HTTPParserError$1 = class HTTPParserError extends Error {\n  constructor (message\x2C code\x2C data) {\n    super(message);\n    Error.captureStackTrace(this\x2C HTTPParserError$1);\n    this.name = 'HTTPParserError';\n    this.code = code ? `HPE_${code}` : undefined;\n    this.data = data ? data.toString() : undefined;\n  }\n};\n\nlet ResponseExceededMaxSizeError$1 = class ResponseExceededMaxSizeError extends UndiciError$1 {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C ResponseExceededMaxSizeError$1);\n    this.name = 'ResponseExceededMaxSizeError';\n    this.message = message || 'Response content exceeded max size';\n    this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE';\n  }\n};\n\nvar errors$1 = {\n  HTTPParserError: HTTPParserError$1\x2C\n  UndiciError: UndiciError$1\x2C\n  HeadersTimeoutError: HeadersTimeoutError$1\x2C\n  HeadersOverflowError: HeadersOverflowError$1\x2C\n  BodyTimeoutError: BodyTimeoutError$1\x2C\n  RequestContentLengthMismatchError: RequestContentLengthMismatchError$1\x2C\n  ConnectTimeoutError: ConnectTimeoutError$1\x2C\n  ResponseStatusCodeError: ResponseStatusCodeError$1\x2C\n  InvalidArgumentError: InvalidArgumentError$j\x2C\n  InvalidReturnValueError: InvalidReturnValueError$2\x2C\n  RequestAbortedError: RequestAbortedError$8\x2C\n  ClientDestroyedError: ClientDestroyedError$2\x2C\n  ClientClosedError: ClientClosedError$1\x2C\n  InformationalError: InformationalError$1\x2C\n  SocketError: SocketError$3\x2C\n  NotSupportedError: NotSupportedError$2\x2C\n  ResponseContentLengthMismatchError: ResponseContentLengthMismatchError$1\x2C\n  BalancedPoolMissingUpstreamError\x2C\n  ResponseExceededMaxSizeError: ResponseExceededMaxSizeError$1\n};\n\nconst assert$8 = require$$0;\nconst { kDestroyed: kDestroyed$1\x2C kBodyUsed: kBodyUsed$1 } = symbols$3;\nconst { IncomingMessage } = require$$2;\nconst stream$1 = require$$0$1;\nconst net$2 = require$$4;\nconst { InvalidArgumentError: InvalidArgumentError$i } = errors$1;\nconst { Blob: Blob$2 } = require$$7;\nconst nodeUtil = require$$0$2;\nconst { stringify } = require$$8;\n\nconst [nodeMajor\x2C nodeMinor] = process.versions.node.split('.').map(v => Number(v));\n\nfunction nop$1 () {}\n\nfunction isStream (obj) {\n  return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n  return (Blob$2 && object instanceof Blob$2) || (\n    object &&\n    typeof object === 'object' &&\n    (typeof object.stream === 'function' ||\n      typeof object.arrayBuffer === 'function') &&\n    /^(Blob|File)$/.test(object[Symbol.toStringTag])\n  )\n}\n\nfunction buildURL$2 (url\x2C queryParams) {\n  if (url.includes('?') || url.includes('#')) {\n    throw new Error('Query params cannot be passed when url already contains "?" or "#".')\n  }\n\n  const stringified = stringify(queryParams);\n\n  if (stringified) {\n    url += '?' + stringified;\n  }\n\n  return url\n}\n\nfunction parseURL (url) {\n  if (typeof url === 'string') {\n    url = new URL(url);\n\n    if (!/^https?:/.test(url.origin || url.protocol)) {\n      throw new InvalidArgumentError$i('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n    }\n\n    return url\n  }\n\n  if (!url || typeof url !== 'object') {\n    throw new InvalidArgumentError$i('Invalid URL: The URL argument must be a non-null object.')\n  }\n\n  if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n    throw new InvalidArgumentError$i('Invalid URL: port must be a valid integer or a string representation of an integer.')\n  }\n\n  if (url.path != null && typeof url.path !== 'string') {\n    throw new InvalidArgumentError$i('Invalid URL path: the path must be a string or null/undefined.')\n  }\n\n  if (url.pathname != null && typeof url.pathname !== 'string') {\n    throw new InvalidArgumentError$i('Invalid URL pathname: the pathname must be a string or null/undefined.')\n  }\n\n  if (url.hostname != null && typeof url.hostname !== 'string') {\n    throw new InvalidArgumentError$i('Invalid URL hostname: the hostname must be a string or null/undefined.')\n  }\n\n  if (url.origin != null && typeof url.origin !== 'string') {\n    throw new InvalidArgumentError$i('Invalid URL origin: the origin must be a string or null/undefined.')\n  }\n\n  if (!/^https?:/.test(url.origin || url.protocol)) {\n    throw new InvalidArgumentError$i('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n  }\n\n  if (!(url instanceof URL)) {\n    const port = url.port != null\n      ? url.port\n      : (url.protocol === 'https:' ? 443 : 80);\n    let origin = url.origin != null\n      ? url.origin\n      : `${url.protocol}//${url.hostname}:${port}`;\n    let path = url.path != null\n      ? url.path\n      : `${url.pathname || ''}${url.search || ''}`;\n\n    if (origin.endsWith('/')) {\n      origin = origin.substring(0\x2C origin.length - 1);\n    }\n\n    if (path && !path.startsWith('/')) {\n      path = `/${path}`;\n    }\n    // new URL(path\x2C origin) is unsafe when `path` contains an absolute URL\n    // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n    // If first parameter is a relative URL\x2C second param is required\x2C and will be used as the base URL.\n    // If first parameter is an absolute URL\x2C a given second param will be ignored.\n    url = new URL(origin + path);\n  }\n\n  return url\n}\n\nfunction parseOrigin (url) {\n  url = parseURL(url);\n\n  if (url.pathname !== '/' || url.search || url.hash) {\n    throw new InvalidArgumentError$i('invalid url')\n  }\n\n  return url\n}\n\nfunction getHostname (host) {\n  if (host[0] === '[') {\n    const idx = host.indexOf(']');\n\n    assert$8(idx !== -1);\n    return host.substr(1\x2C idx - 1)\n  }\n\n  const idx = host.indexOf(':');\n  if (idx === -1) return host\n\n  return host.substr(0\x2C idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently\x2C the only server names supported are DNS hostnames\nfunction getServerName (host) {\n  if (!host) {\n    return null\n  }\n\n  assert$8.strictEqual(typeof host\x2C 'string');\n\n  const servername = getHostname(host);\n  if (net$2.isIP(servername)) {\n    return ''\n  }\n\n  return servername\n}\n\nfunction deepClone (obj) {\n  return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n  return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n  return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n  if (body == null) {\n    return 0\n  } else if (isStream(body)) {\n    const state = body._readableState;\n    return state && state.ended === true && Number.isFinite(state.length)\n      ? state.length\n      : null\n  } else if (isBlobLike(body)) {\n    return body.size != null ? body.size : null\n  } else if (isBuffer(body)) {\n    return body.byteLength\n  }\n\n  return null\n}\n\nfunction isDestroyed (stream) {\n  return !stream || !!(stream.destroyed || stream[kDestroyed$1])\n}\n\nfunction isReadableAborted (stream) {\n  const state = stream && stream._readableState;\n  return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream\x2C err) {\n  if (!isStream(stream) || isDestroyed(stream)) {\n    return\n  }\n\n  if (typeof stream.destroy === 'function') {\n    if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n      // See: https://github.com/nodejs/node/pull/38505/files\n      stream.socket = null;\n    }\n    stream.destroy(err);\n  } else if (err) {\n    process.nextTick((stream\x2C err) => {\n      stream.emit('error'\x2C err);\n    }\x2C stream\x2C err);\n  }\n\n  if (stream.destroyed !== true) {\n    stream[kDestroyed$1] = true;\n  }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/;\nfunction parseKeepAliveTimeout (val) {\n  const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR);\n  return m ? parseInt(m[1]\x2C 10) * 1000 : null\n}\n\nfunction parseHeaders (headers\x2C obj = {}) {\n  for (let i = 0; i < headers.length; i += 2) {\n    const key = headers[i].toString().toLowerCase();\n    let val = obj[key];\n\n    if (!val) {\n      if (Array.isArray(headers[i + 1])) {\n        obj[key] = headers[i + 1];\n      } else {\n        obj[key] = headers[i + 1].toString('utf8');\n      }\n    } else {\n      if (!Array.isArray(val)) {\n        val = [val];\n        obj[key] = val;\n      }\n      val.push(headers[i + 1].toString('utf8'));\n    }\n  }\n\n  // See https://github.com/nodejs/node/pull/46528\n  if ('content-length' in obj && 'content-disposition' in obj) {\n    obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1');\n  }\n\n  return obj\n}\n\nfunction parseRawHeaders (headers) {\n  const ret = [];\n  let hasContentLength = false;\n  let contentDispositionIdx = -1;\n\n  for (let n = 0; n < headers.length; n += 2) {\n    const key = headers[n + 0].toString();\n    const val = headers[n + 1].toString('utf8');\n\n    if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n      ret.push(key\x2C val);\n      hasContentLength = true;\n    } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n      contentDispositionIdx = ret.push(key\x2C val) - 1;\n    } else {\n      ret.push(key\x2C val);\n    }\n  }\n\n  // See https://github.com/nodejs/node/pull/46528\n  if (hasContentLength && contentDispositionIdx !== -1) {\n    ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1');\n  }\n\n  return ret\n}\n\nfunction isBuffer (buffer) {\n  // See\x2C https://github.com/mcollina/undici/pull/319\n  return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler\x2C method\x2C upgrade) {\n  if (!handler || typeof handler !== 'object') {\n    throw new InvalidArgumentError$i('handler must be an object')\n  }\n\n  if (typeof handler.onConnect !== 'function') {\n    throw new InvalidArgumentError$i('invalid onConnect method')\n  }\n\n  if (typeof handler.onError !== 'function') {\n    throw new InvalidArgumentError$i('invalid onError method')\n  }\n\n  if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n    throw new InvalidArgumentError$i('invalid onBodySent method')\n  }\n\n  if (upgrade || method === 'CONNECT') {\n    if (typeof handler.onUpgrade !== 'function') {\n      throw new InvalidArgumentError$i('invalid onUpgrade method')\n    }\n  } else {\n    if (typeof handler.onHeaders !== 'function') {\n      throw new InvalidArgumentError$i('invalid onHeaders method')\n    }\n\n    if (typeof handler.onData !== 'function') {\n      throw new InvalidArgumentError$i('invalid onData method')\n    }\n\n    if (typeof handler.onComplete !== 'function') {\n      throw new InvalidArgumentError$i('invalid onComplete method')\n    }\n  }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n  return !!(body && (\n    stream$1.isDisturbed\n      ? stream$1.isDisturbed(body) || body[kBodyUsed$1] // TODO (fix): Why is body[kBodyUsed] needed?\n      : body[kBodyUsed$1] ||\n        body.readableDidRead ||\n        (body._readableState && body._readableState.dataEmitted) ||\n        isReadableAborted(body)\n  ))\n}\n\nfunction isErrored (body) {\n  return !!(body && (\n    stream$1.isErrored\n      ? stream$1.isErrored(body)\n      : /state: 'errored'/.test(nodeUtil.inspect(body)\n      )))\n}\n\nfunction isReadable (body) {\n  return !!(body && (\n    stream$1.isReadable\n      ? stream$1.isReadable(body)\n      : /state: 'readable'/.test(nodeUtil.inspect(body)\n      )))\n}\n\nfunction getSocketInfo (socket) {\n  return {\n    localAddress: socket.localAddress\x2C\n    localPort: socket.localPort\x2C\n    remoteAddress: socket.remoteAddress\x2C\n    remotePort: socket.remotePort\x2C\n    remoteFamily: socket.remoteFamily\x2C\n    timeout: socket.timeout\x2C\n    bytesWritten: socket.bytesWritten\x2C\n    bytesRead: socket.bytesRead\n  }\n}\n\nlet ReadableStream;\nfunction ReadableStreamFrom$1 (iterable) {\n  if (!ReadableStream) {\n    ReadableStream = require$$13.ReadableStream;\n  }\n\n  if (ReadableStream.from) {\n    // https://github.com/whatwg/streams/pull/1083\n    return ReadableStream.from(iterable)\n  }\n\n  let iterator;\n  return new ReadableStream(\n    {\n      async start () {\n        iterator = iterable[Symbol.asyncIterator]();\n      }\x2C\n      async pull (controller) {\n        const { done\x2C value } = await iterator.next();\n        if (done) {\n          queueMicrotask(() => {\n            controller.close();\n          });\n        } else {\n          const buf = Buffer.isBuffer(value) ? value : Buffer.from(value);\n          controller.enqueue(new Uint8Array(buf));\n        }\n        return controller.desiredSize > 0\n      }\x2C\n      async cancel (reason) {\n        await iterator.return();\n      }\n    }\x2C\n    0\n  )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n  return (\n    object &&\n    typeof object === 'object' &&\n    typeof object.append === 'function' &&\n    typeof object.delete === 'function' &&\n    typeof object.get === 'function' &&\n    typeof object.getAll === 'function' &&\n    typeof object.has === 'function' &&\n    typeof object.set === 'function' &&\n    object[Symbol.toStringTag] === 'FormData'\n  )\n}\n\nfunction throwIfAborted (signal) {\n  if (!signal) { return }\n  if (typeof signal.throwIfAborted === 'function') {\n    signal.throwIfAborted();\n  } else {\n    if (signal.aborted) {\n      // DOMException not available < v17.0.0\n      const err = new Error('The operation was aborted');\n      err.name = 'AbortError';\n      throw err\n    }\n  }\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed;\n\n/**\n * @param {string} val\n */\nfunction toUSVString$2 (val) {\n  if (hasToWellFormed) {\n    return `${val}`.toWellFormed()\n  } else if (nodeUtil.toUSVString) {\n    return nodeUtil.toUSVString(val)\n  }\n\n  return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null);\nkEnumerableProperty.enumerable = true;\n\nvar util$i = {\n  kEnumerableProperty\x2C\n  nop: nop$1\x2C\n  isDisturbed\x2C\n  isErrored\x2C\n  isReadable\x2C\n  toUSVString: toUSVString$2\x2C\n  isReadableAborted\x2C\n  isBlobLike\x2C\n  parseOrigin\x2C\n  parseURL\x2C\n  getServerName\x2C\n  isStream\x2C\n  isIterable\x2C\n  isAsyncIterable\x2C\n  isDestroyed\x2C\n  parseRawHeaders\x2C\n  parseHeaders\x2C\n  parseKeepAliveTimeout\x2C\n  destroy\x2C\n  bodyLength\x2C\n  deepClone\x2C\n  ReadableStreamFrom: ReadableStreamFrom$1\x2C\n  isBuffer\x2C\n  validateHandler\x2C\n  getSocketInfo\x2C\n  isFormDataLike\x2C\n  buildURL: buildURL$2\x2C\n  throwIfAborted\x2C\n  nodeMajor\x2C\n  nodeMinor\x2C\n  nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n};\n\nlet fastNow = Date.now();\nlet fastNowTimeout;\n\nconst fastTimers = [];\n\nfunction onTimeout () {\n  fastNow = Date.now();\n\n  let len = fastTimers.length;\n  let idx = 0;\n  while (idx < len) {\n    const timer = fastTimers[idx];\n\n    if (timer.state === 0) {\n      timer.state = fastNow + timer.delay;\n    } else if (timer.state > 0 && fastNow >= timer.state) {\n      timer.state = -1;\n      timer.callback(timer.opaque);\n    }\n\n    if (timer.state === -1) {\n      timer.state = -2;\n      if (idx !== len - 1) {\n        fastTimers[idx] = fastTimers.pop();\n      } else {\n        fastTimers.pop();\n      }\n      len -= 1;\n    } else {\n      idx += 1;\n    }\n  }\n\n  if (fastTimers.length > 0) {\n    refreshTimeout();\n  }\n}\n\nfunction refreshTimeout () {\n  if (fastNowTimeout && fastNowTimeout.refresh) {\n    fastNowTimeout.refresh();\n  } else {\n    clearTimeout(fastNowTimeout);\n    fastNowTimeout = setTimeout(onTimeout\x2C 1e3);\n    if (fastNowTimeout.unref) {\n      fastNowTimeout.unref();\n    }\n  }\n}\n\nclass Timeout {\n  constructor (callback\x2C delay\x2C opaque) {\n    this.callback = callback;\n    this.delay = delay;\n    this.opaque = opaque;\n\n    //  -2 not in timer list\n    //  -1 in timer list but inactive\n    //   0 in timer list waiting for time\n    // > 0 in timer list waiting for time to expire\n    this.state = -2;\n\n    this.refresh();\n  }\n\n  refresh () {\n    if (this.state === -2) {\n      fastTimers.push(this);\n      if (!fastNowTimeout || fastTimers.length === 1) {\n        refreshTimeout();\n      }\n    }\n\n    this.state = 0;\n  }\n\n  clear () {\n    this.state = -1;\n  }\n}\n\nvar timers$1 = {\n  setTimeout (callback\x2C delay\x2C opaque) {\n    return delay < 1e3\n      ? setTimeout(callback\x2C delay\x2C opaque)\n      : new Timeout(callback\x2C delay\x2C opaque)\n  }\x2C\n  clearTimeout (timeout) {\n    if (timeout instanceof Timeout) {\n      timeout.clear();\n    } else {\n      clearTimeout(timeout);\n    }\n  }\n};\n\nvar utils$1;\nvar hasRequiredUtils$1;\n\nfunction requireUtils$1 () {\n\x09if (hasRequiredUtils$1) return utils$1;\n\x09hasRequiredUtils$1 = 1;\n\n\x09function parseContentType(str) {\n\x09  if (str.length === 0)\n\x09    return;\n\n\x09  const params = Object.create(null);\n\x09  let i = 0;\n\n\x09  // Parse type\n\x09  for (; i < str.length; ++i) {\n\x09    const code = str.charCodeAt(i);\n\x09    if (TOKEN[code] !== 1) {\n\x09      if (code !== 47/* '/' */ || i === 0)\n\x09        return;\n\x09      break;\n\x09    }\n\x09  }\n\x09  // Check for type without subtype\n\x09  if (i === str.length)\n\x09    return;\n\n\x09  const type = str.slice(0\x2C i).toLowerCase();\n\n\x09  // Parse subtype\n\x09  const subtypeStart = ++i;\n\x09  for (; i < str.length; ++i) {\n\x09    const code = str.charCodeAt(i);\n\x09    if (TOKEN[code] !== 1) {\n\x09      // Make sure we have a subtype\n\x09      if (i === subtypeStart)\n\x09        return;\n\n\x09      if (parseContentTypeParams(str\x2C i\x2C params) === undefined)\n\x09        return;\n\x09      break;\n\x09    }\n\x09  }\n\x09  // Make sure we have a subtype\n\x09  if (i === subtypeStart)\n\x09    return;\n\n\x09  const subtype = str.slice(subtypeStart\x2C i).toLowerCase();\n\n\x09  return { type\x2C subtype\x2C params };\n\x09}\n\n\x09function parseContentTypeParams(str\x2C i\x2C params) {\n\x09  while (i < str.length) {\n\x09    // Consume whitespace\n\x09    for (; i < str.length; ++i) {\n\x09      const code = str.charCodeAt(i);\n\x09      if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n\x09        break;\n\x09    }\n\n\x09    // Ended on whitespace\n\x09    if (i === str.length)\n\x09      break;\n\n\x09    // Check for malformed parameter\n\x09    if (str.charCodeAt(i++) !== 59/* ';' */)\n\x09      return;\n\n\x09    // Consume whitespace\n\x09    for (; i < str.length; ++i) {\n\x09      const code = str.charCodeAt(i);\n\x09      if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n\x09        break;\n\x09    }\n\n\x09    // Ended on whitespace (malformed)\n\x09    if (i === str.length)\n\x09      return;\n\n\x09    let name;\n\x09    const nameStart = i;\n\x09    // Parse parameter name\n\x09    for (; i < str.length; ++i) {\n\x09      const code = str.charCodeAt(i);\n\x09      if (TOKEN[code] !== 1) {\n\x09        if (code !== 61/* '=' */)\n\x09          return;\n\x09        break;\n\x09      }\n\x09    }\n\n\x09    // No value (malformed)\n\x09    if (i === str.length)\n\x09      return;\n\n\x09    name = str.slice(nameStart\x2C i);\n\x09    ++i; // Skip over '='\n\n\x09    // No value (malformed)\n\x09    if (i === str.length)\n\x09      return;\n\n\x09    let value = '';\n\x09    let valueStart;\n\x09    if (str.charCodeAt(i) === 34/* '"' */) {\n\x09      valueStart = ++i;\n\x09      let escaping = false;\n\x09      // Parse quoted value\n\x09      for (; i < str.length; ++i) {\n\x09        const code = str.charCodeAt(i);\n\x09        if (code === 92/* '\\\\' */) {\n\x09          if (escaping) {\n\x09            valueStart = i;\n\x09            escaping = false;\n\x09          } else {\n\x09            value += str.slice(valueStart\x2C i);\n\x09            escaping = true;\n\x09          }\n\x09          continue;\n\x09        }\n\x09        if (code === 34/* '"' */) {\n\x09          if (escaping) {\n\x09            valueStart = i;\n\x09            escaping = false;\n\x09            continue;\n\x09          }\n\x09          value += str.slice(valueStart\x2C i);\n\x09          break;\n\x09        }\n\x09        if (escaping) {\n\x09          valueStart = i - 1;\n\x09          escaping = false;\n\x09        }\n\x09        // Invalid unescaped quoted character (malformed)\n\x09        if (QDTEXT[code] !== 1)\n\x09          return;\n\x09      }\n\n\x09      // No end quote (malformed)\n\x09      if (i === str.length)\n\x09        return;\n\n\x09      ++i; // Skip over double quote\n\x09    } else {\n\x09      valueStart = i;\n\x09      // Parse unquoted value\n\x09      for (; i < str.length; ++i) {\n\x09        const code = str.charCodeAt(i);\n\x09        if (TOKEN[code] !== 1) {\n\x09          // No value (malformed)\n\x09          if (i === valueStart)\n\x09            return;\n\x09          break;\n\x09        }\n\x09      }\n\x09      value = str.slice(valueStart\x2C i);\n\x09    }\n\n\x09    name = name.toLowerCase();\n\x09    if (params[name] === undefined)\n\x09      params[name] = value;\n\x09  }\n\n\x09  return params;\n\x09}\n\n\x09function parseDisposition(str\x2C defDecoder) {\n\x09  if (str.length === 0)\n\x09    return;\n\n\x09  const params = Object.create(null);\n\x09  let i = 0;\n\n\x09  for (; i < str.length; ++i) {\n\x09    const code = str.charCodeAt(i);\n\x09    if (TOKEN[code] !== 1) {\n\x09      if (parseDispositionParams(str\x2C i\x2C params\x2C defDecoder) === undefined)\n\x09        return;\n\x09      break;\n\x09    }\n\x09  }\n\n\x09  const type = str.slice(0\x2C i).toLowerCase();\n\n\x09  return { type\x2C params };\n\x09}\n\n\x09function parseDispositionParams(str\x2C i\x2C params\x2C defDecoder) {\n\x09  while (i < str.length) {\n\x09    // Consume whitespace\n\x09    for (; i < str.length; ++i) {\n\x09      const code = str.charCodeAt(i);\n\x09      if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n\x09        break;\n\x09    }\n\n\x09    // Ended on whitespace\n\x09    if (i === str.length)\n\x09      break;\n\n\x09    // Check for malformed parameter\n\x09    if (str.charCodeAt(i++) !== 59/* ';' */)\n\x09      return;\n\n\x09    // Consume whitespace\n\x09    for (; i < str.length; ++i) {\n\x09      const code = str.charCodeAt(i);\n\x09      if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n\x09        break;\n\x09    }\n\n\x09    // Ended on whitespace (malformed)\n\x09    if (i === str.length)\n\x09      return;\n\n\x09    let name;\n\x09    const nameStart = i;\n\x09    // Parse parameter name\n\x09    for (; i < str.length; ++i) {\n\x09      const code = str.charCodeAt(i);\n\x09      if (TOKEN[code] !== 1) {\n\x09        if (code === 61/* '=' */)\n\x09          break;\n\x09        return;\n\x09      }\n\x09    }\n\n\x09    // No value (malformed)\n\x09    if (i === str.length)\n\x09      return;\n\n\x09    let value = '';\n\x09    let valueStart;\n\x09    let charset;\n\x09    //~ let lang;\n\x09    name = str.slice(nameStart\x2C i);\n\x09    if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n\x09      // Extended value\n\n\x09      const charsetStart = ++i;\n\x09      // Parse charset name\n\x09      for (; i < str.length; ++i) {\n\x09        const code = str.charCodeAt(i);\n\x09        if (CHARSET[code] !== 1) {\n\x09          if (code !== 39/* '\\'' */)\n\x09            return;\n\x09          break;\n\x09        }\n\x09      }\n\n\x09      // Incomplete charset (malformed)\n\x09      if (i === str.length)\n\x09        return;\n\n\x09      charset = str.slice(charsetStart\x2C i);\n\x09      ++i; // Skip over the '\\''\n\n\x09      //~ const langStart = ++i;\n\x09      // Parse language name\n\x09      for (; i < str.length; ++i) {\n\x09        const code = str.charCodeAt(i);\n\x09        if (code === 39/* '\\'' */)\n\x09          break;\n\x09      }\n\n\x09      // Incomplete language (malformed)\n\x09      if (i === str.length)\n\x09        return;\n\n\x09      //~ lang = str.slice(langStart\x2C i);\n\x09      ++i; // Skip over the '\\''\n\n\x09      // No value (malformed)\n\x09      if (i === str.length)\n\x09        return;\n\n\x09      valueStart = i;\n\n\x09      let encode = 0;\n\x09      // Parse value\n\x09      for (; i < str.length; ++i) {\n\x09        const code = str.charCodeAt(i);\n\x09        if (EXTENDED_VALUE[code] !== 1) {\n\x09          if (code === 37/* '%' */) {\n\x09            let hexUpper;\n\x09            let hexLower;\n\x09            if (i + 2 < str.length\n\x09                && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n\x09                && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n\x09              const byteVal = (hexUpper << 4) + hexLower;\n\x09              value += str.slice(valueStart\x2C i);\n\x09              value += String.fromCharCode(byteVal);\n\x09              i += 2;\n\x09              valueStart = i + 1;\n\x09              if (byteVal >= 128)\n\x09                encode = 2;\n\x09              else if (encode === 0)\n\x09                encode = 1;\n\x09              continue;\n\x09            }\n\x09            // '%' disallowed in non-percent encoded contexts (malformed)\n\x09            return;\n\x09          }\n\x09          break;\n\x09        }\n\x09      }\n\n\x09      value += str.slice(valueStart\x2C i);\n\x09      value = convertToUTF8(value\x2C charset\x2C encode);\n\x09      if (value === undefined)\n\x09        return;\n\x09    } else {\n\x09      // Non-extended value\n\n\x09      ++i; // Skip over '='\n\n\x09      // No value (malformed)\n\x09      if (i === str.length)\n\x09        return;\n\n\x09      if (str.charCodeAt(i) === 34/* '"' */) {\n\x09        valueStart = ++i;\n\x09        let escaping = false;\n\x09        // Parse quoted value\n\x09        for (; i < str.length; ++i) {\n\x09          const code = str.charCodeAt(i);\n\x09          if (code === 92/* '\\\\' */) {\n\x09            if (escaping) {\n\x09              valueStart = i;\n\x09              escaping = false;\n\x09            } else {\n\x09              value += str.slice(valueStart\x2C i);\n\x09              escaping = true;\n\x09            }\n\x09            continue;\n\x09          }\n\x09          if (code === 34/* '"' */) {\n\x09            if (escaping) {\n\x09              valueStart = i;\n\x09              escaping = false;\n\x09              continue;\n\x09            }\n\x09            value += str.slice(valueStart\x2C i);\n\x09            break;\n\x09          }\n\x09          if (escaping) {\n\x09            valueStart = i - 1;\n\x09            escaping = false;\n\x09          }\n\x09          // Invalid unescaped quoted character (malformed)\n\x09          if (QDTEXT[code] !== 1)\n\x09            return;\n\x09        }\n\n\x09        // No end quote (malformed)\n\x09        if (i === str.length)\n\x09          return;\n\n\x09        ++i; // Skip over double quote\n\x09      } else {\n\x09        valueStart = i;\n\x09        // Parse unquoted value\n\x09        for (; i < str.length; ++i) {\n\x09          const code = str.charCodeAt(i);\n\x09          if (TOKEN[code] !== 1) {\n\x09            // No value (malformed)\n\x09            if (i === valueStart)\n\x09              return;\n\x09            break;\n\x09          }\n\x09        }\n\x09        value = str.slice(valueStart\x2C i);\n\x09      }\n\n\x09      value = defDecoder(value\x2C 2);\n\x09      if (value === undefined)\n\x09        return;\n\x09    }\n\n\x09    name = name.toLowerCase();\n\x09    if (params[name] === undefined)\n\x09      params[name] = value;\n\x09  }\n\n\x09  return params;\n\x09}\n\n\x09function getDecoder(charset) {\n\x09  let lc;\n\x09  while (true) {\n\x09    switch (charset) {\n\x09      case 'utf-8':\n\x09      case 'utf8':\n\x09        return decoders.utf8;\n\x09      case 'latin1':\n\x09      case 'ascii': // TODO: Make these a separate\x2C strict decoder?\n\x09      case 'us-ascii':\n\x09      case 'iso-8859-1':\n\x09      case 'iso8859-1':\n\x09      case 'iso88591':\n\x09      case 'iso_8859-1':\n\x09      case 'windows-1252':\n\x09      case 'iso_8859-1:1987':\n\x09      case 'cp1252':\n\x09      case 'x-cp1252':\n\x09        return decoders.latin1;\n\x09      case 'utf16le':\n\x09      case 'utf-16le':\n\x09      case 'ucs2':\n\x09      case 'ucs-2':\n\x09        return decoders.utf16le;\n\x09      case 'base64':\n\x09        return decoders.base64;\n\x09      default:\n\x09        if (lc === undefined) {\n\x09          lc = true;\n\x09          charset = charset.toLowerCase();\n\x09          continue;\n\x09        }\n\x09        return decoders.other.bind(charset);\n\x09    }\n\x09  }\n\x09}\n\n\x09const decoders = {\n\x09  utf8: (data\x2C hint) => {\n\x09    if (data.length === 0)\n\x09      return '';\n\x09    if (typeof data === 'string') {\n\x09      // If `data` never had any percent-encoded bytes or never had any that\n\x09      // were outside of the ASCII range\x2C then we can safely just return the\n\x09      // input since UTF-8 is ASCII compatible\n\x09      if (hint < 2)\n\x09        return data;\n\n\x09      data = Buffer.from(data\x2C 'latin1');\n\x09    }\n\x09    return data.utf8Slice(0\x2C data.length);\n\x09  }\x2C\n\n\x09  latin1: (data\x2C hint) => {\n\x09    if (data.length === 0)\n\x09      return '';\n\x09    if (typeof data === 'string')\n\x09      return data;\n\x09    return data.latin1Slice(0\x2C data.length);\n\x09  }\x2C\n\n\x09  utf16le: (data\x2C hint) => {\n\x09    if (data.length === 0)\n\x09      return '';\n\x09    if (typeof data === 'string')\n\x09      data = Buffer.from(data\x2C 'latin1');\n\x09    return data.ucs2Slice(0\x2C data.length);\n\x09  }\x2C\n\n\x09  base64: (data\x2C hint) => {\n\x09    if (data.length === 0)\n\x09      return '';\n\x09    if (typeof data === 'string')\n\x09      data = Buffer.from(data\x2C 'latin1');\n\x09    return data.base64Slice(0\x2C data.length);\n\x09  }\x2C\n\n\x09  other: (data\x2C hint) => {\n\x09    if (data.length === 0)\n\x09      return '';\n\x09    if (typeof data === 'string')\n\x09      data = Buffer.from(data\x2C 'latin1');\n\x09    try {\n\x09      const decoder = new TextDecoder(this);\n\x09      return decoder.decode(data);\n\x09    } catch {}\n\x09  }\x2C\n\x09};\n\n\x09function convertToUTF8(data\x2C charset\x2C hint) {\n\x09  const decode = getDecoder(charset);\n\x09  if (decode)\n\x09    return decode(data\x2C hint);\n\x09}\n\n\x09function basename(path) {\n\x09  if (typeof path !== 'string')\n\x09    return '';\n\x09  for (let i = path.length - 1; i >= 0; --i) {\n\x09    switch (path.charCodeAt(i)) {\n\x09      case 0x2F: // '/'\n\x09      case 0x5C: // '\\'\n\x09        path = path.slice(i + 1);\n\x09        return (path === '..' || path === '.' ? '' : path);\n\x09    }\n\x09  }\n\x09  return (path === '..' || path === '.' ? '' : path);\n\x09}\n\n\x09const TOKEN = [\n\x09  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\n\x09  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\n\x09  0\x2C 1\x2C 0\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 0\x2C 1\x2C 1\x2C 0\x2C 1\x2C 1\x2C 0\x2C\n\x09  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\n\x09  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\n\x09  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 1\x2C 1\x2C\n\x09  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 1\x2C\n\x09  1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 1\x2C 0\x2C 1\x2C 0\x2C\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09];\n\n\x09const QDTEXT = [\n\x09  0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 1\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C\n\x09  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\n\x09  1\x2C 1\x2C 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\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 1\x2C 1\x2C 1\x2C\n\x09  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 1\x2C\n\x09  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 0\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09];\n\n\x09const CHARSET = [\n\x09  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\n\x09  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\n\x09  0\x2C 1\x2C 0\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 0\x2C 0\x2C 0\x2C 1\x2C 0\x2C 1\x2C 0\x2C 0\x2C\n\x09  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\n\x09  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\n\x09  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 1\x2C 1\x2C\n\x09  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 1\x2C\n\x09  1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 1\x2C 1\x2C 0\x2C\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09];\n\n\x09const EXTENDED_VALUE = [\n\x09  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\n\x09  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\n\x09  0\x2C 1\x2C 0\x2C 1\x2C 1\x2C 0\x2C 1\x2C 0\x2C 0\x2C 0\x2C 0\x2C 1\x2C 0\x2C 1\x2C 1\x2C 0\x2C\n\x09  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\n\x09  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\n\x09  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 1\x2C 1\x2C\n\x09  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 1\x2C\n\x09  1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 1\x2C 0\x2C 1\x2C 0\x2C\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09];\n\n\x09/* eslint-disable no-multi-spaces */\n\x09const HEX_VALUES = [\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09   0\x2C  1\x2C  2\x2C  3\x2C  4\x2C  5\x2C  6\x2C  7\x2C  8\x2C  9\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C\n\x09  -1\x2C 10\x2C 11\x2C 12\x2C 13\x2C 14\x2C 15\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C\n\x09  -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 -1\x2C\n\x09  -1\x2C 10\x2C 11\x2C 12\x2C 13\x2C 14\x2C 15\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09];\n\x09/* eslint-enable no-multi-spaces */\n\n\x09utils$1 = {\n\x09  basename\x2C\n\x09  convertToUTF8\x2C\n\x09  getDecoder\x2C\n\x09  parseContentType\x2C\n\x09  parseDisposition\x2C\n\x09};\n\x09return utils$1;\n}\n\nvar sbmh;\nvar hasRequiredSbmh;\n\nfunction requireSbmh () {\n\x09if (hasRequiredSbmh) return sbmh;\n\x09hasRequiredSbmh = 1;\n\x09/*\n\x09  Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n\x09  by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n\x09*/\n\x09function memcmp(buf1\x2C pos1\x2C buf2\x2C pos2\x2C num) {\n\x09  for (let i = 0; i < num; ++i) {\n\x09    if (buf1[pos1 + i] !== buf2[pos2 + i])\n\x09      return false;\n\x09  }\n\x09  return true;\n\x09}\n\n\x09class SBMH {\n\x09  constructor(needle\x2C cb) {\n\x09    if (typeof cb !== 'function')\n\x09      throw new Error('Missing match callback');\n\n\x09    if (typeof needle === 'string')\n\x09      needle = Buffer.from(needle);\n\x09    else if (!Buffer.isBuffer(needle))\n\x09      throw new Error(`Expected Buffer for needle\x2C got ${typeof needle}`);\n\n\x09    const needleLen = needle.length;\n\n\x09    this.maxMatches = Infinity;\n\x09    this.matches = 0;\n\n\x09    this._cb = cb;\n\x09    this._lookbehindSize = 0;\n\x09    this._needle = needle;\n\x09    this._bufPos = 0;\n\n\x09    this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n\x09    // Initialize occurrence table.\n\x09    this._occ = [\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C needleLen\x2C\n\x09      needleLen\x2C needleLen\x2C needleLen\x2C needleLen\n\x09    ];\n\n\x09    // Populate occurrence table with analysis of the needle\x2C ignoring the last\n\x09    // letter.\n\x09    if (needleLen > 1) {\n\x09      for (let i = 0; i < needleLen - 1; ++i)\n\x09        this._occ[needle[i]] = needleLen - 1 - i;\n\x09    }\n\x09  }\n\n\x09  reset() {\n\x09    this.matches = 0;\n\x09    this._lookbehindSize = 0;\n\x09    this._bufPos = 0;\n\x09  }\n\n\x09  push(chunk\x2C pos) {\n\x09    let result;\n\x09    if (!Buffer.isBuffer(chunk))\n\x09      chunk = Buffer.from(chunk\x2C 'latin1');\n\x09    const chunkLen = chunk.length;\n\x09    this._bufPos = pos || 0;\n\x09    while (result !== chunkLen && this.matches < this.maxMatches)\n\x09      result = feed(this\x2C chunk);\n\x09    return result;\n\x09  }\n\n\x09  destroy() {\n\x09    const lbSize = this._lookbehindSize;\n\x09    if (lbSize)\n\x09      this._cb(false\x2C this._lookbehind\x2C 0\x2C lbSize\x2C false);\n\x09    this.reset();\n\x09  }\n\x09}\n\n\x09function feed(self\x2C data) {\n\x09  const len = data.length;\n\x09  const needle = self._needle;\n\x09  const needleLen = needle.length;\n\n\x09  // Positive: points to a position in `data`\n\x09  //           pos == 3 points to data[3]\n\x09  // Negative: points to a position in the lookbehind buffer\n\x09  //           pos == -2 points to lookbehind[lookbehindSize - 2]\n\x09  let pos = -self._lookbehindSize;\n\x09  const lastNeedleCharPos = needleLen - 1;\n\x09  const lastNeedleChar = needle[lastNeedleCharPos];\n\x09  const end = len - needleLen;\n\x09  const occ = self._occ;\n\x09  const lookbehind = self._lookbehind;\n\n\x09  if (pos < 0) {\n\x09    // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n\x09    // search with character lookup code that considers both the\n\x09    // lookbehind buffer and the current round's haystack data.\n\x09    //\n\x09    // Loop until\n\x09    //   there is a match.\n\x09    // or until\n\x09    //   we've moved past the position that requires the\n\x09    //   lookbehind buffer. In this case we switch to the\n\x09    //   optimized loop.\n\x09    // or until\n\x09    //   the character to look at lies outside the haystack.\n\x09    while (pos < 0 && pos <= end) {\n\x09      const nextPos = pos + lastNeedleCharPos;\n\x09      const ch = (nextPos < 0\n\x09                  ? lookbehind[self._lookbehindSize + nextPos]\n\x09                  : data[nextPos]);\n\n\x09      if (ch === lastNeedleChar\n\x09          && matchNeedle(self\x2C data\x2C pos\x2C lastNeedleCharPos)) {\n\x09        self._lookbehindSize = 0;\n\x09        ++self.matches;\n\x09        if (pos > -self._lookbehindSize)\n\x09          self._cb(true\x2C lookbehind\x2C 0\x2C self._lookbehindSize + pos\x2C false);\n\x09        else\n\x09          self._cb(true\x2C undefined\x2C 0\x2C 0\x2C true);\n\n\x09        return (self._bufPos = pos + needleLen);\n\x09      }\n\n\x09      pos += occ[ch];\n\x09    }\n\n\x09    // No match.\n\n\x09    // There's too few data for Boyer-Moore-Horspool to run\x2C\n\x09    // so let's use a different algorithm to skip as much as\n\x09    // we can.\n\x09    // Forward pos until\n\x09    //   the trailing part of lookbehind + data\n\x09    //   looks like the beginning of the needle\n\x09    // or until\n\x09    //   pos == 0\n\x09    while (pos < 0 && !matchNeedle(self\x2C data\x2C pos\x2C len - pos))\n\x09      ++pos;\n\n\x09    if (pos < 0) {\n\x09      // Cut off part of the lookbehind buffer that has\n\x09      // been processed and append the entire haystack\n\x09      // into it.\n\x09      const bytesToCutOff = self._lookbehindSize + pos;\n\n\x09      if (bytesToCutOff > 0) {\n\x09        // The cut off data is guaranteed not to contain the needle.\n\x09        self._cb(false\x2C lookbehind\x2C 0\x2C bytesToCutOff\x2C false);\n\x09      }\n\n\x09      self._lookbehindSize -= bytesToCutOff;\n\x09      lookbehind.copy(lookbehind\x2C 0\x2C bytesToCutOff\x2C self._lookbehindSize);\n\x09      lookbehind.set(data\x2C self._lookbehindSize);\n\x09      self._lookbehindSize += len;\n\n\x09      self._bufPos = len;\n\x09      return len;\n\x09    }\n\n\x09    // Discard lookbehind buffer.\n\x09    self._cb(false\x2C lookbehind\x2C 0\x2C self._lookbehindSize\x2C false);\n\x09    self._lookbehindSize = 0;\n\x09  }\n\n\x09  pos += self._bufPos;\n\n\x09  const firstNeedleChar = needle[0];\n\n\x09  // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n\x09  // search with optimized character lookup code that only considers\n\x09  // the current round's haystack data.\n\x09  while (pos <= end) {\n\x09    const ch = data[pos + lastNeedleCharPos];\n\n\x09    if (ch === lastNeedleChar\n\x09        && data[pos] === firstNeedleChar\n\x09        && memcmp(needle\x2C 0\x2C data\x2C pos\x2C lastNeedleCharPos)) {\n\x09      ++self.matches;\n\x09      if (pos > 0)\n\x09        self._cb(true\x2C data\x2C self._bufPos\x2C pos\x2C true);\n\x09      else\n\x09        self._cb(true\x2C undefined\x2C 0\x2C 0\x2C true);\n\n\x09      return (self._bufPos = pos + needleLen);\n\x09    }\n\n\x09    pos += occ[ch];\n\x09  }\n\n\x09  // There was no match. If there's trailing haystack data that we cannot\n\x09  // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n\x09  // data is less than the needle size) then match using a modified\n\x09  // algorithm that starts matching from the beginning instead of the end.\n\x09  // Whatever trailing data is left after running this algorithm is added to\n\x09  // the lookbehind buffer.\n\x09  while (pos < len) {\n\x09    if (data[pos] !== firstNeedleChar\n\x09        || !memcmp(data\x2C pos\x2C needle\x2C 0\x2C len - pos)) {\n\x09      ++pos;\n\x09      continue;\n\x09    }\n\x09    data.copy(lookbehind\x2C 0\x2C pos\x2C len);\n\x09    self._lookbehindSize = len - pos;\n\x09    break;\n\x09  }\n\n\x09  // Everything until `pos` is guaranteed not to contain needle data.\n\x09  if (pos > 0)\n\x09    self._cb(false\x2C data\x2C self._bufPos\x2C pos < len ? pos : len\x2C true);\n\n\x09  self._bufPos = len;\n\x09  return len;\n\x09}\n\n\x09function matchNeedle(self\x2C data\x2C pos\x2C len) {\n\x09  const lb = self._lookbehind;\n\x09  const lbSize = self._lookbehindSize;\n\x09  const needle = self._needle;\n\n\x09  for (let i = 0; i < len; ++i\x2C ++pos) {\n\x09    const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n\x09    if (ch !== needle[i])\n\x09      return false;\n\x09  }\n\x09  return true;\n\x09}\n\n\x09sbmh = SBMH;\n\x09return sbmh;\n}\n\nvar multipart;\nvar hasRequiredMultipart;\n\nfunction requireMultipart () {\n\x09if (hasRequiredMultipart) return multipart;\n\x09hasRequiredMultipart = 1;\n\n\x09const { Readable\x2C Writable } = require$$0$1;\n\n\x09const StreamSearch = requireSbmh();\n\n\x09const {\n\x09  basename\x2C\n\x09  convertToUTF8\x2C\n\x09  getDecoder\x2C\n\x09  parseContentType\x2C\n\x09  parseDisposition\x2C\n\x09} = requireUtils$1();\n\n\x09const BUF_CRLF = Buffer.from('\\r\\n');\n\x09const BUF_CR = Buffer.from('\\r');\n\x09const BUF_DASH = Buffer.from('-');\n\n\x09function noop() {}\n\n\x09const MAX_HEADER_PAIRS = 2000; // From node\n\x09const MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\n\x09const HPARSER_NAME = 0;\n\x09const HPARSER_PRE_OWS = 1;\n\x09const HPARSER_VALUE = 2;\n\x09class HeaderParser {\n\x09  constructor(cb) {\n\x09    this.header = Object.create(null);\n\x09    this.pairCount = 0;\n\x09    this.byteCount = 0;\n\x09    this.state = HPARSER_NAME;\n\x09    this.name = '';\n\x09    this.value = '';\n\x09    this.crlf = 0;\n\x09    this.cb = cb;\n\x09  }\n\n\x09  reset() {\n\x09    this.header = Object.create(null);\n\x09    this.pairCount = 0;\n\x09    this.byteCount = 0;\n\x09    this.state = HPARSER_NAME;\n\x09    this.name = '';\n\x09    this.value = '';\n\x09    this.crlf = 0;\n\x09  }\n\n\x09  push(chunk\x2C pos\x2C end) {\n\x09    let start = pos;\n\x09    while (pos < end) {\n\x09      switch (this.state) {\n\x09        case HPARSER_NAME: {\n\x09          let done = false;\n\x09          for (; pos < end; ++pos) {\n\x09            if (this.byteCount === MAX_HEADER_SIZE)\n\x09              return -1;\n\x09            ++this.byteCount;\n\x09            const code = chunk[pos];\n\x09            if (TOKEN[code] !== 1) {\n\x09              if (code !== 58/* ':' */)\n\x09                return -1;\n\x09              this.name += chunk.latin1Slice(start\x2C pos);\n\x09              if (this.name.length === 0)\n\x09                return -1;\n\x09              ++pos;\n\x09              done = true;\n\x09              this.state = HPARSER_PRE_OWS;\n\x09              break;\n\x09            }\n\x09          }\n\x09          if (!done) {\n\x09            this.name += chunk.latin1Slice(start\x2C pos);\n\x09            break;\n\x09          }\n\x09          // FALLTHROUGH\n\x09        }\n\x09        case HPARSER_PRE_OWS: {\n\x09          // Skip optional whitespace\n\x09          let done = false;\n\x09          for (; pos < end; ++pos) {\n\x09            if (this.byteCount === MAX_HEADER_SIZE)\n\x09              return -1;\n\x09            ++this.byteCount;\n\x09            const code = chunk[pos];\n\x09            if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n\x09              start = pos;\n\x09              done = true;\n\x09              this.state = HPARSER_VALUE;\n\x09              break;\n\x09            }\n\x09          }\n\x09          if (!done)\n\x09            break;\n\x09          // FALLTHROUGH\n\x09        }\n\x09        case HPARSER_VALUE:\n\x09          switch (this.crlf) {\n\x09            case 0: // Nothing yet\n\x09              for (; pos < end; ++pos) {\n\x09                if (this.byteCount === MAX_HEADER_SIZE)\n\x09                  return -1;\n\x09                ++this.byteCount;\n\x09                const code = chunk[pos];\n\x09                if (FIELD_VCHAR[code] !== 1) {\n\x09                  if (code !== 13/* '\\r' */)\n\x09                    return -1;\n\x09                  ++this.crlf;\n\x09                  break;\n\x09                }\n\x09              }\n\x09              this.value += chunk.latin1Slice(start\x2C pos++);\n\x09              break;\n\x09            case 1: // Received CR\n\x09              if (this.byteCount === MAX_HEADER_SIZE)\n\x09                return -1;\n\x09              ++this.byteCount;\n\x09              if (chunk[pos++] !== 10/* '\\n' */)\n\x09                return -1;\n\x09              ++this.crlf;\n\x09              break;\n\x09            case 2: { // Received CR LF\n\x09              if (this.byteCount === MAX_HEADER_SIZE)\n\x09                return -1;\n\x09              ++this.byteCount;\n\x09              const code = chunk[pos];\n\x09              if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n\x09                // Folded value\n\x09                start = pos;\n\x09                this.crlf = 0;\n\x09              } else {\n\x09                if (++this.pairCount < MAX_HEADER_PAIRS) {\n\x09                  this.name = this.name.toLowerCase();\n\x09                  if (this.header[this.name] === undefined)\n\x09                    this.header[this.name] = [this.value];\n\x09                  else\n\x09                    this.header[this.name].push(this.value);\n\x09                }\n\x09                if (code === 13/* '\\r' */) {\n\x09                  ++this.crlf;\n\x09                  ++pos;\n\x09                } else {\n\x09                  // Assume start of next header field name\n\x09                  start = pos;\n\x09                  this.crlf = 0;\n\x09                  this.state = HPARSER_NAME;\n\x09                  this.name = '';\n\x09                  this.value = '';\n\x09                }\n\x09              }\n\x09              break;\n\x09            }\n\x09            case 3: { // Received CR LF CR\n\x09              if (this.byteCount === MAX_HEADER_SIZE)\n\x09                return -1;\n\x09              ++this.byteCount;\n\x09              if (chunk[pos++] !== 10/* '\\n' */)\n\x09                return -1;\n\x09              // End of header\n\x09              const header = this.header;\n\x09              this.reset();\n\x09              this.cb(header);\n\x09              return pos;\n\x09            }\n\x09          }\n\x09          break;\n\x09      }\n\x09    }\n\n\x09    return pos;\n\x09  }\n\x09}\n\n\x09class FileStream extends Readable {\n\x09  constructor(opts\x2C owner) {\n\x09    super(opts);\n\x09    this.truncated = false;\n\x09    this._readcb = null;\n\x09    this.once('end'\x2C () => {\n\x09      // We need to make sure that we call any outstanding _writecb() that is\n\x09      // associated with this file so that processing of the rest of the form\n\x09      // can continue. This may not happen if the file stream ends right after\n\x09      // backpressure kicks in\x2C so we force it here.\n\x09      this._read();\n\x09      if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n\x09        const cb = owner._finalcb;\n\x09        owner._finalcb = null;\n\x09        // Make sure other 'end' event handlers get a chance to be executed\n\x09        // before busboy's 'finish' event is emitted\n\x09        process.nextTick(cb);\n\x09      }\n\x09    });\n\x09  }\n\x09  _read(n) {\n\x09    const cb = this._readcb;\n\x09    if (cb) {\n\x09      this._readcb = null;\n\x09      cb();\n\x09    }\n\x09  }\n\x09}\n\n\x09const ignoreData = {\n\x09  push: (chunk\x2C pos) => {}\x2C\n\x09  destroy: () => {}\x2C\n\x09};\n\n\x09function callAndUnsetCb(self\x2C err) {\n\x09  const cb = self._writecb;\n\x09  self._writecb = null;\n\x09  if (err)\n\x09    self.destroy(err);\n\x09  else if (cb)\n\x09    cb();\n\x09}\n\n\x09function nullDecoder(val\x2C hint) {\n\x09  return val;\n\x09}\n\n\x09class Multipart extends Writable {\n\x09  constructor(cfg) {\n\x09    const streamOpts = {\n\x09      autoDestroy: true\x2C\n\x09      emitClose: true\x2C\n\x09      highWaterMark: (typeof cfg.highWaterMark === 'number'\n\x09                      ? cfg.highWaterMark\n\x09                      : undefined)\x2C\n\x09    };\n\x09    super(streamOpts);\n\n\x09    if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n\x09      throw new Error('Multipart: Boundary not found');\n\n\x09    const boundary = cfg.conType.params.boundary;\n\x09    const paramDecoder = (typeof cfg.defParamCharset === 'string'\n\x09                            && cfg.defParamCharset\n\x09                          ? getDecoder(cfg.defParamCharset)\n\x09                          : nullDecoder);\n\x09    const defCharset = (cfg.defCharset || 'utf8');\n\x09    const preservePath = cfg.preservePath;\n\x09    const fileOpts = {\n\x09      autoDestroy: true\x2C\n\x09      emitClose: true\x2C\n\x09      highWaterMark: (typeof cfg.fileHwm === 'number'\n\x09                      ? cfg.fileHwm\n\x09                      : undefined)\x2C\n\x09    };\n\n\x09    const limits = cfg.limits;\n\x09    const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n\x09                            ? limits.fieldSize\n\x09                            : 1 * 1024 * 1024);\n\x09    const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n\x09                           ? limits.fileSize\n\x09                           : Infinity);\n\x09    const filesLimit = (limits && typeof limits.files === 'number'\n\x09                        ? limits.files\n\x09                        : Infinity);\n\x09    const fieldsLimit = (limits && typeof limits.fields === 'number'\n\x09                         ? limits.fields\n\x09                         : Infinity);\n\x09    const partsLimit = (limits && typeof limits.parts === 'number'\n\x09                        ? limits.parts\n\x09                        : Infinity);\n\n\x09    let parts = -1; // Account for initial boundary\n\x09    let fields = 0;\n\x09    let files = 0;\n\x09    let skipPart = false;\n\n\x09    this._fileEndsLeft = 0;\n\x09    this._fileStream = undefined;\n\x09    this._complete = false;\n\x09    let fileSize = 0;\n\n\x09    let field;\n\x09    let fieldSize = 0;\n\x09    let partCharset;\n\x09    let partEncoding;\n\x09    let partType;\n\x09    let partName;\n\x09    let partTruncated = false;\n\n\x09    let hitFilesLimit = false;\n\x09    let hitFieldsLimit = false;\n\n\x09    this._hparser = null;\n\x09    const hparser = new HeaderParser((header) => {\n\x09      this._hparser = null;\n\x09      skipPart = false;\n\n\x09      partType = 'text/plain';\n\x09      partCharset = defCharset;\n\x09      partEncoding = '7bit';\n\x09      partName = undefined;\n\x09      partTruncated = false;\n\n\x09      let filename;\n\x09      if (!header['content-disposition']) {\n\x09        skipPart = true;\n\x09        return;\n\x09      }\n\n\x09      const disp = parseDisposition(header['content-disposition'][0]\x2C\n\x09                                    paramDecoder);\n\x09      if (!disp || disp.type !== 'form-data') {\n\x09        skipPart = true;\n\x09        return;\n\x09      }\n\n\x09      if (disp.params) {\n\x09        if (disp.params.name)\n\x09          partName = disp.params.name;\n\n\x09        if (disp.params['filename*'])\n\x09          filename = disp.params['filename*'];\n\x09        else if (disp.params.filename)\n\x09          filename = disp.params.filename;\n\n\x09        if (filename !== undefined && !preservePath)\n\x09          filename = basename(filename);\n\x09      }\n\n\x09      if (header['content-type']) {\n\x09        const conType = parseContentType(header['content-type'][0]);\n\x09        if (conType) {\n\x09          partType = `${conType.type}/${conType.subtype}`;\n\x09          if (conType.params && typeof conType.params.charset === 'string')\n\x09            partCharset = conType.params.charset.toLowerCase();\n\x09        }\n\x09      }\n\n\x09      if (header['content-transfer-encoding'])\n\x09        partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n\x09      if (partType === 'application/octet-stream' || filename !== undefined) {\n\x09        // File\n\n\x09        if (files === filesLimit) {\n\x09          if (!hitFilesLimit) {\n\x09            hitFilesLimit = true;\n\x09            this.emit('filesLimit');\n\x09          }\n\x09          skipPart = true;\n\x09          return;\n\x09        }\n\x09        ++files;\n\n\x09        if (this.listenerCount('file') === 0) {\n\x09          skipPart = true;\n\x09          return;\n\x09        }\n\n\x09        fileSize = 0;\n\x09        this._fileStream = new FileStream(fileOpts\x2C this);\n\x09        ++this._fileEndsLeft;\n\x09        this.emit(\n\x09          'file'\x2C\n\x09          partName\x2C\n\x09          this._fileStream\x2C\n\x09          { filename\x2C\n\x09            encoding: partEncoding\x2C\n\x09            mimeType: partType }\n\x09        );\n\x09      } else {\n\x09        // Non-file\n\n\x09        if (fields === fieldsLimit) {\n\x09          if (!hitFieldsLimit) {\n\x09            hitFieldsLimit = true;\n\x09            this.emit('fieldsLimit');\n\x09          }\n\x09          skipPart = true;\n\x09          return;\n\x09        }\n\x09        ++fields;\n\n\x09        if (this.listenerCount('field') === 0) {\n\x09          skipPart = true;\n\x09          return;\n\x09        }\n\n\x09        field = [];\n\x09        fieldSize = 0;\n\x09      }\n\x09    });\n\n\x09    let matchPostBoundary = 0;\n\x09    const ssCb = (isMatch\x2C data\x2C start\x2C end\x2C isDataSafe) => {\n\x09retrydata:\n\x09      while (data) {\n\x09        if (this._hparser !== null) {\n\x09          const ret = this._hparser.push(data\x2C start\x2C end);\n\x09          if (ret === -1) {\n\x09            this._hparser = null;\n\x09            hparser.reset();\n\x09            this.emit('error'\x2C new Error('Malformed part header'));\n\x09            break;\n\x09          }\n\x09          start = ret;\n\x09        }\n\n\x09        if (start === end)\n\x09          break;\n\n\x09        if (matchPostBoundary !== 0) {\n\x09          if (matchPostBoundary === 1) {\n\x09            switch (data[start]) {\n\x09              case 45: // '-'\n\x09                // Try matching '--' after boundary\n\x09                matchPostBoundary = 2;\n\x09                ++start;\n\x09                break;\n\x09              case 13: // '\\r'\n\x09                // Try matching CR LF before header\n\x09                matchPostBoundary = 3;\n\x09                ++start;\n\x09                break;\n\x09              default:\n\x09                matchPostBoundary = 0;\n\x09            }\n\x09            if (start === end)\n\x09              return;\n\x09          }\n\n\x09          if (matchPostBoundary === 2) {\n\x09            matchPostBoundary = 0;\n\x09            if (data[start] === 45/* '-' */) {\n\x09              // End of multipart data\n\x09              this._complete = true;\n\x09              this._bparser = ignoreData;\n\x09              return;\n\x09            }\n\x09            // We saw something other than '-'\x2C so put the dash we consumed\n\x09            // "back"\n\x09            const writecb = this._writecb;\n\x09            this._writecb = noop;\n\x09            ssCb(false\x2C BUF_DASH\x2C 0\x2C 1\x2C false);\n\x09            this._writecb = writecb;\n\x09          } else if (matchPostBoundary === 3) {\n\x09            matchPostBoundary = 0;\n\x09            if (data[start] === 10/* '\\n' */) {\n\x09              ++start;\n\x09              if (parts >= partsLimit)\n\x09                break;\n\x09              // Prepare the header parser\n\x09              this._hparser = hparser;\n\x09              if (start === end)\n\x09                break;\n\x09              // Process the remaining data as a header\n\x09              continue retrydata;\n\x09            } else {\n\x09              // We saw something other than LF\x2C so put the CR we consumed\n\x09              // "back"\n\x09              const writecb = this._writecb;\n\x09              this._writecb = noop;\n\x09              ssCb(false\x2C BUF_CR\x2C 0\x2C 1\x2C false);\n\x09              this._writecb = writecb;\n\x09            }\n\x09          }\n\x09        }\n\n\x09        if (!skipPart) {\n\x09          if (this._fileStream) {\n\x09            let chunk;\n\x09            const actualLen = Math.min(end - start\x2C fileSizeLimit - fileSize);\n\x09            if (!isDataSafe) {\n\x09              chunk = Buffer.allocUnsafe(actualLen);\n\x09              data.copy(chunk\x2C 0\x2C start\x2C start + actualLen);\n\x09            } else {\n\x09              chunk = data.slice(start\x2C start + actualLen);\n\x09            }\n\n\x09            fileSize += chunk.length;\n\x09            if (fileSize === fileSizeLimit) {\n\x09              if (chunk.length > 0)\n\x09                this._fileStream.push(chunk);\n\x09              this._fileStream.emit('limit');\n\x09              this._fileStream.truncated = true;\n\x09              skipPart = true;\n\x09            } else if (!this._fileStream.push(chunk)) {\n\x09              if (this._writecb)\n\x09                this._fileStream._readcb = this._writecb;\n\x09              this._writecb = null;\n\x09            }\n\x09          } else if (field !== undefined) {\n\x09            let chunk;\n\x09            const actualLen = Math.min(\n\x09              end - start\x2C\n\x09              fieldSizeLimit - fieldSize\n\x09            );\n\x09            if (!isDataSafe) {\n\x09              chunk = Buffer.allocUnsafe(actualLen);\n\x09              data.copy(chunk\x2C 0\x2C start\x2C start + actualLen);\n\x09            } else {\n\x09              chunk = data.slice(start\x2C start + actualLen);\n\x09            }\n\n\x09            fieldSize += actualLen;\n\x09            field.push(chunk);\n\x09            if (fieldSize === fieldSizeLimit) {\n\x09              skipPart = true;\n\x09              partTruncated = true;\n\x09            }\n\x09          }\n\x09        }\n\n\x09        break;\n\x09      }\n\n\x09      if (isMatch) {\n\x09        matchPostBoundary = 1;\n\n\x09        if (this._fileStream) {\n\x09          // End the active file stream if the previous part was a file\n\x09          this._fileStream.push(null);\n\x09          this._fileStream = null;\n\x09        } else if (field !== undefined) {\n\x09          let data;\n\x09          switch (field.length) {\n\x09            case 0:\n\x09              data = '';\n\x09              break;\n\x09            case 1:\n\x09              data = convertToUTF8(field[0]\x2C partCharset\x2C 0);\n\x09              break;\n\x09            default:\n\x09              data = convertToUTF8(\n\x09                Buffer.concat(field\x2C fieldSize)\x2C\n\x09                partCharset\x2C\n\x09                0\n\x09              );\n\x09          }\n\x09          field = undefined;\n\x09          fieldSize = 0;\n\x09          this.emit(\n\x09            'field'\x2C\n\x09            partName\x2C\n\x09            data\x2C\n\x09            { nameTruncated: false\x2C\n\x09              valueTruncated: partTruncated\x2C\n\x09              encoding: partEncoding\x2C\n\x09              mimeType: partType }\n\x09          );\n\x09        }\n\n\x09        if (++parts === partsLimit)\n\x09          this.emit('partsLimit');\n\x09      }\n\x09    };\n\x09    this._bparser = new StreamSearch(`\\r\\n--${boundary}`\x2C ssCb);\n\n\x09    this._writecb = null;\n\x09    this._finalcb = null;\n\n\x09    // Just in case there is no preamble\n\x09    this.write(BUF_CRLF);\n\x09  }\n\n\x09  static detect(conType) {\n\x09    return (conType.type === 'multipart' && conType.subtype === 'form-data');\n\x09  }\n\n\x09  _write(chunk\x2C enc\x2C cb) {\n\x09    this._writecb = cb;\n\x09    this._bparser.push(chunk\x2C 0);\n\x09    if (this._writecb)\n\x09      callAndUnsetCb(this);\n\x09  }\n\n\x09  _destroy(err\x2C cb) {\n\x09    this._hparser = null;\n\x09    this._bparser = ignoreData;\n\x09    if (!err)\n\x09      err = checkEndState(this);\n\x09    const fileStream = this._fileStream;\n\x09    if (fileStream) {\n\x09      this._fileStream = null;\n\x09      fileStream.destroy(err);\n\x09    }\n\x09    cb(err);\n\x09  }\n\n\x09  _final(cb) {\n\x09    this._bparser.destroy();\n\x09    if (!this._complete)\n\x09      return cb(new Error('Unexpected end of form'));\n\x09    if (this._fileEndsLeft)\n\x09      this._finalcb = finalcb.bind(null\x2C this\x2C cb);\n\x09    else\n\x09      finalcb(this\x2C cb);\n\x09  }\n\x09}\n\n\x09function finalcb(self\x2C cb\x2C err) {\n\x09  if (err)\n\x09    return cb(err);\n\x09  err = checkEndState(self);\n\x09  cb(err);\n\x09}\n\n\x09function checkEndState(self) {\n\x09  if (self._hparser)\n\x09    return new Error('Malformed part header');\n\x09  const fileStream = self._fileStream;\n\x09  if (fileStream) {\n\x09    self._fileStream = null;\n\x09    fileStream.destroy(new Error('Unexpected end of file'));\n\x09  }\n\x09  if (!self._complete)\n\x09    return new Error('Unexpected end of form');\n\x09}\n\n\x09const TOKEN = [\n\x09  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\n\x09  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\n\x09  0\x2C 1\x2C 0\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 0\x2C 1\x2C 1\x2C 0\x2C 1\x2C 1\x2C 0\x2C\n\x09  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\n\x09  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\n\x09  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 1\x2C 1\x2C\n\x09  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 1\x2C\n\x09  1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 1\x2C 0\x2C 1\x2C 0\x2C\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09  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\n\x09];\n\n\x09const FIELD_VCHAR = [\n\x09  0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 1\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C\n\x09  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\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 0\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09  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 1\x2C\n\x09];\n\n\x09multipart = Multipart;\n\x09return multipart;\n}\n\nvar urlencoded;\nvar hasRequiredUrlencoded;\n\nfunction requireUrlencoded () {\n\x09if (hasRequiredUrlencoded) return urlencoded;\n\x09hasRequiredUrlencoded = 1;\n\n\x09const { Writable } = require$$0$1;\n\n\x09const { getDecoder } = requireUtils$1();\n\n\x09class URLEncoded extends Writable {\n\x09  constructor(cfg) {\n\x09    const streamOpts = {\n\x09      autoDestroy: true\x2C\n\x09      emitClose: true\x2C\n\x09      highWaterMark: (typeof cfg.highWaterMark === 'number'\n\x09                      ? cfg.highWaterMark\n\x09                      : undefined)\x2C\n\x09    };\n\x09    super(streamOpts);\n\n\x09    let charset = (cfg.defCharset || 'utf8');\n\x09    if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n\x09      charset = cfg.conType.params.charset;\n\n\x09    this.charset = charset;\n\n\x09    const limits = cfg.limits;\n\x09    this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n\x09                           ? limits.fieldSize\n\x09                           : 1 * 1024 * 1024);\n\x09    this.fieldsLimit = (limits && typeof limits.fields === 'number'\n\x09                        ? limits.fields\n\x09                        : Infinity);\n\x09    this.fieldNameSizeLimit = (\n\x09      limits && typeof limits.fieldNameSize === 'number'\n\x09      ? limits.fieldNameSize\n\x09      : 100\n\x09    );\n\n\x09    this._inKey = true;\n\x09    this._keyTrunc = false;\n\x09    this._valTrunc = false;\n\x09    this._bytesKey = 0;\n\x09    this._bytesVal = 0;\n\x09    this._fields = 0;\n\x09    this._key = '';\n\x09    this._val = '';\n\x09    this._byte = -2;\n\x09    this._lastPos = 0;\n\x09    this._encode = 0;\n\x09    this._decoder = getDecoder(charset);\n\x09  }\n\n\x09  static detect(conType) {\n\x09    return (conType.type === 'application'\n\x09            && conType.subtype === 'x-www-form-urlencoded');\n\x09  }\n\n\x09  _write(chunk\x2C enc\x2C cb) {\n\x09    if (this._fields >= this.fieldsLimit)\n\x09      return cb();\n\n\x09    let i = 0;\n\x09    const len = chunk.length;\n\x09    this._lastPos = 0;\n\n\x09    // Check if we last ended mid-percent-encoded byte\n\x09    if (this._byte !== -2) {\n\x09      i = readPctEnc(this\x2C chunk\x2C i\x2C len);\n\x09      if (i === -1)\n\x09        return cb(new Error('Malformed urlencoded form'));\n\x09      if (i >= len)\n\x09        return cb();\n\x09      if (this._inKey)\n\x09        ++this._bytesKey;\n\x09      else\n\x09        ++this._bytesVal;\n\x09    }\n\n\x09main:\n\x09    while (i < len) {\n\x09      if (this._inKey) {\n\x09        // Parsing key\n\n\x09        i = skipKeyBytes(this\x2C chunk\x2C i\x2C len);\n\n\x09        while (i < len) {\n\x09          switch (chunk[i]) {\n\x09            case 61: // '='\n\x09              if (this._lastPos < i)\n\x09                this._key += chunk.latin1Slice(this._lastPos\x2C i);\n\x09              this._lastPos = ++i;\n\x09              this._key = this._decoder(this._key\x2C this._encode);\n\x09              this._encode = 0;\n\x09              this._inKey = false;\n\x09              continue main;\n\x09            case 38: // '&'\n\x09              if (this._lastPos < i)\n\x09                this._key += chunk.latin1Slice(this._lastPos\x2C i);\n\x09              this._lastPos = ++i;\n\x09              this._key = this._decoder(this._key\x2C this._encode);\n\x09              this._encode = 0;\n\x09              if (this._bytesKey > 0) {\n\x09                this.emit(\n\x09                  'field'\x2C\n\x09                  this._key\x2C\n\x09                  ''\x2C\n\x09                  { nameTruncated: this._keyTrunc\x2C\n\x09                    valueTruncated: false\x2C\n\x09                    encoding: this.charset\x2C\n\x09                    mimeType: 'text/plain' }\n\x09                );\n\x09              }\n\x09              this._key = '';\n\x09              this._val = '';\n\x09              this._keyTrunc = false;\n\x09              this._valTrunc = false;\n\x09              this._bytesKey = 0;\n\x09              this._bytesVal = 0;\n\x09              if (++this._fields >= this.fieldsLimit) {\n\x09                this.emit('fieldsLimit');\n\x09                return cb();\n\x09              }\n\x09              continue;\n\x09            case 43: // '+'\n\x09              if (this._lastPos < i)\n\x09                this._key += chunk.latin1Slice(this._lastPos\x2C i);\n\x09              this._key += ' ';\n\x09              this._lastPos = i + 1;\n\x09              break;\n\x09            case 37: // '%'\n\x09              if (this._encode === 0)\n\x09                this._encode = 1;\n\x09              if (this._lastPos < i)\n\x09                this._key += chunk.latin1Slice(this._lastPos\x2C i);\n\x09              this._lastPos = i + 1;\n\x09              this._byte = -1;\n\x09              i = readPctEnc(this\x2C chunk\x2C i + 1\x2C len);\n\x09              if (i === -1)\n\x09                return cb(new Error('Malformed urlencoded form'));\n\x09              if (i >= len)\n\x09                return cb();\n\x09              ++this._bytesKey;\n\x09              i = skipKeyBytes(this\x2C chunk\x2C i\x2C len);\n\x09              continue;\n\x09          }\n\x09          ++i;\n\x09          ++this._bytesKey;\n\x09          i = skipKeyBytes(this\x2C chunk\x2C i\x2C len);\n\x09        }\n\x09        if (this._lastPos < i)\n\x09          this._key += chunk.latin1Slice(this._lastPos\x2C i);\n\x09      } else {\n\x09        // Parsing value\n\n\x09        i = skipValBytes(this\x2C chunk\x2C i\x2C len);\n\n\x09        while (i < len) {\n\x09          switch (chunk[i]) {\n\x09            case 38: // '&'\n\x09              if (this._lastPos < i)\n\x09                this._val += chunk.latin1Slice(this._lastPos\x2C i);\n\x09              this._lastPos = ++i;\n\x09              this._inKey = true;\n\x09              this._val = this._decoder(this._val\x2C this._encode);\n\x09              this._encode = 0;\n\x09              if (this._bytesKey > 0 || this._bytesVal > 0) {\n\x09                this.emit(\n\x09                  'field'\x2C\n\x09                  this._key\x2C\n\x09                  this._val\x2C\n\x09                  { nameTruncated: this._keyTrunc\x2C\n\x09                    valueTruncated: this._valTrunc\x2C\n\x09                    encoding: this.charset\x2C\n\x09                    mimeType: 'text/plain' }\n\x09                );\n\x09              }\n\x09              this._key = '';\n\x09              this._val = '';\n\x09              this._keyTrunc = false;\n\x09              this._valTrunc = false;\n\x09              this._bytesKey = 0;\n\x09              this._bytesVal = 0;\n\x09              if (++this._fields >= this.fieldsLimit) {\n\x09                this.emit('fieldsLimit');\n\x09                return cb();\n\x09              }\n\x09              continue main;\n\x09            case 43: // '+'\n\x09              if (this._lastPos < i)\n\x09                this._val += chunk.latin1Slice(this._lastPos\x2C i);\n\x09              this._val += ' ';\n\x09              this._lastPos = i + 1;\n\x09              break;\n\x09            case 37: // '%'\n\x09              if (this._encode === 0)\n\x09                this._encode = 1;\n\x09              if (this._lastPos < i)\n\x09                this._val += chunk.latin1Slice(this._lastPos\x2C i);\n\x09              this._lastPos = i + 1;\n\x09              this._byte = -1;\n\x09              i = readPctEnc(this\x2C chunk\x2C i + 1\x2C len);\n\x09              if (i === -1)\n\x09                return cb(new Error('Malformed urlencoded form'));\n\x09              if (i >= len)\n\x09                return cb();\n\x09              ++this._bytesVal;\n\x09              i = skipValBytes(this\x2C chunk\x2C i\x2C len);\n\x09              continue;\n\x09          }\n\x09          ++i;\n\x09          ++this._bytesVal;\n\x09          i = skipValBytes(this\x2C chunk\x2C i\x2C len);\n\x09        }\n\x09        if (this._lastPos < i)\n\x09          this._val += chunk.latin1Slice(this._lastPos\x2C i);\n\x09      }\n\x09    }\n\n\x09    cb();\n\x09  }\n\n\x09  _final(cb) {\n\x09    if (this._byte !== -2)\n\x09      return cb(new Error('Malformed urlencoded form'));\n\x09    if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n\x09      if (this._inKey)\n\x09        this._key = this._decoder(this._key\x2C this._encode);\n\x09      else\n\x09        this._val = this._decoder(this._val\x2C this._encode);\n\x09      this.emit(\n\x09        'field'\x2C\n\x09        this._key\x2C\n\x09        this._val\x2C\n\x09        { nameTruncated: this._keyTrunc\x2C\n\x09          valueTruncated: this._valTrunc\x2C\n\x09          encoding: this.charset\x2C\n\x09          mimeType: 'text/plain' }\n\x09      );\n\x09    }\n\x09    cb();\n\x09  }\n\x09}\n\n\x09function readPctEnc(self\x2C chunk\x2C pos\x2C len) {\n\x09  if (pos >= len)\n\x09    return len;\n\n\x09  if (self._byte === -1) {\n\x09    // We saw a '%' but no hex characters yet\n\x09    const hexUpper = HEX_VALUES[chunk[pos++]];\n\x09    if (hexUpper === -1)\n\x09      return -1;\n\n\x09    if (hexUpper >= 8)\n\x09      self._encode = 2; // Indicate high bits detected\n\n\x09    if (pos < len) {\n\x09      // Both hex characters are in this chunk\n\x09      const hexLower = HEX_VALUES[chunk[pos++]];\n\x09      if (hexLower === -1)\n\x09        return -1;\n\n\x09      if (self._inKey)\n\x09        self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n\x09      else\n\x09        self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n\x09      self._byte = -2;\n\x09      self._lastPos = pos;\n\x09    } else {\n\x09      // Only one hex character was available in this chunk\n\x09      self._byte = hexUpper;\n\x09    }\n\x09  } else {\n\x09    // We saw only one hex character so far\n\x09    const hexLower = HEX_VALUES[chunk[pos++]];\n\x09    if (hexLower === -1)\n\x09      return -1;\n\n\x09    if (self._inKey)\n\x09      self._key += String.fromCharCode((self._byte << 4) + hexLower);\n\x09    else\n\x09      self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n\x09    self._byte = -2;\n\x09    self._lastPos = pos;\n\x09  }\n\n\x09  return pos;\n\x09}\n\n\x09function skipKeyBytes(self\x2C chunk\x2C pos\x2C len) {\n\x09  // Skip bytes if we've truncated\n\x09  if (self._bytesKey > self.fieldNameSizeLimit) {\n\x09    if (!self._keyTrunc) {\n\x09      if (self._lastPos < pos)\n\x09        self._key += chunk.latin1Slice(self._lastPos\x2C pos - 1);\n\x09    }\n\x09    self._keyTrunc = true;\n\x09    for (; pos < len; ++pos) {\n\x09      const code = chunk[pos];\n\x09      if (code === 61/* '=' */ || code === 38/* '&' */)\n\x09        break;\n\x09      ++self._bytesKey;\n\x09    }\n\x09    self._lastPos = pos;\n\x09  }\n\n\x09  return pos;\n\x09}\n\n\x09function skipValBytes(self\x2C chunk\x2C pos\x2C len) {\n\x09  // Skip bytes if we've truncated\n\x09  if (self._bytesVal > self.fieldSizeLimit) {\n\x09    if (!self._valTrunc) {\n\x09      if (self._lastPos < pos)\n\x09        self._val += chunk.latin1Slice(self._lastPos\x2C pos - 1);\n\x09    }\n\x09    self._valTrunc = true;\n\x09    for (; pos < len; ++pos) {\n\x09      if (chunk[pos] === 38/* '&' */)\n\x09        break;\n\x09      ++self._bytesVal;\n\x09    }\n\x09    self._lastPos = pos;\n\x09  }\n\n\x09  return pos;\n\x09}\n\n\x09/* eslint-disable no-multi-spaces */\n\x09const HEX_VALUES = [\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09   0\x2C  1\x2C  2\x2C  3\x2C  4\x2C  5\x2C  6\x2C  7\x2C  8\x2C  9\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C\n\x09  -1\x2C 10\x2C 11\x2C 12\x2C 13\x2C 14\x2C 15\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C\n\x09  -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 -1\x2C\n\x09  -1\x2C 10\x2C 11\x2C 12\x2C 13\x2C 14\x2C 15\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09  -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 -1\x2C\n\x09];\n\x09/* eslint-enable no-multi-spaces */\n\n\x09urlencoded = URLEncoded;\n\x09return urlencoded;\n}\n\nvar lib;\nvar hasRequiredLib;\n\nfunction requireLib () {\n\x09if (hasRequiredLib) return lib;\n\x09hasRequiredLib = 1;\n\n\x09const { parseContentType } = requireUtils$1();\n\n\x09function getInstance(cfg) {\n\x09  const headers = cfg.headers;\n\x09  const conType = parseContentType(headers['content-type']);\n\x09  if (!conType)\n\x09    throw new Error('Malformed content type');\n\n\x09  for (const type of TYPES) {\n\x09    const matched = type.detect(conType);\n\x09    if (!matched)\n\x09      continue;\n\n\x09    const instanceCfg = {\n\x09      limits: cfg.limits\x2C\n\x09      headers\x2C\n\x09      conType\x2C\n\x09      highWaterMark: undefined\x2C\n\x09      fileHwm: undefined\x2C\n\x09      defCharset: undefined\x2C\n\x09      defParamCharset: undefined\x2C\n\x09      preservePath: false\x2C\n\x09    };\n\x09    if (cfg.highWaterMark)\n\x09      instanceCfg.highWaterMark = cfg.highWaterMark;\n\x09    if (cfg.fileHwm)\n\x09      instanceCfg.fileHwm = cfg.fileHwm;\n\x09    instanceCfg.defCharset = cfg.defCharset;\n\x09    instanceCfg.defParamCharset = cfg.defParamCharset;\n\x09    instanceCfg.preservePath = cfg.preservePath;\n\x09    return new type(instanceCfg);\n\x09  }\n\n\x09  throw new Error(`Unsupported content type: ${headers['content-type']}`);\n\x09}\n\n\x09// Note: types are explicitly listed here for easier bundling\n\x09// See: https://github.com/mscdex/busboy/issues/121\n\x09const TYPES = [\n\x09  requireMultipart()\x2C\n\x09  requireUrlencoded()\x2C\n\x09].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\n\x09lib = (cfg) => {\n\x09  if (typeof cfg !== 'object' || cfg === null)\n\x09    cfg = {};\n\n\x09  if (typeof cfg.headers !== 'object'\n\x09      || cfg.headers === null\n\x09      || typeof cfg.headers['content-type'] !== 'string') {\n\x09    throw new Error('Missing Content-Type');\n\x09  }\n\n\x09  return getInstance(cfg);\n\x09};\n\x09return lib;\n}\n\nvar constants$4;\nvar hasRequiredConstants$3;\n\nfunction requireConstants$3 () {\n\x09if (hasRequiredConstants$3) return constants$4;\n\x09hasRequiredConstants$3 = 1;\n\n\x09const { MessageChannel\x2C receiveMessageOnPort } = require$$0$3;\n\n\x09const corsSafeListedMethods = ['GET'\x2C 'HEAD'\x2C 'POST'];\n\n\x09const nullBodyStatus = [101\x2C 204\x2C 205\x2C 304];\n\n\x09const redirectStatus = [301\x2C 302\x2C 303\x2C 307\x2C 308];\n\n\x09// https://fetch.spec.whatwg.org/#block-bad-port\n\x09const badPorts = [\n\x09  '1'\x2C '7'\x2C '9'\x2C '11'\x2C '13'\x2C '15'\x2C '17'\x2C '19'\x2C '20'\x2C '21'\x2C '22'\x2C '23'\x2C '25'\x2C '37'\x2C '42'\x2C '43'\x2C '53'\x2C '69'\x2C '77'\x2C '79'\x2C\n\x09  '87'\x2C '95'\x2C '101'\x2C '102'\x2C '103'\x2C '104'\x2C '109'\x2C '110'\x2C '111'\x2C '113'\x2C '115'\x2C '117'\x2C '119'\x2C '123'\x2C '135'\x2C '137'\x2C\n\x09  '139'\x2C '143'\x2C '161'\x2C '179'\x2C '389'\x2C '427'\x2C '465'\x2C '512'\x2C '513'\x2C '514'\x2C '515'\x2C '526'\x2C '530'\x2C '531'\x2C '532'\x2C\n\x09  '540'\x2C '548'\x2C '554'\x2C '556'\x2C '563'\x2C '587'\x2C '601'\x2C '636'\x2C '989'\x2C '990'\x2C '993'\x2C '995'\x2C '1719'\x2C '1720'\x2C '1723'\x2C\n\x09  '2049'\x2C '3659'\x2C '4045'\x2C '5060'\x2C '5061'\x2C '6000'\x2C '6566'\x2C '6665'\x2C '6666'\x2C '6667'\x2C '6668'\x2C '6669'\x2C '6697'\x2C\n\x09  '10080'\n\x09];\n\n\x09// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\n\x09const referrerPolicy = [\n\x09  ''\x2C\n\x09  'no-referrer'\x2C\n\x09  'no-referrer-when-downgrade'\x2C\n\x09  'same-origin'\x2C\n\x09  'origin'\x2C\n\x09  'strict-origin'\x2C\n\x09  'origin-when-cross-origin'\x2C\n\x09  'strict-origin-when-cross-origin'\x2C\n\x09  'unsafe-url'\n\x09];\n\n\x09const requestRedirect = ['follow'\x2C 'manual'\x2C 'error'];\n\n\x09const safeMethods = ['GET'\x2C 'HEAD'\x2C 'OPTIONS'\x2C 'TRACE'];\n\n\x09const requestMode = ['navigate'\x2C 'same-origin'\x2C 'no-cors'\x2C 'cors'];\n\n\x09const requestCredentials = ['omit'\x2C 'same-origin'\x2C 'include'];\n\n\x09const requestCache = [\n\x09  'default'\x2C\n\x09  'no-store'\x2C\n\x09  'reload'\x2C\n\x09  'no-cache'\x2C\n\x09  'force-cache'\x2C\n\x09  'only-if-cached'\n\x09];\n\n\x09// https://fetch.spec.whatwg.org/#request-body-header-name\n\x09const requestBodyHeader = [\n\x09  'content-encoding'\x2C\n\x09  'content-language'\x2C\n\x09  'content-location'\x2C\n\x09  'content-type'\x2C\n\x09  // See https://github.com/nodejs/undici/issues/2021\n\x09  // 'Content-Length' is a forbidden header name\x2C which is typically\n\x09  // removed in the Headers implementation. However\x2C undici doesn't\n\x09  // filter out headers\x2C so we add it here.\n\x09  'content-length'\n\x09];\n\n\x09// https://fetch.spec.whatwg.org/#enumdef-requestduplex\n\x09const requestDuplex = [\n\x09  'half'\n\x09];\n\n\x09// http://fetch.spec.whatwg.org/#forbidden-method\n\x09const forbiddenMethods = ['CONNECT'\x2C 'TRACE'\x2C 'TRACK'];\n\n\x09const subresource = [\n\x09  'audio'\x2C\n\x09  'audioworklet'\x2C\n\x09  'font'\x2C\n\x09  'image'\x2C\n\x09  'manifest'\x2C\n\x09  'paintworklet'\x2C\n\x09  'script'\x2C\n\x09  'style'\x2C\n\x09  'track'\x2C\n\x09  'video'\x2C\n\x09  'xslt'\x2C\n\x09  ''\n\x09];\n\n\x09/** @type {globalThis['DOMException']} */\n\x09const DOMException = globalThis.DOMException ?? (() => {\n\x09  // DOMException was only made a global in Node v17.0.0\x2C\n\x09  // but fetch supports >= v16.8.\n\x09  try {\n\x09    atob('~');\n\x09  } catch (err) {\n\x09    return Object.getPrototypeOf(err).constructor\n\x09  }\n\x09})();\n\n\x09let channel;\n\n\x09/** @type {globalThis['structuredClone']} */\n\x09const structuredClone =\n\x09  globalThis.structuredClone ??\n\x09  // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n\x09  // structuredClone was added in v17.0.0\x2C but fetch supports v16.8\n\x09  function structuredClone (value\x2C options = undefined) {\n\x09    if (arguments.length === 0) {\n\x09      throw new TypeError('missing argument')\n\x09    }\n\n\x09    if (!channel) {\n\x09      channel = new MessageChannel();\n\x09    }\n\x09    channel.port1.unref();\n\x09    channel.port2.unref();\n\x09    channel.port1.postMessage(value\x2C options?.transfer);\n\x09    return receiveMessageOnPort(channel.port2).message\n\x09  };\n\n\x09constants$4 = {\n\x09  DOMException\x2C\n\x09  structuredClone\x2C\n\x09  subresource\x2C\n\x09  forbiddenMethods\x2C\n\x09  requestBodyHeader\x2C\n\x09  referrerPolicy\x2C\n\x09  requestRedirect\x2C\n\x09  requestMode\x2C\n\x09  requestCredentials\x2C\n\x09  requestCache\x2C\n\x09  redirectStatus\x2C\n\x09  corsSafeListedMethods\x2C\n\x09  nullBodyStatus\x2C\n\x09  safeMethods\x2C\n\x09  badPorts\x2C\n\x09  requestDuplex\n\x09};\n\x09return constants$4;\n}\n\nvar global$2;\nvar hasRequiredGlobal;\n\nfunction requireGlobal () {\n\x09if (hasRequiredGlobal) return global$2;\n\x09hasRequiredGlobal = 1;\n\n\x09// In case of breaking changes\x2C increase the version\n\x09// number to avoid conflicts.\n\x09const globalOrigin = Symbol.for('undici.globalOrigin.1');\n\n\x09function getGlobalOrigin () {\n\x09  return globalThis[globalOrigin]\n\x09}\n\n\x09function setGlobalOrigin (newOrigin) {\n\x09  if (\n\x09    newOrigin !== undefined &&\n\x09    typeof newOrigin !== 'string' &&\n\x09    !(newOrigin instanceof URL)\n\x09  ) {\n\x09    throw new Error('Invalid base url')\n\x09  }\n\n\x09  if (newOrigin === undefined) {\n\x09    Object.defineProperty(globalThis\x2C globalOrigin\x2C {\n\x09      value: undefined\x2C\n\x09      writable: true\x2C\n\x09      enumerable: false\x2C\n\x09      configurable: false\n\x09    });\n\n\x09    return\n\x09  }\n\n\x09  const parsedURL = new URL(newOrigin);\n\n\x09  if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n\x09    throw new TypeError(`Only http & https urls are allowed\x2C received ${parsedURL.protocol}`)\n\x09  }\n\n\x09  Object.defineProperty(globalThis\x2C globalOrigin\x2C {\n\x09    value: parsedURL\x2C\n\x09    writable: true\x2C\n\x09    enumerable: false\x2C\n\x09    configurable: false\n\x09  });\n\x09}\n\n\x09global$2 = {\n\x09  getGlobalOrigin\x2C\n\x09  setGlobalOrigin\n\x09};\n\x09return global$2;\n}\n\nvar util$h;\nvar hasRequiredUtil$3;\n\nfunction requireUtil$3 () {\n\x09if (hasRequiredUtil$3) return util$h;\n\x09hasRequiredUtil$3 = 1;\n\n\x09const { redirectStatus\x2C badPorts\x2C referrerPolicy: referrerPolicyTokens } = requireConstants$3();\n\x09const { getGlobalOrigin } = requireGlobal();\n\x09const { performance } = require$$2$1;\n\x09const { isBlobLike\x2C toUSVString\x2C ReadableStreamFrom } = util$i;\n\x09const assert = require$$0;\n\x09const { isUint8Array } = require$$5;\n\n\x09// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n\x09/** @type {import('crypto')|undefined} */\n\x09let crypto;\n\n\x09try {\n\x09  crypto = require('crypto');\n\x09} catch {\n\n\x09}\n\n\x09function responseURL (response) {\n\x09  // https://fetch.spec.whatwg.org/#responses\n\x09  // A response has an associated URL. It is a pointer to the last URL\n\x09  // in response\u2019s URL list and null if response\u2019s URL list is empty.\n\x09  const urlList = response.urlList;\n\x09  const length = urlList.length;\n\x09  return length === 0 ? null : urlList[length - 1].toString()\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#concept-response-location-url\n\x09function responseLocationURL (response\x2C requestFragment) {\n\x09  // 1. If response\u2019s status is not a redirect status\x2C then return null.\n\x09  if (!redirectStatus.includes(response.status)) {\n\x09    return null\n\x09  }\n\n\x09  // 2. Let location be the result of extracting header list values given\n\x09  // `Location` and response\u2019s header list.\n\x09  let location = response.headersList.get('location');\n\n\x09  // 3. If location is a header value\x2C then set location to the result of\n\x09  //    parsing location with response\u2019s URL.\n\x09  if (location !== null && isValidHeaderValue(location)) {\n\x09    location = new URL(location\x2C responseURL(response));\n\x09  }\n\n\x09  // 4. If location is a URL whose fragment is null\x2C then set location\u2019s\n\x09  // fragment to requestFragment.\n\x09  if (location && !location.hash) {\n\x09    location.hash = requestFragment;\n\x09  }\n\n\x09  // 5. Return location.\n\x09  return location\n\x09}\n\n\x09/** @returns {URL} */\n\x09function requestCurrentURL (request) {\n\x09  return request.urlList[request.urlList.length - 1]\n\x09}\n\n\x09function requestBadPort (request) {\n\x09  // 1. Let url be request\u2019s current URL.\n\x09  const url = requestCurrentURL(request);\n\n\x09  // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port\x2C\n\x09  // then return blocked.\n\x09  if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n\x09    return 'blocked'\n\x09  }\n\n\x09  // 3. Return allowed.\n\x09  return 'allowed'\n\x09}\n\n\x09function isErrorLike (object) {\n\x09  return object instanceof Error || (\n\x09    object?.constructor?.name === 'Error' ||\n\x09    object?.constructor?.name === 'DOMException'\n\x09  )\n\x09}\n\n\x09// Check whether |statusText| is a ByteString and\n\x09// matches the Reason-Phrase token production.\n\x09// RFC 2616: https://tools.ietf.org/html/rfc2616\n\x09// RFC 7230: https://tools.ietf.org/html/rfc7230\n\x09// "reason-phrase = *( HTAB / SP / VCHAR / obs-text )"\n\x09// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\n\x09function isValidReasonPhrase (statusText) {\n\x09  for (let i = 0; i < statusText.length; ++i) {\n\x09    const c = statusText.charCodeAt(i);\n\x09    if (\n\x09      !(\n\x09        (\n\x09          c === 0x09 || // HTAB\n\x09          (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n\x09          (c >= 0x80 && c <= 0xff)\n\x09        ) // obs-text\n\x09      )\n\x09    ) {\n\x09      return false\n\x09    }\n\x09  }\n\x09  return true\n\x09}\n\n\x09function isTokenChar (c) {\n\x09  return !(\n\x09    c >= 0x7f ||\n\x09    c <= 0x20 ||\n\x09    c === '(' ||\n\x09    c === ')' ||\n\x09    c === '<' ||\n\x09    c === '>' ||\n\x09    c === '@' ||\n\x09    c === '\x2C' ||\n\x09    c === ';' ||\n\x09    c === ':' ||\n\x09    c === '\\\\' ||\n\x09    c === '"' ||\n\x09    c === '/' ||\n\x09    c === '[' ||\n\x09    c === ']' ||\n\x09    c === '?' ||\n\x09    c === '=' ||\n\x09    c === '{' ||\n\x09    c === '}'\n\x09  )\n\x09}\n\n\x09// See RFC 7230\x2C Section 3.2.6.\n\x09// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\n\x09function isValidHTTPToken (characters) {\n\x09  if (!characters || typeof characters !== 'string') {\n\x09    return false\n\x09  }\n\x09  for (let i = 0; i < characters.length; ++i) {\n\x09    const c = characters.charCodeAt(i);\n\x09    if (c > 0x7f || !isTokenChar(c)) {\n\x09      return false\n\x09    }\n\x09  }\n\x09  return true\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#header-name\n\x09// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\n\x09function isValidHeaderName (potentialValue) {\n\x09  if (potentialValue.length === 0) {\n\x09    return false\n\x09  }\n\n\x09  return isValidHTTPToken(potentialValue)\n\x09}\n\n\x09/**\n\x09 * @see https://fetch.spec.whatwg.org/#header-value\n\x09 * @param {string} potentialValue\n\x09 */\n\x09function isValidHeaderValue (potentialValue) {\n\x09  // - Has no leading or trailing HTTP tab or space bytes.\n\x09  // - Contains no 0x00 (NUL) or HTTP newline bytes.\n\x09  if (\n\x09    potentialValue.startsWith('\\t') ||\n\x09    potentialValue.startsWith(' ') ||\n\x09    potentialValue.endsWith('\\t') ||\n\x09    potentialValue.endsWith(' ')\n\x09  ) {\n\x09    return false\n\x09  }\n\n\x09  if (\n\x09    potentialValue.includes('\\0') ||\n\x09    potentialValue.includes('\\r') ||\n\x09    potentialValue.includes('\\n')\n\x09  ) {\n\x09    return false\n\x09  }\n\n\x09  return true\n\x09}\n\n\x09// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\n\x09function setRequestReferrerPolicyOnRedirect (request\x2C actualResponse) {\n\x09  //  Given a request request and a response actualResponse\x2C this algorithm\n\x09  //  updates request\u2019s referrer policy according to the Referrer-Policy\n\x09  //  header (if any) in actualResponse.\n\n\x09  // 1. Let policy be the result of executing \xa7 8.1 Parse a referrer policy\n\x09  // from a Referrer-Policy header on actualResponse.\n\n\x09  // 8.1 Parse a referrer policy from a Referrer-Policy header\n\x09  // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n\x09  const { headersList } = actualResponse;\n\x09  // 2. Let policy be the empty string.\n\x09  // 3. For each token in policy-tokens\x2C if token is a referrer policy and token is not the empty string\x2C then set policy to token.\n\x09  // 4. Return policy.\n\x09  const policyHeader = (headersList.get('referrer-policy') ?? '').split('\x2C');\n\n\x09  // Note: As the referrer-policy can contain multiple policies\n\x09  // separated by comma\x2C we need to loop through all of them\n\x09  // and pick the first valid one.\n\x09  // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n\x09  let policy = '';\n\x09  if (policyHeader.length > 0) {\n\x09    // The right-most policy takes precedence.\n\x09    // The left-most policy is the fallback.\n\x09    for (let i = policyHeader.length; i !== 0; i--) {\n\x09      const token = policyHeader[i - 1].trim();\n\x09      if (referrerPolicyTokens.includes(token)) {\n\x09        policy = token;\n\x09        break\n\x09      }\n\x09    }\n\x09  }\n\n\x09  // 2. If policy is not the empty string\x2C then set request\u2019s referrer policy to policy.\n\x09  if (policy !== '') {\n\x09    request.referrerPolicy = policy;\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\n\x09function crossOriginResourcePolicyCheck () {\n\x09  // TODO\n\x09  return 'allowed'\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#concept-cors-check\n\x09function corsCheck () {\n\x09  // TODO\n\x09  return 'success'\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#concept-tao-check\n\x09function TAOCheck () {\n\x09  // TODO\n\x09  return 'success'\n\x09}\n\n\x09function appendFetchMetadata (httpRequest) {\n\x09  //  https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n\x09  //  TODO\n\n\x09  //  https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n\x09  //  1. Assert: r\u2019s url is a potentially trustworthy URL.\n\x09  //  TODO\n\n\x09  //  2. Let header be a Structured Header whose value is a token.\n\x09  let header = null;\n\n\x09  //  3. Set header\u2019s value to r\u2019s mode.\n\x09  header = httpRequest.mode;\n\n\x09  //  4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n\x09  httpRequest.headersList.set('sec-fetch-mode'\x2C header);\n\n\x09  //  https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n\x09  //  TODO\n\n\x09  //  https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n\x09  //  TODO\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#append-a-request-origin-header\n\x09function appendRequestOriginHeader (request) {\n\x09  // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n\x09  let serializedOrigin = request.origin;\n\n\x09  // 2. If request\u2019s response tainting is "cors" or request\u2019s mode is "websocket"\x2C then append (`Origin`\x2C serializedOrigin) to request\u2019s header list.\n\x09  if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n\x09    if (serializedOrigin) {\n\x09      request.headersList.append('origin'\x2C serializedOrigin);\n\x09    }\n\n\x09  // 3. Otherwise\x2C if request\u2019s method is neither `GET` nor `HEAD`\x2C then:\n\x09  } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n\x09    // 1. Switch on request\u2019s referrer policy:\n\x09    switch (request.referrerPolicy) {\n\x09      case 'no-referrer':\n\x09        // Set serializedOrigin to `null`.\n\x09        serializedOrigin = null;\n\x09        break\n\x09      case 'no-referrer-when-downgrade':\n\x09      case 'strict-origin':\n\x09      case 'strict-origin-when-cross-origin':\n\x09        // If request\u2019s origin is a tuple origin\x2C its scheme is "https"\x2C and request\u2019s current URL\u2019s scheme is not "https"\x2C then set serializedOrigin to `null`.\n\x09        if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n\x09          serializedOrigin = null;\n\x09        }\n\x09        break\n\x09      case 'same-origin':\n\x09        // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin\x2C then set serializedOrigin to `null`.\n\x09        if (!sameOrigin(request\x2C requestCurrentURL(request))) {\n\x09          serializedOrigin = null;\n\x09        }\n\x09        break\n\x09        // Do nothing.\n\x09    }\n\n\x09    if (serializedOrigin) {\n\x09      // 2. Append (`Origin`\x2C serializedOrigin) to request\u2019s header list.\n\x09      request.headersList.append('origin'\x2C serializedOrigin);\n\x09    }\n\x09  }\n\x09}\n\n\x09function coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n\x09  // TODO\n\x09  return performance.now()\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\n\x09function createOpaqueTimingInfo (timingInfo) {\n\x09  return {\n\x09    startTime: timingInfo.startTime ?? 0\x2C\n\x09    redirectStartTime: 0\x2C\n\x09    redirectEndTime: 0\x2C\n\x09    postRedirectStartTime: timingInfo.startTime ?? 0\x2C\n\x09    finalServiceWorkerStartTime: 0\x2C\n\x09    finalNetworkResponseStartTime: 0\x2C\n\x09    finalNetworkRequestStartTime: 0\x2C\n\x09    endTime: 0\x2C\n\x09    encodedBodySize: 0\x2C\n\x09    decodedBodySize: 0\x2C\n\x09    finalConnectionTimingInfo: null\n\x09  }\n\x09}\n\n\x09// https://html.spec.whatwg.org/multipage/origin.html#policy-container\n\x09function makePolicyContainer () {\n\x09  // Note: the fetch spec doesn't make use of embedder policy or CSP list\n\x09  return {\n\x09    referrerPolicy: 'strict-origin-when-cross-origin'\n\x09  }\n\x09}\n\n\x09// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\n\x09function clonePolicyContainer (policyContainer) {\n\x09  return {\n\x09    referrerPolicy: policyContainer.referrerPolicy\n\x09  }\n\x09}\n\n\x09// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\n\x09function determineRequestsReferrer (request) {\n\x09  // 1. Let policy be request's referrer policy.\n\x09  const policy = request.referrerPolicy;\n\n\x09  // Note: policy cannot (shouldn't) be null or an empty string.\n\x09  assert(policy);\n\n\x09  // 2. Let environment be request\u2019s client.\n\n\x09  let referrerSource = null;\n\n\x09  // 3. Switch on request\u2019s referrer:\n\x09  if (request.referrer === 'client') {\n\x09    // Note: node isn't a browser and doesn't implement document/iframes\x2C\n\x09    // so we bypass this step and replace it with our own.\n\n\x09    const globalOrigin = getGlobalOrigin();\n\n\x09    if (!globalOrigin || globalOrigin.origin === 'null') {\n\x09      return 'no-referrer'\n\x09    }\n\n\x09    // note: we need to clone it as it's mutated\n\x09    referrerSource = new URL(globalOrigin);\n\x09  } else if (request.referrer instanceof URL) {\n\x09    // Let referrerSource be request\u2019s referrer.\n\x09    referrerSource = request.referrer;\n\x09  }\n\n\x09  // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n\x09  //    use as a referrer.\n\x09  let referrerURL = stripURLForReferrer(referrerSource);\n\n\x09  // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n\x09  //    a referrer\x2C with the origin-only flag set to true.\n\x09  const referrerOrigin = stripURLForReferrer(referrerSource\x2C true);\n\n\x09  // 6. If the result of serializing referrerURL is a string whose length is\n\x09  //    greater than 4096\x2C set referrerURL to referrerOrigin.\n\x09  if (referrerURL.toString().length > 4096) {\n\x09    referrerURL = referrerOrigin;\n\x09  }\n\n\x09  const areSameOrigin = sameOrigin(request\x2C referrerURL);\n\x09  const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n\x09    !isURLPotentiallyTrustworthy(request.url);\n\n\x09  // 8. Execute the switch statements corresponding to the value of policy:\n\x09  switch (policy) {\n\x09    case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource\x2C true)\n\x09    case 'unsafe-url': return referrerURL\n\x09    case 'same-origin':\n\x09      return areSameOrigin ? referrerOrigin : 'no-referrer'\n\x09    case 'origin-when-cross-origin':\n\x09      return areSameOrigin ? referrerURL : referrerOrigin\n\x09    case 'strict-origin-when-cross-origin': {\n\x09      const currentURL = requestCurrentURL(request);\n\n\x09      // 1. If the origin of referrerURL and the origin of request\u2019s current\n\x09      //    URL are the same\x2C then return referrerURL.\n\x09      if (sameOrigin(referrerURL\x2C currentURL)) {\n\x09        return referrerURL\n\x09      }\n\n\x09      // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n\x09      //    current URL is not a potentially trustworthy URL\x2C then return no\n\x09      //    referrer.\n\x09      if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n\x09        return 'no-referrer'\n\x09      }\n\n\x09      // 3. Return referrerOrigin.\n\x09      return referrerOrigin\n\x09    }\n\x09    case 'strict-origin': // eslint-disable-line\n\x09      /**\n\x09         * 1. If referrerURL is a potentially trustworthy URL and\n\x09         * request\u2019s current URL is not a potentially trustworthy URL\x2C\n\x09         * then return no referrer.\n\x09         * 2. Return referrerOrigin\n\x09        */\n\x09    case 'no-referrer-when-downgrade': // eslint-disable-line\n\x09      /**\n\x09       * 1. If referrerURL is a potentially trustworthy URL and\n\x09       * request\u2019s current URL is not a potentially trustworthy URL\x2C\n\x09       * then return no referrer.\n\x09       * 2. Return referrerOrigin\n\x09      */\n\n\x09    default: // eslint-disable-line\n\x09      return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n\x09  }\n\x09}\n\n\x09/**\n\x09 * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n\x09 * @param {URL} url\n\x09 * @param {boolean|undefined} originOnly\n\x09 */\n\x09function stripURLForReferrer (url\x2C originOnly) {\n\x09  // 1. Assert: url is a URL.\n\x09  assert(url instanceof URL);\n\n\x09  // 2. If url\u2019s scheme is a local scheme\x2C then return no referrer.\n\x09  if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n\x09    return 'no-referrer'\n\x09  }\n\n\x09  // 3. Set url\u2019s username to the empty string.\n\x09  url.username = '';\n\n\x09  // 4. Set url\u2019s password to the empty string.\n\x09  url.password = '';\n\n\x09  // 5. Set url\u2019s fragment to null.\n\x09  url.hash = '';\n\n\x09  // 6. If the origin-only flag is true\x2C then:\n\x09  if (originOnly) {\n\x09    // 1. Set url\u2019s path to \xab the empty string \xbb.\n\x09    url.pathname = '';\n\n\x09    // 2. Set url\u2019s query to null.\n\x09    url.search = '';\n\x09  }\n\n\x09  // 7. Return url.\n\x09  return url\n\x09}\n\n\x09function isURLPotentiallyTrustworthy (url) {\n\x09  if (!(url instanceof URL)) {\n\x09    return false\n\x09  }\n\n\x09  // If child of about\x2C return true\n\x09  if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n\x09    return true\n\x09  }\n\n\x09  // If scheme is data\x2C return true\n\x09  if (url.protocol === 'data:') return true\n\n\x09  // If file\x2C return true\n\x09  if (url.protocol === 'file:') return true\n\n\x09  return isOriginPotentiallyTrustworthy(url.origin)\n\n\x09  function isOriginPotentiallyTrustworthy (origin) {\n\x09    // If origin is explicitly null\x2C return false\n\x09    if (origin == null || origin === 'null') return false\n\n\x09    const originAsURL = new URL(origin);\n\n\x09    // If secure\x2C return true\n\x09    if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n\x09      return true\n\x09    }\n\n\x09    // If localhost or variants\x2C return true\n\x09    if (/^127(?:\\.[0-9]+){0\x2C2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n\x09     (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n\x09     (originAsURL.hostname.endsWith('.localhost'))) {\n\x09      return true\n\x09    }\n\n\x09    // If any other\x2C return false\n\x09    return false\n\x09  }\n\x09}\n\n\x09/**\n\x09 * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n\x09 * @param {Uint8Array} bytes\n\x09 * @param {string} metadataList\n\x09 */\n\x09function bytesMatch (bytes\x2C metadataList) {\n\x09  // If node is not built with OpenSSL support\x2C we cannot check\n\x09  // a request's integrity\x2C so allow it by default (the spec will\n\x09  // allow requests if an invalid hash is given\x2C as precedence).\n\x09  /* istanbul ignore if: only if node is built with --without-ssl */\n\x09  if (crypto === undefined) {\n\x09    return true\n\x09  }\n\n\x09  // 1. Let parsedMetadata be the result of parsing metadataList.\n\x09  const parsedMetadata = parseMetadata(metadataList);\n\n\x09  // 2. If parsedMetadata is no metadata\x2C return true.\n\x09  if (parsedMetadata === 'no metadata') {\n\x09    return true\n\x09  }\n\n\x09  // 3. If parsedMetadata is the empty set\x2C return true.\n\x09  if (parsedMetadata.length === 0) {\n\x09    return true\n\x09  }\n\n\x09  // 4. Let metadata be the result of getting the strongest\n\x09  //    metadata from parsedMetadata.\n\x09  const list = parsedMetadata.sort((c\x2C d) => d.algo.localeCompare(c.algo));\n\x09  // get the strongest algorithm\n\x09  const strongest = list[0].algo;\n\x09  // get all entries that use the strongest algorithm; ignore weaker\n\x09  const metadata = list.filter((item) => item.algo === strongest);\n\n\x09  // 5. For each item in metadata:\n\x09  for (const item of metadata) {\n\x09    // 1. Let algorithm be the alg component of item.\n\x09    const algorithm = item.algo;\n\n\x09    // 2. Let expectedValue be the val component of item.\n\x09    const expectedValue = item.hash;\n\n\x09    // 3. Let actualValue be the result of applying algorithm to bytes.\n\x09    const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64');\n\n\x09    // 4. If actualValue is a case-sensitive match for expectedValue\x2C\n\x09    //    return true.\n\x09    if (actualValue === expectedValue) {\n\x09      return true\n\x09    }\n\x09  }\n\n\x09  // 6. Return false.\n\x09  return false\n\x09}\n\n\x09// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n\x09// https://www.w3.org/TR/CSP2/#source-list-syntax\n\x09// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\n\x09const parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0\x2C2}))( +[\\x21-\\x7e]?)?/i;\n\n\x09/**\n\x09 * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n\x09 * @param {string} metadata\n\x09 */\n\x09function parseMetadata (metadata) {\n\x09  // 1. Let result be the empty set.\n\x09  /** @type {{ algo: string\x2C hash: string }[]} */\n\x09  const result = [];\n\n\x09  // 2. Let empty be equal to true.\n\x09  let empty = true;\n\n\x09  const supportedHashes = crypto.getHashes();\n\n\x09  // 3. For each token returned by splitting metadata on spaces:\n\x09  for (const token of metadata.split(' ')) {\n\x09    // 1. Set empty to false.\n\x09    empty = false;\n\n\x09    // 2. Parse token as a hash-with-options.\n\x09    const parsedToken = parseHashWithOptions.exec(token);\n\n\x09    // 3. If token does not parse\x2C continue to the next token.\n\x09    if (parsedToken === null || parsedToken.groups === undefined) {\n\x09      // Note: Chromium blocks the request at this point\x2C but Firefox\n\x09      // gives a warning that an invalid integrity was given. The\n\x09      // correct behavior is to ignore these\x2C and subsequently not\n\x09      // check the integrity of the resource.\n\x09      continue\n\x09    }\n\n\x09    // 4. Let algorithm be the hash-algo component of token.\n\x09    const algorithm = parsedToken.groups.algo;\n\n\x09    // 5. If algorithm is a hash function recognized by the user\n\x09    //    agent\x2C add the parsed token to result.\n\x09    if (supportedHashes.includes(algorithm.toLowerCase())) {\n\x09      result.push(parsedToken.groups);\n\x09    }\n\x09  }\n\n\x09  // 4. Return no metadata if empty is true\x2C otherwise return result.\n\x09  if (empty === true) {\n\x09    return 'no metadata'\n\x09  }\n\n\x09  return result\n\x09}\n\n\x09// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\n\x09function tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n\x09  // TODO\n\x09}\n\n\x09/**\n\x09 * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n\x09 * @param {URL} A\n\x09 * @param {URL} B\n\x09 */\n\x09function sameOrigin (A\x2C B) {\n\x09  // 1. If A and B are the same opaque origin\x2C then return true.\n\x09  if (A.origin === B.origin && A.origin === 'null') {\n\x09    return true\n\x09  }\n\n\x09  // 2. If A and B are both tuple origins and their schemes\x2C\n\x09  //    hosts\x2C and port are identical\x2C then return true.\n\x09  if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n\x09    return true\n\x09  }\n\n\x09  // 3. Return false.\n\x09  return false\n\x09}\n\n\x09function createDeferredPromise () {\n\x09  let res;\n\x09  let rej;\n\x09  const promise = new Promise((resolve\x2C reject) => {\n\x09    res = resolve;\n\x09    rej = reject;\n\x09  });\n\n\x09  return { promise\x2C resolve: res\x2C reject: rej }\n\x09}\n\n\x09function isAborted (fetchParams) {\n\x09  return fetchParams.controller.state === 'aborted'\n\x09}\n\n\x09function isCancelled (fetchParams) {\n\x09  return fetchParams.controller.state === 'aborted' ||\n\x09    fetchParams.controller.state === 'terminated'\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#concept-method-normalize\n\x09function normalizeMethod (method) {\n\x09  return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n\x09    ? method.toUpperCase()\n\x09    : method\n\x09}\n\n\x09// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\n\x09function serializeJavascriptValueToJSONString (value) {\n\x09  // 1. Let result be ? Call(%JSON.stringify%\x2C undefined\x2C \xab value \xbb).\n\x09  const result = JSON.stringify(value);\n\n\x09  // 2. If result is undefined\x2C then throw a TypeError.\n\x09  if (result === undefined) {\n\x09    throw new TypeError('Value is not JSON serializable')\n\x09  }\n\n\x09  // 3. Assert: result is a string.\n\x09  assert(typeof result === 'string');\n\n\x09  // 4. Return result.\n\x09  return result\n\x09}\n\n\x09// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\n\x09const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));\n\n\x09/**\n\x09 * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n\x09 * @param {() => unknown[]} iterator\n\x09 * @param {string} name name of the instance\n\x09 * @param {'key'|'value'|'key+value'} kind\n\x09 */\n\x09function makeIterator (iterator\x2C name\x2C kind) {\n\x09  const object = {\n\x09    index: 0\x2C\n\x09    kind\x2C\n\x09    target: iterator\n\x09  };\n\n\x09  const i = {\n\x09    next () {\n\x09      // 1. Let interface be the interface for which the iterator prototype object exists.\n\n\x09      // 2. Let thisValue be the this value.\n\n\x09      // 3. Let object be ? ToObject(thisValue).\n\n\x09      // 4. If object is a platform object\x2C then perform a security\n\x09      //    check\x2C passing:\n\n\x09      // 5. If object is not a default iterator object for interface\x2C\n\x09      //    then throw a TypeError.\n\x09      if (Object.getPrototypeOf(this) !== i) {\n\x09        throw new TypeError(\n\x09          `'next' called on an object that does not implement interface ${name} Iterator.`\n\x09        )\n\x09      }\n\n\x09      // 6. Let index be object\u2019s index.\n\x09      // 7. Let kind be object\u2019s kind.\n\x09      // 8. Let values be object\u2019s target's value pairs to iterate over.\n\x09      const { index\x2C kind\x2C target } = object;\n\x09      const values = target();\n\n\x09      // 9. Let len be the length of values.\n\x09      const len = values.length;\n\n\x09      // 10. If index is greater than or equal to len\x2C then return\n\x09      //     CreateIterResultObject(undefined\x2C true).\n\x09      if (index >= len) {\n\x09        return { value: undefined\x2C done: true }\n\x09      }\n\n\x09      // 11. Let pair be the entry in values at index index.\n\x09      const pair = values[index];\n\n\x09      // 12. Set object\u2019s index to index + 1.\n\x09      object.index = index + 1;\n\n\x09      // 13. Return the iterator result for pair and kind.\n\x09      return iteratorResult(pair\x2C kind)\n\x09    }\x2C\n\x09    // The class string of an iterator prototype object for a given interface is the\n\x09    // result of concatenating the identifier of the interface and the string " Iterator".\n\x09    [Symbol.toStringTag]: `${name} Iterator`\n\x09  };\n\n\x09  // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n\x09  Object.setPrototypeOf(i\x2C esIteratorPrototype);\n\x09  // esIteratorPrototype needs to be the prototype of i\n\x09  // which is the prototype of an empty object. Yes\x2C it's confusing.\n\x09  return Object.setPrototypeOf({}\x2C i)\n\x09}\n\n\x09// https://webidl.spec.whatwg.org/#iterator-result\n\x09function iteratorResult (pair\x2C kind) {\n\x09  let result;\n\n\x09  // 1. Let result be a value determined by the value of kind:\n\x09  switch (kind) {\n\x09    case 'key': {\n\x09      // 1. Let idlKey be pair\u2019s key.\n\x09      // 2. Let key be the result of converting idlKey to an\n\x09      //    ECMAScript value.\n\x09      // 3. result is key.\n\x09      result = pair[0];\n\x09      break\n\x09    }\n\x09    case 'value': {\n\x09      // 1. Let idlValue be pair\u2019s value.\n\x09      // 2. Let value be the result of converting idlValue to\n\x09      //    an ECMAScript value.\n\x09      // 3. result is value.\n\x09      result = pair[1];\n\x09      break\n\x09    }\n\x09    case 'key+value': {\n\x09      // 1. Let idlKey be pair\u2019s key.\n\x09      // 2. Let idlValue be pair\u2019s value.\n\x09      // 3. Let key be the result of converting idlKey to an\n\x09      //    ECMAScript value.\n\x09      // 4. Let value be the result of converting idlValue to\n\x09      //    an ECMAScript value.\n\x09      // 5. Let array be ! ArrayCreate(2).\n\x09      // 6. Call ! CreateDataProperty(array\x2C "0"\x2C key).\n\x09      // 7. Call ! CreateDataProperty(array\x2C "1"\x2C value).\n\x09      // 8. result is array.\n\x09      result = pair;\n\x09      break\n\x09    }\n\x09  }\n\n\x09  // 2. Return CreateIterResultObject(result\x2C false).\n\x09  return { value: result\x2C done: false }\n\x09}\n\n\x09/**\n\x09 * @see https://fetch.spec.whatwg.org/#body-fully-read\n\x09 */\n\x09function fullyReadBody (body\x2C processBody\x2C processBodyError) {\n\x09  // 1. If taskDestination is null\x2C then set taskDestination to\n\x09  //    the result of starting a new parallel queue.\n\n\x09  // 2. Let successSteps given a byte sequence bytes be to queue a\n\x09  //    fetch task to run processBody given bytes\x2C with taskDestination.\n\x09  const successSteps = (bytes) => queueMicrotask(() => processBody(bytes));\n\n\x09  // 3. Let errorSteps be to queue a fetch task to run processBodyError\x2C\n\x09  //    with taskDestination.\n\x09  const errorSteps = (error) => queueMicrotask(() => processBodyError(error));\n\n\x09  // 4. Let reader be the result of getting a reader for body\u2019s stream.\n\x09  //    If that threw an exception\x2C then run errorSteps with that\n\x09  //    exception and return.\n\x09  let reader;\n\n\x09  try {\n\x09    reader = body.stream.getReader();\n\x09  } catch (e) {\n\x09    errorSteps(e);\n\x09    return\n\x09  }\n\n\x09  // 5. Read all bytes from reader\x2C given successSteps and errorSteps.\n\x09  readAllBytes(reader\x2C successSteps\x2C errorSteps);\n\x09}\n\n\x09/** @type {ReadableStream} */\n\x09let ReadableStream = globalThis.ReadableStream;\n\n\x09function isReadableStreamLike (stream) {\n\x09  if (!ReadableStream) {\n\x09    ReadableStream = require$$13.ReadableStream;\n\x09  }\n\n\x09  return stream instanceof ReadableStream || (\n\x09    stream[Symbol.toStringTag] === 'ReadableStream' &&\n\x09    typeof stream.tee === 'function'\n\x09  )\n\x09}\n\n\x09const MAXIMUM_ARGUMENT_LENGTH = 65535;\n\n\x09/**\n\x09 * @see https://infra.spec.whatwg.org/#isomorphic-decode\n\x09 * @param {number[]|Uint8Array} input\n\x09 */\n\x09function isomorphicDecode (input) {\n\x09  // 1. To isomorphic decode a byte sequence input\x2C return a string whose code point\n\x09  //    length is equal to input\u2019s length and whose code points have the same values\n\x09  //    as the values of input\u2019s bytes\x2C in the same order.\n\n\x09  if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n\x09    return String.fromCharCode(...input)\n\x09  }\n\n\x09  return input.reduce((previous\x2C current) => previous + String.fromCharCode(current)\x2C '')\n\x09}\n\n\x09/**\n\x09 * @param {ReadableStreamController<Uint8Array>} controller\n\x09 */\n\x09function readableStreamClose (controller) {\n\x09  try {\n\x09    controller.close();\n\x09  } catch (err) {\n\x09    // TODO: add comment explaining why this error occurs.\n\x09    if (!err.message.includes('Controller is already closed')) {\n\x09      throw err\n\x09    }\n\x09  }\n\x09}\n\n\x09/**\n\x09 * @see https://infra.spec.whatwg.org/#isomorphic-encode\n\x09 * @param {string} input\n\x09 */\n\x09function isomorphicEncode (input) {\n\x09  // 1. Assert: input contains no code points greater than U+00FF.\n\x09  for (let i = 0; i < input.length; i++) {\n\x09    assert(input.charCodeAt(i) <= 0xFF);\n\x09  }\n\n\x09  // 2. Return a byte sequence whose length is equal to input\u2019s code\n\x09  //    point length and whose bytes have the same values as the\n\x09  //    values of input\u2019s code points\x2C in the same order\n\x09  return input\n\x09}\n\n\x09/**\n\x09 * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n\x09 * @see https://streams.spec.whatwg.org/#read-loop\n\x09 * @param {ReadableStreamDefaultReader} reader\n\x09 * @param {(bytes: Uint8Array) => void} successSteps\n\x09 * @param {(error: Error) => void} failureSteps\n\x09 */\n\x09async function readAllBytes (reader\x2C successSteps\x2C failureSteps) {\n\x09  const bytes = [];\n\x09  let byteLength = 0;\n\n\x09  while (true) {\n\x09    let done;\n\x09    let chunk;\n\n\x09    try {\n\x09      ({ done\x2C value: chunk } = await reader.read());\n\x09    } catch (e) {\n\x09      // 1. Call failureSteps with e.\n\x09      failureSteps(e);\n\x09      return\n\x09    }\n\n\x09    if (done) {\n\x09      // 1. Call successSteps with bytes.\n\x09      successSteps(Buffer.concat(bytes\x2C byteLength));\n\x09      return\n\x09    }\n\n\x09    // 1. If chunk is not a Uint8Array object\x2C call failureSteps\n\x09    //    with a TypeError and abort these steps.\n\x09    if (!isUint8Array(chunk)) {\n\x09      failureSteps(new TypeError('Received non-Uint8Array chunk'));\n\x09      return\n\x09    }\n\n\x09    // 2. Append the bytes represented by chunk to bytes.\n\x09    bytes.push(chunk);\n\x09    byteLength += chunk.length;\n\n\x09    // 3. Read-loop given reader\x2C bytes\x2C successSteps\x2C and failureSteps.\n\x09  }\n\x09}\n\n\x09/**\n\x09 * @see https://fetch.spec.whatwg.org/#is-local\n\x09 * @param {URL} url\n\x09 */\n\x09function urlIsLocal (url) {\n\x09  assert('protocol' in url); // ensure it's a url object\n\n\x09  const protocol = url.protocol;\n\n\x09  return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n\x09}\n\n\x09/**\n\x09 * @param {string|URL} url\n\x09 */\n\x09function urlHasHttpsScheme (url) {\n\x09  if (typeof url === 'string') {\n\x09    return url.startsWith('https:')\n\x09  }\n\n\x09  return url.protocol === 'https:'\n\x09}\n\n\x09/**\n\x09 * @see https://fetch.spec.whatwg.org/#http-scheme\n\x09 * @param {URL} url\n\x09 */\n\x09function urlIsHttpHttpsScheme (url) {\n\x09  assert('protocol' in url); // ensure it's a url object\n\n\x09  const protocol = url.protocol;\n\n\x09  return protocol === 'http:' || protocol === 'https:'\n\x09}\n\n\x09/**\n\x09 * Fetch supports node >= 16.8.0\x2C but Object.hasOwn was added in v16.9.0.\n\x09 */\n\x09const hasOwn = Object.hasOwn || ((dict\x2C key) => Object.prototype.hasOwnProperty.call(dict\x2C key));\n\n\x09util$h = {\n\x09  isAborted\x2C\n\x09  isCancelled\x2C\n\x09  createDeferredPromise\x2C\n\x09  ReadableStreamFrom\x2C\n\x09  toUSVString\x2C\n\x09  tryUpgradeRequestToAPotentiallyTrustworthyURL\x2C\n\x09  coarsenedSharedCurrentTime\x2C\n\x09  determineRequestsReferrer\x2C\n\x09  makePolicyContainer\x2C\n\x09  clonePolicyContainer\x2C\n\x09  appendFetchMetadata\x2C\n\x09  appendRequestOriginHeader\x2C\n\x09  TAOCheck\x2C\n\x09  corsCheck\x2C\n\x09  crossOriginResourcePolicyCheck\x2C\n\x09  createOpaqueTimingInfo\x2C\n\x09  setRequestReferrerPolicyOnRedirect\x2C\n\x09  isValidHTTPToken\x2C\n\x09  requestBadPort\x2C\n\x09  requestCurrentURL\x2C\n\x09  responseURL\x2C\n\x09  responseLocationURL\x2C\n\x09  isBlobLike\x2C\n\x09  isURLPotentiallyTrustworthy\x2C\n\x09  isValidReasonPhrase\x2C\n\x09  sameOrigin\x2C\n\x09  normalizeMethod\x2C\n\x09  serializeJavascriptValueToJSONString\x2C\n\x09  makeIterator\x2C\n\x09  isValidHeaderName\x2C\n\x09  isValidHeaderValue\x2C\n\x09  hasOwn\x2C\n\x09  isErrorLike\x2C\n\x09  fullyReadBody\x2C\n\x09  bytesMatch\x2C\n\x09  isReadableStreamLike\x2C\n\x09  readableStreamClose\x2C\n\x09  isomorphicEncode\x2C\n\x09  isomorphicDecode\x2C\n\x09  urlIsLocal\x2C\n\x09  urlHasHttpsScheme\x2C\n\x09  urlIsHttpHttpsScheme\n\x09};\n\x09return util$h;\n}\n\nvar symbols$2;\nvar hasRequiredSymbols$2;\n\nfunction requireSymbols$2 () {\n\x09if (hasRequiredSymbols$2) return symbols$2;\n\x09hasRequiredSymbols$2 = 1;\n\n\x09symbols$2 = {\n\x09  kUrl: Symbol('url')\x2C\n\x09  kHeaders: Symbol('headers')\x2C\n\x09  kSignal: Symbol('signal')\x2C\n\x09  kState: Symbol('state')\x2C\n\x09  kGuard: Symbol('guard')\x2C\n\x09  kRealm: Symbol('realm')\n\x09};\n\x09return symbols$2;\n}\n\nvar webidl_1;\nvar hasRequiredWebidl;\n\nfunction requireWebidl () {\n\x09if (hasRequiredWebidl) return webidl_1;\n\x09hasRequiredWebidl = 1;\n\n\x09const { types } = require$$0$2;\n\x09const { hasOwn\x2C toUSVString } = requireUtil$3();\n\n\x09/** @type {import('../../types/webidl').Webidl} */\n\x09const webidl = {};\n\x09webidl.converters = {};\n\x09webidl.util = {};\n\x09webidl.errors = {};\n\n\x09webidl.errors.exception = function (message) {\n\x09  return new TypeError(`${message.header}: ${message.message}`)\n\x09};\n\n\x09webidl.errors.conversionFailed = function (context) {\n\x09  const plural = context.types.length === 1 ? '' : ' one of';\n\x09  const message =\n\x09    `${context.argument} could not be converted to` +\n\x09    `${plural}: ${context.types.join('\x2C ')}.`;\n\n\x09  return webidl.errors.exception({\n\x09    header: context.prefix\x2C\n\x09    message\n\x09  })\n\x09};\n\n\x09webidl.errors.invalidArgument = function (context) {\n\x09  return webidl.errors.exception({\n\x09    header: context.prefix\x2C\n\x09    message: `"${context.value}" is an invalid ${context.type}.`\n\x09  })\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#implements\n\x09webidl.brandCheck = function (V\x2C I\x2C opts = undefined) {\n\x09  if (opts?.strict !== false && !(V instanceof I)) {\n\x09    throw new TypeError('Illegal invocation')\n\x09  } else {\n\x09    return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n\x09  }\n\x09};\n\n\x09webidl.argumentLengthCheck = function ({ length }\x2C min\x2C ctx) {\n\x09  if (length < min) {\n\x09    throw webidl.errors.exception({\n\x09      message: `${min} argument${min !== 1 ? 's' : ''} required\x2C ` +\n\x09               `but${length ? ' only' : ''} ${length} found.`\x2C\n\x09      ...ctx\n\x09    })\n\x09  }\n\x09};\n\n\x09// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\n\x09webidl.util.Type = function (V) {\n\x09  switch (typeof V) {\n\x09    case 'undefined': return 'Undefined'\n\x09    case 'boolean': return 'Boolean'\n\x09    case 'string': return 'String'\n\x09    case 'symbol': return 'Symbol'\n\x09    case 'number': return 'Number'\n\x09    case 'bigint': return 'BigInt'\n\x09    case 'function':\n\x09    case 'object': {\n\x09      if (V === null) {\n\x09        return 'Null'\n\x09      }\n\n\x09      return 'Object'\n\x09    }\n\x09  }\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\n\x09webidl.util.ConvertToInt = function (V\x2C bitLength\x2C signedness\x2C opts = {}) {\n\x09  let upperBound;\n\x09  let lowerBound;\n\n\x09  // 1. If bitLength is 64\x2C then:\n\x09  if (bitLength === 64) {\n\x09    // 1. Let upperBound be 2^53 \u2212 1.\n\x09    upperBound = Math.pow(2\x2C 53) - 1;\n\n\x09    // 2. If signedness is "unsigned"\x2C then let lowerBound be 0.\n\x09    if (signedness === 'unsigned') {\n\x09      lowerBound = 0;\n\x09    } else {\n\x09      // 3. Otherwise let lowerBound be \u22122^53 + 1.\n\x09      lowerBound = Math.pow(-2\x2C 53) + 1;\n\x09    }\n\x09  } else if (signedness === 'unsigned') {\n\x09    // 2. Otherwise\x2C if signedness is "unsigned"\x2C then:\n\n\x09    // 1. Let lowerBound be 0.\n\x09    lowerBound = 0;\n\n\x09    // 2. Let upperBound be 2^bitLength \u2212 1.\n\x09    upperBound = Math.pow(2\x2C bitLength) - 1;\n\x09  } else {\n\x09    // 3. Otherwise:\n\n\x09    // 1. Let lowerBound be -2^bitLength \u2212 1.\n\x09    lowerBound = Math.pow(-2\x2C bitLength) - 1;\n\n\x09    // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n\x09    upperBound = Math.pow(2\x2C bitLength - 1) - 1;\n\x09  }\n\n\x09  // 4. Let x be ? ToNumber(V).\n\x09  let x = Number(V);\n\n\x09  // 5. If x is \u22120\x2C then set x to +0.\n\x09  if (x === 0) {\n\x09    x = 0;\n\x09  }\n\n\x09  // 6. If the conversion is to an IDL type associated\n\x09  //    with the [EnforceRange] extended attribute\x2C then:\n\x09  if (opts.enforceRange === true) {\n\x09    // 1. If x is NaN\x2C +\u221e\x2C or \u2212\u221e\x2C then throw a TypeError.\n\x09    if (\n\x09      Number.isNaN(x) ||\n\x09      x === Number.POSITIVE_INFINITY ||\n\x09      x === Number.NEGATIVE_INFINITY\n\x09    ) {\n\x09      throw webidl.errors.exception({\n\x09        header: 'Integer conversion'\x2C\n\x09        message: `Could not convert ${V} to an integer.`\n\x09      })\n\x09    }\n\n\x09    // 2. Set x to IntegerPart(x).\n\x09    x = webidl.util.IntegerPart(x);\n\n\x09    // 3. If x < lowerBound or x > upperBound\x2C then\n\x09    //    throw a TypeError.\n\x09    if (x < lowerBound || x > upperBound) {\n\x09      throw webidl.errors.exception({\n\x09        header: 'Integer conversion'\x2C\n\x09        message: `Value must be between ${lowerBound}-${upperBound}\x2C got ${x}.`\n\x09      })\n\x09    }\n\n\x09    // 4. Return x.\n\x09    return x\n\x09  }\n\n\x09  // 7. If x is not NaN and the conversion is to an IDL\n\x09  //    type associated with the [Clamp] extended\n\x09  //    attribute\x2C then:\n\x09  if (!Number.isNaN(x) && opts.clamp === true) {\n\x09    // 1. Set x to min(max(x\x2C lowerBound)\x2C upperBound).\n\x09    x = Math.min(Math.max(x\x2C lowerBound)\x2C upperBound);\n\n\x09    // 2. Round x to the nearest integer\x2C choosing the\n\x09    //    even integer if it lies halfway between two\x2C\n\x09    //    and choosing +0 rather than \u22120.\n\x09    if (Math.floor(x) % 2 === 0) {\n\x09      x = Math.floor(x);\n\x09    } else {\n\x09      x = Math.ceil(x);\n\x09    }\n\n\x09    // 3. Return x.\n\x09    return x\n\x09  }\n\n\x09  // 8. If x is NaN\x2C +0\x2C +\u221e\x2C or \u2212\u221e\x2C then return +0.\n\x09  if (\n\x09    Number.isNaN(x) ||\n\x09    (x === 0 && Object.is(0\x2C x)) ||\n\x09    x === Number.POSITIVE_INFINITY ||\n\x09    x === Number.NEGATIVE_INFINITY\n\x09  ) {\n\x09    return 0\n\x09  }\n\n\x09  // 9. Set x to IntegerPart(x).\n\x09  x = webidl.util.IntegerPart(x);\n\n\x09  // 10. Set x to x modulo 2^bitLength.\n\x09  x = x % Math.pow(2\x2C bitLength);\n\n\x09  // 11. If signedness is "signed" and x \u2265 2^bitLength \u2212 1\x2C\n\x09  //    then return x \u2212 2^bitLength.\n\x09  if (signedness === 'signed' && x >= Math.pow(2\x2C bitLength) - 1) {\n\x09    return x - Math.pow(2\x2C bitLength)\n\x09  }\n\n\x09  // 12. Otherwise\x2C return x.\n\x09  return x\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\n\x09webidl.util.IntegerPart = function (n) {\n\x09  // 1. Let r be floor(abs(n)).\n\x09  const r = Math.floor(Math.abs(n));\n\n\x09  // 2. If n < 0\x2C then return -1 \xd7 r.\n\x09  if (n < 0) {\n\x09    return -1 * r\n\x09  }\n\n\x09  // 3. Otherwise\x2C return r.\n\x09  return r\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-sequence\n\x09webidl.sequenceConverter = function (converter) {\n\x09  return (V) => {\n\x09    // 1. If Type(V) is not Object\x2C throw a TypeError.\n\x09    if (webidl.util.Type(V) !== 'Object') {\n\x09      throw webidl.errors.exception({\n\x09        header: 'Sequence'\x2C\n\x09        message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n\x09      })\n\x09    }\n\n\x09    // 2. Let method be ? GetMethod(V\x2C @@iterator).\n\x09    /** @type {Generator} */\n\x09    const method = V?.[Symbol.iterator]?.();\n\x09    const seq = [];\n\n\x09    // 3. If method is undefined\x2C throw a TypeError.\n\x09    if (\n\x09      method === undefined ||\n\x09      typeof method.next !== 'function'\n\x09    ) {\n\x09      throw webidl.errors.exception({\n\x09        header: 'Sequence'\x2C\n\x09        message: 'Object is not an iterator.'\n\x09      })\n\x09    }\n\n\x09    // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n\x09    while (true) {\n\x09      const { done\x2C value } = method.next();\n\n\x09      if (done) {\n\x09        break\n\x09      }\n\n\x09      seq.push(converter(value));\n\x09    }\n\n\x09    return seq\n\x09  }\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-to-record\n\x09webidl.recordConverter = function (keyConverter\x2C valueConverter) {\n\x09  return (O) => {\n\x09    // 1. If Type(O) is not Object\x2C throw a TypeError.\n\x09    if (webidl.util.Type(O) !== 'Object') {\n\x09      throw webidl.errors.exception({\n\x09        header: 'Record'\x2C\n\x09        message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n\x09      })\n\x09    }\n\n\x09    // 2. Let result be a new empty instance of record<K\x2C V>.\n\x09    const result = {};\n\n\x09    if (!types.isProxy(O)) {\n\x09      // Object.keys only returns enumerable properties\n\x09      const keys = Object.keys(O);\n\n\x09      for (const key of keys) {\n\x09        // 1. Let typedKey be key converted to an IDL value of type K.\n\x09        const typedKey = keyConverter(key);\n\n\x09        // 2. Let value be ? Get(O\x2C key).\n\x09        // 3. Let typedValue be value converted to an IDL value of type V.\n\x09        const typedValue = valueConverter(O[key]);\n\n\x09        // 4. Set result[typedKey] to typedValue.\n\x09        result[typedKey] = typedValue;\n\x09      }\n\n\x09      // 5. Return result.\n\x09      return result\n\x09    }\n\n\x09    // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n\x09    const keys = Reflect.ownKeys(O);\n\n\x09    // 4. For each key of keys.\n\x09    for (const key of keys) {\n\x09      // 1. Let desc be ? O.[[GetOwnProperty]](key).\n\x09      const desc = Reflect.getOwnPropertyDescriptor(O\x2C key);\n\n\x09      // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n\x09      if (desc?.enumerable) {\n\x09        // 1. Let typedKey be key converted to an IDL value of type K.\n\x09        const typedKey = keyConverter(key);\n\n\x09        // 2. Let value be ? Get(O\x2C key).\n\x09        // 3. Let typedValue be value converted to an IDL value of type V.\n\x09        const typedValue = valueConverter(O[key]);\n\n\x09        // 4. Set result[typedKey] to typedValue.\n\x09        result[typedKey] = typedValue;\n\x09      }\n\x09    }\n\n\x09    // 5. Return result.\n\x09    return result\n\x09  }\n\x09};\n\n\x09webidl.interfaceConverter = function (i) {\n\x09  return (V\x2C opts = {}) => {\n\x09    if (opts.strict !== false && !(V instanceof i)) {\n\x09      throw webidl.errors.exception({\n\x09        header: i.name\x2C\n\x09        message: `Expected ${V} to be an instance of ${i.name}.`\n\x09      })\n\x09    }\n\n\x09    return V\n\x09  }\n\x09};\n\n\x09webidl.dictionaryConverter = function (converters) {\n\x09  return (dictionary) => {\n\x09    const type = webidl.util.Type(dictionary);\n\x09    const dict = {};\n\n\x09    if (type === 'Null' || type === 'Undefined') {\n\x09      return dict\n\x09    } else if (type !== 'Object') {\n\x09      throw webidl.errors.exception({\n\x09        header: 'Dictionary'\x2C\n\x09        message: `Expected ${dictionary} to be one of: Null\x2C Undefined\x2C Object.`\n\x09      })\n\x09    }\n\n\x09    for (const options of converters) {\n\x09      const { key\x2C defaultValue\x2C required\x2C converter } = options;\n\n\x09      if (required === true) {\n\x09        if (!hasOwn(dictionary\x2C key)) {\n\x09          throw webidl.errors.exception({\n\x09            header: 'Dictionary'\x2C\n\x09            message: `Missing required key "${key}".`\n\x09          })\n\x09        }\n\x09      }\n\n\x09      let value = dictionary[key];\n\x09      const hasDefault = hasOwn(options\x2C 'defaultValue');\n\n\x09      // Only use defaultValue if value is undefined and\n\x09      // a defaultValue options was provided.\n\x09      if (hasDefault && value !== null) {\n\x09        value = value ?? defaultValue;\n\x09      }\n\n\x09      // A key can be optional and have no default value.\n\x09      // When this happens\x2C do not perform a conversion\x2C\n\x09      // and do not assign the key a value.\n\x09      if (required || hasDefault || value !== undefined) {\n\x09        value = converter(value);\n\n\x09        if (\n\x09          options.allowedValues &&\n\x09          !options.allowedValues.includes(value)\n\x09        ) {\n\x09          throw webidl.errors.exception({\n\x09            header: 'Dictionary'\x2C\n\x09            message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join('\x2C ')}.`\n\x09          })\n\x09        }\n\n\x09        dict[key] = value;\n\x09      }\n\x09    }\n\n\x09    return dict\n\x09  }\n\x09};\n\n\x09webidl.nullableConverter = function (converter) {\n\x09  return (V) => {\n\x09    if (V === null) {\n\x09      return V\n\x09    }\n\n\x09    return converter(V)\n\x09  }\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-DOMString\n\x09webidl.converters.DOMString = function (V\x2C opts = {}) {\n\x09  // 1. If V is null and the conversion is to an IDL type\n\x09  //    associated with the [LegacyNullToEmptyString]\n\x09  //    extended attribute\x2C then return the DOMString value\n\x09  //    that represents the empty string.\n\x09  if (V === null && opts.legacyNullToEmptyString) {\n\x09    return ''\n\x09  }\n\n\x09  // 2. Let x be ? ToString(V).\n\x09  if (typeof V === 'symbol') {\n\x09    throw new TypeError('Could not convert argument of type symbol to string.')\n\x09  }\n\n\x09  // 3. Return the IDL DOMString value that represents the\n\x09  //    same sequence of code units as the one the\n\x09  //    ECMAScript String value x represents.\n\x09  return String(V)\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-ByteString\n\x09webidl.converters.ByteString = function (V) {\n\x09  // 1. Let x be ? ToString(V).\n\x09  // Note: DOMString converter perform ? ToString(V)\n\x09  const x = webidl.converters.DOMString(V);\n\n\x09  // 2. If the value of any element of x is greater than\n\x09  //    255\x2C then throw a TypeError.\n\x09  for (let index = 0; index < x.length; index++) {\n\x09    const charCode = x.charCodeAt(index);\n\n\x09    if (charCode > 255) {\n\x09      throw new TypeError(\n\x09        'Cannot convert argument to a ByteString because the character at ' +\n\x09        `index ${index} has a value of ${charCode} which is greater than 255.`\n\x09      )\n\x09    }\n\x09  }\n\n\x09  // 3. Return an IDL ByteString value whose length is the\n\x09  //    length of x\x2C and where the value of each element is\n\x09  //    the value of the corresponding element of x.\n\x09  return x\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-USVString\n\x09webidl.converters.USVString = toUSVString;\n\n\x09// https://webidl.spec.whatwg.org/#es-boolean\n\x09webidl.converters.boolean = function (V) {\n\x09  // 1. Let x be the result of computing ToBoolean(V).\n\x09  const x = Boolean(V);\n\n\x09  // 2. Return the IDL boolean value that is the one that represents\n\x09  //    the same truth value as the ECMAScript Boolean value x.\n\x09  return x\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-any\n\x09webidl.converters.any = function (V) {\n\x09  return V\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-long-long\n\x09webidl.converters['long long'] = function (V) {\n\x09  // 1. Let x be ? ConvertToInt(V\x2C 64\x2C "signed").\n\x09  const x = webidl.util.ConvertToInt(V\x2C 64\x2C 'signed');\n\n\x09  // 2. Return the IDL long long value that represents\n\x09  //    the same numeric value as x.\n\x09  return x\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-unsigned-long-long\n\x09webidl.converters['unsigned long long'] = function (V) {\n\x09  // 1. Let x be ? ConvertToInt(V\x2C 64\x2C "unsigned").\n\x09  const x = webidl.util.ConvertToInt(V\x2C 64\x2C 'unsigned');\n\n\x09  // 2. Return the IDL unsigned long long value that\n\x09  //    represents the same numeric value as x.\n\x09  return x\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-unsigned-long\n\x09webidl.converters['unsigned long'] = function (V) {\n\x09  // 1. Let x be ? ConvertToInt(V\x2C 32\x2C "unsigned").\n\x09  const x = webidl.util.ConvertToInt(V\x2C 32\x2C 'unsigned');\n\n\x09  // 2. Return the IDL unsigned long value that\n\x09  //    represents the same numeric value as x.\n\x09  return x\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#es-unsigned-short\n\x09webidl.converters['unsigned short'] = function (V\x2C opts) {\n\x09  // 1. Let x be ? ConvertToInt(V\x2C 16\x2C "unsigned").\n\x09  const x = webidl.util.ConvertToInt(V\x2C 16\x2C 'unsigned'\x2C opts);\n\n\x09  // 2. Return the IDL unsigned short value that represents\n\x09  //    the same numeric value as x.\n\x09  return x\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\n\x09webidl.converters.ArrayBuffer = function (V\x2C opts = {}) {\n\x09  // 1. If Type(V) is not Object\x2C or V does not have an\n\x09  //    [[ArrayBufferData]] internal slot\x2C then throw a\n\x09  //    TypeError.\n\x09  // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n\x09  // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n\x09  if (\n\x09    webidl.util.Type(V) !== 'Object' ||\n\x09    !types.isAnyArrayBuffer(V)\n\x09  ) {\n\x09    throw webidl.errors.conversionFailed({\n\x09      prefix: `${V}`\x2C\n\x09      argument: `${V}`\x2C\n\x09      types: ['ArrayBuffer']\n\x09    })\n\x09  }\n\n\x09  // 2. If the conversion is not to an IDL type associated\n\x09  //    with the [AllowShared] extended attribute\x2C and\n\x09  //    IsSharedArrayBuffer(V) is true\x2C then throw a\n\x09  //    TypeError.\n\x09  if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n\x09    throw webidl.errors.exception({\n\x09      header: 'ArrayBuffer'\x2C\n\x09      message: 'SharedArrayBuffer is not allowed.'\n\x09    })\n\x09  }\n\n\x09  // 3. If the conversion is not to an IDL type associated\n\x09  //    with the [AllowResizable] extended attribute\x2C and\n\x09  //    IsResizableArrayBuffer(V) is true\x2C then throw a\n\x09  //    TypeError.\n\x09  // Note: resizable ArrayBuffers are currently a proposal.\n\n\x09  // 4. Return the IDL ArrayBuffer value that is a\n\x09  //    reference to the same object as V.\n\x09  return V\n\x09};\n\n\x09webidl.converters.TypedArray = function (V\x2C T\x2C opts = {}) {\n\x09  // 1. Let T be the IDL type V is being converted to.\n\n\x09  // 2. If Type(V) is not Object\x2C or V does not have a\n\x09  //    [[TypedArrayName]] internal slot with a value\n\x09  //    equal to T\u2019s name\x2C then throw a TypeError.\n\x09  if (\n\x09    webidl.util.Type(V) !== 'Object' ||\n\x09    !types.isTypedArray(V) ||\n\x09    V.constructor.name !== T.name\n\x09  ) {\n\x09    throw webidl.errors.conversionFailed({\n\x09      prefix: `${T.name}`\x2C\n\x09      argument: `${V}`\x2C\n\x09      types: [T.name]\n\x09    })\n\x09  }\n\n\x09  // 3. If the conversion is not to an IDL type associated\n\x09  //    with the [AllowShared] extended attribute\x2C and\n\x09  //    IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n\x09  //    true\x2C then throw a TypeError.\n\x09  if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n\x09    throw webidl.errors.exception({\n\x09      header: 'ArrayBuffer'\x2C\n\x09      message: 'SharedArrayBuffer is not allowed.'\n\x09    })\n\x09  }\n\n\x09  // 4. If the conversion is not to an IDL type associated\n\x09  //    with the [AllowResizable] extended attribute\x2C and\n\x09  //    IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n\x09  //    true\x2C then throw a TypeError.\n\x09  // Note: resizable array buffers are currently a proposal\n\n\x09  // 5. Return the IDL value of type T that is a reference\n\x09  //    to the same object as V.\n\x09  return V\n\x09};\n\n\x09webidl.converters.DataView = function (V\x2C opts = {}) {\n\x09  // 1. If Type(V) is not Object\x2C or V does not have a\n\x09  //    [[DataView]] internal slot\x2C then throw a TypeError.\n\x09  if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n\x09    throw webidl.errors.exception({\n\x09      header: 'DataView'\x2C\n\x09      message: 'Object is not a DataView.'\n\x09    })\n\x09  }\n\n\x09  // 2. If the conversion is not to an IDL type associated\n\x09  //    with the [AllowShared] extended attribute\x2C and\n\x09  //    IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true\x2C\n\x09  //    then throw a TypeError.\n\x09  if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n\x09    throw webidl.errors.exception({\n\x09      header: 'ArrayBuffer'\x2C\n\x09      message: 'SharedArrayBuffer is not allowed.'\n\x09    })\n\x09  }\n\n\x09  // 3. If the conversion is not to an IDL type associated\n\x09  //    with the [AllowResizable] extended attribute\x2C and\n\x09  //    IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n\x09  //    true\x2C then throw a TypeError.\n\x09  // Note: resizable ArrayBuffers are currently a proposal\n\n\x09  // 4. Return the IDL DataView value that is a reference\n\x09  //    to the same object as V.\n\x09  return V\n\x09};\n\n\x09// https://webidl.spec.whatwg.org/#BufferSource\n\x09webidl.converters.BufferSource = function (V\x2C opts = {}) {\n\x09  if (types.isAnyArrayBuffer(V)) {\n\x09    return webidl.converters.ArrayBuffer(V\x2C opts)\n\x09  }\n\n\x09  if (types.isTypedArray(V)) {\n\x09    return webidl.converters.TypedArray(V\x2C V.constructor)\n\x09  }\n\n\x09  if (types.isDataView(V)) {\n\x09    return webidl.converters.DataView(V\x2C opts)\n\x09  }\n\n\x09  throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n\x09};\n\n\x09webidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n\x09  webidl.converters.ByteString\n\x09);\n\n\x09webidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n\x09  webidl.converters['sequence<ByteString>']\n\x09);\n\n\x09webidl.converters['record<ByteString\x2C ByteString>'] = webidl.recordConverter(\n\x09  webidl.converters.ByteString\x2C\n\x09  webidl.converters.ByteString\n\x09);\n\n\x09webidl_1 = {\n\x09  webidl\n\x09};\n\x09return webidl_1;\n}\n\nvar dataURL;\nvar hasRequiredDataURL;\n\nfunction requireDataURL () {\n\x09if (hasRequiredDataURL) return dataURL;\n\x09hasRequiredDataURL = 1;\n\x09const assert = require$$0;\n\x09const { atob } = require$$7;\n\x09const { isValidHTTPToken\x2C isomorphicDecode } = requireUtil$3();\n\n\x09const encoder = new TextEncoder();\n\n\x09// Regex\n\x09const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-z0-9]+$/;\n\x09const HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/; // eslint-disable-line\n\x09// https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n\x09const HTTP_QUOTED_STRING_TOKENS = /^(\\u0009|\\x{0020}-\\x{007E}|\\x{0080}-\\x{00FF})+$/; // eslint-disable-line\n\n\x09// https://fetch.spec.whatwg.org/#data-url-processor\n\x09/** @param {URL} dataURL */\n\x09function dataURLProcessor (dataURL) {\n\x09  // 1. Assert: dataURL\u2019s scheme is "data".\n\x09  assert(dataURL.protocol === 'data:');\n\n\x09  // 2. Let input be the result of running the URL\n\x09  // serializer on dataURL with exclude fragment\n\x09  // set to true.\n\x09  let input = URLSerializer(dataURL\x2C true);\n\n\x09  // 3. Remove the leading "data:" string from input.\n\x09  input = input.slice(5);\n\n\x09  // 4. Let position point at the start of input.\n\x09  const position = { position: 0 };\n\n\x09  // 5. Let mimeType be the result of collecting a\n\x09  // sequence of code points that are not equal\n\x09  // to U+002C (\x2C)\x2C given position.\n\x09  let mimeType = collectASequenceOfCodePointsFast(\n\x09    '\x2C'\x2C\n\x09    input\x2C\n\x09    position\n\x09  );\n\n\x09  // 6. Strip leading and trailing ASCII whitespace\n\x09  // from mimeType.\n\x09  // Note: This will only remove U+0020 SPACE code\n\x09  // points\x2C if any.\n\x09  // Undici implementation note: we need to store the\n\x09  // length because if the mimetype has spaces removed\x2C\n\x09  // the wrong amount will be sliced from the input in\n\x09  // step #9\n\x09  const mimeTypeLength = mimeType.length;\n\x09  mimeType = mimeType.replace(/^(\\u0020)+|(\\u0020)+$/g\x2C '');\n\n\x09  // 7. If position is past the end of input\x2C then\n\x09  // return failure\n\x09  if (position.position >= input.length) {\n\x09    return 'failure'\n\x09  }\n\n\x09  // 8. Advance position by 1.\n\x09  position.position++;\n\n\x09  // 9. Let encodedBody be the remainder of input.\n\x09  const encodedBody = input.slice(mimeTypeLength + 1);\n\n\x09  // 10. Let body be the percent-decoding of encodedBody.\n\x09  let body = stringPercentDecode(encodedBody);\n\n\x09  // 11. If mimeType ends with U+003B (;)\x2C followed by\n\x09  // zero or more U+0020 SPACE\x2C followed by an ASCII\n\x09  // case-insensitive match for "base64"\x2C then:\n\x09  if (/;(\\u0020){0\x2C}base64$/i.test(mimeType)) {\n\x09    // 1. Let stringBody be the isomorphic decode of body.\n\x09    const stringBody = isomorphicDecode(body);\n\n\x09    // 2. Set body to the forgiving-base64 decode of\n\x09    // stringBody.\n\x09    body = forgivingBase64(stringBody);\n\n\x09    // 3. If body is failure\x2C then return failure.\n\x09    if (body === 'failure') {\n\x09      return 'failure'\n\x09    }\n\n\x09    // 4. Remove the last 6 code points from mimeType.\n\x09    mimeType = mimeType.slice(0\x2C -6);\n\n\x09    // 5. Remove trailing U+0020 SPACE code points from mimeType\x2C\n\x09    // if any.\n\x09    mimeType = mimeType.replace(/(\\u0020)+$/\x2C '');\n\n\x09    // 6. Remove the last U+003B (;) code point from mimeType.\n\x09    mimeType = mimeType.slice(0\x2C -1);\n\x09  }\n\n\x09  // 12. If mimeType starts with U+003B (;)\x2C then prepend\n\x09  // "text/plain" to mimeType.\n\x09  if (mimeType.startsWith(';')) {\n\x09    mimeType = 'text/plain' + mimeType;\n\x09  }\n\n\x09  // 13. Let mimeTypeRecord be the result of parsing\n\x09  // mimeType.\n\x09  let mimeTypeRecord = parseMIMEType(mimeType);\n\n\x09  // 14. If mimeTypeRecord is failure\x2C then set\n\x09  // mimeTypeRecord to text/plain;charset=US-ASCII.\n\x09  if (mimeTypeRecord === 'failure') {\n\x09    mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII');\n\x09  }\n\n\x09  // 15. Return a new data: URL struct whose MIME\n\x09  // type is mimeTypeRecord and body is body.\n\x09  // https://fetch.spec.whatwg.org/#data-url-struct\n\x09  return { mimeType: mimeTypeRecord\x2C body }\n\x09}\n\n\x09// https://url.spec.whatwg.org/#concept-url-serializer\n\x09/**\n\x09 * @param {URL} url\n\x09 * @param {boolean} excludeFragment\n\x09 */\n\x09function URLSerializer (url\x2C excludeFragment = false) {\n\x09  const href = url.href;\n\n\x09  if (!excludeFragment) {\n\x09    return href\n\x09  }\n\n\x09  const hash = href.lastIndexOf('#');\n\x09  if (hash === -1) {\n\x09    return href\n\x09  }\n\x09  return href.slice(0\x2C hash)\n\x09}\n\n\x09// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n\x09/**\n\x09 * @param {(char: string) => boolean} condition\n\x09 * @param {string} input\n\x09 * @param {{ position: number }} position\n\x09 */\n\x09function collectASequenceOfCodePoints (condition\x2C input\x2C position) {\n\x09  // 1. Let result be the empty string.\n\x09  let result = '';\n\n\x09  // 2. While position doesn\u2019t point past the end of input and the\n\x09  // code point at position within input meets the condition condition:\n\x09  while (position.position < input.length && condition(input[position.position])) {\n\x09    // 1. Append that code point to the end of result.\n\x09    result += input[position.position];\n\n\x09    // 2. Advance position by 1.\n\x09    position.position++;\n\x09  }\n\n\x09  // 3. Return result.\n\x09  return result\n\x09}\n\n\x09/**\n\x09 * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n\x09 * @param {string} char\n\x09 * @param {string} input\n\x09 * @param {{ position: number }} position\n\x09 */\n\x09function collectASequenceOfCodePointsFast (char\x2C input\x2C position) {\n\x09  const idx = input.indexOf(char\x2C position.position);\n\x09  const start = position.position;\n\n\x09  if (idx === -1) {\n\x09    position.position = input.length;\n\x09    return input.slice(start)\n\x09  }\n\n\x09  position.position = idx;\n\x09  return input.slice(start\x2C position.position)\n\x09}\n\n\x09// https://url.spec.whatwg.org/#string-percent-decode\n\x09/** @param {string} input */\n\x09function stringPercentDecode (input) {\n\x09  // 1. Let bytes be the UTF-8 encoding of input.\n\x09  const bytes = encoder.encode(input);\n\n\x09  // 2. Return the percent-decoding of bytes.\n\x09  return percentDecode(bytes)\n\x09}\n\n\x09// https://url.spec.whatwg.org/#percent-decode\n\x09/** @param {Uint8Array} input */\n\x09function percentDecode (input) {\n\x09  // 1. Let output be an empty byte sequence.\n\x09  /** @type {number[]} */\n\x09  const output = [];\n\n\x09  // 2. For each byte byte in input:\n\x09  for (let i = 0; i < input.length; i++) {\n\x09    const byte = input[i];\n\n\x09    // 1. If byte is not 0x25 (%)\x2C then append byte to output.\n\x09    if (byte !== 0x25) {\n\x09      output.push(byte);\n\n\x09    // 2. Otherwise\x2C if byte is 0x25 (%) and the next two bytes\n\x09    // after byte in input are not in the ranges\n\x09    // 0x30 (0) to 0x39 (9)\x2C 0x41 (A) to 0x46 (F)\x2C\n\x09    // and 0x61 (a) to 0x66 (f)\x2C all inclusive\x2C append byte\n\x09    // to output.\n\x09    } else if (\n\x09      byte === 0x25 &&\n\x09      !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1]\x2C input[i + 2]))\n\x09    ) {\n\x09      output.push(0x25);\n\n\x09    // 3. Otherwise:\n\x09    } else {\n\x09      // 1. Let bytePoint be the two bytes after byte in input\x2C\n\x09      // decoded\x2C and then interpreted as hexadecimal number.\n\x09      const nextTwoBytes = String.fromCharCode(input[i + 1]\x2C input[i + 2]);\n\x09      const bytePoint = Number.parseInt(nextTwoBytes\x2C 16);\n\n\x09      // 2. Append a byte whose value is bytePoint to output.\n\x09      output.push(bytePoint);\n\n\x09      // 3. Skip the next two bytes in input.\n\x09      i += 2;\n\x09    }\n\x09  }\n\n\x09  // 3. Return output.\n\x09  return Uint8Array.from(output)\n\x09}\n\n\x09// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n\x09/** @param {string} input */\n\x09function parseMIMEType (input) {\n\x09  // 1. Remove any leading and trailing HTTP whitespace\n\x09  // from input.\n\x09  input = input.trim();\n\n\x09  // 2. Let position be a position variable for input\x2C\n\x09  // initially pointing at the start of input.\n\x09  const position = { position: 0 };\n\n\x09  // 3. Let type be the result of collecting a sequence\n\x09  // of code points that are not U+002F (/) from\n\x09  // input\x2C given position.\n\x09  const type = collectASequenceOfCodePointsFast(\n\x09    '/'\x2C\n\x09    input\x2C\n\x09    position\n\x09  );\n\n\x09  // 4. If type is the empty string or does not solely\n\x09  // contain HTTP token code points\x2C then return failure.\n\x09  // https://mimesniff.spec.whatwg.org/#http-token-code-point\n\x09  if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n\x09    return 'failure'\n\x09  }\n\n\x09  // 5. If position is past the end of input\x2C then return\n\x09  // failure\n\x09  if (position.position > input.length) {\n\x09    return 'failure'\n\x09  }\n\n\x09  // 6. Advance position by 1. (This skips past U+002F (/).)\n\x09  position.position++;\n\n\x09  // 7. Let subtype be the result of collecting a sequence of\n\x09  // code points that are not U+003B (;) from input\x2C given\n\x09  // position.\n\x09  let subtype = collectASequenceOfCodePointsFast(\n\x09    ';'\x2C\n\x09    input\x2C\n\x09    position\n\x09  );\n\n\x09  // 8. Remove any trailing HTTP whitespace from subtype.\n\x09  subtype = subtype.trimEnd();\n\n\x09  // 9. If subtype is the empty string or does not solely\n\x09  // contain HTTP token code points\x2C then return failure.\n\x09  if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n\x09    return 'failure'\n\x09  }\n\n\x09  // 10. Let mimeType be a new MIME type record whose type\n\x09  // is type\x2C in ASCII lowercase\x2C and subtype is subtype\x2C\n\x09  // in ASCII lowercase.\n\x09  // https://mimesniff.spec.whatwg.org/#mime-type\n\x09  const mimeType = {\n\x09    type: type.toLowerCase()\x2C\n\x09    subtype: subtype.toLowerCase()\x2C\n\x09    /** @type {Map<string\x2C string>} */\n\x09    parameters: new Map()\x2C\n\x09    // https://mimesniff.spec.whatwg.org/#mime-type-essence\n\x09    essence: `${type}/${subtype}`\n\x09  };\n\n\x09  // 11. While position is not past the end of input:\n\x09  while (position.position < input.length) {\n\x09    // 1. Advance position by 1. (This skips past U+003B (;).)\n\x09    position.position++;\n\n\x09    // 2. Collect a sequence of code points that are HTTP\n\x09    // whitespace from input given position.\n\x09    collectASequenceOfCodePoints(\n\x09      // https://fetch.spec.whatwg.org/#http-whitespace\n\x09      char => HTTP_WHITESPACE_REGEX.test(char)\x2C\n\x09      input\x2C\n\x09      position\n\x09    );\n\n\x09    // 3. Let parameterName be the result of collecting a\n\x09    // sequence of code points that are not U+003B (;)\n\x09    // or U+003D (=) from input\x2C given position.\n\x09    let parameterName = collectASequenceOfCodePoints(\n\x09      (char) => char !== ';' && char !== '='\x2C\n\x09      input\x2C\n\x09      position\n\x09    );\n\n\x09    // 4. Set parameterName to parameterName\x2C in ASCII\n\x09    // lowercase.\n\x09    parameterName = parameterName.toLowerCase();\n\n\x09    // 5. If position is not past the end of input\x2C then:\n\x09    if (position.position < input.length) {\n\x09      // 1. If the code point at position within input is\n\x09      // U+003B (;)\x2C then continue.\n\x09      if (input[position.position] === ';') {\n\x09        continue\n\x09      }\n\n\x09      // 2. Advance position by 1. (This skips past U+003D (=).)\n\x09      position.position++;\n\x09    }\n\n\x09    // 6. If position is past the end of input\x2C then break.\n\x09    if (position.position > input.length) {\n\x09      break\n\x09    }\n\n\x09    // 7. Let parameterValue be null.\n\x09    let parameterValue = null;\n\n\x09    // 8. If the code point at position within input is\n\x09    // U+0022 (")\x2C then:\n\x09    if (input[position.position] === '"') {\n\x09      // 1. Set parameterValue to the result of collecting\n\x09      // an HTTP quoted string from input\x2C given position\n\x09      // and the extract-value flag.\n\x09      parameterValue = collectAnHTTPQuotedString(input\x2C position\x2C true);\n\n\x09      // 2. Collect a sequence of code points that are not\n\x09      // U+003B (;) from input\x2C given position.\n\x09      collectASequenceOfCodePointsFast(\n\x09        ';'\x2C\n\x09        input\x2C\n\x09        position\n\x09      );\n\n\x09    // 9. Otherwise:\n\x09    } else {\n\x09      // 1. Set parameterValue to the result of collecting\n\x09      // a sequence of code points that are not U+003B (;)\n\x09      // from input\x2C given position.\n\x09      parameterValue = collectASequenceOfCodePointsFast(\n\x09        ';'\x2C\n\x09        input\x2C\n\x09        position\n\x09      );\n\n\x09      // 2. Remove any trailing HTTP whitespace from parameterValue.\n\x09      // Note: it says "trailing" whitespace; leading is fine.\n\x09      parameterValue = parameterValue.trimEnd();\n\n\x09      // 3. If parameterValue is the empty string\x2C then continue.\n\x09      if (parameterValue.length === 0) {\n\x09        continue\n\x09      }\n\x09    }\n\n\x09    // 10. If all of the following are true\n\x09    // - parameterName is not the empty string\n\x09    // - parameterName solely contains HTTP token code points\n\x09    // - parameterValue solely contains HTTP quoted-string token code points\n\x09    // - mimeType\u2019s parameters[parameterName] does not exist\n\x09    // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n\x09    if (\n\x09      parameterName.length !== 0 &&\n\x09      HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n\x09      !HTTP_QUOTED_STRING_TOKENS.test(parameterValue) &&\n\x09      !mimeType.parameters.has(parameterName)\n\x09    ) {\n\x09      mimeType.parameters.set(parameterName\x2C parameterValue);\n\x09    }\n\x09  }\n\n\x09  // 12. Return mimeType.\n\x09  return mimeType\n\x09}\n\n\x09// https://infra.spec.whatwg.org/#forgiving-base64-decode\n\x09/** @param {string} data */\n\x09function forgivingBase64 (data) {\n\x09  // 1. Remove all ASCII whitespace from data.\n\x09  data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g\x2C '');  // eslint-disable-line\n\n\x09  // 2. If data\u2019s code point length divides by 4 leaving\n\x09  // no remainder\x2C then:\n\x09  if (data.length % 4 === 0) {\n\x09    // 1. If data ends with one or two U+003D (=) code points\x2C\n\x09    // then remove them from data.\n\x09    data = data.replace(/=?=$/\x2C '');\n\x09  }\n\n\x09  // 3. If data\u2019s code point length divides by 4 leaving\n\x09  // a remainder of 1\x2C then return failure.\n\x09  if (data.length % 4 === 1) {\n\x09    return 'failure'\n\x09  }\n\n\x09  // 4. If data contains a code point that is not one of\n\x09  //  U+002B (+)\n\x09  //  U+002F (/)\n\x09  //  ASCII alphanumeric\n\x09  // then return failure.\n\x09  if (/[^+/0-9A-Za-z]/.test(data)) {\n\x09    return 'failure'\n\x09  }\n\n\x09  const binary = atob(data);\n\x09  const bytes = new Uint8Array(binary.length);\n\n\x09  for (let byte = 0; byte < binary.length; byte++) {\n\x09    bytes[byte] = binary.charCodeAt(byte);\n\x09  }\n\n\x09  return bytes\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n\x09// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n\x09/**\n\x09 * @param {string} input\n\x09 * @param {{ position: number }} position\n\x09 * @param {boolean?} extractValue\n\x09 */\n\x09function collectAnHTTPQuotedString (input\x2C position\x2C extractValue) {\n\x09  // 1. Let positionStart be position.\n\x09  const positionStart = position.position;\n\n\x09  // 2. Let value be the empty string.\n\x09  let value = '';\n\n\x09  // 3. Assert: the code point at position within input\n\x09  // is U+0022 (").\n\x09  assert(input[position.position] === '"');\n\n\x09  // 4. Advance position by 1.\n\x09  position.position++;\n\n\x09  // 5. While true:\n\x09  while (true) {\n\x09    // 1. Append the result of collecting a sequence of code points\n\x09    // that are not U+0022 (") or U+005C (\\) from input\x2C given\n\x09    // position\x2C to value.\n\x09    value += collectASequenceOfCodePoints(\n\x09      (char) => char !== '"' && char !== '\\\\'\x2C\n\x09      input\x2C\n\x09      position\n\x09    );\n\n\x09    // 2. If position is past the end of input\x2C then break.\n\x09    if (position.position >= input.length) {\n\x09      break\n\x09    }\n\n\x09    // 3. Let quoteOrBackslash be the code point at position within\n\x09    // input.\n\x09    const quoteOrBackslash = input[position.position];\n\n\x09    // 4. Advance position by 1.\n\x09    position.position++;\n\n\x09    // 5. If quoteOrBackslash is U+005C (\\)\x2C then:\n\x09    if (quoteOrBackslash === '\\\\') {\n\x09      // 1. If position is past the end of input\x2C then append\n\x09      // U+005C (\\) to value and break.\n\x09      if (position.position >= input.length) {\n\x09        value += '\\\\';\n\x09        break\n\x09      }\n\n\x09      // 2. Append the code point at position within input to value.\n\x09      value += input[position.position];\n\n\x09      // 3. Advance position by 1.\n\x09      position.position++;\n\n\x09    // 6. Otherwise:\n\x09    } else {\n\x09      // 1. Assert: quoteOrBackslash is U+0022 (").\n\x09      assert(quoteOrBackslash === '"');\n\n\x09      // 2. Break.\n\x09      break\n\x09    }\n\x09  }\n\n\x09  // 6. If the extract-value flag is set\x2C then return value.\n\x09  if (extractValue) {\n\x09    return value\n\x09  }\n\n\x09  // 7. Return the code points from positionStart to position\x2C\n\x09  // inclusive\x2C within input.\n\x09  return input.slice(positionStart\x2C position.position)\n\x09}\n\n\x09/**\n\x09 * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n\x09 */\n\x09function serializeAMimeType (mimeType) {\n\x09  assert(mimeType !== 'failure');\n\x09  const { type\x2C subtype\x2C parameters } = mimeType;\n\n\x09  // 1. Let serialization be the concatenation of mimeType\u2019s\n\x09  //    type\x2C U+002F (/)\x2C and mimeType\u2019s subtype.\n\x09  let serialization = `${type}/${subtype}`;\n\n\x09  // 2. For each name \u2192 value of mimeType\u2019s parameters:\n\x09  for (let [name\x2C value] of parameters.entries()) {\n\x09    // 1. Append U+003B (;) to serialization.\n\x09    serialization += ';';\n\n\x09    // 2. Append name to serialization.\n\x09    serialization += name;\n\n\x09    // 3. Append U+003D (=) to serialization.\n\x09    serialization += '=';\n\n\x09    // 4. If value does not solely contain HTTP token code\n\x09    //    points or value is the empty string\x2C then:\n\x09    if (!isValidHTTPToken(value)) {\n\x09      // 1. Precede each occurence of U+0022 (") or\n\x09      //    U+005C (\\) in value with U+005C (\\).\n\x09      value = value.replace(/(\\\\|")/g\x2C '\\\\$1');\n\n\x09      // 2. Prepend U+0022 (") to value.\n\x09      value = '"' + value;\n\n\x09      // 3. Append U+0022 (") to value.\n\x09      value += '"';\n\x09    }\n\n\x09    // 5. Append value to serialization.\n\x09    serialization += value;\n\x09  }\n\n\x09  // 3. Return serialization.\n\x09  return serialization\n\x09}\n\n\x09dataURL = {\n\x09  dataURLProcessor\x2C\n\x09  URLSerializer\x2C\n\x09  collectASequenceOfCodePoints\x2C\n\x09  collectASequenceOfCodePointsFast\x2C\n\x09  stringPercentDecode\x2C\n\x09  parseMIMEType\x2C\n\x09  collectAnHTTPQuotedString\x2C\n\x09  serializeAMimeType\n\x09};\n\x09return dataURL;\n}\n\nvar file;\nvar hasRequiredFile;\n\nfunction requireFile () {\n\x09if (hasRequiredFile) return file;\n\x09hasRequiredFile = 1;\n\n\x09const { Blob\x2C File: NativeFile } = require$$7;\n\x09const { types } = require$$0$2;\n\x09const { kState } = requireSymbols$2();\n\x09const { isBlobLike } = requireUtil$3();\n\x09const { webidl } = requireWebidl();\n\x09const { parseMIMEType\x2C serializeAMimeType } = requireDataURL();\n\x09const { kEnumerableProperty } = util$i;\n\n\x09class File extends Blob {\n\x09  constructor (fileBits\x2C fileName\x2C options = {}) {\n\x09    // The File constructor is invoked with two or three parameters\x2C depending\n\x09    // on whether the optional dictionary parameter is used. When the File()\n\x09    // constructor is invoked\x2C user agents must run the following steps:\n\x09    webidl.argumentLengthCheck(arguments\x2C 2\x2C { header: 'File constructor' });\n\n\x09    fileBits = webidl.converters['sequence<BlobPart>'](fileBits);\n\x09    fileName = webidl.converters.USVString(fileName);\n\x09    options = webidl.converters.FilePropertyBag(options);\n\n\x09    // 1. Let bytes be the result of processing blob parts given fileBits and\n\x09    // options.\n\x09    // Note: Blob handles this for us\n\n\x09    // 2. Let n be the fileName argument to the constructor.\n\x09    const n = fileName;\n\n\x09    // 3. Process FilePropertyBag dictionary argument by running the following\n\x09    // substeps:\n\n\x09    //    1. If the type member is provided and is not the empty string\x2C let t\n\x09    //    be set to the type dictionary member. If t contains any characters\n\x09    //    outside the range U+0020 to U+007E\x2C then set t to the empty string\n\x09    //    and return from these substeps.\n\x09    //    2. Convert every character in t to ASCII lowercase.\n\x09    let t = options.type;\n\x09    let d;\n\n\x09    // eslint-disable-next-line no-labels\n\x09    substep: {\n\x09      if (t) {\n\x09        t = parseMIMEType(t);\n\n\x09        if (t === 'failure') {\n\x09          t = '';\n\x09          // eslint-disable-next-line no-labels\n\x09          break substep\n\x09        }\n\n\x09        t = serializeAMimeType(t).toLowerCase();\n\x09      }\n\n\x09      //    3. If the lastModified member is provided\x2C let d be set to the\n\x09      //    lastModified dictionary member. If it is not provided\x2C set d to the\n\x09      //    current date and time represented as the number of milliseconds since\n\x09      //    the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n\x09      d = options.lastModified;\n\x09    }\n\n\x09    // 4. Return a new File object F such that:\n\x09    // F refers to the bytes byte sequence.\n\x09    // F.size is set to the number of total bytes in bytes.\n\x09    // F.name is set to n.\n\x09    // F.type is set to t.\n\x09    // F.lastModified is set to d.\n\n\x09    super(processBlobParts(fileBits\x2C options)\x2C { type: t });\n\x09    this[kState] = {\n\x09      name: n\x2C\n\x09      lastModified: d\x2C\n\x09      type: t\n\x09    };\n\x09  }\n\n\x09  get name () {\n\x09    webidl.brandCheck(this\x2C File);\n\n\x09    return this[kState].name\n\x09  }\n\n\x09  get lastModified () {\n\x09    webidl.brandCheck(this\x2C File);\n\n\x09    return this[kState].lastModified\n\x09  }\n\n\x09  get type () {\n\x09    webidl.brandCheck(this\x2C File);\n\n\x09    return this[kState].type\n\x09  }\n\x09}\n\n\x09class FileLike {\n\x09  constructor (blobLike\x2C fileName\x2C options = {}) {\n\x09    // TODO: argument idl type check\n\n\x09    // The File constructor is invoked with two or three parameters\x2C depending\n\x09    // on whether the optional dictionary parameter is used. When the File()\n\x09    // constructor is invoked\x2C user agents must run the following steps:\n\n\x09    // 1. Let bytes be the result of processing blob parts given fileBits and\n\x09    // options.\n\n\x09    // 2. Let n be the fileName argument to the constructor.\n\x09    const n = fileName;\n\n\x09    // 3. Process FilePropertyBag dictionary argument by running the following\n\x09    // substeps:\n\n\x09    //    1. If the type member is provided and is not the empty string\x2C let t\n\x09    //    be set to the type dictionary member. If t contains any characters\n\x09    //    outside the range U+0020 to U+007E\x2C then set t to the empty string\n\x09    //    and return from these substeps.\n\x09    //    TODO\n\x09    const t = options.type;\n\n\x09    //    2. Convert every character in t to ASCII lowercase.\n\x09    //    TODO\n\n\x09    //    3. If the lastModified member is provided\x2C let d be set to the\n\x09    //    lastModified dictionary member. If it is not provided\x2C set d to the\n\x09    //    current date and time represented as the number of milliseconds since\n\x09    //    the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n\x09    const d = options.lastModified ?? Date.now();\n\n\x09    // 4. Return a new File object F such that:\n\x09    // F refers to the bytes byte sequence.\n\x09    // F.size is set to the number of total bytes in bytes.\n\x09    // F.name is set to n.\n\x09    // F.type is set to t.\n\x09    // F.lastModified is set to d.\n\n\x09    this[kState] = {\n\x09      blobLike\x2C\n\x09      name: n\x2C\n\x09      type: t\x2C\n\x09      lastModified: d\n\x09    };\n\x09  }\n\n\x09  stream (...args) {\n\x09    webidl.brandCheck(this\x2C FileLike);\n\n\x09    return this[kState].blobLike.stream(...args)\n\x09  }\n\n\x09  arrayBuffer (...args) {\n\x09    webidl.brandCheck(this\x2C FileLike);\n\n\x09    return this[kState].blobLike.arrayBuffer(...args)\n\x09  }\n\n\x09  slice (...args) {\n\x09    webidl.brandCheck(this\x2C FileLike);\n\n\x09    return this[kState].blobLike.slice(...args)\n\x09  }\n\n\x09  text (...args) {\n\x09    webidl.brandCheck(this\x2C FileLike);\n\n\x09    return this[kState].blobLike.text(...args)\n\x09  }\n\n\x09  get size () {\n\x09    webidl.brandCheck(this\x2C FileLike);\n\n\x09    return this[kState].blobLike.size\n\x09  }\n\n\x09  get type () {\n\x09    webidl.brandCheck(this\x2C FileLike);\n\n\x09    return this[kState].blobLike.type\n\x09  }\n\n\x09  get name () {\n\x09    webidl.brandCheck(this\x2C FileLike);\n\n\x09    return this[kState].name\n\x09  }\n\n\x09  get lastModified () {\n\x09    webidl.brandCheck(this\x2C FileLike);\n\n\x09    return this[kState].lastModified\n\x09  }\n\n\x09  get [Symbol.toStringTag] () {\n\x09    return 'File'\n\x09  }\n\x09}\n\n\x09Object.defineProperties(File.prototype\x2C {\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'File'\x2C\n\x09    configurable: true\n\x09  }\x2C\n\x09  name: kEnumerableProperty\x2C\n\x09  lastModified: kEnumerableProperty\n\x09});\n\n\x09webidl.converters.Blob = webidl.interfaceConverter(Blob);\n\n\x09webidl.converters.BlobPart = function (V\x2C opts) {\n\x09  if (webidl.util.Type(V) === 'Object') {\n\x09    if (isBlobLike(V)) {\n\x09      return webidl.converters.Blob(V\x2C { strict: false })\n\x09    }\n\n\x09    if (\n\x09      ArrayBuffer.isView(V) ||\n\x09      types.isAnyArrayBuffer(V)\n\x09    ) {\n\x09      return webidl.converters.BufferSource(V\x2C opts)\n\x09    }\n\x09  }\n\n\x09  return webidl.converters.USVString(V\x2C opts)\n\x09};\n\n\x09webidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n\x09  webidl.converters.BlobPart\n\x09);\n\n\x09// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\n\x09webidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n\x09  {\n\x09    key: 'lastModified'\x2C\n\x09    converter: webidl.converters['long long']\x2C\n\x09    get defaultValue () {\n\x09      return Date.now()\n\x09    }\n\x09  }\x2C\n\x09  {\n\x09    key: 'type'\x2C\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    defaultValue: ''\n\x09  }\x2C\n\x09  {\n\x09    key: 'endings'\x2C\n\x09    converter: (value) => {\n\x09      value = webidl.converters.DOMString(value);\n\x09      value = value.toLowerCase();\n\n\x09      if (value !== 'native') {\n\x09        value = 'transparent';\n\x09      }\n\n\x09      return value\n\x09    }\x2C\n\x09    defaultValue: 'transparent'\n\x09  }\n\x09]);\n\n\x09/**\n\x09 * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n\x09 * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n\x09 * @param {{ type: string\x2C endings: string }} options\n\x09 */\n\x09function processBlobParts (parts\x2C options) {\n\x09  // 1. Let bytes be an empty sequence of bytes.\n\x09  /** @type {NodeJS.TypedArray[]} */\n\x09  const bytes = [];\n\n\x09  // 2. For each element in parts:\n\x09  for (const element of parts) {\n\x09    // 1. If element is a USVString\x2C run the following substeps:\n\x09    if (typeof element === 'string') {\n\x09      // 1. Let s be element.\n\x09      let s = element;\n\n\x09      // 2. If the endings member of options is "native"\x2C set s\n\x09      //    to the result of converting line endings to native\n\x09      //    of element.\n\x09      if (options.endings === 'native') {\n\x09        s = convertLineEndingsNative(s);\n\x09      }\n\n\x09      // 3. Append the result of UTF-8 encoding s to bytes.\n\x09      bytes.push(new TextEncoder().encode(s));\n\x09    } else if (\n\x09      types.isAnyArrayBuffer(element) ||\n\x09      types.isTypedArray(element)\n\x09    ) {\n\x09      // 2. If element is a BufferSource\x2C get a copy of the\n\x09      //    bytes held by the buffer source\x2C and append those\n\x09      //    bytes to bytes.\n\x09      if (!element.buffer) { // ArrayBuffer\n\x09        bytes.push(new Uint8Array(element));\n\x09      } else {\n\x09        bytes.push(\n\x09          new Uint8Array(element.buffer\x2C element.byteOffset\x2C element.byteLength)\n\x09        );\n\x09      }\n\x09    } else if (isBlobLike(element)) {\n\x09      // 3. If element is a Blob\x2C append the bytes it represents\n\x09      //    to bytes.\n\x09      bytes.push(element);\n\x09    }\n\x09  }\n\n\x09  // 3. Return bytes.\n\x09  return bytes\n\x09}\n\n\x09/**\n\x09 * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n\x09 * @param {string} s\n\x09 */\n\x09function convertLineEndingsNative (s) {\n\x09  // 1. Let native line ending be be the code point U+000A LF.\n\x09  let nativeLineEnding = '\\n';\n\n\x09  // 2. If the underlying platform\u2019s conventions are to\n\x09  //    represent newlines as a carriage return and line feed\n\x09  //    sequence\x2C set native line ending to the code point\n\x09  //    U+000D CR followed by the code point U+000A LF.\n\x09  if (process.platform === 'win32') {\n\x09    nativeLineEnding = '\\r\\n';\n\x09  }\n\n\x09  return s.replace(/\\r?\\n/g\x2C nativeLineEnding)\n\x09}\n\n\x09// If this function is moved to ./util.js\x2C some tools (such as\n\x09// rollup) will warn about circular dependencies. See:\n\x09// https://github.com/nodejs/undici/issues/1629\n\x09function isFileLike (object) {\n\x09  return (\n\x09    (NativeFile && object instanceof NativeFile) ||\n\x09    object instanceof File || (\n\x09      object &&\n\x09      (typeof object.stream === 'function' ||\n\x09      typeof object.arrayBuffer === 'function') &&\n\x09      object[Symbol.toStringTag] === 'File'\n\x09    )\n\x09  )\n\x09}\n\n\x09file = { File\x2C FileLike\x2C isFileLike };\n\x09return file;\n}\n\nvar formdata;\nvar hasRequiredFormdata;\n\nfunction requireFormdata () {\n\x09if (hasRequiredFormdata) return formdata;\n\x09hasRequiredFormdata = 1;\n\n\x09const { isBlobLike\x2C toUSVString\x2C makeIterator } = requireUtil$3();\n\x09const { kState } = requireSymbols$2();\n\x09const { File: UndiciFile\x2C FileLike\x2C isFileLike } = requireFile();\n\x09const { webidl } = requireWebidl();\n\x09const { Blob\x2C File: NativeFile } = require$$7;\n\n\x09/** @type {globalThis['File']} */\n\x09const File = NativeFile ?? UndiciFile;\n\n\x09// https://xhr.spec.whatwg.org/#formdata\n\x09class FormData {\n\x09  constructor (form) {\n\x09    if (form !== undefined) {\n\x09      throw webidl.errors.conversionFailed({\n\x09        prefix: 'FormData constructor'\x2C\n\x09        argument: 'Argument 1'\x2C\n\x09        types: ['undefined']\n\x09      })\n\x09    }\n\n\x09    this[kState] = [];\n\x09  }\n\n\x09  append (name\x2C value\x2C filename = undefined) {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 2\x2C { header: 'FormData.append' });\n\n\x09    if (arguments.length === 3 && !isBlobLike(value)) {\n\x09      throw new TypeError(\n\x09        "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'"\n\x09      )\n\x09    }\n\n\x09    // 1. Let value be value if given; otherwise blobValue.\n\n\x09    name = webidl.converters.USVString(name);\n\x09    value = isBlobLike(value)\n\x09      ? webidl.converters.Blob(value\x2C { strict: false })\n\x09      : webidl.converters.USVString(value);\n\x09    filename = arguments.length === 3\n\x09      ? webidl.converters.USVString(filename)\n\x09      : undefined;\n\n\x09    // 2. Let entry be the result of creating an entry with\n\x09    // name\x2C value\x2C and filename if given.\n\x09    const entry = makeEntry(name\x2C value\x2C filename);\n\n\x09    // 3. Append entry to this\u2019s entry list.\n\x09    this[kState].push(entry);\n\x09  }\n\n\x09  delete (name) {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'FormData.delete' });\n\n\x09    name = webidl.converters.USVString(name);\n\n\x09    // The delete(name) method steps are to remove all entries whose name\n\x09    // is name from this\u2019s entry list.\n\x09    this[kState] = this[kState].filter(entry => entry.name !== name);\n\x09  }\n\n\x09  get (name) {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'FormData.get' });\n\n\x09    name = webidl.converters.USVString(name);\n\n\x09    // 1. If there is no entry whose name is name in this\u2019s entry list\x2C\n\x09    // then return null.\n\x09    const idx = this[kState].findIndex((entry) => entry.name === name);\n\x09    if (idx === -1) {\n\x09      return null\n\x09    }\n\n\x09    // 2. Return the value of the first entry whose name is name from\n\x09    // this\u2019s entry list.\n\x09    return this[kState][idx].value\n\x09  }\n\n\x09  getAll (name) {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'FormData.getAll' });\n\n\x09    name = webidl.converters.USVString(name);\n\n\x09    // 1. If there is no entry whose name is name in this\u2019s entry list\x2C\n\x09    // then return the empty list.\n\x09    // 2. Return the values of all entries whose name is name\x2C in order\x2C\n\x09    // from this\u2019s entry list.\n\x09    return this[kState]\n\x09      .filter((entry) => entry.name === name)\n\x09      .map((entry) => entry.value)\n\x09  }\n\n\x09  has (name) {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'FormData.has' });\n\n\x09    name = webidl.converters.USVString(name);\n\n\x09    // The has(name) method steps are to return true if there is an entry\n\x09    // whose name is name in this\u2019s entry list; otherwise false.\n\x09    return this[kState].findIndex((entry) => entry.name === name) !== -1\n\x09  }\n\n\x09  set (name\x2C value\x2C filename = undefined) {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 2\x2C { header: 'FormData.set' });\n\n\x09    if (arguments.length === 3 && !isBlobLike(value)) {\n\x09      throw new TypeError(\n\x09        "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'"\n\x09      )\n\x09    }\n\n\x09    // The set(name\x2C value) and set(name\x2C blobValue\x2C filename) method steps\n\x09    // are:\n\n\x09    // 1. Let value be value if given; otherwise blobValue.\n\n\x09    name = webidl.converters.USVString(name);\n\x09    value = isBlobLike(value)\n\x09      ? webidl.converters.Blob(value\x2C { strict: false })\n\x09      : webidl.converters.USVString(value);\n\x09    filename = arguments.length === 3\n\x09      ? toUSVString(filename)\n\x09      : undefined;\n\n\x09    // 2. Let entry be the result of creating an entry with name\x2C value\x2C and\n\x09    // filename if given.\n\x09    const entry = makeEntry(name\x2C value\x2C filename);\n\n\x09    // 3. If there are entries in this\u2019s entry list whose name is name\x2C then\n\x09    // replace the first such entry with entry and remove the others.\n\x09    const idx = this[kState].findIndex((entry) => entry.name === name);\n\x09    if (idx !== -1) {\n\x09      this[kState] = [\n\x09        ...this[kState].slice(0\x2C idx)\x2C\n\x09        entry\x2C\n\x09        ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n\x09      ];\n\x09    } else {\n\x09      // 4. Otherwise\x2C append entry to this\u2019s entry list.\n\x09      this[kState].push(entry);\n\x09    }\n\x09  }\n\n\x09  entries () {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    return makeIterator(\n\x09      () => this[kState].map(pair => [pair.name\x2C pair.value])\x2C\n\x09      'FormData'\x2C\n\x09      'key+value'\n\x09    )\n\x09  }\n\n\x09  keys () {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    return makeIterator(\n\x09      () => this[kState].map(pair => [pair.name\x2C pair.value])\x2C\n\x09      'FormData'\x2C\n\x09      'key'\n\x09    )\n\x09  }\n\n\x09  values () {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    return makeIterator(\n\x09      () => this[kState].map(pair => [pair.name\x2C pair.value])\x2C\n\x09      'FormData'\x2C\n\x09      'value'\n\x09    )\n\x09  }\n\n\x09  /**\n\x09   * @param {(value: string\x2C key: string\x2C self: FormData) => void} callbackFn\n\x09   * @param {unknown} thisArg\n\x09   */\n\x09  forEach (callbackFn\x2C thisArg = globalThis) {\n\x09    webidl.brandCheck(this\x2C FormData);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'FormData.forEach' });\n\n\x09    if (typeof callbackFn !== 'function') {\n\x09      throw new TypeError(\n\x09        "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'."\n\x09      )\n\x09    }\n\n\x09    for (const [key\x2C value] of this) {\n\x09      callbackFn.apply(thisArg\x2C [value\x2C key\x2C this]);\n\x09    }\n\x09  }\n\x09}\n\n\x09FormData.prototype[Symbol.iterator] = FormData.prototype.entries;\n\n\x09Object.defineProperties(FormData.prototype\x2C {\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'FormData'\x2C\n\x09    configurable: true\n\x09  }\n\x09});\n\n\x09/**\n\x09 * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n\x09 * @param {string} name\n\x09 * @param {string|Blob} value\n\x09 * @param {?string} filename\n\x09 * @returns\n\x09 */\n\x09function makeEntry (name\x2C value\x2C filename) {\n\x09  // 1. Set name to the result of converting name into a scalar value string.\n\x09  // "To convert a string into a scalar value string\x2C replace any surrogates\n\x09  //  with U+FFFD."\n\x09  // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n\x09  name = Buffer.from(name).toString('utf8');\n\n\x09  // 2. If value is a string\x2C then set value to the result of converting\n\x09  //    value into a scalar value string.\n\x09  if (typeof value === 'string') {\n\x09    value = Buffer.from(value).toString('utf8');\n\x09  } else {\n\x09    // 3. Otherwise:\n\n\x09    // 1. If value is not a File object\x2C then set value to a new File object\x2C\n\x09    //    representing the same bytes\x2C whose name attribute value is "blob"\n\x09    if (!isFileLike(value)) {\n\x09      value = value instanceof Blob\n\x09        ? new File([value]\x2C 'blob'\x2C { type: value.type })\n\x09        : new FileLike(value\x2C 'blob'\x2C { type: value.type });\n\x09    }\n\n\x09    // 2. If filename is given\x2C then set value to a new File object\x2C\n\x09    //    representing the same bytes\x2C whose name attribute is filename.\n\x09    if (filename !== undefined) {\n\x09      /** @type {FilePropertyBag} */\n\x09      const options = {\n\x09        type: value.type\x2C\n\x09        lastModified: value.lastModified\n\x09      };\n\n\x09      value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n\x09        ? new File([value]\x2C filename\x2C options)\n\x09        : new FileLike(value\x2C filename\x2C options);\n\x09    }\n\x09  }\n\n\x09  // 4. Return an entry whose name is name and whose value is value.\n\x09  return { name\x2C value }\n\x09}\n\n\x09formdata = { FormData };\n\x09return formdata;\n}\n\nvar body;\nvar hasRequiredBody;\n\nfunction requireBody () {\n\x09if (hasRequiredBody) return body;\n\x09hasRequiredBody = 1;\n\n\x09const Busboy = requireLib();\n\x09const util = util$i;\n\x09const {\n\x09  ReadableStreamFrom\x2C\n\x09  isBlobLike\x2C\n\x09  isReadableStreamLike\x2C\n\x09  readableStreamClose\x2C\n\x09  createDeferredPromise\x2C\n\x09  fullyReadBody\n\x09} = requireUtil$3();\n\x09const { FormData } = requireFormdata();\n\x09const { kState } = requireSymbols$2();\n\x09const { webidl } = requireWebidl();\n\x09const { DOMException\x2C structuredClone } = requireConstants$3();\n\x09const { Blob\x2C File: NativeFile } = require$$7;\n\x09const { kBodyUsed } = symbols$3;\n\x09const assert = require$$0;\n\x09const { isErrored } = util$i;\n\x09const { isUint8Array\x2C isArrayBuffer } = require$$5;\n\x09const { File: UndiciFile } = requireFile();\n\x09const { parseMIMEType\x2C serializeAMimeType } = requireDataURL();\n\n\x09let ReadableStream = globalThis.ReadableStream;\n\n\x09/** @type {globalThis['File']} */\n\x09const File = NativeFile ?? UndiciFile;\n\n\x09// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n\x09function extractBody (object\x2C keepalive = false) {\n\x09  if (!ReadableStream) {\n\x09    ReadableStream = require$$13.ReadableStream;\n\x09  }\n\n\x09  // 1. Let stream be null.\n\x09  let stream = null;\n\n\x09  // 2. If object is a ReadableStream object\x2C then set stream to object.\n\x09  if (object instanceof ReadableStream) {\n\x09    stream = object;\n\x09  } else if (isBlobLike(object)) {\n\x09    // 3. Otherwise\x2C if object is a Blob object\x2C set stream to the\n\x09    //    result of running object\u2019s get stream.\n\x09    stream = object.stream();\n\x09  } else {\n\x09    // 4. Otherwise\x2C set stream to a new ReadableStream object\x2C and set\n\x09    //    up stream.\n\x09    stream = new ReadableStream({\n\x09      async pull (controller) {\n\x09        controller.enqueue(\n\x09          typeof source === 'string' ? new TextEncoder().encode(source) : source\n\x09        );\n\x09        queueMicrotask(() => readableStreamClose(controller));\n\x09      }\x2C\n\x09      start () {}\x2C\n\x09      type: undefined\n\x09    });\n\x09  }\n\n\x09  // 5. Assert: stream is a ReadableStream object.\n\x09  assert(isReadableStreamLike(stream));\n\n\x09  // 6. Let action be null.\n\x09  let action = null;\n\n\x09  // 7. Let source be null.\n\x09  let source = null;\n\n\x09  // 8. Let length be null.\n\x09  let length = null;\n\n\x09  // 9. Let type be null.\n\x09  let type = null;\n\n\x09  // 10. Switch on object:\n\x09  if (typeof object === 'string') {\n\x09    // Set source to the UTF-8 encoding of object.\n\x09    // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n\x09    source = object;\n\n\x09    // Set type to `text/plain;charset=UTF-8`.\n\x09    type = 'text/plain;charset=UTF-8';\n\x09  } else if (object instanceof URLSearchParams) {\n\x09    // URLSearchParams\n\n\x09    // spec says to run application/x-www-form-urlencoded on body.list\n\x09    // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n\x09    // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n\x09    // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n\x09    // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n\x09    source = object.toString();\n\n\x09    // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n\x09    type = 'application/x-www-form-urlencoded;charset=UTF-8';\n\x09  } else if (isArrayBuffer(object)) {\n\x09    // BufferSource/ArrayBuffer\n\n\x09    // Set source to a copy of the bytes held by object.\n\x09    source = new Uint8Array(object.slice());\n\x09  } else if (ArrayBuffer.isView(object)) {\n\x09    // BufferSource/ArrayBufferView\n\n\x09    // Set source to a copy of the bytes held by object.\n\x09    source = new Uint8Array(object.buffer.slice(object.byteOffset\x2C object.byteOffset + object.byteLength));\n\x09  } else if (util.isFormDataLike(object)) {\n\x09    const boundary = `----formdata-undici-${Math.random()}`.replace('.'\x2C '').slice(0\x2C 32);\n\x09    const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`;\n\n\x09    /*! formdata-polyfill. MIT License. Jimmy W\xe4rting <https://jimmy.warting.se/opensource> */\n\x09    const escape = (str) =>\n\x09      str.replace(/\\n/g\x2C '%0A').replace(/\\r/g\x2C '%0D').replace(/"/g\x2C '%22');\n\x09    const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g\x2C '\\r\\n');\n\n\x09    // Set action to this step: run the multipart/form-data\n\x09    // encoding algorithm\x2C with object\u2019s entry list and UTF-8.\n\x09    // - This ensures that the body is immutable and can't be changed afterwords\n\x09    // - That the content-length is calculated in advance.\n\x09    // - And that all parts are pre-encoded and ready to be sent.\n\n\x09    const enc = new TextEncoder();\n\x09    const blobParts = [];\n\x09    const rn = new Uint8Array([13\x2C 10]); // '\\r\\n'\n\x09    length = 0;\n\n\x09    for (const [name\x2C value] of object) {\n\x09      if (typeof value === 'string') {\n\x09        const chunk = enc.encode(prefix +\n\x09          `; name="${escape(normalizeLinefeeds(name))}"` +\n\x09          `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`);\n\x09        blobParts.push(chunk);\n\x09        length += chunk.byteLength;\n\x09      } else {\n\x09        const chunk = enc.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` +\n\x09          (value.name ? `; filename="${escape(value.name)}"` : '') + '\\r\\n' +\n\x09          `Content-Type: ${\n\x09            value.type || 'application/octet-stream'\n\x09          }\\r\\n\\r\\n`);\n\x09        blobParts.push(chunk\x2C value\x2C rn);\n\x09        length += chunk.byteLength + value.size + rn.byteLength;\n\x09      }\n\x09    }\n\n\x09    const chunk = enc.encode(`--${boundary}--`);\n\x09    blobParts.push(chunk);\n\x09    length += chunk.byteLength;\n\n\x09    // Set source to object.\n\x09    source = object;\n\n\x09    action = async function * () {\n\x09      for (const part of blobParts) {\n\x09        if (part.stream) {\n\x09          yield * part.stream();\n\x09        } else {\n\x09          yield part;\n\x09        }\n\x09      }\n\x09    };\n\n\x09    // Set type to `multipart/form-data; boundary=`\x2C\n\x09    // followed by the multipart/form-data boundary string generated\n\x09    // by the multipart/form-data encoding algorithm.\n\x09    type = 'multipart/form-data; boundary=' + boundary;\n\x09  } else if (isBlobLike(object)) {\n\x09    // Blob\n\n\x09    // Set source to object.\n\x09    source = object;\n\n\x09    // Set length to object\u2019s size.\n\x09    length = object.size;\n\n\x09    // If object\u2019s type attribute is not the empty byte sequence\x2C set\n\x09    // type to its value.\n\x09    if (object.type) {\n\x09      type = object.type;\n\x09    }\n\x09  } else if (typeof object[Symbol.asyncIterator] === 'function') {\n\x09    // If keepalive is true\x2C then throw a TypeError.\n\x09    if (keepalive) {\n\x09      throw new TypeError('keepalive')\n\x09    }\n\n\x09    // If object is disturbed or locked\x2C then throw a TypeError.\n\x09    if (util.isDisturbed(object) || object.locked) {\n\x09      throw new TypeError(\n\x09        'Response body object should not be disturbed or locked'\n\x09      )\n\x09    }\n\n\x09    stream =\n\x09      object instanceof ReadableStream ? object : ReadableStreamFrom(object);\n\x09  }\n\n\x09  // 11. If source is a byte sequence\x2C then set action to a\n\x09  // step that returns source and length to source\u2019s length.\n\x09  if (typeof source === 'string' || util.isBuffer(source)) {\n\x09    length = Buffer.byteLength(source);\n\x09  }\n\n\x09  // 12. If action is non-null\x2C then run these steps in in parallel:\n\x09  if (action != null) {\n\x09    // Run action.\n\x09    let iterator;\n\x09    stream = new ReadableStream({\n\x09      async start () {\n\x09        iterator = action(object)[Symbol.asyncIterator]();\n\x09      }\x2C\n\x09      async pull (controller) {\n\x09        const { value\x2C done } = await iterator.next();\n\x09        if (done) {\n\x09          // When running action is done\x2C close stream.\n\x09          queueMicrotask(() => {\n\x09            controller.close();\n\x09          });\n\x09        } else {\n\x09          // Whenever one or more bytes are available and stream is not errored\x2C\n\x09          // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n\x09          // bytes into stream.\n\x09          if (!isErrored(stream)) {\n\x09            controller.enqueue(new Uint8Array(value));\n\x09          }\n\x09        }\n\x09        return controller.desiredSize > 0\n\x09      }\x2C\n\x09      async cancel (reason) {\n\x09        await iterator.return();\n\x09      }\x2C\n\x09      type: undefined\n\x09    });\n\x09  }\n\n\x09  // 13. Let body be a body whose stream is stream\x2C source is source\x2C\n\x09  // and length is length.\n\x09  const body = { stream\x2C source\x2C length };\n\n\x09  // 14. Return (body\x2C type).\n\x09  return [body\x2C type]\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\n\x09function safelyExtractBody (object\x2C keepalive = false) {\n\x09  if (!ReadableStream) {\n\x09    // istanbul ignore next\n\x09    ReadableStream = require$$13.ReadableStream;\n\x09  }\n\n\x09  // To safely extract a body and a `Content-Type` value from\n\x09  // a byte sequence or BodyInit object object\x2C run these steps:\n\n\x09  // 1. If object is a ReadableStream object\x2C then:\n\x09  if (object instanceof ReadableStream) {\n\x09    // Assert: object is neither disturbed nor locked.\n\x09    // istanbul ignore next\n\x09    assert(!util.isDisturbed(object)\x2C 'The body has already been consumed.');\n\x09    // istanbul ignore next\n\x09    assert(!object.locked\x2C 'The stream is locked.');\n\x09  }\n\n\x09  // 2. Return the results of extracting object.\n\x09  return extractBody(object\x2C keepalive)\n\x09}\n\n\x09function cloneBody (body) {\n\x09  // To clone a body body\x2C run these steps:\n\n\x09  // https://fetch.spec.whatwg.org/#concept-body-clone\n\n\x09  // 1. Let \xab out1\x2C out2 \xbb be the result of teeing body\u2019s stream.\n\x09  const [out1\x2C out2] = body.stream.tee();\n\x09  const out2Clone = structuredClone(out2\x2C { transfer: [out2] });\n\x09  // This\x2C for whatever reasons\x2C unrefs out2Clone which allows\n\x09  // the process to exit by itself.\n\x09  const [\x2C finalClone] = out2Clone.tee();\n\n\x09  // 2. Set body\u2019s stream to out1.\n\x09  body.stream = out1;\n\n\x09  // 3. Return a body whose stream is out2 and other members are copied from body.\n\x09  return {\n\x09    stream: finalClone\x2C\n\x09    length: body.length\x2C\n\x09    source: body.source\n\x09  }\n\x09}\n\n\x09async function * consumeBody (body) {\n\x09  if (body) {\n\x09    if (isUint8Array(body)) {\n\x09      yield body;\n\x09    } else {\n\x09      const stream = body.stream;\n\n\x09      if (util.isDisturbed(stream)) {\n\x09        throw new TypeError('The body has already been consumed.')\n\x09      }\n\n\x09      if (stream.locked) {\n\x09        throw new TypeError('The stream is locked.')\n\x09      }\n\n\x09      // Compat.\n\x09      stream[kBodyUsed] = true;\n\n\x09      yield * stream;\n\x09    }\n\x09  }\n\x09}\n\n\x09function throwIfAborted (state) {\n\x09  if (state.aborted) {\n\x09    throw new DOMException('The operation was aborted.'\x2C 'AbortError')\n\x09  }\n\x09}\n\n\x09function bodyMixinMethods (instance) {\n\x09  const methods = {\n\x09    blob () {\n\x09      // The blob() method steps are to return the result of\n\x09      // running consume body with this and the following step\n\x09      // given a byte sequence bytes: return a Blob whose\n\x09      // contents are bytes and whose type attribute is this\u2019s\n\x09      // MIME type.\n\x09      return specConsumeBody(this\x2C (bytes) => {\n\x09        let mimeType = bodyMimeType(this);\n\n\x09        if (mimeType === 'failure') {\n\x09          mimeType = '';\n\x09        } else if (mimeType) {\n\x09          mimeType = serializeAMimeType(mimeType);\n\x09        }\n\n\x09        // Return a Blob whose contents are bytes and type attribute\n\x09        // is mimeType.\n\x09        return new Blob([bytes]\x2C { type: mimeType })\n\x09      }\x2C instance)\n\x09    }\x2C\n\n\x09    arrayBuffer () {\n\x09      // The arrayBuffer() method steps are to return the result\n\x09      // of running consume body with this and the following step\n\x09      // given a byte sequence bytes: return a new ArrayBuffer\n\x09      // whose contents are bytes.\n\x09      return specConsumeBody(this\x2C (bytes) => {\n\x09        return new Uint8Array(bytes).buffer\n\x09      }\x2C instance)\n\x09    }\x2C\n\n\x09    text () {\n\x09      // The text() method steps are to return the result of running\n\x09      // consume body with this and UTF-8 decode.\n\x09      return specConsumeBody(this\x2C utf8DecodeBytes\x2C instance)\n\x09    }\x2C\n\n\x09    json () {\n\x09      // The json() method steps are to return the result of running\n\x09      // consume body with this and parse JSON from bytes.\n\x09      return specConsumeBody(this\x2C parseJSONFromBytes\x2C instance)\n\x09    }\x2C\n\n\x09    async formData () {\n\x09      webidl.brandCheck(this\x2C instance);\n\n\x09      throwIfAborted(this[kState]);\n\n\x09      const contentType = this.headers.get('Content-Type');\n\n\x09      // If mimeType\u2019s essence is "multipart/form-data"\x2C then:\n\x09      if (/multipart\\/form-data/.test(contentType)) {\n\x09        const headers = {};\n\x09        for (const [key\x2C value] of this.headers) headers[key.toLowerCase()] = value;\n\n\x09        const responseFormData = new FormData();\n\n\x09        let busboy;\n\n\x09        try {\n\x09          busboy = Busboy({\n\x09            headers\x2C\n\x09            defParamCharset: 'utf8'\n\x09          });\n\x09        } catch (err) {\n\x09          throw new DOMException(`${err}`\x2C 'AbortError')\n\x09        }\n\n\x09        busboy.on('field'\x2C (name\x2C value) => {\n\x09          responseFormData.append(name\x2C value);\n\x09        });\n\x09        busboy.on('file'\x2C (name\x2C value\x2C info) => {\n\x09          const { filename\x2C encoding\x2C mimeType } = info;\n\x09          const chunks = [];\n\n\x09          if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n\x09            let base64chunk = '';\n\n\x09            value.on('data'\x2C (chunk) => {\n\x09              base64chunk += chunk.toString().replace(/[\\r\\n]/gm\x2C '');\n\n\x09              const end = base64chunk.length - base64chunk.length % 4;\n\x09              chunks.push(Buffer.from(base64chunk.slice(0\x2C end)\x2C 'base64'));\n\n\x09              base64chunk = base64chunk.slice(end);\n\x09            });\n\x09            value.on('end'\x2C () => {\n\x09              chunks.push(Buffer.from(base64chunk\x2C 'base64'));\n\x09              responseFormData.append(name\x2C new File(chunks\x2C filename\x2C { type: mimeType }));\n\x09            });\n\x09          } else {\n\x09            value.on('data'\x2C (chunk) => {\n\x09              chunks.push(chunk);\n\x09            });\n\x09            value.on('end'\x2C () => {\n\x09              responseFormData.append(name\x2C new File(chunks\x2C filename\x2C { type: mimeType }));\n\x09            });\n\x09          }\n\x09        });\n\n\x09        const busboyResolve = new Promise((resolve\x2C reject) => {\n\x09          busboy.on('finish'\x2C resolve);\n\x09          busboy.on('error'\x2C (err) => reject(new TypeError(err)));\n\x09        });\n\n\x09        if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk);\n\x09        busboy.end();\n\x09        await busboyResolve;\n\n\x09        return responseFormData\n\x09      } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n\x09        // Otherwise\x2C if mimeType\u2019s essence is "application/x-www-form-urlencoded"\x2C then:\n\n\x09        // 1. Let entries be the result of parsing bytes.\n\x09        let entries;\n\x09        try {\n\x09          let text = '';\n\x09          // application/x-www-form-urlencoded parser will keep the BOM.\n\x09          // https://url.spec.whatwg.org/#concept-urlencoded-parser\n\x09          const textDecoder = new TextDecoder('utf-8'\x2C { ignoreBOM: true });\n\x09          for await (const chunk of consumeBody(this[kState].body)) {\n\x09            if (!isUint8Array(chunk)) {\n\x09              throw new TypeError('Expected Uint8Array chunk')\n\x09            }\n\x09            text += textDecoder.decode(chunk\x2C { stream: true });\n\x09          }\n\x09          text += textDecoder.decode();\n\x09          entries = new URLSearchParams(text);\n\x09        } catch (err) {\n\x09          // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n\x09          // 2. If entries is failure\x2C then throw a TypeError.\n\x09          throw Object.assign(new TypeError()\x2C { cause: err })\n\x09        }\n\n\x09        // 3. Return a new FormData object whose entries are entries.\n\x09        const formData = new FormData();\n\x09        for (const [name\x2C value] of entries) {\n\x09          formData.append(name\x2C value);\n\x09        }\n\x09        return formData\n\x09      } else {\n\x09        // Wait a tick before checking if the request has been aborted.\n\x09        // Otherwise\x2C a TypeError can be thrown when an AbortError should.\n\x09        await Promise.resolve();\n\n\x09        throwIfAborted(this[kState]);\n\n\x09        // Otherwise\x2C throw a TypeError.\n\x09        throw webidl.errors.exception({\n\x09          header: `${instance.name}.formData`\x2C\n\x09          message: 'Could not parse content as FormData.'\n\x09        })\n\x09      }\n\x09    }\n\x09  };\n\n\x09  return methods\n\x09}\n\n\x09function mixinBody (prototype) {\n\x09  Object.assign(prototype.prototype\x2C bodyMixinMethods(prototype));\n\x09}\n\n\x09/**\n\x09 * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n\x09 * @param {Response|Request} object\n\x09 * @param {(value: unknown) => unknown} convertBytesToJSValue\n\x09 * @param {Response|Request} instance\n\x09 */\n\x09async function specConsumeBody (object\x2C convertBytesToJSValue\x2C instance) {\n\x09  webidl.brandCheck(object\x2C instance);\n\n\x09  throwIfAborted(object[kState]);\n\n\x09  // 1. If object is unusable\x2C then return a promise rejected\n\x09  //    with a TypeError.\n\x09  if (bodyUnusable(object[kState].body)) {\n\x09    throw new TypeError('Body is unusable')\n\x09  }\n\n\x09  // 2. Let promise be a new promise.\n\x09  const promise = createDeferredPromise();\n\n\x09  // 3. Let errorSteps given error be to reject promise with error.\n\x09  const errorSteps = (error) => promise.reject(error);\n\n\x09  // 4. Let successSteps given a byte sequence data be to resolve\n\x09  //    promise with the result of running convertBytesToJSValue\n\x09  //    with data. If that threw an exception\x2C then run errorSteps\n\x09  //    with that exception.\n\x09  const successSteps = (data) => {\n\x09    try {\n\x09      promise.resolve(convertBytesToJSValue(data));\n\x09    } catch (e) {\n\x09      errorSteps(e);\n\x09    }\n\x09  };\n\n\x09  // 5. If object\u2019s body is null\x2C then run successSteps with an\n\x09  //    empty byte sequence.\n\x09  if (object[kState].body == null) {\n\x09    successSteps(new Uint8Array());\n\x09    return promise.promise\n\x09  }\n\n\x09  // 6. Otherwise\x2C fully read object\u2019s body given successSteps\x2C\n\x09  //    errorSteps\x2C and object\u2019s relevant global object.\n\x09  fullyReadBody(object[kState].body\x2C successSteps\x2C errorSteps);\n\n\x09  // 7. Return promise.\n\x09  return promise.promise\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#body-unusable\n\x09function bodyUnusable (body) {\n\x09  // An object including the Body interface mixin is\n\x09  // said to be unusable if its body is non-null and\n\x09  // its body\u2019s stream is disturbed or locked.\n\x09  return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n\x09}\n\n\x09/**\n\x09 * @see https://encoding.spec.whatwg.org/#utf-8-decode\n\x09 * @param {Buffer} buffer\n\x09 */\n\x09function utf8DecodeBytes (buffer) {\n\x09  if (buffer.length === 0) {\n\x09    return ''\n\x09  }\n\n\x09  // 1. Let buffer be the result of peeking three bytes from\n\x09  //    ioQueue\x2C converted to a byte sequence.\n\n\x09  // 2. If buffer is 0xEF 0xBB 0xBF\x2C then read three\n\x09  //    bytes from ioQueue. (Do nothing with those bytes.)\n\x09  if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n\x09    buffer = buffer.subarray(3);\n\x09  }\n\n\x09  // 3. Process a queue with an instance of UTF-8\u2019s\n\x09  //    decoder\x2C ioQueue\x2C output\x2C and "replacement".\n\x09  const output = new TextDecoder().decode(buffer);\n\n\x09  // 4. Return output.\n\x09  return output\n\x09}\n\n\x09/**\n\x09 * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n\x09 * @param {Uint8Array} bytes\n\x09 */\n\x09function parseJSONFromBytes (bytes) {\n\x09  return JSON.parse(utf8DecodeBytes(bytes))\n\x09}\n\n\x09/**\n\x09 * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n\x09 * @param {import('./response').Response|import('./request').Request} object\n\x09 */\n\x09function bodyMimeType (object) {\n\x09  const { headersList } = object[kState];\n\x09  const contentType = headersList.get('content-type');\n\n\x09  if (contentType === null) {\n\x09    return 'failure'\n\x09  }\n\n\x09  return parseMIMEType(contentType)\n\x09}\n\n\x09body = {\n\x09  extractBody\x2C\n\x09  safelyExtractBody\x2C\n\x09  cloneBody\x2C\n\x09  mixinBody\n\x09};\n\x09return body;\n}\n\nconst {\n  InvalidArgumentError: InvalidArgumentError$h\x2C\n  NotSupportedError: NotSupportedError$1\n} = errors$1;\nconst assert$7 = require$$0;\nconst util$g = util$i;\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/;\n\n/**\n * Matches if val contains an invalid field-vchar\n *  field-value    = *( field-content / obs-fold )\n *  field-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n *  field-vchar    = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/;\n\nconst kHandler = Symbol('handler');\n\nconst channels$1 = {};\n\nlet extractBody;\n\ntry {\n  const diagnosticsChannel = require('diagnostics_channel');\n  channels$1.create = diagnosticsChannel.channel('undici:request:create');\n  channels$1.bodySent = diagnosticsChannel.channel('undici:request:bodySent');\n  channels$1.headers = diagnosticsChannel.channel('undici:request:headers');\n  channels$1.trailers = diagnosticsChannel.channel('undici:request:trailers');\n  channels$1.error = diagnosticsChannel.channel('undici:request:error');\n} catch {\n  channels$1.create = { hasSubscribers: false };\n  channels$1.bodySent = { hasSubscribers: false };\n  channels$1.headers = { hasSubscribers: false };\n  channels$1.trailers = { hasSubscribers: false };\n  channels$1.error = { hasSubscribers: false };\n}\n\nlet Request$2 = class Request {\n  constructor (origin\x2C {\n    path\x2C\n    method\x2C\n    body\x2C\n    headers\x2C\n    query\x2C\n    idempotent\x2C\n    blocking\x2C\n    upgrade\x2C\n    headersTimeout\x2C\n    bodyTimeout\x2C\n    reset\x2C\n    throwOnError\n  }\x2C handler) {\n    if (typeof path !== 'string') {\n      throw new InvalidArgumentError$h('path must be a string')\n    } else if (\n      path[0] !== '/' &&\n      !(path.startsWith('http://') || path.startsWith('https://')) &&\n      method !== 'CONNECT'\n    ) {\n      throw new InvalidArgumentError$h('path must be an absolute URL or start with a slash')\n    } else if (invalidPathRegex.exec(path) !== null) {\n      throw new InvalidArgumentError$h('invalid request path')\n    }\n\n    if (typeof method !== 'string') {\n      throw new InvalidArgumentError$h('method must be a string')\n    } else if (tokenRegExp.exec(method) === null) {\n      throw new InvalidArgumentError$h('invalid request method')\n    }\n\n    if (upgrade && typeof upgrade !== 'string') {\n      throw new InvalidArgumentError$h('upgrade must be a string')\n    }\n\n    if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n      throw new InvalidArgumentError$h('invalid headersTimeout')\n    }\n\n    if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n      throw new InvalidArgumentError$h('invalid bodyTimeout')\n    }\n\n    if (reset != null && typeof reset !== 'boolean') {\n      throw new InvalidArgumentError$h('invalid reset')\n    }\n\n    this.headersTimeout = headersTimeout;\n\n    this.bodyTimeout = bodyTimeout;\n\n    this.throwOnError = throwOnError === true;\n\n    this.method = method;\n\n    if (body == null) {\n      this.body = null;\n    } else if (util$g.isStream(body)) {\n      this.body = body;\n    } else if (util$g.isBuffer(body)) {\n      this.body = body.byteLength ? body : null;\n    } else if (ArrayBuffer.isView(body)) {\n      this.body = body.buffer.byteLength ? Buffer.from(body.buffer\x2C body.byteOffset\x2C body.byteLength) : null;\n    } else if (body instanceof ArrayBuffer) {\n      this.body = body.byteLength ? Buffer.from(body) : null;\n    } else if (typeof body === 'string') {\n      this.body = body.length ? Buffer.from(body) : null;\n    } else if (util$g.isFormDataLike(body) || util$g.isIterable(body) || util$g.isBlobLike(body)) {\n      this.body = body;\n    } else {\n      throw new InvalidArgumentError$h('body must be a string\x2C a Buffer\x2C a Readable stream\x2C an iterable\x2C or an async iterable')\n    }\n\n    this.completed = false;\n\n    this.aborted = false;\n\n    this.upgrade = upgrade || null;\n\n    this.path = query ? util$g.buildURL(path\x2C query) : path;\n\n    this.origin = origin;\n\n    this.idempotent = idempotent == null\n      ? method === 'HEAD' || method === 'GET'\n      : idempotent;\n\n    this.blocking = blocking == null ? false : blocking;\n\n    this.reset = reset == null ? null : reset;\n\n    this.host = null;\n\n    this.contentLength = null;\n\n    this.contentType = null;\n\n    this.headers = '';\n\n    if (Array.isArray(headers)) {\n      if (headers.length % 2 !== 0) {\n        throw new InvalidArgumentError$h('headers array must be even')\n      }\n      for (let i = 0; i < headers.length; i += 2) {\n        processHeader(this\x2C headers[i]\x2C headers[i + 1]);\n      }\n    } else if (headers && typeof headers === 'object') {\n      const keys = Object.keys(headers);\n      for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        processHeader(this\x2C key\x2C headers[key]);\n      }\n    } else if (headers != null) {\n      throw new InvalidArgumentError$h('headers must be an object or an array')\n    }\n\n    if (util$g.isFormDataLike(this.body)) {\n      if (util$g.nodeMajor < 16 || (util$g.nodeMajor === 16 && util$g.nodeMinor < 8)) {\n        throw new InvalidArgumentError$h('Form-Data bodies are only supported in node v16.8 and newer.')\n      }\n\n      if (!extractBody) {\n        extractBody = requireBody().extractBody;\n      }\n\n      const [bodyStream\x2C contentType] = extractBody(body);\n      if (this.contentType == null) {\n        this.contentType = contentType;\n        this.headers += `content-type: ${contentType}\\r\\n`;\n      }\n      this.body = bodyStream.stream;\n      this.contentLength = bodyStream.length;\n    } else if (util$g.isBlobLike(body) && this.contentType == null && body.type) {\n      this.contentType = body.type;\n      this.headers += `content-type: ${body.type}\\r\\n`;\n    }\n\n    util$g.validateHandler(handler\x2C method\x2C upgrade);\n\n    this.servername = util$g.getServerName(this.host);\n\n    this[kHandler] = handler;\n\n    if (channels$1.create.hasSubscribers) {\n      channels$1.create.publish({ request: this });\n    }\n  }\n\n  onBodySent (chunk) {\n    if (this[kHandler].onBodySent) {\n      try {\n        this[kHandler].onBodySent(chunk);\n      } catch (err) {\n        this.onError(err);\n      }\n    }\n  }\n\n  onRequestSent () {\n    if (channels$1.bodySent.hasSubscribers) {\n      channels$1.bodySent.publish({ request: this });\n    }\n  }\n\n  onConnect (abort) {\n    assert$7(!this.aborted);\n    assert$7(!this.completed);\n\n    return this[kHandler].onConnect(abort)\n  }\n\n  onHeaders (statusCode\x2C headers\x2C resume\x2C statusText) {\n    assert$7(!this.aborted);\n    assert$7(!this.completed);\n\n    if (channels$1.headers.hasSubscribers) {\n      channels$1.headers.publish({ request: this\x2C response: { statusCode\x2C headers\x2C statusText } });\n    }\n\n    return this[kHandler].onHeaders(statusCode\x2C headers\x2C resume\x2C statusText)\n  }\n\n  onData (chunk) {\n    assert$7(!this.aborted);\n    assert$7(!this.completed);\n\n    return this[kHandler].onData(chunk)\n  }\n\n  onUpgrade (statusCode\x2C headers\x2C socket) {\n    assert$7(!this.aborted);\n    assert$7(!this.completed);\n\n    return this[kHandler].onUpgrade(statusCode\x2C headers\x2C socket)\n  }\n\n  onComplete (trailers) {\n    assert$7(!this.aborted);\n\n    this.completed = true;\n    if (channels$1.trailers.hasSubscribers) {\n      channels$1.trailers.publish({ request: this\x2C trailers });\n    }\n    return this[kHandler].onComplete(trailers)\n  }\n\n  onError (error) {\n    if (channels$1.error.hasSubscribers) {\n      channels$1.error.publish({ request: this\x2C error });\n    }\n\n    if (this.aborted) {\n      return\n    }\n    this.aborted = true;\n    return this[kHandler].onError(error)\n  }\n\n  addHeader (key\x2C value) {\n    processHeader(this\x2C key\x2C value);\n    return this\n  }\n};\n\nfunction processHeaderValue (key\x2C val) {\n  if (val && typeof val === 'object') {\n    throw new InvalidArgumentError$h(`invalid ${key} header`)\n  }\n\n  val = val != null ? `${val}` : '';\n\n  if (headerCharRegex.exec(val) !== null) {\n    throw new InvalidArgumentError$h(`invalid ${key} header`)\n  }\n\n  return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request\x2C key\x2C val) {\n  if (val && (typeof val === 'object' && !Array.isArray(val))) {\n    throw new InvalidArgumentError$h(`invalid ${key} header`)\n  } else if (val === undefined) {\n    return\n  }\n\n  if (\n    request.host === null &&\n    key.length === 4 &&\n    key.toLowerCase() === 'host'\n  ) {\n    if (headerCharRegex.exec(val) !== null) {\n      throw new InvalidArgumentError$h(`invalid ${key} header`)\n    }\n    // Consumed by Client\n    request.host = val;\n  } else if (\n    request.contentLength === null &&\n    key.length === 14 &&\n    key.toLowerCase() === 'content-length'\n  ) {\n    request.contentLength = parseInt(val\x2C 10);\n    if (!Number.isFinite(request.contentLength)) {\n      throw new InvalidArgumentError$h('invalid content-length header')\n    }\n  } else if (\n    request.contentType === null &&\n    key.length === 12 &&\n    key.toLowerCase() === 'content-type'\n  ) {\n    request.contentType = val;\n    request.headers += processHeaderValue(key\x2C val);\n  } else if (\n    key.length === 17 &&\n    key.toLowerCase() === 'transfer-encoding'\n  ) {\n    throw new InvalidArgumentError$h('invalid transfer-encoding header')\n  } else if (\n    key.length === 10 &&\n    key.toLowerCase() === 'connection'\n  ) {\n    const value = typeof val === 'string' ? val.toLowerCase() : null;\n    if (value !== 'close' && value !== 'keep-alive') {\n      throw new InvalidArgumentError$h('invalid connection header')\n    } else if (value === 'close') {\n      request.reset = true;\n    }\n  } else if (\n    key.length === 10 &&\n    key.toLowerCase() === 'keep-alive'\n  ) {\n    throw new InvalidArgumentError$h('invalid keep-alive header')\n  } else if (\n    key.length === 7 &&\n    key.toLowerCase() === 'upgrade'\n  ) {\n    throw new InvalidArgumentError$h('invalid upgrade header')\n  } else if (\n    key.length === 6 &&\n    key.toLowerCase() === 'expect'\n  ) {\n    throw new NotSupportedError$1('expect header not supported')\n  } else if (tokenRegExp.exec(key) === null) {\n    throw new InvalidArgumentError$h('invalid header key')\n  } else {\n    if (Array.isArray(val)) {\n      for (let i = 0; i < val.length; i++) {\n        request.headers += processHeaderValue(key\x2C val[i]);\n      }\n    } else {\n      request.headers += processHeaderValue(key\x2C val);\n    }\n  }\n}\n\nvar request$2 = Request$2;\n\nconst EventEmitter = require$$0$4;\n\nlet Dispatcher$2 = class Dispatcher extends EventEmitter {\n  dispatch () {\n    throw new Error('not implemented')\n  }\n\n  close () {\n    throw new Error('not implemented')\n  }\n\n  destroy () {\n    throw new Error('not implemented')\n  }\n};\n\nvar dispatcher = Dispatcher$2;\n\nconst Dispatcher$1 = dispatcher;\nconst {\n  ClientDestroyedError: ClientDestroyedError$1\x2C\n  ClientClosedError\x2C\n  InvalidArgumentError: InvalidArgumentError$g\n} = errors$1;\nconst { kDestroy: kDestroy$3\x2C kClose: kClose$5\x2C kDispatch: kDispatch$3\x2C kInterceptors: kInterceptors$3 } = symbols$3;\n\nconst kDestroyed = Symbol('destroyed');\nconst kClosed = Symbol('closed');\nconst kOnDestroyed = Symbol('onDestroyed');\nconst kOnClosed = Symbol('onClosed');\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch');\n\nlet DispatcherBase$3 = class DispatcherBase extends Dispatcher$1 {\n  constructor () {\n    super();\n\n    this[kDestroyed] = false;\n    this[kOnDestroyed] = null;\n    this[kClosed] = false;\n    this[kOnClosed] = [];\n  }\n\n  get destroyed () {\n    return this[kDestroyed]\n  }\n\n  get closed () {\n    return this[kClosed]\n  }\n\n  get interceptors () {\n    return this[kInterceptors$3]\n  }\n\n  set interceptors (newInterceptors) {\n    if (newInterceptors) {\n      for (let i = newInterceptors.length - 1; i >= 0; i--) {\n        const interceptor = this[kInterceptors$3][i];\n        if (typeof interceptor !== 'function') {\n          throw new InvalidArgumentError$g('interceptor must be an function')\n        }\n      }\n    }\n\n    this[kInterceptors$3] = newInterceptors;\n  }\n\n  close (callback) {\n    if (callback === undefined) {\n      return new Promise((resolve\x2C reject) => {\n        this.close((err\x2C data) => {\n          return err ? reject(err) : resolve(data)\n        });\n      })\n    }\n\n    if (typeof callback !== 'function') {\n      throw new InvalidArgumentError$g('invalid callback')\n    }\n\n    if (this[kDestroyed]) {\n      queueMicrotask(() => callback(new ClientDestroyedError$1()\x2C null));\n      return\n    }\n\n    if (this[kClosed]) {\n      if (this[kOnClosed]) {\n        this[kOnClosed].push(callback);\n      } else {\n        queueMicrotask(() => callback(null\x2C null));\n      }\n      return\n    }\n\n    this[kClosed] = true;\n    this[kOnClosed].push(callback);\n\n    const onClosed = () => {\n      const callbacks = this[kOnClosed];\n      this[kOnClosed] = null;\n      for (let i = 0; i < callbacks.length; i++) {\n        callbacks[i](null\x2C null);\n      }\n    };\n\n    // Should not error.\n    this[kClose$5]()\n      .then(() => this.destroy())\n      .then(() => {\n        queueMicrotask(onClosed);\n      });\n  }\n\n  destroy (err\x2C callback) {\n    if (typeof err === 'function') {\n      callback = err;\n      err = null;\n    }\n\n    if (callback === undefined) {\n      return new Promise((resolve\x2C reject) => {\n        this.destroy(err\x2C (err\x2C data) => {\n          return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n        });\n      })\n    }\n\n    if (typeof callback !== 'function') {\n      throw new InvalidArgumentError$g('invalid callback')\n    }\n\n    if (this[kDestroyed]) {\n      if (this[kOnDestroyed]) {\n        this[kOnDestroyed].push(callback);\n      } else {\n        queueMicrotask(() => callback(null\x2C null));\n      }\n      return\n    }\n\n    if (!err) {\n      err = new ClientDestroyedError$1();\n    }\n\n    this[kDestroyed] = true;\n    this[kOnDestroyed] = this[kOnDestroyed] || [];\n    this[kOnDestroyed].push(callback);\n\n    const onDestroyed = () => {\n      const callbacks = this[kOnDestroyed];\n      this[kOnDestroyed] = null;\n      for (let i = 0; i < callbacks.length; i++) {\n        callbacks[i](null\x2C null);\n      }\n    };\n\n    // Should not error.\n    this[kDestroy$3](err).then(() => {\n      queueMicrotask(onDestroyed);\n    });\n  }\n\n  [kInterceptedDispatch] (opts\x2C handler) {\n    if (!this[kInterceptors$3] || this[kInterceptors$3].length === 0) {\n      this[kInterceptedDispatch] = this[kDispatch$3];\n      return this[kDispatch$3](opts\x2C handler)\n    }\n\n    let dispatch = this[kDispatch$3].bind(this);\n    for (let i = this[kInterceptors$3].length - 1; i >= 0; i--) {\n      dispatch = this[kInterceptors$3][i](dispatch);\n    }\n    this[kInterceptedDispatch] = dispatch;\n    return dispatch(opts\x2C handler)\n  }\n\n  dispatch (opts\x2C handler) {\n    if (!handler || typeof handler !== 'object') {\n      throw new InvalidArgumentError$g('handler must be an object')\n    }\n\n    try {\n      if (!opts || typeof opts !== 'object') {\n        throw new InvalidArgumentError$g('opts must be an object.')\n      }\n\n      if (this[kDestroyed] || this[kOnDestroyed]) {\n        throw new ClientDestroyedError$1()\n      }\n\n      if (this[kClosed]) {\n        throw new ClientClosedError()\n      }\n\n      return this[kInterceptedDispatch](opts\x2C handler)\n    } catch (err) {\n      if (typeof handler.onError !== 'function') {\n        throw new InvalidArgumentError$g('invalid onError method')\n      }\n\n      handler.onError(err);\n\n      return false\n    }\n  }\n};\n\nvar dispatcherBase = DispatcherBase$3;\n\nconst net$1 = require$$4;\nconst assert$6 = require$$0;\nconst util$f = util$i;\nconst { InvalidArgumentError: InvalidArgumentError$f\x2C ConnectTimeoutError } = errors$1;\n\nlet tls; // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache;\nif (commonjsGlobal.FinalizationRegistry) {\n  SessionCache = class WeakSessionCache {\n    constructor (maxCachedSessions) {\n      this._maxCachedSessions = maxCachedSessions;\n      this._sessionCache = new Map();\n      this._sessionRegistry = new commonjsGlobal.FinalizationRegistry((key) => {\n        if (this._sessionCache.size < this._maxCachedSessions) {\n          return\n        }\n\n        const ref = this._sessionCache.get(key);\n        if (ref !== undefined && ref.deref() === undefined) {\n          this._sessionCache.delete(key);\n        }\n      });\n    }\n\n    get (sessionKey) {\n      const ref = this._sessionCache.get(sessionKey);\n      return ref ? ref.deref() : null\n    }\n\n    set (sessionKey\x2C session) {\n      if (this._maxCachedSessions === 0) {\n        return\n      }\n\n      this._sessionCache.set(sessionKey\x2C new WeakRef(session));\n      this._sessionRegistry.register(session\x2C sessionKey);\n    }\n  };\n} else {\n  SessionCache = class SimpleSessionCache {\n    constructor (maxCachedSessions) {\n      this._maxCachedSessions = maxCachedSessions;\n      this._sessionCache = new Map();\n    }\n\n    get (sessionKey) {\n      return this._sessionCache.get(sessionKey)\n    }\n\n    set (sessionKey\x2C session) {\n      if (this._maxCachedSessions === 0) {\n        return\n      }\n\n      if (this._sessionCache.size >= this._maxCachedSessions) {\n        // remove the oldest session\n        const { value: oldestKey } = this._sessionCache.keys().next();\n        this._sessionCache.delete(oldestKey);\n      }\n\n      this._sessionCache.set(sessionKey\x2C session);\n    }\n  };\n}\n\nfunction buildConnector$2 ({ maxCachedSessions\x2C socketPath\x2C timeout\x2C ...opts }) {\n  if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n    throw new InvalidArgumentError$f('maxCachedSessions must be a positive integer or zero')\n  }\n\n  const options = { path: socketPath\x2C ...opts };\n  const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions);\n  timeout = timeout == null ? 10e3 : timeout;\n\n  return function connect ({ hostname\x2C host\x2C protocol\x2C port\x2C servername\x2C localAddress\x2C httpSocket }\x2C callback) {\n    let socket;\n    if (protocol === 'https:') {\n      if (!tls) {\n        tls = require$$4$1;\n      }\n      servername = servername || options.servername || util$f.getServerName(host) || null;\n\n      const sessionKey = servername || hostname;\n      const session = sessionCache.get(sessionKey) || null;\n\n      assert$6(sessionKey);\n\n      socket = tls.connect({\n        highWaterMark: 16384\x2C // TLS in node can't have bigger HWM anyway...\n        ...options\x2C\n        servername\x2C\n        session\x2C\n        localAddress\x2C\n        socket: httpSocket\x2C // upgrade socket connection\n        port: port || 443\x2C\n        host: hostname\n      });\n\n      socket\n        .on('session'\x2C function (session) {\n          // TODO (fix): Can a session become invalid once established? Don't think so?\n          sessionCache.set(sessionKey\x2C session);\n        });\n    } else {\n      assert$6(!httpSocket\x2C 'httpSocket can only be sent on TLS update');\n      socket = net$1.connect({\n        highWaterMark: 64 * 1024\x2C // Same as nodejs fs streams.\n        ...options\x2C\n        localAddress\x2C\n        port: port || 80\x2C\n        host: hostname\n      });\n    }\n\n    // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n    if (options.keepAlive == null || options.keepAlive) {\n      const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay;\n      socket.setKeepAlive(true\x2C keepAliveInitialDelay);\n    }\n\n    const cancelTimeout = setupTimeout(() => onConnectTimeout(socket)\x2C timeout);\n\n    socket\n      .setNoDelay(true)\n      .once(protocol === 'https:' ? 'secureConnect' : 'connect'\x2C function () {\n        cancelTimeout();\n\n        if (callback) {\n          const cb = callback;\n          callback = null;\n          cb(null\x2C this);\n        }\n      })\n      .on('error'\x2C function (err) {\n        cancelTimeout();\n\n        if (callback) {\n          const cb = callback;\n          callback = null;\n          cb(err);\n        }\n      });\n\n    return socket\n  }\n}\n\nfunction setupTimeout (onConnectTimeout\x2C timeout) {\n  if (!timeout) {\n    return () => {}\n  }\n\n  let s1 = null;\n  let s2 = null;\n  const timeoutId = setTimeout(() => {\n    // setImmediate is added to make sure that we priotorise socket error events over timeouts\n    s1 = setImmediate(() => {\n      if (process.platform === 'win32') {\n        // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n        s2 = setImmediate(() => onConnectTimeout());\n      } else {\n        onConnectTimeout();\n      }\n    });\n  }\x2C timeout);\n  return () => {\n    clearTimeout(timeoutId);\n    clearImmediate(s1);\n    clearImmediate(s2);\n  }\n}\n\nfunction onConnectTimeout (socket) {\n  util$f.destroy(socket\x2C new ConnectTimeoutError());\n}\n\nvar connect$2 = buildConnector$2;\n\nvar constants$3 = {};\n\nvar utils = {};\n\nvar hasRequiredUtils;\n\nfunction requireUtils () {\n\x09if (hasRequiredUtils) return utils;\n\x09hasRequiredUtils = 1;\n\x09Object.defineProperty(utils\x2C "__esModule"\x2C { value: true });\n\x09utils.enumToMap = void 0;\n\x09function enumToMap(obj) {\n\x09    const res = {};\n\x09    Object.keys(obj).forEach((key) => {\n\x09        const value = obj[key];\n\x09        if (typeof value === 'number') {\n\x09            res[key] = value;\n\x09        }\n\x09    });\n\x09    return res;\n\x09}\n\x09utils.enumToMap = enumToMap;\n\x09\n\x09return utils;\n}\n\nvar hasRequiredConstants$2;\n\nfunction requireConstants$2 () {\n\x09if (hasRequiredConstants$2) return constants$3;\n\x09hasRequiredConstants$2 = 1;\n\x09(function (exports) {\n\x09\x09Object.defineProperty(exports\x2C "__esModule"\x2C { value: true });\n\x09\x09exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;\n\x09\x09const utils_1 = requireUtils();\n\x09\x09(function (ERROR) {\n\x09\x09    ERROR[ERROR["OK"] = 0] = "OK";\n\x09\x09    ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL";\n\x09\x09    ERROR[ERROR["STRICT"] = 2] = "STRICT";\n\x09\x09    ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED";\n\x09\x09    ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH";\n\x09\x09    ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION";\n\x09\x09    ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD";\n\x09\x09    ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL";\n\x09\x09    ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT";\n\x09\x09    ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION";\n\x09\x09    ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN";\n\x09\x09    ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH";\n\x09\x09    ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE";\n\x09\x09    ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS";\n\x09\x09    ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE";\n\x09\x09    ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING";\n\x09\x09    ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN";\n\x09\x09    ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE";\n\x09\x09    ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE";\n\x09\x09    ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER";\n\x09\x09    ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE";\n\x09\x09    ERROR[ERROR["PAUSED"] = 21] = "PAUSED";\n\x09\x09    ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE";\n\x09\x09    ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE";\n\x09\x09    ERROR[ERROR["USER"] = 24] = "USER";\n\x09\x09})(exports.ERROR || (exports.ERROR = {}));\n\x09\x09(function (TYPE) {\n\x09\x09    TYPE[TYPE["BOTH"] = 0] = "BOTH";\n\x09\x09    TYPE[TYPE["REQUEST"] = 1] = "REQUEST";\n\x09\x09    TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE";\n\x09\x09})(exports.TYPE || (exports.TYPE = {}));\n\x09\x09(function (FLAGS) {\n\x09\x09    FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE";\n\x09\x09    FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE";\n\x09\x09    FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE";\n\x09\x09    FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED";\n\x09\x09    FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE";\n\x09\x09    FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH";\n\x09\x09    FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY";\n\x09\x09    FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING";\n\x09\x09    // 1 << 8 is unused\n\x09\x09    FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING";\n\x09\x09})(exports.FLAGS || (exports.FLAGS = {}));\n\x09\x09(function (LENIENT_FLAGS) {\n\x09\x09    LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS";\n\x09\x09    LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH";\n\x09\x09    LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE";\n\x09\x09})(exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {}));\n\x09\x09var METHODS;\n\x09\x09(function (METHODS) {\n\x09\x09    METHODS[METHODS["DELETE"] = 0] = "DELETE";\n\x09\x09    METHODS[METHODS["GET"] = 1] = "GET";\n\x09\x09    METHODS[METHODS["HEAD"] = 2] = "HEAD";\n\x09\x09    METHODS[METHODS["POST"] = 3] = "POST";\n\x09\x09    METHODS[METHODS["PUT"] = 4] = "PUT";\n\x09\x09    /* pathological */\n\x09\x09    METHODS[METHODS["CONNECT"] = 5] = "CONNECT";\n\x09\x09    METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS";\n\x09\x09    METHODS[METHODS["TRACE"] = 7] = "TRACE";\n\x09\x09    /* WebDAV */\n\x09\x09    METHODS[METHODS["COPY"] = 8] = "COPY";\n\x09\x09    METHODS[METHODS["LOCK"] = 9] = "LOCK";\n\x09\x09    METHODS[METHODS["MKCOL"] = 10] = "MKCOL";\n\x09\x09    METHODS[METHODS["MOVE"] = 11] = "MOVE";\n\x09\x09    METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND";\n\x09\x09    METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH";\n\x09\x09    METHODS[METHODS["SEARCH"] = 14] = "SEARCH";\n\x09\x09    METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK";\n\x09\x09    METHODS[METHODS["BIND"] = 16] = "BIND";\n\x09\x09    METHODS[METHODS["REBIND"] = 17] = "REBIND";\n\x09\x09    METHODS[METHODS["UNBIND"] = 18] = "UNBIND";\n\x09\x09    METHODS[METHODS["ACL"] = 19] = "ACL";\n\x09\x09    /* subversion */\n\x09\x09    METHODS[METHODS["REPORT"] = 20] = "REPORT";\n\x09\x09    METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY";\n\x09\x09    METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT";\n\x09\x09    METHODS[METHODS["MERGE"] = 23] = "MERGE";\n\x09\x09    /* upnp */\n\x09\x09    METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH";\n\x09\x09    METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY";\n\x09\x09    METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE";\n\x09\x09    METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE";\n\x09\x09    /* RFC-5789 */\n\x09\x09    METHODS[METHODS["PATCH"] = 28] = "PATCH";\n\x09\x09    METHODS[METHODS["PURGE"] = 29] = "PURGE";\n\x09\x09    /* CalDAV */\n\x09\x09    METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR";\n\x09\x09    /* RFC-2068\x2C section 19.6.1.2 */\n\x09\x09    METHODS[METHODS["LINK"] = 31] = "LINK";\n\x09\x09    METHODS[METHODS["UNLINK"] = 32] = "UNLINK";\n\x09\x09    /* icecast */\n\x09\x09    METHODS[METHODS["SOURCE"] = 33] = "SOURCE";\n\x09\x09    /* RFC-7540\x2C section 11.6 */\n\x09\x09    METHODS[METHODS["PRI"] = 34] = "PRI";\n\x09\x09    /* RFC-2326 RTSP */\n\x09\x09    METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE";\n\x09\x09    METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE";\n\x09\x09    METHODS[METHODS["SETUP"] = 37] = "SETUP";\n\x09\x09    METHODS[METHODS["PLAY"] = 38] = "PLAY";\n\x09\x09    METHODS[METHODS["PAUSE"] = 39] = "PAUSE";\n\x09\x09    METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN";\n\x09\x09    METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER";\n\x09\x09    METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER";\n\x09\x09    METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT";\n\x09\x09    METHODS[METHODS["RECORD"] = 44] = "RECORD";\n\x09\x09    /* RAOP */\n\x09\x09    METHODS[METHODS["FLUSH"] = 45] = "FLUSH";\n\x09\x09})(METHODS = exports.METHODS || (exports.METHODS = {}));\n\x09\x09exports.METHODS_HTTP = [\n\x09\x09    METHODS.DELETE\x2C\n\x09\x09    METHODS.GET\x2C\n\x09\x09    METHODS.HEAD\x2C\n\x09\x09    METHODS.POST\x2C\n\x09\x09    METHODS.PUT\x2C\n\x09\x09    METHODS.CONNECT\x2C\n\x09\x09    METHODS.OPTIONS\x2C\n\x09\x09    METHODS.TRACE\x2C\n\x09\x09    METHODS.COPY\x2C\n\x09\x09    METHODS.LOCK\x2C\n\x09\x09    METHODS.MKCOL\x2C\n\x09\x09    METHODS.MOVE\x2C\n\x09\x09    METHODS.PROPFIND\x2C\n\x09\x09    METHODS.PROPPATCH\x2C\n\x09\x09    METHODS.SEARCH\x2C\n\x09\x09    METHODS.UNLOCK\x2C\n\x09\x09    METHODS.BIND\x2C\n\x09\x09    METHODS.REBIND\x2C\n\x09\x09    METHODS.UNBIND\x2C\n\x09\x09    METHODS.ACL\x2C\n\x09\x09    METHODS.REPORT\x2C\n\x09\x09    METHODS.MKACTIVITY\x2C\n\x09\x09    METHODS.CHECKOUT\x2C\n\x09\x09    METHODS.MERGE\x2C\n\x09\x09    METHODS['M-SEARCH']\x2C\n\x09\x09    METHODS.NOTIFY\x2C\n\x09\x09    METHODS.SUBSCRIBE\x2C\n\x09\x09    METHODS.UNSUBSCRIBE\x2C\n\x09\x09    METHODS.PATCH\x2C\n\x09\x09    METHODS.PURGE\x2C\n\x09\x09    METHODS.MKCALENDAR\x2C\n\x09\x09    METHODS.LINK\x2C\n\x09\x09    METHODS.UNLINK\x2C\n\x09\x09    METHODS.PRI\x2C\n\x09\x09    // TODO(indutny): should we allow it with HTTP?\n\x09\x09    METHODS.SOURCE\x2C\n\x09\x09];\n\x09\x09exports.METHODS_ICE = [\n\x09\x09    METHODS.SOURCE\x2C\n\x09\x09];\n\x09\x09exports.METHODS_RTSP = [\n\x09\x09    METHODS.OPTIONS\x2C\n\x09\x09    METHODS.DESCRIBE\x2C\n\x09\x09    METHODS.ANNOUNCE\x2C\n\x09\x09    METHODS.SETUP\x2C\n\x09\x09    METHODS.PLAY\x2C\n\x09\x09    METHODS.PAUSE\x2C\n\x09\x09    METHODS.TEARDOWN\x2C\n\x09\x09    METHODS.GET_PARAMETER\x2C\n\x09\x09    METHODS.SET_PARAMETER\x2C\n\x09\x09    METHODS.REDIRECT\x2C\n\x09\x09    METHODS.RECORD\x2C\n\x09\x09    METHODS.FLUSH\x2C\n\x09\x09    // For AirPlay\n\x09\x09    METHODS.GET\x2C\n\x09\x09    METHODS.POST\x2C\n\x09\x09];\n\x09\x09exports.METHOD_MAP = utils_1.enumToMap(METHODS);\n\x09\x09exports.H_METHOD_MAP = {};\n\x09\x09Object.keys(exports.METHOD_MAP).forEach((key) => {\n\x09\x09    if (/^H/.test(key)) {\n\x09\x09        exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key];\n\x09\x09    }\n\x09\x09});\n\x09\x09(function (FINISH) {\n\x09\x09    FINISH[FINISH["SAFE"] = 0] = "SAFE";\n\x09\x09    FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB";\n\x09\x09    FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE";\n\x09\x09})(exports.FINISH || (exports.FINISH = {}));\n\x09\x09exports.ALPHA = [];\n\x09\x09for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) {\n\x09\x09    // Upper case\n\x09\x09    exports.ALPHA.push(String.fromCharCode(i));\n\x09\x09    // Lower case\n\x09\x09    exports.ALPHA.push(String.fromCharCode(i + 0x20));\n\x09\x09}\n\x09\x09exports.NUM_MAP = {\n\x09\x09    0: 0\x2C 1: 1\x2C 2: 2\x2C 3: 3\x2C 4: 4\x2C\n\x09\x09    5: 5\x2C 6: 6\x2C 7: 7\x2C 8: 8\x2C 9: 9\x2C\n\x09\x09};\n\x09\x09exports.HEX_MAP = {\n\x09\x09    0: 0\x2C 1: 1\x2C 2: 2\x2C 3: 3\x2C 4: 4\x2C\n\x09\x09    5: 5\x2C 6: 6\x2C 7: 7\x2C 8: 8\x2C 9: 9\x2C\n\x09\x09    A: 0XA\x2C B: 0XB\x2C C: 0XC\x2C D: 0XD\x2C E: 0XE\x2C F: 0XF\x2C\n\x09\x09    a: 0xa\x2C b: 0xb\x2C c: 0xc\x2C d: 0xd\x2C e: 0xe\x2C f: 0xf\x2C\n\x09\x09};\n\x09\x09exports.NUM = [\n\x09\x09    '0'\x2C '1'\x2C '2'\x2C '3'\x2C '4'\x2C '5'\x2C '6'\x2C '7'\x2C '8'\x2C '9'\x2C\n\x09\x09];\n\x09\x09exports.ALPHANUM = exports.ALPHA.concat(exports.NUM);\n\x09\x09exports.MARK = ['-'\x2C '_'\x2C '.'\x2C '!'\x2C '~'\x2C '*'\x2C '\\''\x2C '('\x2C ')'];\n\x09\x09exports.USERINFO_CHARS = exports.ALPHANUM\n\x09\x09    .concat(exports.MARK)\n\x09\x09    .concat(['%'\x2C ';'\x2C ':'\x2C '&'\x2C '='\x2C '+'\x2C '$'\x2C '\x2C']);\n\x09\x09// TODO(indutny): use RFC\n\x09\x09exports.STRICT_URL_CHAR = [\n\x09\x09    '!'\x2C '"'\x2C '$'\x2C '%'\x2C '&'\x2C '\\''\x2C\n\x09\x09    '('\x2C ')'\x2C '*'\x2C '+'\x2C '\x2C'\x2C '-'\x2C '.'\x2C '/'\x2C\n\x09\x09    ':'\x2C ';'\x2C '<'\x2C '='\x2C '>'\x2C\n\x09\x09    '@'\x2C '['\x2C '\\\\'\x2C ']'\x2C '^'\x2C '_'\x2C\n\x09\x09    '`'\x2C\n\x09\x09    '{'\x2C '|'\x2C '}'\x2C '~'\x2C\n\x09\x09].concat(exports.ALPHANUM);\n\x09\x09exports.URL_CHAR = exports.STRICT_URL_CHAR\n\x09\x09    .concat(['\\t'\x2C '\\f']);\n\x09\x09// All characters with 0x80 bit set to 1\n\x09\x09for (let i = 0x80; i <= 0xff; i++) {\n\x09\x09    exports.URL_CHAR.push(i);\n\x09\x09}\n\x09\x09exports.HEX = exports.NUM.concat(['a'\x2C 'b'\x2C 'c'\x2C 'd'\x2C 'e'\x2C 'f'\x2C 'A'\x2C 'B'\x2C 'C'\x2C 'D'\x2C 'E'\x2C 'F']);\n\x09\x09/* Tokens as defined by rfc 2616. Also lowercases them.\n\x09\x09 *        token       = 1*<any CHAR except CTLs or separators>\n\x09\x09 *     separators     = "(" | ")" | "<" | ">" | "@"\n\x09\x09 *                    | "\x2C" | ";" | ":" | "\\" | <">\n\x09\x09 *                    | "/" | "[" | "]" | "?" | "="\n\x09\x09 *                    | "{" | "}" | SP | HT\n\x09\x09 */\n\x09\x09exports.STRICT_TOKEN = [\n\x09\x09    '!'\x2C '#'\x2C '$'\x2C '%'\x2C '&'\x2C '\\''\x2C\n\x09\x09    '*'\x2C '+'\x2C '-'\x2C '.'\x2C\n\x09\x09    '^'\x2C '_'\x2C '`'\x2C\n\x09\x09    '|'\x2C '~'\x2C\n\x09\x09].concat(exports.ALPHANUM);\n\x09\x09exports.TOKEN = exports.STRICT_TOKEN.concat([' ']);\n\x09\x09/*\n\x09\x09 * Verify that a char is a valid visible (printable) US-ASCII\n\x09\x09 * character or %x80-FF\n\x09\x09 */\n\x09\x09exports.HEADER_CHARS = ['\\t'];\n\x09\x09for (let i = 32; i <= 255; i++) {\n\x09\x09    if (i !== 127) {\n\x09\x09        exports.HEADER_CHARS.push(i);\n\x09\x09    }\n\x09\x09}\n\x09\x09// '\x2C' = \\x44\n\x09\x09exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44);\n\x09\x09exports.MAJOR = exports.NUM_MAP;\n\x09\x09exports.MINOR = exports.MAJOR;\n\x09\x09var HEADER_STATE;\n\x09\x09(function (HEADER_STATE) {\n\x09\x09    HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL";\n\x09\x09    HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION";\n\x09\x09    HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH";\n\x09\x09    HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING";\n\x09\x09    HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE";\n\x09\x09    HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE";\n\x09\x09    HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE";\n\x09\x09    HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE";\n\x09\x09    HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED";\n\x09\x09})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}));\n\x09\x09exports.SPECIAL_HEADERS = {\n\x09\x09    'connection': HEADER_STATE.CONNECTION\x2C\n\x09\x09    'content-length': HEADER_STATE.CONTENT_LENGTH\x2C\n\x09\x09    'proxy-connection': HEADER_STATE.CONNECTION\x2C\n\x09\x09    'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING\x2C\n\x09\x09    'upgrade': HEADER_STATE.UPGRADE\x2C\n\x09\x09};\n\x09\x09\n\x09} (constants$3));\n\x09return constants$3;\n}\n\nconst util$e = util$i;\nconst { kBodyUsed } = symbols$3;\nconst assert$5 = require$$0;\nconst { InvalidArgumentError: InvalidArgumentError$e } = errors$1;\nconst EE = require$$0$4;\n\nconst redirectableStatusCodes = [300\x2C 301\x2C 302\x2C 303\x2C 307\x2C 308];\n\nconst kBody$1 = Symbol('body');\n\nclass BodyAsyncIterable {\n  constructor (body) {\n    this[kBody$1] = body;\n    this[kBodyUsed] = false;\n  }\n\n  async * [Symbol.asyncIterator] () {\n    assert$5(!this[kBodyUsed]\x2C 'disturbed');\n    this[kBodyUsed] = true;\n    yield * this[kBody$1];\n  }\n}\n\nlet RedirectHandler$1 = class RedirectHandler {\n  constructor (dispatch\x2C maxRedirections\x2C opts\x2C handler) {\n    if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n      throw new InvalidArgumentError$e('maxRedirections must be a positive number')\n    }\n\n    util$e.validateHandler(handler\x2C opts.method\x2C opts.upgrade);\n\n    this.dispatch = dispatch;\n    this.location = null;\n    this.abort = null;\n    this.opts = { ...opts\x2C maxRedirections: 0 }; // opts must be a copy\n    this.maxRedirections = maxRedirections;\n    this.handler = handler;\n    this.history = [];\n\n    if (util$e.isStream(this.opts.body)) {\n      // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n      // so that it can be dispatched again?\n      // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n      if (util$e.bodyLength(this.opts.body) === 0) {\n        this.opts.body\n          .on('data'\x2C function () {\n            assert$5(false);\n          });\n      }\n\n      if (typeof this.opts.body.readableDidRead !== 'boolean') {\n        this.opts.body[kBodyUsed] = false;\n        EE.prototype.on.call(this.opts.body\x2C 'data'\x2C function () {\n          this[kBodyUsed] = true;\n        });\n      }\n    } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n      // TODO (fix): We can't access ReadableStream internal state\n      // to determine whether or not it has been disturbed. This is just\n      // a workaround.\n      this.opts.body = new BodyAsyncIterable(this.opts.body);\n    } else if (\n      this.opts.body &&\n      typeof this.opts.body !== 'string' &&\n      !ArrayBuffer.isView(this.opts.body) &&\n      util$e.isIterable(this.opts.body)\n    ) {\n      // TODO: Should we allow re-using iterable if !this.opts.idempotent\n      // or through some other flag?\n      this.opts.body = new BodyAsyncIterable(this.opts.body);\n    }\n  }\n\n  onConnect (abort) {\n    this.abort = abort;\n    this.handler.onConnect(abort\x2C { history: this.history });\n  }\n\n  onUpgrade (statusCode\x2C headers\x2C socket) {\n    this.handler.onUpgrade(statusCode\x2C headers\x2C socket);\n  }\n\n  onError (error) {\n    this.handler.onError(error);\n  }\n\n  onHeaders (statusCode\x2C headers\x2C resume\x2C statusText) {\n    this.location = this.history.length >= this.maxRedirections || util$e.isDisturbed(this.opts.body)\n      ? null\n      : parseLocation(statusCode\x2C headers);\n\n    if (this.opts.origin) {\n      this.history.push(new URL(this.opts.path\x2C this.opts.origin));\n    }\n\n    if (!this.location) {\n      return this.handler.onHeaders(statusCode\x2C headers\x2C resume\x2C statusText)\n    }\n\n    const { origin\x2C pathname\x2C search } = util$e.parseURL(new URL(this.location\x2C this.opts.origin && new URL(this.opts.path\x2C this.opts.origin)));\n    const path = search ? `${pathname}${search}` : pathname;\n\n    // Remove headers referring to the original URL.\n    // By default it is Host only\x2C unless it's a 303 (see below)\x2C which removes also all Content-* headers.\n    // https://tools.ietf.org/html/rfc7231#section-6.4\n    this.opts.headers = cleanRequestHeaders(this.opts.headers\x2C statusCode === 303\x2C this.opts.origin !== origin);\n    this.opts.path = path;\n    this.opts.origin = origin;\n    this.opts.maxRedirections = 0;\n    this.opts.query = null;\n\n    // https://tools.ietf.org/html/rfc7231#section-6.4.4\n    // In case of HTTP 303\x2C always replace method to be either HEAD or GET\n    if (statusCode === 303 && this.opts.method !== 'HEAD') {\n      this.opts.method = 'GET';\n      this.opts.body = null;\n    }\n  }\n\n  onData (chunk) {\n    if (this.location) ; else {\n      return this.handler.onData(chunk)\n    }\n  }\n\n  onComplete (trailers) {\n    if (this.location) {\n      /*\n        https://tools.ietf.org/html/rfc7231#section-6.4\n\n        TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n        and neither are useful if present.\n\n        See comment on onData method above for more detailed informations.\n      */\n\n      this.location = null;\n      this.abort = null;\n\n      this.dispatch(this.opts\x2C this);\n    } else {\n      this.handler.onComplete(trailers);\n    }\n  }\n\n  onBodySent (chunk) {\n    if (this.handler.onBodySent) {\n      this.handler.onBodySent(chunk);\n    }\n  }\n};\n\nfunction parseLocation (statusCode\x2C headers) {\n  if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n    return null\n  }\n\n  for (let i = 0; i < headers.length; i += 2) {\n    if (headers[i].toString().toLowerCase() === 'location') {\n      return headers[i + 1]\n    }\n  }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header\x2C removeContent\x2C unknownOrigin) {\n  return (\n    (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n    (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n    (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n    (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n  )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers\x2C removeContent\x2C unknownOrigin) {\n  const ret = [];\n  if (Array.isArray(headers)) {\n    for (let i = 0; i < headers.length; i += 2) {\n      if (!shouldRemoveHeader(headers[i]\x2C removeContent\x2C unknownOrigin)) {\n        ret.push(headers[i]\x2C headers[i + 1]);\n      }\n    }\n  } else if (headers && typeof headers === 'object') {\n    for (const key of Object.keys(headers)) {\n      if (!shouldRemoveHeader(key\x2C removeContent\x2C unknownOrigin)) {\n        ret.push(key\x2C headers[key]);\n      }\n    }\n  } else {\n    assert$5(headers == null\x2C 'headers must be an object or an array');\n  }\n  return ret\n}\n\nvar RedirectHandler_1 = RedirectHandler$1;\n\nconst RedirectHandler = RedirectHandler_1;\n\nfunction createRedirectInterceptor$2 ({ maxRedirections: defaultMaxRedirections }) {\n  return (dispatch) => {\n    return function Intercept (opts\x2C handler) {\n      const { maxRedirections = defaultMaxRedirections } = opts;\n\n      if (!maxRedirections) {\n        return dispatch(opts\x2C handler)\n      }\n\n      const redirectHandler = new RedirectHandler(dispatch\x2C maxRedirections\x2C opts\x2C handler);\n      opts = { ...opts\x2C maxRedirections: 0 }; // Stop sub dispatcher from also redirecting.\n      return dispatch(opts\x2C redirectHandler)\n    }\n  }\n}\n\nvar redirectInterceptor = createRedirectInterceptor$2;\n\nvar llhttpWasm;\nvar hasRequiredLlhttpWasm;\n\nfunction requireLlhttpWasm () {\n\x09if (hasRequiredLlhttpWasm) return llhttpWasm;\n\x09hasRequiredLlhttpWasm = 1;\n\x09llhttpWasm = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMBBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCtnkAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQy4CAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDLgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMuAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMuAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL8gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARBCHENAAJAIARBgARxRQ0AAkAgAC0AKEEBRw0AIAAtAC1BCnENAEEFDwtBBA8LAkAgBEEgcQ0AAkAgAC0AKEEBRg0AIAAvATIiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQYgEcUGABEYNAiAEQShxRQ0CC0EADwtBAEEDIAApAyBQGyEFCyAFC10BAn9BACEBAkAgAC0AKEEBRg0AIAAvATIiAkGcf2pB5ABJDQAgAkHMAUYNACACQbACRg0AIAAvATAiAEHAAHENAEEBIQEgAEGIBHFBgARGDQAgAEEocUUhAQsgAQuiAQEDfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEDIAAvATAiBEECcUUNAQwCC0EAIQMgAC8BMCIEQQFxRQ0BC0EBIQMgAC0AKEEBRg0AIAAvATIiBUGcf2pB5ABJDQAgBUHMAUYNACAFQbACRg0AIARBwABxDQBBACEDIARBiARxQYAERg0AIARBKHFBAEchAwsgAEEAOwEwIABBADoALyADC5QBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQEgAC8BMCICQQJxRQ0BDAILQQAhASAALwEwIgJBAXFFDQELQQEhASAALQAoQQFGDQAgAC8BMiIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC1kAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvc9wEDKH8DfgV/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8gASEQIAEhESABIRIgASETIAEhFCABIRUgASEWIAEhFyABIRggASEZIAEhGiABIRsgASEcIAEhHSABIR4gASEfIAEhICABISEgASEiIAEhIyABISQgASElIAEhJiABIScgASEoIAEhKQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIipBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAISoMxgELQQ4hKgzFAQtBDSEqDMQBC0EPISoMwwELQRAhKgzCAQtBEyEqDMEBC0EUISoMwAELQRUhKgy/AQtBFiEqDL4BC0EXISoMvQELQRghKgy8AQtBGSEqDLsBC0EaISoMugELQRshKgy5AQtBHCEqDLgBC0EIISoMtwELQR0hKgy2AQtBICEqDLUBC0EfISoMtAELQQchKgyzAQtBISEqDLIBC0EiISoMsQELQR4hKgywAQtBIyEqDK8BC0ESISoMrgELQREhKgytAQtBJCEqDKwBC0ElISoMqwELQSYhKgyqAQtBJyEqDKkBC0HDASEqDKgBC0EpISoMpwELQSshKgymAQtBLCEqDKUBC0EtISoMpAELQS4hKgyjAQtBLyEqDKIBC0HEASEqDKEBC0EwISoMoAELQTQhKgyfAQtBDCEqDJ4BC0ExISoMnQELQTIhKgycAQtBMyEqDJsBC0E5ISoMmgELQTUhKgyZAQtBxQEhKgyYAQtBCyEqDJcBC0E6ISoMlgELQTYhKgyVAQtBCiEqDJQBC0E3ISoMkwELQTghKgySAQtBPCEqDJEBC0E7ISoMkAELQT0hKgyPAQtBCSEqDI4BC0EoISoMjQELQT4hKgyMAQtBPyEqDIsBC0HAACEqDIoBC0HBACEqDIkBC0HCACEqDIgBC0HDACEqDIcBC0HEACEqDIYBC0HFACEqDIUBC0HGACEqDIQBC0EqISoMgwELQccAISoMggELQcgAISoMgQELQckAISoMgAELQcoAISoMfwtBywAhKgx+C0HNACEqDH0LQcwAISoMfAtBzgAhKgx7C0HPACEqDHoLQdAAISoMeQtB0QAhKgx4C0HSACEqDHcLQdMAISoMdgtB1AAhKgx1C0HWACEqDHQLQdUAISoMcwtBBiEqDHILQdcAISoMcQtBBSEqDHALQdgAISoMbwtBBCEqDG4LQdkAISoMbQtB2gAhKgxsC0HbACEqDGsLQdwAISoMagtBAyEqDGkLQd0AISoMaAtB3gAhKgxnC0HfACEqDGYLQeEAISoMZQtB4AAhKgxkC0HiACEqDGMLQeMAISoMYgtBAiEqDGELQeQAISoMYAtB5QAhKgxfC0HmACEqDF4LQecAISoMXQtB6AAhKgxcC0HpACEqDFsLQeoAISoMWgtB6wAhKgxZC0HsACEqDFgLQe0AISoMVwtB7gAhKgxWC0HvACEqDFULQfAAISoMVAtB8QAhKgxTC0HyACEqDFILQfMAISoMUQtB9AAhKgxQC0H1ACEqDE8LQfYAISoMTgtB9wAhKgxNC0H4ACEqDEwLQfkAISoMSwtB+gAhKgxKC0H7ACEqDEkLQfwAISoMSAtB/QAhKgxHC0H+ACEqDEYLQf8AISoMRQtBgAEhKgxEC0GBASEqDEMLQYIBISoMQgtBgwEhKgxBC0GEASEqDEALQYUBISoMPwtBhgEhKgw+C0GHASEqDD0LQYgBISoMPAtBiQEhKgw7C0GKASEqDDoLQYsBISoMOQtBjAEhKgw4C0GNASEqDDcLQY4BISoMNgtBjwEhKgw1C0GQASEqDDQLQZEBISoMMwtBkgEhKgwyC0GTASEqDDELQZQBISoMMAtBlQEhKgwvC0GWASEqDC4LQZcBISoMLQtBmAEhKgwsC0GZASEqDCsLQZoBISoMKgtBmwEhKgwpC0GcASEqDCgLQZ0BISoMJwtBngEhKgwmC0GfASEqDCULQaABISoMJAtBoQEhKgwjC0GiASEqDCILQaMBISoMIQtBpAEhKgwgC0GlASEqDB8LQaYBISoMHgtBpwEhKgwdC0GoASEqDBwLQakBISoMGwtBqgEhKgwaC0GrASEqDBkLQawBISoMGAtBrQEhKgwXC0GuASEqDBYLQQEhKgwVC0GvASEqDBQLQbABISoMEwtBsQEhKgwSC0GzASEqDBELQbIBISoMEAtBtAEhKgwPC0G1ASEqDA4LQbYBISoMDQtBtwEhKgwMC0G4ASEqDAsLQbkBISoMCgtBugEhKgwJC0G7ASEqDAgLQcYBISoMBwtBvAEhKgwGC0G9ASEqDAULQb4BISoMBAtBvwEhKgwDC0HAASEqDAILQcIBISoMAQtBwQEhKgsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgKg7HAQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHh8gISMlKD9AQURFRkdISUpLTE1PUFFSU+MDV1lbXF1gYmVmZ2hpamtsbW9wcXJzdHV2d3h5ent8fX6AAYIBhQGGAYcBiQGLAYwBjQGOAY8BkAGRAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wHYAdkB2gHbAdwB3QHeAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wGZAqQCsgKEA4QDCyABIgQgAkcN8wFB3QEhKgyGBAsgASIqIAJHDd0BQcMBISoMhQQLIAEiASACRw2QAUH3ACEqDIQECyABIgEgAkcNhgFB7wAhKgyDBAsgASIBIAJHDX9B6gAhKgyCBAsgASIBIAJHDXtB6AAhKgyBBAsgASIBIAJHDXhB5gAhKgyABAsgASIBIAJHDRpBGCEqDP8DCyABIgEgAkcNFEESISoM/gMLIAEiASACRw1ZQcUAISoM/QMLIAEiASACRw1KQT8hKgz8AwsgASIBIAJHDUhBPCEqDPsDCyABIgEgAkcNQUExISoM+gMLIAAtAC5BAUYN8gMMhwILIAAgASIBIAIQwICAgABBAUcN5gEgAEIANwMgDOcBCyAAIAEiASACELSAgIAAIioN5wEgASEBDPsCCwJAIAEiASACRw0AQQYhKgz3AwsgACABQQFqIgEgAhC7gICAACIqDegBIAEhAQwxCyAAQgA3AyBBEiEqDNwDCyABIiogAkcNK0EdISoM9AMLAkAgASIBIAJGDQAgAUEBaiEBQRAhKgzbAwtBByEqDPMDCyAAQgAgACkDICIrIAIgASIqa60iLH0iLSAtICtWGzcDICArICxWIi5FDeUBQQghKgzyAwsCQCABIgEgAkYNACAAQYmAgIAANgIIIAAgATYCBCABIQFBFCEqDNkDC0EJISoM8QMLIAEhASAAKQMgUA3kASABIQEM+AILAkAgASIBIAJHDQBBCyEqDPADCyAAIAFBAWoiASACELaAgIAAIioN5QEgASEBDPgCCyAAIAEiASACELiAgIAAIioN5QEgASEBDPgCCyAAIAEiASACELiAgIAAIioN5gEgASEBDA0LIAAgASIBIAIQuoCAgAAiKg3nASABIQEM9gILAkAgASIBIAJHDQBBDyEqDOwDCyABLQAAIipBO0YNCCAqQQ1HDegBIAFBAWohAQz1AgsgACABIgEgAhC6gICAACIqDegBIAEhAQz4AgsDQAJAIAEtAABB8LWAgABqLQAAIipBAUYNACAqQQJHDesBIAAoAgQhKiAAQQA2AgQgACAqIAFBAWoiARC5gICAACIqDeoBIAEhAQz6AgsgAUEBaiIBIAJHDQALQRIhKgzpAwsgACABIgEgAhC6gICAACIqDekBIAEhAQwKCyABIgEgAkcNBkEbISoM5wMLAkAgASIBIAJHDQBBFiEqDOcDCyAAQYqAgIAANgIIIAAgATYCBCAAIAEgAhC4gICAACIqDeoBIAEhAUEgISoMzQMLAkAgASIBIAJGDQADQAJAIAEtAABB8LeAgABqLQAAIipBAkYNAAJAICpBf2oOBOUB7AEA6wHsAQsgAUEBaiEBQQghKgzPAwsgAUEBaiIBIAJHDQALQRUhKgzmAwtBFSEqDOUDCwNAAkAgAS0AAEHwuYCAAGotAAAiKkECRg0AICpBf2oOBN4B7AHgAesB7AELIAFBAWoiASACRw0AC0EYISoM5AMLAkAgASIBIAJGDQAgAEGLgICAADYCCCAAIAE2AgQgASEBQQchKgzLAwtBGSEqDOMDCyABQQFqIQEMAgsCQCABIi4gAkcNAEEaISoM4gMLIC4hAQJAIC4tAABBc2oOFOMC9AL0AvQC9AL0AvQC9AL0AvQC9AL0AvQC9AL0AvQC9AL0AvQCAPQCC0EAISogAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgLkEBajYCFAzhAwsCQCABLQAAIipBO0YNACAqQQ1HDegBIAFBAWohAQzrAgsgAUEBaiEBC0EiISoMxgMLAkAgASIqIAJHDQBBHCEqDN8DC0IAISsgKiEBICotAABBUGoON+cB5gEBAgMEBQYHCAAAAAAAAAAJCgsMDQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8QERITFAALQR4hKgzEAwtCAiErDOUBC0IDISsM5AELQgQhKwzjAQtCBSErDOIBC0IGISsM4QELQgchKwzgAQtCCCErDN8BC0IJISsM3gELQgohKwzdAQtCCyErDNwBC0IMISsM2wELQg0hKwzaAQtCDiErDNkBC0IPISsM2AELQgohKwzXAQtCCyErDNYBC0IMISsM1QELQg0hKwzUAQtCDiErDNMBC0IPISsM0gELQgAhKwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgKi0AAEFQag435QHkAQABAgMEBQYH5gHmAeYB5gHmAeYB5gEICQoLDA3mAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYBDg8QERIT5gELQgIhKwzkAQtCAyErDOMBC0IEISsM4gELQgUhKwzhAQtCBiErDOABC0IHISsM3wELQgghKwzeAQtCCSErDN0BC0IKISsM3AELQgshKwzbAQtCDCErDNoBC0INISsM2QELQg4hKwzYAQtCDyErDNcBC0IKISsM1gELQgshKwzVAQtCDCErDNQBC0INISsM0wELQg4hKwzSAQtCDyErDNEBCyAAQgAgACkDICIrIAIgASIqa60iLH0iLSAtICtWGzcDICArICxWIi5FDdIBQR8hKgzHAwsCQCABIgEgAkYNACAAQYmAgIAANgIIIAAgATYCBCABIQFBJCEqDK4DC0EgISoMxgMLIAAgASIqIAIQvoCAgABBf2oOBbYBAMsCAdEB0gELQREhKgyrAwsgAEEBOgAvICohAQzCAwsgASIBIAJHDdIBQSQhKgzCAwsgASInIAJHDR5BxgAhKgzBAwsgACABIgEgAhCygICAACIqDdQBIAEhAQy1AQsgASIqIAJHDSZB0AAhKgy/AwsCQCABIgEgAkcNAEEoISoMvwMLIABBADYCBCAAQYyAgIAANgIIIAAgASABELGAgIAAIioN0wEgASEBDNgBCwJAIAEiKiACRw0AQSkhKgy+AwsgKi0AACIBQSBGDRQgAUEJRw3TASAqQQFqIQEMFQsCQCABIgEgAkYNACABQQFqIQEMFwtBKiEqDLwDCwJAIAEiKiACRw0AQSshKgy8AwsCQCAqLQAAIgFBCUYNACABQSBHDdUBCyAALQAsQQhGDdMBICohAQyWAwsCQCABIgEgAkcNAEEsISoMuwMLIAEtAABBCkcN1QEgAUEBaiEBDM8CCyABIiggAkcN1QFBLyEqDLkDCwNAAkAgAS0AACIqQSBGDQACQCAqQXZqDgQA3AHcAQDaAQsgASEBDOIBCyABQQFqIgEgAkcNAAtBMSEqDLgDC0EyISogASIvIAJGDbcDIAIgL2sgACgCACIwaiExIC8hMiAwIQECQANAIDItAAAiLkEgciAuIC5Bv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BIAFBA0YNmwMgAUEBaiEBIDJBAWoiMiACRw0ACyAAIDE2AgAMuAMLIABBADYCACAyIQEM2QELQTMhKiABIi8gAkYNtgMgAiAvayAAKAIAIjBqITEgLyEyIDAhAQJAA0AgMi0AACIuQSByIC4gLkG/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQEgAUEIRg3bASABQQFqIQEgMkEBaiIyIAJHDQALIAAgMTYCAAy3AwsgAEEANgIAIDIhAQzYAQtBNCEqIAEiLyACRg21AyACIC9rIAAoAgAiMGohMSAvITIgMCEBAkADQCAyLQAAIi5BIHIgLiAuQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcNASABQQVGDdsBIAFBAWohASAyQQFqIjIgAkcNAAsgACAxNgIADLYDCyAAQQA2AgAgMiEBDNcBCwJAIAEiASACRg0AA0ACQCABLQAAQYC+gIAAai0AACIqQQFGDQAgKkECRg0KIAEhAQzfAQsgAUEBaiIBIAJHDQALQTAhKgy1AwtBMCEqDLQDCwJAIAEiASACRg0AA0ACQCABLQAAIipBIEYNACAqQXZqDgTbAdwB3AHbAdwBCyABQQFqIgEgAkcNAAtBOCEqDLQDC0E4ISoMswMLA0ACQCABLQAAIipBIEYNACAqQQlHDQMLIAFBAWoiASACRw0AC0E8ISoMsgMLA0ACQCABLQAAIipBIEYNAAJAAkAgKkF2ag4E3AEBAdwBAAsgKkEsRg3dAQsgASEBDAQLIAFBAWoiASACRw0AC0E/ISoMsQMLIAEhAQzdAQtBwAAhKiABIjIgAkYNrwMgAiAyayAAKAIAIi9qITAgMiEuIC8hAQJAA0AgLi0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDZUDIAFBAWohASAuQQFqIi4gAkcNAAsgACAwNgIADLADCyAAQQA2AgAgLiEBC0E2ISoMlQMLAkAgASIpIAJHDQBBwQAhKgyuAwsgAEGMgICAADYCCCAAICk2AgQgKSEBIAAtACxBf2oOBM0B1wHZAdsBjAMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIqQSByICogKkG/f2pB/wFxQRpJG0H/AXEiKkEJRg0AICpBIEYNAAJAAkACQAJAICpBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhKgyYAwsgAUEBaiEBQTIhKgyXAwsgAUEBaiEBQTMhKgyWAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEqDKwDC0E1ISoMqwMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNUBCyABQQFqIgEgAkcNAAtBPSEqDKsDC0E9ISoMqgMLIAAgASIBIAIQsICAgAAiKg3YASABIQEMAQsgKkEBaiEBC0E8ISoMjgMLAkAgASIBIAJHDQBBwgAhKgynAwsCQANAAkAgAS0AAEF3ag4YAAKDA4MDiQODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwMAgwMLIAFBAWoiASACRw0AC0HCACEqDKcDCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsISoMjAMLIAEiASACRw3VAUHEACEqDKQDCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMvQILIAFBAWoiASACRw0AC0HFACEqDKMDCyAnLQAAIipBIEYNswEgKkE6Rw2IAyAAKAIEIQEgAEEANgIEIAAgASAnEK+AgIAAIgEN0gEgJ0EBaiEBDLkCC0HHACEqIAEiMiACRg2hAyACIDJrIAAoAgAiL2ohMCAyIScgLyEBAkADQCAnLQAAIi5BIHIgLiAuQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNiAMgAUEFRg0BIAFBAWohASAnQQFqIicgAkcNAAsgACAwNgIADKIDCyAAQQA2AgAgAEEBOgAsIDIgL2tBBmohAQyCAwtByAAhKiABIjIgAkYNoAMgAiAyayAAKAIAIi9qITAgMiEnIC8hAQJAA0AgJy0AACIuQSByIC4gLkG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDYcDIAFBCUYNASABQQFqIQEgJ0EBaiInIAJHDQALIAAgMDYCAAyhAwsgAEEANgIAIABBAjoALCAyIC9rQQpqIQEMgQMLAkAgASInIAJHDQBByQAhKgygAwsCQAJAICctAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIcDhwOHA4cDhwMBhwMLICdBAWohAUE+ISoMhwMLICdBAWohAUE/ISoMhgMLQcoAISogASIyIAJGDZ4DIAIgMmsgACgCACIvaiEwIDIhJyAvIQEDQCAnLQAAIi5BIHIgLiAuQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcNhAMgAUEBRg34AiABQQFqIQEgJ0EBaiInIAJHDQALIAAgMDYCAAyeAwtBywAhKiABIjIgAkYNnQMgAiAyayAAKAIAIi9qITAgMiEnIC8hAQJAA0AgJy0AACIuQSByIC4gLkG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDYQDIAFBDkYNASABQQFqIQEgJ0EBaiInIAJHDQALIAAgMDYCAAyeAwsgAEEANgIAIABBAToALCAyIC9rQQ9qIQEM/gILQcwAISogASIyIAJGDZwDIAIgMmsgACgCACIvaiEwIDIhJyAvIQECQANAICctAAAiLkEgciAuIC5Bv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw2DAyABQQ9GDQEgAUEBaiEBICdBAWoiJyACRw0ACyAAIDA2AgAMnQMLIABBADYCACAAQQM6ACwgMiAva0EQaiEBDP0CC0HNACEqIAEiMiACRg2bAyACIDJrIAAoAgAiL2ohMCAyIScgLyEBAkADQCAnLQAAIi5BIHIgLiAuQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcNggMgAUEFRg0BIAFBAWohASAnQQFqIicgAkcNAAsgACAwNgIADJwDCyAAQQA2AgAgAEEEOgAsIDIgL2tBBmohAQz8AgsCQCABIicgAkcNAEHOACEqDJsDCwJAAkACQAJAICctAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAIQDhAOEA4QDhAOEA4QDhAOEA4QDhAOEAwGEA4QDhAMCA4QDCyAnQQFqIQFBwQAhKgyEAwsgJ0EBaiEBQcIAISoMgwMLICdBAWohAUHDACEqDIIDCyAnQQFqIQFBxAAhKgyBAwsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhKgyBAwtBzwAhKgyZAwsgKiEBAkACQCAqLQAAQXZqDgQBrgKuAgCuAgsgKkEBaiEBC0EnISoM/wILAkAgASIBIAJHDQBB0QAhKgyYAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNyQEgASEBDIwBCyABIgEgAkcNyQFB0gAhKgyWAwtB0wAhKiABIjIgAkYNlQMgAiAyayAAKAIAIi9qITAgMiEuIC8hAQJAA0AgLi0AACABQdbCgIAAai0AAEcNzwEgAUEBRg0BIAFBAWohASAuQQFqIi4gAkcNAAsgACAwNgIADJYDCyAAQQA2AgAgMiAva0ECaiEBDMkBCwJAIAEiASACRw0AQdUAISoMlQMLIAEtAABBCkcNzgEgAUEBaiEBDMkBCwJAIAEiASACRw0AQdYAISoMlAMLAkACQCABLQAAQXZqDgQAzwHPAQHPAQsgAUEBaiEBDMkBCyABQQFqIQFBygAhKgz6AgsgACABIgEgAhCugICAACIqDc0BIAEhAUHNACEqDPkCCyAALQApQSJGDYwDDKwCCwJAIAEiASACRw0AQdsAISoMkQMLQQAhLkEBITJBASEvQQAhKgJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrWAdUBAAECAwQFBgjXAQtBAiEqDAYLQQMhKgwFC0EEISoMBAtBBSEqDAMLQQYhKgwCC0EHISoMAQtBCCEqC0EAITJBACEvQQAhLgzOAQtBCSEqQQEhLkEAITJBACEvDM0BCwJAIAEiASACRw0AQd0AISoMkAMLIAEtAABBLkcNzgEgAUEBaiEBDKwCCwJAIAEiASACRw0AQd8AISoMjwMLQQAhKgJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1wHWAQABAgMEBQYH2AELQQIhKgzWAQtBAyEqDNUBC0EEISoM1AELQQUhKgzTAQtBBiEqDNIBC0EHISoM0QELQQghKgzQAQtBCSEqDM8BCwJAIAEiASACRg0AIABBjoCAgAA2AgggACABNgIEIAEhAUHQACEqDPUCC0HgACEqDI0DC0HhACEqIAEiMiACRg2MAyACIDJrIAAoAgAiL2ohMCAyIQEgLyEuA0AgAS0AACAuQeLCgIAAai0AAEcN0QEgLkEDRg3QASAuQQFqIS4gAUEBaiIBIAJHDQALIAAgMDYCAAyMAwtB4gAhKiABIjIgAkYNiwMgAiAyayAAKAIAIi9qITAgMiEBIC8hLgNAIAEtAAAgLkHmwoCAAGotAABHDdABIC5BAkYN0gEgLkEBaiEuIAFBAWoiASACRw0ACyAAIDA2AgAMiwMLQeMAISogASIyIAJGDYoDIAIgMmsgACgCACIvaiEwIDIhASAvIS4DQCABLQAAIC5B6cKAgABqLQAARw3PASAuQQNGDdIBIC5BAWohLiABQQFqIgEgAkcNAAsgACAwNgIADIoDCwJAIAEiASACRw0AQeUAISoMigMLIAAgAUEBaiIBIAIQqICAgAAiKg3RASABIQFB1gAhKgzwAgsCQCABIgEgAkYNAANAAkAgAS0AACIqQSBGDQACQAJAAkAgKkG4f2oOCwAB0wHTAdMB0wHTAdMB0wHTAQLTAQsgAUEBaiEBQdIAISoM9AILIAFBAWohAUHTACEqDPMCCyABQQFqIQFB1AAhKgzyAgsgAUEBaiIBIAJHDQALQeQAISoMiQMLQeQAISoMiAMLA0ACQCABLQAAQfDCgIAAai0AACIqQQFGDQAgKkF+ag4D0wHUAdUB1gELIAFBAWoiASACRw0AC0HmACEqDIcDCwJAIAEiASACRg0AIAFBAWohAQwDC0HnACEqDIYDCwNAAkAgAS0AAEHwxICAAGotAAAiKkEBRg0AAkAgKkF+ag4E1gHXAdgBANkBCyABIQFB1wAhKgzuAgsgAUEBaiIBIAJHDQALQegAISoMhQMLAkAgASIBIAJHDQBB6QAhKgyFAwsCQCABLQAAIipBdmoOGrwB2QHZAb4B2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkBzgHZAdkBANcBCyABQQFqIQELQQYhKgzqAgsDQAJAIAEtAABB8MaAgABqLQAAQQFGDQAgASEBDKUCCyABQQFqIgEgAkcNAAtB6gAhKgyCAwsCQCABIgEgAkYNACABQQFqIQEMAwtB6wAhKgyBAwsCQCABIgEgAkcNAEHsACEqDIEDCyABQQFqIQEMAQsCQCABIgEgAkcNAEHtACEqDIADCyABQQFqIQELQQQhKgzlAgsCQCABIi4gAkcNAEHuACEqDP4CCyAuIQECQAJAAkAgLi0AAEHwyICAAGotAABBf2oOB9gB2QHaAQCjAgEC2wELIC5BAWohAQwKCyAuQQFqIQEM0QELQQAhKiAAQQA2AhwgAEGbkoCAADYCECAAQQc2AgwgACAuQQFqNgIUDP0CCwJAA0ACQCABLQAAQfDIgIAAai0AACIqQQRGDQACQAJAICpBf2oOB9YB1wHYAd0BAAQB3QELIAEhAUHaACEqDOcCCyABQQFqIQFB3AAhKgzmAgsgAUEBaiIBIAJHDQALQe8AISoM/QILIAFBAWohAQzPAQsCQCABIi4gAkcNAEHwACEqDPwCCyAuLQAAQS9HDdgBIC5BAWohAQwGCwJAIAEiLiACRw0AQfEAISoM+wILAkAgLi0AACIBQS9HDQAgLkEBaiEBQd0AISoM4gILIAFBdmoiAUEWSw3XAUEBIAF0QYmAgAJxRQ3XAQzSAgsCQCABIgEgAkYNACABQQFqIQFB3gAhKgzhAgtB8gAhKgz5AgsCQCABIi4gAkcNAEH0ACEqDPkCCyAuIQECQCAuLQAAQfDMgIAAai0AAEF/ag4D0QKbAgDYAQtB4QAhKgzfAgsCQCABIi4gAkYNAANAAkAgLi0AAEHwyoCAAGotAAAiAUEDRg0AAkAgAUF/ag4C0wIA2QELIC4hAUHfACEqDOECCyAuQQFqIi4gAkcNAAtB8wAhKgz4AgtB8wAhKgz3AgsCQCABIgEgAkYNACAAQY+AgIAANgIIIAAgATYCBCABIQFB4AAhKgzeAgtB9QAhKgz2AgsCQCABIgEgAkcNAEH2ACEqDPYCCyAAQY+AgIAANgIIIAAgATYCBCABIQELQQMhKgzbAgsDQCABLQAAQSBHDcsCIAFBAWoiASACRw0AC0H3ACEqDPMCCwJAIAEiASACRw0AQfgAISoM8wILIAEtAABBIEcN0gEgAUEBaiEBDPUBCyAAIAEiASACEKyAgIAAIioN0gEgASEBDJUCCwJAIAEiBCACRw0AQfoAISoM8QILIAQtAABBzABHDdUBIARBAWohAUETISoM0wELAkAgASIqIAJHDQBB+wAhKgzwAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQNAIAQtAAAgAUHwzoCAAGotAABHDdQBIAFBBUYN0gEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBB+wAhKgzvAgsCQCABIgQgAkcNAEH8ACEqDO8CCwJAAkAgBC0AAEG9f2oODADVAdUB1QHVAdUB1QHVAdUB1QHVAQHVAQsgBEEBaiEBQeYAISoM1gILIARBAWohAUHnACEqDNUCCwJAIAEiKiACRw0AQf0AISoM7gILIAIgKmsgACgCACIuaiEyICohBCAuIQECQANAIAQtAAAgAUHtz4CAAGotAABHDdMBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgMjYCAEH9ACEqDO4CCyAAQQA2AgAgKiAua0EDaiEBQRAhKgzQAQsCQCABIiogAkcNAEH+ACEqDO0CCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFB9s6AgABqLQAARw3SASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBB/gAhKgztAgsgAEEANgIAICogLmtBBmohAUEWISoMzwELAkAgASIqIAJHDQBB/wAhKgzsAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQJAA0AgBC0AACABQfzOgIAAai0AAEcN0QEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAyNgIAQf8AISoM7AILIABBADYCACAqIC5rQQRqIQFBBSEqDM4BCwJAIAEiBCACRw0AQYABISoM6wILIAQtAABB2QBHDc8BIARBAWohAUEIISoMzQELAkAgASIEIAJHDQBBgQEhKgzqAgsCQAJAIAQtAABBsn9qDgMA0AEB0AELIARBAWohAUHrACEqDNECCyAEQQFqIQFB7AAhKgzQAgsCQCABIgQgAkcNAEGCASEqDOkCCwJAAkAgBC0AAEG4f2oOCADPAc8BzwHPAc8BzwEBzwELIARBAWohAUHqACEqDNACCyAEQQFqIQFB7QAhKgzPAgsCQCABIi4gAkcNAEGDASEqDOgCCyACIC5rIAAoAgAiMmohKiAuIQQgMiEBAkADQCAELQAAIAFBgM+AgABqLQAARw3NASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICo2AgBBgwEhKgzoAgtBACEqIABBADYCACAuIDJrQQNqIQEMygELAkAgASIqIAJHDQBBhAEhKgznAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQJAA0AgBC0AACABQYPPgIAAai0AAEcNzAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAyNgIAQYQBISoM5wILIABBADYCACAqIC5rQQVqIQFBIyEqDMkBCwJAIAEiBCACRw0AQYUBISoM5gILAkACQCAELQAAQbR/ag4IAMwBzAHMAcwBzAHMAQHMAQsgBEEBaiEBQe8AISoMzQILIARBAWohAUHwACEqDMwCCwJAIAEiBCACRw0AQYYBISoM5QILIAQtAABBxQBHDckBIARBAWohAQyKAgsCQCABIiogAkcNAEGHASEqDOQCCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFBiM+AgABqLQAARw3JASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBBhwEhKgzkAgsgAEEANgIAICogLmtBBGohAUEtISoMxgELAkAgASIqIAJHDQBBiAEhKgzjAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQJAA0AgBC0AACABQdDPgIAAai0AAEcNyAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAyNgIAQYgBISoM4wILIABBADYCACAqIC5rQQlqIQFBKSEqDMUBCwJAIAEiASACRw0AQYkBISoM4gILQQEhKiABLQAAQd8ARw3EASABQQFqIQEMiAILAkAgASIqIAJHDQBBigEhKgzhAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQNAIAQtAAAgAUGMz4CAAGotAABHDcUBIAFBAUYNtwIgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBBigEhKgzgAgsCQCABIiogAkcNAEGLASEqDOACCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFBjs+AgABqLQAARw3FASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBBiwEhKgzgAgsgAEEANgIAICogLmtBA2ohAUECISoMwgELAkAgASIqIAJHDQBBjAEhKgzfAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQJAA0AgBC0AACABQfDPgIAAai0AAEcNxAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAyNgIAQYwBISoM3wILIABBADYCACAqIC5rQQJqIQFBHyEqDMEBCwJAIAEiKiACRw0AQY0BISoM3gILIAIgKmsgACgCACIuaiEyICohBCAuIQECQANAIAQtAAAgAUHyz4CAAGotAABHDcMBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgMjYCAEGNASEqDN4CCyAAQQA2AgAgKiAua0ECaiEBQQkhKgzAAQsCQCABIgQgAkcNAEGOASEqDN0CCwJAAkAgBC0AAEG3f2oOBwDDAcMBwwHDAcMBAcMBCyAEQQFqIQFB+AAhKgzEAgsgBEEBaiEBQfkAISoMwwILAkAgASIqIAJHDQBBjwEhKgzcAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQJAA0AgBC0AACABQZHPgIAAai0AAEcNwQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAyNgIAQY8BISoM3AILIABBADYCACAqIC5rQQZqIQFBGCEqDL4BCwJAIAEiKiACRw0AQZABISoM2wILIAIgKmsgACgCACIuaiEyICohBCAuIQECQANAIAQtAAAgAUGXz4CAAGotAABHDcABIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgMjYCAEGQASEqDNsCCyAAQQA2AgAgKiAua0EDaiEBQRchKgy9AQsCQCABIiogAkcNAEGRASEqDNoCCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFBms+AgABqLQAARw2/ASABQQZGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBBkQEhKgzaAgsgAEEANgIAICogLmtBB2ohAUEVISoMvAELAkAgASIqIAJHDQBBkgEhKgzZAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQJAA0AgBC0AACABQaHPgIAAai0AAEcNvgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAyNgIAQZIBISoM2QILIABBADYCACAqIC5rQQZqIQFBHiEqDLsBCwJAIAEiBCACRw0AQZMBISoM2AILIAQtAABBzABHDbwBIARBAWohAUEKISoMugELAkAgBCACRw0AQZQBISoM1wILAkACQCAELQAAQb9/ag4PAL0BvQG9Ab0BvQG9Ab0BvQG9Ab0BvQG9Ab0BAb0BCyAEQQFqIQFB/gAhKgy+AgsgBEEBaiEBQf8AISoMvQILAkAgBCACRw0AQZUBISoM1gILAkACQCAELQAAQb9/ag4DALwBAbwBCyAEQQFqIQFB/QAhKgy9AgsgBEEBaiEEQYABISoMvAILAkAgBSACRw0AQZYBISoM1QILIAIgBWsgACgCACIqaiEuIAUhBCAqIQECQANAIAQtAAAgAUGnz4CAAGotAABHDboBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGWASEqDNUCCyAAQQA2AgAgBSAqa0ECaiEBQQshKgy3AQsCQCAEIAJHDQBBlwEhKgzUAgsCQAJAAkACQCAELQAAQVNqDiMAvAG8AbwBvAG8AbwBvAG8AbwBvAG8AbwBvAG8AbwBvAG8AbwBvAG8AbwBvAG8AQG8AbwBvAG8AbwBArwBvAG8AQO8AQsgBEEBaiEBQfsAISoMvQILIARBAWohAUH8ACEqDLwCCyAEQQFqIQRBgQEhKgy7AgsgBEEBaiEFQYIBISoMugILAkAgBiACRw0AQZgBISoM0wILIAIgBmsgACgCACIqaiEuIAYhBCAqIQECQANAIAQtAAAgAUGpz4CAAGotAABHDbgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGYASEqDNMCCyAAQQA2AgAgBiAqa0EFaiEBQRkhKgy1AQsCQCAHIAJHDQBBmQEhKgzSAgsgAiAHayAAKAIAIi5qISogByEEIC4hAQJAA0AgBC0AACABQa7PgIAAai0AAEcNtwEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAqNgIAQZkBISoM0gILIABBADYCAEEGISogByAua0EGaiEBDLQBCwJAIAggAkcNAEGaASEqDNECCyACIAhrIAAoAgAiKmohLiAIIQQgKiEBAkADQCAELQAAIAFBtM+AgABqLQAARw22ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBmgEhKgzRAgsgAEEANgIAIAggKmtBAmohAUEcISoMswELAkAgCSACRw0AQZsBISoM0AILIAIgCWsgACgCACIqaiEuIAkhBCAqIQECQANAIAQtAAAgAUG2z4CAAGotAABHDbUBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGbASEqDNACCyAAQQA2AgAgCSAqa0ECaiEBQSchKgyyAQsCQCAEIAJHDQBBnAEhKgzPAgsCQAJAIAQtAABBrH9qDgIAAbUBCyAEQQFqIQhBhgEhKgy2AgsgBEEBaiEJQYcBISoMtQILAkAgCiACRw0AQZ0BISoMzgILIAIgCmsgACgCACIqaiEuIAohBCAqIQECQANAIAQtAAAgAUG4z4CAAGotAABHDbMBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGdASEqDM4CCyAAQQA2AgAgCiAqa0ECaiEBQSYhKgywAQsCQCALIAJHDQBBngEhKgzNAgsgAiALayAAKAIAIipqIS4gCyEEICohAQJAA0AgBC0AACABQbrPgIAAai0AAEcNsgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQZ4BISoMzQILIABBADYCACALICprQQJqIQFBAyEqDK8BCwJAIAwgAkcNAEGfASEqDMwCCyACIAxrIAAoAgAiKmohLiAMIQQgKiEBAkADQCAELQAAIAFB7c+AgABqLQAARw2xASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBnwEhKgzMAgsgAEEANgIAIAwgKmtBA2ohAUEMISoMrgELAkAgDSACRw0AQaABISoMywILIAIgDWsgACgCACIqaiEuIA0hBCAqIQECQANAIAQtAAAgAUG8z4CAAGotAABHDbABIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGgASEqDMsCCyAAQQA2AgAgDSAqa0EEaiEBQQ0hKgytAQsCQCAEIAJHDQBBoQEhKgzKAgsCQAJAIAQtAABBun9qDgsAsAGwAbABsAGwAbABsAGwAbABAbABCyAEQQFqIQxBiwEhKgyxAgsgBEEBaiENQYwBISoMsAILAkAgBCACRw0AQaIBISoMyQILIAQtAABB0ABHDa0BIARBAWohBAzwAQsCQCAEIAJHDQBBowEhKgzIAgsCQAJAIAQtAABBt39qDgcBrgGuAa4BrgGuAQCuAQsgBEEBaiEEQY4BISoMrwILIARBAWohAUEiISoMqgELAkAgDiACRw0AQaQBISoMxwILIAIgDmsgACgCACIqaiEuIA4hBCAqIQECQANAIAQtAAAgAUHAz4CAAGotAABHDawBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGkASEqDMcCCyAAQQA2AgAgDiAqa0ECaiEBQR0hKgypAQsCQCAEIAJHDQBBpQEhKgzGAgsCQAJAIAQtAABBrn9qDgMArAEBrAELIARBAWohDkGQASEqDK0CCyAEQQFqIQFBBCEqDKgBCwJAIAQgAkcNAEGmASEqDMUCCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCuAa4BrgGuAa4BrgGuAa4BrgGuAQGuAa4BAq4BrgEDrgGuAQSuAQsgBEEBaiEEQYgBISoMrwILIARBAWohCkGJASEqDK4CCyAEQQFqIQtBigEhKgytAgsgBEEBaiEEQY8BISoMrAILIARBAWohBEGRASEqDKsCCwJAIA8gAkcNAEGnASEqDMQCCyACIA9rIAAoAgAiKmohLiAPIQQgKiEBAkADQCAELQAAIAFB7c+AgABqLQAARw2pASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBpwEhKgzEAgsgAEEANgIAIA8gKmtBA2ohAUERISoMpgELAkAgECACRw0AQagBISoMwwILIAIgEGsgACgCACIqaiEuIBAhBCAqIQECQANAIAQtAAAgAUHCz4CAAGotAABHDagBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGoASEqDMMCCyAAQQA2AgAgECAqa0EDaiEBQSwhKgylAQsCQCARIAJHDQBBqQEhKgzCAgsgAiARayAAKAIAIipqIS4gESEEICohAQJAA0AgBC0AACABQcXPgIAAai0AAEcNpwEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQakBISoMwgILIABBADYCACARICprQQVqIQFBKyEqDKQBCwJAIBIgAkcNAEGqASEqDMECCyACIBJrIAAoAgAiKmohLiASIQQgKiEBAkADQCAELQAAIAFBys+AgABqLQAARw2mASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBqgEhKgzBAgsgAEEANgIAIBIgKmtBA2ohAUEUISoMowELAkAgBCACRw0AQasBISoMwAILAkACQAJAAkAgBC0AAEG+f2oODwABAqgBqAGoAagBqAGoAagBqAGoAagBqAEDqAELIARBAWohD0GTASEqDKkCCyAEQQFqIRBBlAEhKgyoAgsgBEEBaiERQZUBISoMpwILIARBAWohEkGWASEqDKYCCwJAIAQgAkcNAEGsASEqDL8CCyAELQAAQcUARw2jASAEQQFqIQQM5wELAkAgEyACRw0AQa0BISoMvgILIAIgE2sgACgCACIqaiEuIBMhBCAqIQECQANAIAQtAAAgAUHNz4CAAGotAABHDaMBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGtASEqDL4CCyAAQQA2AgAgEyAqa0EDaiEBQQ4hKgygAQsCQCAEIAJHDQBBrgEhKgy9AgsgBC0AAEHQAEcNoQEgBEEBaiEBQSUhKgyfAQsCQCAUIAJHDQBBrwEhKgy8AgsgAiAUayAAKAIAIipqIS4gFCEEICohAQJAA0AgBC0AACABQdDPgIAAai0AAEcNoQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQa8BISoMvAILIABBADYCACAUICprQQlqIQFBKiEqDJ4BCwJAIAQgAkcNAEGwASEqDLsCCwJAAkAgBC0AAEGrf2oOCwChAaEBoQGhAaEBoQGhAaEBoQEBoQELIARBAWohBEGaASEqDKICCyAEQQFqIRRBmwEhKgyhAgsCQCAEIAJHDQBBsQEhKgy6AgsCQAJAIAQtAABBv39qDhQAoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABAaABCyAEQQFqIRNBmQEhKgyhAgsgBEEBaiEEQZwBISoMoAILAkAgFSACRw0AQbIBISoMuQILIAIgFWsgACgCACIqaiEuIBUhBCAqIQECQANAIAQtAAAgAUHZz4CAAGotAABHDZ4BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGyASEqDLkCCyAAQQA2AgAgFSAqa0EEaiEBQSEhKgybAQsCQCAWIAJHDQBBswEhKgy4AgsgAiAWayAAKAIAIipqIS4gFiEEICohAQJAA0AgBC0AACABQd3PgIAAai0AAEcNnQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQbMBISoMuAILIABBADYCACAWICprQQdqIQFBGiEqDJoBCwJAIAQgAkcNAEG0ASEqDLcCCwJAAkACQCAELQAAQbt/ag4RAJ4BngGeAZ4BngGeAZ4BngGeAQGeAZ4BngGeAZ4BAp4BCyAEQQFqIQRBnQEhKgyfAgsgBEEBaiEVQZ4BISoMngILIARBAWohFkGfASEqDJ0CCwJAIBcgAkcNAEG1ASEqDLYCCyACIBdrIAAoAgAiKmohLiAXIQQgKiEBAkADQCAELQAAIAFB5M+AgABqLQAARw2bASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBtQEhKgy2AgsgAEEANgIAIBcgKmtBBmohAUEoISoMmAELAkAgGCACRw0AQbYBISoMtQILIAIgGGsgACgCACIqaiEuIBghBCAqIQECQANAIAQtAAAgAUHqz4CAAGotAABHDZoBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEG2ASEqDLUCCyAAQQA2AgAgGCAqa0EDaiEBQQchKgyXAQsCQCAEIAJHDQBBtwEhKgy0AgsCQAJAIAQtAABBu39qDg4AmgGaAZoBmgGaAZoBmgGaAZoBmgGaAZoBAZoBCyAEQQFqIRdBoQEhKgybAgsgBEEBaiEYQaIBISoMmgILAkAgGSACRw0AQbgBISoMswILIAIgGWsgACgCACIqaiEuIBkhBCAqIQECQANAIAQtAAAgAUHtz4CAAGotAABHDZgBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEG4ASEqDLMCCyAAQQA2AgAgGSAqa0EDaiEBQRIhKgyVAQsCQCAaIAJHDQBBuQEhKgyyAgsgAiAaayAAKAIAIipqIS4gGiEEICohAQJAA0AgBC0AACABQfDPgIAAai0AAEcNlwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQbkBISoMsgILIABBADYCACAaICprQQJqIQFBICEqDJQBCwJAIBsgAkcNAEG6ASEqDLECCyACIBtrIAAoAgAiKmohLiAbIQQgKiEBAkADQCAELQAAIAFB8s+AgABqLQAARw2WASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBugEhKgyxAgsgAEEANgIAIBsgKmtBAmohAUEPISoMkwELAkAgBCACRw0AQbsBISoMsAILAkACQCAELQAAQbd/ag4HAJYBlgGWAZYBlgEBlgELIARBAWohGkGlASEqDJcCCyAEQQFqIRtBpgEhKgyWAgsCQCAcIAJHDQBBvAEhKgyvAgsgAiAcayAAKAIAIipqIS4gHCEEICohAQJAA0AgBC0AACABQfTPgIAAai0AAEcNlAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQbwBISoMrwILIABBADYCACAcICprQQhqIQFBGyEqDJEBCwJAIAQgAkcNAEG9ASEqDK4CCwJAAkACQCAELQAAQb5/ag4SAJUBlQGVAZUBlQGVAZUBlQGVAQGVAZUBlQGVAZUBlQEClQELIARBAWohGUGkASEqDJYCCyAEQQFqIQRBpwEhKgyVAgsgBEEBaiEcQagBISoMlAILAkAgBCACRw0AQb4BISoMrQILIAQtAABBzgBHDZEBIARBAWohBAzWAQsCQCAEIAJHDQBBvwEhKgysAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA6ABBAUGoAGgAaABBwgJCgugAQwNDg+gAQsgBEEBaiEBQegAISoMoQILIARBAWohAUHpACEqDKACCyAEQQFqIQFB7gAhKgyfAgsgBEEBaiEBQfIAISoMngILIARBAWohAUHzACEqDJ0CCyAEQQFqIQFB9gAhKgycAgsgBEEBaiEBQfcAISoMmwILIARBAWohAUH6ACEqDJoCCyAEQQFqIQRBgwEhKgyZAgsgBEEBaiEGQYQBISoMmAILIARBAWohB0GFASEqDJcCCyAEQQFqIQRBkgEhKgyWAgsgBEEBaiEEQZgBISoMlQILIARBAWohBEGgASEqDJQCCyAEQQFqIQRBowEhKgyTAgsgBEEBaiEEQaoBISoMkgILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBISoMkgILQcABISoMqgILIAAgHSACEKqAgIAAIgENjwEgHSEBDF4LAkAgHiACRg0AIB5BAWohHQyRAQtBwgEhKgyoAgsDQAJAICotAABBdmoOBJABAACTAQALICpBAWoiKiACRw0AC0HDASEqDKcCCwJAIB8gAkYNACAAQZGAgIAANgIIIAAgHzYCBCAfIQFBASEqDI4CC0HEASEqDKYCCwJAIB8gAkcNAEHFASEqDKYCCwJAAkAgHy0AAEF2ag4EAdUB1QEA1QELIB9BAWohHgyRAQsgH0EBaiEdDI0BCwJAIB8gAkcNAEHGASEqDKUCCwJAAkAgHy0AAEF2ag4XAZMBkwEBkwGTAZMBkwGTAZMBkwGTAZMBkwGTAZMBkwGTAZMBkwGTAZMBAJMBCyAfQQFqIR8LQbABISoMiwILAkAgICACRw0AQcgBISoMpAILICAtAABBIEcNkQEgAEEAOwEyICBBAWohAUGzASEqDIoCCyABITICQANAIDIiHyACRg0BIB8tAABBUGpB/wFxIipBCk8N0wECQCAALwEyIi5BmTNLDQAgACAuQQpsIi47ATIgKkH//wNzIC5B/v8DcUkNACAfQQFqITIgACAuICpqIio7ATIgKkH//wNxQegHSQ0BCwtBACEqIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIB9BAWo2AhQMowILQccBISoMogILIAAgICACEK6AgIAAIipFDdEBICpBFUcNkAEgAEHIATYCHCAAICA2AhQgAEHJl4CAADYCECAAQRU2AgxBACEqDKECCwJAICEgAkcNAEHMASEqDKECC0EAIS5BASEyQQEhL0EAISoCQAJAAkACQAJAAkACQAJAAkAgIS0AAEFQag4KmgGZAQABAgMEBQYImwELQQIhKgwGC0EDISoMBQtBBCEqDAQLQQUhKgwDC0EGISoMAgtBByEqDAELQQghKgtBACEyQQAhL0EAIS4MkgELQQkhKkEBIS5BACEyQQAhLwyRAQsCQCAiIAJHDQBBzgEhKgygAgsgIi0AAEEuRw2SASAiQQFqISEM0QELAkAgIyACRw0AQdABISoMnwILQQAhKgJAAkACQAJAAkACQAJAAkAgIy0AAEFQag4KmwGaAQABAgMEBQYHnAELQQIhKgyaAQtBAyEqDJkBC0EEISoMmAELQQUhKgyXAQtBBiEqDJYBC0EHISoMlQELQQghKgyUAQtBCSEqDJMBCwJAICMgAkYNACAAQY6AgIAANgIIIAAgIzYCBEG3ASEqDIUCC0HRASEqDJ0CCwJAIAQgAkcNAEHSASEqDJ0CCyACIARrIAAoAgAiLmohMiAEISMgLiEqA0AgIy0AACAqQfzPgIAAai0AAEcNlAEgKkEERg3xASAqQQFqISogI0EBaiIjIAJHDQALIAAgMjYCAEHSASEqDJwCCyAAICQgAhCsgICAACIBDZMBICQhAQy/AQsCQCAlIAJHDQBB1AEhKgybAgsgAiAlayAAKAIAIiRqIS4gJSEEICQhKgNAIAQtAAAgKkGB0ICAAGotAABHDZUBICpBAUYNlAEgKkEBaiEqIARBAWoiBCACRw0ACyAAIC42AgBB1AEhKgyaAgsCQCAmIAJHDQBB1gEhKgyaAgsgAiAmayAAKAIAIiNqIS4gJiEEICMhKgNAIAQtAAAgKkGD0ICAAGotAABHDZQBICpBAkYNlgEgKkEBaiEqIARBAWoiBCACRw0ACyAAIC42AgBB1gEhKgyZAgsCQCAEIAJHDQBB1wEhKgyZAgsCQAJAIAQtAABBu39qDhAAlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAQGVAQsgBEEBaiElQbsBISoMgAILIARBAWohJkG8ASEqDP8BCwJAIAQgAkcNAEHYASEqDJgCCyAELQAAQcgARw2SASAEQQFqIQQMzAELAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQb4BISoM/gELQdkBISoMlgILAkAgBCACRw0AQdoBISoMlgILIAQtAABByABGDcsBIABBAToAKAzAAQsgAEECOgAvIAAgBCACEKaAgIAAIioNkwFBwgEhKgz7AQsgAC0AKEF/ag4CvgHAAb8BCwNAAkAgBC0AAEF2ag4EAJQBlAEAlAELIARBAWoiBCACRw0AC0HdASEqDJICCyAAQQA6AC8gAC0ALUEEcUUNiwILIABBADoALyAAQQE6ADQgASEBDJIBCyAqQRVGDeIBIABBADYCHCAAIAE2AhQgAEGnjoCAADYCECAAQRI2AgxBACEqDI8CCwJAIAAgKiACELSAgIAAIgENACAqIQEMiAILAkAgAUEVRw0AIABBAzYCHCAAICo2AhQgAEGwmICAADYCECAAQRU2AgxBACEqDI8CCyAAQQA2AhwgACAqNgIUIABBp46AgAA2AhAgAEESNgIMQQAhKgyOAgsgKkEVRg3eASAAQQA2AhwgACABNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhKgyNAgsgACgCBCEyIABBADYCBCAqICunaiIvIQEgACAyICogLyAuGyIqELWAgIAAIi5FDZMBIABBBzYCHCAAICo2AhQgACAuNgIMQQAhKgyMAgsgACAALwEwQYABcjsBMCABIQELQSohKgzxAQsgKkEVRg3ZASAAQQA2AhwgACABNgIUIABBg4yAgAA2AhAgAEETNgIMQQAhKgyJAgsgKkEVRg3XASAAQQA2AhwgACABNgIUIABBmo+AgAA2AhAgAEEiNgIMQQAhKgyIAgsgACgCBCEqIABBADYCBAJAIAAgKiABELeAgIAAIioNACABQQFqIQEMkwELIABBDDYCHCAAICo2AgwgACABQQFqNgIUQQAhKgyHAgsgKkEVRg3UASAAQQA2AhwgACABNgIUIABBmo+AgAA2AhAgAEEiNgIMQQAhKgyGAgsgACgCBCEqIABBADYCBAJAIAAgKiABELeAgIAAIioNACABQQFqIQEMkgELIABBDTYCHCAAICo2AgwgACABQQFqNgIUQQAhKgyFAgsgKkEVRg3RASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhKgyEAgsgACgCBCEqIABBADYCBAJAIAAgKiABELmAgIAAIioNACABQQFqIQEMkQELIABBDjYCHCAAICo2AgwgACABQQFqNgIUQQAhKgyDAgsgAEEANgIcIAAgATYCFCAAQcCVgIAANgIQIABBAjYCDEEAISoMggILICpBFUYNzQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAISoMgQILIABBEDYCHCAAIAE2AhQgACAqNgIMQQAhKgyAAgsgACgCBCEEIABBADYCBAJAIAAgBCABELmAgIAAIgQNACABQQFqIQEM+AELIABBETYCHCAAIAQ2AgwgACABQQFqNgIUQQAhKgz/AQsgKkEVRg3JASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhKgz+AQsgACgCBCEqIABBADYCBAJAIAAgKiABELmAgIAAIioNACABQQFqIQEMjgELIABBEzYCHCAAICo2AgwgACABQQFqNgIUQQAhKgz9AQsgACgCBCEEIABBADYCBAJAIAAgBCABELmAgIAAIgQNACABQQFqIQEM9AELIABBFDYCHCAAIAQ2AgwgACABQQFqNgIUQQAhKgz8AQsgKkEVRg3FASAAQQA2AhwgACABNgIUIABBmo+AgAA2AhAgAEEiNgIMQQAhKgz7AQsgACgCBCEqIABBADYCBAJAIAAgKiABELeAgIAAIioNACABQQFqIQEMjAELIABBFjYCHCAAICo2AgwgACABQQFqNgIUQQAhKgz6AQsgACgCBCEEIABBADYCBAJAIAAgBCABELeAgIAAIgQNACABQQFqIQEM8AELIABBFzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhKgz5AQsgAEEANgIcIAAgATYCFCAAQc2TgIAANgIQIABBDDYCDEEAISoM+AELQgEhKwsgKkEBaiEBAkAgACkDICIsQv//////////D1YNACAAICxCBIYgK4Q3AyAgASEBDIoBCyAAQQA2AhwgACABNgIUIABBrYmAgAA2AhAgAEEMNgIMQQAhKgz2AQsgAEEANgIcIAAgKjYCFCAAQc2TgIAANgIQIABBDDYCDEEAISoM9QELIAAoAgQhMiAAQQA2AgQgKiArp2oiLyEBIAAgMiAqIC8gLhsiKhC1gICAACIuRQ15IABBBTYCHCAAICo2AhQgACAuNgIMQQAhKgz0AQsgAEEANgIcIAAgKjYCFCAAQaqcgIAANgIQIABBDzYCDEEAISoM8wELIAAgKiACELSAgIAAIgENASAqIQELQQ4hKgzYAQsCQCABQRVHDQAgAEECNgIcIAAgKjYCFCAAQbCYgIAANgIQIABBFTYCDEEAISoM8QELIABBADYCHCAAICo2AhQgAEGnjoCAADYCECAAQRI2AgxBACEqDPABCyABQQFqISoCQCAALwEwIgFBgAFxRQ0AAkAgACAqIAIQu4CAgAAiAQ0AICohAQx2CyABQRVHDcIBIABBBTYCHCAAICo2AhQgAEH5l4CAADYCECAAQRU2AgxBACEqDPABCwJAIAFBoARxQaAERw0AIAAtAC1BAnENACAAQQA2AhwgACAqNgIUIABBlpOAgAA2AhAgAEEENgIMQQAhKgzwAQsgACAqIAIQvYCAgAAaICohAQJAAkACQAJAAkAgACAqIAIQs4CAgAAOFgIBAAQEBAQEBAQEBAQEBAQEBAQEBAMECyAAQQE6AC4LIAAgAC8BMEHAAHI7ATAgKiEBC0EmISoM2AELIABBIzYCHCAAICo2AhQgAEGlloCAADYCECAAQRU2AgxBACEqDPABCyAAQQA2AhwgACAqNgIUIABB1YuAgAA2AhAgAEERNgIMQQAhKgzvAQsgAC0ALUEBcUUNAUHDASEqDNUBCwJAICcgAkYNAANAAkAgJy0AAEEgRg0AICchAQzRAQsgJ0EBaiInIAJHDQALQSUhKgzuAQtBJSEqDO0BCyAAKAIEIQEgAEEANgIEIAAgASAnEK+AgIAAIgFFDbUBIABBJjYCHCAAIAE2AgwgACAnQQFqNgIUQQAhKgzsAQsgKkEVRg2zASAAQQA2AhwgACABNgIUIABB/Y2AgAA2AhAgAEEdNgIMQQAhKgzrAQsgAEEnNgIcIAAgATYCFCAAICo2AgxBACEqDOoBCyAqIQFBASEuAkACQAJAAkACQAJAAkAgAC0ALEF+ag4HBgUFAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIS4MAQtBBCEuCyAAQQE6ACwgACAALwEwIC5yOwEwCyAqIQELQSshKgzRAQsgAEEANgIcIAAgKjYCFCAAQauSgIAANgIQIABBCzYCDEEAISoM6QELIABBADYCHCAAIAE2AhQgAEHhj4CAADYCECAAQQo2AgxBACEqDOgBCyAAQQA6ACwgKiEBDMIBCyAqIQFBASEuAkACQAJAAkACQCAALQAsQXtqDgQDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhLgwBC0EEIS4LIABBAToALCAAIAAvATAgLnI7ATALICohAQtBKSEqDMwBCyAAQQA2AhwgACABNgIUIABB8JSAgAA2AhAgAEEDNgIMQQAhKgzkAQsCQCAoLQAAQQ1HDQAgACgCBCEBIABBADYCBAJAIAAgASAoELGAgIAAIgENACAoQQFqIQEMewsgAEEsNgIcIAAgATYCDCAAIChBAWo2AhRBACEqDOQBCyAALQAtQQFxRQ0BQcQBISoMygELAkAgKCACRw0AQS0hKgzjAQsCQAJAA0ACQCAoLQAAQXZqDgQCAAADAAsgKEEBaiIoIAJHDQALQS0hKgzkAQsgACgCBCEBIABBADYCBAJAIAAgASAoELGAgIAAIgENACAoIQEMegsgAEEsNgIcIAAgKDYCFCAAIAE2AgxBACEqDOMBCyAAKAIEIQEgAEEANgIEAkAgACABICgQsYCAgAAiAQ0AIChBAWohAQx5CyAAQSw2AhwgACABNgIMIAAgKEEBajYCFEEAISoM4gELIAAoAgQhASAAQQA2AgQgACABICgQsYCAgAAiAQ2oASAoIQEM1QELICpBLEcNASABQQFqISpBASEBAkACQAJAAkACQCAALQAsQXtqDgQDAQIEAAsgKiEBDAQLQQIhAQwBC0EEIQELIABBAToALCAAIAAvATAgAXI7ATAgKiEBDAELIAAgAC8BMEEIcjsBMCAqIQELQTkhKgzGAQsgAEEAOgAsIAEhAQtBNCEqDMQBCyAAQQA2AgAgLyAwa0EJaiEBQQUhKgy/AQsgAEEANgIAIC8gMGtBBmohAUEHISoMvgELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMzAELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhKgzZAQsgAEEIOgAsIAEhAQtBMCEqDL4BCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNmQEgASEBDAMLIAAtADBBIHENmgFBxQEhKgy8AQsCQCApIAJGDQACQANAAkAgKS0AAEFQaiIBQf8BcUEKSQ0AICkhAUE1ISoMvwELIAApAyAiK0KZs+bMmbPmzBlWDQEgACArQgp+Iis3AyAgKyABrSIsQn+FQoB+hFYNASAAICsgLEL/AYN8NwMgIClBAWoiKSACRw0AC0E5ISoM1gELIAAoAgQhBCAAQQA2AgQgACAEIClBAWoiARCxgICAACIEDZsBIAEhAQzIAQtBOSEqDNQBCwJAIAAvATAiAUEIcUUNACAALQAoQQFHDQAgAC0ALUEIcUUNlgELIAAgAUH3+wNxQYAEcjsBMCApIQELQTchKgy5AQsgACAALwEwQRByOwEwDK4BCyAqQRVGDZEBIABBADYCHCAAIAE2AhQgAEHwjoCAADYCECAAQRw2AgxBACEqDNABCyAAQcMANgIcIAAgATYCDCAAICdBAWo2AhRBACEqDM8BCwJAIAEtAABBOkcNACAAKAIEISogAEEANgIEAkAgACAqIAEQr4CAgAAiKg0AIAFBAWohAQxnCyAAQcMANgIcIAAgKjYCDCAAIAFBAWo2AhRBACEqDM8BCyAAQQA2AhwgACABNgIUIABBsZGAgAA2AhAgAEEKNgIMQQAhKgzOAQsgAEEANgIcIAAgATYCFCAAQaCZgIAANgIQIABBHjYCDEEAISoMzQELIAFBAWohAQsgAEGAEjsBKiAAIAEgAhCogICAACIqDQEgASEBC0HHACEqDLEBCyAqQRVHDYkBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhKgzJAQsgACgCBCEqIABBADYCBAJAIAAgKiABEKeAgIAAIioNACABIQEMYgsgAEHSADYCHCAAIAE2AhQgACAqNgIMQQAhKgzIAQsgAEEANgIcIAAgLjYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEqDMcBCyAAKAIEISogAEEANgIEAkAgACAqIAEQp4CAgAAiKg0AIAEhAQxhCyAAQdMANgIcIAAgATYCFCAAICo2AgxBACEqDMYBC0EAISogAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzFAQsgKkEVRg2DASAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhKgzEAQtBASEvQQAhMkEAIS5BASEqCyAAICo6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgL0UNAwwCCyAuDQEMAgsgMkUNAQsgACgCBCEqIABBADYCBAJAIAAgKiABEK2AgIAAIioNACABIQEMYAsgAEHYADYCHCAAIAE2AhQgACAqNgIMQQAhKgzDAQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMsgELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAISoMwgELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDLABCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEqDMEBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQyuAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhKgzAAQtBASEqCyAAICo6ACogAUEBaiEBDFwLIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKoBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEqDL0BCyAAQQA2AgAgMiAva0EEaiEBAkAgAC0AKUEjTw0AIAEhAQxcCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhKgy8AQsgAEEANgIAC0EAISogAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy6AQsgAEEANgIAIDIgL2tBA2ohAQJAIAAtAClBIUcNACABIQEMWQsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAISoMuQELIABBADYCACAyIC9rQQRqIQECQCAALQApIipBXWpBC08NACABIQEMWAsCQCAqQQZLDQBBASAqdEHKAHFFDQAgASEBDFgLQQAhKiAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLgBCyAqQRVGDXUgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAISoMtwELIAAoAgQhKiAAQQA2AgQCQCAAICogARCngICAACIqDQAgASEBDFcLIABB5QA2AhwgACABNgIUIAAgKjYCDEEAISoMtgELIAAoAgQhKiAAQQA2AgQCQCAAICogARCngICAACIqDQAgASEBDE8LIABB0gA2AhwgACABNgIUIAAgKjYCDEEAISoMtQELIAAoAgQhKiAAQQA2AgQCQCAAICogARCngICAACIqDQAgASEBDE8LIABB0wA2AhwgACABNgIUIAAgKjYCDEEAISoMtAELIAAoAgQhKiAAQQA2AgQCQCAAICogARCngICAACIqDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgKjYCDEEAISoMswELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEqDLIBCyAAKAIEISogAEEANgIEAkAgACAqIAEQp4CAgAAiKg0AIAEhAQxLCyAAQdIANgIcIAAgATYCFCAAICo2AgxBACEqDLEBCyAAKAIEISogAEEANgIEAkAgACAqIAEQp4CAgAAiKg0AIAEhAQxLCyAAQdMANgIcIAAgATYCFCAAICo2AgxBACEqDLABCyAAKAIEISogAEEANgIEAkAgACAqIAEQp4CAgAAiKg0AIAEhAQxQCyAAQeUANgIcIAAgATYCFCAAICo2AgxBACEqDK8BCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhKgyuAQsgKkE/Rw0BIAFBAWohAQtBBSEqDJMBC0EAISogAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyrAQsgACgCBCEqIABBADYCBAJAIAAgKiABEKeAgIAAIioNACABIQEMRAsgAEHSADYCHCAAIAE2AhQgACAqNgIMQQAhKgyqAQsgACgCBCEqIABBADYCBAJAIAAgKiABEKeAgIAAIioNACABIQEMRAsgAEHTADYCHCAAIAE2AhQgACAqNgIMQQAhKgypAQsgACgCBCEqIABBADYCBAJAIAAgKiABEKeAgIAAIioNACABIQEMSQsgAEHlADYCHCAAIAE2AhQgACAqNgIMQQAhKgyoAQsgACgCBCEBIABBADYCBAJAIAAgASAuEKeAgIAAIgENACAuIQEMQQsgAEHSADYCHCAAIC42AhQgACABNgIMQQAhKgynAQsgACgCBCEBIABBADYCBAJAIAAgASAuEKeAgIAAIgENACAuIQEMQQsgAEHTADYCHCAAIC42AhQgACABNgIMQQAhKgymAQsgACgCBCEBIABBADYCBAJAIAAgASAuEKeAgIAAIgENACAuIQEMRgsgAEHlADYCHCAAIC42AhQgACABNgIMQQAhKgylAQsgAEEANgIcIAAgLjYCFCAAQcOPgIAANgIQIABBBzYCDEEAISoMpAELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEqDKMBC0EAISogAEEANgIcIAAgLjYCFCAAQYycgIAANgIQIABBBzYCDAyiAQsgAEEANgIcIAAgLjYCFCAAQYycgIAANgIQIABBBzYCDEEAISoMoQELIABBADYCHCAAIC42AhQgAEH+kYCAADYCECAAQQc2AgxBACEqDKABCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhKgyfAQsgKkEVRg1bIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEqDJ4BCyAAQQA2AgAgKiAua0EGaiEBQSQhKgsgACAqOgApIAAoAgQhKiAAQQA2AgQgACAqIAEQq4CAgAAiKg1YIAEhAQxBCyAAQQA2AgALQQAhKiAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJoBCyABQRVGDVQgAEEANgIcIAAgHTYCFCAAQfCMgIAANgIQIABBGzYCDEEAISoMmQELIAAoAgQhHSAAQQA2AgQgACAdICoQqYCAgAAiHQ0BICpBAWohHQtBrQEhKgx+CyAAQcEBNgIcIAAgHTYCDCAAICpBAWo2AhRBACEqDJYBCyAAKAIEIR4gAEEANgIEIAAgHiAqEKmAgIAAIh4NASAqQQFqIR4LQa4BISoMewsgAEHCATYCHCAAIB42AgwgACAqQQFqNgIUQQAhKgyTAQsgAEEANgIcIAAgHzYCFCAAQZeLgIAANgIQIABBDTYCDEEAISoMkgELIABBADYCHCAAICA2AhQgAEHjkICAADYCECAAQQk2AgxBACEqDJEBCyAAQQA2AhwgACAgNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhKgyQAQtBASEvQQAhMkEAIS5BASEqCyAAICo6ACsgIUEBaiEgAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgL0UNAwwCCyAuDQEMAgsgMkUNAQsgACgCBCEqIABBADYCBCAAICogIBCtgICAACIqRQ1AIABByQE2AhwgACAgNgIUIAAgKjYCDEEAISoMjwELIAAoAgQhASAAQQA2AgQgACABICAQrYCAgAAiAUUNeSAAQcoBNgIcIAAgIDYCFCAAIAE2AgxBACEqDI4BCyAAKAIEIQEgAEEANgIEIAAgASAhEK2AgIAAIgFFDXcgAEHLATYCHCAAICE2AhQgACABNgIMQQAhKgyNAQsgACgCBCEBIABBADYCBCAAIAEgIhCtgICAACIBRQ11IABBzQE2AhwgACAiNgIUIAAgATYCDEEAISoMjAELQQEhKgsgACAqOgAqICNBAWohIgw9CyAAKAIEIQEgAEEANgIEIAAgASAjEK2AgIAAIgFFDXEgAEHPATYCHCAAICM2AhQgACABNgIMQQAhKgyJAQsgAEEANgIcIAAgIzYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEqDIgBCyABQRVGDUEgAEEANgIcIAAgJDYCFCAAQcyOgIAANgIQIABBIDYCDEEAISoMhwELIABBADYCACAAQYEEOwEoIAAoAgQhKiAAQQA2AgQgACAqICUgJGtBAmoiJBCrgICAACIqRQ06IABB0wE2AhwgACAkNgIUIAAgKjYCDEEAISoMhgELIABBADYCAAtBACEqIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMhAELIABBADYCACAAKAIEISogAEEANgIEIAAgKiAmICNrQQNqIiMQq4CAgAAiKg0BQcYBISoMagsgAEECOgAoDFcLIABB1QE2AhwgACAjNgIUIAAgKjYCDEEAISoMgQELICpBFUYNOSAAQQA2AhwgACAENgIUIABBpIyAgAA2AhAgAEEQNgIMQQAhKgyAAQsgAC0ANEEBRw02IAAgBCACELyAgIAAIipFDTYgKkEVRw03IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhKgx/C0EAISogAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgLkEBajYCFAx+C0EAISoMZAtBAiEqDGMLQQ0hKgxiC0EPISoMYQtBJSEqDGALQRMhKgxfC0EVISoMXgtBFiEqDF0LQRchKgxcC0EYISoMWwtBGSEqDFoLQRohKgxZC0EbISoMWAtBHCEqDFcLQR0hKgxWC0EfISoMVQtBISEqDFQLQSMhKgxTC0HGACEqDFILQS4hKgxRC0EvISoMUAtBOyEqDE8LQT0hKgxOC0HIACEqDE0LQckAISoMTAtBywAhKgxLC0HMACEqDEoLQc4AISoMSQtBzwAhKgxIC0HRACEqDEcLQdUAISoMRgtB2AAhKgxFC0HZACEqDEQLQdsAISoMQwtB5AAhKgxCC0HlACEqDEELQfEAISoMQAtB9AAhKgw/C0GNASEqDD4LQZcBISoMPQtBqQEhKgw8C0GsASEqDDsLQcABISoMOgtBuQEhKgw5C0GvASEqDDgLQbEBISoMNwtBsgEhKgw2C0G0ASEqDDULQbUBISoMNAtBtgEhKgwzC0G6ASEqDDILQb0BISoMMQtBvwEhKgwwC0HBASEqDC8LIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEqDEcLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhKgxGCyAAQfgANgIcIAAgJDYCFCAAQcqYgIAANgIQIABBFTYCDEEAISoMRQsgAEHRADYCHCAAIB02AhQgAEGwl4CAADYCECAAQRU2AgxBACEqDEQLIABB+QA2AhwgACABNgIUIAAgKjYCDEEAISoMQwsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEqDEILIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhKgxBCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAISoMQAsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAISoMPwsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEqDD4LIABBADYCBCAAICkgKRCxgICAACIBRQ0BIABBOjYCHCAAIAE2AgwgACApQQFqNgIUQQAhKgw9CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAISoMPQsgAUEBaiEBDCwLIClBAWohAQwsCyAAQQA2AhwgACApNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhKgw6CyAAQTY2AhwgACABNgIUIAAgBDYCDEEAISoMOQsgAEEuNgIcIAAgKDYCFCAAIAE2AgxBACEqDDgLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhKgw3CyAnQQFqIQEMKwsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAISoMNQsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAISoMNAsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAISoMMwsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAISoMMgsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAISoMMQsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAISoMMAsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAISoMLwsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAISoMLgsgAEEANgIcIAAgKjYCFCAAQdqNgIAANgIQIABBFDYCDEEAISoMLQsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAISoMLAsgAEEANgIAIAQgLmtBBWohIwtBuAEhKgwRCyAAQQA2AgAgKiAua0ECaiEBQfUAISoMEAsgASEBAkAgAC0AKUEFRw0AQeMAISoMEAtB4gAhKgwPC0EAISogAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgLkEBajYCFAwnCyAAQQA2AgAgMiAva0ECaiEBQcAAISoMDQsgASEBC0E4ISoMCwsCQCABIikgAkYNAANAAkAgKS0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyApQQFqIQEMBAsgKUEBaiIpIAJHDQALQT4hKgwkC0E+ISoMIwsgAEEAOgAsICkhAQwBC0ELISoMCAtBOiEqDAcLIAFBAWohAUEtISoMBgtBKCEqDAULIABBADYCACAvIDBrQQRqIQFBBiEqCyAAICo6ACwgASEBQQwhKgwDCyAAQQA2AgAgMiAva0EHaiEBQQohKgwCCyAAQQA2AgALIABBADoALCAnIQFBCSEqDAALC0EAISogAEEANgIcIAAgIzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAISogAEEANgIcIAAgIjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAISogAEEANgIcIAAgITYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAISogAEEANgIcIAAgIDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAISogAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAISogAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAISogAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAISogAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAISogAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAISogAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAISogAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAISogAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAISogAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAISogAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAISogAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAISogAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAISogAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhKgwGC0EBISoMBQtB1AAhKiABIgEgAkYNBCADQQhqIAAgASACQdjCgIAAQQoQxYCAgAAgAygCDCEBIAMoAggOAwEEAgALEMuAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgAUEBajYCFEEAISoMAgsgAEEANgIcIAAgATYCFCAAQcqagIAANgIQIABBCTYCDEEAISoMAQsCQCABIgEgAkcNAEEiISoMAQsgAEGJgICAADYCCCAAIAE2AgRBISEqCyADQRBqJICAgIAAICoLrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAuVNwELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMqAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAiADa0FIaiIDQQFyNgIAQQBBACgC8NOAgAA2AqTQgIAAQQAgBDYCoNCAgABBACADNgKU0ICAACACQYDUhIAAakFMakE4NgIACwJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQewBSw0AAkBBACgCiNCAgAAiBkEQIABBE2pBcHEgAEELSRsiAkEDdiIEdiIDQQNxRQ0AIANBAXEgBHJBAXMiBUEDdCIAQbjQgIAAaigCACIEQQhqIQMCQAJAIAQoAggiAiAAQbDQgIAAaiIARw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgACACNgIIIAIgADYCDAsgBCAFQQN0IgVBA3I2AgQgBCAFakEEaiIEIAQoAgBBAXI2AgAMDAsgAkEAKAKQ0ICAACIHTQ0BAkAgA0UNAAJAAkAgAyAEdEECIAR0IgNBACADa3JxIgNBACADa3FBf2oiAyADQQx2QRBxIgN2IgRBBXZBCHEiBSADciAEIAV2IgNBAnZBBHEiBHIgAyAEdiIDQQF2QQJxIgRyIAMgBHYiA0EBdkEBcSIEciADIAR2aiIFQQN0IgBBuNCAgABqKAIAIgQoAggiAyAAQbDQgIAAaiIARw0AQQAgBkF+IAV3cSIGNgKI0ICAAAwBCyAAIAM2AgggAyAANgIMCyAEQQhqIQMgBCACQQNyNgIEIAQgBUEDdCIFaiAFIAJrIgU2AgAgBCACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBA3YiCEEDdEGw0ICAAGohAkEAKAKc0ICAACEEAkACQCAGQQEgCHQiCHENAEEAIAYgCHI2AojQgIAAIAIhCAwBCyACKAIIIQgLIAggBDYCDCACIAQ2AgggBCACNgIMIAQgCDYCCAtBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQBBACgCmNCAgAAgACgCCCIDSxogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNAEEAKAKY0ICAACAIKAIIIgNLGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAMgBGpBBGoiAyADKAIAQQFyNgIAQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMqAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMqAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDKgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQyoCAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQyoCAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQyoCAgAAhAEEAEMqAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBiADa0FIaiIDQQFyNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgBDYCoNCAgABBACADNgKU0ICAACAGIABqQUxqQTg2AgAMAgsgAy0ADEEIcQ0AIAUgBEsNACAAIARNDQAgBEF4IARrQQ9xQQAgBEEIakEPcRsiBWoiAEEAKAKU0ICAACAGaiILIAVrIgVBAXI2AgQgAyAIIAZqNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgBTYClNCAgABBACAANgKg0ICAACALIARqQQRqQTg2AgAMAQsCQCAAQQAoApjQgIAAIgtPDQBBACAANgKY0ICAACAAIQsLIAAgBmohCEHI04CAACEDAkACQAJAAkACQAJAAkADQCADKAIAIAhGDQEgAygCCCIDDQAMAgsLIAMtAAxBCHFFDQELQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGoiBSAESw0DCyADKAIIIQMMAAsLIAMgADYCACADIAMoAgQgBmo2AgQgAEF4IABrQQ9xQQAgAEEIakEPcRtqIgYgAkEDcjYCBCAIQXggCGtBD3FBACAIQQhqQQ9xG2oiCCAGIAJqIgJrIQUCQCAEIAhHDQBBACACNgKg0ICAAEEAQQAoApTQgIAAIAVqIgM2ApTQgIAAIAIgA0EBcjYCBAwDCwJAQQAoApzQgIAAIAhHDQBBACACNgKc0ICAAEEAQQAoApDQgIAAIAVqIgM2ApDQgIAAIAIgA0EBcjYCBCACIANqIAM2AgAMAwsCQCAIKAIEIgNBA3FBAUcNACADQXhxIQcCQAJAIANB/wFLDQAgCCgCCCIEIANBA3YiC0EDdEGw0ICAAGoiAEYaAkAgCCgCDCIDIARHDQBBAEEAKAKI0ICAAEF+IAt3cTYCiNCAgAAMAgsgAyAARhogAyAENgIIIAQgAzYCDAwBCyAIKAIYIQkCQAJAIAgoAgwiACAIRg0AIAsgCCgCCCIDSxogACADNgIIIAMgADYCDAwBCwJAIAhBFGoiAygCACIEDQAgCEEQaiIDKAIAIgQNAEEAIQAMAQsDQCADIQsgBCIAQRRqIgMoAgAiBA0AIABBEGohAyAAKAIQIgQNAAsgC0EANgIACyAJRQ0AAkACQCAIKAIcIgRBAnRBuNKAgABqIgMoAgAgCEcNACADIAA2AgAgAA0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAILIAlBEEEUIAkoAhAgCEYbaiAANgIAIABFDQELIAAgCTYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIKAIUIgNFDQAgAEEUaiADNgIAIAMgADYCGAsgByAFaiEFIAggB2ohCAsgCCAIKAIEQX5xNgIEIAIgBWogBTYCACACIAVBAXI2AgQCQCAFQf8BSw0AIAVBA3YiBEEDdEGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIAR0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAI2AgwgAyACNgIIIAIgAzYCDCACIAQ2AggMAwtBHyEDAkAgBUH///8HSw0AIAVBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiACAAQYCAD2pBEHZBAnEiAHRBD3YgAyAEciAAcmsiA0EBdCAFIANBFWp2QQFxckEcaiEDCyACIAM2AhwgAkIANwIQIANBAnRBuNKAgABqIQQCQEEAKAKM0ICAACIAQQEgA3QiCHENACAEIAI2AgBBACAAIAhyNgKM0ICAACACIAQ2AhggAiACNgIIIAIgAjYCDAwDCyAFQQBBGSADQQF2ayADQR9GG3QhAyAEKAIAIQADQCAAIgQoAgRBeHEgBUYNAiADQR12IQAgA0EBdCEDIAQgAEEEcWpBEGoiCCgCACIADQALIAggAjYCACACIAQ2AhggAiACNgIMIAIgAjYCCAwCCyAAQXggAGtBD3FBACAAQQhqQQ9xGyIDaiILIAYgA2tBSGoiA0EBcjYCBCAIQUxqQTg2AgAgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACALNgKg0ICAAEEAIAM2ApTQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACAFIANBBGoiA0sNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiBjYCACAEIAZBAXI2AgQCQCAGQf8BSw0AIAZBA3YiBUEDdEGw0ICAAGohAwJAAkBBACgCiNCAgAAiAEEBIAV0IgVxDQBBACAAIAVyNgKI0ICAACADIQUMAQsgAygCCCEFCyAFIAQ2AgwgAyAENgIIIAQgAzYCDCAEIAU2AggMBAtBHyEDAkAgBkH///8HSw0AIAZBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgAyAFciAAcmsiA0EBdCAGIANBFWp2QQFxckEcaiEDCyAEQgA3AhAgBEEcaiADNgIAIANBAnRBuNKAgABqIQUCQEEAKAKM0ICAACIAQQEgA3QiCHENACAFIAQ2AgBBACAAIAhyNgKM0ICAACAEQRhqIAU2AgAgBCAENgIIIAQgBDYCDAwECyAGQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQADQCAAIgUoAgRBeHEgBkYNAyADQR12IQAgA0EBdCEDIAUgAEEEcWpBEGoiCCgCACIADQALIAggBDYCACAEQRhqIAU2AgAgBCAENgIMIAQgBDYCCAwDCyAEKAIIIgMgAjYCDCAEIAI2AgggAkEANgIYIAIgBDYCDCACIAM2AggLIAZBCGohAwwFCyAFKAIIIgMgBDYCDCAFIAQ2AgggBEEYakEANgIAIAQgBTYCDCAEIAM2AggLQQAoApTQgIAAIgMgAk0NAEEAKAKg0ICAACIEIAJqIgUgAyACayIDQQFyNgIEQQAgAzYClNCAgABBACAFNgKg0ICAACAEIAJBA3I2AgQgBEEIaiEDDAMLQQAhA0EAQTA2AvjTgIAADAILAkAgC0UNAAJAAkAgCCAIKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAANgIAIAANAUEAIAdBfiAFd3EiBzYCjNCAgAAMAgsgC0EQQRQgCygCECAIRhtqIAA2AgAgAEUNAQsgACALNgIYAkAgCCgCECIDRQ0AIAAgAzYCECADIAA2AhgLIAhBFGooAgAiA0UNACAAQRRqIAM2AgAgAyAANgIYCwJAAkAgBEEPSw0AIAggBCACaiIDQQNyNgIEIAMgCGpBBGoiAyADKAIAQQFyNgIADAELIAggAmoiACAEQQFyNgIEIAggAkEDcjYCBCAAIARqIAQ2AgACQCAEQf8BSw0AIARBA3YiBEEDdEGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIAR0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCADIABqQQRqIgMgAygCAEEBcjYCAAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQQN2IghBA3RBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAIdCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAvwDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQEEAKAKc0ICAACABRg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgBCABKAIIIgJLGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEoAhwiBEECdEG40oCAAGoiAigCACABRw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyADIAFNDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQEEAKAKg0ICAACADRw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAQQAoApzQgIAAIANHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AQQAoApjQgIAAIAMoAggiAksaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAygCHCIEQQJ0QbjSgIAAaiICKAIAIANHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQQN2IgJBA3RBsNCAgABqIQACQAJAQQAoAojQgIAAIgRBASACdCICcQ0AQQAgBCACcjYCiNCAgAAgACECDAELIAAoAgghAgsgAiABNgIMIAAgATYCCCABIAA2AgwgASACNgIIDwtBHyECAkAgAEH///8HSw0AIABBCHYiAiACQYD+P2pBEHZBCHEiAnQiBCAEQYDgH2pBEHZBBHEiBHQiBiAGQYCAD2pBEHZBAnEiBnRBD3YgAiAEciAGcmsiAkEBdCAAIAJBFWp2QQFxckEcaiECCyABQgA3AhAgAUEcaiACNgIAIAJBAnRBuNKAgABqIQQCQAJAQQAoAozQgIAAIgZBASACdCIDcQ0AIAQgATYCAEEAIAYgA3I2AozQgIAAIAFBGGogBDYCACABIAE2AgggASABNgIMDAELIABBAEEZIAJBAXZrIAJBH0YbdCECIAQoAgAhBgJAA0AgBiIEKAIEQXhxIABGDQEgAkEddiEGIAJBAXQhAiAEIAZBBHFqQRBqIgMoAgAiBg0ACyADIAE2AgAgAUEYaiAENgIAIAEgATYCDCABIAE2AggMAQsgBCgCCCIAIAE2AgwgBCABNgIIIAFBGGpBADYCACABIAQ2AgwgASAANgIIC0EAQQAoAqjQgIAAQX9qIgFBfyABGzYCqNCAgAALC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMuAgIAAAAsEAAAAC/sCAgN/AX4CQCACRQ0AIAAgAToAACACIABqIgNBf2ogAToAACACQQNJDQAgACABOgACIAAgAToAASADQX1qIAE6AAAgA0F+aiABOgAAIAJBB0kNACAAIAE6AAMgA0F8aiABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQXxqIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkF4aiABNgIAIAJBdGogATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBcGogATYCACACQWxqIAE2AgAgAkFoaiABNgIAIAJBZGogATYCACAEIANBBHFBGHIiBWsiAkEgSQ0AIAGtQoGAgIAQfiEGIAMgBWohAQNAIAEgBjcDACABQRhqIAY3AwAgAUEQaiAGNwMAIAFBCGogBjcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACwuOSAEAQYAIC4ZIAQAAAAIAAAADAAAAAAAAAAAAAAAEAAAABQAAAAAAAAAAAAAABgAAAAcAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgACAgICAgAAAgIAAgIAAgICAgICAgICAgADAAQAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxvc2VlZXAtYWxpdmUAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWN0aW9uZW50LWxlbmd0aG9ucm94eS1jb25uZWN0aW9uAAAAAAAAAAAAAAAAAAAAcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAAAAAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAEAAAIAAAAAAAAAAAAAAAAAAAAAAAADBAAABAQEBAQEBAQEBAQFBAQEBAQEBAQEBAQEAAQABgcEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAACAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv';\n\x09return llhttpWasm;\n}\n\nvar llhttp_simdWasm;\nvar hasRequiredLlhttp_simdWasm;\n\nfunction requireLlhttp_simdWasm () {\n\x09if (hasRequiredLlhttp_simdWasm) return llhttp_simdWasm;\n\x09hasRequiredLlhttp_simdWasm = 1;\n\x09llhttp_simdWasm = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMBBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCsnkAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQy4CAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDLgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMuAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMuAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL8gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARBCHENAAJAIARBgARxRQ0AAkAgAC0AKEEBRw0AIAAtAC1BCnENAEEFDwtBBA8LAkAgBEEgcQ0AAkAgAC0AKEEBRg0AIAAvATIiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQYgEcUGABEYNAiAEQShxRQ0CC0EADwtBAEEDIAApAyBQGyEFCyAFC10BAn9BACEBAkAgAC0AKEEBRg0AIAAvATIiAkGcf2pB5ABJDQAgAkHMAUYNACACQbACRg0AIAAvATAiAEHAAHENAEEBIQEgAEGIBHFBgARGDQAgAEEocUUhAQsgAQuiAQEDfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEDIAAvATAiBEECcUUNAQwCC0EAIQMgAC8BMCIEQQFxRQ0BC0EBIQMgAC0AKEEBRg0AIAAvATIiBUGcf2pB5ABJDQAgBUHMAUYNACAFQbACRg0AIARBwABxDQBBACEDIARBiARxQYAERg0AIARBKHFBAEchAwsgAEEAOwEwIABBADoALyADC5QBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQEgAC8BMCICQQJxRQ0BDAILQQAhASAALwEwIgJBAXFFDQELQQEhASAALQAoQQFGDQAgAC8BMiIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC9z3AQMofwN+BX8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDyABIRAgASERIAEhEiABIRMgASEUIAEhFSABIRYgASEXIAEhGCABIRkgASEaIAEhGyABIRwgASEdIAEhHiABIR8gASEgIAEhISABISIgASEjIAEhJCABISUgASEmIAEhJyABISggASEpAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAhwiKkF/ag7dAdoBAdkBAgMEBQYHCAkKCwwNDtgBDxDXARES1gETFBUWFxgZGhvgAd8BHB0e1QEfICEiIyQl1AEmJygpKiss0wHSAS0u0QHQAS8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRtsBR0hJSs8BzgFLzQFMzAFNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBywHKAbgByQG5AcgBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgEA3AELQQAhKgzGAQtBDiEqDMUBC0ENISoMxAELQQ8hKgzDAQtBECEqDMIBC0ETISoMwQELQRQhKgzAAQtBFSEqDL8BC0EWISoMvgELQRchKgy9AQtBGCEqDLwBC0EZISoMuwELQRohKgy6AQtBGyEqDLkBC0EcISoMuAELQQghKgy3AQtBHSEqDLYBC0EgISoMtQELQR8hKgy0AQtBByEqDLMBC0EhISoMsgELQSIhKgyxAQtBHiEqDLABC0EjISoMrwELQRIhKgyuAQtBESEqDK0BC0EkISoMrAELQSUhKgyrAQtBJiEqDKoBC0EnISoMqQELQcMBISoMqAELQSkhKgynAQtBKyEqDKYBC0EsISoMpQELQS0hKgykAQtBLiEqDKMBC0EvISoMogELQcQBISoMoQELQTAhKgygAQtBNCEqDJ8BC0EMISoMngELQTEhKgydAQtBMiEqDJwBC0EzISoMmwELQTkhKgyaAQtBNSEqDJkBC0HFASEqDJgBC0ELISoMlwELQTohKgyWAQtBNiEqDJUBC0EKISoMlAELQTchKgyTAQtBOCEqDJIBC0E8ISoMkQELQTshKgyQAQtBPSEqDI8BC0EJISoMjgELQSghKgyNAQtBPiEqDIwBC0E/ISoMiwELQcAAISoMigELQcEAISoMiQELQcIAISoMiAELQcMAISoMhwELQcQAISoMhgELQcUAISoMhQELQcYAISoMhAELQSohKgyDAQtBxwAhKgyCAQtByAAhKgyBAQtByQAhKgyAAQtBygAhKgx/C0HLACEqDH4LQc0AISoMfQtBzAAhKgx8C0HOACEqDHsLQc8AISoMegtB0AAhKgx5C0HRACEqDHgLQdIAISoMdwtB0wAhKgx2C0HUACEqDHULQdYAISoMdAtB1QAhKgxzC0EGISoMcgtB1wAhKgxxC0EFISoMcAtB2AAhKgxvC0EEISoMbgtB2QAhKgxtC0HaACEqDGwLQdsAISoMawtB3AAhKgxqC0EDISoMaQtB3QAhKgxoC0HeACEqDGcLQd8AISoMZgtB4QAhKgxlC0HgACEqDGQLQeIAISoMYwtB4wAhKgxiC0ECISoMYQtB5AAhKgxgC0HlACEqDF8LQeYAISoMXgtB5wAhKgxdC0HoACEqDFwLQekAISoMWwtB6gAhKgxaC0HrACEqDFkLQewAISoMWAtB7QAhKgxXC0HuACEqDFYLQe8AISoMVQtB8AAhKgxUC0HxACEqDFMLQfIAISoMUgtB8wAhKgxRC0H0ACEqDFALQfUAISoMTwtB9gAhKgxOC0H3ACEqDE0LQfgAISoMTAtB+QAhKgxLC0H6ACEqDEoLQfsAISoMSQtB/AAhKgxIC0H9ACEqDEcLQf4AISoMRgtB/wAhKgxFC0GAASEqDEQLQYEBISoMQwtBggEhKgxCC0GDASEqDEELQYQBISoMQAtBhQEhKgw/C0GGASEqDD4LQYcBISoMPQtBiAEhKgw8C0GJASEqDDsLQYoBISoMOgtBiwEhKgw5C0GMASEqDDgLQY0BISoMNwtBjgEhKgw2C0GPASEqDDULQZABISoMNAtBkQEhKgwzC0GSASEqDDILQZMBISoMMQtBlAEhKgwwC0GVASEqDC8LQZYBISoMLgtBlwEhKgwtC0GYASEqDCwLQZkBISoMKwtBmgEhKgwqC0GbASEqDCkLQZwBISoMKAtBnQEhKgwnC0GeASEqDCYLQZ8BISoMJQtBoAEhKgwkC0GhASEqDCMLQaIBISoMIgtBowEhKgwhC0GkASEqDCALQaUBISoMHwtBpgEhKgweC0GnASEqDB0LQagBISoMHAtBqQEhKgwbC0GqASEqDBoLQasBISoMGQtBrAEhKgwYC0GtASEqDBcLQa4BISoMFgtBASEqDBULQa8BISoMFAtBsAEhKgwTC0GxASEqDBILQbMBISoMEQtBsgEhKgwQC0G0ASEqDA8LQbUBISoMDgtBtgEhKgwNC0G3ASEqDAwLQbgBISoMCwtBuQEhKgwKC0G6ASEqDAkLQbsBISoMCAtBxgEhKgwHC0G8ASEqDAYLQb0BISoMBQtBvgEhKgwEC0G/ASEqDAMLQcABISoMAgtBwgEhKgwBC0HBASEqCwNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAqDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT4wNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKyAoQDhAMLIAEiBCACRw3zAUHdASEqDIYECyABIiogAkcN3QFBwwEhKgyFBAsgASIBIAJHDZABQfcAISoMhAQLIAEiASACRw2GAUHvACEqDIMECyABIgEgAkcNf0HqACEqDIIECyABIgEgAkcNe0HoACEqDIEECyABIgEgAkcNeEHmACEqDIAECyABIgEgAkcNGkEYISoM/wMLIAEiASACRw0UQRIhKgz+AwsgASIBIAJHDVlBxQAhKgz9AwsgASIBIAJHDUpBPyEqDPwDCyABIgEgAkcNSEE8ISoM+wMLIAEiASACRw1BQTEhKgz6AwsgAC0ALkEBRg3yAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiKg3nASABIQEM+wILAkAgASIBIAJHDQBBBiEqDPcDCyAAIAFBAWoiASACELuAgIAAIioN6AEgASEBDDELIABCADcDIEESISoM3AMLIAEiKiACRw0rQR0hKgz0AwsCQCABIgEgAkYNACABQQFqIQFBECEqDNsDC0EHISoM8wMLIABCACAAKQMgIisgAiABIiprrSIsfSItIC0gK1YbNwMgICsgLFYiLkUN5QFBCCEqDPIDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUISoM2QMLQQkhKgzxAwsgASEBIAApAyBQDeQBIAEhAQz4AgsCQCABIgEgAkcNAEELISoM8AMLIAAgAUEBaiIBIAIQtoCAgAAiKg3lASABIQEM+AILIAAgASIBIAIQuICAgAAiKg3lASABIQEM+AILIAAgASIBIAIQuICAgAAiKg3mASABIQEMDQsgACABIgEgAhC6gICAACIqDecBIAEhAQz2AgsCQCABIgEgAkcNAEEPISoM7AMLIAEtAAAiKkE7Rg0IICpBDUcN6AEgAUEBaiEBDPUCCyAAIAEiASACELqAgIAAIioN6AEgASEBDPgCCwNAAkAgAS0AAEHwtYCAAGotAAAiKkEBRg0AICpBAkcN6wEgACgCBCEqIABBADYCBCAAICogAUEBaiIBELmAgIAAIioN6gEgASEBDPoCCyABQQFqIgEgAkcNAAtBEiEqDOkDCyAAIAEiASACELqAgIAAIioN6QEgASEBDAoLIAEiASACRw0GQRshKgznAwsCQCABIgEgAkcNAEEWISoM5wMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIioN6gEgASEBQSAhKgzNAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiKkECRg0AAkAgKkF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEqDM8DCyABQQFqIgEgAkcNAAtBFSEqDOYDC0EVISoM5QMLA0ACQCABLQAAQfC5gIAAai0AACIqQQJGDQAgKkF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghKgzkAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEqDMsDC0EZISoM4wMLIAFBAWohAQwCCwJAIAEiLiACRw0AQRohKgziAwsgLiEBAkAgLi0AAEFzag4U4wL0AvQC9AL0AvQC9AL0AvQC9AL0AvQC9AL0AvQC9AL0AvQC9AIA9AILQQAhKiAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAuQQFqNgIUDOEDCwJAIAEtAAAiKkE7Rg0AICpBDUcN6AEgAUEBaiEBDOsCCyABQQFqIQELQSIhKgzGAwsCQCABIiogAkcNAEEcISoM3wMLQgAhKyAqIQEgKi0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEqDMQDC0ICISsM5QELQgMhKwzkAQtCBCErDOMBC0IFISsM4gELQgYhKwzhAQtCByErDOABC0IIISsM3wELQgkhKwzeAQtCCiErDN0BC0ILISsM3AELQgwhKwzbAQtCDSErDNoBC0IOISsM2QELQg8hKwzYAQtCCiErDNcBC0ILISsM1gELQgwhKwzVAQtCDSErDNQBC0IOISsM0wELQg8hKwzSAQtCACErAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAqLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiErDOQBC0IDISsM4wELQgQhKwziAQtCBSErDOEBC0IGISsM4AELQgchKwzfAQtCCCErDN4BC0IJISsM3QELQgohKwzcAQtCCyErDNsBC0IMISsM2gELQg0hKwzZAQtCDiErDNgBC0IPISsM1wELQgohKwzWAQtCCyErDNUBC0IMISsM1AELQg0hKwzTAQtCDiErDNIBC0IPISsM0QELIABCACAAKQMgIisgAiABIiprrSIsfSItIC0gK1YbNwMgICsgLFYiLkUN0gFBHyEqDMcDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkISoMrgMLQSAhKgzGAwsgACABIiogAhC+gICAAEF/ag4FtgEAywIB0QHSAQtBESEqDKsDCyAAQQE6AC8gKiEBDMIDCyABIgEgAkcN0gFBJCEqDMIDCyABIicgAkcNHkHGACEqDMEDCyAAIAEiASACELKAgIAAIioN1AEgASEBDLUBCyABIiogAkcNJkHQACEqDL8DCwJAIAEiASACRw0AQSghKgy/AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiKg3TASABIQEM2AELAkAgASIqIAJHDQBBKSEqDL4DCyAqLQAAIgFBIEYNFCABQQlHDdMBICpBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqISoMvAMLAkAgASIqIAJHDQBBKyEqDLwDCwJAICotAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgKiEBDJYDCwJAIAEiASACRw0AQSwhKgy7AwsgAS0AAEEKRw3VASABQQFqIQEMzwILIAEiKCACRw3VAUEvISoMuQMLA0ACQCABLQAAIipBIEYNAAJAICpBdmoOBADcAdwBANoBCyABIQEM4gELIAFBAWoiASACRw0AC0ExISoMuAMLQTIhKiABIi8gAkYNtwMgAiAvayAAKAIAIjBqITEgLyEyIDAhAQJAA0AgMi0AACIuQSByIC4gLkG/f2pB/wFxQRpJG0H/AXEgAUHwu4CAAGotAABHDQEgAUEDRg2bAyABQQFqIQEgMkEBaiIyIAJHDQALIAAgMTYCAAy4AwsgAEEANgIAIDIhAQzZAQtBMyEqIAEiLyACRg22AyACIC9rIAAoAgAiMGohMSAvITIgMCEBAkADQCAyLQAAIi5BIHIgLiAuQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNASABQQhGDdsBIAFBAWohASAyQQFqIjIgAkcNAAsgACAxNgIADLcDCyAAQQA2AgAgMiEBDNgBC0E0ISogASIvIAJGDbUDIAIgL2sgACgCACIwaiExIC8hMiAwIQECQANAIDItAAAiLkEgciAuIC5Bv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BIAFBBUYN2wEgAUEBaiEBIDJBAWoiMiACRw0ACyAAIDE2AgAMtgMLIABBADYCACAyIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIipBAUYNACAqQQJGDQogASEBDN8BCyABQQFqIgEgAkcNAAtBMCEqDLUDC0EwISoMtAMLAkAgASIBIAJGDQADQAJAIAEtAAAiKkEgRg0AICpBdmoOBNsB3AHcAdsB3AELIAFBAWoiASACRw0AC0E4ISoMtAMLQTghKgyzAwsDQAJAIAEtAAAiKkEgRg0AICpBCUcNAwsgAUEBaiIBIAJHDQALQTwhKgyyAwsDQAJAIAEtAAAiKkEgRg0AAkACQCAqQXZqDgTcAQEB3AEACyAqQSxGDd0BCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hKgyxAwsgASEBDN0BC0HAACEqIAEiMiACRg2vAyACIDJrIAAoAgAiL2ohMCAyIS4gLyEBAkADQCAuLQAAQSByIAFBgMCAgABqLQAARw0BIAFBBkYNlQMgAUEBaiEBIC5BAWoiLiACRw0ACyAAIDA2AgAMsAMLIABBADYCACAuIQELQTYhKgyVAwsCQCABIikgAkcNAEHBACEqDK4DCyAAQYyAgIAANgIIIAAgKTYCBCApIQEgAC0ALEF/ag4EzQHXAdkB2wGMAwsgAUEBaiEBDMwBCwJAIAEiASACRg0AA0ACQCABLQAAIipBIHIgKiAqQb9/akH/AXFBGkkbQf8BcSIqQQlGDQAgKkEgRg0AAkACQAJAAkAgKkGdf2oOEwADAwMDAwMDAQMDAwMDAwMDAwIDCyABQQFqIQFBMSEqDJgDCyABQQFqIQFBMiEqDJcDCyABQQFqIQFBMyEqDJYDCyABIQEM0AELIAFBAWoiASACRw0AC0E1ISoMrAMLQTUhKgyrAwsCQCABIgEgAkYNAANAAkAgAS0AAEGAvICAAGotAABBAUYNACABIQEM1QELIAFBAWoiASACRw0AC0E9ISoMqwMLQT0hKgyqAwsgACABIgEgAhCwgICAACIqDdgBIAEhAQwBCyAqQQFqIQELQTwhKgyOAwsCQCABIgEgAkcNAEHCACEqDKcDCwJAA0ACQCABLQAAQXdqDhgAAoMDgwOJA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODAwCDAwsgAUEBaiIBIAJHDQALQcIAISoMpwMLIAFBAWohASAALQAtQQFxRQ29ASABIQELQSwhKgyMAwsgASIBIAJHDdUBQcQAISoMpAMLA0ACQCABLQAAQZDAgIAAai0AAEEBRg0AIAEhAQy9AgsgAUEBaiIBIAJHDQALQcUAISoMowMLICctAAAiKkEgRg2zASAqQTpHDYgDIAAoAgQhASAAQQA2AgQgACABICcQr4CAgAAiAQ3SASAnQQFqIQEMuQILQccAISogASIyIAJGDaEDIAIgMmsgACgCACIvaiEwIDIhJyAvIQECQANAICctAAAiLkEgciAuIC5Bv39qQf8BcUEaSRtB/wFxIAFBkMKAgABqLQAARw2IAyABQQVGDQEgAUEBaiEBICdBAWoiJyACRw0ACyAAIDA2AgAMogMLIABBADYCACAAQQE6ACwgMiAva0EGaiEBDIIDC0HIACEqIAEiMiACRg2gAyACIDJrIAAoAgAiL2ohMCAyIScgLyEBAkADQCAnLQAAIi5BIHIgLiAuQb9/akH/AXFBGkkbQf8BcSABQZbCgIAAai0AAEcNhwMgAUEJRg0BIAFBAWohASAnQQFqIicgAkcNAAsgACAwNgIADKEDCyAAQQA2AgAgAEECOgAsIDIgL2tBCmohAQyBAwsCQCABIicgAkcNAEHJACEqDKADCwJAAkAgJy0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBkn9qDgcAhwOHA4cDhwOHAwGHAwsgJ0EBaiEBQT4hKgyHAwsgJ0EBaiEBQT8hKgyGAwtBygAhKiABIjIgAkYNngMgAiAyayAAKAIAIi9qITAgMiEnIC8hAQNAICctAAAiLkEgciAuIC5Bv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw2EAyABQQFGDfgCIAFBAWohASAnQQFqIicgAkcNAAsgACAwNgIADJ4DC0HLACEqIAEiMiACRg2dAyACIDJrIAAoAgAiL2ohMCAyIScgLyEBAkADQCAnLQAAIi5BIHIgLiAuQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcNhAMgAUEORg0BIAFBAWohASAnQQFqIicgAkcNAAsgACAwNgIADJ4DCyAAQQA2AgAgAEEBOgAsIDIgL2tBD2ohAQz+AgtBzAAhKiABIjIgAkYNnAMgAiAyayAAKAIAIi9qITAgMiEnIC8hAQJAA0AgJy0AACIuQSByIC4gLkG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDYMDIAFBD0YNASABQQFqIQEgJ0EBaiInIAJHDQALIAAgMDYCAAydAwsgAEEANgIAIABBAzoALCAyIC9rQRBqIQEM/QILQc0AISogASIyIAJGDZsDIAIgMmsgACgCACIvaiEwIDIhJyAvIQECQANAICctAAAiLkEgciAuIC5Bv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw2CAyABQQVGDQEgAUEBaiEBICdBAWoiJyACRw0ACyAAIDA2AgAMnAMLIABBADYCACAAQQQ6ACwgMiAva0EGaiEBDPwCCwJAIAEiJyACRw0AQc4AISoMmwMLAkACQAJAAkAgJy0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMAhAOEA4QDhAOEA4QDhAOEA4QDhAOEA4QDAYQDhAOEAwIDhAMLICdBAWohAUHBACEqDIQDCyAnQQFqIQFBwgAhKgyDAwsgJ0EBaiEBQcMAISoMggMLICdBAWohAUHEACEqDIEDCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEqDIEDC0HPACEqDJkDCyAqIQECQAJAICotAABBdmoOBAGuAq4CAK4CCyAqQQFqIQELQSchKgz/AgsCQCABIgEgAkcNAEHRACEqDJgDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3JASABIQEMjAELIAEiASACRw3JAUHSACEqDJYDC0HTACEqIAEiMiACRg2VAyACIDJrIAAoAgAiL2ohMCAyIS4gLyEBAkADQCAuLQAAIAFB1sKAgABqLQAARw3PASABQQFGDQEgAUEBaiEBIC5BAWoiLiACRw0ACyAAIDA2AgAMlgMLIABBADYCACAyIC9rQQJqIQEMyQELAkAgASIBIAJHDQBB1QAhKgyVAwsgAS0AAEEKRw3OASABQQFqIQEMyQELAkAgASIBIAJHDQBB1gAhKgyUAwsCQAJAIAEtAABBdmoOBADPAc8BAc8BCyABQQFqIQEMyQELIAFBAWohAUHKACEqDPoCCyAAIAEiASACEK6AgIAAIioNzQEgASEBQc0AISoM+QILIAAtAClBIkYNjAMMrAILAkAgASIBIAJHDQBB2wAhKgyRAwtBACEuQQEhMkEBIS9BACEqAkACQAJAAkACQAJAAkACQAJAIAEtAABBUGoOCtYB1QEAAQIDBAUGCNcBC0ECISoMBgtBAyEqDAULQQQhKgwEC0EFISoMAwtBBiEqDAILQQchKgwBC0EIISoLQQAhMkEAIS9BACEuDM4BC0EJISpBASEuQQAhMkEAIS8MzQELAkAgASIBIAJHDQBB3QAhKgyQAwsgAS0AAEEuRw3OASABQQFqIQEMrAILAkAgASIBIAJHDQBB3wAhKgyPAwtBACEqAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrXAdYBAAECAwQFBgfYAQtBAiEqDNYBC0EDISoM1QELQQQhKgzUAQtBBSEqDNMBC0EGISoM0gELQQchKgzRAQtBCCEqDNABC0EJISoMzwELAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAISoM9QILQeAAISoMjQMLQeEAISogASIyIAJGDYwDIAIgMmsgACgCACIvaiEwIDIhASAvIS4DQCABLQAAIC5B4sKAgABqLQAARw3RASAuQQNGDdABIC5BAWohLiABQQFqIgEgAkcNAAsgACAwNgIADIwDC0HiACEqIAEiMiACRg2LAyACIDJrIAAoAgAiL2ohMCAyIQEgLyEuA0AgAS0AACAuQebCgIAAai0AAEcN0AEgLkECRg3SASAuQQFqIS4gAUEBaiIBIAJHDQALIAAgMDYCAAyLAwtB4wAhKiABIjIgAkYNigMgAiAyayAAKAIAIi9qITAgMiEBIC8hLgNAIAEtAAAgLkHpwoCAAGotAABHDc8BIC5BA0YN0gEgLkEBaiEuIAFBAWoiASACRw0ACyAAIDA2AgAMigMLAkAgASIBIAJHDQBB5QAhKgyKAwsgACABQQFqIgEgAhCogICAACIqDdEBIAEhAUHWACEqDPACCwJAIAEiASACRg0AA0ACQCABLQAAIipBIEYNAAJAAkACQCAqQbh/ag4LAAHTAdMB0wHTAdMB0wHTAdMBAtMBCyABQQFqIQFB0gAhKgz0AgsgAUEBaiEBQdMAISoM8wILIAFBAWohAUHUACEqDPICCyABQQFqIgEgAkcNAAtB5AAhKgyJAwtB5AAhKgyIAwsDQAJAIAEtAABB8MKAgABqLQAAIipBAUYNACAqQX5qDgPTAdQB1QHWAQsgAUEBaiIBIAJHDQALQeYAISoMhwMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAISoMhgMLA0ACQCABLQAAQfDEgIAAai0AACIqQQFGDQACQCAqQX5qDgTWAdcB2AEA2QELIAEhAUHXACEqDO4CCyABQQFqIgEgAkcNAAtB6AAhKgyFAwsCQCABIgEgAkcNAEHpACEqDIUDCwJAIAEtAAAiKkF2ag4avAHZAdkBvgHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHZAdkB2QHOAdkB2QEA1wELIAFBAWohAQtBBiEqDOoCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMpQILIAFBAWoiASACRw0AC0HqACEqDIIDCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEqDIEDCwJAIAEiASACRw0AQewAISoMgQMLIAFBAWohAQwBCwJAIAEiASACRw0AQe0AISoMgAMLIAFBAWohAQtBBCEqDOUCCwJAIAEiLiACRw0AQe4AISoM/gILIC4hAQJAAkACQCAuLQAAQfDIgIAAai0AAEF/ag4H2AHZAdoBAKMCAQLbAQsgLkEBaiEBDAoLIC5BAWohAQzRAQtBACEqIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIC5BAWo2AhQM/QILAkADQAJAIAEtAABB8MiAgABqLQAAIipBBEYNAAJAAkAgKkF/ag4H1gHXAdgB3QEABAHdAQsgASEBQdoAISoM5wILIAFBAWohAUHcACEqDOYCCyABQQFqIgEgAkcNAAtB7wAhKgz9AgsgAUEBaiEBDM8BCwJAIAEiLiACRw0AQfAAISoM/AILIC4tAABBL0cN2AEgLkEBaiEBDAYLAkAgASIuIAJHDQBB8QAhKgz7AgsCQCAuLQAAIgFBL0cNACAuQQFqIQFB3QAhKgziAgsgAUF2aiIBQRZLDdcBQQEgAXRBiYCAAnFFDdcBDNICCwJAIAEiASACRg0AIAFBAWohAUHeACEqDOECC0HyACEqDPkCCwJAIAEiLiACRw0AQfQAISoM+QILIC4hAQJAIC4tAABB8MyAgABqLQAAQX9qDgPRApsCANgBC0HhACEqDN8CCwJAIAEiLiACRg0AA0ACQCAuLQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLTAgDZAQsgLiEBQd8AISoM4QILIC5BAWoiLiACRw0AC0HzACEqDPgCC0HzACEqDPcCCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEqDN4CC0H1ACEqDPYCCwJAIAEiASACRw0AQfYAISoM9gILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEqDNsCCwNAIAEtAABBIEcNywIgAUEBaiIBIAJHDQALQfcAISoM8wILAkAgASIBIAJHDQBB+AAhKgzzAgsgAS0AAEEgRw3SASABQQFqIQEM9QELIAAgASIBIAIQrICAgAAiKg3SASABIQEMlQILAkAgASIEIAJHDQBB+gAhKgzxAgsgBC0AAEHMAEcN1QEgBEEBaiEBQRMhKgzTAQsCQCABIiogAkcNAEH7ACEqDPACCyACICprIAAoAgAiLmohMiAqIQQgLiEBA0AgBC0AACABQfDOgIAAai0AAEcN1AEgAUEFRg3SASABQQFqIQEgBEEBaiIEIAJHDQALIAAgMjYCAEH7ACEqDO8CCwJAIAEiBCACRw0AQfwAISoM7wILAkACQCAELQAAQb1/ag4MANUB1QHVAdUB1QHVAdUB1QHVAdUBAdUBCyAEQQFqIQFB5gAhKgzWAgsgBEEBaiEBQecAISoM1QILAkAgASIqIAJHDQBB/QAhKgzuAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQJAA0AgBC0AACABQe3PgIAAai0AAEcN0wEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAyNgIAQf0AISoM7gILIABBADYCACAqIC5rQQNqIQFBECEqDNABCwJAIAEiKiACRw0AQf4AISoM7QILIAIgKmsgACgCACIuaiEyICohBCAuIQECQANAIAQtAAAgAUH2zoCAAGotAABHDdIBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgMjYCAEH+ACEqDO0CCyAAQQA2AgAgKiAua0EGaiEBQRYhKgzPAQsCQCABIiogAkcNAEH/ACEqDOwCCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFB/M6AgABqLQAARw3RASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBB/wAhKgzsAgsgAEEANgIAICogLmtBBGohAUEFISoMzgELAkAgASIEIAJHDQBBgAEhKgzrAgsgBC0AAEHZAEcNzwEgBEEBaiEBQQghKgzNAQsCQCABIgQgAkcNAEGBASEqDOoCCwJAAkAgBC0AAEGyf2oOAwDQAQHQAQsgBEEBaiEBQesAISoM0QILIARBAWohAUHsACEqDNACCwJAIAEiBCACRw0AQYIBISoM6QILAkACQCAELQAAQbh/ag4IAM8BzwHPAc8BzwHPAQHPAQsgBEEBaiEBQeoAISoM0AILIARBAWohAUHtACEqDM8CCwJAIAEiLiACRw0AQYMBISoM6AILIAIgLmsgACgCACIyaiEqIC4hBCAyIQECQANAIAQtAAAgAUGAz4CAAGotAABHDc0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgKjYCAEGDASEqDOgCC0EAISogAEEANgIAIC4gMmtBA2ohAQzKAQsCQCABIiogAkcNAEGEASEqDOcCCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFBg8+AgABqLQAARw3MASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBBhAEhKgznAgsgAEEANgIAICogLmtBBWohAUEjISoMyQELAkAgASIEIAJHDQBBhQEhKgzmAgsCQAJAIAQtAABBtH9qDggAzAHMAcwBzAHMAcwBAcwBCyAEQQFqIQFB7wAhKgzNAgsgBEEBaiEBQfAAISoMzAILAkAgASIEIAJHDQBBhgEhKgzlAgsgBC0AAEHFAEcNyQEgBEEBaiEBDIoCCwJAIAEiKiACRw0AQYcBISoM5AILIAIgKmsgACgCACIuaiEyICohBCAuIQECQANAIAQtAAAgAUGIz4CAAGotAABHDckBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgMjYCAEGHASEqDOQCCyAAQQA2AgAgKiAua0EEaiEBQS0hKgzGAQsCQCABIiogAkcNAEGIASEqDOMCCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFB0M+AgABqLQAARw3IASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBBiAEhKgzjAgsgAEEANgIAICogLmtBCWohAUEpISoMxQELAkAgASIBIAJHDQBBiQEhKgziAgtBASEqIAEtAABB3wBHDcQBIAFBAWohAQyIAgsCQCABIiogAkcNAEGKASEqDOECCyACICprIAAoAgAiLmohMiAqIQQgLiEBA0AgBC0AACABQYzPgIAAai0AAEcNxQEgAUEBRg23AiABQQFqIQEgBEEBaiIEIAJHDQALIAAgMjYCAEGKASEqDOACCwJAIAEiKiACRw0AQYsBISoM4AILIAIgKmsgACgCACIuaiEyICohBCAuIQECQANAIAQtAAAgAUGOz4CAAGotAABHDcUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgMjYCAEGLASEqDOACCyAAQQA2AgAgKiAua0EDaiEBQQIhKgzCAQsCQCABIiogAkcNAEGMASEqDN8CCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFB8M+AgABqLQAARw3EASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBBjAEhKgzfAgsgAEEANgIAICogLmtBAmohAUEfISoMwQELAkAgASIqIAJHDQBBjQEhKgzeAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQJAA0AgBC0AACABQfLPgIAAai0AAEcNwwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAyNgIAQY0BISoM3gILIABBADYCACAqIC5rQQJqIQFBCSEqDMABCwJAIAEiBCACRw0AQY4BISoM3QILAkACQCAELQAAQbd/ag4HAMMBwwHDAcMBwwEBwwELIARBAWohAUH4ACEqDMQCCyAEQQFqIQFB+QAhKgzDAgsCQCABIiogAkcNAEGPASEqDNwCCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFBkc+AgABqLQAARw3BASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBBjwEhKgzcAgsgAEEANgIAICogLmtBBmohAUEYISoMvgELAkAgASIqIAJHDQBBkAEhKgzbAgsgAiAqayAAKAIAIi5qITIgKiEEIC4hAQJAA0AgBC0AACABQZfPgIAAai0AAEcNwAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAyNgIAQZABISoM2wILIABBADYCACAqIC5rQQNqIQFBFyEqDL0BCwJAIAEiKiACRw0AQZEBISoM2gILIAIgKmsgACgCACIuaiEyICohBCAuIQECQANAIAQtAAAgAUGaz4CAAGotAABHDb8BIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgMjYCAEGRASEqDNoCCyAAQQA2AgAgKiAua0EHaiEBQRUhKgy8AQsCQCABIiogAkcNAEGSASEqDNkCCyACICprIAAoAgAiLmohMiAqIQQgLiEBAkADQCAELQAAIAFBoc+AgABqLQAARw2+ASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIDI2AgBBkgEhKgzZAgsgAEEANgIAICogLmtBBmohAUEeISoMuwELAkAgASIEIAJHDQBBkwEhKgzYAgsgBC0AAEHMAEcNvAEgBEEBaiEBQQohKgy6AQsCQCAEIAJHDQBBlAEhKgzXAgsCQAJAIAQtAABBv39qDg8AvQG9Ab0BvQG9Ab0BvQG9Ab0BvQG9Ab0BvQEBvQELIARBAWohAUH+ACEqDL4CCyAEQQFqIQFB/wAhKgy9AgsCQCAEIAJHDQBBlQEhKgzWAgsCQAJAIAQtAABBv39qDgMAvAEBvAELIARBAWohAUH9ACEqDL0CCyAEQQFqIQRBgAEhKgy8AgsCQCAFIAJHDQBBlgEhKgzVAgsgAiAFayAAKAIAIipqIS4gBSEEICohAQJAA0AgBC0AACABQafPgIAAai0AAEcNugEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQZYBISoM1QILIABBADYCACAFICprQQJqIQFBCyEqDLcBCwJAIAQgAkcNAEGXASEqDNQCCwJAAkACQAJAIAQtAABBU2oOIwC8AbwBvAG8AbwBvAG8AbwBvAG8AbwBvAG8AbwBvAG8AbwBvAG8AbwBvAG8AbwBAbwBvAG8AbwBvAECvAG8AbwBA7wBCyAEQQFqIQFB+wAhKgy9AgsgBEEBaiEBQfwAISoMvAILIARBAWohBEGBASEqDLsCCyAEQQFqIQVBggEhKgy6AgsCQCAGIAJHDQBBmAEhKgzTAgsgAiAGayAAKAIAIipqIS4gBiEEICohAQJAA0AgBC0AACABQanPgIAAai0AAEcNuAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQZgBISoM0wILIABBADYCACAGICprQQVqIQFBGSEqDLUBCwJAIAcgAkcNAEGZASEqDNICCyACIAdrIAAoAgAiLmohKiAHIQQgLiEBAkADQCAELQAAIAFBrs+AgABqLQAARw23ASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICo2AgBBmQEhKgzSAgsgAEEANgIAQQYhKiAHIC5rQQZqIQEMtAELAkAgCCACRw0AQZoBISoM0QILIAIgCGsgACgCACIqaiEuIAghBCAqIQECQANAIAQtAAAgAUG0z4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGaASEqDNECCyAAQQA2AgAgCCAqa0ECaiEBQRwhKgyzAQsCQCAJIAJHDQBBmwEhKgzQAgsgAiAJayAAKAIAIipqIS4gCSEEICohAQJAA0AgBC0AACABQbbPgIAAai0AAEcNtQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQZsBISoM0AILIABBADYCACAJICprQQJqIQFBJyEqDLIBCwJAIAQgAkcNAEGcASEqDM8CCwJAAkAgBC0AAEGsf2oOAgABtQELIARBAWohCEGGASEqDLYCCyAEQQFqIQlBhwEhKgy1AgsCQCAKIAJHDQBBnQEhKgzOAgsgAiAKayAAKAIAIipqIS4gCiEEICohAQJAA0AgBC0AACABQbjPgIAAai0AAEcNswEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQZ0BISoMzgILIABBADYCACAKICprQQJqIQFBJiEqDLABCwJAIAsgAkcNAEGeASEqDM0CCyACIAtrIAAoAgAiKmohLiALIQQgKiEBAkADQCAELQAAIAFBus+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBngEhKgzNAgsgAEEANgIAIAsgKmtBAmohAUEDISoMrwELAkAgDCACRw0AQZ8BISoMzAILIAIgDGsgACgCACIqaiEuIAwhBCAqIQECQANAIAQtAAAgAUHtz4CAAGotAABHDbEBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGfASEqDMwCCyAAQQA2AgAgDCAqa0EDaiEBQQwhKgyuAQsCQCANIAJHDQBBoAEhKgzLAgsgAiANayAAKAIAIipqIS4gDSEEICohAQJAA0AgBC0AACABQbzPgIAAai0AAEcNsAEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQaABISoMywILIABBADYCACANICprQQRqIQFBDSEqDK0BCwJAIAQgAkcNAEGhASEqDMoCCwJAAkAgBC0AAEG6f2oOCwCwAbABsAGwAbABsAGwAbABsAEBsAELIARBAWohDEGLASEqDLECCyAEQQFqIQ1BjAEhKgywAgsCQCAEIAJHDQBBogEhKgzJAgsgBC0AAEHQAEcNrQEgBEEBaiEEDPABCwJAIAQgAkcNAEGjASEqDMgCCwJAAkAgBC0AAEG3f2oOBwGuAa4BrgGuAa4BAK4BCyAEQQFqIQRBjgEhKgyvAgsgBEEBaiEBQSIhKgyqAQsCQCAOIAJHDQBBpAEhKgzHAgsgAiAOayAAKAIAIipqIS4gDiEEICohAQJAA0AgBC0AACABQcDPgIAAai0AAEcNrAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQaQBISoMxwILIABBADYCACAOICprQQJqIQFBHSEqDKkBCwJAIAQgAkcNAEGlASEqDMYCCwJAAkAgBC0AAEGuf2oOAwCsAQGsAQsgBEEBaiEOQZABISoMrQILIARBAWohAUEEISoMqAELAkAgBCACRw0AQaYBISoMxQILAkACQAJAAkACQCAELQAAQb9/ag4VAK4BrgGuAa4BrgGuAa4BrgGuAa4BAa4BrgECrgGuAQOuAa4BBK4BCyAEQQFqIQRBiAEhKgyvAgsgBEEBaiEKQYkBISoMrgILIARBAWohC0GKASEqDK0CCyAEQQFqIQRBjwEhKgysAgsgBEEBaiEEQZEBISoMqwILAkAgDyACRw0AQacBISoMxAILIAIgD2sgACgCACIqaiEuIA8hBCAqIQECQANAIAQtAAAgAUHtz4CAAGotAABHDakBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGnASEqDMQCCyAAQQA2AgAgDyAqa0EDaiEBQREhKgymAQsCQCAQIAJHDQBBqAEhKgzDAgsgAiAQayAAKAIAIipqIS4gECEEICohAQJAA0AgBC0AACABQcLPgIAAai0AAEcNqAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQagBISoMwwILIABBADYCACAQICprQQNqIQFBLCEqDKUBCwJAIBEgAkcNAEGpASEqDMICCyACIBFrIAAoAgAiKmohLiARIQQgKiEBAkADQCAELQAAIAFBxc+AgABqLQAARw2nASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBqQEhKgzCAgsgAEEANgIAIBEgKmtBBWohAUErISoMpAELAkAgEiACRw0AQaoBISoMwQILIAIgEmsgACgCACIqaiEuIBIhBCAqIQECQANAIAQtAAAgAUHKz4CAAGotAABHDaYBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEGqASEqDMECCyAAQQA2AgAgEiAqa0EDaiEBQRQhKgyjAQsCQCAEIAJHDQBBqwEhKgzAAgsCQAJAAkACQCAELQAAQb5/ag4PAAECqAGoAagBqAGoAagBqAGoAagBqAGoAQOoAQsgBEEBaiEPQZMBISoMqQILIARBAWohEEGUASEqDKgCCyAEQQFqIRFBlQEhKgynAgsgBEEBaiESQZYBISoMpgILAkAgBCACRw0AQawBISoMvwILIAQtAABBxQBHDaMBIARBAWohBAznAQsCQCATIAJHDQBBrQEhKgy+AgsgAiATayAAKAIAIipqIS4gEyEEICohAQJAA0AgBC0AACABQc3PgIAAai0AAEcNowEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQa0BISoMvgILIABBADYCACATICprQQNqIQFBDiEqDKABCwJAIAQgAkcNAEGuASEqDL0CCyAELQAAQdAARw2hASAEQQFqIQFBJSEqDJ8BCwJAIBQgAkcNAEGvASEqDLwCCyACIBRrIAAoAgAiKmohLiAUIQQgKiEBAkADQCAELQAAIAFB0M+AgABqLQAARw2hASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBrwEhKgy8AgsgAEEANgIAIBQgKmtBCWohAUEqISoMngELAkAgBCACRw0AQbABISoMuwILAkACQCAELQAAQat/ag4LAKEBoQGhAaEBoQGhAaEBoQGhAQGhAQsgBEEBaiEEQZoBISoMogILIARBAWohFEGbASEqDKECCwJAIAQgAkcNAEGxASEqDLoCCwJAAkAgBC0AAEG/f2oOFACgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEBoAELIARBAWohE0GZASEqDKECCyAEQQFqIQRBnAEhKgygAgsCQCAVIAJHDQBBsgEhKgy5AgsgAiAVayAAKAIAIipqIS4gFSEEICohAQJAA0AgBC0AACABQdnPgIAAai0AAEcNngEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQbIBISoMuQILIABBADYCACAVICprQQRqIQFBISEqDJsBCwJAIBYgAkcNAEGzASEqDLgCCyACIBZrIAAoAgAiKmohLiAWIQQgKiEBAkADQCAELQAAIAFB3c+AgABqLQAARw2dASABQQZGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBswEhKgy4AgsgAEEANgIAIBYgKmtBB2ohAUEaISoMmgELAkAgBCACRw0AQbQBISoMtwILAkACQAJAIAQtAABBu39qDhEAngGeAZ4BngGeAZ4BngGeAZ4BAZ4BngGeAZ4BngECngELIARBAWohBEGdASEqDJ8CCyAEQQFqIRVBngEhKgyeAgsgBEEBaiEWQZ8BISoMnQILAkAgFyACRw0AQbUBISoMtgILIAIgF2sgACgCACIqaiEuIBchBCAqIQECQANAIAQtAAAgAUHkz4CAAGotAABHDZsBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEG1ASEqDLYCCyAAQQA2AgAgFyAqa0EGaiEBQSghKgyYAQsCQCAYIAJHDQBBtgEhKgy1AgsgAiAYayAAKAIAIipqIS4gGCEEICohAQJAA0AgBC0AACABQerPgIAAai0AAEcNmgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQbYBISoMtQILIABBADYCACAYICprQQNqIQFBByEqDJcBCwJAIAQgAkcNAEG3ASEqDLQCCwJAAkAgBC0AAEG7f2oODgCaAZoBmgGaAZoBmgGaAZoBmgGaAZoBmgEBmgELIARBAWohF0GhASEqDJsCCyAEQQFqIRhBogEhKgyaAgsCQCAZIAJHDQBBuAEhKgyzAgsgAiAZayAAKAIAIipqIS4gGSEEICohAQJAA0AgBC0AACABQe3PgIAAai0AAEcNmAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAuNgIAQbgBISoMswILIABBADYCACAZICprQQNqIQFBEiEqDJUBCwJAIBogAkcNAEG5ASEqDLICCyACIBprIAAoAgAiKmohLiAaIQQgKiEBAkADQCAELQAAIAFB8M+AgABqLQAARw2XASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBuQEhKgyyAgsgAEEANgIAIBogKmtBAmohAUEgISoMlAELAkAgGyACRw0AQboBISoMsQILIAIgG2sgACgCACIqaiEuIBshBCAqIQECQANAIAQtAAAgAUHyz4CAAGotAABHDZYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgLjYCAEG6ASEqDLECCyAAQQA2AgAgGyAqa0ECaiEBQQ8hKgyTAQsCQCAEIAJHDQBBuwEhKgywAgsCQAJAIAQtAABBt39qDgcAlgGWAZYBlgGWAQGWAQsgBEEBaiEaQaUBISoMlwILIARBAWohG0GmASEqDJYCCwJAIBwgAkcNAEG8ASEqDK8CCyACIBxrIAAoAgAiKmohLiAcIQQgKiEBAkADQCAELQAAIAFB9M+AgABqLQAARw2UASABQQdGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIC42AgBBvAEhKgyvAgsgAEEANgIAIBwgKmtBCGohAUEbISoMkQELAkAgBCACRw0AQb0BISoMrgILAkACQAJAIAQtAABBvn9qDhIAlQGVAZUBlQGVAZUBlQGVAZUBAZUBlQGVAZUBlQGVAQKVAQsgBEEBaiEZQaQBISoMlgILIARBAWohBEGnASEqDJUCCyAEQQFqIRxBqAEhKgyUAgsCQCAEIAJHDQBBvgEhKgytAgsgBC0AAEHOAEcNkQEgBEEBaiEEDNYBCwJAIAQgAkcNAEG/ASEqDKwCCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQtAABBv39qDhUAAQIDoAEEBQagAaABoAEHCAkKC6ABDA0OD6ABCyAEQQFqIQFB6AAhKgyhAgsgBEEBaiEBQekAISoMoAILIARBAWohAUHuACEqDJ8CCyAEQQFqIQFB8gAhKgyeAgsgBEEBaiEBQfMAISoMnQILIARBAWohAUH2ACEqDJwCCyAEQQFqIQFB9wAhKgybAgsgBEEBaiEBQfoAISoMmgILIARBAWohBEGDASEqDJkCCyAEQQFqIQZBhAEhKgyYAgsgBEEBaiEHQYUBISoMlwILIARBAWohBEGSASEqDJYCCyAEQQFqIQRBmAEhKgyVAgsgBEEBaiEEQaABISoMlAILIARBAWohBEGjASEqDJMCCyAEQQFqIQRBqgEhKgySAgsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBqwEhKgySAgtBwAEhKgyqAgsgACAdIAIQqoCAgAAiAQ2PASAdIQEMXgsCQCAeIAJGDQAgHkEBaiEdDJEBC0HCASEqDKgCCwNAAkAgKi0AAEF2ag4EkAEAAJMBAAsgKkEBaiIqIAJHDQALQcMBISoMpwILAkAgHyACRg0AIABBkYCAgAA2AgggACAfNgIEIB8hAUEBISoMjgILQcQBISoMpgILAkAgHyACRw0AQcUBISoMpgILAkACQCAfLQAAQXZqDgQB1QHVAQDVAQsgH0EBaiEeDJEBCyAfQQFqIR0MjQELAkAgHyACRw0AQcYBISoMpQILAkACQCAfLQAAQXZqDhcBkwGTAQGTAZMBkwGTAZMBkwGTAZMBkwGTAZMBkwGTAZMBkwGTAZMBkwEAkwELIB9BAWohHwtBsAEhKgyLAgsCQCAgIAJHDQBByAEhKgykAgsgIC0AAEEgRw2RASAAQQA7ATIgIEEBaiEBQbMBISoMigILIAEhMgJAA0AgMiIfIAJGDQEgHy0AAEFQakH/AXEiKkEKTw3TAQJAIAAvATIiLkGZM0sNACAAIC5BCmwiLjsBMiAqQf//A3MgLkH+/wNxSQ0AIB9BAWohMiAAIC4gKmoiKjsBMiAqQf//A3FB6AdJDQELC0EAISogAEEANgIcIABBwYmAgAA2AhAgAEENNgIMIAAgH0EBajYCFAyjAgtBxwEhKgyiAgsgACAgIAIQroCAgAAiKkUN0QEgKkEVRw2QASAAQcgBNgIcIAAgIDYCFCAAQcmXgIAANgIQIABBFTYCDEEAISoMoQILAkAgISACRw0AQcwBISoMoQILQQAhLkEBITJBASEvQQAhKgJAAkACQAJAAkACQAJAAkACQCAhLQAAQVBqDgqaAZkBAAECAwQFBgibAQtBAiEqDAYLQQMhKgwFC0EEISoMBAtBBSEqDAMLQQYhKgwCC0EHISoMAQtBCCEqC0EAITJBACEvQQAhLgySAQtBCSEqQQEhLkEAITJBACEvDJEBCwJAICIgAkcNAEHOASEqDKACCyAiLQAAQS5HDZIBICJBAWohIQzRAQsCQCAjIAJHDQBB0AEhKgyfAgtBACEqAkACQAJAAkACQAJAAkACQCAjLQAAQVBqDgqbAZoBAAECAwQFBgecAQtBAiEqDJoBC0EDISoMmQELQQQhKgyYAQtBBSEqDJcBC0EGISoMlgELQQchKgyVAQtBCCEqDJQBC0EJISoMkwELAkAgIyACRg0AIABBjoCAgAA2AgggACAjNgIEQbcBISoMhQILQdEBISoMnQILAkAgBCACRw0AQdIBISoMnQILIAIgBGsgACgCACIuaiEyIAQhIyAuISoDQCAjLQAAICpB/M+AgABqLQAARw2UASAqQQRGDfEBICpBAWohKiAjQQFqIiMgAkcNAAsgACAyNgIAQdIBISoMnAILIAAgJCACEKyAgIAAIgENkwEgJCEBDL8BCwJAICUgAkcNAEHUASEqDJsCCyACICVrIAAoAgAiJGohLiAlIQQgJCEqA0AgBC0AACAqQYHQgIAAai0AAEcNlQEgKkEBRg2UASAqQQFqISogBEEBaiIEIAJHDQALIAAgLjYCAEHUASEqDJoCCwJAICYgAkcNAEHWASEqDJoCCyACICZrIAAoAgAiI2ohLiAmIQQgIyEqA0AgBC0AACAqQYPQgIAAai0AAEcNlAEgKkECRg2WASAqQQFqISogBEEBaiIEIAJHDQALIAAgLjYCAEHWASEqDJkCCwJAIAQgAkcNAEHXASEqDJkCCwJAAkAgBC0AAEG7f2oOEACVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBAZUBCyAEQQFqISVBuwEhKgyAAgsgBEEBaiEmQbwBISoM/wELAkAgBCACRw0AQdgBISoMmAILIAQtAABByABHDZIBIARBAWohBAzMAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhKgz+AQtB2QEhKgyWAgsCQCAEIAJHDQBB2gEhKgyWAgsgBC0AAEHIAEYNywEgAEEBOgAoDMABCyAAQQI6AC8gACAEIAIQpoCAgAAiKg2TAUHCASEqDPsBCyAALQAoQX9qDgK+AcABvwELA0ACQCAELQAAQXZqDgQAlAGUAQCUAQsgBEEBaiIEIAJHDQALQd0BISoMkgILIABBADoALyAALQAtQQRxRQ2LAgsgAEEAOgAvIABBAToANCABIQEMkgELICpBFUYN4gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAISoMjwILAkAgACAqIAIQtICAgAAiAQ0AICohAQyIAgsCQCABQRVHDQAgAEEDNgIcIAAgKjYCFCAAQbCYgIAANgIQIABBFTYCDEEAISoMjwILIABBADYCHCAAICo2AhQgAEGnjoCAADYCECAAQRI2AgxBACEqDI4CCyAqQRVGDd4BIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEqDI0CCyAAKAIEITIgAEEANgIEICogK6dqIi8hASAAIDIgKiAvIC4bIioQtYCAgAAiLkUNkwEgAEEHNgIcIAAgKjYCFCAAIC42AgxBACEqDIwCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEqDPEBCyAqQRVGDdkBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEqDIkCCyAqQRVGDdcBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEqDIgCCyAAKAIEISogAEEANgIEAkAgACAqIAEQt4CAgAAiKg0AIAFBAWohAQyTAQsgAEEMNgIcIAAgKjYCDCAAIAFBAWo2AhRBACEqDIcCCyAqQRVGDdQBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEqDIYCCyAAKAIEISogAEEANgIEAkAgACAqIAEQt4CAgAAiKg0AIAFBAWohAQySAQsgAEENNgIcIAAgKjYCDCAAIAFBAWo2AhRBACEqDIUCCyAqQRVGDdEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEqDIQCCyAAKAIEISogAEEANgIEAkAgACAqIAEQuYCAgAAiKg0AIAFBAWohAQyRAQsgAEEONgIcIAAgKjYCDCAAIAFBAWo2AhRBACEqDIMCCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhKgyCAgsgKkEVRg3NASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhKgyBAgsgAEEQNgIcIAAgATYCFCAAICo2AgxBACEqDIACCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQz4AQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEqDP8BCyAqQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEqDP4BCyAAKAIEISogAEEANgIEAkAgACAqIAEQuYCAgAAiKg0AIAFBAWohAQyOAQsgAEETNgIcIAAgKjYCDCAAIAFBAWo2AhRBACEqDP0BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQz0AQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEqDPwBCyAqQRVGDcUBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEqDPsBCyAAKAIEISogAEEANgIEAkAgACAqIAEQt4CAgAAiKg0AIAFBAWohAQyMAQsgAEEWNgIcIAAgKjYCDCAAIAFBAWo2AhRBACEqDPoBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzwAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEqDPkBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhKgz4AQtCASErCyAqQQFqIQECQCAAKQMgIixC//////////8PVg0AIAAgLEIEhiArhDcDICABIQEMigELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEqDPYBCyAAQQA2AhwgACAqNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhKgz1AQsgACgCBCEyIABBADYCBCAqICunaiIvIQEgACAyICogLyAuGyIqELWAgIAAIi5FDXkgAEEFNgIcIAAgKjYCFCAAIC42AgxBACEqDPQBCyAAQQA2AhwgACAqNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhKgzzAQsgACAqIAIQtICAgAAiAQ0BICohAQtBDiEqDNgBCwJAIAFBFUcNACAAQQI2AhwgACAqNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhKgzxAQsgAEEANgIcIAAgKjYCFCAAQaeOgIAANgIQIABBEjYCDEEAISoM8AELIAFBAWohKgJAIAAvATAiAUGAAXFFDQACQCAAICogAhC7gICAACIBDQAgKiEBDHYLIAFBFUcNwgEgAEEFNgIcIAAgKjYCFCAAQfmXgIAANgIQIABBFTYCDEEAISoM8AELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAICo2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEqDPABCyAAICogAhC9gICAABogKiEBAkACQAJAAkACQCAAICogAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAqIQELQSYhKgzYAQsgAEEjNgIcIAAgKjYCFCAAQaWWgIAANgIQIABBFTYCDEEAISoM8AELIABBADYCHCAAICo2AhQgAEHVi4CAADYCECAAQRE2AgxBACEqDO8BCyAALQAtQQFxRQ0BQcMBISoM1QELAkAgJyACRg0AA0ACQCAnLQAAQSBGDQAgJyEBDNEBCyAnQQFqIicgAkcNAAtBJSEqDO4BC0ElISoM7QELIAAoAgQhASAAQQA2AgQgACABICcQr4CAgAAiAUUNtQEgAEEmNgIcIAAgATYCDCAAICdBAWo2AhRBACEqDOwBCyAqQRVGDbMBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEqDOsBCyAAQSc2AhwgACABNgIUIAAgKjYCDEEAISoM6gELICohAUEBIS4CQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhLgwBC0EEIS4LIABBAToALCAAIAAvATAgLnI7ATALICohAQtBKyEqDNEBCyAAQQA2AhwgACAqNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhKgzpAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAISoM6AELIABBADoALCAqIQEMwgELICohAUEBIS4CQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEuDAELQQQhLgsgAEEBOgAsIAAgAC8BMCAucjsBMAsgKiEBC0EpISoMzAELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEqDOQBCwJAICgtAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABICgQsYCAgAAiAQ0AIChBAWohAQx7CyAAQSw2AhwgACABNgIMIAAgKEEBajYCFEEAISoM5AELIAAtAC1BAXFFDQFBxAEhKgzKAQsCQCAoIAJHDQBBLSEqDOMBCwJAAkADQAJAICgtAABBdmoOBAIAAAMACyAoQQFqIiggAkcNAAtBLSEqDOQBCyAAKAIEIQEgAEEANgIEAkAgACABICgQsYCAgAAiAQ0AICghAQx6CyAAQSw2AhwgACAoNgIUIAAgATYCDEEAISoM4wELIAAoAgQhASAAQQA2AgQCQCAAIAEgKBCxgICAACIBDQAgKEEBaiEBDHkLIABBLDYCHCAAIAE2AgwgACAoQQFqNgIUQQAhKgziAQsgACgCBCEBIABBADYCBCAAIAEgKBCxgICAACIBDagBICghAQzVAQsgKkEsRw0BIAFBAWohKkEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAqIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAqIQEMAQsgACAALwEwQQhyOwEwICohAQtBOSEqDMYBCyAAQQA6ACwgASEBC0E0ISoMxAELIABBADYCACAvIDBrQQlqIQFBBSEqDL8BCyAAQQA2AgAgLyAwa0EGaiEBQQchKgy+AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzMAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEqDNkBCyAAQQg6ACwgASEBC0EwISoMvgELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2ZASABIQEMAwsgAC0AMEEgcQ2aAUHFASEqDLwBCwJAICkgAkYNAAJAA0ACQCApLQAAQVBqIgFB/wFxQQpJDQAgKSEBQTUhKgy/AQsgACkDICIrQpmz5syZs+bMGVYNASAAICtCCn4iKzcDICArIAGtIixCf4VCgH6EVg0BIAAgKyAsQv8Bg3w3AyAgKUEBaiIpIAJHDQALQTkhKgzWAQsgACgCBCEEIABBADYCBCAAIAQgKUEBaiIBELGAgIAAIgQNmwEgASEBDMgBC0E5ISoM1AELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2WAQsgACABQff7A3FBgARyOwEwICkhAQtBNyEqDLkBCyAAIAAvATBBEHI7ATAMrgELICpBFUYNkQEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAISoM0AELIABBwwA2AhwgACABNgIMIAAgJ0EBajYCFEEAISoMzwELAkAgAS0AAEE6Rw0AIAAoAgQhKiAAQQA2AgQCQCAAICogARCvgICAACIqDQAgAUEBaiEBDGcLIABBwwA2AhwgACAqNgIMIAAgAUEBajYCFEEAISoMzwELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEqDM4BCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhKgzNAQsgAUEBaiEBCyAAQYASOwEqIAAgASACEKiAgIAAIioNASABIQELQccAISoMsQELICpBFUcNiQEgAEHRADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEqDMkBCyAAKAIEISogAEEANgIEAkAgACAqIAEQp4CAgAAiKg0AIAEhAQxiCyAAQdIANgIcIAAgATYCFCAAICo2AgxBACEqDMgBCyAAQQA2AhwgACAuNgIUIABBwaiAgAA2AhAgAEEHNgIMIABBADYCAEEAISoMxwELIAAoAgQhKiAAQQA2AgQCQCAAICogARCngICAACIqDQAgASEBDGELIABB0wA2AhwgACABNgIUIAAgKjYCDEEAISoMxgELQQAhKiAAQQA2AhwgACABNgIUIABBgJGAgAA2AhAgAEEJNgIMDMUBCyAqQRVGDYMBIABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEqDMQBC0EBIS9BACEyQQAhLkEBISoLIAAgKjoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAvRQ0DDAILIC4NAQwCCyAyRQ0BCyAAKAIEISogAEEANgIEAkAgACAqIAEQrYCAgAAiKg0AIAEhAQxgCyAAQdgANgIcIAAgATYCFCAAICo2AgxBACEqDMMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQyyAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhKgzCAQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMsAELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAISoMwQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDK4BCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEqDMABC0EBISoLIAAgKjoAKiABQQFqIQEMXAsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqgELIABB3gA2AhwgACABNgIUIAAgBDYCDEEAISoMvQELIABBADYCACAyIC9rQQRqIQECQCAALQApQSNPDQAgASEBDFwLIABBADYCHCAAIAE2AhQgAEHTiYCAADYCECAAQQg2AgxBACEqDLwBCyAAQQA2AgALQQAhKiAAQQA2AhwgACABNgIUIABBkLOAgAA2AhAgAEEINgIMDLoBCyAAQQA2AgAgMiAva0EDaiEBAkAgAC0AKUEhRw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABBm4qAgAA2AhAgAEEINgIMQQAhKgy5AQsgAEEANgIAIDIgL2tBBGohAQJAIAAtACkiKkFdakELTw0AIAEhAQxYCwJAICpBBksNAEEBICp0QcoAcUUNACABIQEMWAtBACEqIABBADYCHCAAIAE2AhQgAEH3iYCAADYCECAAQQg2AgwMuAELICpBFUYNdSAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhKgy3AQsgACgCBCEqIABBADYCBAJAIAAgKiABEKeAgIAAIioNACABIQEMVwsgAEHlADYCHCAAIAE2AhQgACAqNgIMQQAhKgy2AQsgACgCBCEqIABBADYCBAJAIAAgKiABEKeAgIAAIioNACABIQEMTwsgAEHSADYCHCAAIAE2AhQgACAqNgIMQQAhKgy1AQsgACgCBCEqIABBADYCBAJAIAAgKiABEKeAgIAAIioNACABIQEMTwsgAEHTADYCHCAAIAE2AhQgACAqNgIMQQAhKgy0AQsgACgCBCEqIABBADYCBAJAIAAgKiABEKeAgIAAIioNACABIQEMVAsgAEHlADYCHCAAIAE2AhQgACAqNgIMQQAhKgyzAQsgAEEANgIcIAAgATYCFCAAQcaKgIAANgIQIABBBzYCDEEAISoMsgELIAAoAgQhKiAAQQA2AgQCQCAAICogARCngICAACIqDQAgASEBDEsLIABB0gA2AhwgACABNgIUIAAgKjYCDEEAISoMsQELIAAoAgQhKiAAQQA2AgQCQCAAICogARCngICAACIqDQAgASEBDEsLIABB0wA2AhwgACABNgIUIAAgKjYCDEEAISoMsAELIAAoAgQhKiAAQQA2AgQCQCAAICogARCngICAACIqDQAgASEBDFALIABB5QA2AhwgACABNgIUIAAgKjYCDEEAISoMrwELIABBADYCHCAAIAE2AhQgAEHciICAADYCECAAQQc2AgxBACEqDK4BCyAqQT9HDQEgAUEBaiEBC0EFISoMkwELQQAhKiAAQQA2AhwgACABNgIUIABB/ZKAgAA2AhAgAEEHNgIMDKsBCyAAKAIEISogAEEANgIEAkAgACAqIAEQp4CAgAAiKg0AIAEhAQxECyAAQdIANgIcIAAgATYCFCAAICo2AgxBACEqDKoBCyAAKAIEISogAEEANgIEAkAgACAqIAEQp4CAgAAiKg0AIAEhAQxECyAAQdMANgIcIAAgATYCFCAAICo2AgxBACEqDKkBCyAAKAIEISogAEEANgIEAkAgACAqIAEQp4CAgAAiKg0AIAEhAQxJCyAAQeUANgIcIAAgATYCFCAAICo2AgxBACEqDKgBCyAAKAIEIQEgAEEANgIEAkAgACABIC4Qp4CAgAAiAQ0AIC4hAQxBCyAAQdIANgIcIAAgLjYCFCAAIAE2AgxBACEqDKcBCyAAKAIEIQEgAEEANgIEAkAgACABIC4Qp4CAgAAiAQ0AIC4hAQxBCyAAQdMANgIcIAAgLjYCFCAAIAE2AgxBACEqDKYBCyAAKAIEIQEgAEEANgIEAkAgACABIC4Qp4CAgAAiAQ0AIC4hAQxGCyAAQeUANgIcIAAgLjYCFCAAIAE2AgxBACEqDKUBCyAAQQA2AhwgACAuNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhKgykAQsgAEEANgIcIAAgATYCFCAAQcOPgIAANgIQIABBBzYCDEEAISoMowELQQAhKiAAQQA2AhwgACAuNgIUIABBjJyAgAA2AhAgAEEHNgIMDKIBCyAAQQA2AhwgACAuNgIUIABBjJyAgAA2AhAgAEEHNgIMQQAhKgyhAQsgAEEANgIcIAAgLjYCFCAAQf6RgIAANgIQIABBBzYCDEEAISoMoAELIABBADYCHCAAIAE2AhQgAEGOm4CAADYCECAAQQY2AgxBACEqDJ8BCyAqQRVGDVsgAEEANgIcIAAgATYCFCAAQcyOgIAANgIQIABBIDYCDEEAISoMngELIABBADYCACAqIC5rQQZqIQFBJCEqCyAAICo6ACkgACgCBCEqIABBADYCBCAAICogARCrgICAACIqDVggASEBDEELIABBADYCAAtBACEqIABBADYCHCAAIAQ2AhQgAEHxm4CAADYCECAAQQY2AgwMmgELIAFBFUYNVCAAQQA2AhwgACAdNgIUIABB8IyAgAA2AhAgAEEbNgIMQQAhKgyZAQsgACgCBCEdIABBADYCBCAAIB0gKhCpgICAACIdDQEgKkEBaiEdC0GtASEqDH4LIABBwQE2AhwgACAdNgIMIAAgKkEBajYCFEEAISoMlgELIAAoAgQhHiAAQQA2AgQgACAeICoQqYCAgAAiHg0BICpBAWohHgtBrgEhKgx7CyAAQcIBNgIcIAAgHjYCDCAAICpBAWo2AhRBACEqDJMBCyAAQQA2AhwgACAfNgIUIABBl4uAgAA2AhAgAEENNgIMQQAhKgySAQsgAEEANgIcIAAgIDYCFCAAQeOQgIAANgIQIABBCTYCDEEAISoMkQELIABBADYCHCAAICA2AhQgAEGUjYCAADYCECAAQSE2AgxBACEqDJABC0EBIS9BACEyQQAhLkEBISoLIAAgKjoAKyAhQQFqISACQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAvRQ0DDAILIC4NAQwCCyAyRQ0BCyAAKAIEISogAEEANgIEIAAgKiAgEK2AgIAAIipFDUAgAEHJATYCHCAAICA2AhQgACAqNgIMQQAhKgyPAQsgACgCBCEBIABBADYCBCAAIAEgIBCtgICAACIBRQ15IABBygE2AhwgACAgNgIUIAAgATYCDEEAISoMjgELIAAoAgQhASAAQQA2AgQgACABICEQrYCAgAAiAUUNdyAAQcsBNgIcIAAgITYCFCAAIAE2AgxBACEqDI0BCyAAKAIEIQEgAEEANgIEIAAgASAiEK2AgIAAIgFFDXUgAEHNATYCHCAAICI2AhQgACABNgIMQQAhKgyMAQtBASEqCyAAICo6ACogI0EBaiEiDD0LIAAoAgQhASAAQQA2AgQgACABICMQrYCAgAAiAUUNcSAAQc8BNgIcIAAgIzYCFCAAIAE2AgxBACEqDIkBCyAAQQA2AhwgACAjNgIUIABBkLOAgAA2AhAgAEEINgIMIABBADYCAEEAISoMiAELIAFBFUYNQSAAQQA2AhwgACAkNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhKgyHAQsgAEEANgIAIABBgQQ7ASggACgCBCEqIABBADYCBCAAICogJSAka0ECaiIkEKuAgIAAIipFDTogAEHTATYCHCAAICQ2AhQgACAqNgIMQQAhKgyGAQsgAEEANgIAC0EAISogAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyEAQsgAEEANgIAIAAoAgQhKiAAQQA2AgQgACAqICYgI2tBA2oiIxCrgICAACIqDQFBxgEhKgxqCyAAQQI6ACgMVwsgAEHVATYCHCAAICM2AhQgACAqNgIMQQAhKgyBAQsgKkEVRg05IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEqDIABCyAALQA0QQFHDTYgACAEIAIQvICAgAAiKkUNNiAqQRVHDTcgAEHcATYCHCAAIAQ2AhQgAEHVloCAADYCECAAQRU2AgxBACEqDH8LQQAhKiAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAuQQFqNgIUDH4LQQAhKgxkC0ECISoMYwtBDSEqDGILQQ8hKgxhC0ElISoMYAtBEyEqDF8LQRUhKgxeC0EWISoMXQtBFyEqDFwLQRghKgxbC0EZISoMWgtBGiEqDFkLQRshKgxYC0EcISoMVwtBHSEqDFYLQR8hKgxVC0EhISoMVAtBIyEqDFMLQcYAISoMUgtBLiEqDFELQS8hKgxQC0E7ISoMTwtBPSEqDE4LQcgAISoMTQtByQAhKgxMC0HLACEqDEsLQcwAISoMSgtBzgAhKgxJC0HPACEqDEgLQdEAISoMRwtB1QAhKgxGC0HYACEqDEULQdkAISoMRAtB2wAhKgxDC0HkACEqDEILQeUAISoMQQtB8QAhKgxAC0H0ACEqDD8LQY0BISoMPgtBlwEhKgw9C0GpASEqDDwLQawBISoMOwtBwAEhKgw6C0G5ASEqDDkLQa8BISoMOAtBsQEhKgw3C0GyASEqDDYLQbQBISoMNQtBtQEhKgw0C0G2ASEqDDMLQboBISoMMgtBvQEhKgwxC0G/ASEqDDALQcEBISoMLwsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAISoMRwsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEqDEYLIABB+AA2AhwgACAkNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhKgxFCyAAQdEANgIcIAAgHTYCFCAAQbCXgIAANgIQIABBFTYCDEEAISoMRAsgAEH5ADYCHCAAIAE2AhQgACAqNgIMQQAhKgxDCyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAISoMQgsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEqDEELIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhKgxACyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhKgw/CyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAISoMPgsgAEEANgIEIAAgKSApELGAgIAAIgFFDQEgAEE6NgIcIAAgATYCDCAAIClBAWo2AhRBACEqDD0LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhKgw9CyABQQFqIQEMLAsgKUEBaiEBDCwLIABBADYCHCAAICk2AhQgAEHkkoCAADYCECAAQQQ2AgxBACEqDDoLIABBNjYCHCAAIAE2AhQgACAENgIMQQAhKgw5CyAAQS42AhwgACAoNgIUIAAgATYCDEEAISoMOAsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEqDDcLICdBAWohAQwrCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhKgw1CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhKgw0CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhKgwzCyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhKgwyCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhKgwxCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhKgwwCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhKgwvCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhKgwuCyAAQQA2AhwgACAqNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhKgwtCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhKgwsCyAAQQA2AgAgBCAua0EFaiEjC0G4ASEqDBELIABBADYCACAqIC5rQQJqIQFB9QAhKgwQCyABIQECQCAALQApQQVHDQBB4wAhKgwQC0HiACEqDA8LQQAhKiAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAuQQFqNgIUDCcLIABBADYCACAyIC9rQQJqIQFBwAAhKgwNCyABIQELQTghKgwLCwJAIAEiKSACRg0AA0ACQCApLQAAQYC+gIAAai0AACIBQQFGDQAgAUECRw0DIClBAWohAQwECyApQQFqIikgAkcNAAtBPiEqDCQLQT4hKgwjCyAAQQA6ACwgKSEBDAELQQshKgwIC0E6ISoMBwsgAUEBaiEBQS0hKgwGC0EoISoMBQsgAEEANgIAIC8gMGtBBGohAUEGISoLIAAgKjoALCABIQFBDCEqDAMLIABBADYCACAyIC9rQQdqIQFBCiEqDAILIABBADYCAAsgAEEAOgAsICchAUEJISoMAAsLQQAhKiAAQQA2AhwgACAjNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhKiAAQQA2AhwgACAiNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhKiAAQQA2AhwgACAhNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhKiAAQQA2AhwgACAgNgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhKiAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhKiAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhKiAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhKiAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhKiAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhKiAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhKiAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhKiAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhKiAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhKiAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhKiAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhKiAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhKiAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEqDAYLQQEhKgwFC0HUACEqIAEiASACRg0EIANBCGogACABIAJB2MKAgABBChDFgICAACADKAIMIQEgAygCCA4DAQQCAAsQy4CAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACABQQFqNgIUQQAhKgwCCyAAQQA2AhwgACABNgIUIABBypqAgAA2AhAgAEEJNgIMQQAhKgwBCwJAIAEiASACRw0AQSIhKgwBCyAAQYmAgIAANgIIIAAgATYCBEEhISoLIANBEGokgICAgAAgKguvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC5U3AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQyoCAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACIANrQUhqIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACAENgKg0ICAAEEAIAM2ApTQgIAAIAJBgNSEgABqQUxqQTg2AgALAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQAgA0EBcSAEckEBcyIFQQN0IgBBuNCAgABqKAIAIgRBCGohAwJAAkAgBCgCCCICIABBsNCAgABqIgBHDQBBACAGQX4gBXdxNgKI0ICAAAwBCyAAIAI2AgggAiAANgIMCyAEIAVBA3QiBUEDcjYCBCAEIAVqQQRqIgQgBCgCAEEBcjYCAAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgVBA3QiAEG40ICAAGooAgAiBCgCCCIDIABBsNCAgABqIgBHDQBBACAGQX4gBXdxIgY2AojQgIAADAELIAAgAzYCCCADIAA2AgwLIARBCGohAyAEIAJBA3I2AgQgBCAFQQN0IgVqIAUgAmsiBTYCACAEIAJqIgAgBUEBcjYCBAJAIAdFDQAgB0EDdiIIQQN0QbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAIdCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIIC0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNAEEAKAKY0ICAACAAKAIIIgNLGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AQQAoApjQgIAAIAgoAggiA0saIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgAyAEakEEaiIDIAMoAgBBAXI2AgBBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQyoCAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQyoCAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMqAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDKgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDKgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDKgICAACEAQQAQyoCAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGIANrQUhqIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACAENgKg0ICAAEEAIAM2ApTQgIAAIAYgAGpBTGpBODYCAAwCCyADLQAMQQhxDQAgBSAESw0AIAAgBE0NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAsgBGpBBGpBODYCAAwBCwJAIABBACgCmNCAgAAiC08NAEEAIAA2ApjQgIAAIAAhCwsgACAGaiEIQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgCEYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiBiACQQNyNgIEIAhBeCAIa0EPcUEAIAhBCGpBD3EbaiIIIAYgAmoiAmshBQJAIAQgCEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgBWoiAzYClNCAgAAgAiADQQFyNgIEDAMLAkBBACgCnNCAgAAgCEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgBWoiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAgoAgQiA0EDcUEBRw0AIANBeHEhBwJAAkAgA0H/AUsNACAIKAIIIgQgA0EDdiILQQN0QbDQgIAAaiIARhoCQCAIKAIMIgMgBEcNAEEAQQAoAojQgIAAQX4gC3dxNgKI0ICAAAwCCyADIABGGiADIAQ2AgggBCADNgIMDAELIAgoAhghCQJAAkAgCCgCDCIAIAhGDQAgCyAIKAIIIgNLGiAAIAM2AgggAyAANgIMDAELAkAgCEEUaiIDKAIAIgQNACAIQRBqIgMoAgAiBA0AQQAhAAwBCwNAIAMhCyAEIgBBFGoiAygCACIEDQAgAEEQaiEDIAAoAhAiBA0ACyALQQA2AgALIAlFDQACQAJAIAgoAhwiBEECdEG40oCAAGoiAygCACAIRw0AIAMgADYCACAADQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAIRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgCCgCECIDRQ0AIAAgAzYCECADIAA2AhgLIAgoAhQiA0UNACAAQRRqIAM2AgAgAyAANgIYCyAHIAVqIQUgCCAHaiEICyAIIAgoAgRBfnE2AgQgAiAFaiAFNgIAIAIgBUEBcjYCBAJAIAVB/wFLDQAgBUEDdiIEQQN0QbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBHQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgAjYCDCADIAI2AgggAiADNgIMIAIgBDYCCAwDC0EfIQMCQCAFQf///wdLDQAgBUEIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIAIABBgIAPakEQdkECcSIAdEEPdiADIARyIAByayIDQQF0IAUgA0EVanZBAXFyQRxqIQMLIAIgAzYCHCACQgA3AhAgA0ECdEG40oCAAGohBAJAQQAoAozQgIAAIgBBASADdCIIcQ0AIAQgAjYCAEEAIAAgCHI2AozQgIAAIAIgBDYCGCACIAI2AgggAiACNgIMDAMLIAVBAEEZIANBAXZrIANBH0YbdCEDIAQoAgAhAANAIAAiBCgCBEF4cSAFRg0CIANBHXYhACADQQF0IQMgBCAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBDYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBiADa0FIaiIDQQFyNgIEIAhBTGpBODYCACAEIAVBNyAFa0EPcUEAIAVBSWpBD3EbakFBaiIIIAggBEEQakkbIghBIzYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAs2AqDQgIAAQQAgAzYClNCAgAAgCEEQakEAKQLQ04CAADcCACAIQQApAsjTgIAANwIIQQAgCEEIajYC0NOAgABBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBADYC1NOAgAAgCEEkaiEDA0AgA0EHNgIAIAUgA0EEaiIDSw0ACyAIIARGDQMgCCAIKAIEQX5xNgIEIAggCCAEayIGNgIAIAQgBkEBcjYCBAJAIAZB/wFLDQAgBkEDdiIFQQN0QbDQgIAAaiEDAkACQEEAKAKI0ICAACIAQQEgBXQiBXENAEEAIAAgBXI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAGQf///wdLDQAgBkEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiADIAVyIAByayIDQQF0IAYgA0EVanZBAXFyQRxqIQMLIARCADcCECAEQRxqIAM2AgAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASADdCIIcQ0AIAUgBDYCAEEAIAAgCHI2AozQgIAAIARBGGogBTYCACAEIAQ2AgggBCAENgIMDAQLIAZBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAANAIAAiBSgCBEF4cSAGRg0DIANBHXYhACADQQF0IQMgBSAAQQRxakEQaiIIKAIAIgANAAsgCCAENgIAIARBGGogBTYCACAEIAQ2AgwgBCAENgIIDAMLIAQoAggiAyACNgIMIAQgAjYCCCACQQA2AhggAiAENgIMIAIgAzYCCAsgBkEIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQRhqQQA2AgAgBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgAyAIakEEaiIDIAMoAgBBAXI2AgAMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEEDdiIEQQN0QbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBHQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAMgAGpBBGoiAyADKAIAQQFyNgIADAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBA3YiCEEDdEGw0ICAAGohAkEAKAKc0ICAACEDAkACQEEBIAh0IgggBnENAEEAIAggBnI2AojQgIAAIAIhCAwBCyACKAIIIQgLIAggAzYCDCACIAM2AgggAyACNgIMIAMgCDYCCAtBACAFNgKc0ICAAEEAIAQ2ApDQgIAACyAAQQhqIQMLIAFBEGokgICAgAAgAwsKACAAEMmAgIAAC/ANAQd/AkAgAEUNACAAQXhqIgEgAEF8aigCACICQXhxIgBqIQMCQCACQQFxDQAgAkEDcUUNASABIAEoAgAiAmsiAUEAKAKY0ICAACIESQ0BIAIgAGohAAJAQQAoApzQgIAAIAFGDQACQCACQf8BSw0AIAEoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAEoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAMLIAIgBkYaIAIgBDYCCCAEIAI2AgwMAgsgASgCGCEHAkACQCABKAIMIgYgAUYNACAEIAEoAggiAksaIAYgAjYCCCACIAY2AgwMAQsCQCABQRRqIgIoAgAiBA0AIAFBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAQJAAkAgASgCHCIEQQJ0QbjSgIAAaiICKAIAIAFHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwDCyAHQRBBFCAHKAIQIAFGG2ogBjYCACAGRQ0CCyAGIAc2AhgCQCABKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgASgCFCICRQ0BIAZBFGogAjYCACACIAY2AhgMAQsgAygCBCICQQNxQQNHDQAgAyACQX5xNgIEQQAgADYCkNCAgAAgASAAaiAANgIAIAEgAEEBcjYCBA8LIAMgAU0NACADKAIEIgJBAXFFDQACQAJAIAJBAnENAAJAQQAoAqDQgIAAIANHDQBBACABNgKg0ICAAEEAQQAoApTQgIAAIABqIgA2ApTQgIAAIAEgAEEBcjYCBCABQQAoApzQgIAARw0DQQBBADYCkNCAgABBAEEANgKc0ICAAA8LAkBBACgCnNCAgAAgA0cNAEEAIAE2ApzQgIAAQQBBACgCkNCAgAAgAGoiADYCkNCAgAAgASAAQQFyNgIEIAEgAGogADYCAA8LIAJBeHEgAGohAAJAAkAgAkH/AUsNACADKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCADKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwCCyACIAZGGiACIAQ2AgggBCACNgIMDAELIAMoAhghBwJAAkAgAygCDCIGIANGDQBBACgCmNCAgAAgAygCCCICSxogBiACNgIIIAIgBjYCDAwBCwJAIANBFGoiAigCACIEDQAgA0EQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0AAkACQCADKAIcIgRBAnRBuNKAgABqIgIoAgAgA0cNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAILIAdBEEEUIAcoAhAgA0YbaiAGNgIAIAZFDQELIAYgBzYCGAJAIAMoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyADKAIUIgJFDQAgBkEUaiACNgIAIAIgBjYCGAsgASAAaiAANgIAIAEgAEEBcjYCBCABQQAoApzQgIAARw0BQQAgADYCkNCAgAAPCyADIAJBfnE2AgQgASAAaiAANgIAIAEgAEEBcjYCBAsCQCAAQf8BSw0AIABBA3YiAkEDdEGw0ICAAGohAAJAAkBBACgCiNCAgAAiBEEBIAJ0IgJxDQBBACAEIAJyNgKI0ICAACAAIQIMAQsgACgCCCECCyACIAE2AgwgACABNgIIIAEgADYCDCABIAI2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAFCADcCECABQRxqIAI2AgAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgAUEYaiAENgIAIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABQRhqIAQ2AgAgASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEYakEANgIAIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLTgACQCAADQA/AEEQdA8LAkAgAEH//wNxDQAgAEF/TA0AAkAgAEEQdkAAIgBBf0cNAEEAQTA2AvjTgIAAQX8PCyAAQRB0DwsQy4CAgAAACwQAAAAL+wICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMAIAFBGGogBjcDACABQRBqIAY3AwAgAUEIaiAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8=';\n\x09return llhttp_simdWasm;\n}\n\n/* global WebAssembly */\n\nconst assert$4 = require$$0;\nconst net = require$$4;\nconst util$d = util$i;\nconst timers = timers$1;\nconst Request$1 = request$2;\nconst DispatcherBase$2 = dispatcherBase;\nconst {\n  RequestContentLengthMismatchError\x2C\n  ResponseContentLengthMismatchError\x2C\n  InvalidArgumentError: InvalidArgumentError$d\x2C\n  RequestAbortedError: RequestAbortedError$7\x2C\n  HeadersTimeoutError\x2C\n  HeadersOverflowError\x2C\n  SocketError: SocketError$2\x2C\n  InformationalError\x2C\n  BodyTimeoutError\x2C\n  HTTPParserError\x2C\n  ResponseExceededMaxSizeError\x2C\n  ClientDestroyedError\n} = errors$1;\nconst buildConnector$1 = connect$2;\nconst {\n  kUrl: kUrl$2\x2C\n  kReset\x2C\n  kServerName\x2C\n  kClient\x2C\n  kBusy: kBusy$1\x2C\n  kParser\x2C\n  kConnect\x2C\n  kBlocking\x2C\n  kResuming\x2C\n  kRunning: kRunning$3\x2C\n  kPending: kPending$2\x2C\n  kSize: kSize$4\x2C\n  kWriting\x2C\n  kQueue: kQueue$1\x2C\n  kConnected: kConnected$5\x2C\n  kConnecting\x2C\n  kNeedDrain: kNeedDrain$2\x2C\n  kNoRef\x2C\n  kKeepAliveDefaultTimeout\x2C\n  kHostHeader\x2C\n  kPendingIdx\x2C\n  kRunningIdx\x2C\n  kError\x2C\n  kPipelining\x2C\n  kSocket\x2C\n  kKeepAliveTimeoutValue\x2C\n  kMaxHeadersSize\x2C\n  kKeepAliveMaxTimeout\x2C\n  kKeepAliveTimeoutThreshold\x2C\n  kHeadersTimeout\x2C\n  kBodyTimeout\x2C\n  kStrictContentLength\x2C\n  kConnector\x2C\n  kMaxRedirections: kMaxRedirections$1\x2C\n  kMaxRequests\x2C\n  kCounter\x2C\n  kClose: kClose$4\x2C\n  kDestroy: kDestroy$2\x2C\n  kDispatch: kDispatch$2\x2C\n  kInterceptors: kInterceptors$2\x2C\n  kLocalAddress\x2C\n  kMaxResponseSize\n} = symbols$3;\nconst FastBuffer = Buffer[Symbol.species];\n\nconst kClosedResolve$1 = Symbol('kClosedResolve');\n\nconst channels = {};\n\ntry {\n  const diagnosticsChannel = require('diagnostics_channel');\n  channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders');\n  channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect');\n  channels.connectError = diagnosticsChannel.channel('undici:client:connectError');\n  channels.connected = diagnosticsChannel.channel('undici:client:connected');\n} catch {\n  channels.sendHeaders = { hasSubscribers: false };\n  channels.beforeConnect = { hasSubscribers: false };\n  channels.connectError = { hasSubscribers: false };\n  channels.connected = { hasSubscribers: false };\n}\n\n/**\n * @type {import('../types/client').default}\n */\nlet Client$3 = class Client extends DispatcherBase$2 {\n  /**\n   *\n   * @param {string|URL} url\n   * @param {import('../types/client').Client.Options} options\n   */\n  constructor (url\x2C {\n    interceptors\x2C\n    maxHeaderSize\x2C\n    headersTimeout\x2C\n    socketTimeout\x2C\n    requestTimeout\x2C\n    connectTimeout\x2C\n    bodyTimeout\x2C\n    idleTimeout\x2C\n    keepAlive\x2C\n    keepAliveTimeout\x2C\n    maxKeepAliveTimeout\x2C\n    keepAliveMaxTimeout\x2C\n    keepAliveTimeoutThreshold\x2C\n    socketPath\x2C\n    pipelining\x2C\n    tls\x2C\n    strictContentLength\x2C\n    maxCachedSessions\x2C\n    maxRedirections\x2C\n    connect\x2C\n    maxRequestsPerClient\x2C\n    localAddress\x2C\n    maxResponseSize\x2C\n    autoSelectFamily\x2C\n    autoSelectFamilyAttemptTimeout\n  } = {}) {\n    super();\n\n    if (keepAlive !== undefined) {\n      throw new InvalidArgumentError$d('unsupported keepAlive\x2C use pipelining=0 instead')\n    }\n\n    if (socketTimeout !== undefined) {\n      throw new InvalidArgumentError$d('unsupported socketTimeout\x2C use headersTimeout & bodyTimeout instead')\n    }\n\n    if (requestTimeout !== undefined) {\n      throw new InvalidArgumentError$d('unsupported requestTimeout\x2C use headersTimeout & bodyTimeout instead')\n    }\n\n    if (idleTimeout !== undefined) {\n      throw new InvalidArgumentError$d('unsupported idleTimeout\x2C use keepAliveTimeout instead')\n    }\n\n    if (maxKeepAliveTimeout !== undefined) {\n      throw new InvalidArgumentError$d('unsupported maxKeepAliveTimeout\x2C use keepAliveMaxTimeout instead')\n    }\n\n    if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n      throw new InvalidArgumentError$d('invalid maxHeaderSize')\n    }\n\n    if (socketPath != null && typeof socketPath !== 'string') {\n      throw new InvalidArgumentError$d('invalid socketPath')\n    }\n\n    if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n      throw new InvalidArgumentError$d('invalid connectTimeout')\n    }\n\n    if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n      throw new InvalidArgumentError$d('invalid keepAliveTimeout')\n    }\n\n    if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n      throw new InvalidArgumentError$d('invalid keepAliveMaxTimeout')\n    }\n\n    if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n      throw new InvalidArgumentError$d('invalid keepAliveTimeoutThreshold')\n    }\n\n    if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n      throw new InvalidArgumentError$d('headersTimeout must be a positive integer or zero')\n    }\n\n    if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n      throw new InvalidArgumentError$d('bodyTimeout must be a positive integer or zero')\n    }\n\n    if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n      throw new InvalidArgumentError$d('connect must be a function or an object')\n    }\n\n    if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n      throw new InvalidArgumentError$d('maxRedirections must be a positive number')\n    }\n\n    if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n      throw new InvalidArgumentError$d('maxRequestsPerClient must be a positive number')\n    }\n\n    if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n      throw new InvalidArgumentError$d('localAddress must be valid string IP address')\n    }\n\n    if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n      throw new InvalidArgumentError$d('maxResponseSize must be a positive number')\n    }\n\n    if (\n      autoSelectFamilyAttemptTimeout != null &&\n      (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n    ) {\n      throw new InvalidArgumentError$d('autoSelectFamilyAttemptTimeout must be a positive number')\n    }\n\n    if (typeof connect !== 'function') {\n      connect = buildConnector$1({\n        ...tls\x2C\n        maxCachedSessions\x2C\n        socketPath\x2C\n        timeout: connectTimeout\x2C\n        ...(util$d.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily\x2C autoSelectFamilyAttemptTimeout } : undefined)\x2C\n        ...connect\n      });\n    }\n\n    this[kInterceptors$2] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n      ? interceptors.Client\n      : [createRedirectInterceptor$1({ maxRedirections })];\n    this[kUrl$2] = util$d.parseOrigin(url);\n    this[kConnector] = connect;\n    this[kSocket] = null;\n    this[kPipelining] = pipelining != null ? pipelining : 1;\n    this[kMaxHeadersSize] = maxHeaderSize || 16384;\n    this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout;\n    this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout;\n    this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold;\n    this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout];\n    this[kServerName] = null;\n    this[kLocalAddress] = localAddress != null ? localAddress : null;\n    this[kResuming] = 0; // 0\x2C idle\x2C 1\x2C scheduled\x2C 2 resuming\n    this[kNeedDrain$2] = 0; // 0\x2C idle\x2C 1\x2C scheduled\x2C 2 resuming\n    this[kHostHeader] = `host: ${this[kUrl$2].hostname}${this[kUrl$2].port ? `:${this[kUrl$2].port}` : ''}\\r\\n`;\n    this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3;\n    this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3;\n    this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength;\n    this[kMaxRedirections$1] = maxRedirections;\n    this[kMaxRequests] = maxRequestsPerClient;\n    this[kClosedResolve$1] = null;\n    this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1;\n\n    // kQueue is built up of 3 sections separated by\n    // the kRunningIdx and kPendingIdx indices.\n    // |   complete   |   running   |   pending   |\n    //                ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n    // kRunningIdx points to the first running element.\n    // kPendingIdx points to the first pending element.\n    // This implements a fast queue with an amortized\n    // time of O(1).\n\n    this[kQueue$1] = [];\n    this[kRunningIdx] = 0;\n    this[kPendingIdx] = 0;\n  }\n\n  get pipelining () {\n    return this[kPipelining]\n  }\n\n  set pipelining (value) {\n    this[kPipelining] = value;\n    resume(this\x2C true);\n  }\n\n  get [kPending$2] () {\n    return this[kQueue$1].length - this[kPendingIdx]\n  }\n\n  get [kRunning$3] () {\n    return this[kPendingIdx] - this[kRunningIdx]\n  }\n\n  get [kSize$4] () {\n    return this[kQueue$1].length - this[kRunningIdx]\n  }\n\n  get [kConnected$5] () {\n    return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n  }\n\n  get [kBusy$1] () {\n    const socket = this[kSocket];\n    return (\n      (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n      (this[kSize$4] >= (this[kPipelining] || 1)) ||\n      this[kPending$2] > 0\n    )\n  }\n\n  /* istanbul ignore: only used for test */\n  [kConnect] (cb) {\n    connect$1(this);\n    this.once('connect'\x2C cb);\n  }\n\n  [kDispatch$2] (opts\x2C handler) {\n    const origin = opts.origin || this[kUrl$2].origin;\n\n    const request = new Request$1(origin\x2C opts\x2C handler);\n\n    this[kQueue$1].push(request);\n    if (this[kResuming]) ; else if (util$d.bodyLength(request.body) == null && util$d.isIterable(request.body)) {\n      // Wait a tick in case stream/iterator is ended in the same tick.\n      this[kResuming] = 1;\n      process.nextTick(resume\x2C this);\n    } else {\n      resume(this\x2C true);\n    }\n\n    if (this[kResuming] && this[kNeedDrain$2] !== 2 && this[kBusy$1]) {\n      this[kNeedDrain$2] = 2;\n    }\n\n    return this[kNeedDrain$2] < 2\n  }\n\n  async [kClose$4] () {\n    return new Promise((resolve) => {\n      if (!this[kSize$4]) {\n        resolve(null);\n      } else {\n        this[kClosedResolve$1] = resolve;\n      }\n    })\n  }\n\n  async [kDestroy$2] (err) {\n    return new Promise((resolve) => {\n      const requests = this[kQueue$1].splice(this[kPendingIdx]);\n      for (let i = 0; i < requests.length; i++) {\n        const request = requests[i];\n        errorRequest(this\x2C request\x2C err);\n      }\n\n      const callback = () => {\n        if (this[kClosedResolve$1]) {\n          // TODO (fix): Should we error here with ClientDestroyedError?\n          this[kClosedResolve$1]();\n          this[kClosedResolve$1] = null;\n        }\n        resolve();\n      };\n\n      if (!this[kSocket]) {\n        queueMicrotask(callback);\n      } else {\n        util$d.destroy(this[kSocket].on('close'\x2C callback)\x2C err);\n      }\n\n      resume(this);\n    })\n  }\n};\n\nconst constants$2 = requireConstants$2();\nconst createRedirectInterceptor$1 = redirectInterceptor;\nconst EMPTY_BUF = Buffer.alloc(0);\n\nasync function lazyllhttp () {\n  const llhttpWasmData = process.env.JEST_WORKER_ID ? requireLlhttpWasm() : undefined;\n\n  let mod;\n  try {\n    mod = await WebAssembly.compile(Buffer.from(requireLlhttp_simdWasm()\x2C 'base64'));\n  } catch (e) {\n    /* istanbul ignore next */\n\n    // We could check if the error was caused by the simd option not\n    // being enabled\x2C but the occurring of this other error\n    // * https://github.com/emscripten-core/emscripten/issues/11495\n    // got me to remove that check to avoid breaking Node 12.\n    mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || requireLlhttpWasm()\x2C 'base64'));\n  }\n\n  return await WebAssembly.instantiate(mod\x2C {\n    env: {\n      /* eslint-disable camelcase */\n\n      wasm_on_url: (p\x2C at\x2C len) => {\n        /* istanbul ignore next */\n        return 0\n      }\x2C\n      wasm_on_status: (p\x2C at\x2C len) => {\n        assert$4.strictEqual(currentParser.ptr\x2C p);\n        const start = at - currentBufferPtr + currentBufferRef.byteOffset;\n        return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer\x2C start\x2C len)) || 0\n      }\x2C\n      wasm_on_message_begin: (p) => {\n        assert$4.strictEqual(currentParser.ptr\x2C p);\n        return currentParser.onMessageBegin() || 0\n      }\x2C\n      wasm_on_header_field: (p\x2C at\x2C len) => {\n        assert$4.strictEqual(currentParser.ptr\x2C p);\n        const start = at - currentBufferPtr + currentBufferRef.byteOffset;\n        return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer\x2C start\x2C len)) || 0\n      }\x2C\n      wasm_on_header_value: (p\x2C at\x2C len) => {\n        assert$4.strictEqual(currentParser.ptr\x2C p);\n        const start = at - currentBufferPtr + currentBufferRef.byteOffset;\n        return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer\x2C start\x2C len)) || 0\n      }\x2C\n      wasm_on_headers_complete: (p\x2C statusCode\x2C upgrade\x2C shouldKeepAlive) => {\n        assert$4.strictEqual(currentParser.ptr\x2C p);\n        return currentParser.onHeadersComplete(statusCode\x2C Boolean(upgrade)\x2C Boolean(shouldKeepAlive)) || 0\n      }\x2C\n      wasm_on_body: (p\x2C at\x2C len) => {\n        assert$4.strictEqual(currentParser.ptr\x2C p);\n        const start = at - currentBufferPtr + currentBufferRef.byteOffset;\n        return currentParser.onBody(new FastBuffer(currentBufferRef.buffer\x2C start\x2C len)) || 0\n      }\x2C\n      wasm_on_message_complete: (p) => {\n        assert$4.strictEqual(currentParser.ptr\x2C p);\n        return currentParser.onMessageComplete() || 0\n      }\n\n      /* eslint-enable camelcase */\n    }\n  })\n}\n\nlet llhttpInstance = null;\nlet llhttpPromise = lazyllhttp();\nllhttpPromise.catch();\n\nlet currentParser = null;\nlet currentBufferRef = null;\nlet currentBufferSize = 0;\nlet currentBufferPtr = null;\n\nconst TIMEOUT_HEADERS = 1;\nconst TIMEOUT_BODY = 2;\nconst TIMEOUT_IDLE = 3;\n\nclass Parser {\n  constructor (client\x2C socket\x2C { exports }) {\n    assert$4(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0);\n\n    this.llhttp = exports;\n    this.ptr = this.llhttp.llhttp_alloc(constants$2.TYPE.RESPONSE);\n    this.client = client;\n    this.socket = socket;\n    this.timeout = null;\n    this.timeoutValue = null;\n    this.timeoutType = null;\n    this.statusCode = null;\n    this.statusText = '';\n    this.upgrade = false;\n    this.headers = [];\n    this.headersSize = 0;\n    this.headersMaxSize = client[kMaxHeadersSize];\n    this.shouldKeepAlive = false;\n    this.paused = false;\n    this.resume = this.resume.bind(this);\n\n    this.bytesRead = 0;\n\n    this.keepAlive = '';\n    this.contentLength = '';\n    this.connection = '';\n    this.maxResponseSize = client[kMaxResponseSize];\n  }\n\n  setTimeout (value\x2C type) {\n    this.timeoutType = type;\n    if (value !== this.timeoutValue) {\n      timers.clearTimeout(this.timeout);\n      if (value) {\n        this.timeout = timers.setTimeout(onParserTimeout\x2C value\x2C this);\n        // istanbul ignore else: only for jest\n        if (this.timeout.unref) {\n          this.timeout.unref();\n        }\n      } else {\n        this.timeout = null;\n      }\n      this.timeoutValue = value;\n    } else if (this.timeout) {\n      // istanbul ignore else: only for jest\n      if (this.timeout.refresh) {\n        this.timeout.refresh();\n      }\n    }\n  }\n\n  resume () {\n    if (this.socket.destroyed || !this.paused) {\n      return\n    }\n\n    assert$4(this.ptr != null);\n    assert$4(currentParser == null);\n\n    this.llhttp.llhttp_resume(this.ptr);\n\n    assert$4(this.timeoutType === TIMEOUT_BODY);\n    if (this.timeout) {\n      // istanbul ignore else: only for jest\n      if (this.timeout.refresh) {\n        this.timeout.refresh();\n      }\n    }\n\n    this.paused = false;\n    this.execute(this.socket.read() || EMPTY_BUF); // Flush parser.\n    this.readMore();\n  }\n\n  readMore () {\n    while (!this.paused && this.ptr) {\n      const chunk = this.socket.read();\n      if (chunk === null) {\n        break\n      }\n      this.execute(chunk);\n    }\n  }\n\n  execute (data) {\n    assert$4(this.ptr != null);\n    assert$4(currentParser == null);\n    assert$4(!this.paused);\n\n    const { socket\x2C llhttp } = this;\n\n    if (data.length > currentBufferSize) {\n      if (currentBufferPtr) {\n        llhttp.free(currentBufferPtr);\n      }\n      currentBufferSize = Math.ceil(data.length / 4096) * 4096;\n      currentBufferPtr = llhttp.malloc(currentBufferSize);\n    }\n\n    new Uint8Array(llhttp.memory.buffer\x2C currentBufferPtr\x2C currentBufferSize).set(data);\n\n    // Call `execute` on the wasm parser.\n    // We pass the `llhttp_parser` pointer address\x2C the pointer address of buffer view data\x2C\n    // and finally the length of bytes to parse.\n    // The return value is an error code or `constants.ERROR.OK`.\n    try {\n      let ret;\n\n      try {\n        currentBufferRef = data;\n        currentParser = this;\n        ret = llhttp.llhttp_execute(this.ptr\x2C currentBufferPtr\x2C data.length);\n        /* eslint-disable-next-line no-useless-catch */\n      } catch (err) {\n        /* istanbul ignore next: difficult to make a test case for */\n        throw err\n      } finally {\n        currentParser = null;\n        currentBufferRef = null;\n      }\n\n      const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr;\n\n      if (ret === constants$2.ERROR.PAUSED_UPGRADE) {\n        this.onUpgrade(data.slice(offset));\n      } else if (ret === constants$2.ERROR.PAUSED) {\n        this.paused = true;\n        socket.unshift(data.slice(offset));\n      } else if (ret !== constants$2.ERROR.OK) {\n        const ptr = llhttp.llhttp_get_error_reason(this.ptr);\n        let message = '';\n        /* istanbul ignore else: difficult to make a test case for */\n        if (ptr) {\n          const len = new Uint8Array(llhttp.memory.buffer\x2C ptr).indexOf(0);\n          message = Buffer.from(llhttp.memory.buffer\x2C ptr\x2C len).toString();\n        }\n        throw new HTTPParserError(message\x2C constants$2.ERROR[ret]\x2C data.slice(offset))\n      }\n    } catch (err) {\n      util$d.destroy(socket\x2C err);\n    }\n  }\n\n  destroy () {\n    assert$4(this.ptr != null);\n    assert$4(currentParser == null);\n\n    this.llhttp.llhttp_free(this.ptr);\n    this.ptr = null;\n\n    timers.clearTimeout(this.timeout);\n    this.timeout = null;\n    this.timeoutValue = null;\n    this.timeoutType = null;\n\n    this.paused = false;\n  }\n\n  onStatus (buf) {\n    this.statusText = buf.toString();\n  }\n\n  onMessageBegin () {\n    const { socket\x2C client } = this;\n\n    /* istanbul ignore next: difficult to make a test case for */\n    if (socket.destroyed) {\n      return -1\n    }\n\n    const request = client[kQueue$1][client[kRunningIdx]];\n    if (!request) {\n      return -1\n    }\n  }\n\n  onHeaderField (buf) {\n    const len = this.headers.length;\n\n    if ((len & 1) === 0) {\n      this.headers.push(buf);\n    } else {\n      this.headers[len - 1] = Buffer.concat([this.headers[len - 1]\x2C buf]);\n    }\n\n    this.trackHeader(buf.length);\n  }\n\n  onHeaderValue (buf) {\n    let len = this.headers.length;\n\n    if ((len & 1) === 1) {\n      this.headers.push(buf);\n      len += 1;\n    } else {\n      this.headers[len - 1] = Buffer.concat([this.headers[len - 1]\x2C buf]);\n    }\n\n    const key = this.headers[len - 2];\n    if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n      this.keepAlive += buf.toString();\n    } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n      this.connection += buf.toString();\n    } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n      this.contentLength += buf.toString();\n    }\n\n    this.trackHeader(buf.length);\n  }\n\n  trackHeader (len) {\n    this.headersSize += len;\n    if (this.headersSize >= this.headersMaxSize) {\n      util$d.destroy(this.socket\x2C new HeadersOverflowError());\n    }\n  }\n\n  onUpgrade (head) {\n    const { upgrade\x2C client\x2C socket\x2C headers\x2C statusCode } = this;\n\n    assert$4(upgrade);\n\n    const request = client[kQueue$1][client[kRunningIdx]];\n    assert$4(request);\n\n    assert$4(!socket.destroyed);\n    assert$4(socket === client[kSocket]);\n    assert$4(!this.paused);\n    assert$4(request.upgrade || request.method === 'CONNECT');\n\n    this.statusCode = null;\n    this.statusText = '';\n    this.shouldKeepAlive = null;\n\n    assert$4(this.headers.length % 2 === 0);\n    this.headers = [];\n    this.headersSize = 0;\n\n    socket.unshift(head);\n\n    socket[kParser].destroy();\n    socket[kParser] = null;\n\n    socket[kClient] = null;\n    socket[kError] = null;\n    socket\n      .removeListener('error'\x2C onSocketError)\n      .removeListener('readable'\x2C onSocketReadable)\n      .removeListener('end'\x2C onSocketEnd)\n      .removeListener('close'\x2C onSocketClose);\n\n    client[kSocket] = null;\n    client[kQueue$1][client[kRunningIdx]++] = null;\n    client.emit('disconnect'\x2C client[kUrl$2]\x2C [client]\x2C new InformationalError('upgrade'));\n\n    try {\n      request.onUpgrade(statusCode\x2C headers\x2C socket);\n    } catch (err) {\n      util$d.destroy(socket\x2C err);\n    }\n\n    resume(client);\n  }\n\n  onHeadersComplete (statusCode\x2C upgrade\x2C shouldKeepAlive) {\n    const { client\x2C socket\x2C headers\x2C statusText } = this;\n\n    /* istanbul ignore next: difficult to make a test case for */\n    if (socket.destroyed) {\n      return -1\n    }\n\n    const request = client[kQueue$1][client[kRunningIdx]];\n\n    /* istanbul ignore next: difficult to make a test case for */\n    if (!request) {\n      return -1\n    }\n\n    assert$4(!this.upgrade);\n    assert$4(this.statusCode < 200);\n\n    if (statusCode === 100) {\n      util$d.destroy(socket\x2C new SocketError$2('bad response'\x2C util$d.getSocketInfo(socket)));\n      return -1\n    }\n\n    /* this can only happen if server is misbehaving */\n    if (upgrade && !request.upgrade) {\n      util$d.destroy(socket\x2C new SocketError$2('bad upgrade'\x2C util$d.getSocketInfo(socket)));\n      return -1\n    }\n\n    assert$4.strictEqual(this.timeoutType\x2C TIMEOUT_HEADERS);\n\n    this.statusCode = statusCode;\n    this.shouldKeepAlive = (\n      shouldKeepAlive ||\n      // Override llhttp value which does not allow keepAlive for HEAD.\n      (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n    );\n\n    if (this.statusCode >= 200) {\n      const bodyTimeout = request.bodyTimeout != null\n        ? request.bodyTimeout\n        : client[kBodyTimeout];\n      this.setTimeout(bodyTimeout\x2C TIMEOUT_BODY);\n    } else if (this.timeout) {\n      // istanbul ignore else: only for jest\n      if (this.timeout.refresh) {\n        this.timeout.refresh();\n      }\n    }\n\n    if (request.method === 'CONNECT') {\n      assert$4(client[kRunning$3] === 1);\n      this.upgrade = true;\n      return 2\n    }\n\n    if (upgrade) {\n      assert$4(client[kRunning$3] === 1);\n      this.upgrade = true;\n      return 2\n    }\n\n    assert$4(this.headers.length % 2 === 0);\n    this.headers = [];\n    this.headersSize = 0;\n\n    if (this.shouldKeepAlive && client[kPipelining]) {\n      const keepAliveTimeout = this.keepAlive ? util$d.parseKeepAliveTimeout(this.keepAlive) : null;\n\n      if (keepAliveTimeout != null) {\n        const timeout = Math.min(\n          keepAliveTimeout - client[kKeepAliveTimeoutThreshold]\x2C\n          client[kKeepAliveMaxTimeout]\n        );\n        if (timeout <= 0) {\n          socket[kReset] = true;\n        } else {\n          client[kKeepAliveTimeoutValue] = timeout;\n        }\n      } else {\n        client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout];\n      }\n    } else {\n      // Stop more requests from being dispatched.\n      socket[kReset] = true;\n    }\n\n    let pause;\n    try {\n      pause = request.onHeaders(statusCode\x2C headers\x2C this.resume\x2C statusText) === false;\n    } catch (err) {\n      util$d.destroy(socket\x2C err);\n      return -1\n    }\n\n    if (request.method === 'HEAD') {\n      return 1\n    }\n\n    if (statusCode < 200) {\n      return 1\n    }\n\n    if (socket[kBlocking]) {\n      socket[kBlocking] = false;\n      resume(client);\n    }\n\n    return pause ? constants$2.ERROR.PAUSED : 0\n  }\n\n  onBody (buf) {\n    const { client\x2C socket\x2C statusCode\x2C maxResponseSize } = this;\n\n    if (socket.destroyed) {\n      return -1\n    }\n\n    const request = client[kQueue$1][client[kRunningIdx]];\n    assert$4(request);\n\n    assert$4.strictEqual(this.timeoutType\x2C TIMEOUT_BODY);\n    if (this.timeout) {\n      // istanbul ignore else: only for jest\n      if (this.timeout.refresh) {\n        this.timeout.refresh();\n      }\n    }\n\n    assert$4(statusCode >= 200);\n\n    if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n      util$d.destroy(socket\x2C new ResponseExceededMaxSizeError());\n      return -1\n    }\n\n    this.bytesRead += buf.length;\n\n    try {\n      if (request.onData(buf) === false) {\n        return constants$2.ERROR.PAUSED\n      }\n    } catch (err) {\n      util$d.destroy(socket\x2C err);\n      return -1\n    }\n  }\n\n  onMessageComplete () {\n    const { client\x2C socket\x2C statusCode\x2C upgrade\x2C headers\x2C contentLength\x2C bytesRead\x2C shouldKeepAlive } = this;\n\n    if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n      return -1\n    }\n\n    if (upgrade) {\n      return\n    }\n\n    const request = client[kQueue$1][client[kRunningIdx]];\n    assert$4(request);\n\n    assert$4(statusCode >= 100);\n\n    this.statusCode = null;\n    this.statusText = '';\n    this.bytesRead = 0;\n    this.contentLength = '';\n    this.keepAlive = '';\n    this.connection = '';\n\n    assert$4(this.headers.length % 2 === 0);\n    this.headers = [];\n    this.headersSize = 0;\n\n    if (statusCode < 200) {\n      return\n    }\n\n    /* istanbul ignore next: should be handled by llhttp? */\n    if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength\x2C 10)) {\n      util$d.destroy(socket\x2C new ResponseContentLengthMismatchError());\n      return -1\n    }\n\n    try {\n      request.onComplete(headers);\n    } catch (err) {\n      errorRequest(client\x2C request\x2C err);\n    }\n\n    client[kQueue$1][client[kRunningIdx]++] = null;\n\n    if (socket[kWriting]) {\n      assert$4.strictEqual(client[kRunning$3]\x2C 0);\n      // Response completed before request.\n      util$d.destroy(socket\x2C new InformationalError('reset'));\n      return constants$2.ERROR.PAUSED\n    } else if (!shouldKeepAlive) {\n      util$d.destroy(socket\x2C new InformationalError('reset'));\n      return constants$2.ERROR.PAUSED\n    } else if (socket[kReset] && client[kRunning$3] === 0) {\n      // Destroy socket once all requests have completed.\n      // The request at the tail of the pipeline is the one\n      // that requested reset and no further requests should\n      // have been queued since then.\n      util$d.destroy(socket\x2C new InformationalError('reset'));\n      return constants$2.ERROR.PAUSED\n    } else if (client[kPipelining] === 1) {\n      // We must wait a full event loop cycle to reuse this socket to make sure\n      // that non-spec compliant servers are not closing the connection even if they\n      // said they won't.\n      setImmediate(resume\x2C client);\n    } else {\n      resume(client);\n    }\n  }\n}\n\nfunction onParserTimeout (parser) {\n  const { socket\x2C timeoutType\x2C client } = parser;\n\n  /* istanbul ignore else */\n  if (timeoutType === TIMEOUT_HEADERS) {\n    if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning$3] > 1) {\n      assert$4(!parser.paused\x2C 'cannot be paused while waiting for headers');\n      util$d.destroy(socket\x2C new HeadersTimeoutError());\n    }\n  } else if (timeoutType === TIMEOUT_BODY) {\n    if (!parser.paused) {\n      util$d.destroy(socket\x2C new BodyTimeoutError());\n    }\n  } else if (timeoutType === TIMEOUT_IDLE) {\n    assert$4(client[kRunning$3] === 0 && client[kKeepAliveTimeoutValue]);\n    util$d.destroy(socket\x2C new InformationalError('socket idle timeout'));\n  }\n}\n\nfunction onSocketReadable () {\n  const { [kParser]: parser } = this;\n  parser.readMore();\n}\n\nfunction onSocketError (err) {\n  const { [kParser]: parser } = this;\n\n  assert$4(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID');\n\n  // On Mac OS\x2C we get an ECONNRESET even if there is a full body to be forwarded\n  // to the user.\n  if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n    // We treat all incoming data so for as a valid response.\n    parser.onMessageComplete();\n    return\n  }\n\n  this[kError] = err;\n\n  onError(this[kClient]\x2C err);\n}\n\nfunction onError (client\x2C err) {\n  if (\n    client[kRunning$3] === 0 &&\n    err.code !== 'UND_ERR_INFO' &&\n    err.code !== 'UND_ERR_SOCKET'\n  ) {\n    // Error is not caused by running request and not a recoverable\n    // socket error.\n\n    assert$4(client[kPendingIdx] === client[kRunningIdx]);\n\n    const requests = client[kQueue$1].splice(client[kRunningIdx]);\n    for (let i = 0; i < requests.length; i++) {\n      const request = requests[i];\n      errorRequest(client\x2C request\x2C err);\n    }\n    assert$4(client[kSize$4] === 0);\n  }\n}\n\nfunction onSocketEnd () {\n  const { [kParser]: parser } = this;\n\n  if (parser.statusCode && !parser.shouldKeepAlive) {\n    // We treat all incoming data so far as a valid response.\n    parser.onMessageComplete();\n    return\n  }\n\n  util$d.destroy(this\x2C new SocketError$2('other side closed'\x2C util$d.getSocketInfo(this)));\n}\n\nfunction onSocketClose () {\n  const { [kClient]: client } = this;\n\n  if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n    // We treat all incoming data so far as a valid response.\n    this[kParser].onMessageComplete();\n  }\n\n  this[kParser].destroy();\n  this[kParser] = null;\n\n  const err = this[kError] || new SocketError$2('closed'\x2C util$d.getSocketInfo(this));\n\n  client[kSocket] = null;\n\n  if (client.destroyed) {\n    assert$4(client[kPending$2] === 0);\n\n    // Fail entire queue.\n    const requests = client[kQueue$1].splice(client[kRunningIdx]);\n    for (let i = 0; i < requests.length; i++) {\n      const request = requests[i];\n      errorRequest(client\x2C request\x2C err);\n    }\n  } else if (client[kRunning$3] > 0 && err.code !== 'UND_ERR_INFO') {\n    // Fail head of pipeline.\n    const request = client[kQueue$1][client[kRunningIdx]];\n    client[kQueue$1][client[kRunningIdx]++] = null;\n\n    errorRequest(client\x2C request\x2C err);\n  }\n\n  client[kPendingIdx] = client[kRunningIdx];\n\n  assert$4(client[kRunning$3] === 0);\n\n  client.emit('disconnect'\x2C client[kUrl$2]\x2C [client]\x2C err);\n\n  resume(client);\n}\n\nasync function connect$1 (client) {\n  assert$4(!client[kConnecting]);\n  assert$4(!client[kSocket]);\n\n  let { host\x2C hostname\x2C protocol\x2C port } = client[kUrl$2];\n\n  // Resolve ipv6\n  if (hostname[0] === '[') {\n    const idx = hostname.indexOf(']');\n\n    assert$4(idx !== -1);\n    const ip = hostname.substr(1\x2C idx - 1);\n\n    assert$4(net.isIP(ip));\n    hostname = ip;\n  }\n\n  client[kConnecting] = true;\n\n  if (channels.beforeConnect.hasSubscribers) {\n    channels.beforeConnect.publish({\n      connectParams: {\n        host\x2C\n        hostname\x2C\n        protocol\x2C\n        port\x2C\n        servername: client[kServerName]\x2C\n        localAddress: client[kLocalAddress]\n      }\x2C\n      connector: client[kConnector]\n    });\n  }\n\n  try {\n    const socket = await new Promise((resolve\x2C reject) => {\n      client[kConnector]({\n        host\x2C\n        hostname\x2C\n        protocol\x2C\n        port\x2C\n        servername: client[kServerName]\x2C\n        localAddress: client[kLocalAddress]\n      }\x2C (err\x2C socket) => {\n        if (err) {\n          reject(err);\n        } else {\n          resolve(socket);\n        }\n      });\n    });\n\n    if (client.destroyed) {\n      util$d.destroy(socket.on('error'\x2C () => {})\x2C new ClientDestroyedError());\n      return\n    }\n\n    if (!llhttpInstance) {\n      llhttpInstance = await llhttpPromise;\n      llhttpPromise = null;\n    }\n\n    client[kConnecting] = false;\n\n    assert$4(socket);\n\n    socket[kNoRef] = false;\n    socket[kWriting] = false;\n    socket[kReset] = false;\n    socket[kBlocking] = false;\n    socket[kError] = null;\n    socket[kParser] = new Parser(client\x2C socket\x2C llhttpInstance);\n    socket[kClient] = client;\n    socket[kCounter] = 0;\n    socket[kMaxRequests] = client[kMaxRequests];\n    socket\n      .on('error'\x2C onSocketError)\n      .on('readable'\x2C onSocketReadable)\n      .on('end'\x2C onSocketEnd)\n      .on('close'\x2C onSocketClose);\n\n    client[kSocket] = socket;\n\n    if (channels.connected.hasSubscribers) {\n      channels.connected.publish({\n        connectParams: {\n          host\x2C\n          hostname\x2C\n          protocol\x2C\n          port\x2C\n          servername: client[kServerName]\x2C\n          localAddress: client[kLocalAddress]\n        }\x2C\n        connector: client[kConnector]\x2C\n        socket\n      });\n    }\n    client.emit('connect'\x2C client[kUrl$2]\x2C [client]);\n  } catch (err) {\n    if (client.destroyed) {\n      return\n    }\n\n    client[kConnecting] = false;\n\n    if (channels.connectError.hasSubscribers) {\n      channels.connectError.publish({\n        connectParams: {\n          host\x2C\n          hostname\x2C\n          protocol\x2C\n          port\x2C\n          servername: client[kServerName]\x2C\n          localAddress: client[kLocalAddress]\n        }\x2C\n        connector: client[kConnector]\x2C\n        error: err\n      });\n    }\n\n    if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n      assert$4(client[kRunning$3] === 0);\n      while (client[kPending$2] > 0 && client[kQueue$1][client[kPendingIdx]].servername === client[kServerName]) {\n        const request = client[kQueue$1][client[kPendingIdx]++];\n        errorRequest(client\x2C request\x2C err);\n      }\n    } else {\n      onError(client\x2C err);\n    }\n\n    client.emit('connectionError'\x2C client[kUrl$2]\x2C [client]\x2C err);\n  }\n\n  resume(client);\n}\n\nfunction emitDrain (client) {\n  client[kNeedDrain$2] = 0;\n  client.emit('drain'\x2C client[kUrl$2]\x2C [client]);\n}\n\nfunction resume (client\x2C sync) {\n  if (client[kResuming] === 2) {\n    return\n  }\n\n  client[kResuming] = 2;\n\n  _resume(client\x2C sync);\n  client[kResuming] = 0;\n\n  if (client[kRunningIdx] > 256) {\n    client[kQueue$1].splice(0\x2C client[kRunningIdx]);\n    client[kPendingIdx] -= client[kRunningIdx];\n    client[kRunningIdx] = 0;\n  }\n}\n\nfunction _resume (client\x2C sync) {\n  while (true) {\n    if (client.destroyed) {\n      assert$4(client[kPending$2] === 0);\n      return\n    }\n\n    if (client[kClosedResolve$1] && !client[kSize$4]) {\n      client[kClosedResolve$1]();\n      client[kClosedResolve$1] = null;\n      return\n    }\n\n    const socket = client[kSocket];\n\n    if (socket && !socket.destroyed) {\n      if (client[kSize$4] === 0) {\n        if (!socket[kNoRef] && socket.unref) {\n          socket.unref();\n          socket[kNoRef] = true;\n        }\n      } else if (socket[kNoRef] && socket.ref) {\n        socket.ref();\n        socket[kNoRef] = false;\n      }\n\n      if (client[kSize$4] === 0) {\n        if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n          socket[kParser].setTimeout(client[kKeepAliveTimeoutValue]\x2C TIMEOUT_IDLE);\n        }\n      } else if (client[kRunning$3] > 0 && socket[kParser].statusCode < 200) {\n        if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n          const request = client[kQueue$1][client[kRunningIdx]];\n          const headersTimeout = request.headersTimeout != null\n            ? request.headersTimeout\n            : client[kHeadersTimeout];\n          socket[kParser].setTimeout(headersTimeout\x2C TIMEOUT_HEADERS);\n        }\n      }\n    }\n\n    if (client[kBusy$1]) {\n      client[kNeedDrain$2] = 2;\n    } else if (client[kNeedDrain$2] === 2) {\n      if (sync) {\n        client[kNeedDrain$2] = 1;\n        process.nextTick(emitDrain\x2C client);\n      } else {\n        emitDrain(client);\n      }\n      continue\n    }\n\n    if (client[kPending$2] === 0) {\n      return\n    }\n\n    if (client[kRunning$3] >= (client[kPipelining] || 1)) {\n      return\n    }\n\n    const request = client[kQueue$1][client[kPendingIdx]];\n\n    if (client[kUrl$2].protocol === 'https:' && client[kServerName] !== request.servername) {\n      if (client[kRunning$3] > 0) {\n        return\n      }\n\n      client[kServerName] = request.servername;\n\n      if (socket && socket.servername !== request.servername) {\n        util$d.destroy(socket\x2C new InformationalError('servername changed'));\n        return\n      }\n    }\n\n    if (client[kConnecting]) {\n      return\n    }\n\n    if (!socket) {\n      connect$1(client);\n      return\n    }\n\n    if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n      return\n    }\n\n    if (client[kRunning$3] > 0 && !request.idempotent) {\n      // Non-idempotent request cannot be retried.\n      // Ensure that no other requests are inflight and\n      // could cause failure.\n      return\n    }\n\n    if (client[kRunning$3] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n      // Don't dispatch an upgrade until all preceding requests have completed.\n      // A misbehaving server might upgrade the connection before all pipelined\n      // request has completed.\n      return\n    }\n\n    if (util$d.isStream(request.body) && util$d.bodyLength(request.body) === 0) {\n      request.body\n        .on('data'\x2C /* istanbul ignore next */ function () {\n          /* istanbul ignore next */\n          assert$4(false);\n        })\n        .on('error'\x2C function (err) {\n          errorRequest(client\x2C request\x2C err);\n        })\n        .on('end'\x2C function () {\n          util$d.destroy(this);\n        });\n\n      request.body = null;\n    }\n\n    if (client[kRunning$3] > 0 &&\n      (util$d.isStream(request.body) || util$d.isAsyncIterable(request.body))) {\n      // Request with stream or iterator body can error while other requests\n      // are inflight and indirectly error those as well.\n      // Ensure this doesn't happen by waiting for inflight\n      // to complete before dispatching.\n\n      // Request with stream or iterator body cannot be retried.\n      // Ensure that no other requests are inflight and\n      // could cause failure.\n      return\n    }\n\n    if (!request.aborted && write(client\x2C request)) {\n      client[kPendingIdx]++;\n    } else {\n      client[kQueue$1].splice(client[kPendingIdx]\x2C 1);\n    }\n  }\n}\n\nfunction write (client\x2C request) {\n  const { body\x2C method\x2C path\x2C host\x2C upgrade\x2C headers\x2C blocking\x2C reset } = request;\n\n  // https://tools.ietf.org/html/rfc7231#section-4.3.1\n  // https://tools.ietf.org/html/rfc7231#section-4.3.2\n  // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n  // Sending a payload body on a request that does not\n  // expect it can cause undefined behavior on some\n  // servers and corrupt connection state. Do not\n  // re-use the connection for further requests.\n\n  const expectsPayload = (\n    method === 'PUT' ||\n    method === 'POST' ||\n    method === 'PATCH'\n  );\n\n  if (body && typeof body.read === 'function') {\n    // Try to read EOF in order to get length.\n    body.read(0);\n  }\n\n  let contentLength = util$d.bodyLength(body);\n\n  if (contentLength === null) {\n    contentLength = request.contentLength;\n  }\n\n  if (contentLength === 0 && !expectsPayload) {\n    // https://tools.ietf.org/html/rfc7230#section-3.3.2\n    // A user agent SHOULD NOT send a Content-Length header field when\n    // the request message does not contain a payload body and the method\n    // semantics do not anticipate such a body.\n\n    contentLength = null;\n  }\n\n  if (request.contentLength !== null && request.contentLength !== contentLength) {\n    if (client[kStrictContentLength]) {\n      errorRequest(client\x2C request\x2C new RequestContentLengthMismatchError());\n      return false\n    }\n\n    process.emitWarning(new RequestContentLengthMismatchError());\n  }\n\n  const socket = client[kSocket];\n\n  try {\n    request.onConnect((err) => {\n      if (request.aborted || request.completed) {\n        return\n      }\n\n      errorRequest(client\x2C request\x2C err || new RequestAbortedError$7());\n\n      util$d.destroy(socket\x2C new InformationalError('aborted'));\n    });\n  } catch (err) {\n    errorRequest(client\x2C request\x2C err);\n  }\n\n  if (request.aborted) {\n    return false\n  }\n\n  if (method === 'HEAD') {\n    // https://github.com/mcollina/undici/issues/258\n    // Close after a HEAD request to interop with misbehaving servers\n    // that may send a body in the response.\n\n    socket[kReset] = true;\n  }\n\n  if (upgrade || method === 'CONNECT') {\n    // On CONNECT or upgrade\x2C block pipeline from dispatching further\n    // requests on this connection.\n\n    socket[kReset] = true;\n  }\n\n  if (reset != null) {\n    socket[kReset] = reset;\n  }\n\n  if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n    socket[kReset] = true;\n  }\n\n  if (blocking) {\n    socket[kBlocking] = true;\n  }\n\n  let header = `${method} ${path} HTTP/1.1\\r\\n`;\n\n  if (typeof host === 'string') {\n    header += `host: ${host}\\r\\n`;\n  } else {\n    header += client[kHostHeader];\n  }\n\n  if (upgrade) {\n    header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`;\n  } else if (client[kPipelining] && !socket[kReset]) {\n    header += 'connection: keep-alive\\r\\n';\n  } else {\n    header += 'connection: close\\r\\n';\n  }\n\n  if (headers) {\n    header += headers;\n  }\n\n  if (channels.sendHeaders.hasSubscribers) {\n    channels.sendHeaders.publish({ request\x2C headers: header\x2C socket });\n  }\n\n  /* istanbul ignore else: assertion */\n  if (!body) {\n    if (contentLength === 0) {\n      socket.write(`${header}content-length: 0\\r\\n\\r\\n`\x2C 'latin1');\n    } else {\n      assert$4(contentLength === null\x2C 'no body must not have content length');\n      socket.write(`${header}\\r\\n`\x2C 'latin1');\n    }\n    request.onRequestSent();\n  } else if (util$d.isBuffer(body)) {\n    assert$4(contentLength === body.byteLength\x2C 'buffer body must have content length');\n\n    socket.cork();\n    socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`\x2C 'latin1');\n    socket.write(body);\n    socket.uncork();\n    request.onBodySent(body);\n    request.onRequestSent();\n    if (!expectsPayload) {\n      socket[kReset] = true;\n    }\n  } else if (util$d.isBlobLike(body)) {\n    if (typeof body.stream === 'function') {\n      writeIterable({ body: body.stream()\x2C client\x2C request\x2C socket\x2C contentLength\x2C header\x2C expectsPayload });\n    } else {\n      writeBlob({ body\x2C client\x2C request\x2C socket\x2C contentLength\x2C header\x2C expectsPayload });\n    }\n  } else if (util$d.isStream(body)) {\n    writeStream({ body\x2C client\x2C request\x2C socket\x2C contentLength\x2C header\x2C expectsPayload });\n  } else if (util$d.isIterable(body)) {\n    writeIterable({ body\x2C client\x2C request\x2C socket\x2C contentLength\x2C header\x2C expectsPayload });\n  } else {\n    assert$4(false);\n  }\n\n  return true\n}\n\nfunction writeStream ({ body\x2C client\x2C request\x2C socket\x2C contentLength\x2C header\x2C expectsPayload }) {\n  assert$4(contentLength !== 0 || client[kRunning$3] === 0\x2C 'stream body cannot be pipelined');\n\n  let finished = false;\n\n  const writer = new AsyncWriter({ socket\x2C request\x2C contentLength\x2C client\x2C expectsPayload\x2C header });\n\n  const onData = function (chunk) {\n    try {\n      assert$4(!finished);\n\n      if (!writer.write(chunk) && this.pause) {\n        this.pause();\n      }\n    } catch (err) {\n      util$d.destroy(this\x2C err);\n    }\n  };\n  const onDrain = function () {\n    assert$4(!finished);\n\n    if (body.resume) {\n      body.resume();\n    }\n  };\n  const onAbort = function () {\n    onFinished(new RequestAbortedError$7());\n  };\n  const onFinished = function (err) {\n    if (finished) {\n      return\n    }\n\n    finished = true;\n\n    assert$4(socket.destroyed || (socket[kWriting] && client[kRunning$3] <= 1));\n\n    socket\n      .off('drain'\x2C onDrain)\n      .off('error'\x2C onFinished);\n\n    body\n      .removeListener('data'\x2C onData)\n      .removeListener('end'\x2C onFinished)\n      .removeListener('error'\x2C onFinished)\n      .removeListener('close'\x2C onAbort);\n\n    if (!err) {\n      try {\n        writer.end();\n      } catch (er) {\n        err = er;\n      }\n    }\n\n    writer.destroy(err);\n\n    if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n      util$d.destroy(body\x2C err);\n    } else {\n      util$d.destroy(body);\n    }\n  };\n\n  body\n    .on('data'\x2C onData)\n    .on('end'\x2C onFinished)\n    .on('error'\x2C onFinished)\n    .on('close'\x2C onAbort);\n\n  if (body.resume) {\n    body.resume();\n  }\n\n  socket\n    .on('drain'\x2C onDrain)\n    .on('error'\x2C onFinished);\n}\n\nasync function writeBlob ({ body\x2C client\x2C request\x2C socket\x2C contentLength\x2C header\x2C expectsPayload }) {\n  assert$4(contentLength === body.size\x2C 'blob body must have content length');\n\n  try {\n    if (contentLength != null && contentLength !== body.size) {\n      throw new RequestContentLengthMismatchError()\n    }\n\n    const buffer = Buffer.from(await body.arrayBuffer());\n\n    socket.cork();\n    socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`\x2C 'latin1');\n    socket.write(buffer);\n    socket.uncork();\n\n    request.onBodySent(buffer);\n    request.onRequestSent();\n\n    if (!expectsPayload) {\n      socket[kReset] = true;\n    }\n\n    resume(client);\n  } catch (err) {\n    util$d.destroy(socket\x2C err);\n  }\n}\n\nasync function writeIterable ({ body\x2C client\x2C request\x2C socket\x2C contentLength\x2C header\x2C expectsPayload }) {\n  assert$4(contentLength !== 0 || client[kRunning$3] === 0\x2C 'iterator body cannot be pipelined');\n\n  let callback = null;\n  function onDrain () {\n    if (callback) {\n      const cb = callback;\n      callback = null;\n      cb();\n    }\n  }\n\n  const waitForDrain = () => new Promise((resolve\x2C reject) => {\n    assert$4(callback === null);\n\n    if (socket[kError]) {\n      reject(socket[kError]);\n    } else {\n      callback = resolve;\n    }\n  });\n\n  socket\n    .on('close'\x2C onDrain)\n    .on('drain'\x2C onDrain);\n\n  const writer = new AsyncWriter({ socket\x2C request\x2C contentLength\x2C client\x2C expectsPayload\x2C header });\n  try {\n    // It's up to the user to somehow abort the async iterable.\n    for await (const chunk of body) {\n      if (socket[kError]) {\n        throw socket[kError]\n      }\n\n      if (!writer.write(chunk)) {\n        await waitForDrain();\n      }\n    }\n\n    writer.end();\n  } catch (err) {\n    writer.destroy(err);\n  } finally {\n    socket\n      .off('close'\x2C onDrain)\n      .off('drain'\x2C onDrain);\n  }\n}\n\nclass AsyncWriter {\n  constructor ({ socket\x2C request\x2C contentLength\x2C client\x2C expectsPayload\x2C header }) {\n    this.socket = socket;\n    this.request = request;\n    this.contentLength = contentLength;\n    this.client = client;\n    this.bytesWritten = 0;\n    this.expectsPayload = expectsPayload;\n    this.header = header;\n\n    socket[kWriting] = true;\n  }\n\n  write (chunk) {\n    const { socket\x2C request\x2C contentLength\x2C client\x2C bytesWritten\x2C expectsPayload\x2C header } = this;\n\n    if (socket[kError]) {\n      throw socket[kError]\n    }\n\n    if (socket.destroyed) {\n      return false\n    }\n\n    const len = Buffer.byteLength(chunk);\n    if (!len) {\n      return true\n    }\n\n    // We should defer writing chunks.\n    if (contentLength !== null && bytesWritten + len > contentLength) {\n      if (client[kStrictContentLength]) {\n        throw new RequestContentLengthMismatchError()\n      }\n\n      process.emitWarning(new RequestContentLengthMismatchError());\n    }\n\n    socket.cork();\n\n    if (bytesWritten === 0) {\n      if (!expectsPayload) {\n        socket[kReset] = true;\n      }\n\n      if (contentLength === null) {\n        socket.write(`${header}transfer-encoding: chunked\\r\\n`\x2C 'latin1');\n      } else {\n        socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`\x2C 'latin1');\n      }\n    }\n\n    if (contentLength === null) {\n      socket.write(`\\r\\n${len.toString(16)}\\r\\n`\x2C 'latin1');\n    }\n\n    this.bytesWritten += len;\n\n    const ret = socket.write(chunk);\n\n    socket.uncork();\n\n    request.onBodySent(chunk);\n\n    if (!ret) {\n      if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n        // istanbul ignore else: only for jest\n        if (socket[kParser].timeout.refresh) {\n          socket[kParser].timeout.refresh();\n        }\n      }\n    }\n\n    return ret\n  }\n\n  end () {\n    const { socket\x2C contentLength\x2C client\x2C bytesWritten\x2C expectsPayload\x2C header\x2C request } = this;\n    request.onRequestSent();\n\n    socket[kWriting] = false;\n\n    if (socket[kError]) {\n      throw socket[kError]\n    }\n\n    if (socket.destroyed) {\n      return\n    }\n\n    if (bytesWritten === 0) {\n      if (expectsPayload) {\n        // https://tools.ietf.org/html/rfc7230#section-3.3.2\n        // A user agent SHOULD send a Content-Length in a request message when\n        // no Transfer-Encoding is sent and the request method defines a meaning\n        // for an enclosed payload body.\n\n        socket.write(`${header}content-length: 0\\r\\n\\r\\n`\x2C 'latin1');\n      } else {\n        socket.write(`${header}\\r\\n`\x2C 'latin1');\n      }\n    } else if (contentLength === null) {\n      socket.write('\\r\\n0\\r\\n\\r\\n'\x2C 'latin1');\n    }\n\n    if (contentLength !== null && bytesWritten !== contentLength) {\n      if (client[kStrictContentLength]) {\n        throw new RequestContentLengthMismatchError()\n      } else {\n        process.emitWarning(new RequestContentLengthMismatchError());\n      }\n    }\n\n    if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n      // istanbul ignore else: only for jest\n      if (socket[kParser].timeout.refresh) {\n        socket[kParser].timeout.refresh();\n      }\n    }\n\n    resume(client);\n  }\n\n  destroy (err) {\n    const { socket\x2C client } = this;\n\n    socket[kWriting] = false;\n\n    if (err) {\n      assert$4(client[kRunning$3] <= 1\x2C 'pipeline should only contain this request');\n      util$d.destroy(socket\x2C err);\n    }\n  }\n}\n\nfunction errorRequest (client\x2C request\x2C err) {\n  try {\n    request.onError(err);\n    assert$4(request.aborted);\n  } catch (err) {\n    client.emit('error'\x2C err);\n  }\n}\n\nvar client = Client$3;\n\n/* eslint-disable */\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size\x2C tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize$3 = 2048;\nconst kMask = kSize$3 - 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$3);\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\nvar fixedQueue = 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\nconst { kFree: kFree$1\x2C kConnected: kConnected$4\x2C kPending: kPending$1\x2C kQueued: kQueued$1\x2C kRunning: kRunning$2\x2C kSize: kSize$2 } = symbols$3;\nconst kPool = Symbol('pool');\n\nlet PoolStats$1 = class PoolStats {\n  constructor (pool) {\n    this[kPool] = pool;\n  }\n\n  get connected () {\n    return this[kPool][kConnected$4]\n  }\n\n  get free () {\n    return this[kPool][kFree$1]\n  }\n\n  get pending () {\n    return this[kPool][kPending$1]\n  }\n\n  get queued () {\n    return this[kPool][kQueued$1]\n  }\n\n  get running () {\n    return this[kPool][kRunning$2]\n  }\n\n  get size () {\n    return this[kPool][kSize$2]\n  }\n};\n\nvar poolStats = PoolStats$1;\n\nconst DispatcherBase$1 = dispatcherBase;\nconst FixedQueue = fixedQueue;\nconst { kConnected: kConnected$3\x2C kSize: kSize$1\x2C kRunning: kRunning$1\x2C kPending\x2C kQueued\x2C kBusy\x2C kFree\x2C kUrl: kUrl$1\x2C kClose: kClose$3\x2C kDestroy: kDestroy$1\x2C kDispatch: kDispatch$1 } = symbols$3;\nconst PoolStats = poolStats;\n\nconst kClients$2 = Symbol('clients');\nconst kNeedDrain$1 = Symbol('needDrain');\nconst kQueue = Symbol('queue');\nconst kClosedResolve = Symbol('closed resolve');\nconst kOnDrain$1 = Symbol('onDrain');\nconst kOnConnect$1 = Symbol('onConnect');\nconst kOnDisconnect$1 = Symbol('onDisconnect');\nconst kOnConnectionError$1 = Symbol('onConnectionError');\nconst kGetDispatcher$1 = Symbol('get dispatcher');\nconst kAddClient$1 = Symbol('add client');\nconst kRemoveClient = Symbol('remove client');\nconst kStats = Symbol('stats');\n\nlet PoolBase$1 = class PoolBase extends DispatcherBase$1 {\n  constructor () {\n    super();\n\n    this[kQueue] = new FixedQueue();\n    this[kClients$2] = [];\n    this[kQueued] = 0;\n\n    const pool = this;\n\n    this[kOnDrain$1] = function onDrain (origin\x2C targets) {\n      const queue = pool[kQueue];\n\n      let needDrain = false;\n\n      while (!needDrain) {\n        const item = queue.shift();\n        if (!item) {\n          break\n        }\n        pool[kQueued]--;\n        needDrain = !this.dispatch(item.opts\x2C item.handler);\n      }\n\n      this[kNeedDrain$1] = needDrain;\n\n      if (!this[kNeedDrain$1] && pool[kNeedDrain$1]) {\n        pool[kNeedDrain$1] = false;\n        pool.emit('drain'\x2C origin\x2C [pool\x2C ...targets]);\n      }\n\n      if (pool[kClosedResolve] && queue.isEmpty()) {\n        Promise\n          .all(pool[kClients$2].map(c => c.close()))\n          .then(pool[kClosedResolve]);\n      }\n    };\n\n    this[kOnConnect$1] = (origin\x2C targets) => {\n      pool.emit('connect'\x2C origin\x2C [pool\x2C ...targets]);\n    };\n\n    this[kOnDisconnect$1] = (origin\x2C targets\x2C err) => {\n      pool.emit('disconnect'\x2C origin\x2C [pool\x2C ...targets]\x2C err);\n    };\n\n    this[kOnConnectionError$1] = (origin\x2C targets\x2C err) => {\n      pool.emit('connectionError'\x2C origin\x2C [pool\x2C ...targets]\x2C err);\n    };\n\n    this[kStats] = new PoolStats(this);\n  }\n\n  get [kBusy] () {\n    return this[kNeedDrain$1]\n  }\n\n  get [kConnected$3] () {\n    return this[kClients$2].filter(client => client[kConnected$3]).length\n  }\n\n  get [kFree] () {\n    return this[kClients$2].filter(client => client[kConnected$3] && !client[kNeedDrain$1]).length\n  }\n\n  get [kPending] () {\n    let ret = this[kQueued];\n    for (const { [kPending]: pending } of this[kClients$2]) {\n      ret += pending;\n    }\n    return ret\n  }\n\n  get [kRunning$1] () {\n    let ret = 0;\n    for (const { [kRunning$1]: running } of this[kClients$2]) {\n      ret += running;\n    }\n    return ret\n  }\n\n  get [kSize$1] () {\n    let ret = this[kQueued];\n    for (const { [kSize$1]: size } of this[kClients$2]) {\n      ret += size;\n    }\n    return ret\n  }\n\n  get stats () {\n    return this[kStats]\n  }\n\n  async [kClose$3] () {\n    if (this[kQueue].isEmpty()) {\n      return Promise.all(this[kClients$2].map(c => c.close()))\n    } else {\n      return new Promise((resolve) => {\n        this[kClosedResolve] = resolve;\n      })\n    }\n  }\n\n  async [kDestroy$1] (err) {\n    while (true) {\n      const item = this[kQueue].shift();\n      if (!item) {\n        break\n      }\n      item.handler.onError(err);\n    }\n\n    return Promise.all(this[kClients$2].map(c => c.destroy(err)))\n  }\n\n  [kDispatch$1] (opts\x2C handler) {\n    const dispatcher = this[kGetDispatcher$1]();\n\n    if (!dispatcher) {\n      this[kNeedDrain$1] = true;\n      this[kQueue].push({ opts\x2C handler });\n      this[kQueued]++;\n    } else if (!dispatcher.dispatch(opts\x2C handler)) {\n      dispatcher[kNeedDrain$1] = true;\n      this[kNeedDrain$1] = !this[kGetDispatcher$1]();\n    }\n\n    return !this[kNeedDrain$1]\n  }\n\n  [kAddClient$1] (client) {\n    client\n      .on('drain'\x2C this[kOnDrain$1])\n      .on('connect'\x2C this[kOnConnect$1])\n      .on('disconnect'\x2C this[kOnDisconnect$1])\n      .on('connectionError'\x2C this[kOnConnectionError$1]);\n\n    this[kClients$2].push(client);\n\n    if (this[kNeedDrain$1]) {\n      process.nextTick(() => {\n        if (this[kNeedDrain$1]) {\n          this[kOnDrain$1](client[kUrl$1]\x2C [this\x2C client]);\n        }\n      });\n    }\n\n    return this\n  }\n\n  [kRemoveClient] (client) {\n    client.close(() => {\n      const idx = this[kClients$2].indexOf(client);\n      if (idx !== -1) {\n        this[kClients$2].splice(idx\x2C 1);\n      }\n    });\n\n    this[kNeedDrain$1] = this[kClients$2].some(dispatcher => (\n      !dispatcher[kNeedDrain$1] &&\n      dispatcher.closed !== true &&\n      dispatcher.destroyed !== true\n    ));\n  }\n};\n\nvar poolBase = {\n  PoolBase: PoolBase$1\x2C\n  kClients: kClients$2\x2C\n  kNeedDrain: kNeedDrain$1\x2C\n  kAddClient: kAddClient$1\x2C\n  kRemoveClient\x2C\n  kGetDispatcher: kGetDispatcher$1\n};\n\nconst {\n  PoolBase\x2C\n  kClients: kClients$1\x2C\n  kNeedDrain\x2C\n  kAddClient\x2C\n  kGetDispatcher\n} = poolBase;\nconst Client$2 = client;\nconst {\n  InvalidArgumentError: InvalidArgumentError$c\n} = errors$1;\nconst util$c = util$i;\nconst { kUrl\x2C kInterceptors: kInterceptors$1 } = symbols$3;\nconst buildConnector = connect$2;\n\nconst kOptions$1 = Symbol('options');\nconst kConnections = Symbol('connections');\nconst kFactory$1 = Symbol('factory');\n\nfunction defaultFactory$1 (origin\x2C opts) {\n  return new Client$2(origin\x2C opts)\n}\n\nlet Pool$2 = class Pool extends PoolBase {\n  constructor (origin\x2C {\n    connections\x2C\n    factory = defaultFactory$1\x2C\n    connect\x2C\n    connectTimeout\x2C\n    tls\x2C\n    maxCachedSessions\x2C\n    socketPath\x2C\n    autoSelectFamily\x2C\n    autoSelectFamilyAttemptTimeout\x2C\n    ...options\n  } = {}) {\n    super();\n\n    if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n      throw new InvalidArgumentError$c('invalid connections')\n    }\n\n    if (typeof factory !== 'function') {\n      throw new InvalidArgumentError$c('factory must be a function.')\n    }\n\n    if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n      throw new InvalidArgumentError$c('connect must be a function or an object')\n    }\n\n    if (typeof connect !== 'function') {\n      connect = buildConnector({\n        ...tls\x2C\n        maxCachedSessions\x2C\n        socketPath\x2C\n        timeout: connectTimeout == null ? 10e3 : connectTimeout\x2C\n        ...(util$c.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily\x2C autoSelectFamilyAttemptTimeout } : undefined)\x2C\n        ...connect\n      });\n    }\n\n    this[kInterceptors$1] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n      ? options.interceptors.Pool\n      : [];\n    this[kConnections] = connections || null;\n    this[kUrl] = util$c.parseOrigin(origin);\n    this[kOptions$1] = { ...util$c.deepClone(options)\x2C connect };\n    this[kOptions$1].interceptors = options.interceptors\n      ? { ...options.interceptors }\n      : undefined;\n    this[kFactory$1] = factory;\n  }\n\n  [kGetDispatcher] () {\n    let dispatcher = this[kClients$1].find(dispatcher => !dispatcher[kNeedDrain]);\n\n    if (dispatcher) {\n      return dispatcher\n    }\n\n    if (!this[kConnections] || this[kClients$1].length < this[kConnections]) {\n      dispatcher = this[kFactory$1](this[kUrl]\x2C this[kOptions$1]);\n      this[kAddClient](dispatcher);\n    }\n\n    return dispatcher\n  }\n};\n\nvar pool = Pool$2;\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected: kConnected$2\x2C kSize } = symbols$3;\n\nclass CompatWeakRef {\n  constructor (value) {\n    this.value = value;\n  }\n\n  deref () {\n    return this.value[kConnected$2] === 0 && this.value[kSize] === 0\n      ? undefined\n      : this.value\n  }\n}\n\nclass CompatFinalizer {\n  constructor (finalizer) {\n    this.finalizer = finalizer;\n  }\n\n  register (dispatcher\x2C key) {\n    dispatcher.on('disconnect'\x2C () => {\n      if (dispatcher[kConnected$2] === 0 && dispatcher[kSize] === 0) {\n        this.finalizer(key);\n      }\n    });\n  }\n}\n\nvar dispatcherWeakref = function () {\n  return {\n    WeakRef: commonjsGlobal.WeakRef || CompatWeakRef\x2C\n    FinalizationRegistry: commonjsGlobal.FinalizationRegistry || CompatFinalizer\n  }\n};\n\nconst { InvalidArgumentError: InvalidArgumentError$b } = errors$1;\nconst { kClients\x2C kRunning\x2C kClose: kClose$2\x2C kDestroy\x2C kDispatch\x2C kInterceptors } = symbols$3;\nconst DispatcherBase = dispatcherBase;\nconst Pool$1 = pool;\nconst Client$1 = client;\nconst util$b = util$i;\nconst createRedirectInterceptor = redirectInterceptor;\nconst { WeakRef: WeakRef$1\x2C FinalizationRegistry } = dispatcherWeakref();\n\nconst kOnConnect = Symbol('onConnect');\nconst kOnDisconnect = Symbol('onDisconnect');\nconst kOnConnectionError = Symbol('onConnectionError');\nconst kMaxRedirections = Symbol('maxRedirections');\nconst kOnDrain = Symbol('onDrain');\nconst kFactory = Symbol('factory');\nconst kFinalizer = Symbol('finalizer');\nconst kOptions = Symbol('options');\n\nfunction defaultFactory (origin\x2C opts) {\n  return opts && opts.connections === 1\n    ? new Client$1(origin\x2C opts)\n    : new Pool$1(origin\x2C opts)\n}\n\nlet Agent$1 = class Agent extends DispatcherBase {\n  constructor ({ factory = defaultFactory\x2C maxRedirections = 0\x2C connect\x2C ...options } = {}) {\n    super();\n\n    if (typeof factory !== 'function') {\n      throw new InvalidArgumentError$b('factory must be a function.')\n    }\n\n    if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n      throw new InvalidArgumentError$b('connect must be a function or an object')\n    }\n\n    if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n      throw new InvalidArgumentError$b('maxRedirections must be a positive number')\n    }\n\n    if (connect && typeof connect !== 'function') {\n      connect = { ...connect };\n    }\n\n    this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n      ? options.interceptors.Agent\n      : [createRedirectInterceptor({ maxRedirections })];\n\n    this[kOptions] = { ...util$b.deepClone(options)\x2C connect };\n    this[kOptions].interceptors = options.interceptors\n      ? { ...options.interceptors }\n      : undefined;\n    this[kMaxRedirections] = maxRedirections;\n    this[kFactory] = factory;\n    this[kClients] = new Map();\n    this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n      const ref = this[kClients].get(key);\n      if (ref !== undefined && ref.deref() === undefined) {\n        this[kClients].delete(key);\n      }\n    });\n\n    const agent = this;\n\n    this[kOnDrain] = (origin\x2C targets) => {\n      agent.emit('drain'\x2C origin\x2C [agent\x2C ...targets]);\n    };\n\n    this[kOnConnect] = (origin\x2C targets) => {\n      agent.emit('connect'\x2C origin\x2C [agent\x2C ...targets]);\n    };\n\n    this[kOnDisconnect] = (origin\x2C targets\x2C err) => {\n      agent.emit('disconnect'\x2C origin\x2C [agent\x2C ...targets]\x2C err);\n    };\n\n    this[kOnConnectionError] = (origin\x2C targets\x2C err) => {\n      agent.emit('connectionError'\x2C origin\x2C [agent\x2C ...targets]\x2C err);\n    };\n  }\n\n  get [kRunning] () {\n    let ret = 0;\n    for (const ref of this[kClients].values()) {\n      const client = ref.deref();\n      /* istanbul ignore next: gc is undeterministic */\n      if (client) {\n        ret += client[kRunning];\n      }\n    }\n    return ret\n  }\n\n  [kDispatch] (opts\x2C handler) {\n    let key;\n    if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n      key = String(opts.origin);\n    } else {\n      throw new InvalidArgumentError$b('opts.origin must be a non-empty string or URL.')\n    }\n\n    const ref = this[kClients].get(key);\n\n    let dispatcher = ref ? ref.deref() : null;\n    if (!dispatcher) {\n      dispatcher = this[kFactory](opts.origin\x2C this[kOptions])\n        .on('drain'\x2C this[kOnDrain])\n        .on('connect'\x2C this[kOnConnect])\n        .on('disconnect'\x2C this[kOnDisconnect])\n        .on('connectionError'\x2C this[kOnConnectionError]);\n\n      this[kClients].set(key\x2C new WeakRef$1(dispatcher));\n      this[kFinalizer].register(dispatcher\x2C key);\n    }\n\n    return dispatcher.dispatch(opts\x2C handler)\n  }\n\n  async [kClose$2] () {\n    const closePromises = [];\n    for (const ref of this[kClients].values()) {\n      const client = ref.deref();\n      /* istanbul ignore else: gc is undeterministic */\n      if (client) {\n        closePromises.push(client.close());\n      }\n    }\n\n    await Promise.all(closePromises);\n  }\n\n  async [kDestroy] (err) {\n    const destroyPromises = [];\n    for (const ref of this[kClients].values()) {\n      const client = ref.deref();\n      /* istanbul ignore else: gc is undeterministic */\n      if (client) {\n        destroyPromises.push(client.destroy(err));\n      }\n    }\n\n    await Promise.all(destroyPromises);\n  }\n};\n\nvar agent = Agent$1;\n\nvar api$1 = {};\n\nconst assert$3 = require$$0;\nconst { Readable: Readable$2 } = require$$0$1;\nconst { RequestAbortedError: RequestAbortedError$6\x2C NotSupportedError\x2C InvalidArgumentError: InvalidArgumentError$a } = errors$1;\nconst util$a = util$i;\nconst { ReadableStreamFrom\x2C toUSVString: toUSVString$1 } = util$i;\n\nlet Blob$1;\n\nconst kConsume = Symbol('kConsume');\nconst kReading = Symbol('kReading');\nconst kBody = Symbol('kBody');\nconst kAbort = Symbol('abort');\nconst kContentType = Symbol('kContentType');\n\nvar readable = class BodyReadable extends Readable$2 {\n  constructor ({\n    resume\x2C\n    abort\x2C\n    contentType = ''\x2C\n    highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n  }) {\n    super({\n      autoDestroy: true\x2C\n      read: resume\x2C\n      highWaterMark\n    });\n\n    this._readableState.dataEmitted = false;\n\n    this[kAbort] = abort;\n    this[kConsume] = null;\n    this[kBody] = null;\n    this[kContentType] = contentType;\n\n    // Is stream being consumed through Readable API?\n    // This is an optimization so that we avoid checking\n    // for 'data' and 'readable' listeners in the hot path\n    // inside push().\n    this[kReading] = false;\n  }\n\n  destroy (err) {\n    if (this.destroyed) {\n      // Node < 16\n      return this\n    }\n\n    if (!err && !this._readableState.endEmitted) {\n      err = new RequestAbortedError$6();\n    }\n\n    if (err) {\n      this[kAbort]();\n    }\n\n    return super.destroy(err)\n  }\n\n  emit (ev\x2C ...args) {\n    if (ev === 'data') {\n      // Node < 16.7\n      this._readableState.dataEmitted = true;\n    } else if (ev === 'error') {\n      // Node < 16\n      this._readableState.errorEmitted = true;\n    }\n    return super.emit(ev\x2C ...args)\n  }\n\n  on (ev\x2C ...args) {\n    if (ev === 'data' || ev === 'readable') {\n      this[kReading] = true;\n    }\n    return super.on(ev\x2C ...args)\n  }\n\n  addListener (ev\x2C ...args) {\n    return this.on(ev\x2C ...args)\n  }\n\n  off (ev\x2C ...args) {\n    const ret = super.off(ev\x2C ...args);\n    if (ev === 'data' || ev === 'readable') {\n      this[kReading] = (\n        this.listenerCount('data') > 0 ||\n        this.listenerCount('readable') > 0\n      );\n    }\n    return ret\n  }\n\n  removeListener (ev\x2C ...args) {\n    return this.off(ev\x2C ...args)\n  }\n\n  push (chunk) {\n    if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n      consumePush(this[kConsume]\x2C chunk);\n      return this[kReading] ? super.push(chunk) : true\n    }\n    return super.push(chunk)\n  }\n\n  // https://fetch.spec.whatwg.org/#dom-body-text\n  async text () {\n    return consume(this\x2C 'text')\n  }\n\n  // https://fetch.spec.whatwg.org/#dom-body-json\n  async json () {\n    return consume(this\x2C 'json')\n  }\n\n  // https://fetch.spec.whatwg.org/#dom-body-blob\n  async blob () {\n    return consume(this\x2C 'blob')\n  }\n\n  // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n  async arrayBuffer () {\n    return consume(this\x2C 'arrayBuffer')\n  }\n\n  // https://fetch.spec.whatwg.org/#dom-body-formdata\n  async formData () {\n    // TODO: Implement.\n    throw new NotSupportedError()\n  }\n\n  // https://fetch.spec.whatwg.org/#dom-body-bodyused\n  get bodyUsed () {\n    return util$a.isDisturbed(this)\n  }\n\n  // https://fetch.spec.whatwg.org/#dom-body-body\n  get body () {\n    if (!this[kBody]) {\n      this[kBody] = ReadableStreamFrom(this);\n      if (this[kConsume]) {\n        // TODO: Is this the best way to force a lock?\n        this[kBody].getReader(); // Ensure stream is locked.\n        assert$3(this[kBody].locked);\n      }\n    }\n    return this[kBody]\n  }\n\n  async dump (opts) {\n    let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144;\n    const signal = opts && opts.signal;\n    const abortFn = () => {\n      this.destroy();\n    };\n    if (signal) {\n      if (typeof signal !== 'object' || !('aborted' in signal)) {\n        throw new InvalidArgumentError$a('signal must be an AbortSignal')\n      }\n      util$a.throwIfAborted(signal);\n      signal.addEventListener('abort'\x2C abortFn\x2C { once: true });\n    }\n    try {\n      for await (const chunk of this) {\n        util$a.throwIfAborted(signal);\n        limit -= Buffer.byteLength(chunk);\n        if (limit < 0) {\n          return\n        }\n      }\n    } catch {\n      util$a.throwIfAborted(signal);\n    } finally {\n      if (signal) {\n        signal.removeEventListener('abort'\x2C abortFn);\n      }\n    }\n  }\n};\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n  // Consume is an implicit lock.\n  return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n  return util$a.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream\x2C type) {\n  if (isUnusable(stream)) {\n    throw new TypeError('unusable')\n  }\n\n  assert$3(!stream[kConsume]);\n\n  return new Promise((resolve\x2C reject) => {\n    stream[kConsume] = {\n      type\x2C\n      stream\x2C\n      resolve\x2C\n      reject\x2C\n      length: 0\x2C\n      body: []\n    };\n\n    stream\n      .on('error'\x2C function (err) {\n        consumeFinish(this[kConsume]\x2C err);\n      })\n      .on('close'\x2C function () {\n        if (this[kConsume].body !== null) {\n          consumeFinish(this[kConsume]\x2C new RequestAbortedError$6());\n        }\n      });\n\n    process.nextTick(consumeStart\x2C stream[kConsume]);\n  })\n}\n\nfunction consumeStart (consume) {\n  if (consume.body === null) {\n    return\n  }\n\n  const { _readableState: state } = consume.stream;\n\n  for (const chunk of state.buffer) {\n    consumePush(consume\x2C chunk);\n  }\n\n  if (state.endEmitted) {\n    consumeEnd(this[kConsume]);\n  } else {\n    consume.stream.on('end'\x2C function () {\n      consumeEnd(this[kConsume]);\n    });\n  }\n\n  consume.stream.resume();\n\n  while (consume.stream.read() != null) {\n    // Loop\n  }\n}\n\nfunction consumeEnd (consume) {\n  const { type\x2C body\x2C resolve\x2C stream\x2C length } = consume;\n\n  try {\n    if (type === 'text') {\n      resolve(toUSVString$1(Buffer.concat(body)));\n    } else if (type === 'json') {\n      resolve(JSON.parse(Buffer.concat(body)));\n    } else if (type === 'arrayBuffer') {\n      const dst = new Uint8Array(length);\n\n      let pos = 0;\n      for (const buf of body) {\n        dst.set(buf\x2C pos);\n        pos += buf.byteLength;\n      }\n\n      resolve(dst);\n    } else if (type === 'blob') {\n      if (!Blob$1) {\n        Blob$1 = require('buffer').Blob;\n      }\n      resolve(new Blob$1(body\x2C { type: stream[kContentType] }));\n    }\n\n    consumeFinish(consume);\n  } catch (err) {\n    stream.destroy(err);\n  }\n}\n\nfunction consumePush (consume\x2C chunk) {\n  consume.length += chunk.length;\n  consume.body.push(chunk);\n}\n\nfunction consumeFinish (consume\x2C err) {\n  if (consume.body === null) {\n    return\n  }\n\n  if (err) {\n    consume.reject(err);\n  } else {\n    consume.resolve();\n  }\n\n  consume.type = null;\n  consume.stream = null;\n  consume.resolve = null;\n  consume.reject = null;\n  consume.length = 0;\n  consume.body = null;\n}\n\nconst assert$2 = require$$0;\nconst {\n  ResponseStatusCodeError\n} = errors$1;\nconst { toUSVString } = util$i;\n\nasync function getResolveErrorBodyCallback$2 ({ callback\x2C body\x2C contentType\x2C statusCode\x2C statusMessage\x2C headers }) {\n  assert$2(body);\n\n  let chunks = [];\n  let limit = 0;\n\n  for await (const chunk of body) {\n    chunks.push(chunk);\n    limit += chunk.length;\n    if (limit > 128 * 1024) {\n      chunks = null;\n      break\n    }\n  }\n\n  if (statusCode === 204 || !contentType || !chunks) {\n    process.nextTick(callback\x2C new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`\x2C statusCode\x2C headers));\n    return\n  }\n\n  try {\n    if (contentType.startsWith('application/json')) {\n      const payload = JSON.parse(toUSVString(Buffer.concat(chunks)));\n      process.nextTick(callback\x2C new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`\x2C statusCode\x2C headers\x2C payload));\n      return\n    }\n\n    if (contentType.startsWith('text/')) {\n      const payload = toUSVString(Buffer.concat(chunks));\n      process.nextTick(callback\x2C new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`\x2C statusCode\x2C headers\x2C payload));\n      return\n    }\n  } catch (err) {\n    // Process in a fallback if error\n  }\n\n  process.nextTick(callback\x2C new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`\x2C statusCode\x2C headers));\n}\n\nvar util$9 = { getResolveErrorBodyCallback: getResolveErrorBodyCallback$2 };\n\nconst { RequestAbortedError: RequestAbortedError$5 } = errors$1;\n\nconst kListener = Symbol('kListener');\nconst kSignal = Symbol('kSignal');\n\nfunction abort (self) {\n  if (self.abort) {\n    self.abort();\n  } else {\n    self.onError(new RequestAbortedError$5());\n  }\n}\n\nfunction addSignal$5 (self\x2C signal) {\n  self[kSignal] = null;\n  self[kListener] = null;\n\n  if (!signal) {\n    return\n  }\n\n  if (signal.aborted) {\n    abort(self);\n    return\n  }\n\n  self[kSignal] = signal;\n  self[kListener] = () => {\n    abort(self);\n  };\n\n  if ('addEventListener' in self[kSignal]) {\n    self[kSignal].addEventListener('abort'\x2C self[kListener]);\n  } else {\n    self[kSignal].addListener('abort'\x2C self[kListener]);\n  }\n}\n\nfunction removeSignal$5 (self) {\n  if (!self[kSignal]) {\n    return\n  }\n\n  if ('removeEventListener' in self[kSignal]) {\n    self[kSignal].removeEventListener('abort'\x2C self[kListener]);\n  } else {\n    self[kSignal].removeListener('abort'\x2C self[kListener]);\n  }\n\n  self[kSignal] = null;\n  self[kListener] = null;\n}\n\nvar abortSignal = {\n  addSignal: addSignal$5\x2C\n  removeSignal: removeSignal$5\n};\n\nconst Readable$1 = readable;\nconst {\n  InvalidArgumentError: InvalidArgumentError$9\x2C\n  RequestAbortedError: RequestAbortedError$4\n} = errors$1;\nconst util$8 = util$i;\nconst { getResolveErrorBodyCallback: getResolveErrorBodyCallback$1 } = util$9;\nconst { AsyncResource: AsyncResource$4 } = require$$4$2;\nconst { addSignal: addSignal$4\x2C removeSignal: removeSignal$4 } = abortSignal;\n\nclass RequestHandler extends AsyncResource$4 {\n  constructor (opts\x2C callback) {\n    if (!opts || typeof opts !== 'object') {\n      throw new InvalidArgumentError$9('invalid opts')\n    }\n\n    const { signal\x2C method\x2C opaque\x2C body\x2C onInfo\x2C responseHeaders\x2C throwOnError\x2C highWaterMark } = opts;\n\n    try {\n      if (typeof callback !== 'function') {\n        throw new InvalidArgumentError$9('invalid callback')\n      }\n\n      if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n        throw new InvalidArgumentError$9('invalid highWaterMark')\n      }\n\n      if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n        throw new InvalidArgumentError$9('signal must be an EventEmitter or EventTarget')\n      }\n\n      if (method === 'CONNECT') {\n        throw new InvalidArgumentError$9('invalid method')\n      }\n\n      if (onInfo && typeof onInfo !== 'function') {\n        throw new InvalidArgumentError$9('invalid onInfo callback')\n      }\n\n      super('UNDICI_REQUEST');\n    } catch (err) {\n      if (util$8.isStream(body)) {\n        util$8.destroy(body.on('error'\x2C util$8.nop)\x2C err);\n      }\n      throw err\n    }\n\n    this.responseHeaders = responseHeaders || null;\n    this.opaque = opaque || null;\n    this.callback = callback;\n    this.res = null;\n    this.abort = null;\n    this.body = body;\n    this.trailers = {};\n    this.context = null;\n    this.onInfo = onInfo || null;\n    this.throwOnError = throwOnError;\n    this.highWaterMark = highWaterMark;\n\n    if (util$8.isStream(body)) {\n      body.on('error'\x2C (err) => {\n        this.onError(err);\n      });\n    }\n\n    addSignal$4(this\x2C signal);\n  }\n\n  onConnect (abort\x2C context) {\n    if (!this.callback) {\n      throw new RequestAbortedError$4()\n    }\n\n    this.abort = abort;\n    this.context = context;\n  }\n\n  onHeaders (statusCode\x2C rawHeaders\x2C resume\x2C statusMessage) {\n    const { callback\x2C opaque\x2C abort\x2C context\x2C responseHeaders\x2C highWaterMark } = this;\n\n    const headers = responseHeaders === 'raw' ? util$8.parseRawHeaders(rawHeaders) : util$8.parseHeaders(rawHeaders);\n\n    if (statusCode < 200) {\n      if (this.onInfo) {\n        this.onInfo({ statusCode\x2C headers });\n      }\n      return\n    }\n\n    const parsedHeaders = responseHeaders === 'raw' ? util$8.parseHeaders(rawHeaders) : headers;\n    const contentType = parsedHeaders['content-type'];\n    const body = new Readable$1({ resume\x2C abort\x2C contentType\x2C highWaterMark });\n\n    this.callback = null;\n    this.res = body;\n\n    if (callback !== null) {\n      if (this.throwOnError && statusCode >= 400) {\n        this.runInAsyncScope(getResolveErrorBodyCallback$1\x2C null\x2C\n          { callback\x2C body\x2C contentType\x2C statusCode\x2C statusMessage\x2C headers }\n        );\n      } else {\n        this.runInAsyncScope(callback\x2C null\x2C null\x2C {\n          statusCode\x2C\n          headers\x2C\n          trailers: this.trailers\x2C\n          opaque\x2C\n          body\x2C\n          context\n        });\n      }\n    }\n  }\n\n  onData (chunk) {\n    const { res } = this;\n    return res.push(chunk)\n  }\n\n  onComplete (trailers) {\n    const { res } = this;\n\n    removeSignal$4(this);\n\n    util$8.parseHeaders(trailers\x2C this.trailers);\n\n    res.push(null);\n  }\n\n  onError (err) {\n    const { res\x2C callback\x2C body\x2C opaque } = this;\n\n    removeSignal$4(this);\n\n    if (callback) {\n      // TODO: Does this need queueMicrotask?\n      this.callback = null;\n      queueMicrotask(() => {\n        this.runInAsyncScope(callback\x2C null\x2C err\x2C { opaque });\n      });\n    }\n\n    if (res) {\n      this.res = null;\n      // Ensure all queued handlers are invoked before destroying res.\n      queueMicrotask(() => {\n        util$8.destroy(res\x2C err);\n      });\n    }\n\n    if (body) {\n      this.body = null;\n      util$8.destroy(body\x2C err);\n    }\n  }\n}\n\nfunction request$1 (opts\x2C callback) {\n  if (callback === undefined) {\n    return new Promise((resolve\x2C reject) => {\n      request$1.call(this\x2C opts\x2C (err\x2C data) => {\n        return err ? reject(err) : resolve(data)\n      });\n    })\n  }\n\n  try {\n    this.dispatch(opts\x2C new RequestHandler(opts\x2C callback));\n  } catch (err) {\n    if (typeof callback !== 'function') {\n      throw err\n    }\n    const opaque = opts && opts.opaque;\n    queueMicrotask(() => callback(err\x2C { opaque }));\n  }\n}\n\nvar apiRequest = request$1;\n\nconst { finished\x2C PassThrough: PassThrough$1 } = require$$0$1;\nconst {\n  InvalidArgumentError: InvalidArgumentError$8\x2C\n  InvalidReturnValueError: InvalidReturnValueError$1\x2C\n  RequestAbortedError: RequestAbortedError$3\n} = errors$1;\nconst util$7 = util$i;\nconst { getResolveErrorBodyCallback } = util$9;\nconst { AsyncResource: AsyncResource$3 } = require$$4$2;\nconst { addSignal: addSignal$3\x2C removeSignal: removeSignal$3 } = abortSignal;\n\nclass StreamHandler extends AsyncResource$3 {\n  constructor (opts\x2C factory\x2C callback) {\n    if (!opts || typeof opts !== 'object') {\n      throw new InvalidArgumentError$8('invalid opts')\n    }\n\n    const { signal\x2C method\x2C opaque\x2C body\x2C onInfo\x2C responseHeaders\x2C throwOnError } = opts;\n\n    try {\n      if (typeof callback !== 'function') {\n        throw new InvalidArgumentError$8('invalid callback')\n      }\n\n      if (typeof factory !== 'function') {\n        throw new InvalidArgumentError$8('invalid factory')\n      }\n\n      if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n        throw new InvalidArgumentError$8('signal must be an EventEmitter or EventTarget')\n      }\n\n      if (method === 'CONNECT') {\n        throw new InvalidArgumentError$8('invalid method')\n      }\n\n      if (onInfo && typeof onInfo !== 'function') {\n        throw new InvalidArgumentError$8('invalid onInfo callback')\n      }\n\n      super('UNDICI_STREAM');\n    } catch (err) {\n      if (util$7.isStream(body)) {\n        util$7.destroy(body.on('error'\x2C util$7.nop)\x2C err);\n      }\n      throw err\n    }\n\n    this.responseHeaders = responseHeaders || null;\n    this.opaque = opaque || null;\n    this.factory = factory;\n    this.callback = callback;\n    this.res = null;\n    this.abort = null;\n    this.context = null;\n    this.trailers = null;\n    this.body = body;\n    this.onInfo = onInfo || null;\n    this.throwOnError = throwOnError || false;\n\n    if (util$7.isStream(body)) {\n      body.on('error'\x2C (err) => {\n        this.onError(err);\n      });\n    }\n\n    addSignal$3(this\x2C signal);\n  }\n\n  onConnect (abort\x2C context) {\n    if (!this.callback) {\n      throw new RequestAbortedError$3()\n    }\n\n    this.abort = abort;\n    this.context = context;\n  }\n\n  onHeaders (statusCode\x2C rawHeaders\x2C resume\x2C statusMessage) {\n    const { factory\x2C opaque\x2C context\x2C callback\x2C responseHeaders } = this;\n\n    const headers = responseHeaders === 'raw' ? util$7.parseRawHeaders(rawHeaders) : util$7.parseHeaders(rawHeaders);\n\n    if (statusCode < 200) {\n      if (this.onInfo) {\n        this.onInfo({ statusCode\x2C headers });\n      }\n      return\n    }\n\n    this.factory = null;\n\n    let res;\n\n    if (this.throwOnError && statusCode >= 400) {\n      const parsedHeaders = responseHeaders === 'raw' ? util$7.parseHeaders(rawHeaders) : headers;\n      const contentType = parsedHeaders['content-type'];\n      res = new PassThrough$1();\n\n      this.callback = null;\n      this.runInAsyncScope(getResolveErrorBodyCallback\x2C null\x2C\n        { callback\x2C body: res\x2C contentType\x2C statusCode\x2C statusMessage\x2C headers }\n      );\n    } else {\n      res = this.runInAsyncScope(factory\x2C null\x2C {\n        statusCode\x2C\n        headers\x2C\n        opaque\x2C\n        context\n      });\n\n      if (\n        !res ||\n        typeof res.write !== 'function' ||\n        typeof res.end !== 'function' ||\n        typeof res.on !== 'function'\n      ) {\n        throw new InvalidReturnValueError$1('expected Writable')\n      }\n\n      // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n      finished(res\x2C { readable: false }\x2C (err) => {\n        const { callback\x2C res\x2C opaque\x2C trailers\x2C abort } = this;\n\n        this.res = null;\n        if (err || !res.readable) {\n          util$7.destroy(res\x2C err);\n        }\n\n        this.callback = null;\n        this.runInAsyncScope(callback\x2C null\x2C err || null\x2C { opaque\x2C trailers });\n\n        if (err) {\n          abort();\n        }\n      });\n    }\n\n    res.on('drain'\x2C resume);\n\n    this.res = res;\n\n    const needDrain = res.writableNeedDrain !== undefined\n      ? res.writableNeedDrain\n      : res._writableState && res._writableState.needDrain;\n\n    return needDrain !== true\n  }\n\n  onData (chunk) {\n    const { res } = this;\n\n    return res.write(chunk)\n  }\n\n  onComplete (trailers) {\n    const { res } = this;\n\n    removeSignal$3(this);\n\n    this.trailers = util$7.parseHeaders(trailers);\n\n    res.end();\n  }\n\n  onError (err) {\n    const { res\x2C callback\x2C opaque\x2C body } = this;\n\n    removeSignal$3(this);\n\n    this.factory = null;\n\n    if (res) {\n      this.res = null;\n      util$7.destroy(res\x2C err);\n    } else if (callback) {\n      this.callback = null;\n      queueMicrotask(() => {\n        this.runInAsyncScope(callback\x2C null\x2C err\x2C { opaque });\n      });\n    }\n\n    if (body) {\n      this.body = null;\n      util$7.destroy(body\x2C err);\n    }\n  }\n}\n\nfunction stream (opts\x2C factory\x2C callback) {\n  if (callback === undefined) {\n    return new Promise((resolve\x2C reject) => {\n      stream.call(this\x2C opts\x2C factory\x2C (err\x2C data) => {\n        return err ? reject(err) : resolve(data)\n      });\n    })\n  }\n\n  try {\n    this.dispatch(opts\x2C new StreamHandler(opts\x2C factory\x2C callback));\n  } catch (err) {\n    if (typeof callback !== 'function') {\n      throw err\n    }\n    const opaque = opts && opts.opaque;\n    queueMicrotask(() => callback(err\x2C { opaque }));\n  }\n}\n\nvar apiStream = stream;\n\nconst {\n  Readable\x2C\n  Duplex\x2C\n  PassThrough\n} = require$$0$1;\nconst {\n  InvalidArgumentError: InvalidArgumentError$7\x2C\n  InvalidReturnValueError\x2C\n  RequestAbortedError: RequestAbortedError$2\n} = errors$1;\nconst util$6 = util$i;\nconst { AsyncResource: AsyncResource$2 } = require$$4$2;\nconst { addSignal: addSignal$2\x2C removeSignal: removeSignal$2 } = abortSignal;\nconst assert$1 = require$$0;\n\nconst kResume = Symbol('resume');\n\nclass PipelineRequest extends Readable {\n  constructor () {\n    super({ autoDestroy: true });\n\n    this[kResume] = null;\n  }\n\n  _read () {\n    const { [kResume]: resume } = this;\n\n    if (resume) {\n      this[kResume] = null;\n      resume();\n    }\n  }\n\n  _destroy (err\x2C callback) {\n    this._read();\n\n    callback(err);\n  }\n}\n\nclass PipelineResponse extends Readable {\n  constructor (resume) {\n    super({ autoDestroy: true });\n    this[kResume] = resume;\n  }\n\n  _read () {\n    this[kResume]();\n  }\n\n  _destroy (err\x2C callback) {\n    if (!err && !this._readableState.endEmitted) {\n      err = new RequestAbortedError$2();\n    }\n\n    callback(err);\n  }\n}\n\nclass PipelineHandler extends AsyncResource$2 {\n  constructor (opts\x2C handler) {\n    if (!opts || typeof opts !== 'object') {\n      throw new InvalidArgumentError$7('invalid opts')\n    }\n\n    if (typeof handler !== 'function') {\n      throw new InvalidArgumentError$7('invalid handler')\n    }\n\n    const { signal\x2C method\x2C opaque\x2C onInfo\x2C responseHeaders } = opts;\n\n    if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n      throw new InvalidArgumentError$7('signal must be an EventEmitter or EventTarget')\n    }\n\n    if (method === 'CONNECT') {\n      throw new InvalidArgumentError$7('invalid method')\n    }\n\n    if (onInfo && typeof onInfo !== 'function') {\n      throw new InvalidArgumentError$7('invalid onInfo callback')\n    }\n\n    super('UNDICI_PIPELINE');\n\n    this.opaque = opaque || null;\n    this.responseHeaders = responseHeaders || null;\n    this.handler = handler;\n    this.abort = null;\n    this.context = null;\n    this.onInfo = onInfo || null;\n\n    this.req = new PipelineRequest().on('error'\x2C util$6.nop);\n\n    this.ret = new Duplex({\n      readableObjectMode: opts.objectMode\x2C\n      autoDestroy: true\x2C\n      read: () => {\n        const { body } = this;\n\n        if (body && body.resume) {\n          body.resume();\n        }\n      }\x2C\n      write: (chunk\x2C encoding\x2C callback) => {\n        const { req } = this;\n\n        if (req.push(chunk\x2C encoding) || req._readableState.destroyed) {\n          callback();\n        } else {\n          req[kResume] = callback;\n        }\n      }\x2C\n      destroy: (err\x2C callback) => {\n        const { body\x2C req\x2C res\x2C ret\x2C abort } = this;\n\n        if (!err && !ret._readableState.endEmitted) {\n          err = new RequestAbortedError$2();\n        }\n\n        if (abort && err) {\n          abort();\n        }\n\n        util$6.destroy(body\x2C err);\n        util$6.destroy(req\x2C err);\n        util$6.destroy(res\x2C err);\n\n        removeSignal$2(this);\n\n        callback(err);\n      }\n    }).on('prefinish'\x2C () => {\n      const { req } = this;\n\n      // Node < 15 does not call _final in same tick.\n      req.push(null);\n    });\n\n    this.res = null;\n\n    addSignal$2(this\x2C signal);\n  }\n\n  onConnect (abort\x2C context) {\n    const { ret\x2C res } = this;\n\n    assert$1(!res\x2C 'pipeline cannot be retried');\n\n    if (ret.destroyed) {\n      throw new RequestAbortedError$2()\n    }\n\n    this.abort = abort;\n    this.context = context;\n  }\n\n  onHeaders (statusCode\x2C rawHeaders\x2C resume) {\n    const { opaque\x2C handler\x2C context } = this;\n\n    if (statusCode < 200) {\n      if (this.onInfo) {\n        const headers = this.responseHeaders === 'raw' ? util$6.parseRawHeaders(rawHeaders) : util$6.parseHeaders(rawHeaders);\n        this.onInfo({ statusCode\x2C headers });\n      }\n      return\n    }\n\n    this.res = new PipelineResponse(resume);\n\n    let body;\n    try {\n      this.handler = null;\n      const headers = this.responseHeaders === 'raw' ? util$6.parseRawHeaders(rawHeaders) : util$6.parseHeaders(rawHeaders);\n      body = this.runInAsyncScope(handler\x2C null\x2C {\n        statusCode\x2C\n        headers\x2C\n        opaque\x2C\n        body: this.res\x2C\n        context\n      });\n    } catch (err) {\n      this.res.on('error'\x2C util$6.nop);\n      throw err\n    }\n\n    if (!body || typeof body.on !== 'function') {\n      throw new InvalidReturnValueError('expected Readable')\n    }\n\n    body\n      .on('data'\x2C (chunk) => {\n        const { ret\x2C body } = this;\n\n        if (!ret.push(chunk) && body.pause) {\n          body.pause();\n        }\n      })\n      .on('error'\x2C (err) => {\n        const { ret } = this;\n\n        util$6.destroy(ret\x2C err);\n      })\n      .on('end'\x2C () => {\n        const { ret } = this;\n\n        ret.push(null);\n      })\n      .on('close'\x2C () => {\n        const { ret } = this;\n\n        if (!ret._readableState.ended) {\n          util$6.destroy(ret\x2C new RequestAbortedError$2());\n        }\n      });\n\n    this.body = body;\n  }\n\n  onData (chunk) {\n    const { res } = this;\n    return res.push(chunk)\n  }\n\n  onComplete (trailers) {\n    const { res } = this;\n    res.push(null);\n  }\n\n  onError (err) {\n    const { ret } = this;\n    this.handler = null;\n    util$6.destroy(ret\x2C err);\n  }\n}\n\nfunction pipeline (opts\x2C handler) {\n  try {\n    const pipelineHandler = new PipelineHandler(opts\x2C handler);\n    this.dispatch({ ...opts\x2C body: pipelineHandler.req }\x2C pipelineHandler);\n    return pipelineHandler.ret\n  } catch (err) {\n    return new PassThrough().destroy(err)\n  }\n}\n\nvar apiPipeline = pipeline;\n\nconst { InvalidArgumentError: InvalidArgumentError$6\x2C RequestAbortedError: RequestAbortedError$1\x2C SocketError: SocketError$1 } = errors$1;\nconst { AsyncResource: AsyncResource$1 } = require$$4$2;\nconst util$5 = util$i;\nconst { addSignal: addSignal$1\x2C removeSignal: removeSignal$1 } = abortSignal;\nconst assert = require$$0;\n\nclass UpgradeHandler extends AsyncResource$1 {\n  constructor (opts\x2C callback) {\n    if (!opts || typeof opts !== 'object') {\n      throw new InvalidArgumentError$6('invalid opts')\n    }\n\n    if (typeof callback !== 'function') {\n      throw new InvalidArgumentError$6('invalid callback')\n    }\n\n    const { signal\x2C opaque\x2C responseHeaders } = opts;\n\n    if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n      throw new InvalidArgumentError$6('signal must be an EventEmitter or EventTarget')\n    }\n\n    super('UNDICI_UPGRADE');\n\n    this.responseHeaders = responseHeaders || null;\n    this.opaque = opaque || null;\n    this.callback = callback;\n    this.abort = null;\n    this.context = null;\n\n    addSignal$1(this\x2C signal);\n  }\n\n  onConnect (abort\x2C context) {\n    if (!this.callback) {\n      throw new RequestAbortedError$1()\n    }\n\n    this.abort = abort;\n    this.context = null;\n  }\n\n  onHeaders () {\n    throw new SocketError$1('bad upgrade'\x2C null)\n  }\n\n  onUpgrade (statusCode\x2C rawHeaders\x2C socket) {\n    const { callback\x2C opaque\x2C context } = this;\n\n    assert.strictEqual(statusCode\x2C 101);\n\n    removeSignal$1(this);\n\n    this.callback = null;\n    const headers = this.responseHeaders === 'raw' ? util$5.parseRawHeaders(rawHeaders) : util$5.parseHeaders(rawHeaders);\n    this.runInAsyncScope(callback\x2C null\x2C null\x2C {\n      headers\x2C\n      socket\x2C\n      opaque\x2C\n      context\n    });\n  }\n\n  onError (err) {\n    const { callback\x2C opaque } = this;\n\n    removeSignal$1(this);\n\n    if (callback) {\n      this.callback = null;\n      queueMicrotask(() => {\n        this.runInAsyncScope(callback\x2C null\x2C err\x2C { opaque });\n      });\n    }\n  }\n}\n\nfunction upgrade (opts\x2C callback) {\n  if (callback === undefined) {\n    return new Promise((resolve\x2C reject) => {\n      upgrade.call(this\x2C opts\x2C (err\x2C data) => {\n        return err ? reject(err) : resolve(data)\n      });\n    })\n  }\n\n  try {\n    const upgradeHandler = new UpgradeHandler(opts\x2C callback);\n    this.dispatch({\n      ...opts\x2C\n      method: opts.method || 'GET'\x2C\n      upgrade: opts.protocol || 'Websocket'\n    }\x2C upgradeHandler);\n  } catch (err) {\n    if (typeof callback !== 'function') {\n      throw err\n    }\n    const opaque = opts && opts.opaque;\n    queueMicrotask(() => callback(err\x2C { opaque }));\n  }\n}\n\nvar apiUpgrade = upgrade;\n\nconst { InvalidArgumentError: InvalidArgumentError$5\x2C RequestAbortedError\x2C SocketError } = errors$1;\nconst { AsyncResource } = require$$4$2;\nconst util$4 = util$i;\nconst { addSignal\x2C removeSignal } = abortSignal;\n\nclass ConnectHandler extends AsyncResource {\n  constructor (opts\x2C callback) {\n    if (!opts || typeof opts !== 'object') {\n      throw new InvalidArgumentError$5('invalid opts')\n    }\n\n    if (typeof callback !== 'function') {\n      throw new InvalidArgumentError$5('invalid callback')\n    }\n\n    const { signal\x2C opaque\x2C responseHeaders } = opts;\n\n    if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n      throw new InvalidArgumentError$5('signal must be an EventEmitter or EventTarget')\n    }\n\n    super('UNDICI_CONNECT');\n\n    this.opaque = opaque || null;\n    this.responseHeaders = responseHeaders || null;\n    this.callback = callback;\n    this.abort = null;\n\n    addSignal(this\x2C signal);\n  }\n\n  onConnect (abort\x2C context) {\n    if (!this.callback) {\n      throw new RequestAbortedError()\n    }\n\n    this.abort = abort;\n    this.context = context;\n  }\n\n  onHeaders () {\n    throw new SocketError('bad connect'\x2C null)\n  }\n\n  onUpgrade (statusCode\x2C rawHeaders\x2C socket) {\n    const { callback\x2C opaque\x2C context } = this;\n\n    removeSignal(this);\n\n    this.callback = null;\n    const headers = this.responseHeaders === 'raw' ? util$4.parseRawHeaders(rawHeaders) : util$4.parseHeaders(rawHeaders);\n    this.runInAsyncScope(callback\x2C null\x2C null\x2C {\n      statusCode\x2C\n      headers\x2C\n      socket\x2C\n      opaque\x2C\n      context\n    });\n  }\n\n  onError (err) {\n    const { callback\x2C opaque } = this;\n\n    removeSignal(this);\n\n    if (callback) {\n      this.callback = null;\n      queueMicrotask(() => {\n        this.runInAsyncScope(callback\x2C null\x2C err\x2C { opaque });\n      });\n    }\n  }\n}\n\nfunction connect (opts\x2C callback) {\n  if (callback === undefined) {\n    return new Promise((resolve\x2C reject) => {\n      connect.call(this\x2C opts\x2C (err\x2C data) => {\n        return err ? reject(err) : resolve(data)\n      });\n    })\n  }\n\n  try {\n    const connectHandler = new ConnectHandler(opts\x2C callback);\n    this.dispatch({ ...opts\x2C method: 'CONNECT' }\x2C connectHandler);\n  } catch (err) {\n    if (typeof callback !== 'function') {\n      throw err\n    }\n    const opaque = opts && opts.opaque;\n    queueMicrotask(() => callback(err\x2C { opaque }));\n  }\n}\n\nvar apiConnect = connect;\n\napi$1.request = apiRequest;\napi$1.stream = apiStream;\napi$1.pipeline = apiPipeline;\napi$1.upgrade = apiUpgrade;\napi$1.connect = apiConnect;\n\nconst { UndiciError } = errors$1;\n\nlet MockNotMatchedError$1 = class MockNotMatchedError extends UndiciError {\n  constructor (message) {\n    super(message);\n    Error.captureStackTrace(this\x2C MockNotMatchedError$1);\n    this.name = 'MockNotMatchedError';\n    this.message = message || 'The request does not match any registered mock dispatches';\n    this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED';\n  }\n};\n\nvar mockErrors = {\n  MockNotMatchedError: MockNotMatchedError$1\n};\n\nvar mockSymbols = {\n  kAgent: Symbol('agent')\x2C\n  kOptions: Symbol('options')\x2C\n  kFactory: Symbol('factory')\x2C\n  kDispatches: Symbol('dispatches')\x2C\n  kDispatchKey: Symbol('dispatch key')\x2C\n  kDefaultHeaders: Symbol('default headers')\x2C\n  kDefaultTrailers: Symbol('default trailers')\x2C\n  kContentLength: Symbol('content length')\x2C\n  kMockAgent: Symbol('mock agent')\x2C\n  kMockAgentSet: Symbol('mock agent set')\x2C\n  kMockAgentGet: Symbol('mock agent get')\x2C\n  kMockDispatch: Symbol('mock dispatch')\x2C\n  kClose: Symbol('close')\x2C\n  kOriginalClose: Symbol('original agent close')\x2C\n  kOrigin: Symbol('origin')\x2C\n  kIsMockActive: Symbol('is mock active')\x2C\n  kNetConnect: Symbol('net connect')\x2C\n  kGetNetConnect: Symbol('get net connect')\x2C\n  kConnected: Symbol('connected')\n};\n\nconst { MockNotMatchedError } = mockErrors;\nconst {\n  kDispatches: kDispatches$3\x2C\n  kMockAgent: kMockAgent$2\x2C\n  kOriginalDispatch: kOriginalDispatch$2\x2C\n  kOrigin: kOrigin$2\x2C\n  kGetNetConnect\n} = mockSymbols;\nconst { buildURL: buildURL$1\x2C nop } = util$i;\nconst { STATUS_CODES } = require$$2;\nconst {\n  types: {\n    isPromise\n  }\n} = require$$0$2;\n\nfunction matchValue (match\x2C value) {\n  if (typeof match === 'string') {\n    return match === value\n  }\n  if (match instanceof RegExp) {\n    return match.test(value)\n  }\n  if (typeof match === 'function') {\n    return match(value) === true\n  }\n  return false\n}\n\nfunction lowerCaseEntries (headers) {\n  return Object.fromEntries(\n    Object.entries(headers).map(([headerName\x2C headerValue]) => {\n      return [headerName.toLocaleLowerCase()\x2C headerValue]\n    })\n  )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string\x2C string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers\x2C key) {\n  if (Array.isArray(headers)) {\n    for (let i = 0; i < headers.length; i += 2) {\n      if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n        return headers[i + 1]\n      }\n    }\n\n    return undefined\n  } else if (typeof headers.get === 'function') {\n    return headers.get(key)\n  } else {\n    return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n  }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n  const clone = headers.slice();\n  const entries = [];\n  for (let index = 0; index < clone.length; index += 2) {\n    entries.push([clone[index]\x2C clone[index + 1]]);\n  }\n  return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch\x2C headers) {\n  if (typeof mockDispatch.headers === 'function') {\n    if (Array.isArray(headers)) { // fetch HeadersList\n      headers = buildHeadersFromArray(headers);\n    }\n    return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n  }\n  if (typeof mockDispatch.headers === 'undefined') {\n    return true\n  }\n  if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n    return false\n  }\n\n  for (const [matchHeaderName\x2C matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n    const headerValue = getHeaderByName(headers\x2C matchHeaderName);\n\n    if (!matchValue(matchHeaderValue\x2C headerValue)) {\n      return false\n    }\n  }\n  return true\n}\n\nfunction safeUrl (path) {\n  if (typeof path !== 'string') {\n    return path\n  }\n\n  const pathSegments = path.split('?');\n\n  if (pathSegments.length !== 2) {\n    return path\n  }\n\n  const qp = new URLSearchParams(pathSegments.pop());\n  qp.sort();\n  return [...pathSegments\x2C qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch\x2C { path\x2C method\x2C body\x2C headers }) {\n  const pathMatch = matchValue(mockDispatch.path\x2C path);\n  const methodMatch = matchValue(mockDispatch.method\x2C method);\n  const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body\x2C body) : true;\n  const headersMatch = matchHeaders(mockDispatch\x2C headers);\n  return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData$1 (data) {\n  if (Buffer.isBuffer(data)) {\n    return data\n  } else if (typeof data === 'object') {\n    return JSON.stringify(data)\n  } else {\n    return data.toString()\n  }\n}\n\nfunction getMockDispatch (mockDispatches\x2C key) {\n  const basePath = key.query ? buildURL$1(key.path\x2C key.query) : key.path;\n  const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath;\n\n  // Match path\n  let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path)\x2C resolvedPath));\n  if (matchedMockDispatches.length === 0) {\n    throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n  }\n\n  // Match method\n  matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method\x2C key.method));\n  if (matchedMockDispatches.length === 0) {\n    throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n  }\n\n  // Match body\n  matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body\x2C key.body) : true);\n  if (matchedMockDispatches.length === 0) {\n    throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n  }\n\n  // Match headers\n  matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch\x2C key.headers));\n  if (matchedMockDispatches.length === 0) {\n    throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n  }\n\n  return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch$1 (mockDispatches\x2C key\x2C data) {\n  const baseData = { timesInvoked: 0\x2C times: 1\x2C persist: false\x2C consumed: false };\n  const replyData = typeof data === 'function' ? { callback: data } : { ...data };\n  const newMockDispatch = { ...baseData\x2C ...key\x2C pending: true\x2C data: { error: null\x2C ...replyData } };\n  mockDispatches.push(newMockDispatch);\n  return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches\x2C key) {\n  const index = mockDispatches.findIndex(dispatch => {\n    if (!dispatch.consumed) {\n      return false\n    }\n    return matchKey(dispatch\x2C key)\n  });\n  if (index !== -1) {\n    mockDispatches.splice(index\x2C 1);\n  }\n}\n\nfunction buildKey$1 (opts) {\n  const { path\x2C method\x2C body\x2C headers\x2C query } = opts;\n  return {\n    path\x2C\n    method\x2C\n    body\x2C\n    headers\x2C\n    query\n  }\n}\n\nfunction generateKeyValues (data) {\n  return Object.entries(data).reduce((keyValuePairs\x2C [key\x2C value]) => [\n    ...keyValuePairs\x2C\n    Buffer.from(`${key}`)\x2C\n    Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n  ]\x2C [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n  return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n  const buffers = [];\n  for await (const data of body) {\n    buffers.push(data);\n  }\n  return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts\x2C handler) {\n  // Get mock dispatch from built key\n  const key = buildKey$1(opts);\n  const mockDispatch = getMockDispatch(this[kDispatches$3]\x2C key);\n\n  mockDispatch.timesInvoked++;\n\n  // Here's where we resolve a callback if a callback is present for the dispatch data.\n  if (mockDispatch.data.callback) {\n    mockDispatch.data = { ...mockDispatch.data\x2C ...mockDispatch.data.callback(opts) };\n  }\n\n  // Parse mockDispatch data\n  const { data: { statusCode\x2C data\x2C headers\x2C trailers\x2C error }\x2C delay\x2C persist } = mockDispatch;\n  const { timesInvoked\x2C times } = mockDispatch;\n\n  // If it's used up and not persistent\x2C mark as consumed\n  mockDispatch.consumed = !persist && timesInvoked >= times;\n  mockDispatch.pending = timesInvoked < times;\n\n  // If specified\x2C trigger dispatch error\n  if (error !== null) {\n    deleteMockDispatch(this[kDispatches$3]\x2C key);\n    handler.onError(error);\n    return true\n  }\n\n  // Handle the request with a delay if necessary\n  if (typeof delay === 'number' && delay > 0) {\n    setTimeout(() => {\n      handleReply(this[kDispatches$3]);\n    }\x2C delay);\n  } else {\n    handleReply(this[kDispatches$3]);\n  }\n\n  function handleReply (mockDispatches\x2C _data = data) {\n    // fetch's HeadersList is a 1D string array\n    const optsHeaders = Array.isArray(opts.headers)\n      ? buildHeadersFromArray(opts.headers)\n      : opts.headers;\n    const body = typeof _data === 'function'\n      ? _data({ ...opts\x2C headers: optsHeaders })\n      : _data;\n\n    // util.types.isPromise is likely needed for jest.\n    if (isPromise(body)) {\n      // If handleReply is asynchronous\x2C throwing an error\n      // in the callback will reject the promise\x2C rather than\n      // synchronously throw the error\x2C which breaks some tests.\n      // Rather\x2C we wait for the callback to resolve if it is a\n      // promise\x2C and then re-run handleReply with the new body.\n      body.then((newData) => handleReply(mockDispatches\x2C newData));\n      return\n    }\n\n    const responseData = getResponseData$1(body);\n    const responseHeaders = generateKeyValues(headers);\n    const responseTrailers = generateKeyValues(trailers);\n\n    handler.abort = nop;\n    handler.onHeaders(statusCode\x2C responseHeaders\x2C resume\x2C getStatusText(statusCode));\n    handler.onData(Buffer.from(responseData));\n    handler.onComplete(responseTrailers);\n    deleteMockDispatch(mockDispatches\x2C key);\n  }\n\n  function resume () {}\n\n  return true\n}\n\nfunction buildMockDispatch$2 () {\n  const agent = this[kMockAgent$2];\n  const origin = this[kOrigin$2];\n  const originalDispatch = this[kOriginalDispatch$2];\n\n  return function dispatch (opts\x2C handler) {\n    if (agent.isMockActive) {\n      try {\n        mockDispatch.call(this\x2C opts\x2C handler);\n      } catch (error) {\n        if (error instanceof MockNotMatchedError) {\n          const netConnect = agent[kGetNetConnect]();\n          if (netConnect === false) {\n            throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n          }\n          if (checkNetConnect(netConnect\x2C origin)) {\n            originalDispatch.call(this\x2C opts\x2C handler);\n          } else {\n            throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n          }\n        } else {\n          throw error\n        }\n      }\n    } else {\n      originalDispatch.call(this\x2C opts\x2C handler);\n    }\n  }\n}\n\nfunction checkNetConnect (netConnect\x2C origin) {\n  const url = new URL(origin);\n  if (netConnect === true) {\n    return true\n  } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher\x2C url.host))) {\n    return true\n  }\n  return false\n}\n\nfunction buildMockOptions (opts) {\n  if (opts) {\n    const { agent\x2C ...mockOptions } = opts;\n    return mockOptions\n  }\n}\n\nvar mockUtils = {\n  getResponseData: getResponseData$1\x2C\n  getMockDispatch\x2C\n  addMockDispatch: addMockDispatch$1\x2C\n  deleteMockDispatch\x2C\n  buildKey: buildKey$1\x2C\n  generateKeyValues\x2C\n  matchValue\x2C\n  getResponse\x2C\n  getStatusText\x2C\n  mockDispatch\x2C\n  buildMockDispatch: buildMockDispatch$2\x2C\n  checkNetConnect\x2C\n  buildMockOptions\x2C\n  getHeaderByName\n};\n\nvar mockInterceptor = {};\n\nconst { getResponseData\x2C buildKey\x2C addMockDispatch } = mockUtils;\nconst {\n  kDispatches: kDispatches$2\x2C\n  kDispatchKey\x2C\n  kDefaultHeaders\x2C\n  kDefaultTrailers\x2C\n  kContentLength\x2C\n  kMockDispatch\n} = mockSymbols;\nconst { InvalidArgumentError: InvalidArgumentError$4 } = errors$1;\nconst { buildURL } = util$i;\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n  constructor (mockDispatch) {\n    this[kMockDispatch] = mockDispatch;\n  }\n\n  /**\n   * Delay a reply by a set amount in ms.\n   */\n  delay (waitInMs) {\n    if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n      throw new InvalidArgumentError$4('waitInMs must be a valid integer > 0')\n    }\n\n    this[kMockDispatch].delay = waitInMs;\n    return this\n  }\n\n  /**\n   * For a defined reply\x2C never mark as consumed.\n   */\n  persist () {\n    this[kMockDispatch].persist = true;\n    return this\n  }\n\n  /**\n   * Allow one to define a reply for a set amount of matching requests.\n   */\n  times (repeatTimes) {\n    if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n      throw new InvalidArgumentError$4('repeatTimes must be a valid integer > 0')\n    }\n\n    this[kMockDispatch].times = repeatTimes;\n    return this\n  }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nlet MockInterceptor$2 = class MockInterceptor {\n  constructor (opts\x2C mockDispatches) {\n    if (typeof opts !== 'object') {\n      throw new InvalidArgumentError$4('opts must be an object')\n    }\n    if (typeof opts.path === 'undefined') {\n      throw new InvalidArgumentError$4('opts.path must be defined')\n    }\n    if (typeof opts.method === 'undefined') {\n      opts.method = 'GET';\n    }\n    // See https://github.com/nodejs/undici/issues/1245\n    // As per RFC 3986\x2C clients are not supposed to send URI\n    // fragments to servers when they retrieve a document\x2C\n    if (typeof opts.path === 'string') {\n      if (opts.query) {\n        opts.path = buildURL(opts.path\x2C opts.query);\n      } else {\n        // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n        const parsedURL = new URL(opts.path\x2C 'data://');\n        opts.path = parsedURL.pathname + parsedURL.search;\n      }\n    }\n    if (typeof opts.method === 'string') {\n      opts.method = opts.method.toUpperCase();\n    }\n\n    this[kDispatchKey] = buildKey(opts);\n    this[kDispatches$2] = mockDispatches;\n    this[kDefaultHeaders] = {};\n    this[kDefaultTrailers] = {};\n    this[kContentLength] = false;\n  }\n\n  createMockScopeDispatchData (statusCode\x2C data\x2C responseOptions = {}) {\n    const responseData = getResponseData(data);\n    const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {};\n    const headers = { ...this[kDefaultHeaders]\x2C ...contentLength\x2C ...responseOptions.headers };\n    const trailers = { ...this[kDefaultTrailers]\x2C ...responseOptions.trailers };\n\n    return { statusCode\x2C data\x2C headers\x2C trailers }\n  }\n\n  validateReplyParameters (statusCode\x2C data\x2C responseOptions) {\n    if (typeof statusCode === 'undefined') {\n      throw new InvalidArgumentError$4('statusCode must be defined')\n    }\n    if (typeof data === 'undefined') {\n      throw new InvalidArgumentError$4('data must be defined')\n    }\n    if (typeof responseOptions !== 'object') {\n      throw new InvalidArgumentError$4('responseOptions must be an object')\n    }\n  }\n\n  /**\n   * Mock an undici request with a defined reply.\n   */\n  reply (replyData) {\n    // Values of reply aren't available right now as they\n    // can only be available when the reply callback is invoked.\n    if (typeof replyData === 'function') {\n      // We'll first wrap the provided callback in another function\x2C\n      // this function will properly resolve the data from the callback\n      // when invoked.\n      const wrappedDefaultsCallback = (opts) => {\n        // Our reply options callback contains the parameter for statusCode\x2C data and options.\n        const resolvedData = replyData(opts);\n\n        // Check if it is in the right format\n        if (typeof resolvedData !== 'object') {\n          throw new InvalidArgumentError$4('reply options callback must return an object')\n        }\n\n        const { statusCode\x2C data = ''\x2C responseOptions = {} } = resolvedData;\n        this.validateReplyParameters(statusCode\x2C data\x2C responseOptions);\n        // Since the values can be obtained immediately we return them\n        // from this higher order function that will be resolved later.\n        return {\n          ...this.createMockScopeDispatchData(statusCode\x2C data\x2C responseOptions)\n        }\n      };\n\n      // Add usual dispatch data\x2C but this time set the data parameter to function that will eventually provide data.\n      const newMockDispatch = addMockDispatch(this[kDispatches$2]\x2C this[kDispatchKey]\x2C wrappedDefaultsCallback);\n      return new MockScope(newMockDispatch)\n    }\n\n    // We can have either one or three parameters\x2C if we get here\x2C\n    // we should have 1-3 parameters. So we spread the arguments of\n    // this function to obtain the parameters\x2C since replyData will always\n    // just be the statusCode.\n    const [statusCode\x2C data = ''\x2C responseOptions = {}] = [...arguments];\n    this.validateReplyParameters(statusCode\x2C data\x2C responseOptions);\n\n    // Send in-already provided data like usual\n    const dispatchData = this.createMockScopeDispatchData(statusCode\x2C data\x2C responseOptions);\n    const newMockDispatch = addMockDispatch(this[kDispatches$2]\x2C this[kDispatchKey]\x2C dispatchData);\n    return new MockScope(newMockDispatch)\n  }\n\n  /**\n   * Mock an undici request with a defined error.\n   */\n  replyWithError (error) {\n    if (typeof error === 'undefined') {\n      throw new InvalidArgumentError$4('error must be defined')\n    }\n\n    const newMockDispatch = addMockDispatch(this[kDispatches$2]\x2C this[kDispatchKey]\x2C { error });\n    return new MockScope(newMockDispatch)\n  }\n\n  /**\n   * Set default reply headers on the interceptor for subsequent replies\n   */\n  defaultReplyHeaders (headers) {\n    if (typeof headers === 'undefined') {\n      throw new InvalidArgumentError$4('headers must be defined')\n    }\n\n    this[kDefaultHeaders] = headers;\n    return this\n  }\n\n  /**\n   * Set default reply trailers on the interceptor for subsequent replies\n   */\n  defaultReplyTrailers (trailers) {\n    if (typeof trailers === 'undefined') {\n      throw new InvalidArgumentError$4('trailers must be defined')\n    }\n\n    this[kDefaultTrailers] = trailers;\n    return this\n  }\n\n  /**\n   * Set reply content length header for replies on the interceptor\n   */\n  replyContentLength () {\n    this[kContentLength] = true;\n    return this\n  }\n};\n\nmockInterceptor.MockInterceptor = MockInterceptor$2;\nmockInterceptor.MockScope = MockScope;\n\nconst { promisify: promisify$1 } = require$$0$2;\nconst Client = client;\nconst { buildMockDispatch: buildMockDispatch$1 } = mockUtils;\nconst {\n  kDispatches: kDispatches$1\x2C\n  kMockAgent: kMockAgent$1\x2C\n  kClose: kClose$1\x2C\n  kOriginalClose: kOriginalClose$1\x2C\n  kOrigin: kOrigin$1\x2C\n  kOriginalDispatch: kOriginalDispatch$1\x2C\n  kConnected: kConnected$1\n} = mockSymbols;\nconst { MockInterceptor: MockInterceptor$1 } = mockInterceptor;\nconst Symbols$1 = symbols$3;\nconst { InvalidArgumentError: InvalidArgumentError$3 } = errors$1;\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n  constructor (origin\x2C opts) {\n    super(origin\x2C opts);\n\n    if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n      throw new InvalidArgumentError$3('Argument opts.agent must implement Agent')\n    }\n\n    this[kMockAgent$1] = opts.agent;\n    this[kOrigin$1] = origin;\n    this[kDispatches$1] = [];\n    this[kConnected$1] = 1;\n    this[kOriginalDispatch$1] = this.dispatch;\n    this[kOriginalClose$1] = this.close.bind(this);\n\n    this.dispatch = buildMockDispatch$1.call(this);\n    this.close = this[kClose$1];\n  }\n\n  get [Symbols$1.kConnected] () {\n    return this[kConnected$1]\n  }\n\n  /**\n   * Sets up the base interceptor for mocking replies from undici.\n   */\n  intercept (opts) {\n    return new MockInterceptor$1(opts\x2C this[kDispatches$1])\n  }\n\n  async [kClose$1] () {\n    await promisify$1(this[kOriginalClose$1])();\n    this[kConnected$1] = 0;\n    this[kMockAgent$1][Symbols$1.kClients].delete(this[kOrigin$1]);\n  }\n}\n\nconst { promisify } = require$$0$2;\nconst Pool = pool;\nconst { buildMockDispatch } = mockUtils;\nconst {\n  kDispatches\x2C\n  kMockAgent\x2C\n  kClose\x2C\n  kOriginalClose\x2C\n  kOrigin\x2C\n  kOriginalDispatch\x2C\n  kConnected\n} = mockSymbols;\nconst { MockInterceptor } = mockInterceptor;\nconst Symbols = symbols$3;\nconst { InvalidArgumentError: InvalidArgumentError$2 } = errors$1;\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n  constructor (origin\x2C opts) {\n    super(origin\x2C opts);\n\n    if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n      throw new InvalidArgumentError$2('Argument opts.agent must implement Agent')\n    }\n\n    this[kMockAgent] = opts.agent;\n    this[kOrigin] = origin;\n    this[kDispatches] = [];\n    this[kConnected] = 1;\n    this[kOriginalDispatch] = this.dispatch;\n    this[kOriginalClose] = this.close.bind(this);\n\n    this.dispatch = buildMockDispatch.call(this);\n    this.close = this[kClose];\n  }\n\n  get [Symbols.kConnected] () {\n    return this[kConnected]\n  }\n\n  /**\n   * Sets up the base interceptor for mocking replies from undici.\n   */\n  intercept (opts) {\n    return new MockInterceptor(opts\x2C this[kDispatches])\n  }\n\n  async [kClose] () {\n    await promisify(this[kOriginalClose])();\n    this[kConnected] = 0;\n    this[kMockAgent][Symbols.kClients].delete(this[kOrigin]);\n  }\n}\n\n// We include a version number for the Dispatcher API. In case of breaking changes\x2C\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1');\nconst { InvalidArgumentError: InvalidArgumentError$1 } = errors$1;\nconst Agent = agent;\n\nif (getGlobalDispatcher$1() === undefined) {\n  setGlobalDispatcher$1(new Agent());\n}\n\nfunction setGlobalDispatcher$1 (agent) {\n  if (!agent || typeof agent.dispatch !== 'function') {\n    throw new InvalidArgumentError$1('Argument agent must implement Agent')\n  }\n  Object.defineProperty(globalThis\x2C globalDispatcher\x2C {\n    value: agent\x2C\n    writable: true\x2C\n    enumerable: false\x2C\n    configurable: false\n  });\n}\n\nfunction getGlobalDispatcher$1 () {\n  return globalThis[globalDispatcher]\n}\n\nvar global$1 = {\n  setGlobalDispatcher: setGlobalDispatcher$1\x2C\n  getGlobalDispatcher: getGlobalDispatcher$1\n};\n\nvar headers;\nvar hasRequiredHeaders;\n\nfunction requireHeaders () {\n\x09if (hasRequiredHeaders) return headers;\n\x09hasRequiredHeaders = 1;\n\n\x09const { kHeadersList } = symbols$3;\n\x09const { kGuard } = requireSymbols$2();\n\x09const { kEnumerableProperty } = util$i;\n\x09const {\n\x09  makeIterator\x2C\n\x09  isValidHeaderName\x2C\n\x09  isValidHeaderValue\n\x09} = requireUtil$3();\n\x09const { webidl } = requireWebidl();\n\x09const assert = require$$0;\n\n\x09const kHeadersMap = Symbol('headers map');\n\x09const kHeadersSortedMap = Symbol('headers map sorted');\n\n\x09/**\n\x09 * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n\x09 * @param {string} potentialValue\n\x09 */\n\x09function headerValueNormalize (potentialValue) {\n\x09  //  To normalize a byte sequence potentialValue\x2C remove\n\x09  //  any leading and trailing HTTP whitespace bytes from\n\x09  //  potentialValue.\n\n\x09  // Trimming the end with `.replace()` and a RegExp is typically subject to\n\x09  // ReDoS. This is safer and faster.\n\x09  let i = potentialValue.length;\n\x09  while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n\x09  return potentialValue.slice(0\x2C i + 1).replace(/^[\\r\\n\\t ]+/\x2C '')\n\x09}\n\n\x09function fill (headers\x2C object) {\n\x09  // To fill a Headers object headers with a given object object\x2C run these steps:\n\n\x09  // 1. If object is a sequence\x2C then for each header in object:\n\x09  // Note: webidl conversion to array has already been done.\n\x09  if (Array.isArray(object)) {\n\x09    for (const header of object) {\n\x09      // 1. If header does not contain exactly two items\x2C then throw a TypeError.\n\x09      if (header.length !== 2) {\n\x09        throw webidl.errors.exception({\n\x09          header: 'Headers constructor'\x2C\n\x09          message: `expected name/value pair to be length 2\x2C found ${header.length}.`\n\x09        })\n\x09      }\n\n\x09      // 2. Append (header\u2019s first item\x2C header\u2019s second item) to headers.\n\x09      headers.append(header[0]\x2C header[1]);\n\x09    }\n\x09  } else if (typeof object === 'object' && object !== null) {\n\x09    // Note: null should throw\n\n\x09    // 2. Otherwise\x2C object is a record\x2C then for each key \u2192 value in object\x2C\n\x09    //    append (key\x2C value) to headers\n\x09    for (const [key\x2C value] of Object.entries(object)) {\n\x09      headers.append(key\x2C value);\n\x09    }\n\x09  } else {\n\x09    throw webidl.errors.conversionFailed({\n\x09      prefix: 'Headers constructor'\x2C\n\x09      argument: 'Argument 1'\x2C\n\x09      types: ['sequence<sequence<ByteString>>'\x2C 'record<ByteString\x2C ByteString>']\n\x09    })\n\x09  }\n\x09}\n\n\x09class HeadersList {\n\x09  /** @type {[string\x2C string][]|null} */\n\x09  cookies = null\n\n\x09  constructor (init) {\n\x09    if (init instanceof HeadersList) {\n\x09      this[kHeadersMap] = new Map(init[kHeadersMap]);\n\x09      this[kHeadersSortedMap] = init[kHeadersSortedMap];\n\x09      this.cookies = init.cookies;\n\x09    } else {\n\x09      this[kHeadersMap] = new Map(init);\n\x09      this[kHeadersSortedMap] = null;\n\x09    }\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#header-list-contains\n\x09  contains (name) {\n\x09    // A header list list contains a header name name if list\n\x09    // contains a header whose name is a byte-case-insensitive\n\x09    // match for name.\n\x09    name = name.toLowerCase();\n\n\x09    return this[kHeadersMap].has(name)\n\x09  }\n\n\x09  clear () {\n\x09    this[kHeadersMap].clear();\n\x09    this[kHeadersSortedMap] = null;\n\x09    this.cookies = null;\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#concept-header-list-append\n\x09  append (name\x2C value) {\n\x09    this[kHeadersSortedMap] = null;\n\n\x09    // 1. If list contains name\x2C then set name to the first such\n\x09    //    header\u2019s name.\n\x09    const lowercaseName = name.toLowerCase();\n\x09    const exists = this[kHeadersMap].get(lowercaseName);\n\n\x09    // 2. Append (name\x2C value) to list.\n\x09    if (exists) {\n\x09      const delimiter = lowercaseName === 'cookie' ? '; ' : '\x2C ';\n\x09      this[kHeadersMap].set(lowercaseName\x2C {\n\x09        name: exists.name\x2C\n\x09        value: `${exists.value}${delimiter}${value}`\n\x09      });\n\x09    } else {\n\x09      this[kHeadersMap].set(lowercaseName\x2C { name\x2C value });\n\x09    }\n\n\x09    if (lowercaseName === 'set-cookie') {\n\x09      this.cookies ??= [];\n\x09      this.cookies.push(value);\n\x09    }\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#concept-header-list-set\n\x09  set (name\x2C value) {\n\x09    this[kHeadersSortedMap] = null;\n\x09    const lowercaseName = name.toLowerCase();\n\n\x09    if (lowercaseName === 'set-cookie') {\n\x09      this.cookies = [value];\n\x09    }\n\n\x09    // 1. If list contains name\x2C then set the value of\n\x09    //    the first such header to value and remove the\n\x09    //    others.\n\x09    // 2. Otherwise\x2C append header (name\x2C value) to list.\n\x09    return this[kHeadersMap].set(lowercaseName\x2C { name\x2C value })\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#concept-header-list-delete\n\x09  delete (name) {\n\x09    this[kHeadersSortedMap] = null;\n\n\x09    name = name.toLowerCase();\n\n\x09    if (name === 'set-cookie') {\n\x09      this.cookies = null;\n\x09    }\n\n\x09    return this[kHeadersMap].delete(name)\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#concept-header-list-get\n\x09  get (name) {\n\x09    // 1. If list does not contain name\x2C then return null.\n\x09    if (!this.contains(name)) {\n\x09      return null\n\x09    }\n\n\x09    // 2. Return the values of all headers in list whose name\n\x09    //    is a byte-case-insensitive match for name\x2C\n\x09    //    separated from each other by 0x2C 0x20\x2C in order.\n\x09    return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n\x09  }\n\n\x09  * [Symbol.iterator] () {\n\x09    // use the lowercased name\n\x09    for (const [name\x2C { value }] of this[kHeadersMap]) {\n\x09      yield [name\x2C value];\n\x09    }\n\x09  }\n\n\x09  get entries () {\n\x09    const headers = {};\n\n\x09    if (this[kHeadersMap].size) {\n\x09      for (const { name\x2C value } of this[kHeadersMap].values()) {\n\x09        headers[name] = value;\n\x09      }\n\x09    }\n\n\x09    return headers\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#headers-class\n\x09class Headers {\n\x09  constructor (init = undefined) {\n\x09    this[kHeadersList] = new HeadersList();\n\n\x09    // The new Headers(init) constructor steps are:\n\n\x09    // 1. Set this\u2019s guard to "none".\n\x09    this[kGuard] = 'none';\n\n\x09    // 2. If init is given\x2C then fill this with init.\n\x09    if (init !== undefined) {\n\x09      init = webidl.converters.HeadersInit(init);\n\x09      fill(this\x2C init);\n\x09    }\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#dom-headers-append\n\x09  append (name\x2C value) {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 2\x2C { header: 'Headers.append' });\n\n\x09    name = webidl.converters.ByteString(name);\n\x09    value = webidl.converters.ByteString(value);\n\n\x09    // 1. Normalize value.\n\x09    value = headerValueNormalize(value);\n\n\x09    // 2. If name is not a header name or value is not a\n\x09    //    header value\x2C then throw a TypeError.\n\x09    if (!isValidHeaderName(name)) {\n\x09      throw webidl.errors.invalidArgument({\n\x09        prefix: 'Headers.append'\x2C\n\x09        value: name\x2C\n\x09        type: 'header name'\n\x09      })\n\x09    } else if (!isValidHeaderValue(value)) {\n\x09      throw webidl.errors.invalidArgument({\n\x09        prefix: 'Headers.append'\x2C\n\x09        value\x2C\n\x09        type: 'header value'\n\x09      })\n\x09    }\n\n\x09    // 3. If headers\u2019s guard is "immutable"\x2C then throw a TypeError.\n\x09    // 4. Otherwise\x2C if headers\u2019s guard is "request" and name is a\n\x09    //    forbidden header name\x2C return.\n\x09    // Note: undici does not implement forbidden header names\n\x09    if (this[kGuard] === 'immutable') {\n\x09      throw new TypeError('immutable')\n\x09    } else if (this[kGuard] === 'request-no-cors') ;\n\n\x09    // 6. Otherwise\x2C if headers\u2019s guard is "response" and name is a\n\x09    //    forbidden response-header name\x2C return.\n\n\x09    // 7. Append (name\x2C value) to headers\u2019s header list.\n\x09    // 8. If headers\u2019s guard is "request-no-cors"\x2C then remove\n\x09    //    privileged no-CORS request headers from headers\n\x09    return this[kHeadersList].append(name\x2C value)\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#dom-headers-delete\n\x09  delete (name) {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'Headers.delete' });\n\n\x09    name = webidl.converters.ByteString(name);\n\n\x09    // 1. If name is not a header name\x2C then throw a TypeError.\n\x09    if (!isValidHeaderName(name)) {\n\x09      throw webidl.errors.invalidArgument({\n\x09        prefix: 'Headers.delete'\x2C\n\x09        value: name\x2C\n\x09        type: 'header name'\n\x09      })\n\x09    }\n\n\x09    // 2. If this\u2019s guard is "immutable"\x2C then throw a TypeError.\n\x09    // 3. Otherwise\x2C if this\u2019s guard is "request" and name is a\n\x09    //    forbidden header name\x2C return.\n\x09    // 4. Otherwise\x2C if this\u2019s guard is "request-no-cors"\x2C name\n\x09    //    is not a no-CORS-safelisted request-header name\x2C and\n\x09    //    name is not a privileged no-CORS request-header name\x2C\n\x09    //    return.\n\x09    // 5. Otherwise\x2C if this\u2019s guard is "response" and name is\n\x09    //    a forbidden response-header name\x2C return.\n\x09    // Note: undici does not implement forbidden header names\n\x09    if (this[kGuard] === 'immutable') {\n\x09      throw new TypeError('immutable')\n\x09    } else if (this[kGuard] === 'request-no-cors') ;\n\n\x09    // 6. If this\u2019s header list does not contain name\x2C then\n\x09    //    return.\n\x09    if (!this[kHeadersList].contains(name)) {\n\x09      return\n\x09    }\n\n\x09    // 7. Delete name from this\u2019s header list.\n\x09    // 8. If this\u2019s guard is "request-no-cors"\x2C then remove\n\x09    //    privileged no-CORS request headers from this.\n\x09    return this[kHeadersList].delete(name)\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#dom-headers-get\n\x09  get (name) {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'Headers.get' });\n\n\x09    name = webidl.converters.ByteString(name);\n\n\x09    // 1. If name is not a header name\x2C then throw a TypeError.\n\x09    if (!isValidHeaderName(name)) {\n\x09      throw webidl.errors.invalidArgument({\n\x09        prefix: 'Headers.get'\x2C\n\x09        value: name\x2C\n\x09        type: 'header name'\n\x09      })\n\x09    }\n\n\x09    // 2. Return the result of getting name from this\u2019s header\n\x09    //    list.\n\x09    return this[kHeadersList].get(name)\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#dom-headers-has\n\x09  has (name) {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'Headers.has' });\n\n\x09    name = webidl.converters.ByteString(name);\n\n\x09    // 1. If name is not a header name\x2C then throw a TypeError.\n\x09    if (!isValidHeaderName(name)) {\n\x09      throw webidl.errors.invalidArgument({\n\x09        prefix: 'Headers.has'\x2C\n\x09        value: name\x2C\n\x09        type: 'header name'\n\x09      })\n\x09    }\n\n\x09    // 2. Return true if this\u2019s header list contains name;\n\x09    //    otherwise false.\n\x09    return this[kHeadersList].contains(name)\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#dom-headers-set\n\x09  set (name\x2C value) {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 2\x2C { header: 'Headers.set' });\n\n\x09    name = webidl.converters.ByteString(name);\n\x09    value = webidl.converters.ByteString(value);\n\n\x09    // 1. Normalize value.\n\x09    value = headerValueNormalize(value);\n\n\x09    // 2. If name is not a header name or value is not a\n\x09    //    header value\x2C then throw a TypeError.\n\x09    if (!isValidHeaderName(name)) {\n\x09      throw webidl.errors.invalidArgument({\n\x09        prefix: 'Headers.set'\x2C\n\x09        value: name\x2C\n\x09        type: 'header name'\n\x09      })\n\x09    } else if (!isValidHeaderValue(value)) {\n\x09      throw webidl.errors.invalidArgument({\n\x09        prefix: 'Headers.set'\x2C\n\x09        value\x2C\n\x09        type: 'header value'\n\x09      })\n\x09    }\n\n\x09    // 3. If this\u2019s guard is "immutable"\x2C then throw a TypeError.\n\x09    // 4. Otherwise\x2C if this\u2019s guard is "request" and name is a\n\x09    //    forbidden header name\x2C return.\n\x09    // 5. Otherwise\x2C if this\u2019s guard is "request-no-cors" and\n\x09    //    name/value is not a no-CORS-safelisted request-header\x2C\n\x09    //    return.\n\x09    // 6. Otherwise\x2C if this\u2019s guard is "response" and name is a\n\x09    //    forbidden response-header name\x2C return.\n\x09    // Note: undici does not implement forbidden header names\n\x09    if (this[kGuard] === 'immutable') {\n\x09      throw new TypeError('immutable')\n\x09    } else if (this[kGuard] === 'request-no-cors') ;\n\n\x09    // 7. Set (name\x2C value) in this\u2019s header list.\n\x09    // 8. If this\u2019s guard is "request-no-cors"\x2C then remove\n\x09    //    privileged no-CORS request headers from this\n\x09    return this[kHeadersList].set(name\x2C value)\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n\x09  getSetCookie () {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    // 1. If this\u2019s header list does not contain `Set-Cookie`\x2C then return \xab \xbb.\n\x09    // 2. Return the values of all headers in this\u2019s header list whose name is\n\x09    //    a byte-case-insensitive match for `Set-Cookie`\x2C in order.\n\n\x09    const list = this[kHeadersList].cookies;\n\n\x09    if (list) {\n\x09      return [...list]\n\x09    }\n\n\x09    return []\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n\x09  get [kHeadersSortedMap] () {\n\x09    if (this[kHeadersList][kHeadersSortedMap]) {\n\x09      return this[kHeadersList][kHeadersSortedMap]\n\x09    }\n\n\x09    // 1. Let headers be an empty list of headers with the key being the name\n\x09    //    and value the value.\n\x09    const headers = [];\n\n\x09    // 2. Let names be the result of convert header names to a sorted-lowercase\n\x09    //    set with all the names of the headers in list.\n\x09    const names = [...this[kHeadersList]].sort((a\x2C b) => a[0] < b[0] ? -1 : 1);\n\x09    const cookies = this[kHeadersList].cookies;\n\n\x09    // 3. For each name of names:\n\x09    for (const [name\x2C value] of names) {\n\x09      // 1. If name is `set-cookie`\x2C then:\n\x09      if (name === 'set-cookie') {\n\x09        // 1. Let values be a list of all values of headers in list whose name\n\x09        //    is a byte-case-insensitive match for name\x2C in order.\n\n\x09        // 2. For each value of values:\n\x09        // 1. Append (name\x2C value) to headers.\n\x09        for (const value of cookies) {\n\x09          headers.push([name\x2C value]);\n\x09        }\n\x09      } else {\n\x09        // 2. Otherwise:\n\n\x09        // 1. Let value be the result of getting name from list.\n\n\x09        // 2. Assert: value is non-null.\n\x09        assert(value !== null);\n\n\x09        // 3. Append (name\x2C value) to headers.\n\x09        headers.push([name\x2C value]);\n\x09      }\n\x09    }\n\n\x09    this[kHeadersList][kHeadersSortedMap] = headers;\n\n\x09    // 4. Return headers.\n\x09    return headers\n\x09  }\n\n\x09  keys () {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    return makeIterator(\n\x09      () => [...this[kHeadersSortedMap].values()]\x2C\n\x09      'Headers'\x2C\n\x09      'key'\n\x09    )\n\x09  }\n\n\x09  values () {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    return makeIterator(\n\x09      () => [...this[kHeadersSortedMap].values()]\x2C\n\x09      'Headers'\x2C\n\x09      'value'\n\x09    )\n\x09  }\n\n\x09  entries () {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    return makeIterator(\n\x09      () => [...this[kHeadersSortedMap].values()]\x2C\n\x09      'Headers'\x2C\n\x09      'key+value'\n\x09    )\n\x09  }\n\n\x09  /**\n\x09   * @param {(value: string\x2C key: string\x2C self: Headers) => void} callbackFn\n\x09   * @param {unknown} thisArg\n\x09   */\n\x09  forEach (callbackFn\x2C thisArg = globalThis) {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'Headers.forEach' });\n\n\x09    if (typeof callbackFn !== 'function') {\n\x09      throw new TypeError(\n\x09        "Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'."\n\x09      )\n\x09    }\n\n\x09    for (const [key\x2C value] of this) {\n\x09      callbackFn.apply(thisArg\x2C [value\x2C key\x2C this]);\n\x09    }\n\x09  }\n\n\x09  [Symbol.for('nodejs.util.inspect.custom')] () {\n\x09    webidl.brandCheck(this\x2C Headers);\n\n\x09    return this[kHeadersList]\n\x09  }\n\x09}\n\n\x09Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n\n\x09Object.defineProperties(Headers.prototype\x2C {\n\x09  append: kEnumerableProperty\x2C\n\x09  delete: kEnumerableProperty\x2C\n\x09  get: kEnumerableProperty\x2C\n\x09  has: kEnumerableProperty\x2C\n\x09  set: kEnumerableProperty\x2C\n\x09  getSetCookie: kEnumerableProperty\x2C\n\x09  keys: kEnumerableProperty\x2C\n\x09  values: kEnumerableProperty\x2C\n\x09  entries: kEnumerableProperty\x2C\n\x09  forEach: kEnumerableProperty\x2C\n\x09  [Symbol.iterator]: { enumerable: false }\x2C\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'Headers'\x2C\n\x09    configurable: true\n\x09  }\n\x09});\n\n\x09webidl.converters.HeadersInit = function (V) {\n\x09  if (webidl.util.Type(V) === 'Object') {\n\x09    if (V[Symbol.iterator]) {\n\x09      return webidl.converters['sequence<sequence<ByteString>>'](V)\n\x09    }\n\n\x09    return webidl.converters['record<ByteString\x2C ByteString>'](V)\n\x09  }\n\n\x09  throw webidl.errors.conversionFailed({\n\x09    prefix: 'Headers constructor'\x2C\n\x09    argument: 'Argument 1'\x2C\n\x09    types: ['sequence<sequence<ByteString>>'\x2C 'record<ByteString\x2C ByteString>']\n\x09  })\n\x09};\n\n\x09headers = {\n\x09  fill\x2C\n\x09  Headers\x2C\n\x09  HeadersList\n\x09};\n\x09return headers;\n}\n\nvar response;\nvar hasRequiredResponse;\n\nfunction requireResponse () {\n\x09if (hasRequiredResponse) return response;\n\x09hasRequiredResponse = 1;\n\n\x09const { Headers\x2C HeadersList\x2C fill } = requireHeaders();\n\x09const { extractBody\x2C cloneBody\x2C mixinBody } = requireBody();\n\x09const util = util$i;\n\x09const { kEnumerableProperty } = util;\n\x09const {\n\x09  isValidReasonPhrase\x2C\n\x09  isCancelled\x2C\n\x09  isAborted\x2C\n\x09  isBlobLike\x2C\n\x09  serializeJavascriptValueToJSONString\x2C\n\x09  isErrorLike\x2C\n\x09  isomorphicEncode\n\x09} = requireUtil$3();\n\x09const {\n\x09  redirectStatus\x2C\n\x09  nullBodyStatus\x2C\n\x09  DOMException\n\x09} = requireConstants$3();\n\x09const { kState\x2C kHeaders\x2C kGuard\x2C kRealm } = requireSymbols$2();\n\x09const { webidl } = requireWebidl();\n\x09const { FormData } = requireFormdata();\n\x09const { getGlobalOrigin } = requireGlobal();\n\x09const { URLSerializer } = requireDataURL();\n\x09const { kHeadersList } = symbols$3;\n\x09const assert = require$$0;\n\x09const { types } = require$$0$2;\n\n\x09const ReadableStream = globalThis.ReadableStream || require$$13.ReadableStream;\n\n\x09// https://fetch.spec.whatwg.org/#response-class\n\x09class Response {\n\x09  // Creates network error Response.\n\x09  static error () {\n\x09    // TODO\n\x09    const relevantRealm = { settingsObject: {} };\n\n\x09    // The static error() method steps are to return the result of creating a\n\x09    // Response object\x2C given a new network error\x2C "immutable"\x2C and this\u2019s\n\x09    // relevant Realm.\n\x09    const responseObject = new Response();\n\x09    responseObject[kState] = makeNetworkError();\n\x09    responseObject[kRealm] = relevantRealm;\n\x09    responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList;\n\x09    responseObject[kHeaders][kGuard] = 'immutable';\n\x09    responseObject[kHeaders][kRealm] = relevantRealm;\n\x09    return responseObject\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#dom-response-json\n\x09  static json (data = undefined\x2C init = {}) {\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'Response.json' });\n\n\x09    if (init !== null) {\n\x09      init = webidl.converters.ResponseInit(init);\n\x09    }\n\n\x09    // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n\x09    const bytes = new TextEncoder('utf-8').encode(\n\x09      serializeJavascriptValueToJSONString(data)\n\x09    );\n\n\x09    // 2. Let body be the result of extracting bytes.\n\x09    const body = extractBody(bytes);\n\n\x09    // 3. Let responseObject be the result of creating a Response object\x2C given a new response\x2C\n\x09    //    "response"\x2C and this\u2019s relevant Realm.\n\x09    const relevantRealm = { settingsObject: {} };\n\x09    const responseObject = new Response();\n\x09    responseObject[kRealm] = relevantRealm;\n\x09    responseObject[kHeaders][kGuard] = 'response';\n\x09    responseObject[kHeaders][kRealm] = relevantRealm;\n\n\x09    // 4. Perform initialize a response given responseObject\x2C init\x2C and (body\x2C "application/json").\n\x09    initializeResponse(responseObject\x2C init\x2C { body: body[0]\x2C type: 'application/json' });\n\n\x09    // 5. Return responseObject.\n\x09    return responseObject\n\x09  }\n\n\x09  // Creates a redirect Response that redirects to url with status status.\n\x09  static redirect (url\x2C status = 302) {\n\x09    const relevantRealm = { settingsObject: {} };\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'Response.redirect' });\n\n\x09    url = webidl.converters.USVString(url);\n\x09    status = webidl.converters['unsigned short'](status);\n\n\x09    // 1. Let parsedURL be the result of parsing url with current settings\n\x09    // object\u2019s API base URL.\n\x09    // 2. If parsedURL is failure\x2C then throw a TypeError.\n\x09    // TODO: base-URL?\n\x09    let parsedURL;\n\x09    try {\n\x09      parsedURL = new URL(url\x2C getGlobalOrigin());\n\x09    } catch (err) {\n\x09      throw Object.assign(new TypeError('Failed to parse URL from ' + url)\x2C {\n\x09        cause: err\n\x09      })\n\x09    }\n\n\x09    // 3. If status is not a redirect status\x2C then throw a RangeError.\n\x09    if (!redirectStatus.includes(status)) {\n\x09      throw new RangeError('Invalid status code ' + status)\n\x09    }\n\n\x09    // 4. Let responseObject be the result of creating a Response object\x2C\n\x09    // given a new response\x2C "immutable"\x2C and this\u2019s relevant Realm.\n\x09    const responseObject = new Response();\n\x09    responseObject[kRealm] = relevantRealm;\n\x09    responseObject[kHeaders][kGuard] = 'immutable';\n\x09    responseObject[kHeaders][kRealm] = relevantRealm;\n\n\x09    // 5. Set responseObject\u2019s response\u2019s status to status.\n\x09    responseObject[kState].status = status;\n\n\x09    // 6. Let value be parsedURL\x2C serialized and isomorphic encoded.\n\x09    const value = isomorphicEncode(URLSerializer(parsedURL));\n\n\x09    // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n\x09    responseObject[kState].headersList.append('location'\x2C value);\n\n\x09    // 8. Return responseObject.\n\x09    return responseObject\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#dom-response\n\x09  constructor (body = null\x2C init = {}) {\n\x09    if (body !== null) {\n\x09      body = webidl.converters.BodyInit(body);\n\x09    }\n\n\x09    init = webidl.converters.ResponseInit(init);\n\n\x09    // TODO\n\x09    this[kRealm] = { settingsObject: {} };\n\n\x09    // 1. Set this\u2019s response to a new response.\n\x09    this[kState] = makeResponse({});\n\n\x09    // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n\x09    // Realm\x2C whose header list is this\u2019s response\u2019s header list and guard\n\x09    // is "response".\n\x09    this[kHeaders] = new Headers();\n\x09    this[kHeaders][kGuard] = 'response';\n\x09    this[kHeaders][kHeadersList] = this[kState].headersList;\n\x09    this[kHeaders][kRealm] = this[kRealm];\n\n\x09    // 3. Let bodyWithType be null.\n\x09    let bodyWithType = null;\n\n\x09    // 4. If body is non-null\x2C then set bodyWithType to the result of extracting body.\n\x09    if (body != null) {\n\x09      const [extractedBody\x2C type] = extractBody(body);\n\x09      bodyWithType = { body: extractedBody\x2C type };\n\x09    }\n\n\x09    // 5. Perform initialize a response given this\x2C init\x2C and bodyWithType.\n\x09    initializeResponse(this\x2C init\x2C bodyWithType);\n\x09  }\n\n\x09  // Returns response\u2019s type\x2C e.g.\x2C "cors".\n\x09  get type () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    // The type getter steps are to return this\u2019s response\u2019s type.\n\x09    return this[kState].type\n\x09  }\n\n\x09  // Returns response\u2019s URL\x2C if it has one; otherwise the empty string.\n\x09  get url () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    const urlList = this[kState].urlList;\n\n\x09    // The url getter steps are to return the empty string if this\u2019s\n\x09    // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL\x2C\n\x09    // serialized with exclude fragment set to true.\n\x09    const url = urlList[urlList.length - 1] ?? null;\n\n\x09    if (url === null) {\n\x09      return ''\n\x09    }\n\n\x09    return URLSerializer(url\x2C true)\n\x09  }\n\n\x09  // Returns whether response was obtained through a redirect.\n\x09  get redirected () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n\x09    // list has more than one item; otherwise false.\n\x09    return this[kState].urlList.length > 1\n\x09  }\n\n\x09  // Returns response\u2019s status.\n\x09  get status () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    // The status getter steps are to return this\u2019s response\u2019s status.\n\x09    return this[kState].status\n\x09  }\n\n\x09  // Returns whether response\u2019s status is an ok status.\n\x09  get ok () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n\x09    // ok status; otherwise false.\n\x09    return this[kState].status >= 200 && this[kState].status <= 299\n\x09  }\n\n\x09  // Returns response\u2019s status message.\n\x09  get statusText () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    // The statusText getter steps are to return this\u2019s response\u2019s status\n\x09    // message.\n\x09    return this[kState].statusText\n\x09  }\n\n\x09  // Returns response\u2019s headers as Headers.\n\x09  get headers () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    // The headers getter steps are to return this\u2019s headers.\n\x09    return this[kHeaders]\n\x09  }\n\n\x09  get body () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    return this[kState].body ? this[kState].body.stream : null\n\x09  }\n\n\x09  get bodyUsed () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n\x09  }\n\n\x09  // Returns a clone of response.\n\x09  clone () {\n\x09    webidl.brandCheck(this\x2C Response);\n\n\x09    // 1. If this is unusable\x2C then throw a TypeError.\n\x09    if (this.bodyUsed || (this.body && this.body.locked)) {\n\x09      throw webidl.errors.exception({\n\x09        header: 'Response.clone'\x2C\n\x09        message: 'Body has already been consumed.'\n\x09      })\n\x09    }\n\n\x09    // 2. Let clonedResponse be the result of cloning this\u2019s response.\n\x09    const clonedResponse = cloneResponse(this[kState]);\n\n\x09    // 3. Return the result of creating a Response object\x2C given\n\x09    // clonedResponse\x2C this\u2019s headers\u2019s guard\x2C and this\u2019s relevant Realm.\n\x09    const clonedResponseObject = new Response();\n\x09    clonedResponseObject[kState] = clonedResponse;\n\x09    clonedResponseObject[kRealm] = this[kRealm];\n\x09    clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList;\n\x09    clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard];\n\x09    clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm];\n\n\x09    return clonedResponseObject\n\x09  }\n\x09}\n\n\x09mixinBody(Response);\n\n\x09Object.defineProperties(Response.prototype\x2C {\n\x09  type: kEnumerableProperty\x2C\n\x09  url: kEnumerableProperty\x2C\n\x09  status: kEnumerableProperty\x2C\n\x09  ok: kEnumerableProperty\x2C\n\x09  redirected: kEnumerableProperty\x2C\n\x09  statusText: kEnumerableProperty\x2C\n\x09  headers: kEnumerableProperty\x2C\n\x09  clone: kEnumerableProperty\x2C\n\x09  body: kEnumerableProperty\x2C\n\x09  bodyUsed: kEnumerableProperty\x2C\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'Response'\x2C\n\x09    configurable: true\n\x09  }\n\x09});\n\n\x09Object.defineProperties(Response\x2C {\n\x09  json: kEnumerableProperty\x2C\n\x09  redirect: kEnumerableProperty\x2C\n\x09  error: kEnumerableProperty\n\x09});\n\n\x09// https://fetch.spec.whatwg.org/#concept-response-clone\n\x09function cloneResponse (response) {\n\x09  // To clone a response response\x2C run these steps:\n\n\x09  // 1. If response is a filtered response\x2C then return a new identical\n\x09  // filtered response whose internal response is a clone of response\u2019s\n\x09  // internal response.\n\x09  if (response.internalResponse) {\n\x09    return filterResponse(\n\x09      cloneResponse(response.internalResponse)\x2C\n\x09      response.type\n\x09    )\n\x09  }\n\n\x09  // 2. Let newResponse be a copy of response\x2C except for its body.\n\x09  const newResponse = makeResponse({ ...response\x2C body: null });\n\n\x09  // 3. If response\u2019s body is non-null\x2C then set newResponse\u2019s body to the\n\x09  // result of cloning response\u2019s body.\n\x09  if (response.body != null) {\n\x09    newResponse.body = cloneBody(response.body);\n\x09  }\n\n\x09  // 4. Return newResponse.\n\x09  return newResponse\n\x09}\n\n\x09function makeResponse (init) {\n\x09  return {\n\x09    aborted: false\x2C\n\x09    rangeRequested: false\x2C\n\x09    timingAllowPassed: false\x2C\n\x09    requestIncludesCredentials: false\x2C\n\x09    type: 'default'\x2C\n\x09    status: 200\x2C\n\x09    timingInfo: null\x2C\n\x09    cacheState: ''\x2C\n\x09    statusText: ''\x2C\n\x09    ...init\x2C\n\x09    headersList: init.headersList\n\x09      ? new HeadersList(init.headersList)\n\x09      : new HeadersList()\x2C\n\x09    urlList: init.urlList ? [...init.urlList] : []\n\x09  }\n\x09}\n\n\x09function makeNetworkError (reason) {\n\x09  const isError = isErrorLike(reason);\n\x09  return makeResponse({\n\x09    type: 'error'\x2C\n\x09    status: 0\x2C\n\x09    error: isError\n\x09      ? reason\n\x09      : new Error(reason ? String(reason) : reason)\x2C\n\x09    aborted: reason && reason.name === 'AbortError'\n\x09  })\n\x09}\n\n\x09function makeFilteredResponse (response\x2C state) {\n\x09  state = {\n\x09    internalResponse: response\x2C\n\x09    ...state\n\x09  };\n\n\x09  return new Proxy(response\x2C {\n\x09    get (target\x2C p) {\n\x09      return p in state ? state[p] : target[p]\n\x09    }\x2C\n\x09    set (target\x2C p\x2C value) {\n\x09      assert(!(p in state));\n\x09      target[p] = value;\n\x09      return true\n\x09    }\n\x09  })\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#concept-filtered-response\n\x09function filterResponse (response\x2C type) {\n\x09  // Set response to the following filtered response with response as its\n\x09  // internal response\x2C depending on request\u2019s response tainting:\n\x09  if (type === 'basic') {\n\x09    // A basic filtered response is a filtered response whose type is "basic"\n\x09    // and header list excludes any headers in internal response\u2019s header list\n\x09    // whose name is a forbidden response-header name.\n\n\x09    // Note: undici does not implement forbidden response-header names\n\x09    return makeFilteredResponse(response\x2C {\n\x09      type: 'basic'\x2C\n\x09      headersList: response.headersList\n\x09    })\n\x09  } else if (type === 'cors') {\n\x09    // A CORS filtered response is a filtered response whose type is "cors"\n\x09    // and header list excludes any headers in internal response\u2019s header\n\x09    // list whose name is not a CORS-safelisted response-header name\x2C given\n\x09    // internal response\u2019s CORS-exposed header-name list.\n\n\x09    // Note: undici does not implement CORS-safelisted response-header names\n\x09    return makeFilteredResponse(response\x2C {\n\x09      type: 'cors'\x2C\n\x09      headersList: response.headersList\n\x09    })\n\x09  } else if (type === 'opaque') {\n\x09    // An opaque filtered response is a filtered response whose type is\n\x09    // "opaque"\x2C URL list is the empty list\x2C status is 0\x2C status message\n\x09    // is the empty byte sequence\x2C header list is empty\x2C and body is null.\n\n\x09    return makeFilteredResponse(response\x2C {\n\x09      type: 'opaque'\x2C\n\x09      urlList: Object.freeze([])\x2C\n\x09      status: 0\x2C\n\x09      statusText: ''\x2C\n\x09      body: null\n\x09    })\n\x09  } else if (type === 'opaqueredirect') {\n\x09    // An opaque-redirect filtered response is a filtered response whose type\n\x09    // is "opaqueredirect"\x2C status is 0\x2C status message is the empty byte\n\x09    // sequence\x2C header list is empty\x2C and body is null.\n\n\x09    return makeFilteredResponse(response\x2C {\n\x09      type: 'opaqueredirect'\x2C\n\x09      status: 0\x2C\n\x09      statusText: ''\x2C\n\x09      headersList: []\x2C\n\x09      body: null\n\x09    })\n\x09  } else {\n\x09    assert(false);\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#appropriate-network-error\n\x09function makeAppropriateNetworkError (fetchParams) {\n\x09  // 1. Assert: fetchParams is canceled.\n\x09  assert(isCancelled(fetchParams));\n\n\x09  // 2. Return an aborted network error if fetchParams is aborted;\n\x09  // otherwise return a network error.\n\x09  return isAborted(fetchParams)\n\x09    ? makeNetworkError(new DOMException('The operation was aborted.'\x2C 'AbortError'))\n\x09    : makeNetworkError('Request was cancelled.')\n\x09}\n\n\x09// https://whatpr.org/fetch/1392.html#initialize-a-response\n\x09function initializeResponse (response\x2C init\x2C body) {\n\x09  // 1. If init["status"] is not in the range 200 to 599\x2C inclusive\x2C then\n\x09  //    throw a RangeError.\n\x09  if (init.status !== null && (init.status < 200 || init.status > 599)) {\n\x09    throw new RangeError('init["status"] must be in the range of 200 to 599\x2C inclusive.')\n\x09  }\n\n\x09  // 2. If init["statusText"] does not match the reason-phrase token production\x2C\n\x09  //    then throw a TypeError.\n\x09  if ('statusText' in init && init.statusText != null) {\n\x09    // See\x2C https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n\x09    //   reason-phrase  = *( HTAB / SP / VCHAR / obs-text )\n\x09    if (!isValidReasonPhrase(String(init.statusText))) {\n\x09      throw new TypeError('Invalid statusText')\n\x09    }\n\x09  }\n\n\x09  // 3. Set response\u2019s response\u2019s status to init["status"].\n\x09  if ('status' in init && init.status != null) {\n\x09    response[kState].status = init.status;\n\x09  }\n\n\x09  // 4. Set response\u2019s response\u2019s status message to init["statusText"].\n\x09  if ('statusText' in init && init.statusText != null) {\n\x09    response[kState].statusText = init.statusText;\n\x09  }\n\n\x09  // 5. If init["headers"] exists\x2C then fill response\u2019s headers with init["headers"].\n\x09  if ('headers' in init && init.headers != null) {\n\x09    fill(response[kState].headersList\x2C init.headers);\n\x09  }\n\n\x09  // 6. If body was given\x2C then:\n\x09  if (body) {\n\x09    // 1. If response's status is a null body status\x2C then throw a TypeError.\n\x09    if (nullBodyStatus.includes(response.status)) {\n\x09      throw webidl.errors.exception({\n\x09        header: 'Response constructor'\x2C\n\x09        message: 'Invalid response status code ' + response.status\n\x09      })\n\x09    }\n\n\x09    // 2. Set response's body to body's body.\n\x09    response[kState].body = body.body;\n\n\x09    // 3. If body's type is non-null and response's header list does not contain\n\x09    //    `Content-Type`\x2C then append (`Content-Type`\x2C body's type) to response's header list.\n\x09    if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n\x09      response[kState].headersList.append('content-type'\x2C body.type);\n\x09    }\n\x09  }\n\x09}\n\n\x09webidl.converters.ReadableStream = webidl.interfaceConverter(\n\x09  ReadableStream\n\x09);\n\n\x09webidl.converters.FormData = webidl.interfaceConverter(\n\x09  FormData\n\x09);\n\n\x09webidl.converters.URLSearchParams = webidl.interfaceConverter(\n\x09  URLSearchParams\n\x09);\n\n\x09// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\n\x09webidl.converters.XMLHttpRequestBodyInit = function (V) {\n\x09  if (typeof V === 'string') {\n\x09    return webidl.converters.USVString(V)\n\x09  }\n\n\x09  if (isBlobLike(V)) {\n\x09    return webidl.converters.Blob(V\x2C { strict: false })\n\x09  }\n\n\x09  if (\n\x09    types.isAnyArrayBuffer(V) ||\n\x09    types.isTypedArray(V) ||\n\x09    types.isDataView(V)\n\x09  ) {\n\x09    return webidl.converters.BufferSource(V)\n\x09  }\n\n\x09  if (util.isFormDataLike(V)) {\n\x09    return webidl.converters.FormData(V\x2C { strict: false })\n\x09  }\n\n\x09  if (V instanceof URLSearchParams) {\n\x09    return webidl.converters.URLSearchParams(V)\n\x09  }\n\n\x09  return webidl.converters.DOMString(V)\n\x09};\n\n\x09// https://fetch.spec.whatwg.org/#bodyinit\n\x09webidl.converters.BodyInit = function (V) {\n\x09  if (V instanceof ReadableStream) {\n\x09    return webidl.converters.ReadableStream(V)\n\x09  }\n\n\x09  // Note: the spec doesn't include async iterables\x2C\n\x09  // this is an undici extension.\n\x09  if (V?.[Symbol.asyncIterator]) {\n\x09    return V\n\x09  }\n\n\x09  return webidl.converters.XMLHttpRequestBodyInit(V)\n\x09};\n\n\x09webidl.converters.ResponseInit = webidl.dictionaryConverter([\n\x09  {\n\x09    key: 'status'\x2C\n\x09    converter: webidl.converters['unsigned short']\x2C\n\x09    defaultValue: 200\n\x09  }\x2C\n\x09  {\n\x09    key: 'statusText'\x2C\n\x09    converter: webidl.converters.ByteString\x2C\n\x09    defaultValue: ''\n\x09  }\x2C\n\x09  {\n\x09    key: 'headers'\x2C\n\x09    converter: webidl.converters.HeadersInit\n\x09  }\n\x09]);\n\n\x09response = {\n\x09  makeNetworkError\x2C\n\x09  makeResponse\x2C\n\x09  makeAppropriateNetworkError\x2C\n\x09  filterResponse\x2C\n\x09  Response\n\x09};\n\x09return response;\n}\n\n/* globals AbortController */\n\nvar request;\nvar hasRequiredRequest;\n\nfunction requireRequest () {\n\x09if (hasRequiredRequest) return request;\n\x09hasRequiredRequest = 1;\n\n\x09const { extractBody\x2C mixinBody\x2C cloneBody } = requireBody();\n\x09const { Headers\x2C fill: fillHeaders\x2C HeadersList } = requireHeaders();\n\x09const { FinalizationRegistry } = dispatcherWeakref();\n\x09const util = util$i;\n\x09const {\n\x09  isValidHTTPToken\x2C\n\x09  sameOrigin\x2C\n\x09  normalizeMethod\x2C\n\x09  makePolicyContainer\n\x09} = requireUtil$3();\n\x09const {\n\x09  forbiddenMethods\x2C\n\x09  corsSafeListedMethods\x2C\n\x09  referrerPolicy\x2C\n\x09  requestRedirect\x2C\n\x09  requestMode\x2C\n\x09  requestCredentials\x2C\n\x09  requestCache\x2C\n\x09  requestDuplex\n\x09} = requireConstants$3();\n\x09const { kEnumerableProperty } = util;\n\x09const { kHeaders\x2C kSignal\x2C kState\x2C kGuard\x2C kRealm } = requireSymbols$2();\n\x09const { webidl } = requireWebidl();\n\x09const { getGlobalOrigin } = requireGlobal();\n\x09const { URLSerializer } = requireDataURL();\n\x09const { kHeadersList } = symbols$3;\n\x09const assert = require$$0;\n\x09const { getMaxListeners\x2C setMaxListeners\x2C getEventListeners\x2C defaultMaxListeners } = require$$0$4;\n\n\x09let TransformStream = globalThis.TransformStream;\n\n\x09const kInit = Symbol('init');\n\x09const kAbortController = Symbol('abortController');\n\n\x09const requestFinalizer = new FinalizationRegistry(({ signal\x2C abort }) => {\n\x09  signal.removeEventListener('abort'\x2C abort);\n\x09});\n\n\x09// https://fetch.spec.whatwg.org/#request-class\n\x09class Request {\n\x09  // https://fetch.spec.whatwg.org/#dom-request\n\x09  constructor (input\x2C init = {}) {\n\x09    if (input === kInit) {\n\x09      return\n\x09    }\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'Request constructor' });\n\n\x09    input = webidl.converters.RequestInfo(input);\n\x09    init = webidl.converters.RequestInit(init);\n\n\x09    // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n\x09    this[kRealm] = {\n\x09      settingsObject: {\n\x09        baseUrl: getGlobalOrigin()\x2C\n\x09        get origin () {\n\x09          return this.baseUrl?.origin\n\x09        }\x2C\n\x09        policyContainer: makePolicyContainer()\n\x09      }\n\x09    };\n\n\x09    // 1. Let request be null.\n\x09    let request = null;\n\n\x09    // 2. Let fallbackMode be null.\n\x09    let fallbackMode = null;\n\n\x09    // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n\x09    const baseUrl = this[kRealm].settingsObject.baseUrl;\n\n\x09    // 4. Let signal be null.\n\x09    let signal = null;\n\n\x09    // 5. If input is a string\x2C then:\n\x09    if (typeof input === 'string') {\n\x09      // 1. Let parsedURL be the result of parsing input with baseURL.\n\x09      // 2. If parsedURL is failure\x2C then throw a TypeError.\n\x09      let parsedURL;\n\x09      try {\n\x09        parsedURL = new URL(input\x2C baseUrl);\n\x09      } catch (err) {\n\x09        throw new TypeError('Failed to parse URL from ' + input\x2C { cause: err })\n\x09      }\n\n\x09      // 3. If parsedURL includes credentials\x2C then throw a TypeError.\n\x09      if (parsedURL.username || parsedURL.password) {\n\x09        throw new TypeError(\n\x09          'Request cannot be constructed from a URL that includes credentials: ' +\n\x09            input\n\x09        )\n\x09      }\n\n\x09      // 4. Set request to a new request whose URL is parsedURL.\n\x09      request = makeRequest({ urlList: [parsedURL] });\n\n\x09      // 5. Set fallbackMode to "cors".\n\x09      fallbackMode = 'cors';\n\x09    } else {\n\x09      // 6. Otherwise:\n\n\x09      // 7. Assert: input is a Request object.\n\x09      assert(input instanceof Request);\n\n\x09      // 8. Set request to input\u2019s request.\n\x09      request = input[kState];\n\n\x09      // 9. Set signal to input\u2019s signal.\n\x09      signal = input[kSignal];\n\x09    }\n\n\x09    // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n\x09    const origin = this[kRealm].settingsObject.origin;\n\n\x09    // 8. Let window be "client".\n\x09    let window = 'client';\n\n\x09    // 9. If request\u2019s window is an environment settings object and its origin\n\x09    // is same origin with origin\x2C then set window to request\u2019s window.\n\x09    if (\n\x09      request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n\x09      sameOrigin(request.window\x2C origin)\n\x09    ) {\n\x09      window = request.window;\n\x09    }\n\n\x09    // 10. If init["window"] exists and is non-null\x2C then throw a TypeError.\n\x09    if (init.window != null) {\n\x09      throw new TypeError(`'window' option '${window}' must be null`)\n\x09    }\n\n\x09    // 11. If init["window"] exists\x2C then set window to "no-window".\n\x09    if ('window' in init) {\n\x09      window = 'no-window';\n\x09    }\n\n\x09    // 12. Set request to a new request with the following properties:\n\x09    request = makeRequest({\n\x09      // URL request\u2019s URL.\n\x09      // undici implementation note: this is set as the first item in request's urlList in makeRequest\n\x09      // method request\u2019s method.\n\x09      method: request.method\x2C\n\x09      // header list A copy of request\u2019s header list.\n\x09      // undici implementation note: headersList is cloned in makeRequest\n\x09      headersList: request.headersList\x2C\n\x09      // unsafe-request flag Set.\n\x09      unsafeRequest: request.unsafeRequest\x2C\n\x09      // client This\u2019s relevant settings object.\n\x09      client: this[kRealm].settingsObject\x2C\n\x09      // window window.\n\x09      window\x2C\n\x09      // priority request\u2019s priority.\n\x09      priority: request.priority\x2C\n\x09      // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n\x09      // being handled by a service worker. In this scenario a request can have an origin that is different\n\x09      // from the current client.\n\x09      origin: request.origin\x2C\n\x09      // referrer request\u2019s referrer.\n\x09      referrer: request.referrer\x2C\n\x09      // referrer policy request\u2019s referrer policy.\n\x09      referrerPolicy: request.referrerPolicy\x2C\n\x09      // mode request\u2019s mode.\n\x09      mode: request.mode\x2C\n\x09      // credentials mode request\u2019s credentials mode.\n\x09      credentials: request.credentials\x2C\n\x09      // cache mode request\u2019s cache mode.\n\x09      cache: request.cache\x2C\n\x09      // redirect mode request\u2019s redirect mode.\n\x09      redirect: request.redirect\x2C\n\x09      // integrity metadata request\u2019s integrity metadata.\n\x09      integrity: request.integrity\x2C\n\x09      // keepalive request\u2019s keepalive.\n\x09      keepalive: request.keepalive\x2C\n\x09      // reload-navigation flag request\u2019s reload-navigation flag.\n\x09      reloadNavigation: request.reloadNavigation\x2C\n\x09      // history-navigation flag request\u2019s history-navigation flag.\n\x09      historyNavigation: request.historyNavigation\x2C\n\x09      // URL list A clone of request\u2019s URL list.\n\x09      urlList: [...request.urlList]\n\x09    });\n\n\x09    // 13. If init is not empty\x2C then:\n\x09    if (Object.keys(init).length > 0) {\n\x09      // 1. If request\u2019s mode is "navigate"\x2C then set it to "same-origin".\n\x09      if (request.mode === 'navigate') {\n\x09        request.mode = 'same-origin';\n\x09      }\n\n\x09      // 2. Unset request\u2019s reload-navigation flag.\n\x09      request.reloadNavigation = false;\n\n\x09      // 3. Unset request\u2019s history-navigation flag.\n\x09      request.historyNavigation = false;\n\n\x09      // 4. Set request\u2019s origin to "client".\n\x09      request.origin = 'client';\n\n\x09      // 5. Set request\u2019s referrer to "client"\n\x09      request.referrer = 'client';\n\n\x09      // 6. Set request\u2019s referrer policy to the empty string.\n\x09      request.referrerPolicy = '';\n\n\x09      // 7. Set request\u2019s URL to request\u2019s current URL.\n\x09      request.url = request.urlList[request.urlList.length - 1];\n\n\x09      // 8. Set request\u2019s URL list to \xab request\u2019s URL \xbb.\n\x09      request.urlList = [request.url];\n\x09    }\n\n\x09    // 14. If init["referrer"] exists\x2C then:\n\x09    if (init.referrer !== undefined) {\n\x09      // 1. Let referrer be init["referrer"].\n\x09      const referrer = init.referrer;\n\n\x09      // 2. If referrer is the empty string\x2C then set request\u2019s referrer to "no-referrer".\n\x09      if (referrer === '') {\n\x09        request.referrer = 'no-referrer';\n\x09      } else {\n\x09        // 1. Let parsedReferrer be the result of parsing referrer with\n\x09        // baseURL.\n\x09        // 2. If parsedReferrer is failure\x2C then throw a TypeError.\n\x09        let parsedReferrer;\n\x09        try {\n\x09          parsedReferrer = new URL(referrer\x2C baseUrl);\n\x09        } catch (err) {\n\x09          throw new TypeError(`Referrer "${referrer}" is not a valid URL.`\x2C { cause: err })\n\x09        }\n\n\x09        // 3. If one of the following is true\n\x09        // parsedReferrer\u2019s cannot-be-a-base-URL is true\x2C scheme is "about"\x2C\n\x09        // and path contains a single string "client"\n\x09        // parsedReferrer\u2019s origin is not same origin with origin\n\x09        // then set request\u2019s referrer to "client".\n\x09        // TODO\n\n\x09        // 4. Otherwise\x2C set request\u2019s referrer to parsedReferrer.\n\x09        request.referrer = parsedReferrer;\n\x09      }\n\x09    }\n\n\x09    // 15. If init["referrerPolicy"] exists\x2C then set request\u2019s referrer policy\n\x09    // to it.\n\x09    if (init.referrerPolicy !== undefined) {\n\x09      request.referrerPolicy = init.referrerPolicy;\n\x09    }\n\n\x09    // 16. Let mode be init["mode"] if it exists\x2C and fallbackMode otherwise.\n\x09    let mode;\n\x09    if (init.mode !== undefined) {\n\x09      mode = init.mode;\n\x09    } else {\n\x09      mode = fallbackMode;\n\x09    }\n\n\x09    // 17. If mode is "navigate"\x2C then throw a TypeError.\n\x09    if (mode === 'navigate') {\n\x09      throw webidl.errors.exception({\n\x09        header: 'Request constructor'\x2C\n\x09        message: 'invalid request mode navigate.'\n\x09      })\n\x09    }\n\n\x09    // 18. If mode is non-null\x2C set request\u2019s mode to mode.\n\x09    if (mode != null) {\n\x09      request.mode = mode;\n\x09    }\n\n\x09    // 19. If init["credentials"] exists\x2C then set request\u2019s credentials mode\n\x09    // to it.\n\x09    if (init.credentials !== undefined) {\n\x09      request.credentials = init.credentials;\n\x09    }\n\n\x09    // 18. If init["cache"] exists\x2C then set request\u2019s cache mode to it.\n\x09    if (init.cache !== undefined) {\n\x09      request.cache = init.cache;\n\x09    }\n\n\x09    // 21. If request\u2019s cache mode is "only-if-cached" and request\u2019s mode is\n\x09    // not "same-origin"\x2C then throw a TypeError.\n\x09    if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n\x09      throw new TypeError(\n\x09        "'only-if-cached' can be set only with 'same-origin' mode"\n\x09      )\n\x09    }\n\n\x09    // 22. If init["redirect"] exists\x2C then set request\u2019s redirect mode to it.\n\x09    if (init.redirect !== undefined) {\n\x09      request.redirect = init.redirect;\n\x09    }\n\n\x09    // 23. If init["integrity"] exists\x2C then set request\u2019s integrity metadata to it.\n\x09    if (init.integrity !== undefined && init.integrity != null) {\n\x09      request.integrity = String(init.integrity);\n\x09    }\n\n\x09    // 24. If init["keepalive"] exists\x2C then set request\u2019s keepalive to it.\n\x09    if (init.keepalive !== undefined) {\n\x09      request.keepalive = Boolean(init.keepalive);\n\x09    }\n\n\x09    // 25. If init["method"] exists\x2C then:\n\x09    if (init.method !== undefined) {\n\x09      // 1. Let method be init["method"].\n\x09      let method = init.method;\n\n\x09      // 2. If method is not a method or method is a forbidden method\x2C then\n\x09      // throw a TypeError.\n\x09      if (!isValidHTTPToken(init.method)) {\n\x09        throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n\x09      }\n\n\x09      if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n\x09        throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n\x09      }\n\n\x09      // 3. Normalize method.\n\x09      method = normalizeMethod(init.method);\n\n\x09      // 4. Set request\u2019s method to method.\n\x09      request.method = method;\n\x09    }\n\n\x09    // 26. If init["signal"] exists\x2C then set signal to it.\n\x09    if (init.signal !== undefined) {\n\x09      signal = init.signal;\n\x09    }\n\n\x09    // 27. Set this\u2019s request to request.\n\x09    this[kState] = request;\n\n\x09    // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n\x09    // Realm.\n\x09    const ac = new AbortController();\n\x09    this[kSignal] = ac.signal;\n\x09    this[kSignal][kRealm] = this[kRealm];\n\n\x09    // 29. If signal is not null\x2C then make this\u2019s signal follow signal.\n\x09    if (signal != null) {\n\x09      if (\n\x09        !signal ||\n\x09        typeof signal.aborted !== 'boolean' ||\n\x09        typeof signal.addEventListener !== 'function'\n\x09      ) {\n\x09        throw new TypeError(\n\x09          "Failed to construct 'Request': member signal is not of type AbortSignal."\n\x09        )\n\x09      }\n\n\x09      if (signal.aborted) {\n\x09        ac.abort(signal.reason);\n\x09      } else {\n\x09        // Keep a strong ref to ac while request object\n\x09        // is alive. This is needed to prevent AbortController\n\x09        // from being prematurely garbage collected.\n\x09        // See\x2C https://github.com/nodejs/undici/issues/1926.\n\x09        this[kAbortController] = ac;\n\n\x09        const acRef = new WeakRef(ac);\n\x09        const abort = function () {\n\x09          const ac = acRef.deref();\n\x09          if (ac !== undefined) {\n\x09            ac.abort(this.reason);\n\x09          }\n\x09        };\n\n\x09        // Third-party AbortControllers may not work with these.\n\x09        // See\x2C https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n\x09        try {\n\x09          // If the max amount of listeners is equal to the default\x2C increase it\n\x09          // This is only available in node >= v19.9.0\n\x09          if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n\x09            setMaxListeners(100\x2C signal);\n\x09          } else if (getEventListeners(signal\x2C 'abort').length >= defaultMaxListeners) {\n\x09            setMaxListeners(100\x2C signal);\n\x09          }\n\x09        } catch {}\n\n\x09        signal.addEventListener('abort'\x2C abort\x2C { once: true });\n\x09        requestFinalizer.register(ac\x2C { signal\x2C abort });\n\x09      }\n\x09    }\n\n\x09    // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n\x09    // Realm\x2C whose header list is request\u2019s header list and guard is\n\x09    // "request".\n\x09    this[kHeaders] = new Headers();\n\x09    this[kHeaders][kHeadersList] = request.headersList;\n\x09    this[kHeaders][kGuard] = 'request';\n\x09    this[kHeaders][kRealm] = this[kRealm];\n\n\x09    // 31. If this\u2019s request\u2019s mode is "no-cors"\x2C then:\n\x09    if (mode === 'no-cors') {\n\x09      // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method\x2C\n\x09      // then throw a TypeError.\n\x09      if (!corsSafeListedMethods.includes(request.method)) {\n\x09        throw new TypeError(\n\x09          `'${request.method} is unsupported in no-cors mode.`\n\x09        )\n\x09      }\n\n\x09      // 2. Set this\u2019s headers\u2019s guard to "request-no-cors".\n\x09      this[kHeaders][kGuard] = 'request-no-cors';\n\x09    }\n\n\x09    // 32. If init is not empty\x2C then:\n\x09    if (Object.keys(init).length !== 0) {\n\x09      // 1. Let headers be a copy of this\u2019s headers and its associated header\n\x09      // list.\n\x09      let headers = new Headers(this[kHeaders]);\n\n\x09      // 2. If init["headers"] exists\x2C then set headers to init["headers"].\n\x09      if (init.headers !== undefined) {\n\x09        headers = init.headers;\n\x09      }\n\n\x09      // 3. Empty this\u2019s headers\u2019s header list.\n\x09      this[kHeaders][kHeadersList].clear();\n\n\x09      // 4. If headers is a Headers object\x2C then for each header in its header\n\x09      // list\x2C append header\u2019s name/header\u2019s value to this\u2019s headers.\n\x09      if (headers.constructor.name === 'Headers') {\n\x09        for (const [key\x2C val] of headers) {\n\x09          this[kHeaders].append(key\x2C val);\n\x09        }\n\x09      } else {\n\x09        // 5. Otherwise\x2C fill this\u2019s headers with headers.\n\x09        fillHeaders(this[kHeaders]\x2C headers);\n\x09      }\n\x09    }\n\n\x09    // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n\x09    // object; otherwise null.\n\x09    const inputBody = input instanceof Request ? input[kState].body : null;\n\n\x09    // 34. If either init["body"] exists and is non-null or inputBody is\n\x09    // non-null\x2C and request\u2019s method is `GET` or `HEAD`\x2C then throw a\n\x09    // TypeError.\n\x09    if (\n\x09      (init.body != null || inputBody != null) &&\n\x09      (request.method === 'GET' || request.method === 'HEAD')\n\x09    ) {\n\x09      throw new TypeError('Request with GET/HEAD method cannot have body.')\n\x09    }\n\n\x09    // 35. Let initBody be null.\n\x09    let initBody = null;\n\n\x09    // 36. If init["body"] exists and is non-null\x2C then:\n\x09    if (init.body != null) {\n\x09      // 1. Let Content-Type be null.\n\x09      // 2. Set initBody and Content-Type to the result of extracting\n\x09      // init["body"]\x2C with keepalive set to request\u2019s keepalive.\n\x09      const [extractedBody\x2C contentType] = extractBody(\n\x09        init.body\x2C\n\x09        request.keepalive\n\x09      );\n\x09      initBody = extractedBody;\n\n\x09      // 3\x2C If Content-Type is non-null and this\u2019s headers\u2019s header list does\n\x09      // not contain `Content-Type`\x2C then append `Content-Type`/Content-Type to\n\x09      // this\u2019s headers.\n\x09      if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n\x09        this[kHeaders].append('content-type'\x2C contentType);\n\x09      }\n\x09    }\n\n\x09    // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n\x09    // inputBody.\n\x09    const inputOrInitBody = initBody ?? inputBody;\n\n\x09    // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n\x09    // null\x2C then:\n\x09    if (inputOrInitBody != null && inputOrInitBody.source == null) {\n\x09      // 1. If initBody is non-null and init["duplex"] does not exist\x2C\n\x09      //    then throw a TypeError.\n\x09      if (initBody != null && init.duplex == null) {\n\x09        throw new TypeError('RequestInit: duplex option is required when sending a body.')\n\x09      }\n\n\x09      // 2. If this\u2019s request\u2019s mode is neither "same-origin" nor "cors"\x2C\n\x09      // then throw a TypeError.\n\x09      if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n\x09        throw new TypeError(\n\x09          'If request is made from ReadableStream\x2C mode should be "same-origin" or "cors"'\n\x09        )\n\x09      }\n\n\x09      // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n\x09      request.useCORSPreflightFlag = true;\n\x09    }\n\n\x09    // 39. Let finalBody be inputOrInitBody.\n\x09    let finalBody = inputOrInitBody;\n\n\x09    // 40. If initBody is null and inputBody is non-null\x2C then:\n\x09    if (initBody == null && inputBody != null) {\n\x09      // 1. If input is unusable\x2C then throw a TypeError.\n\x09      if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n\x09        throw new TypeError(\n\x09          'Cannot construct a Request with a Request object that has already been used.'\n\x09        )\n\x09      }\n\n\x09      // 2. Set finalBody to the result of creating a proxy for inputBody.\n\x09      if (!TransformStream) {\n\x09        TransformStream = require$$13.TransformStream;\n\x09      }\n\n\x09      // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n\x09      const identityTransform = new TransformStream();\n\x09      inputBody.stream.pipeThrough(identityTransform);\n\x09      finalBody = {\n\x09        source: inputBody.source\x2C\n\x09        length: inputBody.length\x2C\n\x09        stream: identityTransform.readable\n\x09      };\n\x09    }\n\n\x09    // 41. Set this\u2019s request\u2019s body to finalBody.\n\x09    this[kState].body = finalBody;\n\x09  }\n\n\x09  // Returns request\u2019s HTTP method\x2C which is "GET" by default.\n\x09  get method () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The method getter steps are to return this\u2019s request\u2019s method.\n\x09    return this[kState].method\n\x09  }\n\n\x09  // Returns the URL of request as a string.\n\x09  get url () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The url getter steps are to return this\u2019s request\u2019s URL\x2C serialized.\n\x09    return URLSerializer(this[kState].url)\n\x09  }\n\n\x09  // Returns a Headers object consisting of the headers associated with request.\n\x09  // Note that headers added in the network layer by the user agent will not\n\x09  // be accounted for in this object\x2C e.g.\x2C the "Host" header.\n\x09  get headers () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The headers getter steps are to return this\u2019s headers.\n\x09    return this[kHeaders]\n\x09  }\n\n\x09  // Returns the kind of resource requested by request\x2C e.g.\x2C "document"\n\x09  // or "script".\n\x09  get destination () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The destination getter are to return this\u2019s request\u2019s destination.\n\x09    return this[kState].destination\n\x09  }\n\n\x09  // Returns the referrer of request. Its value can be a same-origin URL if\n\x09  // explicitly set in init\x2C the empty string to indicate no referrer\x2C and\n\x09  // "about:client" when defaulting to the global\u2019s default. This is used\n\x09  // during fetching to determine the value of the `Referer` header of the\n\x09  // request being made.\n\x09  get referrer () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // 1. If this\u2019s request\u2019s referrer is "no-referrer"\x2C then return the\n\x09    // empty string.\n\x09    if (this[kState].referrer === 'no-referrer') {\n\x09      return ''\n\x09    }\n\n\x09    // 2. If this\u2019s request\u2019s referrer is "client"\x2C then return\n\x09    // "about:client".\n\x09    if (this[kState].referrer === 'client') {\n\x09      return 'about:client'\n\x09    }\n\n\x09    // Return this\u2019s request\u2019s referrer\x2C serialized.\n\x09    return this[kState].referrer.toString()\n\x09  }\n\n\x09  // Returns the referrer policy associated with request.\n\x09  // This is used during fetching to compute the value of the request\u2019s\n\x09  // referrer.\n\x09  get referrerPolicy () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n\x09    return this[kState].referrerPolicy\n\x09  }\n\n\x09  // Returns the mode associated with request\x2C which is a string indicating\n\x09  // whether the request will use CORS\x2C or will be restricted to same-origin\n\x09  // URLs.\n\x09  get mode () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The mode getter steps are to return this\u2019s request\u2019s mode.\n\x09    return this[kState].mode\n\x09  }\n\n\x09  // Returns the credentials mode associated with request\x2C\n\x09  // which is a string indicating whether credentials will be sent with the\n\x09  // request always\x2C never\x2C or only when sent to a same-origin URL.\n\x09  get credentials () {\n\x09    // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n\x09    return this[kState].credentials\n\x09  }\n\n\x09  // Returns the cache mode associated with request\x2C\n\x09  // which is a string indicating how the request will\n\x09  // interact with the browser\u2019s cache when fetching.\n\x09  get cache () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n\x09    return this[kState].cache\n\x09  }\n\n\x09  // Returns the redirect mode associated with request\x2C\n\x09  // which is a string indicating how redirects for the\n\x09  // request will be handled during fetching. A request\n\x09  // will follow redirects by default.\n\x09  get redirect () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n\x09    return this[kState].redirect\n\x09  }\n\n\x09  // Returns request\u2019s subresource integrity metadata\x2C which is a\n\x09  // cryptographic hash of the resource being fetched. Its value\n\x09  // consists of multiple hashes separated by whitespace. [SRI]\n\x09  get integrity () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The integrity getter steps are to return this\u2019s request\u2019s integrity\n\x09    // metadata.\n\x09    return this[kState].integrity\n\x09  }\n\n\x09  // Returns a boolean indicating whether or not request can outlive the\n\x09  // global in which it was created.\n\x09  get keepalive () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n\x09    return this[kState].keepalive\n\x09  }\n\n\x09  // Returns a boolean indicating whether or not request is for a reload\n\x09  // navigation.\n\x09  get isReloadNavigation () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The isReloadNavigation getter steps are to return true if this\u2019s\n\x09    // request\u2019s reload-navigation flag is set; otherwise false.\n\x09    return this[kState].reloadNavigation\n\x09  }\n\n\x09  // Returns a boolean indicating whether or not request is for a history\n\x09  // navigation (a.k.a. back-foward navigation).\n\x09  get isHistoryNavigation () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n\x09    // history-navigation flag is set; otherwise false.\n\x09    return this[kState].historyNavigation\n\x09  }\n\n\x09  // Returns the signal associated with request\x2C which is an AbortSignal\n\x09  // object indicating whether or not request has been aborted\x2C and its\n\x09  // abort event handler.\n\x09  get signal () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // The signal getter steps are to return this\u2019s signal.\n\x09    return this[kSignal]\n\x09  }\n\n\x09  get body () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    return this[kState].body ? this[kState].body.stream : null\n\x09  }\n\n\x09  get bodyUsed () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n\x09  }\n\n\x09  get duplex () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    return 'half'\n\x09  }\n\n\x09  // Returns a clone of request.\n\x09  clone () {\n\x09    webidl.brandCheck(this\x2C Request);\n\n\x09    // 1. If this is unusable\x2C then throw a TypeError.\n\x09    if (this.bodyUsed || this.body?.locked) {\n\x09      throw new TypeError('unusable')\n\x09    }\n\n\x09    // 2. Let clonedRequest be the result of cloning this\u2019s request.\n\x09    const clonedRequest = cloneRequest(this[kState]);\n\n\x09    // 3. Let clonedRequestObject be the result of creating a Request object\x2C\n\x09    // given clonedRequest\x2C this\u2019s headers\u2019s guard\x2C and this\u2019s relevant Realm.\n\x09    const clonedRequestObject = new Request(kInit);\n\x09    clonedRequestObject[kState] = clonedRequest;\n\x09    clonedRequestObject[kRealm] = this[kRealm];\n\x09    clonedRequestObject[kHeaders] = new Headers();\n\x09    clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList;\n\x09    clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard];\n\x09    clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm];\n\n\x09    // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n\x09    const ac = new AbortController();\n\x09    if (this.signal.aborted) {\n\x09      ac.abort(this.signal.reason);\n\x09    } else {\n\x09      this.signal.addEventListener(\n\x09        'abort'\x2C\n\x09        () => {\n\x09          ac.abort(this.signal.reason);\n\x09        }\x2C\n\x09        { once: true }\n\x09      );\n\x09    }\n\x09    clonedRequestObject[kSignal] = ac.signal;\n\n\x09    // 4. Return clonedRequestObject.\n\x09    return clonedRequestObject\n\x09  }\n\x09}\n\n\x09mixinBody(Request);\n\n\x09function makeRequest (init) {\n\x09  // https://fetch.spec.whatwg.org/#requests\n\x09  const request = {\n\x09    method: 'GET'\x2C\n\x09    localURLsOnly: false\x2C\n\x09    unsafeRequest: false\x2C\n\x09    body: null\x2C\n\x09    client: null\x2C\n\x09    reservedClient: null\x2C\n\x09    replacesClientId: ''\x2C\n\x09    window: 'client'\x2C\n\x09    keepalive: false\x2C\n\x09    serviceWorkers: 'all'\x2C\n\x09    initiator: ''\x2C\n\x09    destination: ''\x2C\n\x09    priority: null\x2C\n\x09    origin: 'client'\x2C\n\x09    policyContainer: 'client'\x2C\n\x09    referrer: 'client'\x2C\n\x09    referrerPolicy: ''\x2C\n\x09    mode: 'no-cors'\x2C\n\x09    useCORSPreflightFlag: false\x2C\n\x09    credentials: 'same-origin'\x2C\n\x09    useCredentials: false\x2C\n\x09    cache: 'default'\x2C\n\x09    redirect: 'follow'\x2C\n\x09    integrity: ''\x2C\n\x09    cryptoGraphicsNonceMetadata: ''\x2C\n\x09    parserMetadata: ''\x2C\n\x09    reloadNavigation: false\x2C\n\x09    historyNavigation: false\x2C\n\x09    userActivation: false\x2C\n\x09    taintedOrigin: false\x2C\n\x09    redirectCount: 0\x2C\n\x09    responseTainting: 'basic'\x2C\n\x09    preventNoCacheCacheControlHeaderModification: false\x2C\n\x09    done: false\x2C\n\x09    timingAllowFailed: false\x2C\n\x09    ...init\x2C\n\x09    headersList: init.headersList\n\x09      ? new HeadersList(init.headersList)\n\x09      : new HeadersList()\n\x09  };\n\x09  request.url = request.urlList[0];\n\x09  return request\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#concept-request-clone\n\x09function cloneRequest (request) {\n\x09  // To clone a request request\x2C run these steps:\n\n\x09  // 1. Let newRequest be a copy of request\x2C except for its body.\n\x09  const newRequest = makeRequest({ ...request\x2C body: null });\n\n\x09  // 2. If request\u2019s body is non-null\x2C set newRequest\u2019s body to the\n\x09  // result of cloning request\u2019s body.\n\x09  if (request.body != null) {\n\x09    newRequest.body = cloneBody(request.body);\n\x09  }\n\n\x09  // 3. Return newRequest.\n\x09  return newRequest\n\x09}\n\n\x09Object.defineProperties(Request.prototype\x2C {\n\x09  method: kEnumerableProperty\x2C\n\x09  url: kEnumerableProperty\x2C\n\x09  headers: kEnumerableProperty\x2C\n\x09  redirect: kEnumerableProperty\x2C\n\x09  clone: kEnumerableProperty\x2C\n\x09  signal: kEnumerableProperty\x2C\n\x09  duplex: kEnumerableProperty\x2C\n\x09  destination: kEnumerableProperty\x2C\n\x09  body: kEnumerableProperty\x2C\n\x09  bodyUsed: kEnumerableProperty\x2C\n\x09  isHistoryNavigation: kEnumerableProperty\x2C\n\x09  isReloadNavigation: kEnumerableProperty\x2C\n\x09  keepalive: kEnumerableProperty\x2C\n\x09  integrity: kEnumerableProperty\x2C\n\x09  cache: kEnumerableProperty\x2C\n\x09  credentials: kEnumerableProperty\x2C\n\x09  attribute: kEnumerableProperty\x2C\n\x09  referrerPolicy: kEnumerableProperty\x2C\n\x09  referrer: kEnumerableProperty\x2C\n\x09  mode: kEnumerableProperty\x2C\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'Request'\x2C\n\x09    configurable: true\n\x09  }\n\x09});\n\n\x09webidl.converters.Request = webidl.interfaceConverter(\n\x09  Request\n\x09);\n\n\x09// https://fetch.spec.whatwg.org/#requestinfo\n\x09webidl.converters.RequestInfo = function (V) {\n\x09  if (typeof V === 'string') {\n\x09    return webidl.converters.USVString(V)\n\x09  }\n\n\x09  if (V instanceof Request) {\n\x09    return webidl.converters.Request(V)\n\x09  }\n\n\x09  return webidl.converters.USVString(V)\n\x09};\n\n\x09webidl.converters.AbortSignal = webidl.interfaceConverter(\n\x09  AbortSignal\n\x09);\n\n\x09// https://fetch.spec.whatwg.org/#requestinit\n\x09webidl.converters.RequestInit = webidl.dictionaryConverter([\n\x09  {\n\x09    key: 'method'\x2C\n\x09    converter: webidl.converters.ByteString\n\x09  }\x2C\n\x09  {\n\x09    key: 'headers'\x2C\n\x09    converter: webidl.converters.HeadersInit\n\x09  }\x2C\n\x09  {\n\x09    key: 'body'\x2C\n\x09    converter: webidl.nullableConverter(\n\x09      webidl.converters.BodyInit\n\x09    )\n\x09  }\x2C\n\x09  {\n\x09    key: 'referrer'\x2C\n\x09    converter: webidl.converters.USVString\n\x09  }\x2C\n\x09  {\n\x09    key: 'referrerPolicy'\x2C\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n\x09    allowedValues: referrerPolicy\n\x09  }\x2C\n\x09  {\n\x09    key: 'mode'\x2C\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    // https://fetch.spec.whatwg.org/#concept-request-mode\n\x09    allowedValues: requestMode\n\x09  }\x2C\n\x09  {\n\x09    key: 'credentials'\x2C\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    // https://fetch.spec.whatwg.org/#requestcredentials\n\x09    allowedValues: requestCredentials\n\x09  }\x2C\n\x09  {\n\x09    key: 'cache'\x2C\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    // https://fetch.spec.whatwg.org/#requestcache\n\x09    allowedValues: requestCache\n\x09  }\x2C\n\x09  {\n\x09    key: 'redirect'\x2C\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    // https://fetch.spec.whatwg.org/#requestredirect\n\x09    allowedValues: requestRedirect\n\x09  }\x2C\n\x09  {\n\x09    key: 'integrity'\x2C\n\x09    converter: webidl.converters.DOMString\n\x09  }\x2C\n\x09  {\n\x09    key: 'keepalive'\x2C\n\x09    converter: webidl.converters.boolean\n\x09  }\x2C\n\x09  {\n\x09    key: 'signal'\x2C\n\x09    converter: webidl.nullableConverter(\n\x09      (signal) => webidl.converters.AbortSignal(\n\x09        signal\x2C\n\x09        { strict: false }\n\x09      )\n\x09    )\n\x09  }\x2C\n\x09  {\n\x09    key: 'window'\x2C\n\x09    converter: webidl.converters.any\n\x09  }\x2C\n\x09  {\n\x09    key: 'duplex'\x2C\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    allowedValues: requestDuplex\n\x09  }\n\x09]);\n\n\x09request = { Request\x2C makeRequest };\n\x09return request;\n}\n\nvar fetch_1;\nvar hasRequiredFetch;\n\nfunction requireFetch () {\n\x09if (hasRequiredFetch) return fetch_1;\n\x09hasRequiredFetch = 1;\n\n\x09const {\n\x09  Response\x2C\n\x09  makeNetworkError\x2C\n\x09  makeAppropriateNetworkError\x2C\n\x09  filterResponse\x2C\n\x09  makeResponse\n\x09} = requireResponse();\n\x09const { Headers } = requireHeaders();\n\x09const { Request\x2C makeRequest } = requireRequest();\n\x09const zlib = require$$3;\n\x09const {\n\x09  bytesMatch\x2C\n\x09  makePolicyContainer\x2C\n\x09  clonePolicyContainer\x2C\n\x09  requestBadPort\x2C\n\x09  TAOCheck\x2C\n\x09  appendRequestOriginHeader\x2C\n\x09  responseLocationURL\x2C\n\x09  requestCurrentURL\x2C\n\x09  setRequestReferrerPolicyOnRedirect\x2C\n\x09  tryUpgradeRequestToAPotentiallyTrustworthyURL\x2C\n\x09  createOpaqueTimingInfo\x2C\n\x09  appendFetchMetadata\x2C\n\x09  corsCheck\x2C\n\x09  crossOriginResourcePolicyCheck\x2C\n\x09  determineRequestsReferrer\x2C\n\x09  coarsenedSharedCurrentTime\x2C\n\x09  createDeferredPromise\x2C\n\x09  isBlobLike\x2C\n\x09  sameOrigin\x2C\n\x09  isCancelled\x2C\n\x09  isAborted\x2C\n\x09  isErrorLike\x2C\n\x09  fullyReadBody\x2C\n\x09  readableStreamClose\x2C\n\x09  isomorphicEncode\x2C\n\x09  urlIsLocal\x2C\n\x09  urlIsHttpHttpsScheme\x2C\n\x09  urlHasHttpsScheme\n\x09} = requireUtil$3();\n\x09const { kState\x2C kHeaders\x2C kGuard\x2C kRealm } = requireSymbols$2();\n\x09const assert = require$$0;\n\x09const { safelyExtractBody } = requireBody();\n\x09const {\n\x09  redirectStatus\x2C\n\x09  nullBodyStatus\x2C\n\x09  safeMethods\x2C\n\x09  requestBodyHeader\x2C\n\x09  subresource\x2C\n\x09  DOMException\n\x09} = requireConstants$3();\n\x09const { kHeadersList } = symbols$3;\n\x09const EE = require$$0$4;\n\x09const { Readable\x2C pipeline } = require$$0$1;\n\x09const { isErrored\x2C isReadable\x2C nodeMajor\x2C nodeMinor } = util$i;\n\x09const { dataURLProcessor\x2C serializeAMimeType } = requireDataURL();\n\x09const { TransformStream } = require$$13;\n\x09const { getGlobalDispatcher } = global$1;\n\x09const { webidl } = requireWebidl();\n\x09const { STATUS_CODES } = require$$2;\n\n\x09/** @type {import('buffer').resolveObjectURL} */\n\x09let resolveObjectURL;\n\x09let ReadableStream = globalThis.ReadableStream;\n\n\x09class Fetch extends EE {\n\x09  constructor (dispatcher) {\n\x09    super();\n\n\x09    this.dispatcher = dispatcher;\n\x09    this.connection = null;\n\x09    this.dump = false;\n\x09    this.state = 'ongoing';\n\x09    // 2 terminated listeners get added per request\x2C\n\x09    // but only 1 gets removed. If there are 20 redirects\x2C\n\x09    // 21 listeners will be added.\n\x09    // See https://github.com/nodejs/undici/issues/1711\n\x09    // TODO (fix): Find and fix root cause for leaked listener.\n\x09    this.setMaxListeners(21);\n\x09  }\n\n\x09  terminate (reason) {\n\x09    if (this.state !== 'ongoing') {\n\x09      return\n\x09    }\n\n\x09    this.state = 'terminated';\n\x09    this.connection?.destroy(reason);\n\x09    this.emit('terminated'\x2C reason);\n\x09  }\n\n\x09  // https://fetch.spec.whatwg.org/#fetch-controller-abort\n\x09  abort (error) {\n\x09    if (this.state !== 'ongoing') {\n\x09      return\n\x09    }\n\n\x09    // 1. Set controller\u2019s state to "aborted".\n\x09    this.state = 'aborted';\n\n\x09    // 2. Let fallbackError be an "AbortError" DOMException.\n\x09    // 3. Set error to fallbackError if it is not given.\n\x09    if (!error) {\n\x09      error = new DOMException('The operation was aborted.'\x2C 'AbortError');\n\x09    }\n\n\x09    // 4. Let serializedError be StructuredSerialize(error).\n\x09    //    If that threw an exception\x2C catch it\x2C and let\n\x09    //    serializedError be StructuredSerialize(fallbackError).\n\n\x09    // 5. Set controller\u2019s serialized abort reason to serializedError.\n\x09    this.serializedAbortReason = error;\n\n\x09    this.connection?.destroy(error);\n\x09    this.emit('terminated'\x2C error);\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#fetch-method\n\x09async function fetch (input\x2C init = {}) {\n\x09  webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'globalThis.fetch' });\n\n\x09  // 1. Let p be a new promise.\n\x09  const p = createDeferredPromise();\n\n\x09  // 2. Let requestObject be the result of invoking the initial value of\n\x09  // Request as constructor with input and init as arguments. If this throws\n\x09  // an exception\x2C reject p with it and return p.\n\x09  let requestObject;\n\n\x09  try {\n\x09    requestObject = new Request(input\x2C init);\n\x09  } catch (e) {\n\x09    p.reject(e);\n\x09    return p.promise\n\x09  }\n\n\x09  // 3. Let request be requestObject\u2019s request.\n\x09  const request = requestObject[kState];\n\n\x09  // 4. If requestObject\u2019s signal\u2019s aborted flag is set\x2C then:\n\x09  if (requestObject.signal.aborted) {\n\x09    // 1. Abort the fetch() call with p\x2C request\x2C null\x2C and\n\x09    //    requestObject\u2019s signal\u2019s abort reason.\n\x09    abortFetch(p\x2C request\x2C null\x2C requestObject.signal.reason);\n\n\x09    // 2. Return p.\n\x09    return p.promise\n\x09  }\n\n\x09  // 5. Let globalObject be request\u2019s client\u2019s global object.\n\x09  const globalObject = request.client.globalObject;\n\n\x09  // 6. If globalObject is a ServiceWorkerGlobalScope object\x2C then set\n\x09  // request\u2019s service-workers mode to "none".\n\x09  if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n\x09    request.serviceWorkers = 'none';\n\x09  }\n\n\x09  // 7. Let responseObject be null.\n\x09  let responseObject = null;\n\n\x09  // 8. Let relevantRealm be this\u2019s relevant Realm.\n\x09  const relevantRealm = null;\n\n\x09  // 9. Let locallyAborted be false.\n\x09  let locallyAborted = false;\n\n\x09  // 10. Let controller be null.\n\x09  let controller = null;\n\n\x09  // 11. Add the following abort steps to requestObject\u2019s signal:\n\x09  requestObject.signal.addEventListener(\n\x09    'abort'\x2C\n\x09    () => {\n\x09      // 1. Set locallyAborted to true.\n\x09      locallyAborted = true;\n\n\x09      // 2. Abort the fetch() call with p\x2C request\x2C responseObject\x2C\n\x09      //    and requestObject\u2019s signal\u2019s abort reason.\n\x09      abortFetch(p\x2C request\x2C responseObject\x2C requestObject.signal.reason);\n\n\x09      // 3. If controller is not null\x2C then abort controller.\n\x09      if (controller != null) {\n\x09        controller.abort();\n\x09      }\n\x09    }\x2C\n\x09    { once: true }\n\x09  );\n\n\x09  // 12. Let handleFetchDone given response response be to finalize and\n\x09  // report timing with response\x2C globalObject\x2C and "fetch".\n\x09  const handleFetchDone = (response) =>\n\x09    finalizeAndReportTiming(response\x2C 'fetch');\n\n\x09  // 13. Set controller to the result of calling fetch given request\x2C\n\x09  // with processResponseEndOfBody set to handleFetchDone\x2C and processResponse\n\x09  // given response being these substeps:\n\n\x09  const processResponse = (response) => {\n\x09    // 1. If locallyAborted is true\x2C terminate these substeps.\n\x09    if (locallyAborted) {\n\x09      return\n\x09    }\n\n\x09    // 2. If response\u2019s aborted flag is set\x2C then:\n\x09    if (response.aborted) {\n\x09      // 1. Let deserializedError be the result of deserialize a serialized\n\x09      //    abort reason given controller\u2019s serialized abort reason and\n\x09      //    relevantRealm.\n\n\x09      // 2. Abort the fetch() call with p\x2C request\x2C responseObject\x2C and\n\x09      //    deserializedError.\n\n\x09      abortFetch(p\x2C request\x2C responseObject\x2C controller.serializedAbortReason);\n\x09      return\n\x09    }\n\n\x09    // 3. If response is a network error\x2C then reject p with a TypeError\n\x09    // and terminate these substeps.\n\x09    if (response.type === 'error') {\n\x09      p.reject(\n\x09        Object.assign(new TypeError('fetch failed')\x2C { cause: response.error })\n\x09      );\n\x09      return\n\x09    }\n\n\x09    // 4. Set responseObject to the result of creating a Response object\x2C\n\x09    // given response\x2C "immutable"\x2C and relevantRealm.\n\x09    responseObject = new Response();\n\x09    responseObject[kState] = response;\n\x09    responseObject[kRealm] = relevantRealm;\n\x09    responseObject[kHeaders][kHeadersList] = response.headersList;\n\x09    responseObject[kHeaders][kGuard] = 'immutable';\n\x09    responseObject[kHeaders][kRealm] = relevantRealm;\n\n\x09    // 5. Resolve p with responseObject.\n\x09    p.resolve(responseObject);\n\x09  };\n\n\x09  controller = fetching({\n\x09    request\x2C\n\x09    processResponseEndOfBody: handleFetchDone\x2C\n\x09    processResponse\x2C\n\x09    dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n\x09  });\n\n\x09  // 14. Return p.\n\x09  return p.promise\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#finalize-and-report-timing\n\x09function finalizeAndReportTiming (response\x2C initiatorType = 'other') {\n\x09  // 1. If response is an aborted network error\x2C then return.\n\x09  if (response.type === 'error' && response.aborted) {\n\x09    return\n\x09  }\n\n\x09  // 2. If response\u2019s URL list is null or empty\x2C then return.\n\x09  if (!response.urlList?.length) {\n\x09    return\n\x09  }\n\n\x09  // 3. Let originalURL be response\u2019s URL list[0].\n\x09  const originalURL = response.urlList[0];\n\n\x09  // 4. Let timingInfo be response\u2019s timing info.\n\x09  let timingInfo = response.timingInfo;\n\n\x09  // 5. Let cacheState be response\u2019s cache state.\n\x09  let cacheState = response.cacheState;\n\n\x09  // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme\x2C then return.\n\x09  if (!urlIsHttpHttpsScheme(originalURL)) {\n\x09    return\n\x09  }\n\n\x09  // 7. If timingInfo is null\x2C then return.\n\x09  if (timingInfo === null) {\n\x09    return\n\x09  }\n\n\x09  // 8. If response\u2019s timing allow passed flag is not set\x2C then:\n\x09  if (!timingInfo.timingAllowPassed) {\n\x09    //  1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n\x09    timingInfo = createOpaqueTimingInfo({\n\x09      startTime: timingInfo.startTime\n\x09    });\n\n\x09    //  2. Set cacheState to the empty string.\n\x09    cacheState = '';\n\x09  }\n\n\x09  // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n\x09  // given global\u2019s relevant settings object\u2019s cross-origin isolated\n\x09  // capability.\n\x09  // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n\x09  // capability?\n\x09  timingInfo.endTime = coarsenedSharedCurrentTime();\n\n\x09  // 10. Set response\u2019s timing info to timingInfo.\n\x09  response.timingInfo = timingInfo;\n\n\x09  // 11. Mark resource timing for timingInfo\x2C originalURL\x2C initiatorType\x2C\n\x09  // global\x2C and cacheState.\n\x09  markResourceTiming(\n\x09    timingInfo\x2C\n\x09    originalURL\x2C\n\x09    initiatorType\x2C\n\x09    globalThis\x2C\n\x09    cacheState\n\x09  );\n\x09}\n\n\x09// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\n\x09function markResourceTiming (timingInfo\x2C originalURL\x2C initiatorType\x2C globalThis\x2C cacheState) {\n\x09  if (nodeMajor >= 18 && nodeMinor >= 2) {\n\x09    performance.markResourceTiming(timingInfo\x2C originalURL\x2C initiatorType\x2C globalThis\x2C cacheState);\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#abort-fetch\n\x09function abortFetch (p\x2C request\x2C responseObject\x2C error) {\n\x09  // Note: AbortSignal.reason was added in node v17.2.0\n\x09  // which would give us an undefined error to reject with.\n\x09  // Remove this once node v16 is no longer supported.\n\x09  if (!error) {\n\x09    error = new DOMException('The operation was aborted.'\x2C 'AbortError');\n\x09  }\n\n\x09  // 1. Reject promise with error.\n\x09  p.reject(error);\n\n\x09  // 2. If request\u2019s body is not null and is readable\x2C then cancel request\u2019s\n\x09  // body with error.\n\x09  if (request.body != null && isReadable(request.body?.stream)) {\n\x09    request.body.stream.cancel(error).catch((err) => {\n\x09      if (err.code === 'ERR_INVALID_STATE') {\n\x09        // Node bug?\n\x09        return\n\x09      }\n\x09      throw err\n\x09    });\n\x09  }\n\n\x09  // 3. If responseObject is null\x2C then return.\n\x09  if (responseObject == null) {\n\x09    return\n\x09  }\n\n\x09  // 4. Let response be responseObject\u2019s response.\n\x09  const response = responseObject[kState];\n\n\x09  // 5. If response\u2019s body is not null and is readable\x2C then error response\u2019s\n\x09  // body with error.\n\x09  if (response.body != null && isReadable(response.body?.stream)) {\n\x09    response.body.stream.cancel(error).catch((err) => {\n\x09      if (err.code === 'ERR_INVALID_STATE') {\n\x09        // Node bug?\n\x09        return\n\x09      }\n\x09      throw err\n\x09    });\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#fetching\n\x09function fetching ({\n\x09  request\x2C\n\x09  processRequestBodyChunkLength\x2C\n\x09  processRequestEndOfBody\x2C\n\x09  processResponse\x2C\n\x09  processResponseEndOfBody\x2C\n\x09  processResponseConsumeBody\x2C\n\x09  useParallelQueue = false\x2C\n\x09  dispatcher // undici\n\x09}) {\n\x09  // 1. Let taskDestination be null.\n\x09  let taskDestination = null;\n\n\x09  // 2. Let crossOriginIsolatedCapability be false.\n\x09  let crossOriginIsolatedCapability = false;\n\n\x09  // 3. If request\u2019s client is non-null\x2C then:\n\x09  if (request.client != null) {\n\x09    // 1. Set taskDestination to request\u2019s client\u2019s global object.\n\x09    taskDestination = request.client.globalObject;\n\n\x09    // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n\x09    // isolated capability.\n\x09    crossOriginIsolatedCapability =\n\x09      request.client.crossOriginIsolatedCapability;\n\x09  }\n\n\x09  // 4. If useParallelQueue is true\x2C then set taskDestination to the result of\n\x09  // starting a new parallel queue.\n\x09  // TODO\n\n\x09  // 5. Let timingInfo be a new fetch timing info whose start time and\n\x09  // post-redirect start time are the coarsened shared current time given\n\x09  // crossOriginIsolatedCapability.\n\x09  const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability);\n\x09  const timingInfo = createOpaqueTimingInfo({\n\x09    startTime: currenTime\n\x09  });\n\n\x09  // 6. Let fetchParams be a new fetch params whose\n\x09  // request is request\x2C\n\x09  // timing info is timingInfo\x2C\n\x09  // process request body chunk length is processRequestBodyChunkLength\x2C\n\x09  // process request end-of-body is processRequestEndOfBody\x2C\n\x09  // process response is processResponse\x2C\n\x09  // process response consume body is processResponseConsumeBody\x2C\n\x09  // process response end-of-body is processResponseEndOfBody\x2C\n\x09  // task destination is taskDestination\x2C\n\x09  // and cross-origin isolated capability is crossOriginIsolatedCapability.\n\x09  const fetchParams = {\n\x09    controller: new Fetch(dispatcher)\x2C\n\x09    request\x2C\n\x09    timingInfo\x2C\n\x09    processRequestBodyChunkLength\x2C\n\x09    processRequestEndOfBody\x2C\n\x09    processResponse\x2C\n\x09    processResponseConsumeBody\x2C\n\x09    processResponseEndOfBody\x2C\n\x09    taskDestination\x2C\n\x09    crossOriginIsolatedCapability\n\x09  };\n\n\x09  // 7. If request\u2019s body is a byte sequence\x2C then set request\u2019s body to\n\x09  //    request\u2019s body as a body.\n\x09  // NOTE: Since fetching is only called from fetch\x2C body should already be\n\x09  // extracted.\n\x09  assert(!request.body || request.body.stream);\n\n\x09  // 8. If request\u2019s window is "client"\x2C then set request\u2019s window to request\u2019s\n\x09  // client\x2C if request\u2019s client\u2019s global object is a Window object; otherwise\n\x09  // "no-window".\n\x09  if (request.window === 'client') {\n\x09    // TODO: What if request.client is null?\n\x09    request.window =\n\x09      request.client?.globalObject?.constructor?.name === 'Window'\n\x09        ? request.client\n\x09        : 'no-window';\n\x09  }\n\n\x09  // 9. If request\u2019s origin is "client"\x2C then set request\u2019s origin to request\u2019s\n\x09  // client\u2019s origin.\n\x09  if (request.origin === 'client') {\n\x09    // TODO: What if request.client is null?\n\x09    request.origin = request.client?.origin;\n\x09  }\n\n\x09  // 10. If all of the following conditions are true:\n\x09  // TODO\n\n\x09  // 11. If request\u2019s policy container is "client"\x2C then:\n\x09  if (request.policyContainer === 'client') {\n\x09    // 1. If request\u2019s client is non-null\x2C then set request\u2019s policy\n\x09    // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n\x09    if (request.client != null) {\n\x09      request.policyContainer = clonePolicyContainer(\n\x09        request.client.policyContainer\n\x09      );\n\x09    } else {\n\x09      // 2. Otherwise\x2C set request\u2019s policy container to a new policy\n\x09      // container.\n\x09      request.policyContainer = makePolicyContainer();\n\x09    }\n\x09  }\n\n\x09  // 12. If request\u2019s header list does not contain `Accept`\x2C then:\n\x09  if (!request.headersList.contains('accept')) {\n\x09    // 1. Let value be `*/*`.\n\x09    const value = '*/*';\n\n\x09    // 2. A user agent should set value to the first matching statement\x2C if\n\x09    // any\x2C switching on request\u2019s destination:\n\x09    // "document"\n\x09    // "frame"\n\x09    // "iframe"\n\x09    // `text/html\x2Capplication/xhtml+xml\x2Capplication/xml;q=0.9\x2C*/*;q=0.8`\n\x09    // "image"\n\x09    // `image/png\x2Cimage/svg+xml\x2Cimage/*;q=0.8\x2C*/*;q=0.5`\n\x09    // "style"\n\x09    // `text/css\x2C*/*;q=0.1`\n\x09    // TODO\n\n\x09    // 3. Append `Accept`/value to request\u2019s header list.\n\x09    request.headersList.append('accept'\x2C value);\n\x09  }\n\n\x09  // 13. If request\u2019s header list does not contain `Accept-Language`\x2C then\n\x09  // user agents should append `Accept-Language`/an appropriate value to\n\x09  // request\u2019s header list.\n\x09  if (!request.headersList.contains('accept-language')) {\n\x09    request.headersList.append('accept-language'\x2C '*');\n\x09  }\n\n\x09  // 14. If request\u2019s priority is null\x2C then use request\u2019s initiator and\n\x09  // destination appropriately in setting request\u2019s priority to a\n\x09  // user-agent-defined object.\n\x09  if (request.priority === null) ;\n\n\x09  // 15. If request is a subresource request\x2C then:\n\x09  if (subresource.includes(request.destination)) ;\n\n\x09  // 16. Run main fetch given fetchParams.\n\x09  mainFetch(fetchParams)\n\x09    .catch(err => {\n\x09      fetchParams.controller.terminate(err);\n\x09    });\n\n\x09  // 17. Return fetchParam's controller\n\x09  return fetchParams.controller\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#concept-main-fetch\n\x09async function mainFetch (fetchParams\x2C recursive = false) {\n\x09  // 1. Let request be fetchParams\u2019s request.\n\x09  const request = fetchParams.request;\n\n\x09  // 2. Let response be null.\n\x09  let response = null;\n\n\x09  // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n\x09  // not local\x2C then set response to a network error.\n\x09  if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n\x09    response = makeNetworkError('local URLs only');\n\x09  }\n\n\x09  // 4. Run report Content Security Policy violations for request.\n\x09  // TODO\n\n\x09  // 5. Upgrade request to a potentially trustworthy URL\x2C if appropriate.\n\x09  tryUpgradeRequestToAPotentiallyTrustworthyURL(request);\n\n\x09  // 6. If should request be blocked due to a bad port\x2C should fetching request\n\x09  // be blocked as mixed content\x2C or should request be blocked by Content\n\x09  // Security Policy returns blocked\x2C then set response to a network error.\n\x09  if (requestBadPort(request) === 'blocked') {\n\x09    response = makeNetworkError('bad port');\n\x09  }\n\x09  // TODO: should fetching request be blocked as mixed content?\n\x09  // TODO: should request be blocked by Content Security Policy?\n\n\x09  // 7. If request\u2019s referrer policy is the empty string\x2C then set request\u2019s\n\x09  // referrer policy to request\u2019s policy container\u2019s referrer policy.\n\x09  if (request.referrerPolicy === '') {\n\x09    request.referrerPolicy = request.policyContainer.referrerPolicy;\n\x09  }\n\n\x09  // 8. If request\u2019s referrer is not "no-referrer"\x2C then set request\u2019s\n\x09  // referrer to the result of invoking determine request\u2019s referrer.\n\x09  if (request.referrer !== 'no-referrer') {\n\x09    request.referrer = determineRequestsReferrer(request);\n\x09  }\n\n\x09  // 9. Set request\u2019s current URL\u2019s scheme to "https" if all of the following\n\x09  // conditions are true:\n\x09  // - request\u2019s current URL\u2019s scheme is "http"\n\x09  // - request\u2019s current URL\u2019s host is a domain\n\x09  // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n\x09  //   Matching results in either a superdomain match with an asserted\n\x09  //   includeSubDomains directive or a congruent match (with or without an\n\x09  //   asserted includeSubDomains directive). [HSTS]\n\x09  // TODO\n\n\x09  // 10. If recursive is false\x2C then run the remaining steps in parallel.\n\x09  // TODO\n\n\x09  // 11. If response is null\x2C then set response to the result of running\n\x09  // the steps corresponding to the first matching statement:\n\x09  if (response === null) {\n\x09    response = await (async () => {\n\x09      const currentURL = requestCurrentURL(request);\n\n\x09      if (\n\x09        // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin\x2C\n\x09        //   and request\u2019s response tainting is "basic"\n\x09        (sameOrigin(currentURL\x2C request.url) && request.responseTainting === 'basic') ||\n\x09        // request\u2019s current URL\u2019s scheme is "data"\n\x09        (currentURL.protocol === 'data:') ||\n\x09        // - request\u2019s mode is "navigate" or "websocket"\n\x09        (request.mode === 'navigate' || request.mode === 'websocket')\n\x09      ) {\n\x09        // 1. Set request\u2019s response tainting to "basic".\n\x09        request.responseTainting = 'basic';\n\n\x09        // 2. Return the result of running scheme fetch given fetchParams.\n\x09        return await schemeFetch(fetchParams)\n\x09      }\n\n\x09      // request\u2019s mode is "same-origin"\n\x09      if (request.mode === 'same-origin') {\n\x09        // 1. Return a network error.\n\x09        return makeNetworkError('request mode cannot be "same-origin"')\n\x09      }\n\n\x09      // request\u2019s mode is "no-cors"\n\x09      if (request.mode === 'no-cors') {\n\x09        // 1. If request\u2019s redirect mode is not "follow"\x2C then return a network\n\x09        // error.\n\x09        if (request.redirect !== 'follow') {\n\x09          return makeNetworkError(\n\x09            'redirect mode cannot be "follow" for "no-cors" request'\n\x09          )\n\x09        }\n\n\x09        // 2. Set request\u2019s response tainting to "opaque".\n\x09        request.responseTainting = 'opaque';\n\n\x09        // 3. Return the result of running scheme fetch given fetchParams.\n\x09        return await schemeFetch(fetchParams)\n\x09      }\n\n\x09      // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n\x09      if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n\x09        // Return a network error.\n\x09        return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n\x09      }\n\n\x09      // - request\u2019s use-CORS-preflight flag is set\n\x09      // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n\x09      //   not a CORS-safelisted method or CORS-unsafe request-header names with\n\x09      //   request\u2019s header list is not empty\n\x09      //    1. Set request\u2019s response tainting to "cors".\n\x09      //    2. Let corsWithPreflightResponse be the result of running HTTP fetch\n\x09      //    given fetchParams and true.\n\x09      //    3. If corsWithPreflightResponse is a network error\x2C then clear cache\n\x09      //    entries using request.\n\x09      //    4. Return corsWithPreflightResponse.\n\x09      // TODO\n\n\x09      // Otherwise\n\x09      //    1. Set request\u2019s response tainting to "cors".\n\x09      request.responseTainting = 'cors';\n\n\x09      //    2. Return the result of running HTTP fetch given fetchParams.\n\x09      return await httpFetch(fetchParams)\n\x09    })();\n\x09  }\n\n\x09  // 12. If recursive is true\x2C then return response.\n\x09  if (recursive) {\n\x09    return response\n\x09  }\n\n\x09  // 13. If response is not a network error and response is not a filtered\n\x09  // response\x2C then:\n\x09  if (response.status !== 0 && !response.internalResponse) {\n\x09    // If request\u2019s response tainting is "cors"\x2C then:\n\x09    if (request.responseTainting === 'cors') ;\n\n\x09    // Set response to the following filtered response with response as its\n\x09    // internal response\x2C depending on request\u2019s response tainting:\n\x09    if (request.responseTainting === 'basic') {\n\x09      response = filterResponse(response\x2C 'basic');\n\x09    } else if (request.responseTainting === 'cors') {\n\x09      response = filterResponse(response\x2C 'cors');\n\x09    } else if (request.responseTainting === 'opaque') {\n\x09      response = filterResponse(response\x2C 'opaque');\n\x09    } else {\n\x09      assert(false);\n\x09    }\n\x09  }\n\n\x09  // 14. Let internalResponse be response\x2C if response is a network error\x2C\n\x09  // and response\u2019s internal response otherwise.\n\x09  let internalResponse =\n\x09    response.status === 0 ? response : response.internalResponse;\n\n\x09  // 15. If internalResponse\u2019s URL list is empty\x2C then set it to a clone of\n\x09  // request\u2019s URL list.\n\x09  if (internalResponse.urlList.length === 0) {\n\x09    internalResponse.urlList.push(...request.urlList);\n\x09  }\n\n\x09  // 16. If request\u2019s timing allow failed flag is unset\x2C then set\n\x09  // internalResponse\u2019s timing allow passed flag.\n\x09  if (!request.timingAllowFailed) {\n\x09    response.timingAllowPassed = true;\n\x09  }\n\n\x09  // 17. If response is not a network error and any of the following returns\n\x09  // blocked\n\x09  // - should internalResponse to request be blocked as mixed content\n\x09  // - should internalResponse to request be blocked by Content Security Policy\n\x09  // - should internalResponse to request be blocked due to its MIME type\n\x09  // - should internalResponse to request be blocked due to nosniff\n\x09  // TODO\n\n\x09  // 18. If response\u2019s type is "opaque"\x2C internalResponse\u2019s status is 206\x2C\n\x09  // internalResponse\u2019s range-requested flag is set\x2C and request\u2019s header\n\x09  // list does not contain `Range`\x2C then set response and internalResponse\n\x09  // to a network error.\n\x09  if (\n\x09    response.type === 'opaque' &&\n\x09    internalResponse.status === 206 &&\n\x09    internalResponse.rangeRequested &&\n\x09    !request.headers.contains('range')\n\x09  ) {\n\x09    response = internalResponse = makeNetworkError();\n\x09  }\n\n\x09  // 19. If response is not a network error and either request\u2019s method is\n\x09  // `HEAD` or `CONNECT`\x2C or internalResponse\u2019s status is a null body status\x2C\n\x09  // set internalResponse\u2019s body to null and disregard any enqueuing toward\n\x09  // it (if any).\n\x09  if (\n\x09    response.status !== 0 &&\n\x09    (request.method === 'HEAD' ||\n\x09      request.method === 'CONNECT' ||\n\x09      nullBodyStatus.includes(internalResponse.status))\n\x09  ) {\n\x09    internalResponse.body = null;\n\x09    fetchParams.controller.dump = true;\n\x09  }\n\n\x09  // 20. If request\u2019s integrity metadata is not the empty string\x2C then:\n\x09  if (request.integrity) {\n\x09    // 1. Let processBodyError be this step: run fetch finale given fetchParams\n\x09    // and a network error.\n\x09    const processBodyError = (reason) =>\n\x09      fetchFinale(fetchParams\x2C makeNetworkError(reason));\n\n\x09    // 2. If request\u2019s response tainting is "opaque"\x2C or response\u2019s body is null\x2C\n\x09    // then run processBodyError and abort these steps.\n\x09    if (request.responseTainting === 'opaque' || response.body == null) {\n\x09      processBodyError(response.error);\n\x09      return\n\x09    }\n\n\x09    // 3. Let processBody given bytes be these steps:\n\x09    const processBody = (bytes) => {\n\x09      // 1. If bytes do not match request\u2019s integrity metadata\x2C\n\x09      // then run processBodyError and abort these steps. [SRI]\n\x09      if (!bytesMatch(bytes\x2C request.integrity)) {\n\x09        processBodyError('integrity mismatch');\n\x09        return\n\x09      }\n\n\x09      // 2. Set response\u2019s body to bytes as a body.\n\x09      response.body = safelyExtractBody(bytes)[0];\n\n\x09      // 3. Run fetch finale given fetchParams and response.\n\x09      fetchFinale(fetchParams\x2C response);\n\x09    };\n\n\x09    // 4. Fully read response\u2019s body given processBody and processBodyError.\n\x09    await fullyReadBody(response.body\x2C processBody\x2C processBodyError);\n\x09  } else {\n\x09    // 21. Otherwise\x2C run fetch finale given fetchParams and response.\n\x09    fetchFinale(fetchParams\x2C response);\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n\x09// given a fetch params fetchParams\n\x09async function schemeFetch (fetchParams) {\n\x09  // Note: since the connection is destroyed on redirect\x2C which sets fetchParams to a\n\x09  // cancelled state\x2C we do not want this condition to trigger *unless* there have been\n\x09  // no redirects. See https://github.com/nodejs/undici/issues/1776\n\x09  // 1. If fetchParams is canceled\x2C then return the appropriate network error for fetchParams.\n\x09  if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n\x09    return makeAppropriateNetworkError(fetchParams)\n\x09  }\n\n\x09  // 2. Let request be fetchParams\u2019s request.\n\x09  const { request } = fetchParams;\n\n\x09  const { protocol: scheme } = requestCurrentURL(request);\n\n\x09  // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n\x09  switch (scheme) {\n\x09    case 'about:': {\n\x09      // If request\u2019s current URL\u2019s path is the string "blank"\x2C then return a new response\n\x09      // whose status message is `OK`\x2C header list is \xab (`Content-Type`\x2C `text/html;charset=utf-8`) \xbb\x2C\n\x09      // and body is the empty byte sequence as a body.\n\n\x09      // Otherwise\x2C return a network error.\n\x09      return makeNetworkError('about scheme is not supported')\n\x09    }\n\x09    case 'blob:': {\n\x09      if (!resolveObjectURL) {\n\x09        resolveObjectURL = require$$7.resolveObjectURL;\n\x09      }\n\n\x09      // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n\x09      const blobURLEntry = requestCurrentURL(request);\n\n\x09      // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n\x09      // Buffer.resolveObjectURL does not ignore URL queries.\n\x09      if (blobURLEntry.search.length !== 0) {\n\x09        return makeNetworkError('NetworkError when attempting to fetch resource.')\n\x09      }\n\n\x09      const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString());\n\n\x09      // 2. If request\u2019s method is not `GET`\x2C blobURLEntry is null\x2C or blobURLEntry\u2019s\n\x09      //    object is not a Blob object\x2C then return a network error.\n\x09      if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n\x09        return makeNetworkError('invalid method')\n\x09      }\n\n\x09      // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n\x09      const bodyWithType = safelyExtractBody(blobURLEntryObject);\n\n\x09      // 4. Let body be bodyWithType\u2019s body.\n\x09      const body = bodyWithType[0];\n\n\x09      // 5. Let length be body\u2019s length\x2C serialized and isomorphic encoded.\n\x09      const length = isomorphicEncode(`${body.length}`);\n\n\x09      // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n\x09      const type = bodyWithType[1] ?? '';\n\n\x09      // 7. Return a new response whose status message is `OK`\x2C header list is\n\x09      //    \xab (`Content-Length`\x2C length)\x2C (`Content-Type`\x2C type) \xbb\x2C and body is body.\n\x09      const response = makeResponse({\n\x09        statusText: 'OK'\x2C\n\x09        headersList: [\n\x09          ['content-length'\x2C { name: 'Content-Length'\x2C value: length }]\x2C\n\x09          ['content-type'\x2C { name: 'Content-Type'\x2C value: type }]\n\x09        ]\n\x09      });\n\n\x09      response.body = body;\n\n\x09      return response\n\x09    }\n\x09    case 'data:': {\n\x09      // 1. Let dataURLStruct be the result of running the\n\x09      //    data: URL processor on request\u2019s current URL.\n\x09      const currentURL = requestCurrentURL(request);\n\x09      const dataURLStruct = dataURLProcessor(currentURL);\n\n\x09      // 2. If dataURLStruct is failure\x2C then return a\n\x09      //    network error.\n\x09      if (dataURLStruct === 'failure') {\n\x09        return makeNetworkError('failed to fetch the data URL')\n\x09      }\n\n\x09      // 3. Let mimeType be dataURLStruct\u2019s MIME type\x2C serialized.\n\x09      const mimeType = serializeAMimeType(dataURLStruct.mimeType);\n\n\x09      // 4. Return a response whose status message is `OK`\x2C\n\x09      //    header list is \xab (`Content-Type`\x2C mimeType) \xbb\x2C\n\x09      //    and body is dataURLStruct\u2019s body as a body.\n\x09      return makeResponse({\n\x09        statusText: 'OK'\x2C\n\x09        headersList: [\n\x09          ['content-type'\x2C { name: 'Content-Type'\x2C value: mimeType }]\n\x09        ]\x2C\n\x09        body: safelyExtractBody(dataURLStruct.body)[0]\n\x09      })\n\x09    }\n\x09    case 'file:': {\n\x09      // For now\x2C unfortunate as it is\x2C file URLs are left as an exercise for the reader.\n\x09      // When in doubt\x2C return a network error.\n\x09      return makeNetworkError('not implemented... yet...')\n\x09    }\n\x09    case 'http:':\n\x09    case 'https:': {\n\x09      // Return the result of running HTTP fetch given fetchParams.\n\n\x09      return await httpFetch(fetchParams)\n\x09        .catch((err) => makeNetworkError(err))\n\x09    }\n\x09    default: {\n\x09      return makeNetworkError('unknown scheme')\n\x09    }\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#finalize-response\n\x09function finalizeResponse (fetchParams\x2C response) {\n\x09  // 1. Set fetchParams\u2019s request\u2019s done flag.\n\x09  fetchParams.request.done = true;\n\n\x09  // 2\x2C If fetchParams\u2019s process response done is not null\x2C then queue a fetch\n\x09  // task to run fetchParams\u2019s process response done given response\x2C with\n\x09  // fetchParams\u2019s task destination.\n\x09  if (fetchParams.processResponseDone != null) {\n\x09    queueMicrotask(() => fetchParams.processResponseDone(response));\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#fetch-finale\n\x09async function fetchFinale (fetchParams\x2C response) {\n\x09  // 1. If response is a network error\x2C then:\n\x09  if (response.type === 'error') {\n\x09    // 1. Set response\u2019s URL list to \xab fetchParams\u2019s request\u2019s URL list[0] \xbb.\n\x09    response.urlList = [fetchParams.request.urlList[0]];\n\n\x09    // 2. Set response\u2019s timing info to the result of creating an opaque timing\n\x09    // info for fetchParams\u2019s timing info.\n\x09    response.timingInfo = createOpaqueTimingInfo({\n\x09      startTime: fetchParams.timingInfo.startTime\n\x09    });\n\x09  }\n\n\x09  // 2. Let processResponseEndOfBody be the following steps:\n\x09  const processResponseEndOfBody = () => {\n\x09    // 1. Set fetchParams\u2019s request\u2019s done flag.\n\x09    fetchParams.request.done = true;\n\n\x09    // If fetchParams\u2019s process response end-of-body is not null\x2C\n\x09    // then queue a fetch task to run fetchParams\u2019s process response\n\x09    // end-of-body given response with fetchParams\u2019s task destination.\n\x09    if (fetchParams.processResponseEndOfBody != null) {\n\x09      queueMicrotask(() => fetchParams.processResponseEndOfBody(response));\n\x09    }\n\x09  };\n\n\x09  // 3. If fetchParams\u2019s process response is non-null\x2C then queue a fetch task\n\x09  // to run fetchParams\u2019s process response given response\x2C with fetchParams\u2019s\n\x09  // task destination.\n\x09  if (fetchParams.processResponse != null) {\n\x09    queueMicrotask(() => fetchParams.processResponse(response));\n\x09  }\n\n\x09  // 4. If response\u2019s body is null\x2C then run processResponseEndOfBody.\n\x09  if (response.body == null) {\n\x09    processResponseEndOfBody();\n\x09  } else {\n\x09  // 5. Otherwise:\n\n\x09    // 1. Let transformStream be a new a TransformStream.\n\n\x09    // 2. Let identityTransformAlgorithm be an algorithm which\x2C given chunk\x2C\n\x09    // enqueues chunk in transformStream.\n\x09    const identityTransformAlgorithm = (chunk\x2C controller) => {\n\x09      controller.enqueue(chunk);\n\x09    };\n\n\x09    // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n\x09    // and flushAlgorithm set to processResponseEndOfBody.\n\x09    const transformStream = new TransformStream({\n\x09      start () {}\x2C\n\x09      transform: identityTransformAlgorithm\x2C\n\x09      flush: processResponseEndOfBody\n\x09    }\x2C {\n\x09      size () {\n\x09        return 1\n\x09      }\n\x09    }\x2C {\n\x09      size () {\n\x09        return 1\n\x09      }\n\x09    });\n\n\x09    // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n\x09    response.body = { stream: response.body.stream.pipeThrough(transformStream) };\n\x09  }\n\n\x09  // 6. If fetchParams\u2019s process response consume body is non-null\x2C then:\n\x09  if (fetchParams.processResponseConsumeBody != null) {\n\x09    // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n\x09    // process response consume body given response and nullOrBytes.\n\x09    const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response\x2C nullOrBytes);\n\n\x09    // 2. Let processBodyError be this step: run fetchParams\u2019s process\n\x09    // response consume body given response and failure.\n\x09    const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response\x2C failure);\n\n\x09    // 3. If response\u2019s body is null\x2C then queue a fetch task to run processBody\n\x09    // given null\x2C with fetchParams\u2019s task destination.\n\x09    if (response.body == null) {\n\x09      queueMicrotask(() => processBody(null));\n\x09    } else {\n\x09      // 4. Otherwise\x2C fully read response\u2019s body given processBody\x2C processBodyError\x2C\n\x09      // and fetchParams\u2019s task destination.\n\x09      await fullyReadBody(response.body\x2C processBody\x2C processBodyError);\n\x09    }\n\x09  }\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#http-fetch\n\x09async function httpFetch (fetchParams) {\n\x09  // 1. Let request be fetchParams\u2019s request.\n\x09  const request = fetchParams.request;\n\n\x09  // 2. Let response be null.\n\x09  let response = null;\n\n\x09  // 3. Let actualResponse be null.\n\x09  let actualResponse = null;\n\n\x09  // 4. Let timingInfo be fetchParams\u2019s timing info.\n\x09  const timingInfo = fetchParams.timingInfo;\n\n\x09  // 5. If request\u2019s service-workers mode is "all"\x2C then:\n\x09  if (request.serviceWorkers === 'all') ;\n\n\x09  // 6. If response is null\x2C then:\n\x09  if (response === null) {\n\x09    // 1. If makeCORSPreflight is true and one of these conditions is true:\n\x09    // TODO\n\n\x09    // 2. If request\u2019s redirect mode is "follow"\x2C then set request\u2019s\n\x09    // service-workers mode to "none".\n\x09    if (request.redirect === 'follow') {\n\x09      request.serviceWorkers = 'none';\n\x09    }\n\n\x09    // 3. Set response and actualResponse to the result of running\n\x09    // HTTP-network-or-cache fetch given fetchParams.\n\x09    actualResponse = response = await httpNetworkOrCacheFetch(fetchParams);\n\n\x09    // 4. If request\u2019s response tainting is "cors" and a CORS check\n\x09    // for request and response returns failure\x2C then return a network error.\n\x09    if (\n\x09      request.responseTainting === 'cors' &&\n\x09      corsCheck(request\x2C response) === 'failure'\n\x09    ) {\n\x09      return makeNetworkError('cors failure')\n\x09    }\n\n\x09    // 5. If the TAO check for request and response returns failure\x2C then set\n\x09    // request\u2019s timing allow failed flag.\n\x09    if (TAOCheck(request\x2C response) === 'failure') {\n\x09      request.timingAllowFailed = true;\n\x09    }\n\x09  }\n\n\x09  // 7. If either request\u2019s response tainting or response\u2019s type\n\x09  // is "opaque"\x2C and the cross-origin resource policy check with\n\x09  // request\u2019s origin\x2C request\u2019s client\x2C request\u2019s destination\x2C\n\x09  // and actualResponse returns blocked\x2C then return a network error.\n\x09  if (\n\x09    (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n\x09    crossOriginResourcePolicyCheck(\n\x09      request.origin\x2C\n\x09      request.client\x2C\n\x09      request.destination\x2C\n\x09      actualResponse\n\x09    ) === 'blocked'\n\x09  ) {\n\x09    return makeNetworkError('blocked')\n\x09  }\n\n\x09  // 8. If actualResponse\u2019s status is a redirect status\x2C then:\n\x09  if (redirectStatus.includes(actualResponse.status)) {\n\x09    // 1. If actualResponse\u2019s status is not 303\x2C request\u2019s body is not null\x2C\n\x09    // and the connection uses HTTP/2\x2C then user agents may\x2C and are even\n\x09    // encouraged to\x2C transmit an RST_STREAM frame.\n\x09    // See\x2C https://github.com/whatwg/fetch/issues/1288\n\x09    if (request.redirect !== 'manual') {\n\x09      fetchParams.controller.connection.destroy();\n\x09    }\n\n\x09    // 2. Switch on request\u2019s redirect mode:\n\x09    if (request.redirect === 'error') {\n\x09      // Set response to a network error.\n\x09      response = makeNetworkError('unexpected redirect');\n\x09    } else if (request.redirect === 'manual') {\n\x09      // Set response to an opaque-redirect filtered response whose internal\n\x09      // response is actualResponse.\n\x09      // NOTE(spec): On the web this would return an `opaqueredirect` response\x2C\n\x09      // but that doesn't make sense server side.\n\x09      // See https://github.com/nodejs/undici/issues/1193.\n\x09      response = actualResponse;\n\x09    } else if (request.redirect === 'follow') {\n\x09      // Set response to the result of running HTTP-redirect fetch given\n\x09      // fetchParams and response.\n\x09      response = await httpRedirectFetch(fetchParams\x2C response);\n\x09    } else {\n\x09      assert(false);\n\x09    }\n\x09  }\n\n\x09  // 9. Set response\u2019s timing info to timingInfo.\n\x09  response.timingInfo = timingInfo;\n\n\x09  // 10. Return response.\n\x09  return response\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#http-redirect-fetch\n\x09async function httpRedirectFetch (fetchParams\x2C response) {\n\x09  // 1. Let request be fetchParams\u2019s request.\n\x09  const request = fetchParams.request;\n\n\x09  // 2. Let actualResponse be response\x2C if response is not a filtered response\x2C\n\x09  // and response\u2019s internal response otherwise.\n\x09  const actualResponse = response.internalResponse\n\x09    ? response.internalResponse\n\x09    : response;\n\n\x09  // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n\x09  // URL\u2019s fragment.\n\x09  let locationURL;\n\n\x09  try {\n\x09    locationURL = responseLocationURL(\n\x09      actualResponse\x2C\n\x09      requestCurrentURL(request).hash\n\x09    );\n\n\x09    // 4. If locationURL is null\x2C then return response.\n\x09    if (locationURL == null) {\n\x09      return response\n\x09    }\n\x09  } catch (err) {\n\x09    // 5. If locationURL is failure\x2C then return a network error.\n\x09    return makeNetworkError(err)\n\x09  }\n\n\x09  // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme\x2C then return a network\n\x09  // error.\n\x09  if (!urlIsHttpHttpsScheme(locationURL)) {\n\x09    return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n\x09  }\n\n\x09  // 7. If request\u2019s redirect count is 20\x2C then return a network error.\n\x09  if (request.redirectCount === 20) {\n\x09    return makeNetworkError('redirect count exceeded')\n\x09  }\n\n\x09  // 8. Increase request\u2019s redirect count by 1.\n\x09  request.redirectCount += 1;\n\n\x09  // 9. If request\u2019s mode is "cors"\x2C locationURL includes credentials\x2C and\n\x09  // request\u2019s origin is not same origin with locationURL\u2019s origin\x2C then return\n\x09  //  a network error.\n\x09  if (\n\x09    request.mode === 'cors' &&\n\x09    (locationURL.username || locationURL.password) &&\n\x09    !sameOrigin(request\x2C locationURL)\n\x09  ) {\n\x09    return makeNetworkError('cross origin not allowed for request mode "cors"')\n\x09  }\n\n\x09  // 10. If request\u2019s response tainting is "cors" and locationURL includes\n\x09  // credentials\x2C then return a network error.\n\x09  if (\n\x09    request.responseTainting === 'cors' &&\n\x09    (locationURL.username || locationURL.password)\n\x09  ) {\n\x09    return makeNetworkError(\n\x09      'URL cannot contain credentials for request mode "cors"'\n\x09    )\n\x09  }\n\n\x09  // 11. If actualResponse\u2019s status is not 303\x2C request\u2019s body is non-null\x2C\n\x09  // and request\u2019s body\u2019s source is null\x2C then return a network error.\n\x09  if (\n\x09    actualResponse.status !== 303 &&\n\x09    request.body != null &&\n\x09    request.body.source == null\n\x09  ) {\n\x09    return makeNetworkError()\n\x09  }\n\n\x09  // 12. If one of the following is true\n\x09  // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n\x09  // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n\x09  if (\n\x09    ([301\x2C 302].includes(actualResponse.status) && request.method === 'POST') ||\n\x09    (actualResponse.status === 303 &&\n\x09      !['GET'\x2C 'HEAD'].includes(request.method))\n\x09  ) {\n\x09    // then:\n\x09    // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n\x09    request.method = 'GET';\n\x09    request.body = null;\n\n\x09    // 2. For each headerName of request-body-header name\x2C delete headerName from\n\x09    // request\u2019s header list.\n\x09    for (const headerName of requestBodyHeader) {\n\x09      request.headersList.delete(headerName);\n\x09    }\n\x09  }\n\n\x09  // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n\x09  //     origin\x2C then for each headerName of CORS non-wildcard request-header name\x2C\n\x09  //     delete headerName from request\u2019s header list.\n\x09  if (!sameOrigin(requestCurrentURL(request)\x2C locationURL)) {\n\x09    // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n\x09    request.headersList.delete('authorization');\n\x09  }\n\n\x09  // 14. If request\u2019s body is non-null\x2C then set request\u2019s body to the first return\n\x09  // value of safely extracting request\u2019s body\u2019s source.\n\x09  if (request.body != null) {\n\x09    assert(request.body.source != null);\n\x09    request.body = safelyExtractBody(request.body.source)[0];\n\x09  }\n\n\x09  // 15. Let timingInfo be fetchParams\u2019s timing info.\n\x09  const timingInfo = fetchParams.timingInfo;\n\n\x09  // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n\x09  // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n\x09  // capability.\n\x09  timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n\x09    coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability);\n\n\x09  // 17. If timingInfo\u2019s redirect start time is 0\x2C then set timingInfo\u2019s\n\x09  //  redirect start time to timingInfo\u2019s start time.\n\x09  if (timingInfo.redirectStartTime === 0) {\n\x09    timingInfo.redirectStartTime = timingInfo.startTime;\n\x09  }\n\n\x09  // 18. Append locationURL to request\u2019s URL list.\n\x09  request.urlList.push(locationURL);\n\n\x09  // 19. Invoke set request\u2019s referrer policy on redirect on request and\n\x09  // actualResponse.\n\x09  setRequestReferrerPolicyOnRedirect(request\x2C actualResponse);\n\n\x09  // 20. Return the result of running main fetch given fetchParams and true.\n\x09  return mainFetch(fetchParams\x2C true)\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\n\x09async function httpNetworkOrCacheFetch (\n\x09  fetchParams\x2C\n\x09  isAuthenticationFetch = false\x2C\n\x09  isNewConnectionFetch = false\n\x09) {\n\x09  // 1. Let request be fetchParams\u2019s request.\n\x09  const request = fetchParams.request;\n\n\x09  // 2. Let httpFetchParams be null.\n\x09  let httpFetchParams = null;\n\n\x09  // 3. Let httpRequest be null.\n\x09  let httpRequest = null;\n\n\x09  // 4. Let response be null.\n\x09  let response = null;\n\n\x09  // 8. Run these steps\x2C but abort when the ongoing fetch is terminated:\n\n\x09  //    1. If request\u2019s window is "no-window" and request\u2019s redirect mode is\n\x09  //    "error"\x2C then set httpFetchParams to fetchParams and httpRequest to\n\x09  //    request.\n\x09  if (request.window === 'no-window' && request.redirect === 'error') {\n\x09    httpFetchParams = fetchParams;\n\x09    httpRequest = request;\n\x09  } else {\n\x09    // Otherwise:\n\n\x09    // 1. Set httpRequest to a clone of request.\n\x09    httpRequest = makeRequest(request);\n\n\x09    // 2. Set httpFetchParams to a copy of fetchParams.\n\x09    httpFetchParams = { ...fetchParams };\n\n\x09    // 3. Set httpFetchParams\u2019s request to httpRequest.\n\x09    httpFetchParams.request = httpRequest;\n\x09  }\n\n\x09  //    3. Let includeCredentials be true if one of\n\x09  const includeCredentials =\n\x09    request.credentials === 'include' ||\n\x09    (request.credentials === 'same-origin' &&\n\x09      request.responseTainting === 'basic');\n\n\x09  //    4. Let contentLength be httpRequest\u2019s body\u2019s length\x2C if httpRequest\u2019s\n\x09  //    body is non-null; otherwise null.\n\x09  const contentLength = httpRequest.body ? httpRequest.body.length : null;\n\n\x09  //    5. Let contentLengthHeaderValue be null.\n\x09  let contentLengthHeaderValue = null;\n\n\x09  //    6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n\x09  //    `PUT`\x2C then set contentLengthHeaderValue to `0`.\n\x09  if (\n\x09    httpRequest.body == null &&\n\x09    ['POST'\x2C 'PUT'].includes(httpRequest.method)\n\x09  ) {\n\x09    contentLengthHeaderValue = '0';\n\x09  }\n\n\x09  //    7. If contentLength is non-null\x2C then set contentLengthHeaderValue to\n\x09  //    contentLength\x2C serialized and isomorphic encoded.\n\x09  if (contentLength != null) {\n\x09    contentLengthHeaderValue = isomorphicEncode(`${contentLength}`);\n\x09  }\n\n\x09  //    8. If contentLengthHeaderValue is non-null\x2C then append\n\x09  //    `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n\x09  //    list.\n\x09  if (contentLengthHeaderValue != null) {\n\x09    httpRequest.headersList.append('content-length'\x2C contentLengthHeaderValue);\n\x09  }\n\n\x09  //    9. If contentLengthHeaderValue is non-null\x2C then append (`Content-Length`\x2C\n\x09  //    contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n\x09  //    10. If contentLength is non-null and httpRequest\u2019s keepalive is true\x2C\n\x09  //    then:\n\x09  if (contentLength != null && httpRequest.keepalive) ;\n\n\x09  //    11. If httpRequest\u2019s referrer is a URL\x2C then append\n\x09  //    `Referer`/httpRequest\u2019s referrer\x2C serialized and isomorphic encoded\x2C\n\x09  //     to httpRequest\u2019s header list.\n\x09  if (httpRequest.referrer instanceof URL) {\n\x09    httpRequest.headersList.append('referer'\x2C isomorphicEncode(httpRequest.referrer.href));\n\x09  }\n\n\x09  //    12. Append a request `Origin` header for httpRequest.\n\x09  appendRequestOriginHeader(httpRequest);\n\n\x09  //    13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n\x09  appendFetchMetadata(httpRequest);\n\n\x09  //    14. If httpRequest\u2019s header list does not contain `User-Agent`\x2C then\n\x09  //    user agents should append `User-Agent`/default `User-Agent` value to\n\x09  //    httpRequest\u2019s header list.\n\x09  if (!httpRequest.headersList.contains('user-agent')) {\n\x09    httpRequest.headersList.append('user-agent'\x2C 'undici');\n\x09  }\n\n\x09  //    15. If httpRequest\u2019s cache mode is "default" and httpRequest\u2019s header\n\x09  //    list contains `If-Modified-Since`\x2C `If-None-Match`\x2C\n\x09  //    `If-Unmodified-Since`\x2C `If-Match`\x2C or `If-Range`\x2C then set\n\x09  //    httpRequest\u2019s cache mode to "no-store".\n\x09  if (\n\x09    httpRequest.cache === 'default' &&\n\x09    (httpRequest.headersList.contains('if-modified-since') ||\n\x09      httpRequest.headersList.contains('if-none-match') ||\n\x09      httpRequest.headersList.contains('if-unmodified-since') ||\n\x09      httpRequest.headersList.contains('if-match') ||\n\x09      httpRequest.headersList.contains('if-range'))\n\x09  ) {\n\x09    httpRequest.cache = 'no-store';\n\x09  }\n\n\x09  //    16. If httpRequest\u2019s cache mode is "no-cache"\x2C httpRequest\u2019s prevent\n\x09  //    no-cache cache-control header modification flag is unset\x2C and\n\x09  //    httpRequest\u2019s header list does not contain `Cache-Control`\x2C then append\n\x09  //    `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n\x09  if (\n\x09    httpRequest.cache === 'no-cache' &&\n\x09    !httpRequest.preventNoCacheCacheControlHeaderModification &&\n\x09    !httpRequest.headersList.contains('cache-control')\n\x09  ) {\n\x09    httpRequest.headersList.append('cache-control'\x2C 'max-age=0');\n\x09  }\n\n\x09  //    17. If httpRequest\u2019s cache mode is "no-store" or "reload"\x2C then:\n\x09  if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n\x09    // 1. If httpRequest\u2019s header list does not contain `Pragma`\x2C then append\n\x09    // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n\x09    if (!httpRequest.headersList.contains('pragma')) {\n\x09      httpRequest.headersList.append('pragma'\x2C 'no-cache');\n\x09    }\n\n\x09    // 2. If httpRequest\u2019s header list does not contain `Cache-Control`\x2C\n\x09    // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n\x09    if (!httpRequest.headersList.contains('cache-control')) {\n\x09      httpRequest.headersList.append('cache-control'\x2C 'no-cache');\n\x09    }\n\x09  }\n\n\x09  //    18. If httpRequest\u2019s header list contains `Range`\x2C then append\n\x09  //    `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n\x09  if (httpRequest.headersList.contains('range')) {\n\x09    httpRequest.headersList.append('accept-encoding'\x2C 'identity');\n\x09  }\n\n\x09  //    19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n\x09  //    header if httpRequest\u2019s header list contains that header\u2019s name.\n\x09  //    TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n\x09  if (!httpRequest.headersList.contains('accept-encoding')) {\n\x09    if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n\x09      httpRequest.headersList.append('accept-encoding'\x2C 'br\x2C gzip\x2C deflate');\n\x09    } else {\n\x09      httpRequest.headersList.append('accept-encoding'\x2C 'gzip\x2C deflate');\n\x09    }\n\x09  }\n\n\x09  //    21. If there\u2019s a proxy-authentication entry\x2C use it as appropriate.\n\x09  //    TODO: proxy-authentication\n\n\x09  //    22. Set httpCache to the result of determining the HTTP cache\n\x09  //    partition\x2C given httpRequest.\n\x09  //    TODO: cache\n\n\x09  //    23. If httpCache is null\x2C then set httpRequest\u2019s cache mode to\n\x09  //    "no-store".\n\x09  {\n\x09    httpRequest.cache = 'no-store';\n\x09  }\n\n\x09  //    24. If httpRequest\u2019s cache mode is neither "no-store" nor "reload"\x2C\n\x09  //    then:\n\x09  if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') ;\n\n\x09  // 9. If aborted\x2C then return the appropriate network error for fetchParams.\n\x09  // TODO\n\n\x09  // 10. If response is null\x2C then:\n\x09  if (response == null) {\n\x09    // 1. If httpRequest\u2019s cache mode is "only-if-cached"\x2C then return a\n\x09    // network error.\n\x09    if (httpRequest.mode === 'only-if-cached') {\n\x09      return makeNetworkError('only if cached')\n\x09    }\n\n\x09    // 2. Let forwardResponse be the result of running HTTP-network fetch\n\x09    // given httpFetchParams\x2C includeCredentials\x2C and isNewConnectionFetch.\n\x09    const forwardResponse = await httpNetworkFetch(\n\x09      httpFetchParams\x2C\n\x09      includeCredentials\x2C\n\x09      isNewConnectionFetch\n\x09    );\n\n\x09    // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n\x09    // in the range 200 to 399\x2C inclusive\x2C invalidate appropriate stored\n\x09    // responses in httpCache\x2C as per the "Invalidation" chapter of HTTP\n\x09    // Caching\x2C and set storedResponse to null. [HTTP-CACHING]\n\x09    if (\n\x09      !safeMethods.includes(httpRequest.method) &&\n\x09      forwardResponse.status >= 200 &&\n\x09      forwardResponse.status <= 399\n\x09    ) ;\n\n\x09    // 5. If response is null\x2C then:\n\x09    if (response == null) {\n\x09      // 1. Set response to forwardResponse.\n\x09      response = forwardResponse;\n\n\x09      // 2. Store httpRequest and forwardResponse in httpCache\x2C as per the\n\x09      // "Storing Responses in Caches" chapter of HTTP Caching. [HTTP-CACHING]\n\x09      // TODO: cache\n\x09    }\n\x09  }\n\n\x09  // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n\x09  response.urlList = [...httpRequest.urlList];\n\n\x09  // 12. If httpRequest\u2019s header list contains `Range`\x2C then set response\u2019s\n\x09  // range-requested flag.\n\x09  if (httpRequest.headersList.contains('range')) {\n\x09    response.rangeRequested = true;\n\x09  }\n\n\x09  // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n\x09  response.requestIncludesCredentials = includeCredentials;\n\n\x09  // 14. If response\u2019s status is 401\x2C httpRequest\u2019s response tainting is not\n\x09  // "cors"\x2C includeCredentials is true\x2C and request\u2019s window is an environment\n\x09  // settings object\x2C then:\n\x09  // TODO\n\n\x09  // 15. If response\u2019s status is 407\x2C then:\n\x09  if (response.status === 407) {\n\x09    // 1. If request\u2019s window is "no-window"\x2C then return a network error.\n\x09    if (request.window === 'no-window') {\n\x09      return makeNetworkError()\n\x09    }\n\n\x09    // 2. ???\n\n\x09    // 3. If fetchParams is canceled\x2C then return the appropriate network error for fetchParams.\n\x09    if (isCancelled(fetchParams)) {\n\x09      return makeAppropriateNetworkError(fetchParams)\n\x09    }\n\n\x09    // 4. Prompt the end user as appropriate in request\u2019s window and store\n\x09    // the result as a proxy-authentication entry. [HTTP-AUTH]\n\x09    // TODO: Invoke some kind of callback?\n\n\x09    // 5. Set response to the result of running HTTP-network-or-cache fetch given\n\x09    // fetchParams.\n\x09    // TODO\n\x09    return makeNetworkError('proxy authentication required')\n\x09  }\n\n\x09  // 16. If all of the following are true\n\x09  if (\n\x09    // response\u2019s status is 421\n\x09    response.status === 421 &&\n\x09    // isNewConnectionFetch is false\n\x09    !isNewConnectionFetch &&\n\x09    // request\u2019s body is null\x2C or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n\x09    (request.body == null || request.body.source != null)\n\x09  ) {\n\x09    // then:\n\n\x09    // 1. If fetchParams is canceled\x2C then return the appropriate network error for fetchParams.\n\x09    if (isCancelled(fetchParams)) {\n\x09      return makeAppropriateNetworkError(fetchParams)\n\x09    }\n\n\x09    // 2. Set response to the result of running HTTP-network-or-cache\n\x09    // fetch given fetchParams\x2C isAuthenticationFetch\x2C and true.\n\n\x09    // TODO (spec): The spec doesn't specify this but we need to cancel\n\x09    // the active response before we can start a new one.\n\x09    // https://github.com/whatwg/fetch/issues/1293\n\x09    fetchParams.controller.connection.destroy();\n\n\x09    response = await httpNetworkOrCacheFetch(\n\x09      fetchParams\x2C\n\x09      isAuthenticationFetch\x2C\n\x09      true\n\x09    );\n\x09  }\n\n\x09  // 18. Return response.\n\x09  return response\n\x09}\n\n\x09// https://fetch.spec.whatwg.org/#http-network-fetch\n\x09async function httpNetworkFetch (\n\x09  fetchParams\x2C\n\x09  includeCredentials = false\x2C\n\x09  forceNewConnection = false\n\x09) {\n\x09  assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed);\n\n\x09  fetchParams.controller.connection = {\n\x09    abort: null\x2C\n\x09    destroyed: false\x2C\n\x09    destroy (err) {\n\x09      if (!this.destroyed) {\n\x09        this.destroyed = true;\n\x09        this.abort?.(err ?? new DOMException('The operation was aborted.'\x2C 'AbortError'));\n\x09      }\n\x09    }\n\x09  };\n\n\x09  // 1. Let request be fetchParams\u2019s request.\n\x09  const request = fetchParams.request;\n\n\x09  // 2. Let response be null.\n\x09  let response = null;\n\n\x09  // 3. Let timingInfo be fetchParams\u2019s timing info.\n\x09  const timingInfo = fetchParams.timingInfo;\n\n\x09  // 5. If httpCache is null\x2C then set request\u2019s cache mode to "no-store".\n\x09  {\n\x09    request.cache = 'no-store';\n\x09  }\n\n\x09  // 8. Switch on request\u2019s mode:\n\x09  if (request.mode === 'websocket') ;\n\n\x09  // 9. Run these steps\x2C but abort when the ongoing fetch is terminated:\n\n\x09  //    1. If connection is failure\x2C then return a network error.\n\n\x09  //    2. Set timingInfo\u2019s final connection timing info to the result of\n\x09  //    calling clamp and coarsen connection timing info with connection\u2019s\n\x09  //    timing info\x2C timingInfo\u2019s post-redirect start time\x2C and fetchParams\u2019s\n\x09  //    cross-origin isolated capability.\n\n\x09  //    3. If connection is not an HTTP/2 connection\x2C request\u2019s body is non-null\x2C\n\x09  //    and request\u2019s body\u2019s source is null\x2C then append (`Transfer-Encoding`\x2C\n\x09  //    `chunked`) to request\u2019s header list.\n\n\x09  //    4. Set timingInfo\u2019s final network-request start time to the coarsened\n\x09  //    shared current time given fetchParams\u2019s cross-origin isolated\n\x09  //    capability.\n\n\x09  //    5. Set response to the result of making an HTTP request over connection\n\x09  //    using request with the following caveats:\n\n\x09  //        - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n\x09  //        [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n\x09  //        - If request\u2019s body is non-null\x2C and request\u2019s body\u2019s source is null\x2C\n\x09  //        then the user agent may have a buffer of up to 64 kibibytes and store\n\x09  //        a part of request\u2019s body in that buffer. If the user agent reads from\n\x09  //        request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n\x09  //        resend request\x2C then instead return a network error.\n\n\x09  //        - Set timingInfo\u2019s final network-response start time to the coarsened\n\x09  //        shared current time given fetchParams\u2019s cross-origin isolated capability\x2C\n\x09  //        immediately after the user agent\u2019s HTTP parser receives the first byte\n\x09  //        of the response (e.g.\x2C frame header bytes for HTTP/2 or response status\n\x09  //        line for HTTP/1.x).\n\n\x09  //        - Wait until all the headers are transmitted.\n\n\x09  //        - Any responses whose status is in the range 100 to 199\x2C inclusive\x2C\n\x09  //        and is not 101\x2C are to be ignored\x2C except for the purposes of setting\n\x09  //        timingInfo\u2019s final network-response start time above.\n\n\x09  //    - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n\x09  //    response is transferred via HTTP/1.0 or older\x2C then return a network\n\x09  //    error.\n\n\x09  //    - If the HTTP request results in a TLS client certificate dialog\x2C then:\n\n\x09  //        1. If request\u2019s window is an environment settings object\x2C make the\n\x09  //        dialog available in request\u2019s window.\n\n\x09  //        2. Otherwise\x2C return a network error.\n\n\x09  // To transmit request\u2019s body body\x2C run these steps:\n\x09  let requestBody = null;\n\x09  // 1. If body is null and fetchParams\u2019s process request end-of-body is\n\x09  // non-null\x2C then queue a fetch task given fetchParams\u2019s process request\n\x09  // end-of-body and fetchParams\u2019s task destination.\n\x09  if (request.body == null && fetchParams.processRequestEndOfBody) {\n\x09    queueMicrotask(() => fetchParams.processRequestEndOfBody());\n\x09  } else if (request.body != null) {\n\x09    // 2. Otherwise\x2C if body is non-null:\n\n\x09    //    1. Let processBodyChunk given bytes be these steps:\n\x09    const processBodyChunk = async function * (bytes) {\n\x09      // 1. If the ongoing fetch is terminated\x2C then abort these steps.\n\x09      if (isCancelled(fetchParams)) {\n\x09        return\n\x09      }\n\n\x09      // 2. Run this step in parallel: transmit bytes.\n\x09      yield bytes;\n\n\x09      // 3. If fetchParams\u2019s process request body is non-null\x2C then run\n\x09      // fetchParams\u2019s process request body given bytes\u2019s length.\n\x09      fetchParams.processRequestBodyChunkLength?.(bytes.byteLength);\n\x09    };\n\n\x09    // 2. Let processEndOfBody be these steps:\n\x09    const processEndOfBody = () => {\n\x09      // 1. If fetchParams is canceled\x2C then abort these steps.\n\x09      if (isCancelled(fetchParams)) {\n\x09        return\n\x09      }\n\n\x09      // 2. If fetchParams\u2019s process request end-of-body is non-null\x2C\n\x09      // then run fetchParams\u2019s process request end-of-body.\n\x09      if (fetchParams.processRequestEndOfBody) {\n\x09        fetchParams.processRequestEndOfBody();\n\x09      }\n\x09    };\n\n\x09    // 3. Let processBodyError given e be these steps:\n\x09    const processBodyError = (e) => {\n\x09      // 1. If fetchParams is canceled\x2C then abort these steps.\n\x09      if (isCancelled(fetchParams)) {\n\x09        return\n\x09      }\n\n\x09      // 2. If e is an "AbortError" DOMException\x2C then abort fetchParams\u2019s controller.\n\x09      if (e.name === 'AbortError') {\n\x09        fetchParams.controller.abort();\n\x09      } else {\n\x09        fetchParams.controller.terminate(e);\n\x09      }\n\x09    };\n\n\x09    // 4. Incrementally read request\u2019s body given processBodyChunk\x2C processEndOfBody\x2C\n\x09    // processBodyError\x2C and fetchParams\u2019s task destination.\n\x09    requestBody = (async function * () {\n\x09      try {\n\x09        for await (const bytes of request.body.stream) {\n\x09          yield * processBodyChunk(bytes);\n\x09        }\n\x09        processEndOfBody();\n\x09      } catch (err) {\n\x09        processBodyError(err);\n\x09      }\n\x09    })();\n\x09  }\n\n\x09  try {\n\x09    // socket is only provided for websockets\n\x09    const { body\x2C status\x2C statusText\x2C headersList\x2C socket } = await dispatch({ body: requestBody });\n\n\x09    if (socket) {\n\x09      response = makeResponse({ status\x2C statusText\x2C headersList\x2C socket });\n\x09    } else {\n\x09      const iterator = body[Symbol.asyncIterator]();\n\x09      fetchParams.controller.next = () => iterator.next();\n\n\x09      response = makeResponse({ status\x2C statusText\x2C headersList });\n\x09    }\n\x09  } catch (err) {\n\x09    // 10. If aborted\x2C then:\n\x09    if (err.name === 'AbortError') {\n\x09      // 1. If connection uses HTTP/2\x2C then transmit an RST_STREAM frame.\n\x09      fetchParams.controller.connection.destroy();\n\n\x09      // 2. Return the appropriate network error for fetchParams.\n\x09      return makeAppropriateNetworkError(fetchParams)\n\x09    }\n\n\x09    return makeNetworkError(err)\n\x09  }\n\n\x09  // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n\x09  // if it is suspended.\n\x09  const pullAlgorithm = () => {\n\x09    fetchParams.controller.resume();\n\x09  };\n\n\x09  // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n\x09  // controller with reason\x2C given reason.\n\x09  const cancelAlgorithm = (reason) => {\n\x09    fetchParams.controller.abort(reason);\n\x09  };\n\n\x09  // 13. Let highWaterMark be a non-negative\x2C non-NaN number\x2C chosen by\n\x09  // the user agent.\n\x09  // TODO\n\n\x09  // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n\x09  // and returns a non-negative\x2C non-NaN\x2C non-infinite number\x2C chosen by the user agent.\n\x09  // TODO\n\n\x09  // 15. Let stream be a new ReadableStream.\n\x09  // 16. Set up stream with pullAlgorithm set to pullAlgorithm\x2C\n\x09  // cancelAlgorithm set to cancelAlgorithm\x2C highWaterMark set to\n\x09  // highWaterMark\x2C and sizeAlgorithm set to sizeAlgorithm.\n\x09  if (!ReadableStream) {\n\x09    ReadableStream = require$$13.ReadableStream;\n\x09  }\n\n\x09  const stream = new ReadableStream(\n\x09    {\n\x09      async start (controller) {\n\x09        fetchParams.controller.controller = controller;\n\x09      }\x2C\n\x09      async pull (controller) {\n\x09        await pullAlgorithm();\n\x09      }\x2C\n\x09      async cancel (reason) {\n\x09        await cancelAlgorithm(reason);\n\x09      }\n\x09    }\x2C\n\x09    {\n\x09      highWaterMark: 0\x2C\n\x09      size () {\n\x09        return 1\n\x09      }\n\x09    }\n\x09  );\n\n\x09  // 17. Run these steps\x2C but abort when the ongoing fetch is terminated:\n\n\x09  //    1. Set response\u2019s body to a new body whose stream is stream.\n\x09  response.body = { stream };\n\n\x09  //    2. If response is not a network error and request\u2019s cache mode is\n\x09  //    not "no-store"\x2C then update response in httpCache for request.\n\x09  //    TODO\n\n\x09  //    3. If includeCredentials is true and the user agent is not configured\n\x09  //    to block cookies for request (see section 7 of [COOKIES])\x2C then run the\n\x09  //    "set-cookie-string" parsing algorithm (see section 5.2 of [COOKIES]) on\n\x09  //    the value of each header whose name is a byte-case-insensitive match for\n\x09  //    `Set-Cookie` in response\u2019s header list\x2C if any\x2C and request\u2019s current URL.\n\x09  //    TODO\n\n\x09  // 18. If aborted\x2C then:\n\x09  // TODO\n\n\x09  // 19. Run these steps in parallel:\n\n\x09  //    1. Run these steps\x2C but abort when fetchParams is canceled:\n\x09  fetchParams.controller.on('terminated'\x2C onAborted);\n\x09  fetchParams.controller.resume = async () => {\n\x09    // 1. While true\n\x09    while (true) {\n\x09      // 1-3. See onData...\n\n\x09      // 4. Set bytes to the result of handling content codings given\n\x09      // codings and bytes.\n\x09      let bytes;\n\x09      let isFailure;\n\x09      try {\n\x09        const { done\x2C value } = await fetchParams.controller.next();\n\n\x09        if (isAborted(fetchParams)) {\n\x09          break\n\x09        }\n\n\x09        bytes = done ? undefined : value;\n\x09      } catch (err) {\n\x09        if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n\x09          // zlib doesn't like empty streams.\n\x09          bytes = undefined;\n\x09        } else {\n\x09          bytes = err;\n\n\x09          // err may be propagated from the result of calling readablestream.cancel\x2C\n\x09          // which might not be an error. https://github.com/nodejs/undici/issues/2009\n\x09          isFailure = true;\n\x09        }\n\x09      }\n\n\x09      if (bytes === undefined) {\n\x09        // 2. Otherwise\x2C if the bytes transmission for response\u2019s message\n\x09        // body is done normally and stream is readable\x2C then close\n\x09        // stream\x2C finalize response for fetchParams and response\x2C and\n\x09        // abort these in-parallel steps.\n\x09        readableStreamClose(fetchParams.controller.controller);\n\n\x09        finalizeResponse(fetchParams\x2C response);\n\n\x09        return\n\x09      }\n\n\x09      // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n\x09      timingInfo.decodedBodySize += bytes?.byteLength ?? 0;\n\n\x09      // 6. If bytes is failure\x2C then terminate fetchParams\u2019s controller.\n\x09      if (isFailure) {\n\x09        fetchParams.controller.terminate(bytes);\n\x09        return\n\x09      }\n\n\x09      // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n\x09      // into stream.\n\x09      fetchParams.controller.controller.enqueue(new Uint8Array(bytes));\n\n\x09      // 8. If stream is errored\x2C then terminate the ongoing fetch.\n\x09      if (isErrored(stream)) {\n\x09        fetchParams.controller.terminate();\n\x09        return\n\x09      }\n\n\x09      // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n\x09      // the ongoing fetch.\n\x09      if (!fetchParams.controller.controller.desiredSize) {\n\x09        return\n\x09      }\n\x09    }\n\x09  };\n\n\x09  //    2. If aborted\x2C then:\n\x09  function onAborted (reason) {\n\x09    // 2. If fetchParams is aborted\x2C then:\n\x09    if (isAborted(fetchParams)) {\n\x09      // 1. Set response\u2019s aborted flag.\n\x09      response.aborted = true;\n\n\x09      // 2. If stream is readable\x2C then error stream with the result of\n\x09      //    deserialize a serialized abort reason given fetchParams\u2019s\n\x09      //    controller\u2019s serialized abort reason and an\n\x09      //    implementation-defined realm.\n\x09      if (isReadable(stream)) {\n\x09        fetchParams.controller.controller.error(\n\x09          fetchParams.controller.serializedAbortReason\n\x09        );\n\x09      }\n\x09    } else {\n\x09      // 3. Otherwise\x2C if stream is readable\x2C error stream with a TypeError.\n\x09      if (isReadable(stream)) {\n\x09        fetchParams.controller.controller.error(new TypeError('terminated'\x2C {\n\x09          cause: isErrorLike(reason) ? reason : undefined\n\x09        }));\n\x09      }\n\x09    }\n\n\x09    // 4. If connection uses HTTP/2\x2C then transmit an RST_STREAM frame.\n\x09    // 5. Otherwise\x2C the user agent should close connection unless it would be bad for performance to do so.\n\x09    fetchParams.controller.connection.destroy();\n\x09  }\n\n\x09  // 20. Return response.\n\x09  return response\n\n\x09  async function dispatch ({ body }) {\n\x09    const url = requestCurrentURL(request);\n\x09    /** @type {import('../..').Agent} */\n\x09    const agent = fetchParams.controller.dispatcher;\n\n\x09    return new Promise((resolve\x2C reject) => agent.dispatch(\n\x09      {\n\x09        path: url.pathname + url.search\x2C\n\x09        origin: url.origin\x2C\n\x09        method: request.method\x2C\n\x09        body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body\x2C\n\x09        headers: request.headersList.entries\x2C\n\x09        maxRedirections: 0\x2C\n\x09        upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n\x09      }\x2C\n\x09      {\n\x09        body: null\x2C\n\x09        abort: null\x2C\n\n\x09        onConnect (abort) {\n\x09          // TODO (fix): Do we need connection here?\n\x09          const { connection } = fetchParams.controller;\n\n\x09          if (connection.destroyed) {\n\x09            abort(new DOMException('The operation was aborted.'\x2C 'AbortError'));\n\x09          } else {\n\x09            fetchParams.controller.on('terminated'\x2C abort);\n\x09            this.abort = connection.abort = abort;\n\x09          }\n\x09        }\x2C\n\n\x09        onHeaders (status\x2C headersList\x2C resume\x2C statusText) {\n\x09          if (status < 200) {\n\x09            return\n\x09          }\n\n\x09          let codings = [];\n\x09          let location = '';\n\n\x09          const headers = new Headers();\n\x09          for (let n = 0; n < headersList.length; n += 2) {\n\x09            const key = headersList[n + 0].toString('latin1');\n\x09            const val = headersList[n + 1].toString('latin1');\n\n\x09            if (key.toLowerCase() === 'content-encoding') {\n\x09              // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n\x09              // "All content-coding values are case-insensitive..."\n\x09              codings = val.toLowerCase().split('\x2C').map((x) => x.trim());\n\x09            } else if (key.toLowerCase() === 'location') {\n\x09              location = val;\n\x09            }\n\n\x09            headers.append(key\x2C val);\n\x09          }\n\n\x09          this.body = new Readable({ read: resume });\n\n\x09          const decoders = [];\n\n\x09          const willFollow = request.redirect === 'follow' &&\n\x09            location &&\n\x09            redirectStatus.includes(status);\n\n\x09          // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n\x09          if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n\x09            for (const coding of codings) {\n\x09              // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n\x09              if (coding === 'x-gzip' || coding === 'gzip') {\n\x09                decoders.push(zlib.createGunzip());\n\x09              } else if (coding === 'deflate') {\n\x09                decoders.push(zlib.createInflate());\n\x09              } else if (coding === 'br') {\n\x09                decoders.push(zlib.createBrotliDecompress());\n\x09              } else {\n\x09                decoders.length = 0;\n\x09                break\n\x09              }\n\x09            }\n\x09          }\n\n\x09          resolve({\n\x09            status\x2C\n\x09            statusText\x2C\n\x09            headersList: headers[kHeadersList]\x2C\n\x09            body: decoders.length\n\x09              ? pipeline(this.body\x2C ...decoders\x2C () => { })\n\x09              : this.body.on('error'\x2C () => {})\n\x09          });\n\n\x09          return true\n\x09        }\x2C\n\n\x09        onData (chunk) {\n\x09          if (fetchParams.controller.dump) {\n\x09            return\n\x09          }\n\n\x09          // 1. If one or more bytes have been transmitted from response\u2019s\n\x09          // message body\x2C then:\n\n\x09          //  1. Let bytes be the transmitted bytes.\n\x09          const bytes = chunk;\n\n\x09          //  2. Let codings be the result of extracting header list values\n\x09          //  given `Content-Encoding` and response\u2019s header list.\n\x09          //  See pullAlgorithm.\n\n\x09          //  3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n\x09          timingInfo.encodedBodySize += bytes.byteLength;\n\n\x09          //  4. See pullAlgorithm...\n\n\x09          return this.body.push(bytes)\n\x09        }\x2C\n\n\x09        onComplete () {\n\x09          if (this.abort) {\n\x09            fetchParams.controller.off('terminated'\x2C this.abort);\n\x09          }\n\n\x09          fetchParams.controller.ended = true;\n\n\x09          this.body.push(null);\n\x09        }\x2C\n\n\x09        onError (error) {\n\x09          if (this.abort) {\n\x09            fetchParams.controller.off('terminated'\x2C this.abort);\n\x09          }\n\n\x09          this.body?.destroy(error);\n\n\x09          fetchParams.controller.terminate(error);\n\n\x09          reject(error);\n\x09        }\x2C\n\n\x09        onUpgrade (status\x2C headersList\x2C socket) {\n\x09          if (status !== 101) {\n\x09            return\n\x09          }\n\n\x09          const headers = new Headers();\n\n\x09          for (let n = 0; n < headersList.length; n += 2) {\n\x09            const key = headersList[n + 0].toString('latin1');\n\x09            const val = headersList[n + 1].toString('latin1');\n\n\x09            headers.append(key\x2C val);\n\x09          }\n\n\x09          resolve({\n\x09            status\x2C\n\x09            statusText: STATUS_CODES[status]\x2C\n\x09            headersList: headers[kHeadersList]\x2C\n\x09            socket\n\x09          });\n\n\x09          return true\n\x09        }\n\x09      }\n\x09    ))\n\x09  }\n\x09}\n\n\x09fetch_1 = {\n\x09  fetch\x2C\n\x09  Fetch\x2C\n\x09  fetching\x2C\n\x09  finalizeAndReportTiming\n\x09};\n\x09return fetch_1;\n}\n\nvar symbols$1;\nvar hasRequiredSymbols$1;\n\nfunction requireSymbols$1 () {\n\x09if (hasRequiredSymbols$1) return symbols$1;\n\x09hasRequiredSymbols$1 = 1;\n\n\x09symbols$1 = {\n\x09  kState: Symbol('FileReader state')\x2C\n\x09  kResult: Symbol('FileReader result')\x2C\n\x09  kError: Symbol('FileReader error')\x2C\n\x09  kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp')\x2C\n\x09  kEvents: Symbol('FileReader events')\x2C\n\x09  kAborted: Symbol('FileReader aborted')\n\x09};\n\x09return symbols$1;\n}\n\nvar progressevent;\nvar hasRequiredProgressevent;\n\nfunction requireProgressevent () {\n\x09if (hasRequiredProgressevent) return progressevent;\n\x09hasRequiredProgressevent = 1;\n\n\x09const { webidl } = requireWebidl();\n\n\x09const kState = Symbol('ProgressEvent state');\n\n\x09/**\n\x09 * @see https://xhr.spec.whatwg.org/#progressevent\n\x09 */\n\x09class ProgressEvent extends Event {\n\x09  constructor (type\x2C eventInitDict = {}) {\n\x09    type = webidl.converters.DOMString(type);\n\x09    eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {});\n\n\x09    super(type\x2C eventInitDict);\n\n\x09    this[kState] = {\n\x09      lengthComputable: eventInitDict.lengthComputable\x2C\n\x09      loaded: eventInitDict.loaded\x2C\n\x09      total: eventInitDict.total\n\x09    };\n\x09  }\n\n\x09  get lengthComputable () {\n\x09    webidl.brandCheck(this\x2C ProgressEvent);\n\n\x09    return this[kState].lengthComputable\n\x09  }\n\n\x09  get loaded () {\n\x09    webidl.brandCheck(this\x2C ProgressEvent);\n\n\x09    return this[kState].loaded\n\x09  }\n\n\x09  get total () {\n\x09    webidl.brandCheck(this\x2C ProgressEvent);\n\n\x09    return this[kState].total\n\x09  }\n\x09}\n\n\x09webidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n\x09  {\n\x09    key: 'lengthComputable'\x2C\n\x09    converter: webidl.converters.boolean\x2C\n\x09    defaultValue: false\n\x09  }\x2C\n\x09  {\n\x09    key: 'loaded'\x2C\n\x09    converter: webidl.converters['unsigned long long']\x2C\n\x09    defaultValue: 0\n\x09  }\x2C\n\x09  {\n\x09    key: 'total'\x2C\n\x09    converter: webidl.converters['unsigned long long']\x2C\n\x09    defaultValue: 0\n\x09  }\x2C\n\x09  {\n\x09    key: 'bubbles'\x2C\n\x09    converter: webidl.converters.boolean\x2C\n\x09    defaultValue: false\n\x09  }\x2C\n\x09  {\n\x09    key: 'cancelable'\x2C\n\x09    converter: webidl.converters.boolean\x2C\n\x09    defaultValue: false\n\x09  }\x2C\n\x09  {\n\x09    key: 'composed'\x2C\n\x09    converter: webidl.converters.boolean\x2C\n\x09    defaultValue: false\n\x09  }\n\x09]);\n\n\x09progressevent = {\n\x09  ProgressEvent\n\x09};\n\x09return progressevent;\n}\n\nvar encoding;\nvar hasRequiredEncoding;\n\nfunction requireEncoding () {\n\x09if (hasRequiredEncoding) return encoding;\n\x09hasRequiredEncoding = 1;\n\n\x09/**\n\x09 * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n\x09 * @param {string|undefined} label\n\x09 */\n\x09function getEncoding (label) {\n\x09  if (!label) {\n\x09    return 'failure'\n\x09  }\n\n\x09  // 1. Remove any leading and trailing ASCII whitespace from label.\n\x09  // 2. If label is an ASCII case-insensitive match for any of the\n\x09  //    labels listed in the table below\x2C then return the\n\x09  //    corresponding encoding; otherwise return failure.\n\x09  switch (label.trim().toLowerCase()) {\n\x09    case 'unicode-1-1-utf-8':\n\x09    case 'unicode11utf8':\n\x09    case 'unicode20utf8':\n\x09    case 'utf-8':\n\x09    case 'utf8':\n\x09    case 'x-unicode20utf8':\n\x09      return 'UTF-8'\n\x09    case '866':\n\x09    case 'cp866':\n\x09    case 'csibm866':\n\x09    case 'ibm866':\n\x09      return 'IBM866'\n\x09    case 'csisolatin2':\n\x09    case 'iso-8859-2':\n\x09    case 'iso-ir-101':\n\x09    case 'iso8859-2':\n\x09    case 'iso88592':\n\x09    case 'iso_8859-2':\n\x09    case 'iso_8859-2:1987':\n\x09    case 'l2':\n\x09    case 'latin2':\n\x09      return 'ISO-8859-2'\n\x09    case 'csisolatin3':\n\x09    case 'iso-8859-3':\n\x09    case 'iso-ir-109':\n\x09    case 'iso8859-3':\n\x09    case 'iso88593':\n\x09    case 'iso_8859-3':\n\x09    case 'iso_8859-3:1988':\n\x09    case 'l3':\n\x09    case 'latin3':\n\x09      return 'ISO-8859-3'\n\x09    case 'csisolatin4':\n\x09    case 'iso-8859-4':\n\x09    case 'iso-ir-110':\n\x09    case 'iso8859-4':\n\x09    case 'iso88594':\n\x09    case 'iso_8859-4':\n\x09    case 'iso_8859-4:1988':\n\x09    case 'l4':\n\x09    case 'latin4':\n\x09      return 'ISO-8859-4'\n\x09    case 'csisolatincyrillic':\n\x09    case 'cyrillic':\n\x09    case 'iso-8859-5':\n\x09    case 'iso-ir-144':\n\x09    case 'iso8859-5':\n\x09    case 'iso88595':\n\x09    case 'iso_8859-5':\n\x09    case 'iso_8859-5:1988':\n\x09      return 'ISO-8859-5'\n\x09    case 'arabic':\n\x09    case 'asmo-708':\n\x09    case 'csiso88596e':\n\x09    case 'csiso88596i':\n\x09    case 'csisolatinarabic':\n\x09    case 'ecma-114':\n\x09    case 'iso-8859-6':\n\x09    case 'iso-8859-6-e':\n\x09    case 'iso-8859-6-i':\n\x09    case 'iso-ir-127':\n\x09    case 'iso8859-6':\n\x09    case 'iso88596':\n\x09    case 'iso_8859-6':\n\x09    case 'iso_8859-6:1987':\n\x09      return 'ISO-8859-6'\n\x09    case 'csisolatingreek':\n\x09    case 'ecma-118':\n\x09    case 'elot_928':\n\x09    case 'greek':\n\x09    case 'greek8':\n\x09    case 'iso-8859-7':\n\x09    case 'iso-ir-126':\n\x09    case 'iso8859-7':\n\x09    case 'iso88597':\n\x09    case 'iso_8859-7':\n\x09    case 'iso_8859-7:1987':\n\x09    case 'sun_eu_greek':\n\x09      return 'ISO-8859-7'\n\x09    case 'csiso88598e':\n\x09    case 'csisolatinhebrew':\n\x09    case 'hebrew':\n\x09    case 'iso-8859-8':\n\x09    case 'iso-8859-8-e':\n\x09    case 'iso-ir-138':\n\x09    case 'iso8859-8':\n\x09    case 'iso88598':\n\x09    case 'iso_8859-8':\n\x09    case 'iso_8859-8:1988':\n\x09    case 'visual':\n\x09      return 'ISO-8859-8'\n\x09    case 'csiso88598i':\n\x09    case 'iso-8859-8-i':\n\x09    case 'logical':\n\x09      return 'ISO-8859-8-I'\n\x09    case 'csisolatin6':\n\x09    case 'iso-8859-10':\n\x09    case 'iso-ir-157':\n\x09    case 'iso8859-10':\n\x09    case 'iso885910':\n\x09    case 'l6':\n\x09    case 'latin6':\n\x09      return 'ISO-8859-10'\n\x09    case 'iso-8859-13':\n\x09    case 'iso8859-13':\n\x09    case 'iso885913':\n\x09      return 'ISO-8859-13'\n\x09    case 'iso-8859-14':\n\x09    case 'iso8859-14':\n\x09    case 'iso885914':\n\x09      return 'ISO-8859-14'\n\x09    case 'csisolatin9':\n\x09    case 'iso-8859-15':\n\x09    case 'iso8859-15':\n\x09    case 'iso885915':\n\x09    case 'iso_8859-15':\n\x09    case 'l9':\n\x09      return 'ISO-8859-15'\n\x09    case 'iso-8859-16':\n\x09      return 'ISO-8859-16'\n\x09    case 'cskoi8r':\n\x09    case 'koi':\n\x09    case 'koi8':\n\x09    case 'koi8-r':\n\x09    case 'koi8_r':\n\x09      return 'KOI8-R'\n\x09    case 'koi8-ru':\n\x09    case 'koi8-u':\n\x09      return 'KOI8-U'\n\x09    case 'csmacintosh':\n\x09    case 'mac':\n\x09    case 'macintosh':\n\x09    case 'x-mac-roman':\n\x09      return 'macintosh'\n\x09    case 'iso-8859-11':\n\x09    case 'iso8859-11':\n\x09    case 'iso885911':\n\x09    case 'tis-620':\n\x09    case 'windows-874':\n\x09      return 'windows-874'\n\x09    case 'cp1250':\n\x09    case 'windows-1250':\n\x09    case 'x-cp1250':\n\x09      return 'windows-1250'\n\x09    case 'cp1251':\n\x09    case 'windows-1251':\n\x09    case 'x-cp1251':\n\x09      return 'windows-1251'\n\x09    case 'ansi_x3.4-1968':\n\x09    case 'ascii':\n\x09    case 'cp1252':\n\x09    case 'cp819':\n\x09    case 'csisolatin1':\n\x09    case 'ibm819':\n\x09    case 'iso-8859-1':\n\x09    case 'iso-ir-100':\n\x09    case 'iso8859-1':\n\x09    case 'iso88591':\n\x09    case 'iso_8859-1':\n\x09    case 'iso_8859-1:1987':\n\x09    case 'l1':\n\x09    case 'latin1':\n\x09    case 'us-ascii':\n\x09    case 'windows-1252':\n\x09    case 'x-cp1252':\n\x09      return 'windows-1252'\n\x09    case 'cp1253':\n\x09    case 'windows-1253':\n\x09    case 'x-cp1253':\n\x09      return 'windows-1253'\n\x09    case 'cp1254':\n\x09    case 'csisolatin5':\n\x09    case 'iso-8859-9':\n\x09    case 'iso-ir-148':\n\x09    case 'iso8859-9':\n\x09    case 'iso88599':\n\x09    case 'iso_8859-9':\n\x09    case 'iso_8859-9:1989':\n\x09    case 'l5':\n\x09    case 'latin5':\n\x09    case 'windows-1254':\n\x09    case 'x-cp1254':\n\x09      return 'windows-1254'\n\x09    case 'cp1255':\n\x09    case 'windows-1255':\n\x09    case 'x-cp1255':\n\x09      return 'windows-1255'\n\x09    case 'cp1256':\n\x09    case 'windows-1256':\n\x09    case 'x-cp1256':\n\x09      return 'windows-1256'\n\x09    case 'cp1257':\n\x09    case 'windows-1257':\n\x09    case 'x-cp1257':\n\x09      return 'windows-1257'\n\x09    case 'cp1258':\n\x09    case 'windows-1258':\n\x09    case 'x-cp1258':\n\x09      return 'windows-1258'\n\x09    case 'x-mac-cyrillic':\n\x09    case 'x-mac-ukrainian':\n\x09      return 'x-mac-cyrillic'\n\x09    case 'chinese':\n\x09    case 'csgb2312':\n\x09    case 'csiso58gb231280':\n\x09    case 'gb2312':\n\x09    case 'gb_2312':\n\x09    case 'gb_2312-80':\n\x09    case 'gbk':\n\x09    case 'iso-ir-58':\n\x09    case 'x-gbk':\n\x09      return 'GBK'\n\x09    case 'gb18030':\n\x09      return 'gb18030'\n\x09    case 'big5':\n\x09    case 'big5-hkscs':\n\x09    case 'cn-big5':\n\x09    case 'csbig5':\n\x09    case 'x-x-big5':\n\x09      return 'Big5'\n\x09    case 'cseucpkdfmtjapanese':\n\x09    case 'euc-jp':\n\x09    case 'x-euc-jp':\n\x09      return 'EUC-JP'\n\x09    case 'csiso2022jp':\n\x09    case 'iso-2022-jp':\n\x09      return 'ISO-2022-JP'\n\x09    case 'csshiftjis':\n\x09    case 'ms932':\n\x09    case 'ms_kanji':\n\x09    case 'shift-jis':\n\x09    case 'shift_jis':\n\x09    case 'sjis':\n\x09    case 'windows-31j':\n\x09    case 'x-sjis':\n\x09      return 'Shift_JIS'\n\x09    case 'cseuckr':\n\x09    case 'csksc56011987':\n\x09    case 'euc-kr':\n\x09    case 'iso-ir-149':\n\x09    case 'korean':\n\x09    case 'ks_c_5601-1987':\n\x09    case 'ks_c_5601-1989':\n\x09    case 'ksc5601':\n\x09    case 'ksc_5601':\n\x09    case 'windows-949':\n\x09      return 'EUC-KR'\n\x09    case 'csiso2022kr':\n\x09    case 'hz-gb-2312':\n\x09    case 'iso-2022-cn':\n\x09    case 'iso-2022-cn-ext':\n\x09    case 'iso-2022-kr':\n\x09    case 'replacement':\n\x09      return 'replacement'\n\x09    case 'unicodefffe':\n\x09    case 'utf-16be':\n\x09      return 'UTF-16BE'\n\x09    case 'csunicode':\n\x09    case 'iso-10646-ucs-2':\n\x09    case 'ucs-2':\n\x09    case 'unicode':\n\x09    case 'unicodefeff':\n\x09    case 'utf-16':\n\x09    case 'utf-16le':\n\x09      return 'UTF-16LE'\n\x09    case 'x-user-defined':\n\x09      return 'x-user-defined'\n\x09    default: return 'failure'\n\x09  }\n\x09}\n\n\x09encoding = {\n\x09  getEncoding\n\x09};\n\x09return encoding;\n}\n\nvar util$3;\nvar hasRequiredUtil$2;\n\nfunction requireUtil$2 () {\n\x09if (hasRequiredUtil$2) return util$3;\n\x09hasRequiredUtil$2 = 1;\n\n\x09const {\n\x09  kState\x2C\n\x09  kError\x2C\n\x09  kResult\x2C\n\x09  kAborted\x2C\n\x09  kLastProgressEventFired\n\x09} = requireSymbols$1();\n\x09const { ProgressEvent } = requireProgressevent();\n\x09const { getEncoding } = requireEncoding();\n\x09const { DOMException } = requireConstants$3();\n\x09const { serializeAMimeType\x2C parseMIMEType } = requireDataURL();\n\x09const { types } = require$$0$2;\n\x09const { StringDecoder } = require$$6;\n\x09const { btoa } = require$$7;\n\n\x09/** @type {PropertyDescriptor} */\n\x09const staticPropertyDescriptors = {\n\x09  enumerable: true\x2C\n\x09  writable: false\x2C\n\x09  configurable: false\n\x09};\n\n\x09/**\n\x09 * @see https://w3c.github.io/FileAPI/#readOperation\n\x09 * @param {import('./filereader').FileReader} fr\n\x09 * @param {import('buffer').Blob} blob\n\x09 * @param {string} type\n\x09 * @param {string?} encodingName\n\x09 */\n\x09function readOperation (fr\x2C blob\x2C type\x2C encodingName) {\n\x09  // 1. If fr\u2019s state is "loading"\x2C throw an InvalidStateError\n\x09  //    DOMException.\n\x09  if (fr[kState] === 'loading') {\n\x09    throw new DOMException('Invalid state'\x2C 'InvalidStateError')\n\x09  }\n\n\x09  // 2. Set fr\u2019s state to "loading".\n\x09  fr[kState] = 'loading';\n\n\x09  // 3. Set fr\u2019s result to null.\n\x09  fr[kResult] = null;\n\n\x09  // 4. Set fr\u2019s error to null.\n\x09  fr[kError] = null;\n\n\x09  // 5. Let stream be the result of calling get stream on blob.\n\x09  /** @type {import('stream/web').ReadableStream} */\n\x09  const stream = blob.stream();\n\n\x09  // 6. Let reader be the result of getting a reader from stream.\n\x09  const reader = stream.getReader();\n\n\x09  // 7. Let bytes be an empty byte sequence.\n\x09  /** @type {Uint8Array[]} */\n\x09  const bytes = [];\n\n\x09  // 8. Let chunkPromise be the result of reading a chunk from\n\x09  //    stream with reader.\n\x09  let chunkPromise = reader.read();\n\n\x09  // 9. Let isFirstChunk be true.\n\x09  let isFirstChunk = true\n\n\x09  // 10. In parallel\x2C while true:\n\x09  // Note: "In parallel" just means non-blocking\n\x09  // Note 2: readOperation itself cannot be async as double\n\x09  // reading the body would then reject the promise\x2C instead\n\x09  // of throwing an error.\n\x09  ;(async () => {\n\x09    while (!fr[kAborted]) {\n\x09      // 1. Wait for chunkPromise to be fulfilled or rejected.\n\x09      try {\n\x09        const { done\x2C value } = await chunkPromise;\n\n\x09        // 2. If chunkPromise is fulfilled\x2C and isFirstChunk is\n\x09        //    true\x2C queue a task to fire a progress event called\n\x09        //    loadstart at fr.\n\x09        if (isFirstChunk && !fr[kAborted]) {\n\x09          queueMicrotask(() => {\n\x09            fireAProgressEvent('loadstart'\x2C fr);\n\x09          });\n\x09        }\n\n\x09        // 3. Set isFirstChunk to false.\n\x09        isFirstChunk = false;\n\n\x09        // 4. If chunkPromise is fulfilled with an object whose\n\x09        //    done property is false and whose value property is\n\x09        //    a Uint8Array object\x2C run these steps:\n\x09        if (!done && types.isUint8Array(value)) {\n\x09          // 1. Let bs be the byte sequence represented by the\n\x09          //    Uint8Array object.\n\n\x09          // 2. Append bs to bytes.\n\x09          bytes.push(value);\n\n\x09          // 3. If roughly 50ms have passed since these steps\n\x09          //    were last invoked\x2C queue a task to fire a\n\x09          //    progress event called progress at fr.\n\x09          if (\n\x09            (\n\x09              fr[kLastProgressEventFired] === undefined ||\n\x09              Date.now() - fr[kLastProgressEventFired] >= 50\n\x09            ) &&\n\x09            !fr[kAborted]\n\x09          ) {\n\x09            fr[kLastProgressEventFired] = Date.now();\n\x09            queueMicrotask(() => {\n\x09              fireAProgressEvent('progress'\x2C fr);\n\x09            });\n\x09          }\n\n\x09          // 4. Set chunkPromise to the result of reading a\n\x09          //    chunk from stream with reader.\n\x09          chunkPromise = reader.read();\n\x09        } else if (done) {\n\x09          // 5. Otherwise\x2C if chunkPromise is fulfilled with an\n\x09          //    object whose done property is true\x2C queue a task\n\x09          //    to run the following steps and abort this algorithm:\n\x09          queueMicrotask(() => {\n\x09            // 1. Set fr\u2019s state to "done".\n\x09            fr[kState] = 'done';\n\n\x09            // 2. Let result be the result of package data given\n\x09            //    bytes\x2C type\x2C blob\u2019s type\x2C and encodingName.\n\x09            try {\n\x09              const result = packageData(bytes\x2C type\x2C blob.type\x2C encodingName);\n\n\x09              // 4. Else:\n\n\x09              if (fr[kAborted]) {\n\x09                return\n\x09              }\n\n\x09              // 1. Set fr\u2019s result to result.\n\x09              fr[kResult] = result;\n\n\x09              // 2. Fire a progress event called load at the fr.\n\x09              fireAProgressEvent('load'\x2C fr);\n\x09            } catch (error) {\n\x09              // 3. If package data threw an exception error:\n\n\x09              // 1. Set fr\u2019s error to error.\n\x09              fr[kError] = error;\n\n\x09              // 2. Fire a progress event called error at fr.\n\x09              fireAProgressEvent('error'\x2C fr);\n\x09            }\n\n\x09            // 5. If fr\u2019s state is not "loading"\x2C fire a progress\n\x09            //    event called loadend at the fr.\n\x09            if (fr[kState] !== 'loading') {\n\x09              fireAProgressEvent('loadend'\x2C fr);\n\x09            }\n\x09          });\n\n\x09          break\n\x09        }\n\x09      } catch (error) {\n\x09        if (fr[kAborted]) {\n\x09          return\n\x09        }\n\n\x09        // 6. Otherwise\x2C if chunkPromise is rejected with an\n\x09        //    error error\x2C queue a task to run the following\n\x09        //    steps and abort this algorithm:\n\x09        queueMicrotask(() => {\n\x09          // 1. Set fr\u2019s state to "done".\n\x09          fr[kState] = 'done';\n\n\x09          // 2. Set fr\u2019s error to error.\n\x09          fr[kError] = error;\n\n\x09          // 3. Fire a progress event called error at fr.\n\x09          fireAProgressEvent('error'\x2C fr);\n\n\x09          // 4. If fr\u2019s state is not "loading"\x2C fire a progress\n\x09          //    event called loadend at fr.\n\x09          if (fr[kState] !== 'loading') {\n\x09            fireAProgressEvent('loadend'\x2C fr);\n\x09          }\n\x09        });\n\n\x09        break\n\x09      }\n\x09    }\n\x09  })();\n\x09}\n\n\x09/**\n\x09 * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n\x09 * @see https://dom.spec.whatwg.org/#concept-event-fire\n\x09 * @param {string} e The name of the event\n\x09 * @param {import('./filereader').FileReader} reader\n\x09 */\n\x09function fireAProgressEvent (e\x2C reader) {\n\x09  // The progress event e does not bubble. e.bubbles must be false\n\x09  // The progress event e is NOT cancelable. e.cancelable must be false\n\x09  const event = new ProgressEvent(e\x2C {\n\x09    bubbles: false\x2C\n\x09    cancelable: false\n\x09  });\n\n\x09  reader.dispatchEvent(event);\n\x09}\n\n\x09/**\n\x09 * @see https://w3c.github.io/FileAPI/#blob-package-data\n\x09 * @param {Uint8Array[]} bytes\n\x09 * @param {string} type\n\x09 * @param {string?} mimeType\n\x09 * @param {string?} encodingName\n\x09 */\n\x09function packageData (bytes\x2C type\x2C mimeType\x2C encodingName) {\n\x09  // 1. A Blob has an associated package data algorithm\x2C given\n\x09  //    bytes\x2C a type\x2C a optional mimeType\x2C and a optional\n\x09  //    encodingName\x2C which switches on type and runs the\n\x09  //    associated steps:\n\n\x09  switch (type) {\n\x09    case 'DataURL': {\n\x09      // 1. Return bytes as a DataURL [RFC2397] subject to\n\x09      //    the considerations below:\n\x09      //  * Use mimeType as part of the Data URL if it is\n\x09      //    available in keeping with the Data URL\n\x09      //    specification [RFC2397].\n\x09      //  * If mimeType is not available return a Data URL\n\x09      //    without a media-type. [RFC2397].\n\n\x09      // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n\x09      // dataurl    := "data:" [ mediatype ] [ ";base64" ] "\x2C" data\n\x09      // mediatype  := [ type "/" subtype ] *( ";" parameter )\n\x09      // data       := *urlchar\n\x09      // parameter  := attribute "=" value\n\x09      let dataURL = 'data:';\n\n\x09      const parsed = parseMIMEType(mimeType || 'application/octet-stream');\n\n\x09      if (parsed !== 'failure') {\n\x09        dataURL += serializeAMimeType(parsed);\n\x09      }\n\n\x09      dataURL += ';base64\x2C';\n\n\x09      const decoder = new StringDecoder('latin1');\n\n\x09      for (const chunk of bytes) {\n\x09        dataURL += btoa(decoder.write(chunk));\n\x09      }\n\n\x09      dataURL += btoa(decoder.end());\n\n\x09      return dataURL\n\x09    }\n\x09    case 'Text': {\n\x09      // 1. Let encoding be failure\n\x09      let encoding = 'failure';\n\n\x09      // 2. If the encodingName is present\x2C set encoding to the\n\x09      //    result of getting an encoding from encodingName.\n\x09      if (encodingName) {\n\x09        encoding = getEncoding(encodingName);\n\x09      }\n\n\x09      // 3. If encoding is failure\x2C and mimeType is present:\n\x09      if (encoding === 'failure' && mimeType) {\n\x09        // 1. Let type be the result of parse a MIME type\n\x09        //    given mimeType.\n\x09        const type = parseMIMEType(mimeType);\n\n\x09        // 2. If type is not failure\x2C set encoding to the result\n\x09        //    of getting an encoding from type\u2019s parameters["charset"].\n\x09        if (type !== 'failure') {\n\x09          encoding = getEncoding(type.parameters.get('charset'));\n\x09        }\n\x09      }\n\n\x09      // 4. If encoding is failure\x2C then set encoding to UTF-8.\n\x09      if (encoding === 'failure') {\n\x09        encoding = 'UTF-8';\n\x09      }\n\n\x09      // 5. Decode bytes using fallback encoding encoding\x2C and\n\x09      //    return the result.\n\x09      return decode(bytes\x2C encoding)\n\x09    }\n\x09    case 'ArrayBuffer': {\n\x09      // Return a new ArrayBuffer whose contents are bytes.\n\x09      const sequence = combineByteSequences(bytes);\n\n\x09      return sequence.buffer\n\x09    }\n\x09    case 'BinaryString': {\n\x09      // Return bytes as a binary string\x2C in which every byte\n\x09      //  is represented by a code unit of equal value [0..255].\n\x09      let binaryString = '';\n\n\x09      const decoder = new StringDecoder('latin1');\n\n\x09      for (const chunk of bytes) {\n\x09        binaryString += decoder.write(chunk);\n\x09      }\n\n\x09      binaryString += decoder.end();\n\n\x09      return binaryString\n\x09    }\n\x09  }\n\x09}\n\n\x09/**\n\x09 * @see https://encoding.spec.whatwg.org/#decode\n\x09 * @param {Uint8Array[]} ioQueue\n\x09 * @param {string} encoding\n\x09 */\n\x09function decode (ioQueue\x2C encoding) {\n\x09  const bytes = combineByteSequences(ioQueue);\n\n\x09  // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n\x09  const BOMEncoding = BOMSniffing(bytes);\n\n\x09  let slice = 0;\n\n\x09  // 2. If BOMEncoding is non-null:\n\x09  if (BOMEncoding !== null) {\n\x09    // 1. Set encoding to BOMEncoding.\n\x09    encoding = BOMEncoding;\n\n\x09    // 2. Read three bytes from ioQueue\x2C if BOMEncoding is\n\x09    //    UTF-8; otherwise read two bytes.\n\x09    //    (Do nothing with those bytes.)\n\x09    slice = BOMEncoding === 'UTF-8' ? 3 : 2;\n\x09  }\n\n\x09  // 3. Process a queue with an instance of encoding\u2019s\n\x09  //    decoder\x2C ioQueue\x2C output\x2C and "replacement".\n\n\x09  // 4. Return output.\n\n\x09  const sliced = bytes.slice(slice);\n\x09  return new TextDecoder(encoding).decode(sliced)\n\x09}\n\n\x09/**\n\x09 * @see https://encoding.spec.whatwg.org/#bom-sniff\n\x09 * @param {Uint8Array} ioQueue\n\x09 */\n\x09function BOMSniffing (ioQueue) {\n\x09  // 1. Let BOM be the result of peeking 3 bytes from ioQueue\x2C\n\x09  //    converted to a byte sequence.\n\x09  const [a\x2C b\x2C c] = ioQueue;\n\n\x09  // 2. For each of the rows in the table below\x2C starting with\n\x09  //    the first one and going down\x2C if BOM starts with the\n\x09  //    bytes given in the first column\x2C then return the\n\x09  //    encoding given in the cell in the second column of that\n\x09  //    row. Otherwise\x2C return null.\n\x09  if (a === 0xEF && b === 0xBB && c === 0xBF) {\n\x09    return 'UTF-8'\n\x09  } else if (a === 0xFE && b === 0xFF) {\n\x09    return 'UTF-16BE'\n\x09  } else if (a === 0xFF && b === 0xFE) {\n\x09    return 'UTF-16LE'\n\x09  }\n\n\x09  return null\n\x09}\n\n\x09/**\n\x09 * @param {Uint8Array[]} sequences\n\x09 */\n\x09function combineByteSequences (sequences) {\n\x09  const size = sequences.reduce((a\x2C b) => {\n\x09    return a + b.byteLength\n\x09  }\x2C 0);\n\n\x09  let offset = 0;\n\n\x09  return sequences.reduce((a\x2C b) => {\n\x09    a.set(b\x2C offset);\n\x09    offset += b.byteLength;\n\x09    return a\n\x09  }\x2C new Uint8Array(size))\n\x09}\n\n\x09util$3 = {\n\x09  staticPropertyDescriptors\x2C\n\x09  readOperation\x2C\n\x09  fireAProgressEvent\n\x09};\n\x09return util$3;\n}\n\nvar filereader;\nvar hasRequiredFilereader;\n\nfunction requireFilereader () {\n\x09if (hasRequiredFilereader) return filereader;\n\x09hasRequiredFilereader = 1;\n\n\x09const {\n\x09  staticPropertyDescriptors\x2C\n\x09  readOperation\x2C\n\x09  fireAProgressEvent\n\x09} = requireUtil$2();\n\x09const {\n\x09  kState\x2C\n\x09  kError\x2C\n\x09  kResult\x2C\n\x09  kEvents\x2C\n\x09  kAborted\n\x09} = requireSymbols$1();\n\x09const { webidl } = requireWebidl();\n\x09const { kEnumerableProperty } = util$i;\n\n\x09class FileReader extends EventTarget {\n\x09  constructor () {\n\x09    super();\n\n\x09    this[kState] = 'empty';\n\x09    this[kResult] = null;\n\x09    this[kError] = null;\n\x09    this[kEvents] = {\n\x09      loadend: null\x2C\n\x09      error: null\x2C\n\x09      abort: null\x2C\n\x09      load: null\x2C\n\x09      progress: null\x2C\n\x09      loadstart: null\n\x09    };\n\x09  }\n\n\x09  /**\n\x09   * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n\x09   * @param {import('buffer').Blob} blob\n\x09   */\n\x09  readAsArrayBuffer (blob) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'FileReader.readAsArrayBuffer' });\n\n\x09    blob = webidl.converters.Blob(blob\x2C { strict: false });\n\n\x09    // The readAsArrayBuffer(blob) method\x2C when invoked\x2C\n\x09    // must initiate a read operation for blob with ArrayBuffer.\n\x09    readOperation(this\x2C blob\x2C 'ArrayBuffer');\n\x09  }\n\n\x09  /**\n\x09   * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n\x09   * @param {import('buffer').Blob} blob\n\x09   */\n\x09  readAsBinaryString (blob) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'FileReader.readAsBinaryString' });\n\n\x09    blob = webidl.converters.Blob(blob\x2C { strict: false });\n\n\x09    // The readAsBinaryString(blob) method\x2C when invoked\x2C\n\x09    // must initiate a read operation for blob with BinaryString.\n\x09    readOperation(this\x2C blob\x2C 'BinaryString');\n\x09  }\n\n\x09  /**\n\x09   * @see https://w3c.github.io/FileAPI/#readAsDataText\n\x09   * @param {import('buffer').Blob} blob\n\x09   * @param {string?} encoding\n\x09   */\n\x09  readAsText (blob\x2C encoding = undefined) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'FileReader.readAsText' });\n\n\x09    blob = webidl.converters.Blob(blob\x2C { strict: false });\n\n\x09    if (encoding !== undefined) {\n\x09      encoding = webidl.converters.DOMString(encoding);\n\x09    }\n\n\x09    // The readAsText(blob\x2C encoding) method\x2C when invoked\x2C\n\x09    // must initiate a read operation for blob with Text and encoding.\n\x09    readOperation(this\x2C blob\x2C 'Text'\x2C encoding);\n\x09  }\n\n\x09  /**\n\x09   * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n\x09   * @param {import('buffer').Blob} blob\n\x09   */\n\x09  readAsDataURL (blob) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'FileReader.readAsDataURL' });\n\n\x09    blob = webidl.converters.Blob(blob\x2C { strict: false });\n\n\x09    // The readAsDataURL(blob) method\x2C when invoked\x2C must\n\x09    // initiate a read operation for blob with DataURL.\n\x09    readOperation(this\x2C blob\x2C 'DataURL');\n\x09  }\n\n\x09  /**\n\x09   * @see https://w3c.github.io/FileAPI/#dfn-abort\n\x09   */\n\x09  abort () {\n\x09    // 1. If this's state is "empty" or if this's state is\n\x09    //    "done" set this's result to null and terminate\n\x09    //    this algorithm.\n\x09    if (this[kState] === 'empty' || this[kState] === 'done') {\n\x09      this[kResult] = null;\n\x09      return\n\x09    }\n\n\x09    // 2. If this's state is "loading" set this's state to\n\x09    //    "done" and set this's result to null.\n\x09    if (this[kState] === 'loading') {\n\x09      this[kState] = 'done';\n\x09      this[kResult] = null;\n\x09    }\n\n\x09    // 3. If there are any tasks from this on the file reading\n\x09    //    task source in an affiliated task queue\x2C then remove\n\x09    //    those tasks from that task queue.\n\x09    this[kAborted] = true;\n\n\x09    // 4. Terminate the algorithm for the read method being processed.\n\x09    // TODO\n\n\x09    // 5. Fire a progress event called abort at this.\n\x09    fireAProgressEvent('abort'\x2C this);\n\n\x09    // 6. If this's state is not "loading"\x2C fire a progress\n\x09    //    event called loadend at this.\n\x09    if (this[kState] !== 'loading') {\n\x09      fireAProgressEvent('loadend'\x2C this);\n\x09    }\n\x09  }\n\n\x09  /**\n\x09   * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n\x09   */\n\x09  get readyState () {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    switch (this[kState]) {\n\x09      case 'empty': return this.EMPTY\n\x09      case 'loading': return this.LOADING\n\x09      case 'done': return this.DONE\n\x09    }\n\x09  }\n\n\x09  /**\n\x09   * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n\x09   */\n\x09  get result () {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    // The result attribute\u2019s getter\x2C when invoked\x2C must return\n\x09    // this's result.\n\x09    return this[kResult]\n\x09  }\n\n\x09  /**\n\x09   * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n\x09   */\n\x09  get error () {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    // The error attribute\u2019s getter\x2C when invoked\x2C must return\n\x09    // this's error.\n\x09    return this[kError]\n\x09  }\n\n\x09  get onloadend () {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    return this[kEvents].loadend\n\x09  }\n\n\x09  set onloadend (fn) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    if (this[kEvents].loadend) {\n\x09      this.removeEventListener('loadend'\x2C this[kEvents].loadend);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this[kEvents].loadend = fn;\n\x09      this.addEventListener('loadend'\x2C fn);\n\x09    } else {\n\x09      this[kEvents].loadend = null;\n\x09    }\n\x09  }\n\n\x09  get onerror () {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    return this[kEvents].error\n\x09  }\n\n\x09  set onerror (fn) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    if (this[kEvents].error) {\n\x09      this.removeEventListener('error'\x2C this[kEvents].error);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this[kEvents].error = fn;\n\x09      this.addEventListener('error'\x2C fn);\n\x09    } else {\n\x09      this[kEvents].error = null;\n\x09    }\n\x09  }\n\n\x09  get onloadstart () {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    return this[kEvents].loadstart\n\x09  }\n\n\x09  set onloadstart (fn) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    if (this[kEvents].loadstart) {\n\x09      this.removeEventListener('loadstart'\x2C this[kEvents].loadstart);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this[kEvents].loadstart = fn;\n\x09      this.addEventListener('loadstart'\x2C fn);\n\x09    } else {\n\x09      this[kEvents].loadstart = null;\n\x09    }\n\x09  }\n\n\x09  get onprogress () {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    return this[kEvents].progress\n\x09  }\n\n\x09  set onprogress (fn) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    if (this[kEvents].progress) {\n\x09      this.removeEventListener('progress'\x2C this[kEvents].progress);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this[kEvents].progress = fn;\n\x09      this.addEventListener('progress'\x2C fn);\n\x09    } else {\n\x09      this[kEvents].progress = null;\n\x09    }\n\x09  }\n\n\x09  get onload () {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    return this[kEvents].load\n\x09  }\n\n\x09  set onload (fn) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    if (this[kEvents].load) {\n\x09      this.removeEventListener('load'\x2C this[kEvents].load);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this[kEvents].load = fn;\n\x09      this.addEventListener('load'\x2C fn);\n\x09    } else {\n\x09      this[kEvents].load = null;\n\x09    }\n\x09  }\n\n\x09  get onabort () {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    return this[kEvents].abort\n\x09  }\n\n\x09  set onabort (fn) {\n\x09    webidl.brandCheck(this\x2C FileReader);\n\n\x09    if (this[kEvents].abort) {\n\x09      this.removeEventListener('abort'\x2C this[kEvents].abort);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this[kEvents].abort = fn;\n\x09      this.addEventListener('abort'\x2C fn);\n\x09    } else {\n\x09      this[kEvents].abort = null;\n\x09    }\n\x09  }\n\x09}\n\n\x09// https://w3c.github.io/FileAPI/#dom-filereader-empty\n\x09FileReader.EMPTY = FileReader.prototype.EMPTY = 0;\n\x09// https://w3c.github.io/FileAPI/#dom-filereader-loading\n\x09FileReader.LOADING = FileReader.prototype.LOADING = 1;\n\x09// https://w3c.github.io/FileAPI/#dom-filereader-done\n\x09FileReader.DONE = FileReader.prototype.DONE = 2;\n\n\x09Object.defineProperties(FileReader.prototype\x2C {\n\x09  EMPTY: staticPropertyDescriptors\x2C\n\x09  LOADING: staticPropertyDescriptors\x2C\n\x09  DONE: staticPropertyDescriptors\x2C\n\x09  readAsArrayBuffer: kEnumerableProperty\x2C\n\x09  readAsBinaryString: kEnumerableProperty\x2C\n\x09  readAsText: kEnumerableProperty\x2C\n\x09  readAsDataURL: kEnumerableProperty\x2C\n\x09  abort: kEnumerableProperty\x2C\n\x09  readyState: kEnumerableProperty\x2C\n\x09  result: kEnumerableProperty\x2C\n\x09  error: kEnumerableProperty\x2C\n\x09  onloadstart: kEnumerableProperty\x2C\n\x09  onprogress: kEnumerableProperty\x2C\n\x09  onload: kEnumerableProperty\x2C\n\x09  onabort: kEnumerableProperty\x2C\n\x09  onerror: kEnumerableProperty\x2C\n\x09  onloadend: kEnumerableProperty\x2C\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'FileReader'\x2C\n\x09    writable: false\x2C\n\x09    enumerable: false\x2C\n\x09    configurable: true\n\x09  }\n\x09});\n\n\x09Object.defineProperties(FileReader\x2C {\n\x09  EMPTY: staticPropertyDescriptors\x2C\n\x09  LOADING: staticPropertyDescriptors\x2C\n\x09  DONE: staticPropertyDescriptors\n\x09});\n\n\x09filereader = {\n\x09  FileReader\n\x09};\n\x09return filereader;\n}\n\nvar constants$1;\nvar hasRequiredConstants$1;\n\nfunction requireConstants$1 () {\n\x09if (hasRequiredConstants$1) return constants$1;\n\x09hasRequiredConstants$1 = 1;\n\n\x09// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\n\x09const maxAttributeValueSize = 1024;\n\n\x09// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\n\x09const maxNameValuePairSize = 4096;\n\n\x09constants$1 = {\n\x09  maxAttributeValueSize\x2C\n\x09  maxNameValuePairSize\n\x09};\n\x09return constants$1;\n}\n\nvar util$2;\nvar hasRequiredUtil$1;\n\nfunction requireUtil$1 () {\n\x09if (hasRequiredUtil$1) return util$2;\n\x09hasRequiredUtil$1 = 1;\n\n\x09const assert = require$$0;\n\x09const { kHeadersList } = symbols$3;\n\n\x09function isCTLExcludingHtab (value) {\n\x09  if (value.length === 0) {\n\x09    return false\n\x09  }\n\n\x09  for (const char of value) {\n\x09    const code = char.charCodeAt(0);\n\n\x09    if (\n\x09      (code >= 0x00 || code <= 0x08) ||\n\x09      (code >= 0x0A || code <= 0x1F) ||\n\x09      code === 0x7F\n\x09    ) {\n\x09      return false\n\x09    }\n\x09  }\n\x09}\n\n\x09/**\n\x09 CHAR           = <any US-ASCII character (octets 0 - 127)>\n\x09 token          = 1*<any CHAR except CTLs or separators>\n\x09 separators     = "(" | ")" | "<" | ">" | "@"\n\x09                | "\x2C" | ";" | ":" | "\\" | <">\n\x09                | "/" | "[" | "]" | "?" | "="\n\x09                | "{" | "}" | SP | HT\n\x09 * @param {string} name\n\x09 */\n\x09function validateCookieName (name) {\n\x09  for (const char of name) {\n\x09    const code = char.charCodeAt(0);\n\n\x09    if (\n\x09      (code <= 0x20 || code > 0x7F) ||\n\x09      char === '(' ||\n\x09      char === ')' ||\n\x09      char === '>' ||\n\x09      char === '<' ||\n\x09      char === '@' ||\n\x09      char === '\x2C' ||\n\x09      char === ';' ||\n\x09      char === ':' ||\n\x09      char === '\\\\' ||\n\x09      char === '"' ||\n\x09      char === '/' ||\n\x09      char === '[' ||\n\x09      char === ']' ||\n\x09      char === '?' ||\n\x09      char === '=' ||\n\x09      char === '{' ||\n\x09      char === '}'\n\x09    ) {\n\x09      throw new Error('Invalid cookie name')\n\x09    }\n\x09  }\n\x09}\n\n\x09/**\n\x09 cookie-value      = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n\x09 cookie-octet      = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n\x09                       ; US-ASCII characters excluding CTLs\x2C\n\x09                       ; whitespace DQUOTE\x2C comma\x2C semicolon\x2C\n\x09                       ; and backslash\n\x09 * @param {string} value\n\x09 */\n\x09function validateCookieValue (value) {\n\x09  for (const char of value) {\n\x09    const code = char.charCodeAt(0);\n\n\x09    if (\n\x09      code < 0x21 || // exclude CTLs (0-31)\n\x09      code === 0x22 ||\n\x09      code === 0x2C ||\n\x09      code === 0x3B ||\n\x09      code === 0x5C ||\n\x09      code > 0x7E // non-ascii\n\x09    ) {\n\x09      throw new Error('Invalid header value')\n\x09    }\n\x09  }\n\x09}\n\n\x09/**\n\x09 * path-value        = <any CHAR except CTLs or ";">\n\x09 * @param {string} path\n\x09 */\n\x09function validateCookiePath (path) {\n\x09  for (const char of path) {\n\x09    const code = char.charCodeAt(0);\n\n\x09    if (code < 0x21 || char === ';') {\n\x09      throw new Error('Invalid cookie path')\n\x09    }\n\x09  }\n\x09}\n\n\x09/**\n\x09 * I have no idea why these values aren't allowed to be honest\x2C\n\x09 * but Deno tests these. - Khafra\n\x09 * @param {string} domain\n\x09 */\n\x09function validateCookieDomain (domain) {\n\x09  if (\n\x09    domain.startsWith('-') ||\n\x09    domain.endsWith('.') ||\n\x09    domain.endsWith('-')\n\x09  ) {\n\x09    throw new Error('Invalid cookie domain')\n\x09  }\n\x09}\n\n\x09/**\n\x09 * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n\x09 * @param {number|Date} date\n\x09  IMF-fixdate  = day-name "\x2C" SP date1 SP time-of-day SP GMT\n\x09  ; fixed length/zone/capitalization subset of the format\n\x09  ; see Section 3.3 of [RFC5322]\n\n\x09  day-name     = %x4D.6F.6E ; "Mon"\x2C case-sensitive\n\x09              / %x54.75.65 ; "Tue"\x2C case-sensitive\n\x09              / %x57.65.64 ; "Wed"\x2C case-sensitive\n\x09              / %x54.68.75 ; "Thu"\x2C case-sensitive\n\x09              / %x46.72.69 ; "Fri"\x2C case-sensitive\n\x09              / %x53.61.74 ; "Sat"\x2C case-sensitive\n\x09              / %x53.75.6E ; "Sun"\x2C case-sensitive\n\x09  date1        = day SP month SP year\n\x09                  ; e.g.\x2C 02 Jun 1982\n\n\x09  day          = 2DIGIT\n\x09  month        = %x4A.61.6E ; "Jan"\x2C case-sensitive\n\x09              / %x46.65.62 ; "Feb"\x2C case-sensitive\n\x09              / %x4D.61.72 ; "Mar"\x2C case-sensitive\n\x09              / %x41.70.72 ; "Apr"\x2C case-sensitive\n\x09              / %x4D.61.79 ; "May"\x2C case-sensitive\n\x09              / %x4A.75.6E ; "Jun"\x2C case-sensitive\n\x09              / %x4A.75.6C ; "Jul"\x2C case-sensitive\n\x09              / %x41.75.67 ; "Aug"\x2C case-sensitive\n\x09              / %x53.65.70 ; "Sep"\x2C case-sensitive\n\x09              / %x4F.63.74 ; "Oct"\x2C case-sensitive\n\x09              / %x4E.6F.76 ; "Nov"\x2C case-sensitive\n\x09              / %x44.65.63 ; "Dec"\x2C case-sensitive\n\x09  year         = 4DIGIT\n\n\x09  GMT          = %x47.4D.54 ; "GMT"\x2C case-sensitive\n\n\x09  time-of-day  = hour ":" minute ":" second\n\x09              ; 00:00:00 - 23:59:60 (leap second)\n\n\x09  hour         = 2DIGIT\n\x09  minute       = 2DIGIT\n\x09  second       = 2DIGIT\n\x09 */\n\x09function toIMFDate (date) {\n\x09  if (typeof date === 'number') {\n\x09    date = new Date(date);\n\x09  }\n\n\x09  const days = [\n\x09    'Sun'\x2C 'Mon'\x2C 'Tue'\x2C 'Wed'\x2C\n\x09    'Thu'\x2C 'Fri'\x2C 'Sat'\n\x09  ];\n\n\x09  const months = [\n\x09    'Jan'\x2C 'Feb'\x2C 'Mar'\x2C 'Apr'\x2C 'May'\x2C 'Jun'\x2C\n\x09    'Jul'\x2C 'Aug'\x2C 'Sep'\x2C 'Oct'\x2C 'Nov'\x2C 'Dec'\n\x09  ];\n\n\x09  const dayName = days[date.getUTCDay()];\n\x09  const day = date.getUTCDate().toString().padStart(2\x2C '0');\n\x09  const month = months[date.getUTCMonth()];\n\x09  const year = date.getUTCFullYear();\n\x09  const hour = date.getUTCHours().toString().padStart(2\x2C '0');\n\x09  const minute = date.getUTCMinutes().toString().padStart(2\x2C '0');\n\x09  const second = date.getUTCSeconds().toString().padStart(2\x2C '0');\n\n\x09  return `${dayName}\x2C ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n\x09}\n\n\x09/**\n\x09 max-age-av        = "Max-Age=" non-zero-digit *DIGIT\n\x09                       ; In practice\x2C both expires-av and max-age-av\n\x09                       ; are limited to dates representable by the\n\x09                       ; user agent.\n\x09 * @param {number} maxAge\n\x09 */\n\x09function validateCookieMaxAge (maxAge) {\n\x09  if (maxAge < 0) {\n\x09    throw new Error('Invalid cookie max-age')\n\x09  }\n\x09}\n\n\x09/**\n\x09 * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n\x09 * @param {import('./index').Cookie} cookie\n\x09 */\n\x09function stringify (cookie) {\n\x09  if (cookie.name.length === 0) {\n\x09    return null\n\x09  }\n\n\x09  validateCookieName(cookie.name);\n\x09  validateCookieValue(cookie.value);\n\n\x09  const out = [`${cookie.name}=${cookie.value}`];\n\n\x09  // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n\x09  // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n\x09  if (cookie.name.startsWith('__Secure-')) {\n\x09    cookie.secure = true;\n\x09  }\n\n\x09  if (cookie.name.startsWith('__Host-')) {\n\x09    cookie.secure = true;\n\x09    cookie.domain = null;\n\x09    cookie.path = '/';\n\x09  }\n\n\x09  if (cookie.secure) {\n\x09    out.push('Secure');\n\x09  }\n\n\x09  if (cookie.httpOnly) {\n\x09    out.push('HttpOnly');\n\x09  }\n\n\x09  if (typeof cookie.maxAge === 'number') {\n\x09    validateCookieMaxAge(cookie.maxAge);\n\x09    out.push(`Max-Age=${cookie.maxAge}`);\n\x09  }\n\n\x09  if (cookie.domain) {\n\x09    validateCookieDomain(cookie.domain);\n\x09    out.push(`Domain=${cookie.domain}`);\n\x09  }\n\n\x09  if (cookie.path) {\n\x09    validateCookiePath(cookie.path);\n\x09    out.push(`Path=${cookie.path}`);\n\x09  }\n\n\x09  if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n\x09    out.push(`Expires=${toIMFDate(cookie.expires)}`);\n\x09  }\n\n\x09  if (cookie.sameSite) {\n\x09    out.push(`SameSite=${cookie.sameSite}`);\n\x09  }\n\n\x09  for (const part of cookie.unparsed) {\n\x09    if (!part.includes('=')) {\n\x09      throw new Error('Invalid unparsed')\n\x09    }\n\n\x09    const [key\x2C ...value] = part.split('=');\n\n\x09    out.push(`${key.trim()}=${value.join('=')}`);\n\x09  }\n\n\x09  return out.join('; ')\n\x09}\n\n\x09let kHeadersListNode;\n\n\x09function getHeadersList (headers) {\n\x09  if (headers[kHeadersList]) {\n\x09    return headers[kHeadersList]\n\x09  }\n\n\x09  if (!kHeadersListNode) {\n\x09    kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n\x09      (symbol) => symbol.description === 'headers list'\n\x09    );\n\n\x09    assert(kHeadersListNode\x2C 'Headers cannot be parsed');\n\x09  }\n\n\x09  const headersList = headers[kHeadersListNode];\n\x09  assert(headersList);\n\n\x09  return headersList\n\x09}\n\n\x09util$2 = {\n\x09  isCTLExcludingHtab\x2C\n\x09  stringify\x2C\n\x09  getHeadersList\n\x09};\n\x09return util$2;\n}\n\nvar parse;\nvar hasRequiredParse;\n\nfunction requireParse () {\n\x09if (hasRequiredParse) return parse;\n\x09hasRequiredParse = 1;\n\n\x09const { maxNameValuePairSize\x2C maxAttributeValueSize } = requireConstants$1();\n\x09const { isCTLExcludingHtab } = requireUtil$1();\n\x09const { collectASequenceOfCodePointsFast } = requireDataURL();\n\x09const assert = require$$0;\n\n\x09/**\n\x09 * @description Parses the field-value attributes of a set-cookie header string.\n\x09 * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n\x09 * @param {string} header\n\x09 * @returns if the header is invalid\x2C null will be returned\n\x09 */\n\x09function parseSetCookie (header) {\n\x09  // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n\x09  //    character (CTL characters excluding HTAB): Abort these steps and\n\x09  //    ignore the set-cookie-string entirely.\n\x09  if (isCTLExcludingHtab(header)) {\n\x09    return null\n\x09  }\n\n\x09  let nameValuePair = '';\n\x09  let unparsedAttributes = '';\n\x09  let name = '';\n\x09  let value = '';\n\n\x09  // 2. If the set-cookie-string contains a %x3B (";") character:\n\x09  if (header.includes(';')) {\n\x09    // 1. The name-value-pair string consists of the characters up to\x2C\n\x09    //    but not including\x2C the first %x3B (";")\x2C and the unparsed-\n\x09    //    attributes consist of the remainder of the set-cookie-string\n\x09    //    (including the %x3B (";") in question).\n\x09    const position = { position: 0 };\n\n\x09    nameValuePair = collectASequenceOfCodePointsFast(';'\x2C header\x2C position);\n\x09    unparsedAttributes = header.slice(position.position);\n\x09  } else {\n\x09    // Otherwise:\n\n\x09    // 1. The name-value-pair string consists of all the characters\n\x09    //    contained in the set-cookie-string\x2C and the unparsed-\n\x09    //    attributes is the empty string.\n\x09    nameValuePair = header;\n\x09  }\n\n\x09  // 3. If the name-value-pair string lacks a %x3D ("=") character\x2C then\n\x09  //    the name string is empty\x2C and the value string is the value of\n\x09  //    name-value-pair.\n\x09  if (!nameValuePair.includes('=')) {\n\x09    value = nameValuePair;\n\x09  } else {\n\x09    //    Otherwise\x2C the name string consists of the characters up to\x2C but\n\x09    //    not including\x2C the first %x3D ("=") character\x2C and the (possibly\n\x09    //    empty) value string consists of the characters after the first\n\x09    //    %x3D ("=") character.\n\x09    const position = { position: 0 };\n\x09    name = collectASequenceOfCodePointsFast(\n\x09      '='\x2C\n\x09      nameValuePair\x2C\n\x09      position\n\x09    );\n\x09    value = nameValuePair.slice(position.position + 1);\n\x09  }\n\n\x09  // 4. Remove any leading or trailing WSP characters from the name\n\x09  //    string and the value string.\n\x09  name = name.trim();\n\x09  value = value.trim();\n\n\x09  // 5. If the sum of the lengths of the name string and the value string\n\x09  //    is more than 4096 octets\x2C abort these steps and ignore the set-\n\x09  //    cookie-string entirely.\n\x09  if (name.length + value.length > maxNameValuePairSize) {\n\x09    return null\n\x09  }\n\n\x09  // 6. The cookie-name is the name string\x2C and the cookie-value is the\n\x09  //    value string.\n\x09  return {\n\x09    name\x2C value\x2C ...parseUnparsedAttributes(unparsedAttributes)\n\x09  }\n\x09}\n\n\x09/**\n\x09 * Parses the remaining attributes of a set-cookie header\n\x09 * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n\x09 * @param {string} unparsedAttributes\n\x09 * @param {[Object.<string\x2C unknown>]={}} cookieAttributeList\n\x09 */\n\x09function parseUnparsedAttributes (unparsedAttributes\x2C cookieAttributeList = {}) {\n\x09  // 1. If the unparsed-attributes string is empty\x2C skip the rest of\n\x09  //    these steps.\n\x09  if (unparsedAttributes.length === 0) {\n\x09    return cookieAttributeList\n\x09  }\n\n\x09  // 2. Discard the first character of the unparsed-attributes (which\n\x09  //    will be a %x3B (";") character).\n\x09  assert(unparsedAttributes[0] === ';');\n\x09  unparsedAttributes = unparsedAttributes.slice(1);\n\n\x09  let cookieAv = '';\n\n\x09  // 3. If the remaining unparsed-attributes contains a %x3B (";")\n\x09  //    character:\n\x09  if (unparsedAttributes.includes(';')) {\n\x09    // 1. Consume the characters of the unparsed-attributes up to\x2C but\n\x09    //    not including\x2C the first %x3B (";") character.\n\x09    cookieAv = collectASequenceOfCodePointsFast(\n\x09      ';'\x2C\n\x09      unparsedAttributes\x2C\n\x09      { position: 0 }\n\x09    );\n\x09    unparsedAttributes = unparsedAttributes.slice(cookieAv.length);\n\x09  } else {\n\x09    // Otherwise:\n\n\x09    // 1. Consume the remainder of the unparsed-attributes.\n\x09    cookieAv = unparsedAttributes;\n\x09    unparsedAttributes = '';\n\x09  }\n\n\x09  // Let the cookie-av string be the characters consumed in this step.\n\n\x09  let attributeName = '';\n\x09  let attributeValue = '';\n\n\x09  // 4. If the cookie-av string contains a %x3D ("=") character:\n\x09  if (cookieAv.includes('=')) {\n\x09    // 1. The (possibly empty) attribute-name string consists of the\n\x09    //    characters up to\x2C but not including\x2C the first %x3D ("=")\n\x09    //    character\x2C and the (possibly empty) attribute-value string\n\x09    //    consists of the characters after the first %x3D ("=")\n\x09    //    character.\n\x09    const position = { position: 0 };\n\n\x09    attributeName = collectASequenceOfCodePointsFast(\n\x09      '='\x2C\n\x09      cookieAv\x2C\n\x09      position\n\x09    );\n\x09    attributeValue = cookieAv.slice(position.position + 1);\n\x09  } else {\n\x09    // Otherwise:\n\n\x09    // 1. The attribute-name string consists of the entire cookie-av\n\x09    //    string\x2C and the attribute-value string is empty.\n\x09    attributeName = cookieAv;\n\x09  }\n\n\x09  // 5. Remove any leading or trailing WSP characters from the attribute-\n\x09  //    name string and the attribute-value string.\n\x09  attributeName = attributeName.trim();\n\x09  attributeValue = attributeValue.trim();\n\n\x09  // 6. If the attribute-value is longer than 1024 octets\x2C ignore the\n\x09  //    cookie-av string and return to Step 1 of this algorithm.\n\x09  if (attributeValue.length > maxAttributeValueSize) {\n\x09    return parseUnparsedAttributes(unparsedAttributes\x2C cookieAttributeList)\n\x09  }\n\n\x09  // 7. Process the attribute-name and attribute-value according to the\n\x09  //    requirements in the following subsections.  (Notice that\n\x09  //    attributes with unrecognized attribute-names are ignored.)\n\x09  const attributeNameLowercase = attributeName.toLowerCase();\n\n\x09  // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n\x09  // If the attribute-name case-insensitively matches the string\n\x09  // "Expires"\x2C the user agent MUST process the cookie-av as follows.\n\x09  if (attributeNameLowercase === 'expires') {\n\x09    // 1. Let the expiry-time be the result of parsing the attribute-value\n\x09    //    as cookie-date (see Section 5.1.1).\n\x09    const expiryTime = new Date(attributeValue);\n\n\x09    // 2. If the attribute-value failed to parse as a cookie date\x2C ignore\n\x09    //    the cookie-av.\n\n\x09    cookieAttributeList.expires = expiryTime;\n\x09  } else if (attributeNameLowercase === 'max-age') {\n\x09    // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n\x09    // If the attribute-name case-insensitively matches the string "Max-\n\x09    // Age"\x2C the user agent MUST process the cookie-av as follows.\n\n\x09    // 1. If the first character of the attribute-value is not a DIGIT or a\n\x09    //    "-" character\x2C ignore the cookie-av.\n\x09    const charCode = attributeValue.charCodeAt(0);\n\n\x09    if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n\x09      return parseUnparsedAttributes(unparsedAttributes\x2C cookieAttributeList)\n\x09    }\n\n\x09    // 2. If the remainder of attribute-value contains a non-DIGIT\n\x09    //    character\x2C ignore the cookie-av.\n\x09    if (!/^\\d+$/.test(attributeValue)) {\n\x09      return parseUnparsedAttributes(unparsedAttributes\x2C cookieAttributeList)\n\x09    }\n\n\x09    // 3. Let delta-seconds be the attribute-value converted to an integer.\n\x09    const deltaSeconds = Number(attributeValue);\n\n\x09    // 4. Let cookie-age-limit be the maximum age of the cookie (which\n\x09    //    SHOULD be 400 days or less\x2C see Section 4.1.2.2).\n\n\x09    // 5. Set delta-seconds to the smaller of its present value and cookie-\n\x09    //    age-limit.\n\x09    // deltaSeconds = Math.min(deltaSeconds * 1000\x2C maxExpiresMs)\n\n\x09    // 6. If delta-seconds is less than or equal to zero (0)\x2C let expiry-\n\x09    //    time be the earliest representable date and time.  Otherwise\x2C let\n\x09    //    the expiry-time be the current date and time plus delta-seconds\n\x09    //    seconds.\n\x09    // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n\x09    // 7. Append an attribute to the cookie-attribute-list with an\n\x09    //    attribute-name of Max-Age and an attribute-value of expiry-time.\n\x09    cookieAttributeList.maxAge = deltaSeconds;\n\x09  } else if (attributeNameLowercase === 'domain') {\n\x09    // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n\x09    // If the attribute-name case-insensitively matches the string "Domain"\x2C\n\x09    // the user agent MUST process the cookie-av as follows.\n\n\x09    // 1. Let cookie-domain be the attribute-value.\n\x09    let cookieDomain = attributeValue;\n\n\x09    // 2. If cookie-domain starts with %x2E (".")\x2C let cookie-domain be\n\x09    //    cookie-domain without its leading %x2E (".").\n\x09    if (cookieDomain[0] === '.') {\n\x09      cookieDomain = cookieDomain.slice(1);\n\x09    }\n\n\x09    // 3. Convert the cookie-domain to lower case.\n\x09    cookieDomain = cookieDomain.toLowerCase();\n\n\x09    // 4. Append an attribute to the cookie-attribute-list with an\n\x09    //    attribute-name of Domain and an attribute-value of cookie-domain.\n\x09    cookieAttributeList.domain = cookieDomain;\n\x09  } else if (attributeNameLowercase === 'path') {\n\x09    // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n\x09    // If the attribute-name case-insensitively matches the string "Path"\x2C\n\x09    // the user agent MUST process the cookie-av as follows.\n\n\x09    // 1. If the attribute-value is empty or if the first character of the\n\x09    //    attribute-value is not %x2F ("/"):\n\x09    let cookiePath = '';\n\x09    if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n\x09      // 1. Let cookie-path be the default-path.\n\x09      cookiePath = '/';\n\x09    } else {\n\x09      // Otherwise:\n\n\x09      // 1. Let cookie-path be the attribute-value.\n\x09      cookiePath = attributeValue;\n\x09    }\n\n\x09    // 2. Append an attribute to the cookie-attribute-list with an\n\x09    //    attribute-name of Path and an attribute-value of cookie-path.\n\x09    cookieAttributeList.path = cookiePath;\n\x09  } else if (attributeNameLowercase === 'secure') {\n\x09    // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n\x09    // If the attribute-name case-insensitively matches the string "Secure"\x2C\n\x09    // the user agent MUST append an attribute to the cookie-attribute-list\n\x09    // with an attribute-name of Secure and an empty attribute-value.\n\n\x09    cookieAttributeList.secure = true;\n\x09  } else if (attributeNameLowercase === 'httponly') {\n\x09    // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n\x09    // If the attribute-name case-insensitively matches the string\n\x09    // "HttpOnly"\x2C the user agent MUST append an attribute to the cookie-\n\x09    // attribute-list with an attribute-name of HttpOnly and an empty\n\x09    // attribute-value.\n\n\x09    cookieAttributeList.httpOnly = true;\n\x09  } else if (attributeNameLowercase === 'samesite') {\n\x09    // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n\x09    // If the attribute-name case-insensitively matches the string\n\x09    // "SameSite"\x2C the user agent MUST process the cookie-av as follows:\n\n\x09    // 1. Let enforcement be "Default".\n\x09    let enforcement = 'Default';\n\n\x09    const attributeValueLowercase = attributeValue.toLowerCase();\n\x09    // 2. If cookie-av's attribute-value is a case-insensitive match for\n\x09    //    "None"\x2C set enforcement to "None".\n\x09    if (attributeValueLowercase.includes('none')) {\n\x09      enforcement = 'None';\n\x09    }\n\n\x09    // 3. If cookie-av's attribute-value is a case-insensitive match for\n\x09    //    "Strict"\x2C set enforcement to "Strict".\n\x09    if (attributeValueLowercase.includes('strict')) {\n\x09      enforcement = 'Strict';\n\x09    }\n\n\x09    // 4. If cookie-av's attribute-value is a case-insensitive match for\n\x09    //    "Lax"\x2C set enforcement to "Lax".\n\x09    if (attributeValueLowercase.includes('lax')) {\n\x09      enforcement = 'Lax';\n\x09    }\n\n\x09    // 5. Append an attribute to the cookie-attribute-list with an\n\x09    //    attribute-name of "SameSite" and an attribute-value of\n\x09    //    enforcement.\n\x09    cookieAttributeList.sameSite = enforcement;\n\x09  } else {\n\x09    cookieAttributeList.unparsed ??= [];\n\n\x09    cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`);\n\x09  }\n\n\x09  // 8. Return to Step 1 of this algorithm.\n\x09  return parseUnparsedAttributes(unparsedAttributes\x2C cookieAttributeList)\n\x09}\n\n\x09parse = {\n\x09  parseSetCookie\x2C\n\x09  parseUnparsedAttributes\n\x09};\n\x09return parse;\n}\n\nvar cookies;\nvar hasRequiredCookies;\n\nfunction requireCookies () {\n\x09if (hasRequiredCookies) return cookies;\n\x09hasRequiredCookies = 1;\n\n\x09const { parseSetCookie } = requireParse();\n\x09const { stringify\x2C getHeadersList } = requireUtil$1();\n\x09const { webidl } = requireWebidl();\n\x09const { Headers } = requireHeaders();\n\n\x09/**\n\x09 * @typedef {Object} Cookie\n\x09 * @property {string} name\n\x09 * @property {string} value\n\x09 * @property {Date|number|undefined} expires\n\x09 * @property {number|undefined} maxAge\n\x09 * @property {string|undefined} domain\n\x09 * @property {string|undefined} path\n\x09 * @property {boolean|undefined} secure\n\x09 * @property {boolean|undefined} httpOnly\n\x09 * @property {'Strict'|'Lax'|'None'} sameSite\n\x09 * @property {string[]} unparsed\n\x09 */\n\n\x09/**\n\x09 * @param {Headers} headers\n\x09 * @returns {Record<string\x2C string>}\n\x09 */\n\x09function getCookies (headers) {\n\x09  webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'getCookies' });\n\n\x09  webidl.brandCheck(headers\x2C Headers\x2C { strict: false });\n\n\x09  const cookie = headers.get('cookie');\n\x09  const out = {};\n\n\x09  if (!cookie) {\n\x09    return out\n\x09  }\n\n\x09  for (const piece of cookie.split(';')) {\n\x09    const [name\x2C ...value] = piece.split('=');\n\n\x09    out[name.trim()] = value.join('=');\n\x09  }\n\n\x09  return out\n\x09}\n\n\x09/**\n\x09 * @param {Headers} headers\n\x09 * @param {string} name\n\x09 * @param {{ path?: string\x2C domain?: string }|undefined} attributes\n\x09 * @returns {void}\n\x09 */\n\x09function deleteCookie (headers\x2C name\x2C attributes) {\n\x09  webidl.argumentLengthCheck(arguments\x2C 2\x2C { header: 'deleteCookie' });\n\n\x09  webidl.brandCheck(headers\x2C Headers\x2C { strict: false });\n\n\x09  name = webidl.converters.DOMString(name);\n\x09  attributes = webidl.converters.DeleteCookieAttributes(attributes);\n\n\x09  // Matches behavior of\n\x09  // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n\x09  setCookie(headers\x2C {\n\x09    name\x2C\n\x09    value: ''\x2C\n\x09    expires: new Date(0)\x2C\n\x09    ...attributes\n\x09  });\n\x09}\n\n\x09/**\n\x09 * @param {Headers} headers\n\x09 * @returns {Cookie[]}\n\x09 */\n\x09function getSetCookies (headers) {\n\x09  webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'getSetCookies' });\n\n\x09  webidl.brandCheck(headers\x2C Headers\x2C { strict: false });\n\n\x09  const cookies = getHeadersList(headers).cookies;\n\n\x09  if (!cookies) {\n\x09    return []\n\x09  }\n\n\x09  // In older versions of undici\x2C cookies is a list of name:value.\n\x09  return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n\x09}\n\n\x09/**\n\x09 * @param {Headers} headers\n\x09 * @param {Cookie} cookie\n\x09 * @returns {void}\n\x09 */\n\x09function setCookie (headers\x2C cookie) {\n\x09  webidl.argumentLengthCheck(arguments\x2C 2\x2C { header: 'setCookie' });\n\n\x09  webidl.brandCheck(headers\x2C Headers\x2C { strict: false });\n\n\x09  cookie = webidl.converters.Cookie(cookie);\n\n\x09  const str = stringify(cookie);\n\n\x09  if (str) {\n\x09    headers.append('Set-Cookie'\x2C stringify(cookie));\n\x09  }\n\x09}\n\n\x09webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n\x09  {\n\x09    converter: webidl.nullableConverter(webidl.converters.DOMString)\x2C\n\x09    key: 'path'\x2C\n\x09    defaultValue: null\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.nullableConverter(webidl.converters.DOMString)\x2C\n\x09    key: 'domain'\x2C\n\x09    defaultValue: null\n\x09  }\n\x09]);\n\n\x09webidl.converters.Cookie = webidl.dictionaryConverter([\n\x09  {\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    key: 'name'\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    key: 'value'\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.nullableConverter((value) => {\n\x09      if (typeof value === 'number') {\n\x09        return webidl.converters['unsigned long long'](value)\n\x09      }\n\n\x09      return new Date(value)\n\x09    })\x2C\n\x09    key: 'expires'\x2C\n\x09    defaultValue: null\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.nullableConverter(webidl.converters['long long'])\x2C\n\x09    key: 'maxAge'\x2C\n\x09    defaultValue: null\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.nullableConverter(webidl.converters.DOMString)\x2C\n\x09    key: 'domain'\x2C\n\x09    defaultValue: null\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.nullableConverter(webidl.converters.DOMString)\x2C\n\x09    key: 'path'\x2C\n\x09    defaultValue: null\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.nullableConverter(webidl.converters.boolean)\x2C\n\x09    key: 'secure'\x2C\n\x09    defaultValue: null\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.nullableConverter(webidl.converters.boolean)\x2C\n\x09    key: 'httpOnly'\x2C\n\x09    defaultValue: null\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.converters.USVString\x2C\n\x09    key: 'sameSite'\x2C\n\x09    allowedValues: ['Strict'\x2C 'Lax'\x2C 'None']\n\x09  }\x2C\n\x09  {\n\x09    converter: webidl.sequenceConverter(webidl.converters.DOMString)\x2C\n\x09    key: 'unparsed'\x2C\n\x09    defaultValue: []\n\x09  }\n\x09]);\n\n\x09cookies = {\n\x09  getCookies\x2C\n\x09  deleteCookie\x2C\n\x09  getSetCookies\x2C\n\x09  setCookie\n\x09};\n\x09return cookies;\n}\n\nvar constants;\nvar hasRequiredConstants;\n\nfunction requireConstants () {\n\x09if (hasRequiredConstants) return constants;\n\x09hasRequiredConstants = 1;\n\n\x09// This is a Globally Unique Identifier unique used\n\x09// to validate that the endpoint accepts websocket\n\x09// connections.\n\x09// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\n\x09const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11';\n\n\x09/** @type {PropertyDescriptor} */\n\x09const staticPropertyDescriptors = {\n\x09  enumerable: true\x2C\n\x09  writable: false\x2C\n\x09  configurable: false\n\x09};\n\n\x09const states = {\n\x09  CONNECTING: 0\x2C\n\x09  OPEN: 1\x2C\n\x09  CLOSING: 2\x2C\n\x09  CLOSED: 3\n\x09};\n\n\x09const opcodes = {\n\x09  CONTINUATION: 0x0\x2C\n\x09  TEXT: 0x1\x2C\n\x09  BINARY: 0x2\x2C\n\x09  CLOSE: 0x8\x2C\n\x09  PING: 0x9\x2C\n\x09  PONG: 0xA\n\x09};\n\n\x09const maxUnsigned16Bit = 2 ** 16 - 1; // 65535\n\n\x09const parserStates = {\n\x09  INFO: 0\x2C\n\x09  PAYLOADLENGTH_16: 2\x2C\n\x09  PAYLOADLENGTH_64: 3\x2C\n\x09  READ_DATA: 4\n\x09};\n\n\x09const emptyBuffer = Buffer.allocUnsafe(0);\n\n\x09constants = {\n\x09  uid\x2C\n\x09  staticPropertyDescriptors\x2C\n\x09  states\x2C\n\x09  opcodes\x2C\n\x09  maxUnsigned16Bit\x2C\n\x09  parserStates\x2C\n\x09  emptyBuffer\n\x09};\n\x09return constants;\n}\n\nvar symbols;\nvar hasRequiredSymbols;\n\nfunction requireSymbols () {\n\x09if (hasRequiredSymbols) return symbols;\n\x09hasRequiredSymbols = 1;\n\n\x09symbols = {\n\x09  kWebSocketURL: Symbol('url')\x2C\n\x09  kReadyState: Symbol('ready state')\x2C\n\x09  kController: Symbol('controller')\x2C\n\x09  kResponse: Symbol('response')\x2C\n\x09  kBinaryType: Symbol('binary type')\x2C\n\x09  kSentClose: Symbol('sent close')\x2C\n\x09  kReceivedClose: Symbol('received close')\x2C\n\x09  kByteParser: Symbol('byte parser')\n\x09};\n\x09return symbols;\n}\n\nvar events;\nvar hasRequiredEvents;\n\nfunction requireEvents () {\n\x09if (hasRequiredEvents) return events;\n\x09hasRequiredEvents = 1;\n\n\x09const { webidl } = requireWebidl();\n\x09const { kEnumerableProperty } = util$i;\n\x09const { MessagePort } = require$$0$3;\n\n\x09/**\n\x09 * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n\x09 */\n\x09class MessageEvent extends Event {\n\x09  #eventInit\n\n\x09  constructor (type\x2C eventInitDict = {}) {\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'MessageEvent constructor' });\n\n\x09    type = webidl.converters.DOMString(type);\n\x09    eventInitDict = webidl.converters.MessageEventInit(eventInitDict);\n\n\x09    super(type\x2C eventInitDict);\n\n\x09    this.#eventInit = eventInitDict;\n\x09  }\n\n\x09  get data () {\n\x09    webidl.brandCheck(this\x2C MessageEvent);\n\n\x09    return this.#eventInit.data\n\x09  }\n\n\x09  get origin () {\n\x09    webidl.brandCheck(this\x2C MessageEvent);\n\n\x09    return this.#eventInit.origin\n\x09  }\n\n\x09  get lastEventId () {\n\x09    webidl.brandCheck(this\x2C MessageEvent);\n\n\x09    return this.#eventInit.lastEventId\n\x09  }\n\n\x09  get source () {\n\x09    webidl.brandCheck(this\x2C MessageEvent);\n\n\x09    return this.#eventInit.source\n\x09  }\n\n\x09  get ports () {\n\x09    webidl.brandCheck(this\x2C MessageEvent);\n\n\x09    if (!Object.isFrozen(this.#eventInit.ports)) {\n\x09      Object.freeze(this.#eventInit.ports);\n\x09    }\n\n\x09    return this.#eventInit.ports\n\x09  }\n\n\x09  initMessageEvent (\n\x09    type\x2C\n\x09    bubbles = false\x2C\n\x09    cancelable = false\x2C\n\x09    data = null\x2C\n\x09    origin = ''\x2C\n\x09    lastEventId = ''\x2C\n\x09    source = null\x2C\n\x09    ports = []\n\x09  ) {\n\x09    webidl.brandCheck(this\x2C MessageEvent);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'MessageEvent.initMessageEvent' });\n\n\x09    return new MessageEvent(type\x2C {\n\x09      bubbles\x2C cancelable\x2C data\x2C origin\x2C lastEventId\x2C source\x2C ports\n\x09    })\n\x09  }\n\x09}\n\n\x09/**\n\x09 * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n\x09 */\n\x09class CloseEvent extends Event {\n\x09  #eventInit\n\n\x09  constructor (type\x2C eventInitDict = {}) {\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'CloseEvent constructor' });\n\n\x09    type = webidl.converters.DOMString(type);\n\x09    eventInitDict = webidl.converters.CloseEventInit(eventInitDict);\n\n\x09    super(type\x2C eventInitDict);\n\n\x09    this.#eventInit = eventInitDict;\n\x09  }\n\n\x09  get wasClean () {\n\x09    webidl.brandCheck(this\x2C CloseEvent);\n\n\x09    return this.#eventInit.wasClean\n\x09  }\n\n\x09  get code () {\n\x09    webidl.brandCheck(this\x2C CloseEvent);\n\n\x09    return this.#eventInit.code\n\x09  }\n\n\x09  get reason () {\n\x09    webidl.brandCheck(this\x2C CloseEvent);\n\n\x09    return this.#eventInit.reason\n\x09  }\n\x09}\n\n\x09// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\n\x09class ErrorEvent extends Event {\n\x09  #eventInit\n\n\x09  constructor (type\x2C eventInitDict) {\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'ErrorEvent constructor' });\n\n\x09    super(type\x2C eventInitDict);\n\n\x09    type = webidl.converters.DOMString(type);\n\x09    eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {});\n\n\x09    this.#eventInit = eventInitDict;\n\x09  }\n\n\x09  get message () {\n\x09    webidl.brandCheck(this\x2C ErrorEvent);\n\n\x09    return this.#eventInit.message\n\x09  }\n\n\x09  get filename () {\n\x09    webidl.brandCheck(this\x2C ErrorEvent);\n\n\x09    return this.#eventInit.filename\n\x09  }\n\n\x09  get lineno () {\n\x09    webidl.brandCheck(this\x2C ErrorEvent);\n\n\x09    return this.#eventInit.lineno\n\x09  }\n\n\x09  get colno () {\n\x09    webidl.brandCheck(this\x2C ErrorEvent);\n\n\x09    return this.#eventInit.colno\n\x09  }\n\n\x09  get error () {\n\x09    webidl.brandCheck(this\x2C ErrorEvent);\n\n\x09    return this.#eventInit.error\n\x09  }\n\x09}\n\n\x09Object.defineProperties(MessageEvent.prototype\x2C {\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'MessageEvent'\x2C\n\x09    configurable: true\n\x09  }\x2C\n\x09  data: kEnumerableProperty\x2C\n\x09  origin: kEnumerableProperty\x2C\n\x09  lastEventId: kEnumerableProperty\x2C\n\x09  source: kEnumerableProperty\x2C\n\x09  ports: kEnumerableProperty\x2C\n\x09  initMessageEvent: kEnumerableProperty\n\x09});\n\n\x09Object.defineProperties(CloseEvent.prototype\x2C {\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'CloseEvent'\x2C\n\x09    configurable: true\n\x09  }\x2C\n\x09  reason: kEnumerableProperty\x2C\n\x09  code: kEnumerableProperty\x2C\n\x09  wasClean: kEnumerableProperty\n\x09});\n\n\x09Object.defineProperties(ErrorEvent.prototype\x2C {\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'ErrorEvent'\x2C\n\x09    configurable: true\n\x09  }\x2C\n\x09  message: kEnumerableProperty\x2C\n\x09  filename: kEnumerableProperty\x2C\n\x09  lineno: kEnumerableProperty\x2C\n\x09  colno: kEnumerableProperty\x2C\n\x09  error: kEnumerableProperty\n\x09});\n\n\x09webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort);\n\n\x09webidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n\x09  webidl.converters.MessagePort\n\x09);\n\n\x09const eventInit = [\n\x09  {\n\x09    key: 'bubbles'\x2C\n\x09    converter: webidl.converters.boolean\x2C\n\x09    defaultValue: false\n\x09  }\x2C\n\x09  {\n\x09    key: 'cancelable'\x2C\n\x09    converter: webidl.converters.boolean\x2C\n\x09    defaultValue: false\n\x09  }\x2C\n\x09  {\n\x09    key: 'composed'\x2C\n\x09    converter: webidl.converters.boolean\x2C\n\x09    defaultValue: false\n\x09  }\n\x09];\n\n\x09webidl.converters.MessageEventInit = webidl.dictionaryConverter([\n\x09  ...eventInit\x2C\n\x09  {\n\x09    key: 'data'\x2C\n\x09    converter: webidl.converters.any\x2C\n\x09    defaultValue: null\n\x09  }\x2C\n\x09  {\n\x09    key: 'origin'\x2C\n\x09    converter: webidl.converters.USVString\x2C\n\x09    defaultValue: ''\n\x09  }\x2C\n\x09  {\n\x09    key: 'lastEventId'\x2C\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    defaultValue: ''\n\x09  }\x2C\n\x09  {\n\x09    key: 'source'\x2C\n\x09    // Node doesn't implement WindowProxy or ServiceWorker\x2C so the only\n\x09    // valid value for source is a MessagePort.\n\x09    converter: webidl.nullableConverter(webidl.converters.MessagePort)\x2C\n\x09    defaultValue: null\n\x09  }\x2C\n\x09  {\n\x09    key: 'ports'\x2C\n\x09    converter: webidl.converters['sequence<MessagePort>']\x2C\n\x09    get defaultValue () {\n\x09      return []\n\x09    }\n\x09  }\n\x09]);\n\n\x09webidl.converters.CloseEventInit = webidl.dictionaryConverter([\n\x09  ...eventInit\x2C\n\x09  {\n\x09    key: 'wasClean'\x2C\n\x09    converter: webidl.converters.boolean\x2C\n\x09    defaultValue: false\n\x09  }\x2C\n\x09  {\n\x09    key: 'code'\x2C\n\x09    converter: webidl.converters['unsigned short']\x2C\n\x09    defaultValue: 0\n\x09  }\x2C\n\x09  {\n\x09    key: 'reason'\x2C\n\x09    converter: webidl.converters.USVString\x2C\n\x09    defaultValue: ''\n\x09  }\n\x09]);\n\n\x09webidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n\x09  ...eventInit\x2C\n\x09  {\n\x09    key: 'message'\x2C\n\x09    converter: webidl.converters.DOMString\x2C\n\x09    defaultValue: ''\n\x09  }\x2C\n\x09  {\n\x09    key: 'filename'\x2C\n\x09    converter: webidl.converters.USVString\x2C\n\x09    defaultValue: ''\n\x09  }\x2C\n\x09  {\n\x09    key: 'lineno'\x2C\n\x09    converter: webidl.converters['unsigned long']\x2C\n\x09    defaultValue: 0\n\x09  }\x2C\n\x09  {\n\x09    key: 'colno'\x2C\n\x09    converter: webidl.converters['unsigned long']\x2C\n\x09    defaultValue: 0\n\x09  }\x2C\n\x09  {\n\x09    key: 'error'\x2C\n\x09    converter: webidl.converters.any\n\x09  }\n\x09]);\n\n\x09events = {\n\x09  MessageEvent\x2C\n\x09  CloseEvent\x2C\n\x09  ErrorEvent\n\x09};\n\x09return events;\n}\n\nvar util$1;\nvar hasRequiredUtil;\n\nfunction requireUtil () {\n\x09if (hasRequiredUtil) return util$1;\n\x09hasRequiredUtil = 1;\n\n\x09const { kReadyState\x2C kController\x2C kResponse\x2C kBinaryType\x2C kWebSocketURL } = requireSymbols();\n\x09const { states\x2C opcodes } = requireConstants();\n\x09const { MessageEvent\x2C ErrorEvent } = requireEvents();\n\n\x09/* globals Blob */\n\n\x09/**\n\x09 * @param {import('./websocket').WebSocket} ws\n\x09 */\n\x09function isEstablished (ws) {\n\x09  // If the server's response is validated as provided for above\x2C it is\n\x09  // said that _The WebSocket Connection is Established_ and that the\n\x09  // WebSocket Connection is in the OPEN state.\n\x09  return ws[kReadyState] === states.OPEN\n\x09}\n\n\x09/**\n\x09 * @param {import('./websocket').WebSocket} ws\n\x09 */\n\x09function isClosing (ws) {\n\x09  // Upon either sending or receiving a Close control frame\x2C it is said\n\x09  // that _The WebSocket Closing Handshake is Started_ and that the\n\x09  // WebSocket connection is in the CLOSING state.\n\x09  return ws[kReadyState] === states.CLOSING\n\x09}\n\n\x09/**\n\x09 * @param {import('./websocket').WebSocket} ws\n\x09 */\n\x09function isClosed (ws) {\n\x09  return ws[kReadyState] === states.CLOSED\n\x09}\n\n\x09/**\n\x09 * @see https://dom.spec.whatwg.org/#concept-event-fire\n\x09 * @param {string} e\n\x09 * @param {EventTarget} target\n\x09 * @param {EventInit | undefined} eventInitDict\n\x09 */\n\x09function fireEvent (e\x2C target\x2C eventConstructor = Event\x2C eventInitDict) {\n\x09  // 1. If eventConstructor is not given\x2C then let eventConstructor be Event.\n\n\x09  // 2. Let event be the result of creating an event given eventConstructor\x2C\n\x09  //    in the relevant realm of target.\n\x09  // 3. Initialize event\u2019s type attribute to e.\n\x09  const event = new eventConstructor(e\x2C eventInitDict); // eslint-disable-line new-cap\n\n\x09  // 4. Initialize any other IDL attributes of event as described in the\n\x09  //    invocation of this algorithm.\n\n\x09  // 5. Return the result of dispatching event at target\x2C with legacy target\n\x09  //    override flag set if set.\n\x09  target.dispatchEvent(event);\n\x09}\n\n\x09/**\n\x09 * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n\x09 * @param {import('./websocket').WebSocket} ws\n\x09 * @param {number} type Opcode\n\x09 * @param {Buffer} data application data\n\x09 */\n\x09function websocketMessageReceived (ws\x2C type\x2C data) {\n\x09  // 1. If ready state is not OPEN (1)\x2C then return.\n\x09  if (ws[kReadyState] !== states.OPEN) {\n\x09    return\n\x09  }\n\n\x09  // 2. Let dataForEvent be determined by switching on type and binary type:\n\x09  let dataForEvent;\n\n\x09  if (type === opcodes.TEXT) {\n\x09    // -> type indicates that the data is Text\n\x09    //      a new DOMString containing data\n\x09    try {\n\x09      dataForEvent = new TextDecoder('utf-8'\x2C { fatal: true }).decode(data);\n\x09    } catch {\n\x09      failWebsocketConnection(ws\x2C 'Received invalid UTF-8 in text frame.');\n\x09      return\n\x09    }\n\x09  } else if (type === opcodes.BINARY) {\n\x09    if (ws[kBinaryType] === 'blob') {\n\x09      // -> type indicates that the data is Binary and binary type is "blob"\n\x09      //      a new Blob object\x2C created in the relevant Realm of the WebSocket\n\x09      //      object\x2C that represents data as its raw data\n\x09      dataForEvent = new Blob([data]);\n\x09    } else {\n\x09      // -> type indicates that the data is Binary and binary type is "arraybuffer"\n\x09      //      a new ArrayBuffer object\x2C created in the relevant Realm of the\n\x09      //      WebSocket object\x2C whose contents are data\n\x09      dataForEvent = new Uint8Array(data).buffer;\n\x09    }\n\x09  }\n\n\x09  // 3. Fire an event named message at the WebSocket object\x2C using MessageEvent\x2C\n\x09  //    with the origin attribute initialized to the serialization of the WebSocket\n\x09  //    object\u2019s url's origin\x2C and the data attribute initialized to dataForEvent.\n\x09  fireEvent('message'\x2C ws\x2C MessageEvent\x2C {\n\x09    origin: ws[kWebSocketURL].origin\x2C\n\x09    data: dataForEvent\n\x09  });\n\x09}\n\n\x09/**\n\x09 * @see https://datatracker.ietf.org/doc/html/rfc6455\n\x09 * @see https://datatracker.ietf.org/doc/html/rfc2616\n\x09 * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n\x09 * @param {string} protocol\n\x09 */\n\x09function isValidSubprotocol (protocol) {\n\x09  // If present\x2C this value indicates one\n\x09  // or more comma-separated subprotocol the client wishes to speak\x2C\n\x09  // ordered by preference.  The elements that comprise this value\n\x09  // MUST be non-empty strings with characters in the range U+0021 to\n\x09  // U+007E not including separator characters as defined in\n\x09  // [RFC2616] and MUST all be unique strings.\n\x09  if (protocol.length === 0) {\n\x09    return false\n\x09  }\n\n\x09  for (const char of protocol) {\n\x09    const code = char.charCodeAt(0);\n\n\x09    if (\n\x09      code < 0x21 ||\n\x09      code > 0x7E ||\n\x09      char === '(' ||\n\x09      char === ')' ||\n\x09      char === '<' ||\n\x09      char === '>' ||\n\x09      char === '@' ||\n\x09      char === '\x2C' ||\n\x09      char === ';' ||\n\x09      char === ':' ||\n\x09      char === '\\\\' ||\n\x09      char === '"' ||\n\x09      char === '/' ||\n\x09      char === '[' ||\n\x09      char === ']' ||\n\x09      char === '?' ||\n\x09      char === '=' ||\n\x09      char === '{' ||\n\x09      char === '}' ||\n\x09      code === 32 || // SP\n\x09      code === 9 // HT\n\x09    ) {\n\x09      return false\n\x09    }\n\x09  }\n\n\x09  return true\n\x09}\n\n\x09/**\n\x09 * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n\x09 * @param {number} code\n\x09 */\n\x09function isValidStatusCode (code) {\n\x09  if (code >= 1000 && code < 1015) {\n\x09    return (\n\x09      code !== 1004 && // reserved\n\x09      code !== 1005 && // "MUST NOT be set as a status code"\n\x09      code !== 1006 // "MUST NOT be set as a status code"\n\x09    )\n\x09  }\n\n\x09  return code >= 3000 && code <= 4999\n\x09}\n\n\x09/**\n\x09 * @param {import('./websocket').WebSocket} ws\n\x09 * @param {string|undefined} reason\n\x09 */\n\x09function failWebsocketConnection (ws\x2C reason) {\n\x09  const { [kController]: controller\x2C [kResponse]: response } = ws;\n\n\x09  controller.abort();\n\n\x09  if (response?.socket && !response.socket.destroyed) {\n\x09    response.socket.destroy();\n\x09  }\n\n\x09  if (reason) {\n\x09    fireEvent('error'\x2C ws\x2C ErrorEvent\x2C {\n\x09      error: new Error(reason)\n\x09    });\n\x09  }\n\x09}\n\n\x09util$1 = {\n\x09  isEstablished\x2C\n\x09  isClosing\x2C\n\x09  isClosed\x2C\n\x09  fireEvent\x2C\n\x09  isValidSubprotocol\x2C\n\x09  isValidStatusCode\x2C\n\x09  failWebsocketConnection\x2C\n\x09  websocketMessageReceived\n\x09};\n\x09return util$1;\n}\n\nvar connection;\nvar hasRequiredConnection;\n\nfunction requireConnection () {\n\x09if (hasRequiredConnection) return connection;\n\x09hasRequiredConnection = 1;\n\n\x09const { randomBytes\x2C createHash } = require$$0$5;\n\x09const diagnosticsChannel = require$$1;\n\x09const { uid\x2C states } = requireConstants();\n\x09const {\n\x09  kReadyState\x2C\n\x09  kSentClose\x2C\n\x09  kByteParser\x2C\n\x09  kReceivedClose\n\x09} = requireSymbols();\n\x09const { fireEvent\x2C failWebsocketConnection } = requireUtil();\n\x09const { CloseEvent } = requireEvents();\n\x09const { makeRequest } = requireRequest();\n\x09const { fetching } = requireFetch();\n\x09const { getGlobalDispatcher } = global$1;\n\n\x09const channels = {};\n\x09channels.open = diagnosticsChannel.channel('undici:websocket:open');\n\x09channels.close = diagnosticsChannel.channel('undici:websocket:close');\n\x09channels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error');\n\n\x09/**\n\x09 * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n\x09 * @param {URL} url\n\x09 * @param {string|string[]} protocols\n\x09 * @param {import('./websocket').WebSocket} ws\n\x09 * @param {(response: any) => void} onEstablish\n\x09 */\n\x09function establishWebSocketConnection (url\x2C protocols\x2C ws\x2C onEstablish) {\n\x09  // 1. Let requestURL be a copy of url\x2C with its scheme set to "http"\x2C if url\u2019s\n\x09  //    scheme is "ws"\x2C and to "https" otherwise.\n\x09  const requestURL = url;\n\n\x09  requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:';\n\n\x09  // 2. Let request be a new request\x2C whose URL is requestURL\x2C client is client\x2C\n\x09  //    service-workers mode is "none"\x2C referrer is "no-referrer"\x2C mode is\n\x09  //    "websocket"\x2C credentials mode is "include"\x2C cache mode is "no-store" \x2C\n\x09  //    and redirect mode is "error".\n\x09  const request = makeRequest({\n\x09    urlList: [requestURL]\x2C\n\x09    serviceWorkers: 'none'\x2C\n\x09    referrer: 'no-referrer'\x2C\n\x09    mode: 'websocket'\x2C\n\x09    credentials: 'include'\x2C\n\x09    cache: 'no-store'\x2C\n\x09    redirect: 'error'\n\x09  });\n\n\x09  // 3. Append (`Upgrade`\x2C `websocket`) to request\u2019s header list.\n\x09  // 4. Append (`Connection`\x2C `Upgrade`) to request\u2019s header list.\n\x09  // Note: both of these are handled by undici currently.\n\x09  // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n\x09  // 5. Let keyValue be a nonce consisting of a randomly selected\n\x09  //    16-byte value that has been forgiving-base64-encoded and\n\x09  //    isomorphic encoded.\n\x09  const keyValue = randomBytes(16).toString('base64');\n\n\x09  // 6. Append (`Sec-WebSocket-Key`\x2C keyValue) to request\u2019s\n\x09  //    header list.\n\x09  request.headersList.append('sec-websocket-key'\x2C keyValue);\n\n\x09  // 7. Append (`Sec-WebSocket-Version`\x2C `13`) to request\u2019s\n\x09  //    header list.\n\x09  request.headersList.append('sec-websocket-version'\x2C '13');\n\n\x09  // 8. For each protocol in protocols\x2C combine\n\x09  //    (`Sec-WebSocket-Protocol`\x2C protocol) in request\u2019s header\n\x09  //    list.\n\x09  for (const protocol of protocols) {\n\x09    request.headersList.append('sec-websocket-protocol'\x2C protocol);\n\x09  }\n\n\x09  // 9. Let permessageDeflate be a user-agent defined\n\x09  //    "permessage-deflate" extension header value.\n\x09  // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n\x09  // TODO: enable once permessage-deflate is supported\n\x09  const permessageDeflate = ''; // 'permessage-deflate; 15'\n\n\x09  // 10. Append (`Sec-WebSocket-Extensions`\x2C permessageDeflate) to\n\x09  //     request\u2019s header list.\n\x09  // request.headersList.append('sec-websocket-extensions'\x2C permessageDeflate)\n\n\x09  // 11. Fetch request with useParallelQueue set to true\x2C and\n\x09  //     processResponse given response being these steps:\n\x09  const controller = fetching({\n\x09    request\x2C\n\x09    useParallelQueue: true\x2C\n\x09    dispatcher: getGlobalDispatcher()\x2C\n\x09    processResponse (response) {\n\x09      // 1. If response is a network error or its status is not 101\x2C\n\x09      //    fail the WebSocket connection.\n\x09      if (response.type === 'error' || response.status !== 101) {\n\x09        failWebsocketConnection(ws\x2C 'Received network error or non-101 status code.');\n\x09        return\n\x09      }\n\n\x09      // 2. If protocols is not the empty list and extracting header\n\x09      //    list values given `Sec-WebSocket-Protocol` and response\u2019s\n\x09      //    header list results in null\x2C failure\x2C or the empty byte\n\x09      //    sequence\x2C then fail the WebSocket connection.\n\x09      if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n\x09        failWebsocketConnection(ws\x2C 'Server did not respond with sent protocols.');\n\x09        return\n\x09      }\n\n\x09      // 3. Follow the requirements stated step 2 to step 6\x2C inclusive\x2C\n\x09      //    of the last set of steps in section 4.1 of The WebSocket\n\x09      //    Protocol to validate response. This either results in fail\n\x09      //    the WebSocket connection or the WebSocket connection is\n\x09      //    established.\n\n\x09      // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n\x09      //    header field contains a value that is not an ASCII case-\n\x09      //    insensitive match for the value "websocket"\x2C the client MUST\n\x09      //    _Fail the WebSocket Connection_.\n\x09      if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n\x09        failWebsocketConnection(ws\x2C 'Server did not set Upgrade header to "websocket".');\n\x09        return\n\x09      }\n\n\x09      // 3. If the response lacks a |Connection| header field or the\n\x09      //    |Connection| header field doesn't contain a token that is an\n\x09      //    ASCII case-insensitive match for the value "Upgrade"\x2C the client\n\x09      //    MUST _Fail the WebSocket Connection_.\n\x09      if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n\x09        failWebsocketConnection(ws\x2C 'Server did not set Connection header to "upgrade".');\n\x09        return\n\x09      }\n\n\x09      // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n\x09      //    the |Sec-WebSocket-Accept| contains a value other than the\n\x09      //    base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n\x09      //    Key| (as a string\x2C not base64-decoded) with the string "258EAFA5-\n\x09      //    E914-47DA-95CA-C5AB0DC85B11" but ignoring any leading and\n\x09      //    trailing whitespace\x2C the client MUST _Fail the WebSocket\n\x09      //    Connection_.\n\x09      const secWSAccept = response.headersList.get('Sec-WebSocket-Accept');\n\x09      const digest = createHash('sha1').update(keyValue + uid).digest('base64');\n\x09      if (secWSAccept !== digest) {\n\x09        failWebsocketConnection(ws\x2C 'Incorrect hash received in Sec-WebSocket-Accept header.');\n\x09        return\n\x09      }\n\n\x09      // 5. If the response includes a |Sec-WebSocket-Extensions| header\n\x09      //    field and this header field indicates the use of an extension\n\x09      //    that was not present in the client's handshake (the server has\n\x09      //    indicated an extension not requested by the client)\x2C the client\n\x09      //    MUST _Fail the WebSocket Connection_.  (The parsing of this\n\x09      //    header field to determine which extensions are requested is\n\x09      //    discussed in Section 9.1.)\n\x09      const secExtension = response.headersList.get('Sec-WebSocket-Extensions');\n\n\x09      if (secExtension !== null && secExtension !== permessageDeflate) {\n\x09        failWebsocketConnection(ws\x2C 'Received different permessage-deflate than the one set.');\n\x09        return\n\x09      }\n\n\x09      // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n\x09      //    and this header field indicates the use of a subprotocol that was\n\x09      //    not present in the client's handshake (the server has indicated a\n\x09      //    subprotocol not requested by the client)\x2C the client MUST _Fail\n\x09      //    the WebSocket Connection_.\n\x09      const secProtocol = response.headersList.get('Sec-WebSocket-Protocol');\n\n\x09      if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n\x09        failWebsocketConnection(ws\x2C 'Protocol was not set in the opening handshake.');\n\x09        return\n\x09      }\n\n\x09      response.socket.on('data'\x2C onSocketData);\n\x09      response.socket.on('close'\x2C onSocketClose);\n\x09      response.socket.on('error'\x2C onSocketError);\n\n\x09      if (channels.open.hasSubscribers) {\n\x09        channels.open.publish({\n\x09          address: response.socket.address()\x2C\n\x09          protocol: secProtocol\x2C\n\x09          extensions: secExtension\n\x09        });\n\x09      }\n\n\x09      onEstablish(response);\n\x09    }\n\x09  });\n\n\x09  return controller\n\x09}\n\n\x09/**\n\x09 * @param {Buffer} chunk\n\x09 */\n\x09function onSocketData (chunk) {\n\x09  if (!this.ws[kByteParser].write(chunk)) {\n\x09    this.pause();\n\x09  }\n\x09}\n\n\x09/**\n\x09 * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n\x09 * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n\x09 */\n\x09function onSocketClose () {\n\x09  const { ws } = this;\n\n\x09  // If the TCP connection was closed after the\n\x09  // WebSocket closing handshake was completed\x2C the WebSocket connection\n\x09  // is said to have been closed _cleanly_.\n\x09  const wasClean = ws[kSentClose] && ws[kReceivedClose];\n\n\x09  let code = 1005;\n\x09  let reason = '';\n\n\x09  const result = ws[kByteParser].closingInfo;\n\n\x09  if (result) {\n\x09    code = result.code ?? 1005;\n\x09    reason = result.reason;\n\x09  } else if (!ws[kSentClose]) {\n\x09    // If _The WebSocket\n\x09    // Connection is Closed_ and no Close control frame was received by the\n\x09    // endpoint (such as could occur if the underlying transport connection\n\x09    // is lost)\x2C _The WebSocket Connection Close Code_ is considered to be\n\x09    // 1006.\n\x09    code = 1006;\n\x09  }\n\n\x09  // 1. Change the ready state to CLOSED (3).\n\x09  ws[kReadyState] = states.CLOSED;\n\n\x09  // 2. If the user agent was required to fail the WebSocket\n\x09  //    connection\x2C or if the WebSocket connection was closed\n\x09  //    after being flagged as full\x2C fire an event named error\n\x09  //    at the WebSocket object.\n\x09  // TODO\n\n\x09  // 3. Fire an event named close at the WebSocket object\x2C\n\x09  //    using CloseEvent\x2C with the wasClean attribute\n\x09  //    initialized to true if the connection closed cleanly\n\x09  //    and false otherwise\x2C the code attribute initialized to\n\x09  //    the WebSocket connection close code\x2C and the reason\n\x09  //    attribute initialized to the result of applying UTF-8\n\x09  //    decode without BOM to the WebSocket connection close\n\x09  //    reason.\n\x09  fireEvent('close'\x2C ws\x2C CloseEvent\x2C {\n\x09    wasClean\x2C code\x2C reason\n\x09  });\n\n\x09  if (channels.close.hasSubscribers) {\n\x09    channels.close.publish({\n\x09      websocket: ws\x2C\n\x09      code\x2C\n\x09      reason\n\x09    });\n\x09  }\n\x09}\n\n\x09function onSocketError (error) {\n\x09  const { ws } = this;\n\n\x09  ws[kReadyState] = states.CLOSING;\n\n\x09  if (channels.socketError.hasSubscribers) {\n\x09    channels.socketError.publish(error);\n\x09  }\n\n\x09  this.destroy();\n\x09}\n\n\x09connection = {\n\x09  establishWebSocketConnection\n\x09};\n\x09return connection;\n}\n\nvar frame;\nvar hasRequiredFrame;\n\nfunction requireFrame () {\n\x09if (hasRequiredFrame) return frame;\n\x09hasRequiredFrame = 1;\n\n\x09const { randomBytes } = require$$0$5;\n\x09const { maxUnsigned16Bit } = requireConstants();\n\n\x09class WebsocketFrameSend {\n\x09  /**\n\x09   * @param {Buffer|undefined} data\n\x09   */\n\x09  constructor (data) {\n\x09    this.frameData = data;\n\x09    this.maskKey = randomBytes(4);\n\x09  }\n\n\x09  createFrame (opcode) {\n\x09    const bodyLength = this.frameData?.byteLength ?? 0;\n\n\x09    /** @type {number} */\n\x09    let payloadLength = bodyLength; // 0-125\n\x09    let offset = 6;\n\n\x09    if (bodyLength > maxUnsigned16Bit) {\n\x09      offset += 8; // payload length is next 8 bytes\n\x09      payloadLength = 127;\n\x09    } else if (bodyLength > 125) {\n\x09      offset += 2; // payload length is next 2 bytes\n\x09      payloadLength = 126;\n\x09    }\n\n\x09    const buffer = Buffer.allocUnsafe(bodyLength + offset);\n\n\x09    // Clear first 2 bytes\x2C everything else is overwritten\n\x09    buffer[0] = buffer[1] = 0;\n\x09    buffer[0] |= 0x80; // FIN\n\x09    buffer[0] = (buffer[0] & 0xF0) + opcode; // opcode\n\n\x09    /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n\x09    buffer[offset - 4] = this.maskKey[0];\n\x09    buffer[offset - 3] = this.maskKey[1];\n\x09    buffer[offset - 2] = this.maskKey[2];\n\x09    buffer[offset - 1] = this.maskKey[3];\n\n\x09    buffer[1] = payloadLength;\n\n\x09    if (payloadLength === 126) {\n\x09      new DataView(buffer.buffer).setUint16(2\x2C bodyLength);\n\x09    } else if (payloadLength === 127) {\n\x09      // Clear extended payload length\n\x09      buffer[2] = buffer[3] = 0;\n\x09      buffer.writeUIntBE(bodyLength\x2C 4\x2C 6);\n\x09    }\n\n\x09    buffer[1] |= 0x80; // MASK\n\n\x09    // mask body\n\x09    for (let i = 0; i < bodyLength; i++) {\n\x09      buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4];\n\x09    }\n\n\x09    return buffer\n\x09  }\n\x09}\n\n\x09frame = {\n\x09  WebsocketFrameSend\n\x09};\n\x09return frame;\n}\n\nvar receiver;\nvar hasRequiredReceiver;\n\nfunction requireReceiver () {\n\x09if (hasRequiredReceiver) return receiver;\n\x09hasRequiredReceiver = 1;\n\n\x09const { Writable } = require$$0$1;\n\x09const diagnosticsChannel = require$$1;\n\x09const { parserStates\x2C opcodes\x2C states\x2C emptyBuffer } = requireConstants();\n\x09const { kReadyState\x2C kSentClose\x2C kResponse\x2C kReceivedClose } = requireSymbols();\n\x09const { isValidStatusCode\x2C failWebsocketConnection\x2C websocketMessageReceived } = requireUtil();\n\x09const { WebsocketFrameSend } = requireFrame();\n\n\x09// This code was influenced by ws released under the MIT license.\n\x09// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n\x09// Copyright (c) 2013 Arnout Kazemier and contributors\n\x09// Copyright (c) 2016 Luigi Pinca and contributors\n\n\x09const channels = {};\n\x09channels.ping = diagnosticsChannel.channel('undici:websocket:ping');\n\x09channels.pong = diagnosticsChannel.channel('undici:websocket:pong');\n\n\x09class ByteParser extends Writable {\n\x09  #buffers = []\n\x09  #byteOffset = 0\n\n\x09  #state = parserStates.INFO\n\n\x09  #info = {}\n\x09  #fragments = []\n\n\x09  constructor (ws) {\n\x09    super();\n\n\x09    this.ws = ws;\n\x09  }\n\n\x09  /**\n\x09   * @param {Buffer} chunk\n\x09   * @param {() => void} callback\n\x09   */\n\x09  _write (chunk\x2C _\x2C callback) {\n\x09    this.#buffers.push(chunk);\n\x09    this.#byteOffset += chunk.length;\n\n\x09    this.run(callback);\n\x09  }\n\n\x09  /**\n\x09   * Runs whenever a new chunk is received.\n\x09   * Callback is called whenever there are no more chunks buffering\x2C\n\x09   * or not enough bytes are buffered to parse.\n\x09   */\n\x09  run (callback) {\n\x09    while (true) {\n\x09      if (this.#state === parserStates.INFO) {\n\x09        // If there aren't enough bytes to parse the payload length\x2C etc.\n\x09        if (this.#byteOffset < 2) {\n\x09          return callback()\n\x09        }\n\n\x09        const buffer = this.consume(2);\n\n\x09        this.#info.fin = (buffer[0] & 0x80) !== 0;\n\x09        this.#info.opcode = buffer[0] & 0x0F;\n\n\x09        // If we receive a fragmented message\x2C we use the type of the first\n\x09        // frame to parse the full message as binary/text\x2C when it's terminated\n\x09        this.#info.originalOpcode ??= this.#info.opcode;\n\n\x09        this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION;\n\n\x09        if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n\x09          // Only text and binary frames can be fragmented\n\x09          failWebsocketConnection(this.ws\x2C 'Invalid frame type was fragmented.');\n\x09          return\n\x09        }\n\n\x09        const payloadLength = buffer[1] & 0x7F;\n\n\x09        if (payloadLength <= 125) {\n\x09          this.#info.payloadLength = payloadLength;\n\x09          this.#state = parserStates.READ_DATA;\n\x09        } else if (payloadLength === 126) {\n\x09          this.#state = parserStates.PAYLOADLENGTH_16;\n\x09        } else if (payloadLength === 127) {\n\x09          this.#state = parserStates.PAYLOADLENGTH_64;\n\x09        }\n\n\x09        if (this.#info.fragmented && payloadLength > 125) {\n\x09          // A fragmented frame can't be fragmented itself\n\x09          failWebsocketConnection(this.ws\x2C 'Fragmented frame exceeded 125 bytes.');\n\x09          return\n\x09        } else if (\n\x09          (this.#info.opcode === opcodes.PING ||\n\x09            this.#info.opcode === opcodes.PONG ||\n\x09            this.#info.opcode === opcodes.CLOSE) &&\n\x09          payloadLength > 125\n\x09        ) {\n\x09          // Control frames can have a payload length of 125 bytes MAX\n\x09          failWebsocketConnection(this.ws\x2C 'Payload length for control frame exceeded 125 bytes.');\n\x09          return\n\x09        } else if (this.#info.opcode === opcodes.CLOSE) {\n\x09          if (payloadLength === 1) {\n\x09            failWebsocketConnection(this.ws\x2C 'Received close frame with a 1-byte body.');\n\x09            return\n\x09          }\n\n\x09          const body = this.consume(payloadLength);\n\n\x09          this.#info.closeInfo = this.parseCloseBody(false\x2C body);\n\n\x09          if (!this.ws[kSentClose]) {\n\x09            // If an endpoint receives a Close frame and did not previously send a\n\x09            // Close frame\x2C the endpoint MUST send a Close frame in response.  (When\n\x09            // sending a Close frame in response\x2C the endpoint typically echos the\n\x09            // status code it received.)\n\x09            const body = Buffer.allocUnsafe(2);\n\x09            body.writeUInt16BE(this.#info.closeInfo.code\x2C 0);\n\x09            const closeFrame = new WebsocketFrameSend(body);\n\n\x09            this.ws[kResponse].socket.write(\n\x09              closeFrame.createFrame(opcodes.CLOSE)\x2C\n\x09              (err) => {\n\x09                if (!err) {\n\x09                  this.ws[kSentClose] = true;\n\x09                }\n\x09              }\n\x09            );\n\x09          }\n\n\x09          // Upon either sending or receiving a Close control frame\x2C it is said\n\x09          // that _The WebSocket Closing Handshake is Started_ and that the\n\x09          // WebSocket connection is in the CLOSING state.\n\x09          this.ws[kReadyState] = states.CLOSING;\n\x09          this.ws[kReceivedClose] = true;\n\n\x09          this.end();\n\n\x09          return\n\x09        } else if (this.#info.opcode === opcodes.PING) {\n\x09          // Upon receipt of a Ping frame\x2C an endpoint MUST send a Pong frame in\n\x09          // response\x2C unless it already received a Close frame.\n\x09          // A Pong frame sent in response to a Ping frame must have identical\n\x09          // "Application data"\n\n\x09          const body = this.consume(payloadLength);\n\n\x09          if (!this.ws[kReceivedClose]) {\n\x09            const frame = new WebsocketFrameSend(body);\n\n\x09            this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG));\n\n\x09            if (channels.ping.hasSubscribers) {\n\x09              channels.ping.publish({\n\x09                payload: body\n\x09              });\n\x09            }\n\x09          }\n\n\x09          this.#state = parserStates.INFO;\n\n\x09          if (this.#byteOffset > 0) {\n\x09            continue\n\x09          } else {\n\x09            callback();\n\x09            return\n\x09          }\n\x09        } else if (this.#info.opcode === opcodes.PONG) {\n\x09          // A Pong frame MAY be sent unsolicited.  This serves as a\n\x09          // unidirectional heartbeat.  A response to an unsolicited Pong frame is\n\x09          // not expected.\n\n\x09          const body = this.consume(payloadLength);\n\n\x09          if (channels.pong.hasSubscribers) {\n\x09            channels.pong.publish({\n\x09              payload: body\n\x09            });\n\x09          }\n\n\x09          if (this.#byteOffset > 0) {\n\x09            continue\n\x09          } else {\n\x09            callback();\n\x09            return\n\x09          }\n\x09        }\n\x09      } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n\x09        if (this.#byteOffset < 2) {\n\x09          return callback()\n\x09        }\n\n\x09        const buffer = this.consume(2);\n\n\x09        this.#info.payloadLength = buffer.readUInt16BE(0);\n\x09        this.#state = parserStates.READ_DATA;\n\x09      } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n\x09        if (this.#byteOffset < 8) {\n\x09          return callback()\n\x09        }\n\n\x09        const buffer = this.consume(8);\n\x09        const upper = buffer.readUInt32BE(0);\n\n\x09        // 2^31 is the maxinimum bytes an arraybuffer can contain\n\x09        // on 32-bit systems. Although\x2C on 64-bit systems\x2C this is\n\x09        // 2^53-1 bytes.\n\x09        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n\x09        // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n\x09        // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n\x09        if (upper > 2 ** 31 - 1) {\n\x09          failWebsocketConnection(this.ws\x2C 'Received payload length > 2^31 bytes.');\n\x09          return\n\x09        }\n\n\x09        const lower = buffer.readUInt32BE(4);\n\n\x09        this.#info.payloadLength = (upper << 8) + lower;\n\x09        this.#state = parserStates.READ_DATA;\n\x09      } else if (this.#state === parserStates.READ_DATA) {\n\x09        if (this.#byteOffset < this.#info.payloadLength) {\n\x09          // If there is still more data in this chunk that needs to be read\n\x09          return callback()\n\x09        } else if (this.#byteOffset >= this.#info.payloadLength) {\n\x09          // If the server sent multiple frames in a single chunk\n\n\x09          const body = this.consume(this.#info.payloadLength);\n\n\x09          this.#fragments.push(body);\n\n\x09          // If the frame is unfragmented\x2C or a fragmented frame was terminated\x2C\n\x09          // a message was received\n\x09          if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n\x09            const fullMessage = Buffer.concat(this.#fragments);\n\n\x09            websocketMessageReceived(this.ws\x2C this.#info.originalOpcode\x2C fullMessage);\n\n\x09            this.#info = {};\n\x09            this.#fragments.length = 0;\n\x09          }\n\n\x09          this.#state = parserStates.INFO;\n\x09        }\n\x09      }\n\n\x09      if (this.#byteOffset > 0) {\n\x09        continue\n\x09      } else {\n\x09        callback();\n\x09        break\n\x09      }\n\x09    }\n\x09  }\n\n\x09  /**\n\x09   * Take n bytes from the buffered Buffers\n\x09   * @param {number} n\n\x09   * @returns {Buffer|null}\n\x09   */\n\x09  consume (n) {\n\x09    if (n > this.#byteOffset) {\n\x09      return null\n\x09    } else if (n === 0) {\n\x09      return emptyBuffer\n\x09    }\n\n\x09    if (this.#buffers[0].length === n) {\n\x09      this.#byteOffset -= this.#buffers[0].length;\n\x09      return this.#buffers.shift()\n\x09    }\n\n\x09    const buffer = Buffer.allocUnsafe(n);\n\x09    let offset = 0;\n\n\x09    while (offset !== n) {\n\x09      const next = this.#buffers[0];\n\x09      const { length } = next;\n\n\x09      if (length + offset === n) {\n\x09        buffer.set(this.#buffers.shift()\x2C offset);\n\x09        break\n\x09      } else if (length + offset > n) {\n\x09        buffer.set(next.subarray(0\x2C n - offset)\x2C offset);\n\x09        this.#buffers[0] = next.subarray(n - offset);\n\x09        break\n\x09      } else {\n\x09        buffer.set(this.#buffers.shift()\x2C offset);\n\x09        offset += next.length;\n\x09      }\n\x09    }\n\n\x09    this.#byteOffset -= n;\n\n\x09    return buffer\n\x09  }\n\n\x09  parseCloseBody (onlyCode\x2C data) {\n\x09    // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n\x09    /** @type {number|undefined} */\n\x09    let code;\n\n\x09    if (data.length >= 2) {\n\x09      // _The WebSocket Connection Close Code_ is\n\x09      // defined as the status code (Section 7.4) contained in the first Close\n\x09      // control frame received by the application\n\x09      code = data.readUInt16BE(0);\n\x09    }\n\n\x09    if (onlyCode) {\n\x09      if (!isValidStatusCode(code)) {\n\x09        return null\n\x09      }\n\n\x09      return { code }\n\x09    }\n\n\x09    // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n\x09    /** @type {Buffer} */\n\x09    let reason = data.subarray(2);\n\n\x09    // Remove BOM\n\x09    if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n\x09      reason = reason.subarray(3);\n\x09    }\n\n\x09    if (code !== undefined && !isValidStatusCode(code)) {\n\x09      return null\n\x09    }\n\n\x09    try {\n\x09      // TODO: optimize this\n\x09      reason = new TextDecoder('utf-8'\x2C { fatal: true }).decode(reason);\n\x09    } catch {\n\x09      return null\n\x09    }\n\n\x09    return { code\x2C reason }\n\x09  }\n\n\x09  get closingInfo () {\n\x09    return this.#info.closeInfo\n\x09  }\n\x09}\n\n\x09receiver = {\n\x09  ByteParser\n\x09};\n\x09return receiver;\n}\n\nvar websocket;\nvar hasRequiredWebsocket;\n\nfunction requireWebsocket () {\n\x09if (hasRequiredWebsocket) return websocket;\n\x09hasRequiredWebsocket = 1;\n\n\x09const { webidl } = requireWebidl();\n\x09const { DOMException } = requireConstants$3();\n\x09const { URLSerializer } = requireDataURL();\n\x09const { staticPropertyDescriptors\x2C states\x2C opcodes\x2C emptyBuffer } = requireConstants();\n\x09const {\n\x09  kWebSocketURL\x2C\n\x09  kReadyState\x2C\n\x09  kController\x2C\n\x09  kBinaryType\x2C\n\x09  kResponse\x2C\n\x09  kSentClose\x2C\n\x09  kByteParser\n\x09} = requireSymbols();\n\x09const { isEstablished\x2C isClosing\x2C isValidSubprotocol\x2C failWebsocketConnection\x2C fireEvent } = requireUtil();\n\x09const { establishWebSocketConnection } = requireConnection();\n\x09const { WebsocketFrameSend } = requireFrame();\n\x09const { ByteParser } = requireReceiver();\n\x09const { kEnumerableProperty\x2C isBlobLike } = util$i;\n\x09const { types } = require$$0$2;\n\n\x09let experimentalWarned = false;\n\n\x09// https://websockets.spec.whatwg.org/#interface-definition\n\x09class WebSocket extends EventTarget {\n\x09  #events = {\n\x09    open: null\x2C\n\x09    error: null\x2C\n\x09    close: null\x2C\n\x09    message: null\n\x09  }\n\n\x09  #bufferedAmount = 0\n\x09  #protocol = ''\n\x09  #extensions = ''\n\n\x09  /**\n\x09   * @param {string} url\n\x09   * @param {string|string[]} protocols\n\x09   */\n\x09  constructor (url\x2C protocols = []) {\n\x09    super();\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'WebSocket constructor' });\n\n\x09    if (!experimentalWarned) {\n\x09      experimentalWarned = true;\n\x09      process.emitWarning('WebSockets are experimental\x2C expect them to change at any time.'\x2C {\n\x09        code: 'UNDICI-WS'\n\x09      });\n\x09    }\n\n\x09    url = webidl.converters.USVString(url);\n\x09    protocols = webidl.converters['DOMString or sequence<DOMString>'](protocols);\n\n\x09    // 1. Let urlRecord be the result of applying the URL parser to url.\n\x09    let urlRecord;\n\n\x09    try {\n\x09      urlRecord = new URL(url);\n\x09    } catch (e) {\n\x09      // 2. If urlRecord is failure\x2C then throw a "SyntaxError" DOMException.\n\x09      throw new DOMException(e\x2C 'SyntaxError')\n\x09    }\n\n\x09    // 3. If urlRecord\u2019s scheme is not "ws" or "wss"\x2C then throw a\n\x09    //    "SyntaxError" DOMException.\n\x09    if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n\x09      throw new DOMException(\n\x09        `Expected a ws: or wss: protocol\x2C got ${urlRecord.protocol}`\x2C\n\x09        'SyntaxError'\n\x09      )\n\x09    }\n\n\x09    // 4. If urlRecord\u2019s fragment is non-null\x2C then throw a "SyntaxError"\n\x09    //    DOMException.\n\x09    if (urlRecord.hash) {\n\x09      throw new DOMException('Got fragment'\x2C 'SyntaxError')\n\x09    }\n\n\x09    // 5. If protocols is a string\x2C set protocols to a sequence consisting\n\x09    //    of just that string.\n\x09    if (typeof protocols === 'string') {\n\x09      protocols = [protocols];\n\x09    }\n\n\x09    // 6. If any of the values in protocols occur more than once or otherwise\n\x09    //    fail to match the requirements for elements that comprise the value\n\x09    //    of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n\x09    //    protocol\x2C then throw a "SyntaxError" DOMException.\n\x09    if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n\x09      throw new DOMException('Invalid Sec-WebSocket-Protocol value'\x2C 'SyntaxError')\n\x09    }\n\n\x09    if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n\x09      throw new DOMException('Invalid Sec-WebSocket-Protocol value'\x2C 'SyntaxError')\n\x09    }\n\n\x09    // 7. Set this's url to urlRecord.\n\x09    this[kWebSocketURL] = urlRecord;\n\n\x09    // 8. Let client be this's relevant settings object.\n\n\x09    // 9. Run this step in parallel:\n\n\x09    //    1. Establish a WebSocket connection given urlRecord\x2C protocols\x2C\n\x09    //       and client.\n\x09    this[kController] = establishWebSocketConnection(\n\x09      urlRecord\x2C\n\x09      protocols\x2C\n\x09      this\x2C\n\x09      (response) => this.#onConnectionEstablished(response)\n\x09    );\n\n\x09    // Each WebSocket object has an associated ready state\x2C which is a\n\x09    // number representing the state of the connection. Initially it must\n\x09    // be CONNECTING (0).\n\x09    this[kReadyState] = WebSocket.CONNECTING;\n\n\x09    // The extensions attribute must initially return the empty string.\n\n\x09    // The protocol attribute must initially return the empty string.\n\n\x09    // Each WebSocket object has an associated binary type\x2C which is a\n\x09    // BinaryType. Initially it must be "blob".\n\x09    this[kBinaryType] = 'blob';\n\x09  }\n\n\x09  /**\n\x09   * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n\x09   * @param {number|undefined} code\n\x09   * @param {string|undefined} reason\n\x09   */\n\x09  close (code = undefined\x2C reason = undefined) {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    if (code !== undefined) {\n\x09      code = webidl.converters['unsigned short'](code\x2C { clamp: true });\n\x09    }\n\n\x09    if (reason !== undefined) {\n\x09      reason = webidl.converters.USVString(reason);\n\x09    }\n\n\x09    // 1. If code is present\x2C but is neither an integer equal to 1000 nor an\n\x09    //    integer in the range 3000 to 4999\x2C inclusive\x2C throw an\n\x09    //    "InvalidAccessError" DOMException.\n\x09    if (code !== undefined) {\n\x09      if (code !== 1000 && (code < 3000 || code > 4999)) {\n\x09        throw new DOMException('invalid code'\x2C 'InvalidAccessError')\n\x09      }\n\x09    }\n\n\x09    let reasonByteLength = 0;\n\n\x09    // 2. If reason is present\x2C then run these substeps:\n\x09    if (reason !== undefined) {\n\x09      // 1. Let reasonBytes be the result of encoding reason.\n\x09      // 2. If reasonBytes is longer than 123 bytes\x2C then throw a\n\x09      //    "SyntaxError" DOMException.\n\x09      reasonByteLength = Buffer.byteLength(reason);\n\n\x09      if (reasonByteLength > 123) {\n\x09        throw new DOMException(\n\x09          `Reason must be less than 123 bytes; received ${reasonByteLength}`\x2C\n\x09          'SyntaxError'\n\x09        )\n\x09      }\n\x09    }\n\n\x09    // 3. Run the first matching steps from the following list:\n\x09    if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) ; else if (!isEstablished(this)) {\n\x09      // If the WebSocket connection is not yet established\n\x09      // Fail the WebSocket connection and set this's ready state\n\x09      // to CLOSING (2).\n\x09      failWebsocketConnection(this\x2C 'Connection was closed before it was established.');\n\x09      this[kReadyState] = WebSocket.CLOSING;\n\x09    } else if (!isClosing(this)) {\n\x09      // If the WebSocket closing handshake has not yet been started\n\x09      // Start the WebSocket closing handshake and set this's ready\n\x09      // state to CLOSING (2).\n\x09      // - If neither code nor reason is present\x2C the WebSocket Close\n\x09      //   message must not have a body.\n\x09      // - If code is present\x2C then the status code to use in the\n\x09      //   WebSocket Close message must be the integer given by code.\n\x09      // - If reason is also present\x2C then reasonBytes must be\n\x09      //   provided in the Close message after the status code.\n\n\x09      const frame = new WebsocketFrameSend();\n\n\x09      // If neither code nor reason is present\x2C the WebSocket Close\n\x09      // message must not have a body.\n\n\x09      // If code is present\x2C then the status code to use in the\n\x09      // WebSocket Close message must be the integer given by code.\n\x09      if (code !== undefined && reason === undefined) {\n\x09        frame.frameData = Buffer.allocUnsafe(2);\n\x09        frame.frameData.writeUInt16BE(code\x2C 0);\n\x09      } else if (code !== undefined && reason !== undefined) {\n\x09        // If reason is also present\x2C then reasonBytes must be\n\x09        // provided in the Close message after the status code.\n\x09        frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength);\n\x09        frame.frameData.writeUInt16BE(code\x2C 0);\n\x09        // the body MAY contain UTF-8-encoded data with value /reason/\n\x09        frame.frameData.write(reason\x2C 2\x2C 'utf-8');\n\x09      } else {\n\x09        frame.frameData = emptyBuffer;\n\x09      }\n\n\x09      /** @type {import('stream').Duplex} */\n\x09      const socket = this[kResponse].socket;\n\n\x09      socket.write(frame.createFrame(opcodes.CLOSE)\x2C (err) => {\n\x09        if (!err) {\n\x09          this[kSentClose] = true;\n\x09        }\n\x09      });\n\n\x09      // Upon either sending or receiving a Close control frame\x2C it is said\n\x09      // that _The WebSocket Closing Handshake is Started_ and that the\n\x09      // WebSocket connection is in the CLOSING state.\n\x09      this[kReadyState] = states.CLOSING;\n\x09    } else {\n\x09      // Otherwise\n\x09      // Set this's ready state to CLOSING (2).\n\x09      this[kReadyState] = WebSocket.CLOSING;\n\x09    }\n\x09  }\n\n\x09  /**\n\x09   * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n\x09   * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n\x09   */\n\x09  send (data) {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    webidl.argumentLengthCheck(arguments\x2C 1\x2C { header: 'WebSocket.send' });\n\n\x09    data = webidl.converters.WebSocketSendData(data);\n\n\x09    // 1. If this's ready state is CONNECTING\x2C then throw an\n\x09    //    "InvalidStateError" DOMException.\n\x09    if (this[kReadyState] === WebSocket.CONNECTING) {\n\x09      throw new DOMException('Sent before connected.'\x2C 'InvalidStateError')\n\x09    }\n\n\x09    // 2. Run the appropriate set of steps from the following list:\n\x09    // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n\x09    // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n\x09    if (!isEstablished(this) || isClosing(this)) {\n\x09      return\n\x09    }\n\n\x09    /** @type {import('stream').Duplex} */\n\x09    const socket = this[kResponse].socket;\n\n\x09    // If data is a string\n\x09    if (typeof data === 'string') {\n\x09      // If the WebSocket connection is established and the WebSocket\n\x09      // closing handshake has not yet started\x2C then the user agent\n\x09      // must send a WebSocket Message comprised of the data argument\n\x09      // using a text frame opcode; if the data cannot be sent\x2C e.g.\n\x09      // because it would need to be buffered but the buffer is full\x2C\n\x09      // the user agent must flag the WebSocket as full and then close\n\x09      // the WebSocket connection. Any invocation of this method with a\n\x09      // string argument that does not throw an exception must increase\n\x09      // the bufferedAmount attribute by the number of bytes needed to\n\x09      // express the argument as UTF-8.\n\n\x09      const value = Buffer.from(data);\n\x09      const frame = new WebsocketFrameSend(value);\n\x09      const buffer = frame.createFrame(opcodes.TEXT);\n\n\x09      this.#bufferedAmount += value.byteLength;\n\x09      socket.write(buffer\x2C () => {\n\x09        this.#bufferedAmount -= value.byteLength;\n\x09      });\n\x09    } else if (types.isArrayBuffer(data)) {\n\x09      // If the WebSocket connection is established\x2C and the WebSocket\n\x09      // closing handshake has not yet started\x2C then the user agent must\n\x09      // send a WebSocket Message comprised of data using a binary frame\n\x09      // opcode; if the data cannot be sent\x2C e.g. because it would need\n\x09      // to be buffered but the buffer is full\x2C the user agent must flag\n\x09      // the WebSocket as full and then close the WebSocket connection.\n\x09      // The data to be sent is the data stored in the buffer described\n\x09      // by the ArrayBuffer object. Any invocation of this method with an\n\x09      // ArrayBuffer argument that does not throw an exception must\n\x09      // increase the bufferedAmount attribute by the length of the\n\x09      // ArrayBuffer in bytes.\n\n\x09      const value = Buffer.from(data);\n\x09      const frame = new WebsocketFrameSend(value);\n\x09      const buffer = frame.createFrame(opcodes.BINARY);\n\n\x09      this.#bufferedAmount += value.byteLength;\n\x09      socket.write(buffer\x2C () => {\n\x09        this.#bufferedAmount -= value.byteLength;\n\x09      });\n\x09    } else if (ArrayBuffer.isView(data)) {\n\x09      // If the WebSocket connection is established\x2C and the WebSocket\n\x09      // closing handshake has not yet started\x2C then the user agent must\n\x09      // send a WebSocket Message comprised of data using a binary frame\n\x09      // opcode; if the data cannot be sent\x2C e.g. because it would need to\n\x09      // be buffered but the buffer is full\x2C the user agent must flag the\n\x09      // WebSocket as full and then close the WebSocket connection. The\n\x09      // data to be sent is the data stored in the section of the buffer\n\x09      // described by the ArrayBuffer object that data references. Any\n\x09      // invocation of this method with this kind of argument that does\n\x09      // not throw an exception must increase the bufferedAmount attribute\n\x09      // by the length of data\u2019s buffer in bytes.\n\n\x09      const ab = Buffer.from(data\x2C data.byteOffset\x2C data.byteLength);\n\n\x09      const frame = new WebsocketFrameSend(ab);\n\x09      const buffer = frame.createFrame(opcodes.BINARY);\n\n\x09      this.#bufferedAmount += ab.byteLength;\n\x09      socket.write(buffer\x2C () => {\n\x09        this.#bufferedAmount -= ab.byteLength;\n\x09      });\n\x09    } else if (isBlobLike(data)) {\n\x09      // If the WebSocket connection is established\x2C and the WebSocket\n\x09      // closing handshake has not yet started\x2C then the user agent must\n\x09      // send a WebSocket Message comprised of data using a binary frame\n\x09      // opcode; if the data cannot be sent\x2C e.g. because it would need to\n\x09      // be buffered but the buffer is full\x2C the user agent must flag the\n\x09      // WebSocket as full and then close the WebSocket connection. The data\n\x09      // to be sent is the raw data represented by the Blob object. Any\n\x09      // invocation of this method with a Blob argument that does not throw\n\x09      // an exception must increase the bufferedAmount attribute by the size\n\x09      // of the Blob object\u2019s raw data\x2C in bytes.\n\n\x09      const frame = new WebsocketFrameSend();\n\n\x09      data.arrayBuffer().then((ab) => {\n\x09        const value = Buffer.from(ab);\n\x09        frame.frameData = value;\n\x09        const buffer = frame.createFrame(opcodes.BINARY);\n\n\x09        this.#bufferedAmount += value.byteLength;\n\x09        socket.write(buffer\x2C () => {\n\x09          this.#bufferedAmount -= value.byteLength;\n\x09        });\n\x09      });\n\x09    }\n\x09  }\n\n\x09  get readyState () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    // The readyState getter steps are to return this's ready state.\n\x09    return this[kReadyState]\n\x09  }\n\n\x09  get bufferedAmount () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    return this.#bufferedAmount\n\x09  }\n\n\x09  get url () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    // The url getter steps are to return this's url\x2C serialized.\n\x09    return URLSerializer(this[kWebSocketURL])\n\x09  }\n\n\x09  get extensions () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    return this.#extensions\n\x09  }\n\n\x09  get protocol () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    return this.#protocol\n\x09  }\n\n\x09  get onopen () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    return this.#events.open\n\x09  }\n\n\x09  set onopen (fn) {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    if (this.#events.open) {\n\x09      this.removeEventListener('open'\x2C this.#events.open);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this.#events.open = fn;\n\x09      this.addEventListener('open'\x2C fn);\n\x09    } else {\n\x09      this.#events.open = null;\n\x09    }\n\x09  }\n\n\x09  get onerror () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    return this.#events.error\n\x09  }\n\n\x09  set onerror (fn) {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    if (this.#events.error) {\n\x09      this.removeEventListener('error'\x2C this.#events.error);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this.#events.error = fn;\n\x09      this.addEventListener('error'\x2C fn);\n\x09    } else {\n\x09      this.#events.error = null;\n\x09    }\n\x09  }\n\n\x09  get onclose () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    return this.#events.close\n\x09  }\n\n\x09  set onclose (fn) {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    if (this.#events.close) {\n\x09      this.removeEventListener('close'\x2C this.#events.close);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this.#events.close = fn;\n\x09      this.addEventListener('close'\x2C fn);\n\x09    } else {\n\x09      this.#events.close = null;\n\x09    }\n\x09  }\n\n\x09  get onmessage () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    return this.#events.message\n\x09  }\n\n\x09  set onmessage (fn) {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    if (this.#events.message) {\n\x09      this.removeEventListener('message'\x2C this.#events.message);\n\x09    }\n\n\x09    if (typeof fn === 'function') {\n\x09      this.#events.message = fn;\n\x09      this.addEventListener('message'\x2C fn);\n\x09    } else {\n\x09      this.#events.message = null;\n\x09    }\n\x09  }\n\n\x09  get binaryType () {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    return this[kBinaryType]\n\x09  }\n\n\x09  set binaryType (type) {\n\x09    webidl.brandCheck(this\x2C WebSocket);\n\n\x09    if (type !== 'blob' && type !== 'arraybuffer') {\n\x09      this[kBinaryType] = 'blob';\n\x09    } else {\n\x09      this[kBinaryType] = type;\n\x09    }\n\x09  }\n\n\x09  /**\n\x09   * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n\x09   */\n\x09  #onConnectionEstablished (response) {\n\x09    // processResponse is called when the "response\u2019s header list has been received and initialized."\n\x09    // once this happens\x2C the connection is open\n\x09    this[kResponse] = response;\n\n\x09    const parser = new ByteParser(this);\n\x09    parser.on('drain'\x2C function onParserDrain () {\n\x09      this.ws[kResponse].socket.resume();\n\x09    });\n\n\x09    response.socket.ws = this;\n\x09    this[kByteParser] = parser;\n\n\x09    // 1. Change the ready state to OPEN (1).\n\x09    this[kReadyState] = states.OPEN;\n\n\x09    // 2. Change the extensions attribute\u2019s value to the extensions in use\x2C if\n\x09    //    it is not the null value.\n\x09    // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n\x09    const extensions = response.headersList.get('sec-websocket-extensions');\n\n\x09    if (extensions !== null) {\n\x09      this.#extensions = extensions;\n\x09    }\n\n\x09    // 3. Change the protocol attribute\u2019s value to the subprotocol in use\x2C if\n\x09    //    it is not the null value.\n\x09    // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n\x09    const protocol = response.headersList.get('sec-websocket-protocol');\n\n\x09    if (protocol !== null) {\n\x09      this.#protocol = protocol;\n\x09    }\n\n\x09    // 4. Fire an event named open at the WebSocket object.\n\x09    fireEvent('open'\x2C this);\n\x09  }\n\x09}\n\n\x09// https://websockets.spec.whatwg.org/#dom-websocket-connecting\n\x09WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING;\n\x09// https://websockets.spec.whatwg.org/#dom-websocket-open\n\x09WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN;\n\x09// https://websockets.spec.whatwg.org/#dom-websocket-closing\n\x09WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING;\n\x09// https://websockets.spec.whatwg.org/#dom-websocket-closed\n\x09WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED;\n\n\x09Object.defineProperties(WebSocket.prototype\x2C {\n\x09  CONNECTING: staticPropertyDescriptors\x2C\n\x09  OPEN: staticPropertyDescriptors\x2C\n\x09  CLOSING: staticPropertyDescriptors\x2C\n\x09  CLOSED: staticPropertyDescriptors\x2C\n\x09  url: kEnumerableProperty\x2C\n\x09  readyState: kEnumerableProperty\x2C\n\x09  bufferedAmount: kEnumerableProperty\x2C\n\x09  onopen: kEnumerableProperty\x2C\n\x09  onerror: kEnumerableProperty\x2C\n\x09  onclose: kEnumerableProperty\x2C\n\x09  close: kEnumerableProperty\x2C\n\x09  onmessage: kEnumerableProperty\x2C\n\x09  binaryType: kEnumerableProperty\x2C\n\x09  send: kEnumerableProperty\x2C\n\x09  extensions: kEnumerableProperty\x2C\n\x09  protocol: kEnumerableProperty\x2C\n\x09  [Symbol.toStringTag]: {\n\x09    value: 'WebSocket'\x2C\n\x09    writable: false\x2C\n\x09    enumerable: false\x2C\n\x09    configurable: true\n\x09  }\n\x09});\n\n\x09Object.defineProperties(WebSocket\x2C {\n\x09  CONNECTING: staticPropertyDescriptors\x2C\n\x09  OPEN: staticPropertyDescriptors\x2C\n\x09  CLOSING: staticPropertyDescriptors\x2C\n\x09  CLOSED: staticPropertyDescriptors\n\x09});\n\n\x09webidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n\x09  webidl.converters.DOMString\n\x09);\n\n\x09webidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n\x09  if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n\x09    return webidl.converters['sequence<DOMString>'](V)\n\x09  }\n\n\x09  return webidl.converters.DOMString(V)\n\x09};\n\n\x09webidl.converters.WebSocketSendData = function (V) {\n\x09  if (webidl.util.Type(V) === 'Object') {\n\x09    if (isBlobLike(V)) {\n\x09      return webidl.converters.Blob(V\x2C { strict: false })\n\x09    }\n\n\x09    if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n\x09      return webidl.converters.BufferSource(V)\n\x09    }\n\x09  }\n\n\x09  return webidl.converters.USVString(V)\n\x09};\n\n\x09websocket = {\n\x09  WebSocket\n\x09};\n\x09return websocket;\n}\n\nvar File$1;\nvar FormData;\nvar Request;\nvar Response;\nvar Headers;\nvar fetch;\nconst Dispatcher = dispatcher;\nconst errors = errors$1;\nconst util = util$i;\nconst { InvalidArgumentError } = errors;\nconst api = api$1;\nconst { getGlobalDispatcher\x2C setGlobalDispatcher } = global$1;\n\nlet hasCrypto;\ntry {\n  require('crypto');\n  hasCrypto = true;\n} catch {\n  hasCrypto = false;\n}\n\nObject.assign(Dispatcher.prototype\x2C api);\n\nfunction makeDispatcher (fn) {\n  return (url\x2C opts\x2C handler) => {\n    if (typeof opts === 'function') {\n      handler = opts;\n      opts = null;\n    }\n\n    if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n      throw new InvalidArgumentError('invalid url')\n    }\n\n    if (opts != null && typeof opts !== 'object') {\n      throw new InvalidArgumentError('invalid opts')\n    }\n\n    if (opts && opts.path != null) {\n      if (typeof opts.path !== 'string') {\n        throw new InvalidArgumentError('invalid opts.path')\n      }\n\n      let path = opts.path;\n      if (!opts.path.startsWith('/')) {\n        path = `/${path}`;\n      }\n\n      url = new URL(util.parseOrigin(url).origin + path);\n    } else {\n      if (!opts) {\n        opts = typeof url === 'object' ? url : {};\n      }\n\n      url = util.parseURL(url);\n    }\n\n    const { agent\x2C dispatcher = getGlobalDispatcher() } = opts;\n\n    if (agent) {\n      throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n    }\n\n    return fn.call(dispatcher\x2C {\n      ...opts\x2C\n      origin: url.origin\x2C\n      path: url.search ? `${url.pathname}${url.search}` : url.pathname\x2C\n      method: opts.method || (opts.body ? 'PUT' : 'GET')\n    }\x2C handler)\n  }\n}\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n  let fetchImpl = null;\n  fetch = async function fetch (resource) {\n    if (!fetchImpl) {\n      fetchImpl = requireFetch().fetch;\n    }\n\n    try {\n      return await fetchImpl(...arguments)\n    } catch (err) {\n      Error.captureStackTrace(err\x2C this);\n      throw err\n    }\n  };\n  Headers = requireHeaders().Headers;\n  Response = requireResponse().Response;\n  Request = requireRequest().Request;\n  FormData = requireFormdata().FormData;\n  File$1 = requireFile().File;\n  requireFilereader().FileReader;\n\n  requireGlobal();\n}\n\nif (util.nodeMajor >= 16) {\n  requireCookies();\n\n  requireDataURL();\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n  requireWebsocket();\n}\n\nmakeDispatcher(api.request);\nmakeDispatcher(api.stream);\nmakeDispatcher(api.pipeline);\nmakeDispatcher(api.connect);\nmakeDispatcher(api.upgrade);\n\n// @ts-expect-error\nconst File = buffer.File ?? File$1;\n\n/** @type {Record<string\x2C any>} */\nconst globals = {\n\x09crypto: webcrypto\x2C\n\x09fetch\x2C\n\x09Response\x2C\n\x09Request\x2C\n\x09Headers\x2C\n\x09ReadableStream: ReadableStream$1\x2C\n\x09TransformStream\x2C\n\x09WritableStream\x2C\n\x09FormData\x2C\n\x09File\n};\n\n// exported for dev/preview and node environments\n// TODO: remove this once we only support Node 18.11+ (the version multipart/form-data was added)\n/**\n * Make various web APIs available as globals:\n * - `crypto`\n * - `fetch`\n * - `Headers`\n * - `Request`\n * - `Response`\n */\nfunction installPolyfills() {\n\x09for (const name in globals) {\n\x09\x09Object.defineProperty(globalThis\x2C name\x2C {\n\x09\x09\x09enumerable: true\x2C\n\x09\x09\x09configurable: true\x2C\n\x09\x09\x09writable: true\x2C\n\x09\x09\x09value: globals[name]\n\x09\x09});\n\x09}\n}\n\ninstallPolyfills();\n
code-source-info,0x36d16acb0fa6,133,0,762092,C16O0C2212O0C2237O0C2243O882C2250O918C2262O963C2274O1004C2286O1043C2292O882C2294O1071C2302O1083C2315O1083C2331O1112C2344O1112C2360O1144C2373O1144C2389O1172C2402O1172C2418O1199C2431O1199C2447O1231C2460O1231C2476O1261C2489O1261C2505O1290C2518O1290C2534O1324C2547O1324C2563O1362C2576O1362C2592O1414C2605O1414C2621O1476C2634O1476C2650O1540C2663O1540C2679O1606C2692O1606C2708O1650C2721O1650C2737O1691C2750O1691C2766O1734C2779O1734C2795O1773C2808O1773C2824O1813C2837O1813C2853O1847C2866O1847C2882O1873C2895O1873C2911O1904C2924O1904C2940O1932C2953O1932C2969O1964C2982O1964C2998O1996C3011O1996C3027O2024C3040O2024C3056O2049C3069O2049C3085O2076C3098O2076C3114O2103C3127O2103C3143O2133C3156O2133C3172O2165C3185O2165C3201O2197C3214O2197C3230O2229C3243O2229C3259O2260C3266O2267C3284O2270C3302O2318C3315O2318C3331O2361C3344O2361C3360O2401C3373O2401C3389O2436C3402O2436C3418O2465C3431O2465C3447O2495C3460O2495C3476O2524C3489O2524C3505O2558C3518O2558C3534O2602C3547O2602C3563O2635C3576O2635C3592O2668C3605O2668C3621O2705C3634O2705C3650O2750C3663O2750C3679O2803C3692O2803C3708O2846C3721O2846C3737O2888C3750O2888C3766O2931C3779O2931C3795O2982C3808O2982C3824O3035C3837O3035C3857O1071C3859O3087C3904O3261C3946O3261C3948O3588C3995O3588C3997O3916C4044O3916C4046O4245C4093O4245C4095O4561C4142O4561C4144O5052C4191O5052C4193O5383C4240O5383C4242O5732C4289O5732C4291O6035C4338O6035C4340O6360C4387O6360C4389O6791C4436O6791C4438O7212C4485O7212C4487O7536C4534O7536C4536O7839C4583O7839C4585O8156C4632O8156C4634O8492C4683O8809C4731O8809C4733O9141C4780O9141C4782O9501C4795O9522C4805O9556C4815O9594C4825O9641C4835O9685C4845O9742C4855O9802C4865O9852C4875O9903C4885O9954C4895O10004C4905O10051C4915O10096C4925O10139C4935O10176C4945O10212C4955O10271C4965O10311C4975O10377C4989O10429C4996O10429C4998O10502C5004O10461C5014O10486C5024O10541C5035O10521C5045O10570C5052O10570C5054O10598C5061O10598C5063O10640C5073O10702C5084O10691C5094O10731C5101O10731C5103O10767C5114O10753C5124O10811C5134O10819C5146O10828C5158O10833C5178O10833C5192O10843C5215O10844C5229O10811C5273O10787C5349O10798C5549O16482C5556O16482C5558O20657C5559O20657C5561O22387C5571O22396C5583O22406C5593O22387C5595O22671C5605O22678C5622O22678C5634O22692C5635O22723C5643O22745C5656O22749C5666O22777C5676O22786C5686O22801C5696O22814C5706O22841C5716O22858C5726O22879C5736O22893C5746O22908C5756O22920C5766O22937C5776O22949C5786O22963C5796O22982C5806O22997C5816O23016C5826O23032C5836O23057C5846O23068C5856O23082C5866O23115C5876O23139C5886O23151C5896O23170C5906O23187C5916O23215C5926O23229C5936O23247C5946O23260C5956O23308C5968O23327C5980O23347C5998O22745C6000O23372C6010O23377C6022O23377C6030O23372C6032O23388C6033O23388C6035O23424C6039O23424C6109O24351C6111O24949C6122O24953C6137O25111C6158O196671C6168O196716C6178O196767C6185O196767C6187O196794C6189O196794C6191O197100C6198O197100C6200O197372C6207O197372C6209O197508C6216O197508C6218O197546C6233O197546C6241O197546C6243O197585C6244O197585C6246O197594C6247O197594C6255O197643C6273O197643C6285O197677C6291O197716C6311O197716C6321O197695C6329O197752C6335O197793C6355O197793C6365O197772C6373O197831C6379O197871C6399O197871C6409O197850C6417O197908C6423O197949C6443O197949C6453O197928C6461O197987C6467O198025C6487O198025C6497O198004C6511O198070C6524O198088C6532O198119C6545O198139C6553O198170C6566O198189C6574O198220C6587O198240C6595O198271C6608O198288C6616O198336C6763O207280C6766O207313C6775O207347C6857O207583C6860O207619C6863O207663C6873O207689C6883O207732C6893O207876C6899O207787C6909O207807C6919O207828C6929O207856C6939O207907C6954O207907C6962O207907C6964O207944C6977O207944C6985O207944C6987O207983C7002O207983C7010O207983C7012O208024C7027O208024C7035O208024C7037O208073C7052O208073C7060O208073C7062O208129C7147O211102C7205O212330C7208O212363C7215O212363C7217O212392C7224O212392C7226O212419C7228O212419C7230O212457C7240O212481C7250O212520C7251O212520C7253O212780C7254O212780C7256O212794C7262O212813C7274O212839C7342O212852C7348O213726C7416O213739C7418O217784C7421O217821C7422O217821C7424O217838C7425O217838C7427O229914C7429O229914C7431O229944C7437O229930C7447O229972C7454O229972C7456O230014C7466O230062C7473O230062C7475O230109C7482O230109C7484O230158C7499O230158C7507O230158C7533O230302C7540O230302C7585O230175C7587O230453C7712O236181C7715O236225C7717O236225C7719O236816C7722O386629C7729O386629C7731O386653C7738O386653C7740O386680C7742O386680C7744O386703C7746O386703C7748O386731C7750O386731C7752O386767C7755O386793C7765O386830C7775O386890C7785O386937C7795O386962C7805O386985C7815O387022C7825O387039C7835O387061C7845O387081C7855O387100C7865O387132C7875O387192C7877O387192C7879O388002C7885O387219C7895O387229C7905O387239C7915O387254C7925O387272C7935O387283C7945O387294C7955O387306C7965O387319C7975O387342C7985O387366C7995O387387C8005O387398C8015O387418C8025O387442C8035O387458C8045O387485C8055O387501C8065O387511C8075O387539C8085O387554C8095O387569C8105O387584C8115O387594C8125O387609C8135O387620C8145O387646C8155O387665C8165O387689C8175O387719C8185O387738C8195O387754C8205O387778C8215O387810C8225O387832C8235O387848C8245O387868C8255O387890C8265O387915C8275O387945C8285O387964C8295O387981C8305O388032C8315O388039C8322O388046C8330O388038C8336O388032C8338O388082C8353O388082C8361O388082C8363O388126C8364O388126C8372O388166C8390O388166C8402O388200C8408O388242C8428O388242C8438O388221C8446O388282C8452O388326C8472O388326C8482O388305C8490O388368C8496O388411C8516O388411C8526O388390C8534O388452C8540O388492C8560O388492C8570O388471C8584O388540C8597O388561C8605O388592C8618O388615C8626O388646C8639O388668C8647O388699C8660O388718C8668O388818C8709O395377C8726O395459C8743O395537C8756O395616C8777O395724C8790O396002C8807O396078C8824O396712C8841O396902C8892O397628C8898O397628C8900O397686C8902O397686C8904O397725C8914O397732C8931O397732C8941O397725C8943O400302C8944O400302C8946O400328C8952O400328C8954O400342C8960O400356C8972O400361C8980O400386C8981O400386C8983O400415C8984O400415C8986O400445C8987O400445C8989O400471C8990O400471C8992O400502C8994O400502C8996O400526C8998O400526C9000O400550C9002O400550C9204O400554C9285O432543C9287O436139C9290O436319C9294O436319C9296O436339C9298O436347C9304O436339C9396O439107C9398O439711C9479O440498C9485O440380C9495O440401C9505O440425C9515O440446C9525O440467C9535O440486C9545O440523C9560O440523C9568O440523C9570O440558C9684O440991C9687O441030C9690O441065C9692O441065C9694O441263C9700O441097C9710O441118C9720O441137C9730O441149C9740O441159C9750O441168C9760O441175C9770O441188C9780O441204C9790O441224C9800O441247C9810O441292C9812O441292C9814O441323C9827O441323C9835O441323C9837O441363C9852O441363C9860O441363C9862O441399C9875O441399C9883O441399C9885O441439C9900O441439C9908O441439C9910O441484C9925O441484C9933O441484C9937O441524C9952O441524C9960O441524C9964O441569C9979O441569C9987O441569C9991O441622C10006O441622C10014O441622C10018O441676C10033O441676C10041O441676C10045O441723C10060O441723C10070O441767C10085O441767C10095O441807C10110O441807C10118O441807C10122O441842C10137O443161C10158O443215C10171O443320C10192O443443C10209O443604C10226O443757C10250O443958C10267O444192C10284O444427C10301O444824C10318O445286C10369O445672C10382O445686C10392O445710C10402O445736C10412O445764C10422O445780C10434O445813C10448O445844C10458O445866C10470O445880C10482O445894C10494O445908C10504O445954C10506O445954C10510O445994C10522O446046C10524O446046C10528O446103C10534O446062C10546O446083C10558O446137C10560O446137C10564O446168C10579O446168C10587O446168C10591O446208C10606O446208C10614O446208C10618O446250C10633O446250C10641O446250C10645O446365C10660O447948C10711O448336C10714O448435C10720O448411C10732O448425C10801O448447C10862O448648C10866O448955C10873O448955C10877O449153C10889O449275C10895O449198C10907O449208C10919O449226C10929O449236C10939O449246C10949O449257C10961O449309C10964O449340C10966O449340C10970O449363C10972O449363C10976O449386C10978O449386C10982O449428C10984O449428C10988O449502C10996O449502C11006O449466C11018O449477C11030O449543C11045O449543C11053O449543C11057O449586C11072O449586C11080O449586C11084O449637C11099O449637C11107O449637C11111O449691C11124O449691C11132O449691C11136O449735C11151O449735C11159O449735C11163O449771C11178O449771C11186O449771C11190O449809C11205O449809C11213O449809C11217O449847C11232O449847C11240O449847C11244O450029C11263O452006C11278O452267C11295O453075C11312O453390C11363O453725C11366O453747C11369O453769C11376O453769C11380O453814C11391O453799C11401O453857C11413O453880C11425O453921C11437O453973C11439O453973C11443O454040C11449O453989C11461O454022C11473O454053C11474O454053C11478O454079C11493O454079C11501O454079C11505O454116C11520O454116C11528O454116C11532O454150C11547O454150C11555O454150C11559O454182C11574O454182C11582O454182C11586O454220C11601O454220C11609O454220C11613O454260C11621O454287C11843O460656C11850O460656C11854O460678C11866O460740C11872O460724C11884O462179C11897O462210C11911O462273C11923O462328C11938O462328C11946O462328C11950O462365C11965O462365C11973O462365C11977O463283C11990O463298C12000O463327C12014O463365C12016O463365C12020O463407C12032O463454C12044O463505C12046O463505C12050O463550C12062O463635C12073O463615C12083O463668C12095O463695C12107O463757C12209O463728C12213O468021C12219O468082C12230O468041C12242O468064C12254O468128C12266O468179C12278O468229C12290O468280C12292O468280C12296O468296C12308O468379C12319O468359C12329O468412C12341O468439C12353O468500C12455O468472C12459O473387C12465O473444C12476O473406C12486O473418C12498O473428C12510O473490C12522O473516C12534O473564C12546O473615C12548O473615C12552O473666C12563O473646C12573O473699C12585O473726C12597O473775C12604O473775C12608O473804C12623O473804C12631O473804C12635O473853C12704O473823C12708O474181C12777O474150C12781O474507C12883O474477C12887O478940C12890O478981C12902O479026C12914O479062C12926O479133C12937O479113C12947O479162C12949O479162C12953O479189C12965O479216C12977O479263C12984O479263C12988O479305C13079O479276C13083O481606C13089O481646C13101O481670C13113O481691C13125O481743C13136O481725C13146O481772C13148O481772C13152O481788C13164O481799C13176O481859C13267O481830C13271O484030C13277O484040C13279O484054C13287O484068C13289O484081C13297O484094C13299O484109C13307O484124C13309O484138C13317O484152C13319O484166C13327O484189C13337O484244C13384O484244C13388O484600C13403O484625C13417O484669C13428O484681C13443O484681C13459O484710C13474O484710C13490O484741C13505O484741C13521O484775C13536O484775C13552O484813C13567O484813C13583O484856C13598O484856C13614O484903C13629O484903C13645O484949C13660O484949C13676O484989C13691O484989C13707O485028C13722O485028C13738O485071C13753O485071C13769O485114C13784O485114C13800O485149C13813O485149C13829O485184C13844O485184C13860O485227C13875O485227C13891O485262C13906O485262C13922O485303C13937O485303C13953O485344C13968O485344C13984O485385C13997O485385C14019O485417C14031O485476C14043O485505C14055O485540C14067O485572C14079O485585C14091O485655C14097O485635C14109O485647C14121O485688C14132O485671C14144O485741C14155O485741C14167O485723C14179O495542C14194O495563C14206O495584C14216O495620C14228O495641C14240O495673C14252O495687C14264O495708C14274O495722C14286O495737C14298O495754C14308O495789C14320O495812C14330O495831C14342O495851C14356O495893C14359O495906C14371O495923C14383O495933C14395O495987C14407O496004C14419O496020C14431O496039C14443O496059C14455O496077C14467O496138C14479O496196C14485O496183C14576O496263C14580O497238C14705O502561C14707O502593C14715O502614C14719O502640C14727O502689C14738O502673C14750O502718C14753O502753C14765O502811C14777O502840C14789O502864C14801O502892C14813O502921C14825O502953C14837O502988C14849O503043C14861O503100C14863O503100C14867O503141C14879O503299C14898O503864C14906O503864C14940O504090C14989O504279C15000O504265C15012O504306C15015O504320C15027O504363C15039O504378C15051O504392C15063O504402C15075O504420C15087O504431C15099O504452C15111O504488C15123O504541C15125O504541C15129O504582C15141O504734C15160O505279C15168O505279C15202O505499C15251O505822C15258O505829C15278O505832C15288O505822C15292O505893C15304O505944C15307O505956C15317O505999C15319O506021C15333O505999C15341O506457C15354O506482C15364O506528C15376O506457C15380O758858C15383O758885C15389O758908C15391O758908C15395O758924C15407O758969C15413O759029C15421O758984C15433O759005C15445O759044C15456O759063C15474O759063C15482O759084C15492O759094C15493O759114C15498O759136C15508O759143C15520O759161C15532O759143C15544O760446C15552O760455C15566O760465C15584O760479C15598O760489C15616O760504C15630O760514C15651O760541C15652O760541C15654O760549C15663O760804C15675O760814C15685O760830C15695O760842C15707O760853C15717O760870C15727O760883C15739O760893C15749O760909C15759O760921C15771O760932C15781O760949C15791O760962C15803O760971C15813O760984C15823O760993C15833O761012C15841O761028C15853O761028C15863O761048C15871O761057C15885O761067C15895O761078C15901O761099C15907O761099C15913O761120C15921O761129C15935O761139C15949O761148C15953O761163C15959O761205C15971O761186C15979O761234C15991O761215C15999O761262C16011O761243C16019O761292C16031O761273C16039O761321C16051O761302C16059O761365C16070O761372C16092O761440C16103O761451C16120O761463C16130O761471C16140O761482C16150O761492C16158O761518C16173O761537C16188O761555C16205O761572C16217O761583C16229O761440C16233O762072C16243O762092,,
tick,0x7efc33635473,202272,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0xfb2df8,202300,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc336c02cf,202305,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc336415d8,202309,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33635473,202314,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3363549c,202317,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33641626,202321,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33635473,202325,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3364160a,202329,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3363549c,202333,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3363549c,202337,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33a63f40,202341,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33635473,202345,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3363549c,202349,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33a646d3,202353,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3363549c,202357,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33635416,202361,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc339ceef0,202365,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33641626,202369,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33635473,202372,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3363532d,202376,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33635473,202399,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0xfb324f,202404,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33a6484e,202408,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc336415e0,202412,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33a646f0,202416,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33635406,202420,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc3373d8f0,202424,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33a646f0,202428,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x1257f00,202432,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc336c02cf,202436,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x10aa46b,203060,0,0x0,0,0x11ff0a0,0x1c78303f2a37,0x1c78303f26fd,0xbaa280,0x1c78303d9420,0x1c78303dc07f,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
code-creation,Eval,10,203332,0x36d16acb6a36,5, node:stream/web:1:1,0x36d16acb68e0,~
script-source,134,node:stream/web,'use strict';\n\nconst {\n  emitExperimentalWarning\x2C\n} = require('internal/util');\n\nemitExperimentalWarning('stream/web');\n\nconst {\n  TransformStream\x2C\n  TransformStreamDefaultController\x2C\n} = require('internal/webstreams/transformstream');\n\nconst {\n  WritableStream\x2C\n  WritableStreamDefaultController\x2C\n  WritableStreamDefaultWriter\x2C\n} = require('internal/webstreams/writablestream');\n\nconst {\n  ReadableStream\x2C\n  ReadableStreamDefaultReader\x2C\n  ReadableStreamBYOBReader\x2C\n  ReadableStreamBYOBRequest\x2C\n  ReadableByteStreamController\x2C\n  ReadableStreamDefaultController\x2C\n} = require('internal/webstreams/readablestream');\n\nconst {\n  ByteLengthQueuingStrategy\x2C\n  CountQueuingStrategy\x2C\n} = require('internal/webstreams/queuingstrategies');\n\nconst {\n  TextEncoderStream\x2C\n  TextDecoderStream\x2C\n} = require('internal/webstreams/encoding');\n\nmodule.exports = {\n  ReadableStream\x2C\n  ReadableStreamDefaultReader\x2C\n  ReadableStreamBYOBReader\x2C\n  ReadableStreamBYOBRequest\x2C\n  ReadableByteStreamController\x2C\n  ReadableStreamDefaultController\x2C\n  TransformStream\x2C\n  TransformStreamDefaultController\x2C\n  WritableStream\x2C\n  WritableStreamDefaultWriter\x2C\n  WritableStreamDefaultController\x2C\n  ByteLengthQueuingStrategy\x2C\n  CountQueuingStrategy\x2C\n  TextEncoderStream\x2C\n  TextDecoderStream\x2C\n};\n
code-source-info,0x36d16acb6a36,134,0,1255,C0O0C4O1255,,
code-creation,Function,10,203426,0x36d16acb6c8e,252, node:stream/web:1:1,0x36d16acb69a0,~
code-source-info,0x36d16acb6c8e,134,0,1255,C0O54C4O54C10O25C15O81C19O81C23O188C27O188C33O131C38O150C43O333C47O333C53O247C58O265C63O300C68O566C72O566C78O391C83O409C88O440C93O468C98O497C103O529C108O679C112O679C118O624C123O653C128O784C132O784C138O740C143O761C148O826C156O847C162O865C168O896C174O924C180O953C186O985C192O1020C198O1039C204O1075C210O1093C216O1124C222O1159C228O1188C234O1212C240O1233C246O841C251O1254,,
code-creation,LazyCompile,10,203562,0x36d16acb71a6,69,emitExperimentalWarning node:internal/util:200:33,0x30ec9dba9810,~
code-source-info,0x36d16acb71a6,12,5541,5797,C0O5555C5O5580C10O5580C17O5594C18O5601C19O5616C31O5677C35O5710C40O5731C45O5731C50O5747C53O5755C61O5755C68O5796,,
code-creation,LazyCompile,10,203713,0x36d16acb7456,300,emitWarning node:internal/process/warning:116:21,0x456580ffbf0,~
script-source,75,node:internal/process/warning,'use strict';\n\nconst {\n  ArrayIsArray\x2C\n  Error\x2C\n  ErrorPrototypeToString\x2C\n  ErrorCaptureStackTrace\x2C\n  String\x2C\n} = primordials;\n\nconst assert = require('internal/assert');\nconst {\n  codes: {\n    ERR_INVALID_ARG_TYPE\x2C\n  }\x2C\n  isErrorStackTraceLimitWritable\x2C\n} = require('internal/errors');\nconst { validateString } = require('internal/validators');\n\n// Lazily loaded\nlet fs;\nlet fd;\nlet warningFile;\nlet options;\n\nfunction lazyOption() {\n  // This will load `warningFile` only once. If the flag is not set\x2C\n  // `warningFile` will be set to an empty string.\n  if (warningFile === undefined) {\n    options = require('internal/options');\n    if (options.getOptionValue('--diagnostic-dir') !== '') {\n      warningFile = options.getOptionValue('--diagnostic-dir');\n    }\n    if (options.getOptionValue('--redirect-warnings') !== '') {\n      warningFile = options.getOptionValue('--redirect-warnings');\n    } else {\n      warningFile = '';\n    }\n  }\n  return warningFile;\n}\n\n// If we can't write to stderr\x2C we'd like to make this a noop\x2C\n// so use console.error.\nlet error;\nfunction writeOut(message) {\n  if (!error) {\n    error = require('internal/console/global').error;\n  }\n  error(message);\n}\n\nfunction writeToFile(message) {\n  if (fd === undefined) {\n    fs = require('fs');\n    try {\n      fd = fs.openSync(warningFile\x2C 'a');\n    } catch {\n      return writeOut(message);\n    }\n    process.on('exit'\x2C () => {\n      try {\n        fs.closeSync(fd);\n      } catch {}\n    });\n  }\n  fs.appendFile(fd\x2C `${message}\\n`\x2C (err) => {\n    if (err) {\n      writeOut(message);\n    }\n  });\n}\n\nfunction doEmitWarning(warning) {\n  process.emit('warning'\x2C warning);\n}\n\nlet traceWarningHelperShown = false;\nfunction onWarning(warning) {\n  if (!(warning instanceof Error)) return;\n  const isDeprecation = warning.name === 'DeprecationWarning';\n  if (isDeprecation && process.noDeprecation) return;\n  const trace = process.traceProcessWarnings ||\n                (isDeprecation && process.traceDeprecation);\n  let msg = `(${process.release.name}:${process.pid}) `;\n  if (warning.code)\n    msg += `[${warning.code}] `;\n  if (trace && warning.stack) {\n    msg += `${warning.stack}`;\n  } else {\n    msg +=\n      typeof warning.toString === 'function' ?\n        `${warning.toString()}` :\n        ErrorPrototypeToString(warning);\n  }\n  if (typeof warning.detail === 'string') {\n    msg += `\\n${warning.detail}`;\n  }\n  if (!trace && !traceWarningHelperShown) {\n    const flag = isDeprecation ? '--trace-deprecation' : '--trace-warnings';\n    const argv0 = require('path').basename(process.argv0 || 'node'\x2C '.exe');\n    msg += `\\n(Use \\`${argv0} ${flag} ...\\` to show where the warning ` +\n           'was created)';\n    traceWarningHelperShown = true;\n  }\n  const warningFile = lazyOption();\n  if (warningFile) {\n    return writeToFile(msg);\n  }\n  writeOut(msg);\n}\n\n// process.emitWarning(error)\n// process.emitWarning(str[\x2C type[\x2C code]][\x2C ctor])\n// process.emitWarning(str[\x2C options])\nfunction emitWarning(warning\x2C type\x2C code\x2C ctor) {\n  let detail;\n  if (type !== null && typeof type === 'object' && !ArrayIsArray(type)) {\n    ctor = type.ctor;\n    code = type.code;\n    if (typeof type.detail === 'string')\n      detail = type.detail;\n    type = type.type || 'Warning';\n  } else if (typeof type === 'function') {\n    ctor = type;\n    code = undefined;\n    type = 'Warning';\n  }\n  if (type !== undefined)\n    validateString(type\x2C 'type');\n  if (typeof code === 'function') {\n    ctor = code;\n    code = undefined;\n  } else if (code !== undefined) {\n    validateString(code\x2C 'code');\n  }\n  if (typeof warning === 'string') {\n    warning = createWarningObject(warning\x2C type\x2C code\x2C ctor\x2C detail);\n  } else if (!(warning instanceof Error)) {\n    throw new ERR_INVALID_ARG_TYPE('warning'\x2C ['Error'\x2C 'string']\x2C warning);\n  }\n  if (warning.name === 'DeprecationWarning') {\n    if (process.noDeprecation)\n      return;\n    if (process.throwDeprecation) {\n      // Delay throwing the error to guarantee that all former warnings were\n      // properly logged.\n      return process.nextTick(() => {\n        throw warning;\n      });\n    }\n  }\n  process.nextTick(doEmitWarning\x2C warning);\n}\n\nfunction emitWarningSync(warning) {\n  process.emit('warning'\x2C createWarningObject(warning));\n}\n\nfunction createWarningObject(warning\x2C type\x2C code\x2C ctor\x2C detail) {\n  assert(typeof warning === 'string');\n  // Improve error creation performance by skipping the error frames.\n  // They are added in the `captureStackTrace()` function below.\n  const tmpStackLimit = Error.stackTraceLimit;\n  if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n  // eslint-disable-next-line no-restricted-syntax\n  warning = new Error(warning);\n  if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = tmpStackLimit;\n  warning.name = String(type || 'Warning');\n  if (code !== undefined) warning.code = code;\n  if (detail !== undefined) warning.detail = detail;\n  ErrorCaptureStackTrace(warning\x2C ctor || process.emitWarning);\n  return warning;\n}\n\nmodule.exports = {\n  emitWarning\x2C\n  emitWarningSync\x2C\n  onWarning\x2C\n};\n
code-source-info,0x36d16acb7456,75,2978,4149,C0O2978C9O3014C11O3024C25O3074C28O3074C34O3112C40O3134C46O3160C54O3201C59O3225C71O3253C77O3291C80O3308C83O3330C87O3354C91O3382C101O3382C106O3414C112O3452C115O3469C120O3496C124O3526C134O3526C139O3562C145O3601C165O3611C170O3609C174O3676C181O3701C183O3690C188O3715C208O3721C213O3715C214O3794C217O3806C224O3811C229O3843C234O3855C240O3876C241O3883C242O3888C247O3900C253O4029C258O4044C268O4044C273O4093C274O4106C279O4114C292O4114C299O4148,,
code-creation,LazyCompile,10,204026,0x36d16acb7d3e,150,createWarningObject node:internal/process/warning:160:29,0x456580ffcd0,~
code-source-info,0x36d16acb7d3e,75,4275,4990,C0O4315C10O4315C14O4511C19O4517C24O4536C29O4540C34O4574C40O4596C44O4654C51O4664C58O4686C63O4690C68O4724C75O4746C79O4765C81O4780C89O4787C94O4780C98O4778C102O4809C106O4833C108O4846C112O4856C116O4882C118O4897C122O4909C132O4941C137O4957C142O4909C147O4973C149O4988,,
tick,0x7efc33737028,204137,0,0x0,2,0x11e9ce0,0x36d16acb757a,0x36d16acb71e3,0x36d16acb6ca1,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,204240,0x36d16acb8096,368,nextTick node:internal/process/task_queues:104:18,0x30ec9dbbb380,~
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,0x36d16acb8096,25,2591,3435,C0O2591C2O2606C7O2606C11O2637C14O2649C20O2663C21O2670C22O2678C24O2704C59O2726C61O2745C70O2762C82O2768C84O2787C93O2804C105O2818C117O2824C119O2843C128O2860C140O2874C152O2888C164O2894C166O2920C171O2947C175O2954C181O2927C187O2979C190O2996C194O2984C199O3017C201O3024C207O3040C210O3029C214O3005C219O2966C222O3052C227O3062C232O3062C238O3077C243O3077C247O3122C252O3122C256O3161C261O3161C265O3210C272O3217C278O3235C285O3249C291O3275C301O3295C311O3309C319O3321C324O3325C329O3347C346O3347C351O3410C356O3416C361O3416C367O3434,,
code-creation,LazyCompile,10,204488,0x36d16acb8916,21, node:internal/validators:213:42,0x73467c9a130,~
code-source-info,0x36d16acb8916,17,6522,6623,C0O6540C6O6580C13O6586C18O6580C20O6622,,
code-creation,LazyCompile,10,204527,0x36d16acb8a26,15,isEmpty node:internal/fixed_queue:95:10,0xaad66741368,~
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,0x36d16acb8a26,28,3637,3677,C0O3658C5O3663C10O3663C14O3673,,
code-creation,LazyCompile,10,204731,0x36d16acb8eee,13,isEmpty node:internal/fixed_queue:67:10,0x30ec9dbbff78,~
code-source-info,0x36d16acb8eee,28,3084,3129,C0O3105C5O3118C9O3109C12O3125,,
code-creation,LazyCompile,10,204758,0x36d16acb8fee,25,setHasTickScheduled node:internal/process/task_queues:52:29,0x30ec9dbbb290,~
code-source-info,0x36d16acb8fee,25,1104,1162,C0O1116C7O1125C12O1146C19O1144C24O1161,,
code-creation,LazyCompile,10,204831,0x36d16acb90f6,23,newAsyncId node:internal/async_hooks:413:20,0x30ec9dbb92e8,~
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 { resource_symbol\x2C 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  // TODO(addaleax): Merge this with owner_symbol and use it across all\n  // AsyncWrap instances.\n  const publicResource = resource[resource_symbol];\n  if (publicResource !== undefined)\n    return publicResource;\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,0x36d16acb90f6,24,14441,14492,C0O14448C7O14473C16O14488C22O14490,,
tick,0x1257f0f,205618,0,0x0,3,0x11e9ce0,0x36d16acb8192,0x36d16acb757a,0x36d16acb71e3,0x36d16acb6ca1,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,205636,0x36d16acba566,35,getDefaultTriggerAsyncId node:internal/async_hooks:429:34,0x30ec9dbb9388,~
code-source-info,0x36d16acba566,24,14900,15157,C0O14937C7O14953C9O14952C13O15046C14O15072C19O15081C26O15104C28O15103C31O15123C32O15126C34O15155,,
code-creation,LazyCompile,10,205668,0x36d16acba686,13,initHooksExist node:internal/async_hooks:466:24,0x30ec9dbb9578,~
code-source-info,0x36d16acba686,24,15896,15928,C0O15903C5O15919C8O15910C12O15926,,
code-creation,LazyCompile,10,205685,0x36d16acba77e,16,hasHooks node:internal/async_hooks:458:18,0x30ec9dbb94d8,~
code-source-info,0x36d16acba77e,24,15764,15810,C0O15774C7O15798C12O15804C15O15808,,
code-creation,LazyCompile,10,205710,0x36d16acba89e,59,push node:internal/fixed_queue:99:7,0xaad667413b8,~
code-source-info,0x36d16acba89e,28,3685,3945,C0O3707C5O3712C10O3712C16O3871C23O3887C26O3883C32O3881C38O3864C42O3925C47O3930C52O3930C58O3944,,
code-creation,LazyCompile,10,205731,0x36d16acba9f6,24,isFull node:internal/fixed_queue:71:9,0xaad66741118,~
code-source-info,0x36d16acba9f6,28,3139,3200,C0O3162C4O3166C10O3173C12O3171C16O3189C20O3180C23O3196,,
code-creation,LazyCompile,10,205752,0x36d16acbab16,37,push node:internal/fixed_queue:75:7,0xaad66741180,~
code-source-info,0x36d16acbab16,28,3208,3291,C0O3226C5O3236C12O3241C16O3270C20O3274C26O3281C28O3279C31O3262C36O3290,,
code-creation,Eval,10,206219,0x36d16acbbd86,5, node:internal/webstreams/transformstream:1:1,0x36d16acbb7f0,~
script-source,135,node:internal/webstreams/transformstream,'use strict';\n\nconst {\n  FunctionPrototypeBind\x2C\n  FunctionPrototypeCall\x2C\n  ObjectDefineProperties\x2C\n  PromisePrototypeCatch\x2C\n  PromisePrototypeThen\x2C\n  PromiseResolve\x2C\n  ReflectConstruct\x2C\n  SymbolToStringTag\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_ILLEGAL_CONSTRUCTOR\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_INVALID_STATE\x2C\n    ERR_INVALID_THIS\x2C\n  }\x2C\n} = require('internal/errors');\n\nconst {\n  DOMException\x2C\n} = internalBinding('messaging');\n\nconst {\n  createDeferredPromise\x2C\n  customInspectSymbol: kInspect\x2C\n} = require('internal/util');\n\nconst {\n  kDeserialize\x2C\n  kTransfer\x2C\n  kTransferList\x2C\n  makeTransferable\x2C\n} = require('internal/worker/js_transferable');\n\nconst {\n  customInspect\x2C\n  ensureIsPromise\x2C\n  extractHighWaterMark\x2C\n  extractSizeAlgorithm\x2C\n  isBrandCheck\x2C\n  nonOpFlush\x2C\n  kType\x2C\n  kState\x2C\n  kEnumerableProperty\x2C\n} = require('internal/webstreams/util');\n\nconst {\n  ReadableStream\x2C\n  readableStreamDefaultControllerCanCloseOrEnqueue\x2C\n  readableStreamDefaultControllerClose\x2C\n  readableStreamDefaultControllerEnqueue\x2C\n  readableStreamDefaultControllerError\x2C\n  readableStreamDefaultControllerGetDesiredSize\x2C\n  readableStreamDefaultControllerHasBackpressure\x2C\n} = require('internal/webstreams/readablestream');\n\nconst {\n  WritableStream\x2C\n  writableStreamDefaultControllerErrorIfNeeded\x2C\n} = require('internal/webstreams/writablestream');\n\nconst assert = require('internal/assert');\n\n/**\n * @typedef {import('./queuingstrategies').QueuingStrategy\n * } QueuingStrategy\n * @typedef {import('./queuingstrategies').QueuingStrategySize\n * } QueuingStrategySize\n *\n * @callback TransformerStartCallback\n * @param {TransformStreamDefaultController} controller;\n *\n * @callback TransformerFlushCallback\n * @param {TransformStreamDefaultController} controller;\n * @returns {Promise<void>}\n *\n * @callback TransformerTransformCallback\n * @param {any} chunk\n * @param {TransformStreamDefaultController} controller\n * @returns {Promise<void>}\n *\n * @typedef {{\n *  start? : TransformerStartCallback\x2C\n *  transform? : TransformerTransformCallback\x2C\n *  flush? : TransformerFlushCallback\x2C\n *  readableType? : any\x2C\n *  writableType? : any\x2C\n * }} Transformer\n */\n\nclass TransformStream {\n  [kType] = 'TransformStream';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  /**\n   * @param {Transformer} [transformer]\n   * @param {QueuingStrategy} [writableStrategy]\n   * @param {QueuingStrategy} [readableStrategy]\n   */\n  constructor(\n    transformer = null\x2C\n    writableStrategy = {}\x2C\n    readableStrategy = {}) {\n    const readableType = transformer?.readableType;\n    const writableType = transformer?.writableType;\n    const start = transformer?.start;\n\n    if (readableType !== undefined) {\n      throw new ERR_INVALID_ARG_VALUE.RangeError(\n        'transformer.readableType'\x2C\n        readableType);\n    }\n    if (writableType !== undefined) {\n      throw new ERR_INVALID_ARG_VALUE.RangeError(\n        'transformer.writableType'\x2C\n        writableType);\n    }\n\n    const readableHighWaterMark = readableStrategy?.highWaterMark;\n    const readableSize = readableStrategy?.size;\n\n    const writableHighWaterMark = writableStrategy?.highWaterMark;\n    const writableSize = writableStrategy?.size;\n\n    const actualReadableHighWaterMark =\n      extractHighWaterMark(readableHighWaterMark\x2C 0);\n    const actualReadableSize = extractSizeAlgorithm(readableSize);\n\n    const actualWritableHighWaterMark =\n      extractHighWaterMark(writableHighWaterMark\x2C 1);\n    const actualWritableSize = extractSizeAlgorithm(writableSize);\n\n    const startPromise = createDeferredPromise();\n\n    initializeTransformStream(\n      this\x2C\n      startPromise\x2C\n      actualWritableHighWaterMark\x2C\n      actualWritableSize\x2C\n      actualReadableHighWaterMark\x2C\n      actualReadableSize);\n\n    setupTransformStreamDefaultControllerFromTransformer(this\x2C transformer);\n\n    if (start !== undefined) {\n      startPromise.resolve(\n        FunctionPrototypeCall(\n          start\x2C\n          transformer\x2C\n          this[kState].controller));\n    } else {\n      startPromise.resolve();\n    }\n\n    // eslint-disable-next-line no-constructor-return\n    return makeTransferable(this);\n  }\n\n  /**\n   * @readonly\n   * @type {ReadableStream}\n   */\n  get readable() {\n    if (!isTransformStream(this))\n      throw new ERR_INVALID_THIS('TransformStream');\n    return this[kState].readable;\n  }\n\n  /**\n   * @readonly\n   * @type {WritableStream}\n   */\n  get writable() {\n    if (!isTransformStream(this))\n      throw new ERR_INVALID_THIS('TransformStream');\n    return this[kState].writable;\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      readable: this.readable\x2C\n      writable: this.writable\x2C\n      backpressure: this[kState].backpressure\x2C\n    });\n  }\n\n  [kTransfer]() {\n    if (!isTransformStream(this))\n      throw new ERR_INVALID_THIS('TransformStream');\n    const {\n      readable\x2C\n      writable\x2C\n    } = this[kState];\n    if (readable.locked) {\n      throw new DOMException(\n        'Cannot transfer a locked ReadableStream'\x2C\n        'DataCloneError');\n    }\n    if (writable.locked) {\n      throw new DOMException(\n        'Cannot transfer a locked WritableStream'\x2C\n        'DataCloneError');\n    }\n    return {\n      data: {\n        readable\x2C\n        writable\x2C\n      }\x2C\n      deserializeInfo:\n        'internal/webstreams/transformstream:TransferredTransformStream'\n    };\n  }\n\n  [kTransferList]() {\n    return [ this[kState].readable\x2C this[kState].writable ];\n  }\n\n  [kDeserialize]({ readable\x2C writable }) {\n    this[kState].readable = readable;\n    this[kState].writable = writable;\n  }\n}\n\nObjectDefineProperties(TransformStream.prototype\x2C {\n  readable: kEnumerableProperty\x2C\n  writable: kEnumerableProperty\x2C\n});\n\nfunction TransferredTransformStream() {\n  return makeTransferable(ReflectConstruct(\n    function() {\n      this[kType] = 'TransformStream';\n      this[kState] = {\n        readable: undefined\x2C\n        writable: undefined\x2C\n        backpressure: undefined\x2C\n        backpressureChange: {\n          promise: undefined\x2C\n          resolve: undefined\x2C\n          reject: undefined\x2C\n        }\x2C\n        controller: undefined\x2C\n      };\n    }\x2C\n    []\x2C TransformStream));\n}\nTransferredTransformStream.prototype[kDeserialize] = () => {};\n\nclass TransformStreamDefaultController {\n  [kType] = 'TransformStreamDefaultController';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  constructor() {\n    throw new ERR_ILLEGAL_CONSTRUCTOR();\n  }\n\n  /**\n   * @readonly\n   * @type {number}\n   */\n  get desiredSize() {\n    if (!isTransformStreamDefaultController(this))\n      throw new ERR_INVALID_THIS('TransformStreamDefaultController');\n    const {\n      stream\x2C\n    } = this[kState];\n    const {\n      readable\x2C\n    } = stream[kState];\n    const {\n      controller: readableController\x2C\n    } = readable[kState];\n    return readableStreamDefaultControllerGetDesiredSize(readableController);\n  }\n\n  /**\n   * @param {any} chunk\n   */\n  enqueue(chunk = undefined) {\n    if (!isTransformStreamDefaultController(this))\n      throw new ERR_INVALID_THIS('TransformStreamDefaultController');\n    transformStreamDefaultControllerEnqueue(this\x2C chunk);\n  }\n\n  /**\n   * @param {any} reason\n   */\n  error(reason = undefined) {\n    if (!isTransformStreamDefaultController(this))\n      throw new ERR_INVALID_THIS('TransformStreamDefaultController');\n    transformStreamDefaultControllerError(this\x2C reason);\n  }\n\n  terminate() {\n    if (!isTransformStreamDefaultController(this))\n      throw new ERR_INVALID_THIS('TransformStreamDefaultController');\n    transformStreamDefaultControllerTerminate(this);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      stream: this[kState].stream\x2C\n    });\n  }\n}\n\nObjectDefineProperties(TransformStreamDefaultController.prototype\x2C {\n  desiredSize: kEnumerableProperty\x2C\n  enqueue: kEnumerableProperty\x2C\n  error: kEnumerableProperty\x2C\n  terminate: kEnumerableProperty\x2C\n});\n\nfunction createTransformStreamDefaultController() {\n  return ReflectConstruct(\n    function() {\n      this[kType] = 'TransformStreamDefaultController';\n    }\x2C\n    []\x2C\n    TransformStreamDefaultController);\n}\n\nconst isTransformStream =\n  isBrandCheck('TransformStream');\nconst isTransformStreamDefaultController =\n  isBrandCheck('TransformStreamDefaultController');\n\nasync function defaultTransformAlgorithm(chunk\x2C controller) {\n  transformStreamDefaultControllerEnqueue(controller\x2C chunk);\n}\n\nfunction initializeTransformStream(\n  stream\x2C\n  startPromise\x2C\n  writableHighWaterMark\x2C\n  writableSizeAlgorithm\x2C\n  readableHighWaterMark\x2C\n  readableSizeAlgorithm) {\n\n  const writable = new WritableStream({\n    start() { return startPromise.promise; }\x2C\n    write(chunk) {\n      return transformStreamDefaultSinkWriteAlgorithm(stream\x2C chunk);\n    }\x2C\n    abort(reason) {\n      return transformStreamDefaultSinkAbortAlgorithm(stream\x2C reason);\n    }\x2C\n    close() {\n      return transformStreamDefaultSinkCloseAlgorithm(stream);\n    }\x2C\n  }\x2C {\n    highWaterMark: writableHighWaterMark\x2C\n    size: writableSizeAlgorithm\x2C\n  });\n\n  const readable = new ReadableStream({\n    start() { return startPromise.promise; }\x2C\n    pull() {\n      return transformStreamDefaultSourcePullAlgorithm(stream);\n    }\x2C\n    cancel(reason) {\n      transformStreamErrorWritableAndUnblockWrite(stream\x2C reason);\n      return PromiseResolve();\n    }\x2C\n  }\x2C {\n    highWaterMark: readableHighWaterMark\x2C\n    size: readableSizeAlgorithm\x2C\n  });\n\n  stream[kState] = {\n    readable\x2C\n    writable\x2C\n    controller: undefined\x2C\n    backpressure: undefined\x2C\n    backpressureChange: {\n      promise: undefined\x2C\n      resolve: undefined\x2C\n      reject: undefined\x2C\n    }\n  };\n\n  transformStreamSetBackpressure(stream\x2C true);\n}\n\nfunction transformStreamError(stream\x2C error) {\n  const {\n    readable\x2C\n  } = stream[kState];\n  const {\n    controller\x2C\n  } = readable[kState];\n  readableStreamDefaultControllerError(controller\x2C error);\n  transformStreamErrorWritableAndUnblockWrite(stream\x2C error);\n}\n\nfunction transformStreamErrorWritableAndUnblockWrite(stream\x2C error) {\n  const {\n    controller\x2C\n    writable\x2C\n  } = stream[kState];\n  transformStreamDefaultControllerClearAlgorithms(controller);\n  writableStreamDefaultControllerErrorIfNeeded(\n    writable[kState].controller\x2C\n    error);\n  if (stream[kState].backpressure)\n    transformStreamSetBackpressure(stream\x2C false);\n}\n\nfunction transformStreamSetBackpressure(stream\x2C backpressure) {\n  assert(stream[kState].backpressure !== backpressure);\n  if (stream[kState].backpressureChange.promise !== undefined)\n    stream[kState].backpressureChange.resolve?.();\n  stream[kState].backpressureChange = createDeferredPromise();\n  stream[kState].backpressure = backpressure;\n}\n\nfunction setupTransformStreamDefaultController(\n  stream\x2C\n  controller\x2C\n  transformAlgorithm\x2C\n  flushAlgorithm) {\n  assert(isTransformStream(stream));\n  assert(stream[kState].controller === undefined);\n  controller[kState] = {\n    stream\x2C\n    transformAlgorithm\x2C\n    flushAlgorithm\x2C\n  };\n  stream[kState].controller = controller;\n}\n\nfunction setupTransformStreamDefaultControllerFromTransformer(\n  stream\x2C\n  transformer) {\n  const controller = createTransformStreamDefaultController();\n  const transform = transformer?.transform || defaultTransformAlgorithm;\n  const flush = transformer?.flush || nonOpFlush;\n  const transformAlgorithm =\n    FunctionPrototypeBind(transform\x2C transformer);\n  const flushAlgorithm =\n    FunctionPrototypeBind(flush\x2C transformer);\n\n  setupTransformStreamDefaultController(\n    stream\x2C\n    controller\x2C\n    transformAlgorithm\x2C\n    flushAlgorithm);\n}\n\nfunction transformStreamDefaultControllerClearAlgorithms(controller) {\n  controller[kState].transformAlgorithm = undefined;\n  controller[kState].flushAlgorithm = undefined;\n}\n\nfunction transformStreamDefaultControllerEnqueue(controller\x2C chunk) {\n  const {\n    stream\x2C\n  } = controller[kState];\n  const {\n    readable\x2C\n  } = stream[kState];\n  const {\n    controller: readableController\x2C\n  } = readable[kState];\n  if (!readableStreamDefaultControllerCanCloseOrEnqueue(readableController))\n    throw new ERR_INVALID_STATE.TypeError('Unable to enqueue');\n  try {\n    readableStreamDefaultControllerEnqueue(readableController\x2C chunk);\n  } catch (error) {\n    transformStreamErrorWritableAndUnblockWrite(stream\x2C error);\n    throw readable[kState].storedError;\n  }\n  const backpressure =\n    readableStreamDefaultControllerHasBackpressure(readableController);\n  if (backpressure !== stream[kState].backpressure) {\n    assert(backpressure);\n    transformStreamSetBackpressure(stream\x2C true);\n  }\n}\n\nfunction transformStreamDefaultControllerError(controller\x2C error) {\n  transformStreamError(controller[kState].stream\x2C error);\n}\n\nfunction transformStreamDefaultControllerPerformTransform(controller\x2C chunk) {\n  const transformPromise =\n    ensureIsPromise(\n      controller[kState].transformAlgorithm\x2C\n      controller\x2C\n      chunk\x2C\n      controller);\n  return PromisePrototypeCatch(\n    transformPromise\x2C\n    (error) => {\n      transformStreamError(controller[kState].stream\x2C error);\n      throw error;\n    });\n}\n\nfunction transformStreamDefaultControllerTerminate(controller) {\n  const {\n    stream\x2C\n  } = controller[kState];\n  const {\n    readable\x2C\n  } = stream[kState];\n  assert(readable !== undefined);\n  const {\n    controller: readableController\x2C\n  } = readable[kState];\n  readableStreamDefaultControllerClose(readableController);\n  transformStreamErrorWritableAndUnblockWrite(\n    stream\x2C\n    new ERR_INVALID_STATE.TypeError('TransformStream has been terminated'));\n}\n\nfunction transformStreamDefaultSinkWriteAlgorithm(stream\x2C chunk) {\n  const {\n    writable\x2C\n    controller\x2C\n  } = stream[kState];\n  assert(writable[kState].state === 'writable');\n  if (stream[kState].backpressure) {\n    const backpressureChange = stream[kState].backpressureChange.promise;\n    return PromisePrototypeThen(\n      backpressureChange\x2C\n      () => {\n        const {\n          writable\x2C\n        } = stream[kState];\n        if (writable[kState].state === 'erroring')\n          throw writable[kState].storedError;\n        assert(writable[kState].state === 'writable');\n        return transformStreamDefaultControllerPerformTransform(\n          controller\x2C\n          chunk);\n      });\n  }\n  return transformStreamDefaultControllerPerformTransform(controller\x2C chunk);\n}\n\nasync function transformStreamDefaultSinkAbortAlgorithm(stream\x2C reason) {\n  transformStreamError(stream\x2C reason);\n}\n\nfunction transformStreamDefaultSinkCloseAlgorithm(stream) {\n  const {\n    readable\x2C\n    controller\x2C\n  } = stream[kState];\n\n  const flushPromise =\n    ensureIsPromise(\n      controller[kState].flushAlgorithm\x2C\n      controller\x2C\n      controller);\n  transformStreamDefaultControllerClearAlgorithms(controller);\n  return PromisePrototypeThen(\n    flushPromise\x2C\n    () => {\n      if (readable[kState].state === 'errored')\n        throw readable[kState].storedError;\n      readableStreamDefaultControllerClose(readable[kState].controller);\n    }\x2C\n    (error) => {\n      transformStreamError(stream\x2C error);\n      throw readable[kState].storedError;\n    });\n}\n\nfunction transformStreamDefaultSourcePullAlgorithm(stream) {\n  assert(stream[kState].backpressure);\n  assert(stream[kState].backpressureChange.promise !== undefined);\n  transformStreamSetBackpressure(stream\x2C false);\n  return stream[kState].backpressureChange.promise;\n}\n\nmodule.exports = {\n  TransformStream\x2C\n  TransformStreamDefaultController\x2C\n  TransferredTransformStream\x2C\n\n  // Exported Brand Checks\n  isTransformStream\x2C\n  isTransformStreamDefaultController\x2C\n};\n
code-source-info,0x36d16acbbd86,135,0,15555,C0O0C4O15555,,
code-creation,Function,10,206911,0x36d16acbd636,852, node:internal/webstreams/transformstream:1:1,0x36d16acbbcf0,~
code-source-info,0x36d16acbd636,135,0,15555,C0O0C214O25C220O50C226O75C231O101C237O126C243O150C249O168C255O188C260O354C263O354C268O354C273O248C279O277C285O304C291O327C297O411C300O411C305O393C311O512C314O512C319O452C325O498C330O617C333O617C338O549C343O565C348O578C353O595C359O830C362O830C367O672C373O689C379O708C385O732C391O756C396O772C402O786C408O795C414O805C419O1171C422O1171C427O878C433O896C439O948C445O988C451O1030C457O1070C463O1119C469O1297C472O1297C477O1229C483O1247C489O1360C492O1360C496O1360C515O2179C525O2215C545O4544C555O4753C565O5386C575O5474C609O2152C611O5597C614O5636C626O5661C632O5694C636O5597C641O6207C646O6217C650O6231C671O6288C681O6341C713O7599C747O6244C749O7733C752O7789C764O7817C770O7849C776O7879C782O7913C786O7733C791O8176C794O8176C798O8176C800O8254C803O8254C807O8254C809O15361C816O15382C822O15401C828O15437C834O15495C840O15516C846O15376C851O15554,,
code-creation,Function,10,206942,0x36d16acbdb66,16,<instance_members_initializer> node:internal/webstreams/transformstream:255:3,0x36d16acbc9d0,~
code-source-info,0x36d16acbdb66,135,6287,6331,C3O6297C15O6331,,
code-creation,Function,10,206952,0x36d16acbdbf6,16,<instance_members_initializer> node:internal/webstreams/transformstream:96:3,0x36d16acbc6b8,~
code-source-info,0x36d16acbdbf6,135,2178,2205,C3O2188C15O2205,,
tick,0x7efc33641626,206969,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0xea1d9f,207342,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x36d16acbd7a0,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
new,MemoryChunk,0x1fe027d00000,262144
code-creation,Eval,10,207423,0x36d16acbfa46,5, node:internal/webstreams/util:1:1,0x36d16acbf780,~
script-source,136,node:internal/webstreams/util,'use strict';\n\nconst {\n  ArrayBufferPrototype\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeShift\x2C\n  AsyncIteratorPrototype\x2C\n  FunctionPrototypeCall\x2C\n  MathMax\x2C\n  NumberIsNaN\x2C\n  ObjectCreate\x2C\n  PromisePrototypeThen\x2C\n  PromiseResolve\x2C\n  PromiseReject\x2C\n  ReflectGet\x2C\n  Symbol\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_OPERATION_FAILED\x2C\n  }\x2C\n} = require('internal/errors');\n\nconst {\n  copyArrayBuffer\x2C\n  detachArrayBuffer\n} = internalBinding('buffer');\n\nconst {\n  isPromise\x2C\n} = require('internal/util/types');\n\nconst {\n  inspect\x2C\n} = require('util');\n\nconst {\n  getPromiseDetails\x2C\n  kPending\x2C\n} = internalBinding('util');\n\nconst assert = require('internal/assert');\n\nconst kState = Symbol('kState');\nconst kType = Symbol('kType');\n\nconst AsyncIterator = ObjectCreate(AsyncIteratorPrototype\x2C {\n  next: {\n    configurable: true\x2C\n    enumerable: true\x2C\n    writable: true\x2C\n  }\x2C\n  return: {\n    configurable: true\x2C\n    enumerable: true\x2C\n    writable: true\x2C\n  }\x2C\n});\n\nfunction extractHighWaterMark(value\x2C defaultHWM) {\n  if (value === undefined) return defaultHWM;\n  value = +value;\n  if (typeof value !== 'number' ||\n      NumberIsNaN(value) ||\n      value < 0)\n    throw new ERR_INVALID_ARG_VALUE.RangeError('strategy.highWaterMark'\x2C value);\n  return value;\n}\n\nfunction extractSizeAlgorithm(size) {\n  if (size === undefined) return () => 1;\n  if (typeof size !== 'function')\n    throw new ERR_INVALID_ARG_TYPE('strategy.size'\x2C 'Function'\x2C size);\n  return size;\n}\n\nfunction customInspect(depth\x2C options\x2C name\x2C data) {\n  if (depth < 0)\n    return this;\n\n  const opts = {\n    ...options\x2C\n    depth: options.depth == null ? null : options.depth - 1\n  };\n\n  return `${name} ${inspect(data\x2C opts)}`;\n}\n\n// These are defensive to work around the possibility that\n// the buffer\x2C byteLength\x2C and byteOffset properties on\n// ArrayBuffer and ArrayBufferView's may have been tampered with.\n\nfunction ArrayBufferViewGetBuffer(view) {\n  return ReflectGet(view.constructor.prototype\x2C 'buffer'\x2C view);\n}\n\nfunction ArrayBufferViewGetByteLength(view) {\n  return ReflectGet(view.constructor.prototype\x2C 'byteLength'\x2C view);\n}\n\nfunction ArrayBufferViewGetByteOffset(view) {\n  return ReflectGet(view.constructor.prototype\x2C 'byteOffset'\x2C view);\n}\n\nfunction ArrayBufferGetByteLength(view) {\n  return ReflectGet(ArrayBufferPrototype\x2C 'byteLength'\x2C view);\n}\n\nfunction isBrandCheck(brand) {\n  return (value) => {\n    return value != null &&\n           value[kState] !== undefined &&\n           value[kType] === brand;\n  };\n}\n\nfunction transferArrayBuffer(buffer) {\n  const res = detachArrayBuffer(buffer);\n  if (res === undefined) {\n    throw new ERR_OPERATION_FAILED.TypeError(\n      'The ArrayBuffer could not be transferred');\n  }\n  return res;\n}\n\nfunction dequeueValue(controller) {\n  assert(controller[kState].queue !== undefined);\n  assert(controller[kState].queueTotalSize !== undefined);\n  assert(controller[kState].queue.length);\n  const {\n    value\x2C\n    size\x2C\n  } = ArrayPrototypeShift(controller[kState].queue);\n  controller[kState].queueTotalSize =\n    MathMax(0\x2C controller[kState].queueTotalSize - size);\n  return value;\n}\n\nfunction resetQueue(controller) {\n  assert(controller[kState].queue !== undefined);\n  assert(controller[kState].queueTotalSize !== undefined);\n  controller[kState].queue = [];\n  controller[kState].queueTotalSize = 0;\n}\n\nfunction peekQueueValue(controller) {\n  assert(controller[kState].queue !== undefined);\n  assert(controller[kState].queueTotalSize !== undefined);\n  assert(controller[kState].queue.length);\n  return controller[kState].queue[0].value;\n}\n\nfunction enqueueValueWithSize(controller\x2C value\x2C size) {\n  assert(controller[kState].queue !== undefined);\n  assert(controller[kState].queueTotalSize !== undefined);\n  size = +size;\n  if (typeof size !== 'number' ||\n      size < 0 ||\n      NumberIsNaN(size) ||\n      size === Infinity) {\n    throw new ERR_INVALID_ARG_VALUE.RangeError('size'\x2C size);\n  }\n  ArrayPrototypePush(controller[kState].queue\x2C { value\x2C size });\n  controller[kState].queueTotalSize += size;\n}\n\nfunction ensureIsPromise(fn\x2C thisArg\x2C ...args) {\n  try {\n    const value = FunctionPrototypeCall(fn\x2C thisArg\x2C ...args);\n    return isPromise(value) ? value : PromiseResolve(value);\n  } catch (error) {\n    return PromiseReject(error);\n  }\n}\n\nfunction isPromisePending(promise) {\n  if (promise === undefined) return false;\n  const details = getPromiseDetails(promise);\n  return details?.[0] === kPending;\n}\n\nfunction setPromiseHandled(promise) {\n  // Alternatively\x2C we could use the native API\n  // MarkAsHandled\x2C but this avoids the extra boundary cross\n  // and is hopefully faster at the cost of an extra Promise\n  // allocation.\n  PromisePrototypeThen(promise\x2C () => {}\x2C () => {});\n}\n\nasync function nonOpFlush() {}\n\nfunction nonOpStart() {}\n\nasync function nonOpPull() {}\n\nasync function nonOpCancel() {}\n\nasync function nonOpWrite() {}\n\nlet transfer;\nfunction lazyTransfer() {\n  if (transfer === undefined)\n    transfer = require('internal/webstreams/transfer');\n  return transfer;\n}\n\nconst kEnumerableProperty = ObjectCreate(null);\nkEnumerableProperty.enumerable = true;\n\nmodule.exports = {\n  ArrayBufferViewGetBuffer\x2C\n  ArrayBufferViewGetByteLength\x2C\n  ArrayBufferViewGetByteOffset\x2C\n  ArrayBufferGetByteLength\x2C\n  AsyncIterator\x2C\n  copyArrayBuffer\x2C\n  customInspect\x2C\n  dequeueValue\x2C\n  ensureIsPromise\x2C\n  enqueueValueWithSize\x2C\n  extractHighWaterMark\x2C\n  extractSizeAlgorithm\x2C\n  lazyTransfer\x2C\n  isBrandCheck\x2C\n  isPromisePending\x2C\n  peekQueueValue\x2C\n  resetQueue\x2C\n  setPromiseHandled\x2C\n  transferArrayBuffer\x2C\n  nonOpCancel\x2C\n  nonOpFlush\x2C\n  nonOpPull\x2C\n  nonOpStart\x2C\n  nonOpWrite\x2C\n  kType\x2C\n  kState\x2C\n  kEnumerableProperty\x2C\n};\n
code-source-info,0x36d16acbfa46,136,0,5698,C0O0C4O5698,,
code-creation,Function,10,207675,0x1fe027d01776,631, node:internal/webstreams/util:1:1,0x36d16acbf9b0,~
code-source-info,0x1fe027d01776,136,0,5698,C0O0C196O25C202O49C208O71C214O94C219O120C225O145C231O156C237O171C242O187C248O211C254O229C260O246C266O260C271O393C279O393C285O393C291O309C297O335C303O362C309O473C313O473C319O432C324O451C330O526C338O526C344O511C350O582C358O582C364O569C370O645C374O645C380O610C386O631C392O686C400O686C404O686C406O730C410O730C414O730C416O762C420O762C424O762C426O815C432O802C438O4924C439O4924C441O5096C444O5096C450O5116C451O5147C455O5156C463O5177C469O5205C475O5237C481O5269C487O5297C493O5314C499O5333C505O5350C511O5366C517O5385C523O5409C529O5433C535O5457C541O5473C547O5489C553O5509C559O5527C565O5541C571O5562C577O5585C583O5600C589O5614C595O5627C601O5641C607O5655C613O5664C619O5674C625O5171C630O5697,,
tick,0xd12712,208429,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x36d16acbd7dc,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0xf9071e,209521,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x36d16acbd7dc,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,209697,0x1fe027d055ce,5, node:internal/webstreams/readablestream:1:1,0x1fe027d04808,~
script-source,137,node:internal/webstreams/readablestream,'use strict';\n\n/* eslint-disable no-use-before-define */\n\nconst {\n  ArrayBuffer\x2C\n  ArrayBufferPrototypeSlice\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeShift\x2C\n  DataViewCtor\x2C\n  FunctionPrototypeBind\x2C\n  FunctionPrototypeCall\x2C\n  MathMin\x2C\n  NumberIsInteger\x2C\n  ObjectCreate\x2C\n  ObjectDefineProperties\x2C\n  ObjectSetPrototypeOf\x2C\n  Promise\x2C\n  PromisePrototypeCatch\x2C\n  PromisePrototypeThen\x2C\n  PromiseResolve\x2C\n  PromiseReject\x2C\n  PromiseAll\x2C\n  ReflectConstruct\x2C\n  Symbol\x2C\n  SymbolAsyncIterator\x2C\n  SymbolToStringTag\x2C\n  Uint8Array\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_ILLEGAL_CONSTRUCTOR\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_STATE\x2C\n    ERR_INVALID_THIS\x2C\n  }\x2C\n} = require('internal/errors');\n\nconst {\n  DOMException\x2C\n} = internalBinding('messaging');\n\nconst {\n  isArrayBufferView\x2C\n  isDataView\x2C\n} = require('internal/util/types');\n\nconst {\n  createDeferredPromise\x2C\n  customInspectSymbol: kInspect\x2C\n} = require('internal/util');\n\nconst {\n  serialize\x2C\n  deserialize\x2C\n} = require('v8');\n\nconst {\n  validateObject\x2C\n} = require('internal/validators');\n\nconst {\n  kAborted\x2C\n} = require('internal/abort_controller');\n\nconst {\n  MessageChannel\x2C\n} = require('internal/worker/io');\n\nconst {\n  kDeserialize\x2C\n  kTransfer\x2C\n  kTransferList\x2C\n  makeTransferable\x2C\n} = require('internal/worker/js_transferable');\n\nconst {\n  queueMicrotask\x2C\n} = require('internal/process/task_queues');\n\nconst {\n  ArrayBufferViewGetBuffer\x2C\n  ArrayBufferViewGetByteLength\x2C\n  ArrayBufferViewGetByteOffset\x2C\n  ArrayBufferGetByteLength\x2C\n  AsyncIterator\x2C\n  copyArrayBuffer\x2C\n  customInspect\x2C\n  dequeueValue\x2C\n  ensureIsPromise\x2C\n  enqueueValueWithSize\x2C\n  extractHighWaterMark\x2C\n  extractSizeAlgorithm\x2C\n  lazyTransfer\x2C\n  isBrandCheck\x2C\n  resetQueue\x2C\n  setPromiseHandled\x2C\n  transferArrayBuffer\x2C\n  nonOpCancel\x2C\n  nonOpPull\x2C\n  nonOpStart\x2C\n  kType\x2C\n  kState\x2C\n  kEnumerableProperty\x2C\n} = require('internal/webstreams/util');\n\nconst {\n  WritableStreamDefaultWriter\x2C\n\n  isWritableStream\x2C\n  isWritableStreamLocked\x2C\n  isWritableStreamDefaultController\x2C\n  isWritableStreamDefaultWriter\x2C\n\n  writableStreamAbort\x2C\n  writableStreamCloseQueuedOrInFlight\x2C\n  writableStreamDefaultWriterCloseWithErrorPropagation\x2C\n  writableStreamDefaultWriterRelease\x2C\n  writableStreamDefaultWriterWrite\x2C\n} = require('internal/webstreams/writablestream');\n\nconst assert = require('internal/assert');\n\nconst kCancel = Symbol('kCancel');\nconst kClose = Symbol('kClose');\nconst kChunk = Symbol('kChunk');\nconst kError = Symbol('kError');\nconst kPull = Symbol('kPull');\n\n/**\n * @typedef {import('../abort_controller').AbortSignal} AbortSignal\n * @typedef {import('./queuingstrategies').QueuingStrategy} QueuingStrategy\n * @typedef {import('./queuingstrategies').QueuingStrategySize\n * } QueuingStrategySize\n * @typedef {import('./writablestream').WritableStream} WritableStream\n *\n * @typedef {ReadableStreamDefaultController | ReadableByteStreamController\n * } ReadableStreamController\n *\n * @typedef {ReadableStreamDefaultReader | ReadableStreamBYOBReader\n * } ReadableStreamReader\n *\n * @callback UnderlyingSourceStartCallback\n * @param {ReadableStreamController} controller\n * @returns { any | Promise<void> }\n *\n * @callback UnderlyingSourcePullCallback\n * @param {ReadableStreamController} controller\n * @returns { Promise<void> }\n *\n * @callback UnderlyingSourceCancelCallback\n * @param {any} reason\n * @returns { Promise<void> }\n *\n * @typedef {{\n *   readable: ReadableStream\x2C\n *   writable: WritableStream\x2C\n * }} ReadableWritablePair\n *\n * @typedef {{\n *   preventClose? : boolean\x2C\n *   preventAbort? : boolean\x2C\n *   preventCancel? : boolean\x2C\n *   signal? : AbortSignal\x2C\n * }} StreamPipeOptions\n *\n * @typedef {{\n *   start? : UnderlyingSourceStartCallback\x2C\n *   pull? : UnderlyingSourcePullCallback\x2C\n *   cancel? : UnderlyingSourceCancelCallback\x2C\n *   type? : "bytes"\x2C\n *   autoAllocateChunkSize? : number\n * }} UnderlyingSource\n *\n */\n\nclass ReadableStream {\n  [kType] = 'ReadableStream';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  /**\n   * @param {UnderlyingSource} [source]\n   * @param {QueuingStrategy} [strategy]\n   */\n  constructor(source = {}\x2C strategy = {}) {\n    if (source === null)\n      throw new ERR_INVALID_ARG_VALUE('source'\x2C 'Object'\x2C source);\n    this[kState] = {\n      disturbed: false\x2C\n      state: 'readable'\x2C\n      storedError: undefined\x2C\n      stream: undefined\x2C\n      transfer: {\n        writable: undefined\x2C\n        port1: undefined\x2C\n        port2: undefined\x2C\n        promise: undefined\x2C\n      }\n    };\n    // The spec requires handling of the strategy first\n    // here. Specifically\x2C if getting the size and\n    // highWaterMark from the strategy fail\x2C that has\n    // to trigger a throw before getting the details\n    // from the source. So be sure to keep these in\n    // this order.\n    const size = strategy?.size;\n    const highWaterMark = strategy?.highWaterMark;\n    const type = source.type;\n\n    if (`${type}` === 'bytes') {\n      if (size !== undefined)\n        throw new ERR_INVALID_ARG_VALUE.RangeError('strategy.size'\x2C size);\n      setupReadableByteStreamControllerFromSource(\n        this\x2C\n        source\x2C\n        extractHighWaterMark(highWaterMark\x2C 0));\n      return;\n    }\n\n    if (type !== undefined)\n      throw new ERR_INVALID_ARG_VALUE('source.type'\x2C type);\n    setupReadableStreamDefaultControllerFromSource(\n      this\x2C\n      source\x2C\n      extractHighWaterMark(highWaterMark\x2C 1)\x2C\n      extractSizeAlgorithm(size));\n\n    // eslint-disable-next-line no-constructor-return\n    return makeTransferable(this);\n  }\n\n  /**\n   * @readonly\n   * @type {boolean}\n   */\n  get locked() {\n    if (!isReadableStream(this))\n      throw new ERR_INVALID_THIS('ReadableStream');\n    return isReadableStreamLocked(this);\n  }\n\n  /**\n   * @param {any} [reason]\n   * @returns { Promise<void> }\n   */\n  cancel(reason = undefined) {\n    if (!isReadableStream(this))\n      return PromiseReject(new ERR_INVALID_THIS('ReadableStream'));\n    if (isReadableStreamLocked(this)) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError('ReadableStream is locked'));\n    }\n    return readableStreamCancel(this\x2C reason);\n  }\n\n  /**\n   * @param {{\n   *   mode? : "byob"\n   * }} [options]\n   * @returns {ReadableStreamReader}\n   */\n  getReader(options = {}) {\n    if (!isReadableStream(this))\n      throw new ERR_INVALID_THIS('ReadableStream');\n    validateObject(options\x2C 'options'\x2C { nullable: true\x2C allowFunction: true });\n    const mode = options?.mode;\n\n    if (mode === undefined)\n      return new ReadableStreamDefaultReader(this);\n\n    if (`${mode}` !== 'byob')\n      throw new ERR_INVALID_ARG_VALUE('options.mode'\x2C mode);\n    return new ReadableStreamBYOBReader(this);\n  }\n\n  /**\n   * @param {ReadableWritablePair} transform\n   * @param {StreamPipeOptions} [options]\n   * @returns {ReadableStream}\n   */\n  pipeThrough(transform\x2C options = {}) {\n    if (!isReadableStream(this))\n      throw new ERR_INVALID_THIS('ReadableStream');\n    const readable = transform?.readable;\n    if (!isReadableStream(readable)) {\n      throw new ERR_INVALID_ARG_TYPE(\n        'transform.readable'\x2C\n        'ReadableStream'\x2C\n        readable);\n    }\n    const writable = transform?.writable;\n    if (!isWritableStream(writable)) {\n      throw new ERR_INVALID_ARG_TYPE(\n        'transform.writable'\x2C\n        'WritableStream'\x2C\n        writable);\n    }\n\n    // The web platform tests require that these be handled one at a\n    // time and in a specific order. options can be null or undefined.\n    const preventAbort = options?.preventAbort;\n    const preventCancel = options?.preventCancel;\n    const preventClose = options?.preventClose;\n    const signal = options?.signal;\n\n    if (signal !== undefined && signal?.[kAborted] === undefined)\n      throw new ERR_INVALID_ARG_TYPE('options.signal'\x2C 'AbortSignal'\x2C signal);\n\n    if (isReadableStreamLocked(this))\n      throw new ERR_INVALID_STATE.TypeError('The ReadableStream is locked');\n    if (isWritableStreamLocked(writable))\n      throw new ERR_INVALID_STATE.TypeError('The WritableStream is locked');\n\n    const promise = readableStreamPipeTo(\n      this\x2C\n      writable\x2C\n      !!preventClose\x2C\n      !!preventAbort\x2C\n      !!preventCancel\x2C\n      signal);\n    setPromiseHandled(promise);\n\n    return readable;\n  }\n\n  /**\n   * @param {WritableStream} destination\n   * @param {StreamPipeOptions} [options]\n   * @returns {Promise<void>}\n   */\n  pipeTo(destination\x2C options = {}) {\n    try {\n      if (!isReadableStream(this))\n        throw new ERR_INVALID_THIS('ReadableStream');\n      if (!isWritableStream(destination)) {\n        throw new ERR_INVALID_ARG_TYPE(\n          'transform.writable'\x2C\n          'WritableStream'\x2C\n          destination);\n      }\n\n      const preventAbort = options?.preventAbort;\n      const preventCancel = options?.preventCancel;\n      const preventClose = options?.preventClose;\n      const signal = options?.signal;\n\n      if (signal !== undefined && signal?.[kAborted] === undefined)\n        throw new ERR_INVALID_ARG_TYPE('options.signal'\x2C 'AbortSignal'\x2C signal);\n\n      if (isReadableStreamLocked(this))\n        throw new ERR_INVALID_STATE.TypeError('The ReadableStream is locked');\n      if (isWritableStreamLocked(destination))\n        throw new ERR_INVALID_STATE.TypeError('The WritableStream is locked');\n\n      return readableStreamPipeTo(\n        this\x2C\n        destination\x2C\n        !!preventClose\x2C\n        !!preventAbort\x2C\n        !!preventCancel\x2C\n        signal);\n    } catch (error) {\n      return PromiseReject(error);\n    }\n  }\n\n  /**\n   * @returns {ReadableStream[]}\n   */\n  tee() {\n    if (!isReadableStream(this))\n      throw new ERR_INVALID_THIS('ReadableStream');\n    return readableStreamTee(this\x2C false);\n  }\n\n  /**\n   * @param {{\n   *   preventCancel? : boolean\x2C\n   * }} [options]\n   * @returns {AsyncIterable}\n   */\n  values(options = {}) {\n    if (!isReadableStream(this))\n      throw new ERR_INVALID_THIS('ReadableStream');\n    validateObject(options\x2C 'options');\n    const {\n      preventCancel = false\x2C\n    } = options;\n\n    const reader = new ReadableStreamDefaultReader(this);\n    let done = false;\n    let started = false;\n    let current;\n\n    // The nextSteps function is not an async function in order\n    // to make it more efficient. Because nextSteps explicitly\n    // creates a Promise and returns it in the common case\x2C\n    // making it an async function just causes two additional\n    // unnecessary Promise allocations to occur\x2C which just add\n    // cost.\n    function nextSteps() {\n      if (done)\n        return PromiseResolve({ done: true\x2C value: undefined });\n\n      if (reader[kState].stream === undefined) {\n        return PromiseReject(\n          new ERR_INVALID_STATE.TypeError(\n            'The reader is not bound to a ReadableStream'));\n      }\n      const promise = createDeferredPromise();\n\n      readableStreamDefaultReaderRead(reader\x2C {\n        [kChunk](chunk) {\n          current = undefined;\n          promise.resolve({ value: chunk\x2C done: false });\n        }\x2C\n        [kClose]() {\n          current = undefined;\n          done = true;\n          readableStreamReaderGenericRelease(reader);\n          promise.resolve({ done: true\x2C value: undefined });\n        }\x2C\n        [kError](error) {\n          current = undefined;\n          done = true;\n          readableStreamReaderGenericRelease(reader);\n          promise.reject(error);\n        }\n      });\n      return promise.promise;\n    }\n\n    async function returnSteps(value) {\n      if (done)\n        return { done: true\x2C value };\n      done = true;\n\n      if (reader[kState].stream === undefined) {\n        throw new ERR_INVALID_STATE.TypeError(\n          'The reader is not bound to a ReadableStream');\n      }\n      assert(!reader[kState].readRequests.length);\n      if (!preventCancel) {\n        const result = readableStreamReaderGenericCancel(reader\x2C value);\n        readableStreamReaderGenericRelease(reader);\n        await result;\n        return { done: true\x2C value };\n      }\n\n      readableStreamReaderGenericRelease(reader);\n      return { done: true\x2C value };\n    }\n\n    // TODO(@jasnell): Explore whether an async generator\n    // can be used here instead of a custom iterator object.\n    return ObjectSetPrototypeOf({\n      // Changing either of these functions (next or return)\n      // to async functions causes a failure in the streams\n      // Web Platform Tests that check for use of a modified\n      // Promise.prototype.then. Since the await keyword\n      // uses Promise.prototype.then\x2C it is open to prototype\n      // pollution\x2C which causes the test to fail. The other\n      // await uses here do not trigger that failure because\n      // the test that fails does not trigger those code paths.\n      next() {\n        // If this is the first read\x2C delay by one microtask\n        // to ensure that the controller has had an opportunity\n        // to properly start and perform the initial pull.\n        // TODO(@jasnell): The spec doesn't call this out so\n        // need to investigate if it's a bug in our impl or\n        // the spec.\n        if (!started) {\n          current = PromiseResolve();\n          started = true;\n        }\n        current = current !== undefined ?\n          PromisePrototypeThen(current\x2C nextSteps\x2C nextSteps) :\n          nextSteps();\n        return current;\n      }\x2C\n\n      return(error) {\n        return current ?\n          PromisePrototypeThen(\n            current\x2C\n            () => returnSteps(error)\x2C\n            () => returnSteps(error)) :\n          returnSteps(error);\n      }\x2C\n\n      [SymbolAsyncIterator]() { return this; }\n    }\x2C AsyncIterator);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      locked: this.locked\x2C\n      state: this[kState].state\x2C\n    });\n  }\n\n  [kTransfer]() {\n    if (!isReadableStream(this))\n      throw new ERR_INVALID_THIS('ReadableStream');\n    if (this.locked) {\n      this[kState].transfer.port1?.close();\n      this[kState].transfer.port1 = undefined;\n      this[kState].transfer.port2 = undefined;\n      throw new DOMException(\n        'Cannot transfer a locked ReadableStream'\x2C\n        'DataCloneError');\n    }\n\n    const {\n      writable\x2C\n      promise\x2C\n    } = lazyTransfer().newCrossRealmWritableSink(\n      this\x2C\n      this[kState].transfer.port1);\n\n    this[kState].transfer.writable = writable;\n    this[kState].transfer.promise = promise;\n\n    return {\n      data: { port: this[kState].transfer.port2 }\x2C\n      deserializeInfo:\n        'internal/webstreams/readablestream:TransferredReadableStream'\n    };\n  }\n\n  [kTransferList]() {\n    const { port1\x2C port2 } = new MessageChannel();\n    this[kState].transfer.port1 = port1;\n    this[kState].transfer.port2 = port2;\n    return [ port2 ];\n  }\n\n  [kDeserialize]({ port }) {\n    const transfer = lazyTransfer();\n    setupReadableStreamDefaultControllerFromSource(\n      this\x2C\n      new transfer.CrossRealmTransformReadableSource(port)\x2C\n      0\x2C () => 1);\n  }\n}\n\nObjectDefineProperties(ReadableStream.prototype\x2C {\n  [SymbolAsyncIterator]: {\n    configurable: true\x2C\n    enumerable: false\x2C\n    writable: true\x2C\n    value: ReadableStream.prototype.values\x2C\n  }\x2C\n  locked: kEnumerableProperty\x2C\n  cancel: kEnumerableProperty\x2C\n  getReader: kEnumerableProperty\x2C\n  pipeThrough: kEnumerableProperty\x2C\n  pipeTo: kEnumerableProperty\x2C\n  tee: kEnumerableProperty\x2C\n});\n\nfunction TransferredReadableStream() {\n  return makeTransferable(ReflectConstruct(\n    function() {\n      this[kType] = 'ReadableStream';\n      this[kState] = {\n        disturbed: false\x2C\n        state: 'readable'\x2C\n        storedError: undefined\x2C\n        stream: undefined\x2C\n        transfer: {\n          writable: undefined\x2C\n          port: undefined\x2C\n          promise: undefined\x2C\n        }\n      };\n    }\x2C\n    []\x2C ReadableStream));\n}\nTransferredReadableStream.prototype[kDeserialize] = () => {};\n\nclass ReadableStreamBYOBRequest {\n  [kType] = 'ReadableStreamBYOBRequest';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  constructor() {\n    throw new ERR_ILLEGAL_CONSTRUCTOR();\n  }\n\n  /**\n   * @readonly\n   * @type {ArrayBufferView}\n   */\n  get view() {\n    if (!isReadableStreamBYOBRequest(this))\n      throw new ERR_INVALID_THIS('ReadableStreamBYOBRequest');\n    return this[kState].view;\n  }\n\n  /**\n   * @param {number} bytesWritten\n   */\n  respond(bytesWritten) {\n    if (!isReadableStreamBYOBRequest(this))\n      throw new ERR_INVALID_THIS('ReadableStreamBYOBRequest');\n    const {\n      view\x2C\n      controller\x2C\n    } = this[kState];\n    if (controller === undefined) {\n      throw new ERR_INVALID_STATE.TypeError(\n        'This BYOB request has been invalidated');\n    }\n\n    const viewByteLength = ArrayBufferViewGetByteLength(view);\n    const viewBuffer = ArrayBufferViewGetBuffer(view);\n    const viewBufferByteLength = ArrayBufferGetByteLength(viewBuffer);\n\n    if (viewByteLength === 0 || viewBufferByteLength === 0) {\n      throw new ERR_INVALID_STATE.TypeError(\n        'View ArrayBuffer is zero-length or detached');\n    }\n\n    readableByteStreamControllerRespond(controller\x2C bytesWritten);\n  }\n\n  /**\n   * @param {ArrayBufferView} view\n   */\n  respondWithNewView(view) {\n    if (!isReadableStreamBYOBRequest(this))\n      throw new ERR_INVALID_THIS('ReadableStreamBYOBRequest');\n    const {\n      controller\x2C\n    } = this[kState];\n\n    if (controller === undefined) {\n      throw new ERR_INVALID_STATE.TypeError(\n        'This BYOB request has been invalidated');\n    }\n\n    readableByteStreamControllerRespondWithNewView(controller\x2C view);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      view: this.view\x2C\n      controller: this[kState].controller\x2C\n    });\n  }\n}\n\nObjectDefineProperties(ReadableStreamBYOBRequest.prototype\x2C {\n  view: kEnumerableProperty\x2C\n  respond: kEnumerableProperty\x2C\n  respondWithNewView: kEnumerableProperty\x2C\n});\n\nfunction createReadableStreamBYOBRequest(controller\x2C view) {\n  return ReflectConstruct(\n    function() {\n      this[kType] = 'ReadableStreamBYOBRequest';\n      this[kState] = {\n        controller\x2C\n        view\x2C\n      };\n    }\x2C\n    []\x2C\n    ReadableStreamBYOBRequest\n  );\n}\n\nclass DefaultReadRequest {\n  constructor() {\n    this[kState] = createDeferredPromise();\n  }\n\n  [kChunk](value) {\n    this[kState].resolve?.({ value\x2C done: false });\n  }\n\n  [kClose]() {\n    this[kState].resolve?.({ value: undefined\x2C done: true });\n  }\n\n  [kError](error) {\n    this[kState].reject?.(error);\n  }\n\n  get promise() { return this[kState].promise; }\n}\n\nclass ReadIntoRequest {\n  constructor() {\n    this[kState] = createDeferredPromise();\n  }\n\n  [kChunk](value) {\n    this[kState].resolve?.({ value\x2C done: false });\n  }\n\n  [kClose](value) {\n    this[kState].resolve?.({ value\x2C done: true });\n  }\n\n  [kError](error) {\n    this[kState].reject?.(error);\n  }\n\n  get promise() { return this[kState].promise; }\n}\n\nclass ReadableStreamDefaultReader {\n  [kType] = 'ReadableStreamDefaultReader';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  /**\n   * @param {ReadableStream} stream\n   */\n  constructor(stream) {\n    if (!isReadableStream(stream))\n      throw new ERR_INVALID_ARG_TYPE('stream'\x2C 'ReadableStream'\x2C stream);\n    this[kState] = {\n      readRequests: []\x2C\n      stream: undefined\x2C\n      close: {\n        promise: undefined\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      }\x2C\n    };\n    setupReadableStreamDefaultReader(this\x2C stream);\n  }\n\n  /**\n   * @returns {Promise<{\n   *   value : any\x2C\n   *   done : boolean\n   * }>}\n   */\n  read() {\n    if (!isReadableStreamDefaultReader(this))\n      return PromiseReject(new ERR_INVALID_THIS('ReadableStreamDefaultReader'));\n    if (this[kState].stream === undefined) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError(\n          'The reader is not attached to a stream'));\n    }\n    const readRequest = new DefaultReadRequest();\n    readableStreamDefaultReaderRead(this\x2C readRequest);\n    return readRequest.promise;\n  }\n\n  releaseLock() {\n    if (!isReadableStreamDefaultReader(this))\n      throw new ERR_INVALID_THIS('ReadableStreamDefaultReader');\n    if (this[kState].stream === undefined)\n      return;\n    if (this[kState].readRequests.length) {\n      throw new ERR_INVALID_STATE.TypeError(\n        'Cannot release with pending read requests');\n    }\n    readableStreamReaderGenericRelease(this);\n  }\n\n  /**\n   * @readonly\n   * @type {Promise<void>}\n   */\n  get closed() {\n    if (!isReadableStreamDefaultReader(this))\n      return PromiseReject(new ERR_INVALID_THIS('ReadableStreamDefaultReader'));\n    return this[kState].close.promise;\n  }\n\n  /**\n   * @param {any} reason\n   * @returns {Promise<void>}\n   */\n  cancel(reason = undefined) {\n    if (!isReadableStreamDefaultReader(this))\n      return PromiseReject(new ERR_INVALID_THIS('ReadableStreamDefaultReader'));\n    if (this[kState].stream === undefined) {\n      return PromiseReject(new ERR_INVALID_STATE.TypeError(\n        'The reader is not attached to a stream'));\n    }\n    return readableStreamReaderGenericCancel(this\x2C reason);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      stream: this[kState].stream\x2C\n      readRequests: this[kState].readRequests.length\x2C\n      close: this[kState].close.promise\x2C\n    });\n  }\n}\n\nObjectDefineProperties(ReadableStreamDefaultReader.prototype\x2C {\n  closed: kEnumerableProperty\x2C\n  read: kEnumerableProperty\x2C\n  releaseLock: kEnumerableProperty\x2C\n  cancel: kEnumerableProperty\x2C\n});\n\nclass ReadableStreamBYOBReader {\n  [kType] = 'ReadableStreamBYOBReader';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  /**\n   * @param {ReadableStream} stream\n   */\n  constructor(stream) {\n    if (!isReadableStream(stream))\n      throw new ERR_INVALID_ARG_TYPE('stream'\x2C 'ReadableStream'\x2C stream);\n    this[kState] = {\n      stream: undefined\x2C\n      requestIntoRequests: []\x2C\n      close: {\n        promise: undefined\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      }\x2C\n    };\n    setupReadableStreamBYOBReader(this\x2C stream);\n  }\n\n  /**\n   * @param {ArrayBufferView} view\n   * @returns {Promise<{\n   *   view : ArrayBufferView\x2C\n   *   done : boolean\x2C\n   * }>}\n   */\n  read(view) {\n    if (!isReadableStreamBYOBReader(this))\n      return PromiseReject(new ERR_INVALID_THIS('ReadableStreamBYOBReader'));\n    if (!isArrayBufferView(view)) {\n      return PromiseReject(\n        new ERR_INVALID_ARG_TYPE(\n          'view'\x2C\n          [\n            'Buffer'\x2C\n            'TypedArray'\x2C\n            'DataView'\x2C\n          ]\x2C\n          view));\n    }\n    const viewByteLength = ArrayBufferViewGetByteLength(view);\n    const viewBuffer = ArrayBufferViewGetBuffer(view);\n    const viewBufferByteLength = ArrayBufferGetByteLength(viewBuffer);\n\n    if (viewByteLength === 0 || viewBufferByteLength === 0) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError(\n          'View ArrayBuffer is zero-length or detached'));\n    }\n    // Supposed to assert here that the view's buffer is not\n    // detached\x2C but there's no API available to use to check that.\n    if (this[kState].stream === undefined) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError(\n          'The reader is not attached to a stream'));\n    }\n    const readIntoRequest = new ReadIntoRequest();\n    readableStreamBYOBReaderRead(this\x2C view\x2C readIntoRequest);\n    return readIntoRequest.promise;\n  }\n\n  releaseLock() {\n    if (!isReadableStreamBYOBReader(this))\n      throw new ERR_INVALID_THIS('ReadableStreamBYOBReader');\n    if (this[kState].stream === undefined)\n      return;\n    if (this[kState].readIntoRequests.length) {\n      throw new ERR_INVALID_STATE.TypeError(\n        'Cannot release with pending read requests');\n    }\n    readableStreamReaderGenericRelease(this);\n  }\n\n  /**\n   * @readonly\n   * @type {Promise<void>}\n   */\n  get closed() {\n    if (!isReadableStreamBYOBReader(this))\n      return PromiseReject(new ERR_INVALID_THIS('ReadableStreamBYOBReader'));\n    return this[kState].close.promise;\n  }\n\n  /**\n   * @param {any} reason\n   * @returns {Promise<void>}\n   */\n  cancel(reason = undefined) {\n    if (!isReadableStreamBYOBReader(this))\n      return PromiseReject(new ERR_INVALID_THIS('ReadableStreamBYOBReader'));\n    if (this[kState].stream === undefined) {\n      return PromiseReject(new ERR_INVALID_STATE.TypeError(\n        'The reader is not attached to a stream'));\n    }\n    return readableStreamReaderGenericCancel(this\x2C reason);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      stream: this[kState].stream\x2C\n      requestIntoRequests: this[kState].requestIntoRequests.length\x2C\n      close: this[kState].close.promise\x2C\n    });\n  }\n}\n\nObjectDefineProperties(ReadableStreamBYOBReader.prototype\x2C {\n  closed: kEnumerableProperty\x2C\n  read: kEnumerableProperty\x2C\n  releaseLock: kEnumerableProperty\x2C\n  cancel: kEnumerableProperty\x2C\n});\n\nclass ReadableStreamDefaultController {\n  [kType] = 'ReadableStreamDefaultController';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  constructor() {\n    throw new ERR_ILLEGAL_CONSTRUCTOR();\n  }\n\n  /**\n   * @readonly\n   * @type {number}\n   */\n  get desiredSize() {\n    return readableStreamDefaultControllerGetDesiredSize(this);\n  }\n\n  close() {\n    if (!readableStreamDefaultControllerCanCloseOrEnqueue(this))\n      throw new ERR_INVALID_STATE.TypeError('Controller is already closed');\n    readableStreamDefaultControllerClose(this);\n  }\n\n  /**\n   * @param {any} chunk\n   */\n  enqueue(chunk = undefined) {\n    if (!readableStreamDefaultControllerCanCloseOrEnqueue(this))\n      throw new ERR_INVALID_STATE.TypeError('Controller is already closed');\n    readableStreamDefaultControllerEnqueue(this\x2C chunk);\n  }\n\n  /**\n   * @param {any} error\n   */\n  error(error = undefined) {\n    readableStreamDefaultControllerError(this\x2C error);\n  }\n\n  [kCancel](reason) {\n    return readableStreamDefaultControllerCancelSteps(this\x2C reason);\n  }\n\n  [kPull](readRequest) {\n    readableStreamDefaultControllerPullSteps(this\x2C readRequest);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C { });\n  }\n}\n\nObjectDefineProperties(ReadableStreamDefaultController.prototype\x2C {\n  desiredSize: kEnumerableProperty\x2C\n  close: kEnumerableProperty\x2C\n  enqueue: kEnumerableProperty\x2C\n  error: kEnumerableProperty\x2C\n});\n\nfunction createReadableStreamDefaultController() {\n  return ReflectConstruct(\n    function() {\n      this[kType] = 'ReadableStreamDefaultController';\n      this[kState] = {};\n    }\x2C\n    []\x2C\n    ReadableStreamDefaultController\x2C\n  );\n}\n\nclass ReadableByteStreamController {\n  [kType] = 'ReadableByteStreamController';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  constructor() {\n    throw new ERR_ILLEGAL_CONSTRUCTOR();\n  }\n\n  /**\n   * @readonly\n   * @type {ReadableStreamBYOBRequest}\n   */\n  get byobRequest() {\n    if (!isReadableByteStreamController(this))\n      throw new ERR_INVALID_THIS('ReadableByteStreamController');\n    if (this[kState].byobRequest === null &&\n        this[kState].pendingPullIntos.length) {\n      const {\n        buffer\x2C\n        byteOffset\x2C\n        bytesFilled\x2C\n        byteLength\x2C\n      } = this[kState].pendingPullIntos[0];\n      const view =\n        new Uint8Array(\n          buffer\x2C\n          byteOffset + bytesFilled\x2C\n          byteLength - bytesFilled);\n      this[kState].byobRequest = createReadableStreamBYOBRequest(this\x2C view);\n    }\n    return this[kState].byobRequest;\n  }\n\n  /**\n   * @readonly\n   * @type {number}\n   */\n  get desiredSize() {\n    if (!isReadableByteStreamController(this))\n      throw new ERR_INVALID_THIS('ReadableByteStreamController');\n    return readableByteStreamControllerGetDesiredSize(this);\n  }\n\n  close() {\n    if (!isReadableByteStreamController(this))\n      throw new ERR_INVALID_THIS('ReadableByteStreamController');\n    if (this[kState].closeRequested)\n      throw new ERR_INVALID_STATE.TypeError('Controller is already closed');\n    if (this[kState].stream[kState].state !== 'readable')\n      throw new ERR_INVALID_STATE.TypeError('ReadableStream is already closed');\n    readableByteStreamControllerClose(this);\n  }\n\n  /**\n   * @param {ArrayBufferView} chunk\n   */\n  enqueue(chunk) {\n    if (!isReadableByteStreamController(this))\n      throw new ERR_INVALID_THIS('ReadableByteStreamController');\n    if (!isArrayBufferView(chunk)) {\n      throw new ERR_INVALID_ARG_TYPE(\n        'chunk'\x2C\n        [\n          'Buffer'\x2C\n          'TypedArray'\x2C\n          'DataView'\x2C\n        ]\x2C\n        chunk);\n    }\n    const chunkByteLength = ArrayBufferViewGetByteLength(chunk);\n    const chunkByteOffset = ArrayBufferViewGetByteOffset(chunk);\n    const chunkBuffer = ArrayBufferViewGetBuffer(chunk);\n    const chunkBufferByteLength = ArrayBufferGetByteLength(chunkBuffer);\n    if (chunkByteLength === 0 || chunkBufferByteLength === 0) {\n      throw new ERR_INVALID_STATE.TypeError(\n        'chunk ArrayBuffer is zero-length or detached');\n    }\n    if (this[kState].closeRequested)\n      throw new ERR_INVALID_STATE.TypeError('Controller is already closed');\n    if (this[kState].stream[kState].state !== 'readable')\n      throw new ERR_INVALID_STATE.TypeError('ReadableStream is already closed');\n    readableByteStreamControllerEnqueue(\n      this\x2C\n      chunkBuffer\x2C\n      chunkByteLength\x2C\n      chunkByteOffset);\n  }\n\n  /**\n   * @param {any} error\n   */\n  error(error = undefined) {\n    if (!isReadableByteStreamController(this))\n      throw new ERR_INVALID_THIS('ReadableByteStreamController');\n    readableByteStreamControllerError(this\x2C error);\n  }\n\n  [kCancel](reason) {\n    return readableByteStreamControllerCancelSteps(this\x2C reason);\n  }\n\n  [kPull](readRequest) {\n    readableByteStreamControllerPullSteps(this\x2C readRequest);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C { });\n  }\n}\n\nObjectDefineProperties(ReadableByteStreamController.prototype\x2C {\n  byobRequest: kEnumerableProperty\x2C\n  desiredSize: kEnumerableProperty\x2C\n  close: kEnumerableProperty\x2C\n  enqueue: kEnumerableProperty\x2C\n  error: kEnumerableProperty\x2C\n});\n\nfunction createReadableByteStreamController() {\n  return ReflectConstruct(\n    function() {\n      this[kType] = 'ReadableByteStreamController';\n      this[kState] = {};\n    }\x2C\n    []\x2C\n    ReadableByteStreamController\x2C\n  );\n}\n\nfunction createTeeReadableStream(start\x2C pull\x2C cancel) {\n  return ReflectConstruct(\n    function() {\n      this[kType] = 'ReadableStream';\n      this[kState] = {\n        disturbed: false\x2C\n        state: 'readable'\x2C\n        storedError: undefined\x2C\n        stream: undefined\x2C\n        transfer: {\n          writable: undefined\x2C\n          port: undefined\x2C\n          promise: undefined\x2C\n        }\n      };\n      setupReadableStreamDefaultControllerFromSource(\n        this\x2C\n        ObjectCreate(null\x2C {\n          start: { value: start }\x2C\n          pull: { value: pull }\x2C\n          cancel: { value: cancel }\n        })\x2C\n        1\x2C\n        () => 1);\n      return makeTransferable(this);\n    }\x2C []\x2C ReadableStream\x2C\n  );\n}\n\nconst isReadableStream =\n  isBrandCheck('ReadableStream');\nconst isReadableByteStreamController =\n  isBrandCheck('ReadableByteStreamController');\nconst isReadableStreamBYOBRequest =\n  isBrandCheck('ReadableStreamBYOBRequest');\nconst isReadableStreamDefaultReader =\n  isBrandCheck('ReadableStreamDefaultReader');\nconst isReadableStreamBYOBReader =\n  isBrandCheck('ReadableStreamBYOBReader');\n\n// ---- ReadableStream Implementation\n\nfunction readableStreamPipeTo(\n  source\x2C\n  dest\x2C\n  preventClose\x2C\n  preventAbort\x2C\n  preventCancel\x2C\n  signal) {\n\n  let reader;\n  let writer;\n  // Both of these can throw synchronously. We want to capture\n  // the error and return a rejected promise instead.\n  try {\n    reader = new ReadableStreamDefaultReader(source);\n    writer = new WritableStreamDefaultWriter(dest);\n  } catch (error) {\n    return PromiseReject(error);\n  }\n\n  source[kState].disturbed = true;\n\n  let shuttingDown = false;\n\n  if (signal !== undefined && signal?.[kAborted] === undefined) {\n    return PromiseReject(\n      new ERR_INVALID_ARG_TYPE(\n        'options.signal'\x2C\n        'AbortSignal'\x2C\n        signal));\n  }\n\n  const promise = createDeferredPromise();\n\n  let currentWrite = PromiseResolve();\n\n  // The error here can be undefined. The rejected arg\n  // tells us that the promise must be rejected even\n  // when error is undefine.\n  function finalize(rejected\x2C error) {\n    writableStreamDefaultWriterRelease(writer);\n    readableStreamReaderGenericRelease(reader);\n    if (signal !== undefined)\n      signal.removeEventListener('abort'\x2C abortAlgorithm);\n    if (rejected)\n      promise.reject(error);\n    else\n      promise.resolve();\n  }\n\n  async function waitForCurrentWrite() {\n    const write = currentWrite;\n    await write;\n    if (write !== currentWrite)\n      await waitForCurrentWrite();\n  }\n\n  function shutdownWithAnAction(action\x2C rejected\x2C originalError) {\n    if (shuttingDown) return;\n    shuttingDown = true;\n    if (dest[kState].state === 'writable' &&\n        !writableStreamCloseQueuedOrInFlight(dest)) {\n      PromisePrototypeThen(\n        waitForCurrentWrite()\x2C\n        complete\x2C\n        (error) => finalize(true\x2C error));\n      return;\n    }\n    complete();\n\n    function complete() {\n      PromisePrototypeThen(\n        action()\x2C\n        () => finalize(rejected\x2C originalError)\x2C\n        (error) => finalize(true\x2C error));\n    }\n  }\n\n  function shutdown(rejected\x2C error) {\n    if (shuttingDown) return;\n    shuttingDown = true;\n    if (dest[kState].state === 'writable' &&\n        !writableStreamCloseQueuedOrInFlight(dest)) {\n      PromisePrototypeThen(\n        waitForCurrentWrite()\x2C\n        () => finalize(rejected\x2C error)\x2C\n        (error) => finalize(true\x2C error));\n      return;\n    }\n    finalize(rejected\x2C error);\n  }\n\n  function abortAlgorithm() {\n    // Cannot use the AbortError class here. It must be a DOMException\n    const error = new DOMException('The operation was aborted'\x2C 'AbortError');\n    const actions = [];\n    if (!preventAbort) {\n      ArrayPrototypePush(\n        actions\x2C\n        () => {\n          if (dest[kState].state === 'writable')\n            return writableStreamAbort(dest\x2C error);\n          return PromiseResolve();\n        });\n    }\n    if (!preventCancel) {\n      ArrayPrototypePush(\n        actions\x2C\n        () => {\n          if (source[kState].state === 'readable')\n            return readableStreamCancel(source\x2C error);\n          return PromiseResolve();\n        });\n    }\n\n    shutdownWithAnAction(\n      async () => PromiseAll(actions.map((action) => action()))\x2C\n      true\x2C\n      error);\n  }\n\n  function watchErrored(stream\x2C promise\x2C action) {\n    if (stream[kState].state === 'errored')\n      action(stream[kState].storedError);\n    else\n      PromisePrototypeCatch(promise\x2C action);\n  }\n\n  function watchClosed(stream\x2C promise\x2C action) {\n    if (stream[kState].state === 'closed')\n      action(stream[kState].storedError);\n    else\n      PromisePrototypeThen(promise\x2C action\x2C () => {});\n  }\n\n  async function step() {\n    if (shuttingDown)\n      return true;\n    await writer[kState].ready.promise;\n    return new Promise((resolve\x2C reject) => {\n      readableStreamDefaultReaderRead(\n        reader\x2C\n        {\n          [kChunk](chunk) {\n            currentWrite = writableStreamDefaultWriterWrite(writer\x2C chunk);\n            setPromiseHandled(currentWrite);\n            resolve(false);\n          }\x2C\n          [kClose]: () => resolve(true)\x2C\n          [kError]: reject\x2C\n        });\n    });\n  }\n\n  async function run() {\n    // Run until step resolves as true\n    while (!await step()) {}\n  }\n\n  if (signal !== undefined) {\n    if (signal.aborted) {\n      abortAlgorithm();\n      return promise.promise;\n    }\n    signal.addEventListener('abort'\x2C abortAlgorithm\x2C { once: true });\n  }\n\n  setPromiseHandled(run());\n\n  watchErrored(source\x2C reader[kState].close.promise\x2C (error) => {\n    if (!preventAbort) {\n      return shutdownWithAnAction(\n        () => writableStreamAbort(dest\x2C error)\x2C\n        true\x2C\n        error);\n    }\n    shutdown(true\x2C error);\n  });\n\n  watchErrored(dest\x2C writer[kState].close.promise\x2C (error) => {\n    if (!preventCancel) {\n      return shutdownWithAnAction(\n        () => readableStreamCancel(source\x2C error)\x2C\n        true\x2C\n        error);\n    }\n    shutdown(true\x2C error);\n  });\n\n  watchClosed(source\x2C reader[kState].close.promise\x2C () => {\n    if (!preventClose) {\n      return shutdownWithAnAction(\n        () => writableStreamDefaultWriterCloseWithErrorPropagation(writer));\n    }\n    shutdown();\n  });\n\n  if (writableStreamCloseQueuedOrInFlight(dest) ||\n      dest[kState].state === 'closed') {\n    const error = new ERR_INVALID_STATE.TypeError(\n      'Destination WritableStream is closed');\n    if (!preventCancel) {\n      shutdownWithAnAction(\n        () => readableStreamCancel(source\x2C error)\x2C true\x2C error);\n    } else {\n      shutdown(true\x2C error);\n    }\n  }\n\n  return promise.promise;\n}\n\nfunction readableStreamTee(stream\x2C cloneForBranch2) {\n  const reader = new ReadableStreamDefaultReader(stream);\n  let reading = false;\n  let canceled1 = false;\n  let canceled2 = false;\n  let reason1;\n  let reason2;\n  let branch1;\n  let branch2;\n  const cancelPromise = createDeferredPromise();\n\n  async function pullAlgorithm() {\n    if (reading) return;\n    reading = true;\n    const readRequest = {\n      [kChunk](value) {\n        queueMicrotask(() => {\n          reading = false;\n          const value1 = value;\n          let value2 = value;\n          if (!canceled2 && cloneForBranch2) {\n            // Structured Clone\n            value2 = deserialize(serialize(value2));\n          }\n          if (!canceled1) {\n            readableStreamDefaultControllerEnqueue(\n              branch1[kState].controller\x2C\n              value1);\n          }\n          if (!canceled2) {\n            readableStreamDefaultControllerEnqueue(\n              branch2[kState].controller\x2C\n              value2);\n          }\n        });\n      }\x2C\n      [kClose]() {\n        reading = false;\n        if (!canceled1)\n          readableStreamDefaultControllerClose(branch1[kState].controller);\n        if (!canceled2)\n          readableStreamDefaultControllerClose(branch2[kState].controller);\n        if (!canceled1 || !canceled2)\n          cancelPromise.resolve();\n      }\x2C\n      [kError]() {\n        reading = false;\n      }\x2C\n    };\n    readableStreamDefaultReaderRead(reader\x2C readRequest);\n  }\n\n  function cancel1Algorithm(reason) {\n    canceled1 = true;\n    reason1 = reason;\n    if (canceled2) {\n      const compositeReason = [reason1\x2C reason2];\n      cancelPromise.resolve(readableStreamCancel(stream\x2C compositeReason));\n    }\n    return cancelPromise.promise;\n  }\n\n  function cancel2Algorithm(reason) {\n    canceled2 = true;\n    reason2 = reason;\n    if (canceled1) {\n      const compositeReason = [reason1\x2C reason2];\n      cancelPromise.resolve(readableStreamCancel(stream\x2C compositeReason));\n    }\n    return cancelPromise.promise;\n  }\n\n  branch1 =\n    createTeeReadableStream(nonOpStart\x2C pullAlgorithm\x2C cancel1Algorithm);\n  branch2 =\n    createTeeReadableStream(nonOpStart\x2C pullAlgorithm\x2C cancel2Algorithm);\n\n  PromisePrototypeCatch(\n    reader[kState].close.promise\x2C\n    (error) => {\n      readableStreamDefaultControllerError(branch1[kState].controller\x2C error);\n      readableStreamDefaultControllerError(branch2[kState].controller\x2C error);\n      if (!canceled1 || !canceled2)\n        cancelPromise.resolve();\n    });\n\n  return [branch1\x2C branch2];\n}\n\nfunction readableByteStreamControllerConvertPullIntoDescriptor(desc) {\n  const {\n    buffer\x2C\n    bytesFilled\x2C\n    byteLength\x2C\n    byteOffset\x2C\n    ctor\x2C\n    elementSize\x2C\n  } = desc;\n  if (bytesFilled > byteLength)\n    throw new ERR_INVALID_STATE.RangeError('The buffer size is invalid');\n  assert(!(bytesFilled % elementSize));\n  const transferredBuffer = transferArrayBuffer(buffer);\n  return new ctor(transferredBuffer\x2C byteOffset\x2C bytesFilled / elementSize);\n}\n\nfunction isReadableStreamLocked(stream) {\n  return stream[kState].reader !== undefined;\n}\n\nfunction readableStreamCancel(stream\x2C reason) {\n  stream[kState].disturbed = true;\n  switch (stream[kState].state) {\n    case 'closed':\n      return PromiseResolve();\n    case 'errored':\n      return PromiseReject(stream[kState].storedError);\n  }\n  readableStreamClose(stream);\n  const {\n    reader\x2C\n  } = stream[kState];\n  if (reader !== undefined && readableStreamHasBYOBReader(stream)) {\n    for (let n = 0; n < reader[kState].readIntoRequests.length; n++)\n      reader[kState].readIntoRequests[n][kClose]();\n    reader[kState].readIntoRequests = [];\n  }\n\n  return PromisePrototypeThen(\n    ensureIsPromise(\n      stream[kState].controller[kCancel]\x2C\n      stream[kState].controller\x2C\n      reason)\x2C\n    () => {});\n}\n\nfunction readableStreamClose(stream) {\n  assert(stream[kState].state === 'readable');\n  stream[kState].state = 'closed';\n\n  const {\n    reader\x2C\n  } = stream[kState];\n\n  if (reader === undefined)\n    return;\n\n  reader[kState].close.resolve();\n\n  if (readableStreamHasDefaultReader(stream)) {\n    for (let n = 0; n < reader[kState].readRequests.length; n++)\n      reader[kState].readRequests[n][kClose]();\n    reader[kState].readRequests = [];\n  }\n}\n\nfunction readableStreamError(stream\x2C error) {\n  assert(stream[kState].state === 'readable');\n  stream[kState].state = 'errored';\n  stream[kState].storedError = error;\n\n  const {\n    reader\n  } = stream[kState];\n\n  if (reader === undefined)\n    return;\n\n  reader[kState].close.reject(error);\n  setPromiseHandled(reader[kState].close.promise);\n\n  if (readableStreamHasDefaultReader(stream)) {\n    for (let n = 0; n < reader[kState].readRequests.length; n++)\n      reader[kState].readRequests[n][kError](error);\n    reader[kState].readRequests = [];\n  } else {\n    assert(readableStreamHasBYOBReader(stream));\n    for (let n = 0; n < reader[kState].readIntoRequests.length; n++)\n      reader[kState].readIntoRequests[n][kError](error);\n    reader[kState].readIntoRequests = [];\n  }\n}\n\nfunction readableStreamHasDefaultReader(stream) {\n  const {\n    reader\x2C\n  } = stream[kState];\n\n  if (reader === undefined)\n    return false;\n\n  return reader[kState] !== undefined &&\n         reader[kType] === 'ReadableStreamDefaultReader';\n}\n\nfunction readableStreamGetNumReadRequests(stream) {\n  assert(readableStreamHasDefaultReader(stream));\n  return stream[kState].reader[kState].readRequests.length;\n}\n\nfunction readableStreamHasBYOBReader(stream) {\n  const {\n    reader\x2C\n  } = stream[kState];\n\n  if (reader === undefined)\n    return false;\n\n  return reader[kState] !== undefined &&\n         reader[kType] === 'ReadableStreamBYOBReader';\n}\n\nfunction readableStreamGetNumReadIntoRequests(stream) {\n  assert(readableStreamHasBYOBReader(stream));\n  return stream[kState].reader[kState].readIntoRequests.length;\n}\n\nfunction readableStreamFulfillReadRequest(stream\x2C chunk\x2C done) {\n  assert(readableStreamHasDefaultReader(stream));\n  const {\n    reader\x2C\n  } = stream[kState];\n  assert(reader[kState].readRequests.length);\n  const readRequest = ArrayPrototypeShift(reader[kState].readRequests);\n\n  // TODO(@jasnell): It's not clear under what exact conditions done\n  // will be true here. The spec requires this check but none of the\n  // WPT's or other tests trigger it. Will need to investigate how to\n  // get coverage for this.\n  if (done)\n    readRequest[kClose]();\n  else\n    readRequest[kChunk](chunk);\n}\n\nfunction readableStreamFulfillReadIntoRequest(stream\x2C chunk\x2C done) {\n  assert(readableStreamHasBYOBReader(stream));\n  const {\n    reader\x2C\n  } = stream[kState];\n  assert(reader[kState].readIntoRequests.length);\n  const readIntoRequest = ArrayPrototypeShift(reader[kState].readIntoRequests);\n  if (done)\n    readIntoRequest[kClose](chunk);\n  else\n    readIntoRequest[kChunk](chunk);\n}\n\nfunction readableStreamAddReadRequest(stream\x2C readRequest) {\n  assert(readableStreamHasDefaultReader(stream));\n  assert(stream[kState].state === 'readable');\n  ArrayPrototypePush(stream[kState].reader[kState].readRequests\x2C readRequest);\n}\n\nfunction readableStreamAddReadIntoRequest(stream\x2C readIntoRequest) {\n  assert(readableStreamHasBYOBReader(stream));\n  assert(stream[kState].state !== 'errored');\n  ArrayPrototypePush(\n    stream[kState].reader[kState].readIntoRequests\x2C\n    readIntoRequest);\n}\n\nfunction readableStreamReaderGenericCancel(reader\x2C reason) {\n  const {\n    stream\x2C\n  } = reader[kState];\n  assert(stream !== undefined);\n  return readableStreamCancel(stream\x2C reason);\n}\n\nfunction readableStreamReaderGenericInitialize(reader\x2C stream) {\n  reader[kState].stream = stream;\n  stream[kState].reader = reader;\n  switch (stream[kState].state) {\n    case 'readable':\n      reader[kState].close = createDeferredPromise();\n      break;\n    case 'closed':\n      reader[kState].close = {\n        promise: PromiseResolve()\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      };\n      break;\n    case 'errored':\n      reader[kState].close = {\n        promise: PromiseReject(stream[kState].storedError)\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      };\n      setPromiseHandled(reader[kState].close.promise);\n      break;\n  }\n}\n\nfunction readableStreamReaderGenericRelease(reader) {\n  const {\n    stream\x2C\n  } = reader[kState];\n  assert(stream !== undefined);\n  assert(stream[kState].reader === reader);\n\n  if (stream[kState].state === 'readable') {\n    reader[kState].close.reject?.(\n      new ERR_INVALID_STATE.TypeError('Reader released'));\n  } else {\n    reader[kState].close = {\n      promise: PromiseReject(\n        new ERR_INVALID_STATE.TypeError('Reader released'))\x2C\n      resolve: undefined\x2C\n      reject: undefined\x2C\n    };\n  }\n  setPromiseHandled(reader[kState].close.promise);\n  stream[kState].reader = undefined;\n  reader[kState].stream = undefined;\n}\n\nfunction readableStreamBYOBReaderRead(reader\x2C view\x2C readIntoRequest) {\n  const {\n    stream\x2C\n  } = reader[kState];\n  assert(stream !== undefined);\n  stream[kState].disturbed = true;\n  if (stream[kState].state === 'errored') {\n    readIntoRequest[kError](stream[kState].storedError);\n    return;\n  }\n  readableByteStreamControllerPullInto(\n    stream[kState].controller\x2C\n    view\x2C\n    readIntoRequest);\n}\n\nfunction readableStreamDefaultReaderRead(reader\x2C readRequest) {\n  const {\n    stream\x2C\n  } = reader[kState];\n  assert(stream !== undefined);\n  stream[kState].disturbed = true;\n  switch (stream[kState].state) {\n    case 'closed':\n      readRequest[kClose]();\n      break;\n    case 'errored':\n      readRequest[kError](stream[kState].storedError);\n      break;\n    case 'readable':\n      stream[kState].controller[kPull](readRequest);\n  }\n}\n\nfunction setupReadableStreamBYOBReader(reader\x2C stream) {\n  if (isReadableStreamLocked(stream))\n    throw new ERR_INVALID_STATE.TypeError('ReadableStream is locked');\n  const {\n    controller\x2C\n  } = stream[kState];\n  if (!isReadableByteStreamController(controller))\n    throw new ERR_INVALID_ARG_VALUE('reader'\x2C reader\x2C 'must be a byte stream');\n  readableStreamReaderGenericInitialize(reader\x2C stream);\n  reader[kState].readIntoRequests = [];\n}\n\nfunction setupReadableStreamDefaultReader(reader\x2C stream) {\n  if (isReadableStreamLocked(stream))\n    throw new ERR_INVALID_STATE.TypeError('ReadableStream is locked');\n  readableStreamReaderGenericInitialize(reader\x2C stream);\n  reader[kState].readRequests = [];\n}\n\nfunction readableStreamDefaultControllerClose(controller) {\n  if (!readableStreamDefaultControllerCanCloseOrEnqueue(controller))\n    return;\n  controller[kState].closeRequested = true;\n  if (!controller[kState].queue.length) {\n    readableStreamDefaultControllerClearAlgorithms(controller);\n    readableStreamClose(controller[kState].stream);\n  }\n}\n\nfunction readableStreamDefaultControllerEnqueue(controller\x2C chunk) {\n  if (!readableStreamDefaultControllerCanCloseOrEnqueue(controller))\n    return;\n\n  const {\n    stream\x2C\n  } = controller[kState];\n\n  if (isReadableStreamLocked(stream) &&\n      readableStreamGetNumReadRequests(stream)) {\n    readableStreamFulfillReadRequest(stream\x2C chunk\x2C false);\n  } else {\n    try {\n      const chunkSize =\n        FunctionPrototypeCall(\n          controller[kState].sizeAlgorithm\x2C\n          undefined\x2C\n          chunk);\n      enqueueValueWithSize(controller\x2C chunk\x2C chunkSize);\n    } catch (error) {\n      readableStreamDefaultControllerError(controller\x2C error);\n      throw error;\n    }\n  }\n  readableStreamDefaultControllerCallPullIfNeeded(controller);\n}\n\nfunction readableStreamDefaultControllerHasBackpressure(controller) {\n  return !readableStreamDefaultControllerShouldCallPull(controller);\n}\n\nfunction readableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n  const {\n    stream\x2C\n  } = controller[kState];\n  return !controller[kState].closeRequested &&\n         stream[kState].state === 'readable';\n}\n\nfunction readableStreamDefaultControllerGetDesiredSize(controller) {\n  const {\n    stream\x2C\n    highWaterMark\x2C\n    queueTotalSize\x2C\n  } = controller[kState];\n  switch (stream[kState].state) {\n    case 'errored': return null;\n    case 'closed': return 0;\n    default:\n      return highWaterMark - queueTotalSize;\n  }\n}\n\nfunction readableStreamDefaultControllerShouldCallPull(controller) {\n  const {\n    stream\x2C\n  } = controller[kState];\n  if (!readableStreamDefaultControllerCanCloseOrEnqueue(controller) ||\n      !controller[kState].started)\n    return false;\n\n  if (isReadableStreamLocked(stream) &&\n      readableStreamGetNumReadRequests(stream)) {\n    return true;\n  }\n\n  const desiredSize = readableStreamDefaultControllerGetDesiredSize(controller);\n  assert(desiredSize !== null);\n\n  return desiredSize > 0;\n}\n\nfunction readableStreamDefaultControllerCallPullIfNeeded(controller) {\n  if (!readableStreamDefaultControllerShouldCallPull(controller))\n    return;\n  if (controller[kState].pulling) {\n    controller[kState].pullAgain = true;\n    return;\n  }\n  assert(!controller[kState].pullAgain);\n  controller[kState].pulling = true;\n  PromisePrototypeThen(\n    ensureIsPromise(controller[kState].pullAlgorithm\x2C controller)\x2C\n    () => {\n      controller[kState].pulling = false;\n      if (controller[kState].pullAgain) {\n        controller[kState].pullAgain = false;\n        readableStreamDefaultControllerCallPullIfNeeded(controller);\n      }\n    }\x2C\n    (error) => readableStreamDefaultControllerError(controller\x2C error));\n}\n\nfunction readableStreamDefaultControllerClearAlgorithms(controller) {\n  controller[kState].pullAlgorithm = undefined;\n  controller[kState].cancelAlgorithm = undefined;\n  controller[kState].sizeAlgorithm = undefined;\n}\n\nfunction readableStreamDefaultControllerError(controller\x2C error) {\n  const {\n    stream\x2C\n  } = controller[kState];\n  if (stream[kState].state === 'readable') {\n    resetQueue(controller);\n    readableStreamDefaultControllerClearAlgorithms(controller);\n    readableStreamError(stream\x2C error);\n  }\n}\n\nfunction readableStreamDefaultControllerCancelSteps(controller\x2C reason) {\n  resetQueue(controller);\n  const result = controller[kState].cancelAlgorithm(reason);\n  readableStreamDefaultControllerClearAlgorithms(controller);\n  return result;\n}\n\nfunction readableStreamDefaultControllerPullSteps(controller\x2C readRequest) {\n  const {\n    stream\x2C\n    queue\x2C\n  } = controller[kState];\n  if (queue.length) {\n    const chunk = dequeueValue(controller);\n    if (controller[kState].closeRequested && !queue.length) {\n      readableStreamDefaultControllerClearAlgorithms(controller);\n      readableStreamClose(stream);\n    } else {\n      readableStreamDefaultControllerCallPullIfNeeded(controller);\n    }\n    readRequest[kChunk](chunk);\n    return;\n  }\n  readableStreamAddReadRequest(stream\x2C readRequest);\n  readableStreamDefaultControllerCallPullIfNeeded(controller);\n}\n\nfunction setupReadableStreamDefaultController(\n  stream\x2C\n  controller\x2C\n  startAlgorithm\x2C\n  pullAlgorithm\x2C\n  cancelAlgorithm\x2C\n  highWaterMark\x2C\n  sizeAlgorithm) {\n  assert(stream[kState].controller === undefined);\n  controller[kState] = {\n    cancelAlgorithm\x2C\n    closeRequested: false\x2C\n    highWaterMark\x2C\n    pullAgain: false\x2C\n    pullAlgorithm\x2C\n    pulling: false\x2C\n    queue: []\x2C\n    queueTotalSize: 0\x2C\n    started: false\x2C\n    sizeAlgorithm\x2C\n    stream\x2C\n  };\n  stream[kState].controller = controller;\n\n  const startResult = startAlgorithm();\n\n  PromisePrototypeThen(\n    PromiseResolve(startResult)\x2C\n    () => {\n      controller[kState].started = true;\n      assert(!controller[kState].pulling);\n      assert(!controller[kState].pullAgain);\n      readableStreamDefaultControllerCallPullIfNeeded(controller);\n    }\x2C\n    (error) => readableStreamDefaultControllerError(controller\x2C error));\n}\n\nfunction setupReadableStreamDefaultControllerFromSource(\n  stream\x2C\n  source\x2C\n  highWaterMark\x2C\n  sizeAlgorithm) {\n  const controller = createReadableStreamDefaultController();\n  const start = source?.start;\n  const pull = source?.pull;\n  const cancel = source?.cancel;\n  const startAlgorithm = start ?\n    FunctionPrototypeBind(start\x2C source\x2C controller) :\n    nonOpStart;\n  const pullAlgorithm = pull ?\n    FunctionPrototypeBind(pull\x2C source\x2C controller) :\n    nonOpPull;\n\n  const cancelAlgorithm = cancel ?\n    FunctionPrototypeBind(cancel\x2C source) :\n    nonOpCancel;\n\n  setupReadableStreamDefaultController(\n    stream\x2C\n    controller\x2C\n    startAlgorithm\x2C\n    pullAlgorithm\x2C\n    cancelAlgorithm\x2C\n    highWaterMark\x2C\n    sizeAlgorithm);\n}\n\nfunction readableByteStreamControllerClose(controller) {\n  const {\n    closeRequested\x2C\n    pendingPullIntos\x2C\n    queueTotalSize\x2C\n    stream\x2C\n  } = controller[kState];\n\n  if (closeRequested || stream[kState].state !== 'readable')\n    return;\n\n  if (queueTotalSize) {\n    controller[kState].closeRequested = true;\n    return;\n  }\n\n  if (pendingPullIntos.length) {\n    const firstPendingPullInto = pendingPullIntos[0];\n    if (firstPendingPullInto.bytesFilled > 0) {\n      const error = new ERR_INVALID_STATE.TypeError('Partial read');\n      readableByteStreamControllerError(controller\x2C error);\n      throw error;\n    }\n  }\n\n  readableByteStreamControllerClearAlgorithms(controller);\n  readableStreamClose(stream);\n}\n\nfunction readableByteStreamControllerCommitPullIntoDescriptor(stream\x2C desc) {\n  assert(stream[kState].state !== 'errored');\n  let done = false;\n  if (stream[kState].state === 'closed') {\n    desc.bytesFilled = 0;\n    done = true;\n  }\n\n  const filledView =\n    readableByteStreamControllerConvertPullIntoDescriptor(desc);\n\n  if (desc.type === 'default') {\n    readableStreamFulfillReadRequest(stream\x2C filledView\x2C done);\n  } else {\n    assert(desc.type === 'byob');\n    readableStreamFulfillReadIntoRequest(stream\x2C filledView\x2C done);\n  }\n}\n\nfunction readableByteStreamControllerInvalidateBYOBRequest(controller) {\n  if (controller[kState].byobRequest === null)\n    return;\n  controller[kState].byobRequest[kState].controller = undefined;\n  controller[kState].byobRequest[kState].view = null;\n  controller[kState].byobRequest = null;\n}\n\nfunction readableByteStreamControllerClearAlgorithms(controller) {\n  controller[kState].pullAlgorithm = undefined;\n  controller[kState].cancelAlgorithm = undefined;\n}\n\nfunction readableByteStreamControllerClearPendingPullIntos(controller) {\n  readableByteStreamControllerInvalidateBYOBRequest(controller);\n  controller[kState].pendingPullIntos = [];\n}\n\nfunction readableByteStreamControllerGetDesiredSize(controller) {\n  const {\n    stream\x2C\n    highWaterMark\x2C\n    queueTotalSize\x2C\n  } = controller[kState];\n  switch (stream[kState].state) {\n    case 'errored': return null;\n    case 'closed': return 0;\n    default: return highWaterMark - queueTotalSize;\n  }\n}\n\nfunction readableByteStreamControllerShouldCallPull(controller) {\n  const {\n    stream\x2C\n  } = controller[kState];\n  if (stream[kState].state !== 'readable' ||\n      controller[kState].closeRequested ||\n      !controller[kState].started) {\n    return false;\n  }\n  if (readableStreamHasDefaultReader(stream) &&\n      readableStreamGetNumReadRequests(stream) > 0) {\n    return true;\n  }\n\n  if (readableStreamHasBYOBReader(stream) &&\n      readableStreamGetNumReadIntoRequests(stream) > 0) {\n    return true;\n  }\n\n  const desiredSize = readableByteStreamControllerGetDesiredSize(controller);\n  assert(desiredSize !== null);\n\n  return desiredSize > 0;\n}\n\nfunction readableByteStreamControllerHandleQueueDrain(controller) {\n  const {\n    closeRequested\x2C\n    queueTotalSize\x2C\n    stream\x2C\n  } = controller[kState];\n  assert(stream[kState].state === 'readable');\n  if (!queueTotalSize && closeRequested) {\n    readableByteStreamControllerClearAlgorithms(controller);\n    readableStreamClose(stream);\n    return;\n  }\n  readableByteStreamControllerCallPullIfNeeded(controller);\n}\n\nfunction readableByteStreamControllerPullInto(\n  controller\x2C\n  view\x2C\n  readIntoRequest) {\n  const {\n    closeRequested\x2C\n    stream\x2C\n    pendingPullIntos\x2C\n  } = controller[kState];\n  let elementSize = 1;\n  let ctor = DataViewCtor;\n  if (isArrayBufferView(view) && !isDataView(view)) {\n    elementSize = view.constructor.BYTES_PER_ELEMENT;\n    ctor = view.constructor;\n  }\n  const buffer = ArrayBufferViewGetBuffer(view);\n  const byteOffset = ArrayBufferViewGetByteOffset(view);\n  const byteLength = ArrayBufferViewGetByteLength(view);\n  const bufferByteLength = ArrayBufferGetByteLength(buffer);\n\n  let transferredBuffer;\n  try {\n    transferredBuffer = transferArrayBuffer(buffer);\n  } catch (error) {\n    readIntoRequest[kError](error);\n    return;\n  }\n  const desc = {\n    buffer: transferredBuffer\x2C\n    bufferByteLength\x2C\n    byteOffset\x2C\n    byteLength\x2C\n    bytesFilled: 0\x2C\n    elementSize\x2C\n    ctor\x2C\n    type: 'byob'\x2C\n  };\n  if (pendingPullIntos.length) {\n    ArrayPrototypePush(pendingPullIntos\x2C desc);\n    readableStreamAddReadIntoRequest(stream\x2C readIntoRequest);\n    return;\n  }\n  if (stream[kState].state === 'closed') {\n    const emptyView = new ctor(desc.buffer\x2C byteOffset\x2C 0);\n    readIntoRequest[kClose](emptyView);\n    return;\n  }\n  if (controller[kState].queueTotalSize) {\n    if (readableByteStreamControllerFillPullIntoDescriptorFromQueue(\n      controller\x2C\n      desc)) {\n      const filledView =\n        readableByteStreamControllerConvertPullIntoDescriptor(desc);\n      readableByteStreamControllerHandleQueueDrain(controller);\n      readIntoRequest[kChunk](filledView);\n      return;\n    }\n    if (closeRequested) {\n      const error = new ERR_INVALID_STATE.TypeError('ReadableStream closed');\n      readableByteStreamControllerError(controller\x2C error);\n      readIntoRequest[kError](error);\n      return;\n    }\n  }\n  ArrayPrototypePush(pendingPullIntos\x2C desc);\n  readableStreamAddReadIntoRequest(stream\x2C readIntoRequest);\n  readableByteStreamControllerCallPullIfNeeded(controller);\n}\n\nfunction readableByteStreamControllerRespondInternal(controller\x2C bytesWritten) {\n  const {\n    stream\x2C\n    pendingPullIntos\x2C\n  } = controller[kState];\n  const desc = pendingPullIntos[0];\n  readableByteStreamControllerInvalidateBYOBRequest(controller);\n  if (stream[kState].state === 'closed') {\n    if (bytesWritten)\n      throw new ERR_INVALID_STATE.TypeError(\n        'Controller is closed but view is not zero-length');\n    readableByteStreamControllerRespondInClosedState(controller\x2C desc);\n  } else {\n    assert(stream[kState].state === 'readable');\n    if (!bytesWritten)\n      throw new ERR_INVALID_STATE.TypeError('View cannot be zero-length');\n    readableByteStreamControllerRespondInReadableState(\n      controller\x2C\n      bytesWritten\x2C\n      desc);\n  }\n  readableByteStreamControllerCallPullIfNeeded(controller);\n}\n\nfunction readableByteStreamControllerRespond(controller\x2C bytesWritten) {\n  const {\n    pendingPullIntos\x2C\n    stream\x2C\n  } = controller[kState];\n  assert(pendingPullIntos.length);\n  const desc = pendingPullIntos[0];\n\n  if (stream[kState].state === 'closed') {\n    if (bytesWritten !== 0)\n      throw new ERR_INVALID_ARG_VALUE('bytesWritten'\x2C bytesWritten);\n  } else {\n    assert(stream[kState].state === 'readable');\n\n    if (!bytesWritten)\n      throw new ERR_INVALID_ARG_VALUE('bytesWritten'\x2C bytesWritten);\n\n    if ((desc.bytesFilled + bytesWritten) > desc.byteLength)\n      throw new ERR_INVALID_ARG_VALUE.RangeError('bytesWritten'\x2C bytesWritten);\n  }\n\n  desc.buffer = transferArrayBuffer(desc.buffer);\n\n  readableByteStreamControllerRespondInternal(controller\x2C bytesWritten);\n}\n\nfunction readableByteStreamControllerRespondInClosedState(controller\x2C desc) {\n  assert(!desc.bytesFilled);\n  const {\n    stream\x2C\n  } = controller[kState];\n  if (readableStreamHasBYOBReader(stream)) {\n    while (readableStreamGetNumReadIntoRequests(stream) > 0) {\n      readableByteStreamControllerCommitPullIntoDescriptor(\n        stream\x2C\n        readableByteStreamControllerShiftPendingPullInto(controller));\n    }\n  }\n}\n\nfunction readableByteStreamControllerFillHeadPullIntoDescriptor(\n  controller\x2C\n  size\x2C\n  desc) {\n  const {\n    pendingPullIntos\x2C\n    byobRequest\x2C\n  } = controller[kState];\n  assert(!pendingPullIntos.length || pendingPullIntos[0] === desc);\n  assert(byobRequest === null);\n  desc.bytesFilled += size;\n}\n\nfunction readableByteStreamControllerEnqueue(\n  controller\x2C\n  buffer\x2C\n  byteLength\x2C\n  byteOffset) {\n  const {\n    closeRequested\x2C\n    pendingPullIntos\x2C\n    queue\x2C\n    stream\x2C\n  } = controller[kState];\n\n  if (closeRequested || stream[kState].state !== 'readable')\n    return;\n\n  const transferredBuffer = transferArrayBuffer(buffer);\n\n  if (pendingPullIntos.length) {\n    const firstPendingPullInto = pendingPullIntos[0];\n\n    const pendingBufferByteLength =\n      ArrayBufferGetByteLength(firstPendingPullInto.buffer);\n    if (pendingBufferByteLength === 0) {\n      throw new ERR_INVALID_STATE.TypeError(\n        'Destination ArrayBuffer is zero-length or detached');\n    }\n\n    firstPendingPullInto.buffer =\n      transferArrayBuffer(firstPendingPullInto.buffer);\n  }\n\n  readableByteStreamControllerInvalidateBYOBRequest(controller);\n\n  if (readableStreamHasDefaultReader(stream)) {\n    if (!readableStreamGetNumReadRequests(stream)) {\n      readableByteStreamControllerEnqueueChunkToQueue(\n        controller\x2C\n        transferredBuffer\x2C\n        byteOffset\x2C\n        byteLength);\n    } else {\n      assert(!queue.length);\n      const transferredView =\n        new Uint8Array(transferredBuffer\x2C byteOffset\x2C byteLength);\n      readableStreamFulfillReadRequest(stream\x2C transferredView\x2C false);\n    }\n  } else if (readableStreamHasBYOBReader(stream)) {\n    readableByteStreamControllerEnqueueChunkToQueue(\n      controller\x2C\n      transferredBuffer\x2C\n      byteOffset\x2C\n      byteLength);\n    readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(\n      controller);\n  } else {\n    assert(!isReadableStreamLocked(stream));\n    readableByteStreamControllerEnqueueChunkToQueue(\n      controller\x2C\n      transferredBuffer\x2C\n      byteOffset\x2C\n      byteLength);\n  }\n  readableByteStreamControllerCallPullIfNeeded(controller);\n}\n\nfunction readableByteStreamControllerEnqueueChunkToQueue(\n  controller\x2C\n  buffer\x2C\n  byteOffset\x2C\n  byteLength) {\n  ArrayPrototypePush(\n    controller[kState].queue\x2C\n    {\n      buffer\x2C\n      byteOffset\x2C\n      byteLength\x2C\n    });\n  controller[kState].queueTotalSize += byteLength;\n}\n\nfunction readableByteStreamControllerFillPullIntoDescriptorFromQueue(\n  controller\x2C\n  desc) {\n  const {\n    buffer\x2C\n    byteLength\x2C\n    byteOffset\x2C\n    bytesFilled\x2C\n    elementSize\x2C\n  } = desc;\n  const currentAlignedBytes = bytesFilled - (bytesFilled % elementSize);\n  const maxBytesToCopy = MathMin(\n    controller[kState].queueTotalSize\x2C\n    byteLength - bytesFilled);\n  const maxBytesFilled = bytesFilled + maxBytesToCopy;\n  const maxAlignedBytes = maxBytesFilled - (maxBytesFilled % elementSize);\n  let totalBytesToCopyRemaining = maxBytesToCopy;\n  let ready = false;\n  if (maxAlignedBytes > currentAlignedBytes) {\n    totalBytesToCopyRemaining = maxAlignedBytes - bytesFilled;\n    ready = true;\n  }\n  const {\n    queue\x2C\n  } = controller[kState];\n\n  while (totalBytesToCopyRemaining) {\n    const headOfQueue = queue[0];\n    const bytesToCopy = MathMin(\n      totalBytesToCopyRemaining\x2C\n      headOfQueue.byteLength);\n    const destStart = byteOffset + desc.bytesFilled;\n    const arrayBufferByteLength = ArrayBufferGetByteLength(buffer);\n    if (arrayBufferByteLength - destStart < bytesToCopy) {\n      throw new ERR_INVALID_STATE.RangeError(\n        'view ArrayBuffer size is invalid');\n    }\n    assert(arrayBufferByteLength - destStart >= bytesToCopy);\n    copyArrayBuffer(\n      buffer\x2C\n      destStart\x2C\n      headOfQueue.buffer\x2C\n      headOfQueue.byteOffset\x2C\n      bytesToCopy);\n    if (headOfQueue.byteLength === bytesToCopy) {\n      ArrayPrototypeShift(queue);\n    } else {\n      headOfQueue.byteOffset += bytesToCopy;\n      headOfQueue.byteLength -= bytesToCopy;\n    }\n    controller[kState].queueTotalSize -= bytesToCopy;\n    readableByteStreamControllerFillHeadPullIntoDescriptor(\n      controller\x2C\n      bytesToCopy\x2C\n      desc);\n    totalBytesToCopyRemaining -= bytesToCopy;\n  }\n\n  if (!ready) {\n    assert(!controller[kState].queueTotalSize);\n    assert(desc.bytesFilled > 0);\n    assert(desc.bytesFilled < elementSize);\n  }\n  return ready;\n}\n\nfunction readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(\n  controller) {\n  const {\n    closeRequested\x2C\n    pendingPullIntos\x2C\n    stream\x2C\n  } = controller[kState];\n  assert(!closeRequested);\n  while (pendingPullIntos.length) {\n    if (!controller[kState].queueTotalSize)\n      return;\n    const desc = pendingPullIntos[0];\n    if (readableByteStreamControllerFillPullIntoDescriptorFromQueue(\n      controller\x2C\n      desc)) {\n      readableByteStreamControllerShiftPendingPullInto(controller);\n      readableByteStreamControllerCommitPullIntoDescriptor(stream\x2C desc);\n    }\n  }\n}\n\nfunction readableByteStreamControllerRespondInReadableState(\n  controller\x2C\n  bytesWritten\x2C\n  desc) {\n  const {\n    buffer\x2C\n    bytesFilled\x2C\n    byteLength\x2C\n  } = desc;\n\n  if (bytesFilled + bytesWritten > byteLength)\n    throw new ERR_INVALID_STATE.RangeError('The buffer size is invalid');\n\n  readableByteStreamControllerFillHeadPullIntoDescriptor(\n    controller\x2C\n    bytesWritten\x2C\n    desc);\n\n  if (desc.bytesFilled < desc.elementSize)\n    return;\n\n  readableByteStreamControllerShiftPendingPullInto(controller);\n\n  const remainderSize = desc.bytesFilled % desc.elementSize;\n\n  if (remainderSize) {\n    const end = desc.byteOffset + desc.bytesFilled;\n    const start = end - remainderSize;\n    const remainder =\n      ArrayBufferPrototypeSlice(\n        buffer\x2C\n        start\x2C\n        end);\n    readableByteStreamControllerEnqueueChunkToQueue(\n      controller\x2C\n      remainder\x2C\n      0\x2C\n      ArrayBufferGetByteLength(remainder));\n  }\n  desc.bytesFilled -= remainderSize;\n  readableByteStreamControllerCommitPullIntoDescriptor(\n    controller[kState].stream\x2C\n    desc);\n  readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n}\n\nfunction readableByteStreamControllerRespondWithNewView(controller\x2C view) {\n  const {\n    stream\x2C\n    pendingPullIntos\x2C\n  } = controller[kState];\n  assert(pendingPullIntos.length);\n\n  const desc = pendingPullIntos[0];\n  assert(stream[kState].state !== 'errored');\n\n  if (!isArrayBufferView(view)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'view'\x2C\n      [\n        'Buffer'\x2C\n        'TypedArray'\x2C\n        'DataView'\x2C\n      ]\x2C\n      view);\n  }\n  const viewByteLength = ArrayBufferViewGetByteLength(view);\n  const viewByteOffset = ArrayBufferViewGetByteOffset(view);\n  const viewBuffer = ArrayBufferViewGetBuffer(view);\n  const viewBufferByteLength = ArrayBufferGetByteLength(viewBuffer);\n\n  const {\n    byteOffset\x2C\n    byteLength\x2C\n    bytesFilled\x2C\n    bufferByteLength\x2C\n  } = desc;\n\n  if (byteOffset + bytesFilled !== viewByteOffset)\n    throw new ERR_INVALID_ARG_VALUE.RangeError('view'\x2C view);\n\n  if (bytesFilled + viewByteOffset > byteLength)\n    throw new ERR_INVALID_ARG_VALUE.RangeError('view'\x2C view);\n\n  if (bufferByteLength !== viewBufferByteLength)\n    throw new ERR_INVALID_ARG_VALUE.RangeError('view'\x2C view);\n\n  desc.buffer = transferArrayBuffer(viewBuffer);\n\n  readableByteStreamControllerRespondInternal(controller\x2C viewByteLength);\n}\n\nfunction readableByteStreamControllerShiftPendingPullInto(controller) {\n  assert(controller[kState].byobRequest === null);\n  return ArrayPrototypeShift(controller[kState].pendingPullIntos);\n}\n\nfunction readableByteStreamControllerCallPullIfNeeded(controller) {\n  if (!readableByteStreamControllerShouldCallPull(controller))\n    return;\n  if (controller[kState].pulling) {\n    controller[kState].pullAgain = true;\n    return;\n  }\n  assert(!controller[kState].pullAgain);\n  controller[kState].pulling = true;\n  PromisePrototypeThen(\n    ensureIsPromise(controller[kState].pullAlgorithm\x2C controller)\x2C\n    () => {\n      controller[kState].pulling = false;\n      if (controller[kState].pullAgain) {\n        controller[kState].pullAgain = false;\n        readableByteStreamControllerCallPullIfNeeded(controller);\n      }\n    }\x2C\n    (error) => readableByteStreamControllerError(controller\x2C error));\n}\n\nfunction readableByteStreamControllerError(controller\x2C error) {\n  const {\n    stream\x2C\n  } = controller[kState];\n  if (stream[kState].state !== 'readable')\n    return;\n  readableByteStreamControllerClearPendingPullIntos(controller);\n  resetQueue(controller);\n  readableByteStreamControllerClearAlgorithms(controller);\n  readableStreamError(stream\x2C error);\n}\n\nfunction readableByteStreamControllerCancelSteps(controller\x2C reason) {\n  readableByteStreamControllerClearPendingPullIntos(controller);\n  resetQueue(controller);\n  const result = controller[kState].cancelAlgorithm(reason);\n  readableByteStreamControllerClearAlgorithms(controller);\n  return result;\n}\n\nfunction readableByteStreamControllerPullSteps(controller\x2C readRequest) {\n  const {\n    pendingPullIntos\x2C\n    queue\x2C\n    queueTotalSize\x2C\n    stream\x2C\n  } = controller[kState];\n  assert(readableStreamHasDefaultReader(stream));\n  if (queueTotalSize) {\n    assert(!readableStreamGetNumReadRequests(stream));\n    const {\n      buffer\x2C\n      byteOffset\x2C\n      byteLength\x2C\n    } = ArrayPrototypeShift(queue);\n    controller[kState].queueTotalSize -= byteLength;\n    readableByteStreamControllerHandleQueueDrain(controller);\n    const view = new Uint8Array(buffer\x2C byteOffset\x2C byteLength);\n    readRequest[kChunk](view);\n    return;\n  }\n  const {\n    autoAllocateChunkSize\x2C\n  } = controller[kState];\n  if (autoAllocateChunkSize !== undefined) {\n    try {\n      const buffer = new ArrayBuffer(autoAllocateChunkSize);\n      ArrayPrototypePush(\n        pendingPullIntos\x2C\n        {\n          buffer\x2C\n          byteOffset: 0\x2C\n          byteLength: autoAllocateChunkSize\x2C\n          bytesFilled: 0\x2C\n          elementSize: 1\x2C\n          ctor: Uint8Array\x2C\n          type: 'default'\x2C\n        });\n    } catch (error) {\n      readRequest[kError](error);\n      return;\n    }\n  }\n\n  readableStreamAddReadRequest(stream\x2C readRequest);\n  readableByteStreamControllerCallPullIfNeeded(controller);\n}\n\nfunction setupReadableByteStreamController(\n  stream\x2C\n  controller\x2C\n  startAlgorithm\x2C\n  pullAlgorithm\x2C\n  cancelAlgorithm\x2C\n  highWaterMark\x2C\n  autoAllocateChunkSize) {\n  assert(stream[kState].controller === undefined);\n  if (autoAllocateChunkSize !== undefined) {\n    assert(NumberIsInteger(autoAllocateChunkSize));\n    assert(autoAllocateChunkSize > 0);\n  }\n  controller[kState] = {\n    byobRequest: null\x2C\n    closeRequested: false\x2C\n    pullAgain: false\x2C\n    pulling: false\x2C\n    started: false\x2C\n    stream\x2C\n    queue: []\x2C\n    queueTotalSize: 0\x2C\n    highWaterMark\x2C\n    pullAlgorithm\x2C\n    cancelAlgorithm\x2C\n    autoAllocateChunkSize\x2C\n    pendingPullIntos: []\x2C\n  };\n  stream[kState].controller = controller;\n\n  const startResult = startAlgorithm();\n\n  PromisePrototypeThen(\n    PromiseResolve(startResult)\x2C\n    () => {\n      controller[kState].started = true;\n      assert(!controller[kState].pulling);\n      assert(!controller[kState].pullAgain);\n      readableByteStreamControllerCallPullIfNeeded(controller);\n    }\x2C\n    (error) => readableByteStreamControllerError(controller\x2C error));\n}\n\nfunction setupReadableByteStreamControllerFromSource(\n  stream\x2C\n  source\x2C\n  highWaterMark) {\n  const controller = createReadableByteStreamController();\n  const start = source?.start;\n  const pull = source?.pull;\n  const cancel = source?.cancel;\n  const autoAllocateChunkSize = source?.autoAllocateChunkSize;\n  const startAlgorithm = start ?\n    FunctionPrototypeBind(start\x2C source\x2C controller) :\n    nonOpStart;\n  const pullAlgorithm = pull ?\n    FunctionPrototypeBind(pull\x2C source\x2C controller) :\n    nonOpPull;\n  const cancelAlgorithm = cancel ?\n    FunctionPrototypeBind(cancel\x2C source) :\n    nonOpCancel;\n\n  if (autoAllocateChunkSize === 0) {\n    throw new ERR_INVALID_ARG_VALUE(\n      'source.autoAllocateChunkSize'\x2C\n      autoAllocateChunkSize);\n  }\n  setupReadableByteStreamController(\n    stream\x2C\n    controller\x2C\n    startAlgorithm\x2C\n    pullAlgorithm\x2C\n    cancelAlgorithm\x2C\n    highWaterMark\x2C\n    autoAllocateChunkSize);\n}\n\nmodule.exports = {\n  ReadableStream\x2C\n  ReadableStreamDefaultReader\x2C\n  ReadableStreamBYOBReader\x2C\n  ReadableStreamBYOBRequest\x2C\n  ReadableByteStreamController\x2C\n  ReadableStreamDefaultController\x2C\n  TransferredReadableStream\x2C\n\n  // Exported Brand Checks\n  isReadableStream\x2C\n  isReadableByteStreamController\x2C\n  isReadableStreamBYOBRequest\x2C\n  isReadableStreamDefaultReader\x2C\n  isReadableStreamBYOBReader\x2C\n  isWritableStreamDefaultWriter\x2C\n  isWritableStreamDefaultController\x2C\n\n  readableStreamPipeTo\x2C\n  readableStreamTee\x2C\n  readableByteStreamControllerConvertPullIntoDescriptor\x2C\n  isReadableStreamLocked\x2C\n  readableStreamCancel\x2C\n  readableStreamClose\x2C\n  readableStreamError\x2C\n  readableStreamHasDefaultReader\x2C\n  readableStreamGetNumReadRequests\x2C\n  readableStreamHasBYOBReader\x2C\n  readableStreamGetNumReadIntoRequests\x2C\n  readableStreamFulfillReadRequest\x2C\n  readableStreamFulfillReadIntoRequest\x2C\n  readableStreamAddReadRequest\x2C\n  readableStreamAddReadIntoRequest\x2C\n  readableStreamReaderGenericCancel\x2C\n  readableStreamReaderGenericInitialize\x2C\n  readableStreamReaderGenericRelease\x2C\n  readableStreamBYOBReaderRead\x2C\n  readableStreamDefaultReaderRead\x2C\n  setupReadableStreamBYOBReader\x2C\n  setupReadableStreamDefaultReader\x2C\n  readableStreamDefaultControllerClose\x2C\n  readableStreamDefaultControllerEnqueue\x2C\n  readableStreamDefaultControllerHasBackpressure\x2C\n  readableStreamDefaultControllerCanCloseOrEnqueue\x2C\n  readableStreamDefaultControllerGetDesiredSize\x2C\n  readableStreamDefaultControllerShouldCallPull\x2C\n  readableStreamDefaultControllerCallPullIfNeeded\x2C\n  readableStreamDefaultControllerClearAlgorithms\x2C\n  readableStreamDefaultControllerError\x2C\n  readableStreamDefaultControllerCancelSteps\x2C\n  readableStreamDefaultControllerPullSteps\x2C\n  setupReadableStreamDefaultController\x2C\n  setupReadableStreamDefaultControllerFromSource\x2C\n  readableByteStreamControllerClose\x2C\n  readableByteStreamControllerCommitPullIntoDescriptor\x2C\n  readableByteStreamControllerInvalidateBYOBRequest\x2C\n  readableByteStreamControllerClearAlgorithms\x2C\n  readableByteStreamControllerClearPendingPullIntos\x2C\n  readableByteStreamControllerGetDesiredSize\x2C\n  readableByteStreamControllerShouldCallPull\x2C\n  readableByteStreamControllerHandleQueueDrain\x2C\n  readableByteStreamControllerPullInto\x2C\n  readableByteStreamControllerRespondInternal\x2C\n  readableByteStreamControllerRespond\x2C\n  readableByteStreamControllerRespondInClosedState\x2C\n  readableByteStreamControllerFillHeadPullIntoDescriptor\x2C\n  readableByteStreamControllerEnqueue\x2C\n  readableByteStreamControllerEnqueueChunkToQueue\x2C\n  readableByteStreamControllerFillPullIntoDescriptorFromQueue\x2C\n  readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue\x2C\n  readableByteStreamControllerRespondInReadableState\x2C\n  readableByteStreamControllerRespondWithNewView\x2C\n  readableByteStreamControllerShiftPendingPullInto\x2C\n  readableByteStreamControllerCallPullIfNeeded\x2C\n  readableByteStreamControllerError\x2C\n  readableByteStreamControllerCancelSteps\x2C\n  readableByteStreamControllerPullSteps\x2C\n  setupReadableByteStreamController\x2C\n  setupReadableByteStreamControllerFromSource\x2C\n};\n\n/* eslint-enable no-use-before-define */\n
code-source-info,0x1fe027d055ce,137,0,75849,C0O0C4O75849,,
tick,0x7efc3363549c,213032,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x36d16acbd7dc,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x7efc336415ea,213049,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x36d16acbd7dc,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x7efc33635473,213054,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x36d16acbd7dc,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Function,10,213063,0x1fe027d0b346,3372, node:internal/webstreams/readablestream:1:1,0x1fe027d05538,~
code-source-info,0x1fe027d0b346,137,0,75849,C0O0C651O68C657O83C663O112C669O134C675O157C681O173C687O198C693O223C699O234C705O253C711O269C716O295C722O319C728O330C734O355C740O379C746O397C752O414C758O428C764O448C769O458C775O481C780O502C786O687C789O687C794O687C799O555C805O584C811O611C817O637C823O660C829O744C832O744C837O726C843O822C846O822C851O785C857O806C863O925C866O925C871O865C877O911C882O992C885O992C890O962C896O975C902O1038C905O1038C910O1018C916O1095C919O1095C924O1081C930O1164C933O1164C938O1144C944O1274C947O1274C952O1206C957O1222C962O1235C967O1252C973O1349C976O1349C981O1329C987O1857C990O1857C995O1401C1001O1429C1007O1461C1013O1493C1019O1521C1025O1538C1031O1557C1037O1574C1043O1590C1049O1609C1055O1633C1061O1657C1067O1681C1073O1697C1078O1713C1084O1727C1090O1748C1096O1771C1102O1786C1108O1799C1114O1813C1120O1822C1126O1832C1131O2248C1134O2248C1139O1905C1145O1937C1151O1957C1157O1983C1162O2020C1167O2054C1173O2077C1179O2116C1185O2172C1191O2210C1197O2311C1200O2311C1204O2311C1206O2356C1209O2356C1213O2356C1215O2390C1218O2390C1222O2390C1224O2423C1227O2423C1231O2423C1233O2456C1236O2456C1240O2456C1242O2488C1245O2488C1249O2488C1270O3909C1280O3944C1330O13574C1340O13734C1350O14518C1360O14700C1396O3883C1398O14913C1401O14951C1414O14967C1416O14989C1426O15084C1432O15094C1453O15117C1464O15148C1475O15182C1486O15218C1497O15249C1508O15277C1513O14913C1518O15764C1523O15774C1527O15788C1550O15838C1560O15884C1586O17474C1622O15801C1624O17639C1627O17688C1640O17709C1646O17741C1652O17784C1656O17639C1672O18180C1682O18257C1692O18339C1719O18083C1732O18541C1742O18618C1752O18694C1779O18447C1800O18841C1810O18889C1842O20984C1878O18802C1880O21213C1883O21264C1896O21287C1902O21316C1908O21352C1914O21383C1918O21213C1942O21445C1952O21490C1984O24384C2020O21409C2022O24627C2025O24675C2038O24698C2044O24727C2050O24763C2060O24794C2068O24627C2097O24863C2107O24915C2141O25769C2153O25865C2163O25960C2203O24820C2205O26055C2208O26110C2228O26138C2238O26168C2248O26200C2258O26230C2266O26055C2302O26531C2312O26580C2370O29483C2385O29576C2398O29668C2444O26491C2446O29763C2449O29815C2469O29843C2479O29879C2489O29909C2499O29941C2509O29971C2517O29763C2527O30964C2532O30964C2540O30964C2542O31037C2547O31037C2555O31037C2557O31121C2562O31121C2570O31121C2572O31204C2577O31204C2585O31204C2587O31286C2592O31286C2600O31286C2602O72746C2612O72767C2622O72785C2632O72816C2642O72844C2652O72873C2662O72905C2672O72940C2682O72997C2692O73017C2702O73051C2712O73082C2722O73115C2732O73145C2742O73178C2752O73216C2762O73240C2772O73261C2782O73318C2792O73344C2802O73368C2812O73391C2822O73414C2832O73448C2842O73484C2852O73515C2862O73555C2872O73591C2882O73631C2892O73663C2902O73699C2912O73736C2922O73777C2932O73815C2942O73847C2952O73882C2962O73915C2972O73951C2982O73991C2992O74033C3002O74083C3012O74135C3022O74184C3032O74233C3042O74284C3052O74334C3062O74374C3072O74420C3082O74464C3092O74504C3102O74554C3112O74591C3122O74647C3132O74700C3142O74747C3152O74800C3162O74846C3172O74892C3182O74940C3192O74980C3202O75027C3212O75066C3222O75118C3232O75176C3242O75215C3252O75266C3262O75329C3272O75397C3282O75451C3292O75501C3302O75553C3312O75601C3322O75638C3332O75681C3342O75722C3352O75759C3362O72761C3371O75848,,
code-creation,Function,10,213135,0x1fe027d0c53e,16,<instance_members_initializer> node:internal/webstreams/readablestream:999:3,0x1fe027d08340,~
code-source-info,0x1fe027d0c53e,137,26530,26570,C3O26540C15O26570,,
code-creation,Function,10,213143,0x1fe027d0c5c6,16,<instance_members_initializer> node:internal/webstreams/readablestream:929:3,0x1fe027d07fa8,~
code-source-info,0x1fe027d0c5c6,137,24862,24905,C3O24872C15O24905,,
code-creation,Function,10,213151,0x1fe027d0c656,16,<instance_members_initializer> node:internal/webstreams/readablestream:812:3,0x1fe027d07c80,~
code-source-info,0x1fe027d0c656,137,21444,21480,C3O21454C15O21480,,
code-creation,Function,10,213159,0x1fe027d0c6de,16,<instance_members_initializer> node:internal/webstreams/readablestream:718:3,0x1fe027d079f8,~
code-source-info,0x1fe027d0c6de,137,18840,18879,C3O18850C15O18879,,
code-creation,Function,10,213167,0x1fe027d0c766,16,<instance_members_initializer> node:internal/webstreams/readablestream:586:3,0x1fe027d07410,~
code-source-info,0x1fe027d0c766,137,15837,15874,C3O15847C15O15874,,
code-creation,Function,10,213177,0x1fe027d0c7ee,16,<instance_members_initializer> node:internal/webstreams/readablestream:180:3,0x1fe027d07150,~
code-source-info,0x1fe027d0c7ee,137,3908,3934,C3O3918C15O3934,,
tick,0xd12710,213787,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d0b7b4,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acbd7dc,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,214333,0x1fe027d143fe,5, node:internal/webstreams/writablestream:1:1,0x1fe027d13be0,~
script-source,138,node:internal/webstreams/writablestream,'use strict';\n\n/* eslint-disable no-use-before-define */\n\nconst {\n  ArrayPrototypePush\x2C\n  ArrayPrototypeShift\x2C\n  FunctionPrototypeBind\x2C\n  FunctionPrototypeCall\x2C\n  ObjectDefineProperties\x2C\n  PromisePrototypeThen\x2C\n  PromiseResolve\x2C\n  PromiseReject\x2C\n  ReflectConstruct\x2C\n  Symbol\x2C\n  SymbolToStringTag\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_ILLEGAL_CONSTRUCTOR\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_STATE\x2C\n    ERR_INVALID_THIS\x2C\n  }\x2C\n} = require('internal/errors');\n\nconst {\n  DOMException\x2C\n} = internalBinding('messaging');\n\nconst {\n  createDeferredPromise\x2C\n  customInspectSymbol: kInspect\x2C\n} = require('internal/util');\n\nconst {\n  MessageChannel\x2C\n} = require('internal/worker/io');\n\nconst {\n  kDeserialize\x2C\n  kTransfer\x2C\n  kTransferList\x2C\n  makeTransferable\x2C\n} = require('internal/worker/js_transferable');\n\nconst {\n  customInspect\x2C\n  dequeueValue\x2C\n  ensureIsPromise\x2C\n  enqueueValueWithSize\x2C\n  extractHighWaterMark\x2C\n  extractSizeAlgorithm\x2C\n  lazyTransfer\x2C\n  isBrandCheck\x2C\n  isPromisePending\x2C\n  peekQueueValue\x2C\n  resetQueue\x2C\n  setPromiseHandled\x2C\n  nonOpCancel\x2C\n  nonOpStart\x2C\n  nonOpWrite\x2C\n  kType\x2C\n  kState\x2C\n  kEnumerableProperty\x2C\n} = require('internal/webstreams/util');\n\nconst {\n  AbortController\x2C\n} = require('internal/abort_controller');\n\nconst assert = require('internal/assert');\n\nconst kAbort = Symbol('kAbort');\nconst kCloseSentinel = Symbol('kCloseSentinel');\nconst kError = Symbol('kError');\n\n/**\n * @typedef {import('../abort_controller').AbortSignal} AbortSignal\n * @typedef {import('./queuingstrategies').QueuingStrategy\n * } QueuingStrategy\n * @typedef {import('./queuingstrategies').QueuingStrategySize\n * } QueuingStrategySize\n *\n * @callback UnderlyingSinkStartCallback\n * @param {WritableStreamDefaultController} controller\n *\n * @callback UnderlyingSinkWriteCallback\n * @param {any} chunk\n * @param {WritableStreamDefaultController} controller\n * @returns {Promise<void>}\n *\n * @callback UnderlyingSinkCloseCallback\n * @returns {Promise<void>}\n *\n * @callback UnderlyingSinkAbortCallback\n * @param {any} reason\n * @returns {Promise<void>}\n *\n * @typedef {{\n *   start? : UnderlyingSinkStartCallback\x2C\n *   write? : UnderlyingSinkWriteCallback\x2C\n *   close? : UnderlyingSinkCloseCallback\x2C\n *   abort? : UnderlyingSinkAbortCallback\x2C\n *   type? : any\x2C\n * }} UnderlyingSink\n */\n\nclass WritableStream {\n  [kType] = 'WritableStream';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  /**\n   * @param {UnderlyingSink} [sink]\n   * @param {QueuingStrategy} [strategy]\n   */\n  constructor(sink = null\x2C strategy = {}) {\n    const type = sink?.type;\n    if (type !== undefined)\n      throw new ERR_INVALID_ARG_VALUE.RangeError('type'\x2C type);\n\n    this[kState] = {\n      close: createDeferredPromise()\x2C\n      closeRequest: {\n        promise: undefined\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      }\x2C\n      inFlightWriteRequest: {\n        promise: undefined\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      }\x2C\n      inFlightCloseRequest: {\n        promise: undefined\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      }\x2C\n      pendingAbortRequest: {\n        abort: {\n          promise: undefined\x2C\n          resolve: undefined\x2C\n          reject: undefined\x2C\n        }\x2C\n        reason: undefined\x2C\n        wasAlreadyErroring: false\x2C\n      }\x2C\n      backpressure: false\x2C\n      controller: undefined\x2C\n      state: 'writable'\x2C\n      storedError: undefined\x2C\n      writeRequests: []\x2C\n      writer: undefined\x2C\n      transfer: {\n        readable: undefined\x2C\n        port1: undefined\x2C\n        port2: undefined\x2C\n        promise: undefined\x2C\n      }\n    };\n\n    const size = extractSizeAlgorithm(strategy?.size);\n    const highWaterMark = extractHighWaterMark(strategy?.highWaterMark\x2C 1);\n\n    setupWritableStreamDefaultControllerFromSink(\n      this\x2C\n      sink\x2C\n      highWaterMark\x2C\n      size);\n\n    // eslint-disable-next-line no-constructor-return\n    return makeTransferable(this);\n  }\n\n  /**\n   * @readonly\n   * @type {boolean}\n   */\n  get locked() {\n    if (!isWritableStream(this))\n      throw new ERR_INVALID_THIS('WritableStream');\n    return isWritableStreamLocked(this);\n  }\n\n  /**\n   * @param {any} reason\n   * @returns {Promise<vois>}\n   */\n  abort(reason = undefined) {\n    if (!isWritableStream(this))\n      return PromiseReject(new ERR_INVALID_THIS('WritableStream'));\n    if (isWritableStreamLocked(this)) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError('WritableStream is locked'));\n    }\n    return writableStreamAbort(this\x2C reason);\n  }\n\n  /**\n   * @returns {Promise<void>}\n   */\n  close() {\n    if (!isWritableStream(this))\n      return PromiseReject(new ERR_INVALID_THIS('WritableStream'));\n    if (isWritableStreamLocked(this)) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError('WritableStream is locked'));\n    }\n    if (writableStreamCloseQueuedOrInFlight(this)) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError('Failure closing WritableStream'));\n    }\n    return writableStreamClose(this);\n  }\n\n  /**\n   * @returns {WritableStreamDefaultWriter}\n   */\n  getWriter() {\n    if (!isWritableStream(this))\n      throw new ERR_INVALID_THIS('WritableStream');\n    return new WritableStreamDefaultWriter(this);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      locked: this.locked\x2C\n      state: this[kState].state\x2C\n    });\n  }\n\n  [kTransfer]() {\n    if (!isWritableStream(this))\n      throw new ERR_INVALID_THIS('WritableStream');\n    if (this.locked) {\n      this[kState].transfer.port1?.close();\n      this[kState].transfer.port1 = undefined;\n      this[kState].transfer.port2 = undefined;\n      throw new DOMException(\n        'Cannot transfer a locked WritableStream'\x2C\n        'DataCloneError');\n    }\n\n    const {\n      readable\x2C\n      promise\x2C\n    } = lazyTransfer().newCrossRealmReadableStream(\n      this\x2C\n      this[kState].transfer.port1);\n\n    this[kState].transfer.readable = readable;\n    this[kState].transfer.promise = promise;\n\n    setPromiseHandled(this[kState].transfer.promise);\n\n    return {\n      data: { port: this[kState].transfer.port2 }\x2C\n      deserializeInfo:\n        'internal/webstreams/writablestream:TransferredWritableStream'\n    };\n  }\n\n  [kTransferList]() {\n    const { port1\x2C port2 } = new MessageChannel();\n    this[kState].transfer.port1 = port1;\n    this[kState].transfer.port2 = port2;\n    return [ port2 ];\n  }\n\n  [kDeserialize]({ port }) {\n    const transfer = lazyTransfer();\n    setupWritableStreamDefaultControllerFromSink(\n      this\x2C\n      new transfer.CrossRealmTransformWritableSink(port)\x2C\n      1\x2C\n      () => 1);\n  }\n}\n\nObjectDefineProperties(WritableStream.prototype\x2C {\n  locked: kEnumerableProperty\x2C\n  abort: kEnumerableProperty\x2C\n  close: kEnumerableProperty\x2C\n  getWriter: kEnumerableProperty\x2C\n});\n\nfunction TransferredWritableStream() {\n  return makeTransferable(ReflectConstruct(\n    function() {\n      this[kType] = 'WritableStream';\n      this[kState] = {\n        close: createDeferredPromise()\x2C\n        closeRequest: {\n          promise: undefined\x2C\n          resolve: undefined\x2C\n          reject: undefined\x2C\n        }\x2C\n        inFlightWriteRequest: {\n          promise: undefined\x2C\n          resolve: undefined\x2C\n          reject: undefined\x2C\n        }\x2C\n        inFlightCloseRequest: {\n          promise: undefined\x2C\n          resolve: undefined\x2C\n          reject: undefined\x2C\n        }\x2C\n        pendingAbortRequest: {\n          abort: {\n            promise: undefined\x2C\n            resolve: undefined\x2C\n            reject: undefined\x2C\n          }\x2C\n          reason: undefined\x2C\n          wasAlreadyErroring: false\x2C\n        }\x2C\n        backpressure: false\x2C\n        controller: undefined\x2C\n        state: 'writable'\x2C\n        storedError: undefined\x2C\n        writeRequests: []\x2C\n        writer: undefined\x2C\n        transfer: {\n          promise: undefined\x2C\n          port1: undefined\x2C\n          port2: undefined\x2C\n          readable: undefined\x2C\n        }\x2C\n      };\n    }\x2C\n    []\x2C WritableStream));\n}\nTransferredWritableStream.prototype[kDeserialize] = () => {};\n\nclass WritableStreamDefaultWriter {\n  [kType] = 'WritableStreamDefaultWriter';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  /**\n   * @param {WritableStream} stream\n   */\n  constructor(stream) {\n    if (!isWritableStream(stream))\n      throw new ERR_INVALID_ARG_TYPE('stream'\x2C 'WritableStream'\x2C stream);\n    this[kState] = {\n      stream: undefined\x2C\n      close: {\n        promise: undefined\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      }\x2C\n      ready: {\n        promise: undefined\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      }\n    };\n    setupWritableStreamDefaultWriter(this\x2C stream);\n  }\n\n  /**\n   * @readonly\n   * @type {Promise<void>}\n   */\n  get closed() {\n    if (!isWritableStreamDefaultWriter(this))\n      return PromiseReject(new ERR_INVALID_THIS('WritableStreamDefaultWriter'));\n    return this[kState].close.promise;\n  }\n\n  /**\n   * @readonly\n   * @type {number}\n   */\n  get desiredSize() {\n    if (!isWritableStreamDefaultWriter(this))\n      throw new ERR_INVALID_THIS('WritableStreamDefaultWriter');\n    if (this[kState].stream === undefined) {\n      throw new ERR_INVALID_STATE.TypeError(\n        'Writer is not bound to a WritableStream');\n    }\n    return writableStreamDefaultWriterGetDesiredSize(this);\n  }\n\n  /**\n   * @readonly\n   * @type {Promise<void>}\n   */\n  get ready() {\n    if (!isWritableStreamDefaultWriter(this))\n      return PromiseReject(new ERR_INVALID_THIS('WritableStreamDefaultWriter'));\n    return this[kState].ready.promise;\n  }\n\n  /**\n   * @param {any} reason\n   * @returns {Promise<void>}\n   */\n  abort(reason = undefined) {\n    if (!isWritableStreamDefaultWriter(this))\n      return PromiseReject(new ERR_INVALID_THIS('WritableStreamDefaultWriter'));\n    if (this[kState].stream === undefined) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError(\n          'Writer is not bound to a WritableStream'));\n    }\n    return writableStreamDefaultWriterAbort(this\x2C reason);\n  }\n\n  /**\n   * @returns {Promise<void>}\n   */\n  close() {\n    if (!isWritableStreamDefaultWriter(this))\n      return PromiseReject(new ERR_INVALID_THIS('WritableStreamDefaultWriter'));\n    const {\n      stream\x2C\n    } = this[kState];\n    if (stream === undefined) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError(\n          'Writer is not bound to a WritableStream'));\n    }\n    if (writableStreamCloseQueuedOrInFlight(stream)) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError('Failure to close WritableStream'));\n    }\n    return writableStreamDefaultWriterClose(this);\n  }\n\n  releaseLock() {\n    if (!isWritableStreamDefaultWriter(this))\n      throw new ERR_INVALID_THIS('WritableStreamDefaultWriter');\n    const {\n      stream\x2C\n    } = this[kState];\n    if (stream === undefined)\n      return;\n    assert(stream[kState].writer !== undefined);\n    writableStreamDefaultWriterRelease(this);\n  }\n\n  /**\n   * @param {any} chunk\n   * @returns {Promise<void>}\n   */\n  write(chunk = undefined) {\n    if (!isWritableStreamDefaultWriter(this))\n      return PromiseReject(new ERR_INVALID_THIS('WritableStreamDefaultWriter'));\n    if (this[kState].stream === undefined) {\n      return PromiseReject(\n        new ERR_INVALID_STATE.TypeError(\n          'Writer is not bound to a WritableStream'));\n    }\n    return writableStreamDefaultWriterWrite(this\x2C chunk);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      stream: this[kState].stream\x2C\n      close: this[kState].close.promise\x2C\n      ready: this[kState].ready.promise\x2C\n      desiredSize: this.desiredSize\x2C\n    });\n  }\n}\n\nObjectDefineProperties(WritableStreamDefaultWriter.prototype\x2C {\n  closed: kEnumerableProperty\x2C\n  ready: kEnumerableProperty\x2C\n  desiredSize: kEnumerableProperty\x2C\n  abort: kEnumerableProperty\x2C\n  close: kEnumerableProperty\x2C\n  releaseLock: kEnumerableProperty\x2C\n  write: kEnumerableProperty\x2C\n});\n\nclass WritableStreamDefaultController {\n  [kType] = 'WritableStreamDefaultController';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  constructor() {\n    throw new ERR_ILLEGAL_CONSTRUCTOR();\n  }\n\n  [kAbort](reason) {\n    const result = this[kState].abortAlgorithm(reason);\n    writableStreamDefaultControllerClearAlgorithms(this);\n    return result;\n  }\n\n  [kError]() {\n    resetQueue(this);\n  }\n\n  /**\n   * @type {any}\n   */\n  get abortReason() {\n    if (!isWritableStreamDefaultController(this))\n      throw new ERR_INVALID_THIS('WritableStreamDefaultController');\n    return this[kState].abortReason;\n  }\n\n  /**\n   * @type {AbortSignal}\n   */\n  get signal() {\n    if (!isWritableStreamDefaultController(this))\n      throw new ERR_INVALID_THIS('WritableStreamDefaultController');\n    return this[kState].abortController.signal;\n  }\n\n  /**\n   * @param {any} error\n   */\n  error(error = undefined) {\n    if (!isWritableStreamDefaultController(this))\n      throw new ERR_INVALID_THIS('WritableStreamDefaultController');\n    if (this[kState].stream[kState].state !== 'writable')\n      return;\n    writableStreamDefaultControllerError(this\x2C error);\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      stream: this[kState].stream\x2C\n    });\n  }\n}\n\nObjectDefineProperties(WritableStreamDefaultController.prototype\x2C {\n  abortReason: kEnumerableProperty\x2C\n  signal: kEnumerableProperty\x2C\n  error: kEnumerableProperty\x2C\n});\n\nfunction createWritableStreamDefaultController() {\n  return ReflectConstruct(\n    function() {\n      this[kType] = 'WritableStreamDefaultController';\n    }\x2C\n    []\x2C WritableStreamDefaultController);\n}\n\nconst isWritableStream =\n  isBrandCheck('WritableStream');\nconst isWritableStreamDefaultWriter =\n  isBrandCheck('WritableStreamDefaultWriter');\nconst isWritableStreamDefaultController =\n  isBrandCheck('WritableStreamDefaultController');\n\nfunction isWritableStreamLocked(stream) {\n  return stream[kState].writer !== undefined;\n}\n\nfunction setupWritableStreamDefaultWriter(writer\x2C stream) {\n  if (isWritableStreamLocked(stream))\n    throw new ERR_INVALID_STATE.TypeError('WritableStream is locked');\n  writer[kState].stream = stream;\n  stream[kState].writer = writer;\n  switch (stream[kState].state) {\n    case 'writable':\n      if (!writableStreamCloseQueuedOrInFlight(stream) &&\n          stream[kState].backpressure) {\n        writer[kState].ready = createDeferredPromise();\n      } else {\n        writer[kState].ready = {\n          promise: PromiseResolve()\x2C\n          resolve: undefined\x2C\n          reject: undefined\x2C\n        };\n      }\n      setClosedPromiseToNewPromise();\n      break;\n    case 'erroring':\n      writer[kState].ready = {\n        promise: PromiseReject(stream[kState].storedError)\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      };\n      setPromiseHandled(writer[kState].ready.promise);\n      setClosedPromiseToNewPromise();\n      break;\n    case 'closed':\n      writer[kState].ready = {\n        promise: PromiseResolve()\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      };\n      writer[kState].close = {\n        promise: PromiseResolve()\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      };\n      break;\n    default:\n      writer[kState].ready = {\n        promise: PromiseReject(stream[kState].storedError)\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      };\n      writer[kState].close = {\n        promise: PromiseReject(stream[kState].storedError)\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      };\n      setPromiseHandled(writer[kState].ready.promise);\n      setPromiseHandled(writer[kState].close.promise);\n  }\n\n  function setClosedPromiseToNewPromise() {\n    writer[kState].close = createDeferredPromise();\n  }\n}\n\nfunction writableStreamAbort(stream\x2C reason) {\n  const {\n    state\x2C\n    controller\x2C\n  } = stream[kState];\n  if (state === 'closed' || state === 'errored')\n    return PromiseResolve();\n\n  controller[kState].abortReason = reason;\n  controller[kState].abortController.abort();\n\n  if (stream[kState].pendingAbortRequest.abort.promise !== undefined)\n    return stream[kState].pendingAbortRequest.abort.promise;\n\n  assert(state === 'writable' || state === 'erroring');\n\n  let wasAlreadyErroring = false;\n  if (state === 'erroring') {\n    wasAlreadyErroring = true;\n    reason = undefined;\n  }\n\n  const abort = createDeferredPromise();\n\n  stream[kState].pendingAbortRequest = {\n    abort\x2C\n    reason\x2C\n    wasAlreadyErroring\x2C\n  };\n\n  if (!wasAlreadyErroring)\n    writableStreamStartErroring(stream\x2C reason);\n\n  return abort.promise;\n}\n\nfunction writableStreamClose(stream) {\n  const {\n    state\x2C\n    writer\x2C\n    backpressure\x2C\n    controller\x2C\n  } = stream[kState];\n  if (state === 'closed' || state === 'errored') {\n    return PromiseReject(\n      new ERR_INVALID_STATE.TypeError('WritableStream is closed'));\n  }\n  assert(state === 'writable' || state === 'erroring');\n  assert(!writableStreamCloseQueuedOrInFlight(stream));\n  stream[kState].closeRequest = createDeferredPromise();\n  const { promise } = stream[kState].closeRequest;\n  if (writer !== undefined && backpressure && state === 'writable')\n    writer[kState].ready.resolve?.();\n  writableStreamDefaultControllerClose(controller);\n  return promise;\n}\n\nfunction writableStreamUpdateBackpressure(stream\x2C backpressure) {\n  assert(stream[kState].state === 'writable');\n  assert(!writableStreamCloseQueuedOrInFlight(stream));\n  const {\n    writer\x2C\n  } = stream[kState];\n  if (writer !== undefined && stream[kState].backpressure !== backpressure) {\n    if (backpressure) {\n      writer[kState].ready = createDeferredPromise();\n    } else {\n      writer[kState].ready.resolve?.();\n    }\n  }\n  stream[kState].backpressure = backpressure;\n}\n\nfunction writableStreamStartErroring(stream\x2C reason) {\n  assert(stream[kState].storedError === undefined);\n  assert(stream[kState].state === 'writable');\n  const {\n    controller\x2C\n    writer\x2C\n  } = stream[kState];\n  assert(controller !== undefined);\n  stream[kState].state = 'erroring';\n  stream[kState].storedError = reason;\n  if (writer !== undefined) {\n    writableStreamDefaultWriterEnsureReadyPromiseRejected(writer\x2C reason);\n  }\n  if (!writableStreamHasOperationMarkedInFlight(stream) &&\n      controller[kState].started) {\n    writableStreamFinishErroring(stream);\n  }\n}\n\nfunction writableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n  assert(stream[kState].state === 'errored');\n  if (stream[kState].closeRequest.promise !== undefined) {\n    assert(stream[kState].inFlightCloseRequest.promise === undefined);\n    stream[kState].closeRequest.reject?.(stream[kState].storedError);\n    stream[kState].closeRequest = {\n      promise: undefined\x2C\n      reject: undefined\x2C\n      resolve: undefined\x2C\n    };\n  }\n  const {\n    writer\x2C\n  } = stream[kState];\n  if (writer !== undefined) {\n    writer[kState].close.reject?.(stream[kState].storedError);\n    setPromiseHandled(writer[kState].close.promise);\n  }\n}\n\nfunction writableStreamMarkFirstWriteRequestInFlight(stream) {\n  assert(stream[kState].inFlightWriteRequest.promise === undefined);\n  assert(stream[kState].writeRequests.length);\n  const writeRequest = ArrayPrototypeShift(stream[kState].writeRequests);\n  stream[kState].inFlightWriteRequest = writeRequest;\n}\n\nfunction writableStreamMarkCloseRequestInFlight(stream) {\n  assert(stream[kState].inFlightWriteRequest.promise === undefined);\n  assert(stream[kState].closeRequest.promise !== undefined);\n  stream[kState].inFlightCloseRequest = stream[kState].closeRequest;\n  stream[kState].closeRequest = {\n    promise: undefined\x2C\n    resolve: undefined\x2C\n    reject: undefined\x2C\n  };\n}\n\nfunction writableStreamHasOperationMarkedInFlight(stream) {\n  const {\n    inFlightWriteRequest\x2C\n    inFlightCloseRequest\x2C\n  } = stream[kState];\n  if (inFlightWriteRequest.promise === undefined &&\n      inFlightCloseRequest.promise === undefined) {\n    return false;\n  }\n  return true;\n}\n\nfunction writableStreamFinishInFlightWriteWithError(stream\x2C error) {\n  assert(stream[kState].inFlightWriteRequest.promise !== undefined);\n  stream[kState].inFlightWriteRequest.reject?.(error);\n  stream[kState].inFlightWriteRequest = {\n    promise: undefined\x2C\n    resolve: undefined\x2C\n    reject: undefined\x2C\n  };\n  assert(stream[kState].state === 'writable' ||\n         stream[kState].state === 'erroring');\n  writableStreamDealWithRejection(stream\x2C error);\n}\n\nfunction writableStreamFinishInFlightWrite(stream) {\n  assert(stream[kState].inFlightWriteRequest.promise !== undefined);\n  stream[kState].inFlightWriteRequest.resolve?.();\n  stream[kState].inFlightWriteRequest = {\n    promise: undefined\x2C\n    resolve: undefined\x2C\n    reject: undefined\x2C\n  };\n}\n\nfunction writableStreamFinishInFlightCloseWithError(stream\x2C error) {\n  assert(stream[kState].inFlightCloseRequest.promise !== undefined);\n  stream[kState].inFlightCloseRequest.reject?.(error);\n  stream[kState].inFlightCloseRequest = {\n    promise: undefined\x2C\n    resolve: undefined\x2C\n    reject: undefined\x2C\n  };\n  assert(stream[kState].state === 'writable' ||\n         stream[kState].state === 'erroring');\n  if (stream[kState].pendingAbortRequest.abort.promise !== undefined) {\n    stream[kState].pendingAbortRequest.abort.reject?.(error);\n    stream[kState].pendingAbortRequest = {\n      abort: {\n        promise: undefined\x2C\n        resolve: undefined\x2C\n        reject: undefined\x2C\n      }\x2C\n      reason: undefined\x2C\n      wasAlreadyErroring: false\x2C\n    };\n  }\n  writableStreamDealWithRejection(stream\x2C error);\n}\n\nfunction writableStreamFinishInFlightClose(stream) {\n  assert(stream[kState].inFlightCloseRequest.promise !== undefined);\n  stream[kState].inFlightCloseRequest.resolve?.();\n  stream[kState].inFlightCloseRequest = {\n    promise: undefined\x2C\n    resolve: undefined\x2C\n    reject: undefined\x2C\n  };\n  if (stream[kState].state === 'erroring') {\n    stream[kState].storedError = undefined;\n    if (stream[kState].pendingAbortRequest.abort.promise !== undefined) {\n      stream[kState].pendingAbortRequest.abort.resolve?.();\n      stream[kState].pendingAbortRequest = {\n        abort: {\n          promise: undefined\x2C\n          resolve: undefined\x2C\n          reject: undefined\x2C\n        }\x2C\n        reason: undefined\x2C\n        wasAlreadyErroring: false\x2C\n      };\n    }\n  }\n  stream[kState].state = 'closed';\n  if (stream[kState].writer !== undefined)\n    stream[kState].writer[kState].close.resolve?.();\n  assert(stream[kState].pendingAbortRequest.abort.promise === undefined);\n  assert(stream[kState].storedError === undefined);\n}\n\nfunction writableStreamFinishErroring(stream) {\n  assert(stream[kState].state === 'erroring');\n  assert(!writableStreamHasOperationMarkedInFlight(stream));\n  stream[kState].state = 'errored';\n  stream[kState].controller[kError]();\n  const storedError = stream[kState].storedError;\n  for (let n = 0; n < stream[kState].writeRequests.length; n++)\n    stream[kState].writeRequests[n].reject?.(storedError);\n  stream[kState].writeRequests = [];\n\n  if (stream[kState].pendingAbortRequest.abort.promise === undefined) {\n    writableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n    return;\n  }\n\n  const abortRequest = stream[kState].pendingAbortRequest;\n  stream[kState].pendingAbortRequest = {\n    abort: {\n      promise: undefined\x2C\n      resolve: undefined\x2C\n      reject: undefined\x2C\n    }\x2C\n    reason: undefined\x2C\n    wasAlreadyErroring: false\x2C\n  };\n  if (abortRequest.wasAlreadyErroring) {\n    abortRequest.abort.reject?.(storedError);\n    writableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n    return;\n  }\n  PromisePrototypeThen(\n    ensureIsPromise(\n      stream[kState].controller[kAbort]\x2C\n      stream[kState].controller\x2C\n      abortRequest.reason)\x2C\n    () => {\n      abortRequest.abort.resolve?.();\n      writableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n    }\x2C\n    (error) => {\n      abortRequest.abort.reject?.(error);\n      writableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n    });\n}\n\nfunction writableStreamDealWithRejection(stream\x2C error) {\n  const {\n    state\x2C\n  } = stream[kState];\n  if (state === 'writable') {\n    writableStreamStartErroring(stream\x2C error);\n    return;\n  }\n\n  assert(state === 'erroring');\n  writableStreamFinishErroring(stream);\n}\n\nfunction writableStreamCloseQueuedOrInFlight(stream) {\n  if (stream[kState].closeRequest.promise === undefined &&\n      stream[kState].inFlightCloseRequest.promise === undefined) {\n    return false;\n  }\n  return true;\n}\n\nfunction writableStreamAddWriteRequest(stream) {\n  assert(isWritableStreamLocked(stream));\n  assert(stream[kState].state === 'writable');\n  const {\n    promise\x2C\n    resolve\x2C\n    reject\x2C\n  } = createDeferredPromise();\n  ArrayPrototypePush(\n    stream[kState].writeRequests\x2C\n    {\n      promise\x2C\n      resolve\x2C\n      reject\x2C\n    });\n  return promise;\n}\n\nfunction writableStreamDefaultWriterWrite(writer\x2C chunk) {\n  const {\n    stream\x2C\n  } = writer[kState];\n  assert(stream !== undefined);\n  const {\n    controller\x2C\n  } = stream[kState];\n  const chunkSize = writableStreamDefaultControllerGetChunkSize(\n    controller\x2C\n    chunk);\n  if (stream !== writer[kState].stream) {\n    return PromiseReject(\n      new ERR_INVALID_STATE.TypeError('Mismatched WritableStreams'));\n  }\n  const {\n    state\x2C\n  } = stream[kState];\n\n  if (state === 'errored')\n    return PromiseReject(stream[kState].storedError);\n\n  if (writableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n    return PromiseReject(\n      new ERR_INVALID_STATE.TypeError('WritableStream is closed'));\n  }\n\n  if (state === 'erroring')\n    return PromiseReject(stream[kState].storedError);\n\n  assert(state === 'writable');\n\n  const promise = writableStreamAddWriteRequest(stream);\n  writableStreamDefaultControllerWrite(controller\x2C chunk\x2C chunkSize);\n  return promise;\n}\n\nfunction writableStreamDefaultWriterRelease(writer) {\n  const {\n    stream\x2C\n  } = writer[kState];\n  assert(stream !== undefined);\n  assert(stream[kState].writer === writer);\n  const releasedError =\n    new ERR_INVALID_STATE.TypeError('Writer has been released');\n  writableStreamDefaultWriterEnsureReadyPromiseRejected(writer\x2C releasedError);\n  writableStreamDefaultWriterEnsureClosedPromiseRejected(writer\x2C releasedError);\n  stream[kState].writer = undefined;\n  writer[kState].stream = undefined;\n}\n\nfunction writableStreamDefaultWriterGetDesiredSize(writer) {\n  const {\n    stream\x2C\n  } = writer[kState];\n  switch (stream[kState].state) {\n    case 'errored':\n      // Fall through\n    case 'erroring':\n      return null;\n    case 'closed':\n      return 0;\n  }\n  return writableStreamDefaultControllerGetDesiredSize(\n    stream[kState].controller);\n}\n\nfunction writableStreamDefaultWriterEnsureReadyPromiseRejected(writer\x2C error) {\n  if (isPromisePending(writer[kState].ready.promise)) {\n    writer[kState].ready.reject?.(error);\n  } else {\n    writer[kState].ready = {\n      promise: PromiseReject(error)\x2C\n      resolve: undefined\x2C\n      reject: undefined\x2C\n    };\n  }\n  setPromiseHandled(writer[kState].ready.promise);\n}\n\nfunction writableStreamDefaultWriterEnsureClosedPromiseRejected(writer\x2C error) {\n  if (isPromisePending(writer[kState].close.promise)) {\n    writer[kState].close.reject?.(error);\n  } else {\n    writer[kState].close = {\n      promise: PromiseReject(error)\x2C\n      resolve: undefined\x2C\n      reject: undefined\x2C\n    };\n  }\n  setPromiseHandled(writer[kState].close.promise);\n}\n\nfunction writableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n  const {\n    stream\x2C\n  } = writer[kState];\n  assert(stream !== undefined);\n  const {\n    state\x2C\n  } = stream[kState];\n  if (writableStreamCloseQueuedOrInFlight(stream) || state === 'closed')\n    return PromiseResolve();\n\n  if (state === 'errored')\n    return PromiseReject(stream[kState].storedError);\n\n  assert(state === 'writable' || state === 'erroring');\n\n  return writableStreamDefaultWriterClose(writer);\n}\n\nfunction writableStreamDefaultWriterClose(writer) {\n  const {\n    stream\x2C\n  } = writer[kState];\n  assert(stream !== undefined);\n  return writableStreamClose(stream);\n}\n\nfunction writableStreamDefaultWriterAbort(writer\x2C reason) {\n  const {\n    stream\x2C\n  } = writer[kState];\n  assert(stream !== undefined);\n  return writableStreamAbort(stream\x2C reason);\n}\n\nfunction writableStreamDefaultControllerWrite(controller\x2C chunk\x2C chunkSize) {\n  try {\n    enqueueValueWithSize(controller\x2C chunk\x2C chunkSize);\n  } catch (error) {\n    writableStreamDefaultControllerErrorIfNeeded(controller\x2C error);\n    return;\n  }\n  const {\n    stream\x2C\n  } = controller[kState];\n  if (!writableStreamCloseQueuedOrInFlight(stream) &&\n      stream[kState].state === 'writable') {\n    writableStreamUpdateBackpressure(\n      stream\x2C\n      writableStreamDefaultControllerGetBackpressure(controller));\n  }\n  writableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\nfunction writableStreamDefaultControllerProcessWrite(controller\x2C chunk) {\n  const {\n    stream\x2C\n    writeAlgorithm\x2C\n  } = controller[kState];\n  writableStreamMarkFirstWriteRequestInFlight(stream);\n\n  PromisePrototypeThen(\n    ensureIsPromise(writeAlgorithm\x2C controller\x2C chunk\x2C controller)\x2C\n    () => {\n      writableStreamFinishInFlightWrite(stream);\n      const {\n        state\x2C\n      } = stream[kState];\n      assert(state === 'writable' || state === 'erroring');\n      dequeueValue(controller);\n      if (!writableStreamCloseQueuedOrInFlight(stream) &&\n          state === 'writable') {\n        writableStreamUpdateBackpressure(\n          stream\x2C\n          writableStreamDefaultControllerGetBackpressure(controller));\n      }\n      writableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\x2C\n    (error) => {\n      if (stream[kState].state === 'writable')\n        writableStreamDefaultControllerClearAlgorithms(controller);\n      writableStreamFinishInFlightWriteWithError(stream\x2C error);\n    });\n\n}\n\nfunction writableStreamDefaultControllerProcessClose(controller) {\n  const {\n    closeAlgorithm\x2C\n    queue\x2C\n    stream\x2C\n  } = controller[kState];\n  writableStreamMarkCloseRequestInFlight(stream);\n  dequeueValue(controller);\n  assert(!queue.length);\n  const sinkClosePromise = ensureIsPromise(closeAlgorithm\x2C controller);\n  writableStreamDefaultControllerClearAlgorithms(controller);\n  PromisePrototypeThen(\n    sinkClosePromise\x2C\n    () => writableStreamFinishInFlightClose(stream)\x2C\n    (error) => writableStreamFinishInFlightCloseWithError(stream\x2C error));\n}\n\nfunction writableStreamDefaultControllerGetDesiredSize(controller) {\n  const {\n    highWaterMark\x2C\n    queueTotalSize\x2C\n  } = controller[kState];\n  return highWaterMark - queueTotalSize;\n}\n\nfunction writableStreamDefaultControllerGetChunkSize(controller\x2C chunk) {\n  try {\n    return FunctionPrototypeCall(\n      controller[kState].sizeAlgorithm\x2C\n      undefined\x2C\n      chunk);\n  } catch (error) {\n    writableStreamDefaultControllerErrorIfNeeded(controller\x2C error);\n    return 1;\n  }\n}\n\nfunction writableStreamDefaultControllerErrorIfNeeded(controller\x2C error) {\n  const {\n    stream\x2C\n  } = controller[kState];\n  if (stream[kState].state === 'writable')\n    writableStreamDefaultControllerError(controller\x2C error);\n}\n\nfunction writableStreamDefaultControllerError(controller\x2C error) {\n  const {\n    stream\x2C\n  } = controller[kState];\n  assert(stream[kState].state === 'writable');\n  writableStreamDefaultControllerClearAlgorithms(controller);\n  writableStreamStartErroring(stream\x2C error);\n}\n\nfunction writableStreamDefaultControllerClose(controller) {\n  enqueueValueWithSize(controller\x2C kCloseSentinel\x2C 0);\n  writableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\nfunction writableStreamDefaultControllerClearAlgorithms(controller) {\n  controller[kState].writeAlgorithm = undefined;\n  controller[kState].closeAlgorithm = undefined;\n  controller[kState].abortAlgorithm = undefined;\n  controller[kState].sizeAlgorithm = undefined;\n}\n\nfunction writableStreamDefaultControllerGetBackpressure(controller) {\n  return writableStreamDefaultControllerGetDesiredSize(controller) <= 0;\n}\n\nfunction writableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n  const {\n    queue\x2C\n    started\x2C\n    stream\x2C\n  } = controller[kState];\n  if (!started || stream[kState].inFlightWriteRequest.promise !== undefined)\n    return;\n\n  if (stream[kState].state === 'erroring') {\n    writableStreamFinishErroring(stream);\n    return;\n  }\n\n  if (!queue.length)\n    return;\n\n  const value = peekQueueValue(controller);\n  if (value === kCloseSentinel)\n    writableStreamDefaultControllerProcessClose(controller);\n  else\n    writableStreamDefaultControllerProcessWrite(controller\x2C value);\n}\n\nfunction setupWritableStreamDefaultControllerFromSink(\n  stream\x2C\n  sink\x2C\n  highWaterMark\x2C\n  sizeAlgorithm) {\n  const controller = createWritableStreamDefaultController();\n  const start = sink?.start;\n  const write = sink?.write;\n  const close = sink?.close;\n  const abort = sink?.abort;\n  const startAlgorithm = start ?\n    FunctionPrototypeBind(start\x2C sink\x2C controller) :\n    nonOpStart;\n  const writeAlgorithm = write ?\n    FunctionPrototypeBind(write\x2C sink) :\n    nonOpWrite;\n  const closeAlgorithm = close ?\n    FunctionPrototypeBind(close\x2C sink) : nonOpCancel;\n  const abortAlgorithm = abort ?\n    FunctionPrototypeBind(abort\x2C sink) : nonOpCancel;\n  setupWritableStreamDefaultController(\n    stream\x2C\n    controller\x2C\n    startAlgorithm\x2C\n    writeAlgorithm\x2C\n    closeAlgorithm\x2C\n    abortAlgorithm\x2C\n    highWaterMark\x2C\n    sizeAlgorithm);\n}\n\nfunction setupWritableStreamDefaultController(\n  stream\x2C\n  controller\x2C\n  startAlgorithm\x2C\n  writeAlgorithm\x2C\n  closeAlgorithm\x2C\n  abortAlgorithm\x2C\n  highWaterMark\x2C\n  sizeAlgorithm) {\n  assert(isWritableStream(stream));\n  assert(stream[kState].controller === undefined);\n  controller[kState] = {\n    abortAlgorithm\x2C\n    abortReason: undefined\x2C\n    closeAlgorithm\x2C\n    highWaterMark\x2C\n    queue: []\x2C\n    queueTotalSize: 0\x2C\n    abortController: new AbortController()\x2C\n    sizeAlgorithm\x2C\n    started: false\x2C\n    stream\x2C\n    writeAlgorithm\x2C\n  };\n  stream[kState].controller = controller;\n\n  writableStreamUpdateBackpressure(\n    stream\x2C\n    writableStreamDefaultControllerGetBackpressure(controller));\n\n  const startResult = startAlgorithm();\n\n  PromisePrototypeThen(\n    PromiseResolve(startResult)\x2C\n    () => {\n      assert(stream[kState].state === 'writable' ||\n             stream[kState].state === 'erroring');\n      controller[kState].started = true;\n      writableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\x2C\n    (error) => {\n      assert(stream[kState].state === 'writable' ||\n             stream[kState].state === 'erroring');\n      controller[kState].started = true;\n      writableStreamDealWithRejection(stream\x2C error);\n    });\n}\n\nmodule.exports = {\n  WritableStream\x2C\n  WritableStreamDefaultWriter\x2C\n  WritableStreamDefaultController\x2C\n  TransferredWritableStream\x2C\n\n  // Exported Brand Checks\n  isWritableStream\x2C\n  isWritableStreamDefaultController\x2C\n  isWritableStreamDefaultWriter\x2C\n\n  isWritableStreamLocked\x2C\n  setupWritableStreamDefaultWriter\x2C\n  writableStreamAbort\x2C\n  writableStreamClose\x2C\n  writableStreamUpdateBackpressure\x2C\n  writableStreamStartErroring\x2C\n  writableStreamRejectCloseAndClosedPromiseIfNeeded\x2C\n  writableStreamMarkFirstWriteRequestInFlight\x2C\n  writableStreamMarkCloseRequestInFlight\x2C\n  writableStreamHasOperationMarkedInFlight\x2C\n  writableStreamFinishInFlightWriteWithError\x2C\n  writableStreamFinishInFlightWrite\x2C\n  writableStreamFinishInFlightCloseWithError\x2C\n  writableStreamFinishInFlightClose\x2C\n  writableStreamFinishErroring\x2C\n  writableStreamDealWithRejection\x2C\n  writableStreamCloseQueuedOrInFlight\x2C\n  writableStreamAddWriteRequest\x2C\n  writableStreamDefaultWriterWrite\x2C\n  writableStreamDefaultWriterRelease\x2C\n  writableStreamDefaultWriterGetDesiredSize\x2C\n  writableStreamDefaultWriterEnsureReadyPromiseRejected\x2C\n  writableStreamDefaultWriterEnsureClosedPromiseRejected\x2C\n  writableStreamDefaultWriterCloseWithErrorPropagation\x2C\n  writableStreamDefaultWriterClose\x2C\n  writableStreamDefaultWriterAbort\x2C\n  writableStreamDefaultControllerWrite\x2C\n  writableStreamDefaultControllerProcessWrite\x2C\n  writableStreamDefaultControllerProcessClose\x2C\n  writableStreamDefaultControllerGetDesiredSize\x2C\n  writableStreamDefaultControllerGetChunkSize\x2C\n  writableStreamDefaultControllerErrorIfNeeded\x2C\n  writableStreamDefaultControllerError\x2C\n  writableStreamDefaultControllerClose\x2C\n  writableStreamDefaultControllerClearAlgorithms\x2C\n  writableStreamDefaultControllerGetBackpressure\x2C\n  writableStreamDefaultControllerAdvanceQueueIfNeeded\x2C\n  setupWritableStreamDefaultControllerFromSink\x2C\n  setupWritableStreamDefaultController\x2C\n};\n\n/* eslint-enable no-use-before-define */\n
code-source-info,0x1fe027d143fe,138,0,36581,C0O0C4O36581,,
code-creation,Function,10,215886,0x1fe027d172ae,1564, node:internal/webstreams/writablestream:1:1,0x1fe027d14368,~
code-source-info,0x1fe027d172ae,138,0,36581,C0O0C381O68C387O90C393O113C399O138C405O163C410O189C416O213C422O231C428O248C434O268C439O278C444O470C447O470C452O470C457O338C463O367C469O394C475O420C481O443C487O527C490O527C495O509C501O628C504O628C509O568C515O614C520O685C523O685C528O665C534O795C537O795C542O727C547O743C552O756C557O773C563O1166C566O1166C571O850C577O867C583O883C589O902C595O926C601O950C607O974C613O990C618O1006C624O1026C630O1044C636O1058C642O1079C648O1094C654O1108C660O1122C666O1131C672O1141C677O1235C680O1235C685O1214C691O1289C694O1289C698O1289C700O1333C703O1333C707O1333C709O1374C712O1374C716O1374C718O1415C721O1415C725O1415C745O2349C755O2384C787O5267C797O5427C807O6268C817O6450C851O2323C853O6665C856O6703C868O6726C874O6756C880O6786C886O6820C890O6665C895O8061C900O8071C904O8085C926O8137C936O8185C986O11471C1020O8098C1022O11724C1025O11775C1037O11798C1043O11828C1049O11864C1055O11894C1061O11924C1067O11960C1073O11990C1077O11724C1100O12059C1110O12111C1120O12224C1132O12383C1160O13179C1194O12016C1196O13313C1199O13368C1211O13396C1217O13427C1223O13457C1227O13313C1232O13712C1235O13712C1239O13712C1241O13784C1244O13784C1248O13784C1250O13873C1253O13873C1257O13873C1259O34656C1266O34677C1272O34695C1278O34726C1284O34761C1290O34818C1296O34838C1302O34875C1308O34909C1314O34935C1320O34971C1326O34994C1332O35017C1338O35053C1344O35084C1350O35137C1356O35184C1362O35226C1368O35270C1374O35316C1380O35353C1386O35399C1392O35436C1398O35468C1404O35503C1410O35542C1416O35575C1422O35611C1428O35649C1434O35694C1440O35751C1446O35809C1452O35865C1458O35901C1464O35937C1470O35977C1476O36024C1482O36071C1488O36120C1494O36167C1500O36215C1506O36255C1512O36295C1518O36345C1524O36395C1534O36450C1544O36498C1554O34671C1563O36580,,
code-creation,Function,10,215941,0x1fe027d17bbe,16,<instance_members_initializer> node:internal/webstreams/writablestream:483:3,0x1fe027d15bf8,~
code-source-info,0x1fe027d17bbe,138,12058,12101,C3O12068C15O12101,,
code-creation,Function,10,215955,0x1fe027d17c4e,16,<instance_members_initializer> node:internal/webstreams/writablestream:339:3,0x1fe027d15900,~
code-source-info,0x1fe027d17c4e,138,8136,8175,C3O8146C15O8175,,
code-creation,Function,10,215968,0x1fe027d17cd6,16,<instance_members_initializer> node:internal/webstreams/writablestream:112:3,0x1fe027d154b8,~
code-source-info,0x1fe027d17cd6,138,2348,2374,C3O2358C15O2374,,
tick,0x7efc3373a540,215989,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d0b7b4,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acbd7dc,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x7efc33a562bc,216004,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d0b7b4,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acbd7dc,0x13b40bab9d2d,0x13b40bab8ffd,0x36d16acb6ca9,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,216342,0x1fe027d1b3be,14,isBrandCheck node:internal/webstreams/util:112:22,0x36d16acbfca8,~
code-source-info,0x1fe027d1b3be,136,2398,2541,C0O2398C9O2410C13O2539,,
code-creation,Eval,10,216890,0x1fe027d1cc3e,5, node:internal/webstreams/queuingstrategies:1:1,0x1fe027d1c938,~
script-source,139,node:internal/webstreams/queuingstrategies,'use strict';\n\nconst {\n  ObjectDefineProperties\x2C\n  SymbolToStringTag\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_INVALID_THIS\x2C\n    ERR_MISSING_OPTION\x2C\n  }\x2C\n} = require('internal/errors');\n\nconst {\n  customInspectSymbol: kInspect\x2C\n} = require('internal/util');\n\nconst {\n  customInspect\x2C\n  isBrandCheck\x2C\n  kType\x2C\n  kState\x2C\n  kEnumerableProperty\x2C\n} = require('internal/webstreams/util');\n\nconst {\n  validateObject\x2C\n} = require('internal/validators');\n\nconst isByteLengthQueuingStrategy =\n  isBrandCheck('ByteLengthQueuingStrategy');\n\nconst isCountQueuingStrategy =\n  isBrandCheck('CountQueuingStrategy');\n\n/**\n * @callback QueuingStrategySize\n * @param {any} chunk\n * @returns {number}\n *\n * @typedef {{\n *   highWaterMark : number\x2C\n *   size? : QueuingStrategySize\x2C\n * }} QueuingStrategy\n */\n\n// eslint-disable-next-line func-name-matching\x2Cfunc-style\nconst byteSizeFunction = function size(chunk) { return chunk.byteLength; };\n\n// eslint-disable-next-line func-name-matching\x2Cfunc-style\nconst countSizeFunction = function size() { return 1; };\n\n/**\n * @type {QueuingStrategy}\n */\nclass ByteLengthQueuingStrategy {\n  [kType] = 'ByteLengthQueuingStrategy';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  /**\n   * @param {{\n   *   highWaterMark : number\n   * }} init\n   */\n  constructor(init) {\n    validateObject(init\x2C 'init');\n    if (init.highWaterMark === undefined)\n      throw new ERR_MISSING_OPTION('options.highWaterMark');\n\n    // The highWaterMark value is not checked until the strategy\n    // is actually used\x2C per the spec.\n    this[kState] = {\n      highWaterMark: +init.highWaterMark\x2C\n    };\n  }\n\n  /**\n   * @readonly\n   * @type {number}\n   */\n  get highWaterMark() {\n    if (!isByteLengthQueuingStrategy(this))\n      throw new ERR_INVALID_THIS('ByteLengthQueuingStrategy');\n    return this[kState].highWaterMark;\n  }\n\n  /**\n   * @type {QueuingStrategySize}\n   */\n  get size() {\n    if (!isByteLengthQueuingStrategy(this))\n      throw new ERR_INVALID_THIS('ByteLengthQueuingStrategy');\n    return byteSizeFunction;\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      highWaterMark: this.highWaterMark\x2C\n    });\n  }\n}\n\nObjectDefineProperties(ByteLengthQueuingStrategy.prototype\x2C {\n  highWaterMark: kEnumerableProperty\x2C\n  size: kEnumerableProperty\x2C\n});\n\n/**\n * @type {QueuingStrategy}\n */\nclass CountQueuingStrategy {\n  [kType] = 'CountQueuingStrategy';\n\n  get [SymbolToStringTag]() { return this[kType]; }\n\n  /**\n   * @param {{\n   *   highWaterMark : number\n   * }} init\n   */\n  constructor(init) {\n    validateObject(init\x2C 'init');\n    if (init.highWaterMark === undefined)\n      throw new ERR_MISSING_OPTION('options.highWaterMark');\n\n    // The highWaterMark value is not checked until the strategy\n    // is actually used\x2C per the spec.\n    this[kState] = {\n      highWaterMark: +init.highWaterMark\x2C\n    };\n  }\n\n  /**\n   * @readonly\n   * @type {number}\n   */\n  get highWaterMark() {\n    if (!isCountQueuingStrategy(this))\n      throw new ERR_INVALID_THIS('CountQueuingStrategy');\n    return this[kState].highWaterMark;\n  }\n\n  /**\n   * @type {QueuingStrategySize}\n   */\n  get size() {\n    if (!isCountQueuingStrategy(this))\n      throw new ERR_INVALID_THIS('CountQueuingStrategy');\n    return countSizeFunction;\n  }\n\n  [kInspect](depth\x2C options) {\n    return customInspect(depth\x2C options\x2C this[kType]\x2C {\n      highWaterMark: this.highWaterMark\x2C\n    });\n  }\n}\n\nObjectDefineProperties(CountQueuingStrategy.prototype\x2C {\n  highWaterMark: kEnumerableProperty\x2C\n  size: kEnumerableProperty\x2C\n});\n\nmodule.exports = {\n  ByteLengthQueuingStrategy\x2C\n  CountQueuingStrategy\x2C\n};\n
code-source-info,0x1fe027d1cc3e,139,0,3631,C0O0C4O3631,,
tick,0x7efc3363532d,217092,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x36d16acb6cfe,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Function,10,217106,0x1fe027d1d946,404, node:internal/webstreams/queuingstrategies:1:1,0x1fe027d1cba8,~
code-source-info,0x1fe027d1d946,139,0,3631,C0O0C35O25C40O51C45O162C48O162C53O162C58O111C64O133C70O236C73O236C78O222C83O350C86O350C91O273C97O290C102O306C108O315C114O325C119O418C122O418C127O398C133O489C136O489C140O489C142O566C145O566C149O566C151O876C155O876C157O1012C161O1012C180O1116C190O1162C209O2043C244O2232C256O2262C262O2291C266O2183C288O2384C298O2425C317O3287C352O3471C364O3501C370O3530C374O3427C379O3556C386O3577C392O3606C398O3571C403O3630,,
code-creation,Function,10,217126,0x1fe027d1dc0e,16,<instance_members_initializer> node:internal/webstreams/queuingstrategies:114:3,0x1fe027d1d0e8,~
code-source-info,0x1fe027d1dc0e,139,2383,2415,C3O2393C15O2415,,
code-creation,Function,10,217134,0x1fe027d1dc96,16,<instance_members_initializer> node:internal/webstreams/queuingstrategies:58:3,0x1fe027d1cee0,~
code-source-info,0x1fe027d1dc96,139,1115,1152,C3O1125C15O1152,,
code-creation,Eval,10,217427,0x1fe027d1eb1e,5, node:internal/webstreams/encoding:1:1,0x1fe027d1e928,~
script-source,140,node:internal/webstreams/encoding,'use strict';\n\nconst {\n  ObjectDefineProperties\x2C\n  Symbol\x2C\n} = primordials;\n\nconst {\n  TextDecoder\x2C\n  TextEncoder\x2C\n} = require('internal/encoding');\n\nconst {\n  TransformStream\x2C\n} = require('internal/webstreams/transformstream');\n\nconst {\n  customInspect\x2C\n  kEnumerableProperty\x2C\n} = require('internal/webstreams/util');\n\nconst {\n  codes: {\n    ERR_INVALID_THIS\x2C\n  }\x2C\n} = require('internal/errors');\n\nconst {\n  customInspectSymbol: kInspect\n} = require('internal/util');\n\nconst kHandle = Symbol('kHandle');\nconst kTransform = Symbol('kTransform');\nconst kType = Symbol('kType');\n\n/**\n * @typedef {import('./readablestream').ReadableStream} ReadableStream\n * @typedef {import('./writablestream').WritableStream} WritableStream\n */\n\nfunction isTextEncoderStream(value) {\n  return typeof value?.[kHandle] === 'object' &&\n         value?.[kType] === 'TextEncoderStream';\n}\n\nfunction isTextDecoderStream(value) {\n  return typeof value?.[kHandle] === 'object' &&\n         value?.[kType] === 'TextDecoderStream';\n}\n\nclass TextEncoderStream {\n  constructor() {\n    this[kType] = 'TextEncoderStream';\n    this[kHandle] = new TextEncoder();\n    this[kTransform] = new TransformStream({\n      transform: (chunk\x2C controller) => {\n        const value = this[kHandle].encode(chunk);\n        if (value)\n          controller.enqueue(value);\n      }\x2C\n      flush: (controller) => {\n        const value = this[kHandle].encode();\n        if (value.byteLength > 0)\n          controller.enqueue(value);\n        controller.terminate();\n      }\x2C\n    });\n  }\n\n  /**\n   * @readonly\n   * @type {string}\n   */\n  get encoding() {\n    if (!isTextEncoderStream(this))\n      throw new ERR_INVALID_THIS('TextEncoderStream');\n    return this[kHandle].encoding;\n  }\n\n  /**\n   * @readonly\n   * @type {ReadableStream}\n   */\n  get readable() {\n    if (!isTextEncoderStream(this))\n      throw new ERR_INVALID_THIS('TextEncoderStream');\n    return this[kTransform].readable;\n  }\n\n  /**\n   * @readonly\n   * @type {WritableStream}\n   */\n  get writable() {\n    if (!isTextEncoderStream(this))\n      throw new ERR_INVALID_THIS('TextEncoderStream');\n    return this[kTransform].writable;\n  }\n\n  [kInspect](depth\x2C options) {\n    if (!isTextEncoderStream(this))\n      throw new ERR_INVALID_THIS('TextEncoderStream');\n    return customInspect(depth\x2C options\x2C 'TextEncoderStream'\x2C {\n      encoding: this[kHandle].encoding\x2C\n      readable: this[kTransform].readable\x2C\n      writable: this[kTransform].writable\x2C\n    });\n  }\n}\n\nclass TextDecoderStream {\n  /**\n   * @param {string} [encoding]\n   * @param {{\n   *   fatal? : boolean\x2C\n   *   ignoreBOM? : boolean\x2C\n   * }} [options]\n   */\n  constructor(encoding = 'utf-8'\x2C options = {}) {\n    this[kType] = 'TextDecoderStream';\n    this[kHandle] = new TextDecoder(encoding\x2C options);\n    this[kTransform] = new TransformStream({\n      transform: (chunk\x2C controller) => {\n        const value = this[kHandle].decode(chunk\x2C { stream: true });\n        if (value)\n          controller.enqueue(value);\n      }\x2C\n      flush: (controller) => {\n        const value = this[kHandle].decode();\n        if (value)\n          controller.enqueue(value);\n        controller.terminate();\n      }\x2C\n    });\n  }\n\n  /**\n   * @readonly\n   * @type {string}\n   */\n  get encoding() {\n    if (!isTextDecoderStream(this))\n      throw new ERR_INVALID_THIS('TextDecoderStream');\n    return this[kHandle].encoding;\n  }\n\n  /**\n   * @readonly\n   * @type {boolean}\n   */\n  get fatal() {\n    if (!isTextDecoderStream(this))\n      throw new ERR_INVALID_THIS('TextDecoderStream');\n    return this[kHandle].fatal;\n  }\n\n  /**\n   * @readonly\n   * @type {boolean}\n   */\n  get ignoreBOM() {\n    if (!isTextDecoderStream(this))\n      throw new ERR_INVALID_THIS('TextDecoderStream');\n    return this[kHandle].ignoreBOM;\n  }\n\n  /**\n   * @readonly\n   * @type {ReadableStream}\n   */\n  get readable() {\n    if (!isTextDecoderStream(this))\n      throw new ERR_INVALID_THIS('TextDecoderStream');\n    return this[kTransform].readable;\n  }\n\n  /**\n   * @readonly\n   * @type {WritableStream}\n   */\n  get writable() {\n    if (!isTextDecoderStream(this))\n      throw new ERR_INVALID_THIS('TextDecoderStream');\n    return this[kTransform].writable;\n  }\n\n  [kInspect](depth\x2C options) {\n    if (!isTextDecoderStream(this))\n      throw new ERR_INVALID_THIS('TextDecoderStream');\n    return customInspect(depth\x2C options\x2C 'TextDecoderStream'\x2C {\n      encoding: this[kHandle].encoding\x2C\n      fatal: this[kHandle].fatal\x2C\n      ignoreBOM: this[kHandle].ignoreBOM\x2C\n      readable: this[kTransform].readable\x2C\n      writable: this[kTransform].writable\x2C\n    });\n  }\n}\n\nObjectDefineProperties(TextEncoderStream.prototype\x2C {\n  encoding: kEnumerableProperty\x2C\n  readable: kEnumerableProperty\x2C\n  writable: kEnumerableProperty\x2C\n});\n\nObjectDefineProperties(TextDecoderStream.prototype\x2C {\n  encoding: kEnumerableProperty\x2C\n  fatal: kEnumerableProperty\x2C\n  ignoreBOM: kEnumerableProperty\x2C\n  readable: kEnumerableProperty\x2C\n  writable: kEnumerableProperty\x2C\n});\n\nmodule.exports = {\n  TextEncoderStream\x2C\n  TextDecoderStream\x2C\n};\n
code-source-info,0x1fe027d1eb1e,140,0,5036,C0O0C4O5036,,
code-creation,Function,10,217655,0x1fe027d1fa36,369, node:internal/webstreams/encoding:1:1,0x1fe027d1ea88,~
code-source-info,0x1fe027d1fa36,140,0,5036,C0O0C41O25C46O51C51O119C54O119C59O87C65O102C71O181C74O181C79O160C85O282C88O282C93O240C99O257C104O370C107O370C112O370C117O343C123O443C126O443C131O430C136O486C139O486C143O486C145O524C148O524C152O524C154O560C157O560C161O560C187O2150C211O1007C243O4192C266O4633C278O4658C284O4691C290O4724C294O4592C299O4791C311O4816C317O4846C323O4880C329O4913C335O4946C339O4750C344O4972C351O4993C357O5014C363O4987C368O5035,,
code-creation,LazyCompile,10,217923,0x1fe027d20a96,5,get node:buffer:1261:8,0x73467ca7188,~
code-source-info,0x1fe027d20a96,18,37077,37109,C0O37082C4O37107,,
tick,0x1173eb2,218099,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,218273,0x1fe027d21bb6,5, node:crypto:1:1,0x1fe027d21990,~
script-source,141,node:crypto,// 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// Note: In 0.8 and before\x2C crypto functions all defaulted to using\n// binary-encoded strings rather than buffers.\n\n'use strict';\n\nconst {\n  ObjectDefineProperty\x2C\n  ObjectDefineProperties\x2C\n} = primordials;\n\nconst {\n  assertCrypto\x2C\n  deprecate\n} = require('internal/util');\nassertCrypto();\n\nconst {\n  ERR_CRYPTO_FIPS_FORCED\x2C\n} = require('internal/errors').codes;\nconst constants = internalBinding('constants').crypto;\nconst { getOptionValue } = require('internal/options');\nconst pendingDeprecation = getOptionValue('--pending-deprecation');\nconst fipsForced = getOptionValue('--force-fips');\nconst {\n  getFipsCrypto\x2C\n  setFipsCrypto\x2C\n  timingSafeEqual\x2C\n} = internalBinding('crypto');\nconst {\n  checkPrime\x2C\n  checkPrimeSync\x2C\n  generatePrime\x2C\n  generatePrimeSync\x2C\n  randomBytes\x2C\n  randomFill\x2C\n  randomFillSync\x2C\n  randomInt\x2C\n  randomUUID\x2C\n} = require('internal/crypto/random');\nconst {\n  pbkdf2\x2C\n  pbkdf2Sync\n} = require('internal/crypto/pbkdf2');\nconst {\n  scrypt\x2C\n  scryptSync\n} = require('internal/crypto/scrypt');\nconst {\n  hkdf\x2C\n  hkdfSync\n} = require('internal/crypto/hkdf');\nconst {\n  generateKeyPair\x2C\n  generateKeyPairSync\x2C\n  generateKey\x2C\n  generateKeySync\x2C\n} = require('internal/crypto/keygen');\nconst {\n  createSecretKey\x2C\n  createPublicKey\x2C\n  createPrivateKey\x2C\n  KeyObject\x2C\n} = require('internal/crypto/keys');\nconst {\n  DiffieHellman\x2C\n  DiffieHellmanGroup\x2C\n  ECDH\x2C\n  diffieHellman\n} = require('internal/crypto/diffiehellman');\nconst {\n  Cipher\x2C\n  Cipheriv\x2C\n  Decipher\x2C\n  Decipheriv\x2C\n  privateDecrypt\x2C\n  privateEncrypt\x2C\n  publicDecrypt\x2C\n  publicEncrypt\x2C\n  getCipherInfo\x2C\n} = require('internal/crypto/cipher');\nconst {\n  Sign\x2C\n  signOneShot\x2C\n  Verify\x2C\n  verifyOneShot\n} = require('internal/crypto/sig');\nconst {\n  Hash\x2C\n  Hmac\n} = require('internal/crypto/hash');\nconst {\n  X509Certificate\n} = require('internal/crypto/x509');\nconst {\n  getCiphers\x2C\n  getCurves\x2C\n  getDefaultEncoding\x2C\n  getHashes\x2C\n  setDefaultEncoding\x2C\n  setEngine\x2C\n  lazyRequire\x2C\n  secureHeapUsed\x2C\n} = require('internal/crypto/util');\nconst Certificate = require('internal/crypto/certificate');\n\n// These helper functions are needed because the constructors can\n// use new\x2C in which case V8 cannot inline the recursive constructor call\nfunction createHash(algorithm\x2C options) {\n  return new Hash(algorithm\x2C options);\n}\n\nfunction createCipher(cipher\x2C password\x2C options) {\n  return new Cipher(cipher\x2C password\x2C options);\n}\n\nfunction createCipheriv(cipher\x2C key\x2C iv\x2C options) {\n  return new Cipheriv(cipher\x2C key\x2C iv\x2C options);\n}\n\nfunction createDecipher(cipher\x2C password\x2C options) {\n  return new Decipher(cipher\x2C password\x2C options);\n}\n\nfunction createDecipheriv(cipher\x2C key\x2C iv\x2C options) {\n  return new Decipheriv(cipher\x2C key\x2C iv\x2C options);\n}\n\nfunction createDiffieHellman(sizeOrKey\x2C keyEncoding\x2C generator\x2C genEncoding) {\n  return new DiffieHellman(sizeOrKey\x2C keyEncoding\x2C generator\x2C genEncoding);\n}\n\nfunction createDiffieHellmanGroup(name) {\n  return new DiffieHellmanGroup(name);\n}\n\nfunction createECDH(curve) {\n  return new ECDH(curve);\n}\n\nfunction createHmac(hmac\x2C key\x2C options) {\n  return new Hmac(hmac\x2C key\x2C options);\n}\n\nfunction createSign(algorithm\x2C options) {\n  return new Sign(algorithm\x2C options);\n}\n\nfunction createVerify(algorithm\x2C options) {\n  return new Verify(algorithm\x2C options);\n}\n\nmodule.exports = {\n  // Methods\n  checkPrime\x2C\n  checkPrimeSync\x2C\n  createCipheriv\x2C\n  createDecipheriv\x2C\n  createDiffieHellman\x2C\n  createDiffieHellmanGroup\x2C\n  createECDH\x2C\n  createHash\x2C\n  createHmac\x2C\n  createPrivateKey\x2C\n  createPublicKey\x2C\n  createSecretKey\x2C\n  createSign\x2C\n  createVerify\x2C\n  diffieHellman\x2C\n  generatePrime\x2C\n  generatePrimeSync\x2C\n  getCiphers\x2C\n  getCipherInfo\x2C\n  getCurves\x2C\n  getDiffieHellman: createDiffieHellmanGroup\x2C\n  getHashes\x2C\n  hkdf\x2C\n  hkdfSync\x2C\n  pbkdf2\x2C\n  pbkdf2Sync\x2C\n  generateKeyPair\x2C\n  generateKeyPairSync\x2C\n  generateKey\x2C\n  generateKeySync\x2C\n  privateDecrypt\x2C\n  privateEncrypt\x2C\n  publicDecrypt\x2C\n  publicEncrypt\x2C\n  randomBytes\x2C\n  randomFill\x2C\n  randomFillSync\x2C\n  randomInt\x2C\n  randomUUID\x2C\n  scrypt\x2C\n  scryptSync\x2C\n  sign: signOneShot\x2C\n  setEngine\x2C\n  timingSafeEqual\x2C\n  getFips: fipsForced ? getFipsForced : getFipsCrypto\x2C\n  setFips: fipsForced ? setFipsForced : setFipsCrypto\x2C\n  verify: verifyOneShot\x2C\n\n  // Classes\n  Certificate\x2C\n  Cipher\x2C\n  Cipheriv\x2C\n  Decipher\x2C\n  Decipheriv\x2C\n  DiffieHellman\x2C\n  DiffieHellmanGroup\x2C\n  ECDH\x2C\n  Hash\x2C\n  Hmac\x2C\n  KeyObject\x2C\n  Sign\x2C\n  Verify\x2C\n  X509Certificate\x2C\n  secureHeapUsed\x2C\n};\n\nfunction setFipsForced(val) {\n  if (val) return;\n  throw new ERR_CRYPTO_FIPS_FORCED();\n}\n\nfunction getFipsForced() {\n  return 1;\n}\n\nObjectDefineProperty(constants\x2C 'defaultCipherList'\x2C {\n  value: getOptionValue('--tls-cipher-list')\n});\n\nObjectDefineProperties(module.exports\x2C {\n  createCipher: {\n    enumerable: false\x2C\n    value: deprecate(createCipher\x2C\n                     'crypto.createCipher is deprecated.'\x2C 'DEP0106')\n  }\x2C\n  createDecipher: {\n    enumerable: false\x2C\n    value: deprecate(createDecipher\x2C\n                     'crypto.createDecipher is deprecated.'\x2C 'DEP0106')\n  }\x2C\n  // crypto.fips is deprecated. DEP0093. Use crypto.getFips()/crypto.setFips()\n  fips: {\n    get: fipsForced ? getFipsForced : getFipsCrypto\x2C\n    set: fipsForced ? setFipsForced : setFipsCrypto\n  }\x2C\n  DEFAULT_ENCODING: {\n    enumerable: false\x2C\n    configurable: true\x2C\n    get: deprecate(getDefaultEncoding\x2C\n                   'crypto.DEFAULT_ENCODING is deprecated.'\x2C 'DEP0091')\x2C\n    set: deprecate(setDefaultEncoding\x2C\n                   'crypto.DEFAULT_ENCODING is deprecated.'\x2C 'DEP0091')\n  }\x2C\n  constants: {\n    configurable: false\x2C\n    enumerable: true\x2C\n    value: constants\n  }\x2C\n\n  webcrypto: {\n    configurable: false\x2C\n    enumerable: true\x2C\n    get() { return lazyRequire('internal/crypto/webcrypto'); }\n  }\x2C\n\n  // Aliases for randomBytes are deprecated.\n  // The ecosystem needs those to exist for backwards compatibility.\n  prng: {\n    enumerable: false\x2C\n    configurable: true\x2C\n    writable: true\x2C\n    value: pendingDeprecation ?\n      deprecate(randomBytes\x2C 'crypto.prng is deprecated.'\x2C 'DEP0115') :\n      randomBytes\n  }\x2C\n  pseudoRandomBytes: {\n    enumerable: false\x2C\n    configurable: true\x2C\n    writable: true\x2C\n    value: pendingDeprecation ?\n      deprecate(randomBytes\x2C\n                'crypto.pseudoRandomBytes is deprecated.'\x2C 'DEP0115') :\n      randomBytes\n  }\x2C\n  rng: {\n    enumerable: false\x2C\n    configurable: true\x2C\n    writable: true\x2C\n    value: pendingDeprecation ?\n      deprecate(randomBytes\x2C 'crypto.rng is deprecated.'\x2C 'DEP0115') :\n      randomBytes\n  }\n});\n
code-source-info,0x1fe027d21bb6,141,0,7603,C0O0C4O7603,,
code-creation,Function,10,218624,0x1fe027d22c8e,1692, node:crypto:1:1,0x1fe027d21b20,~
code-source-info,0x1fe027d22c8e,141,0,7603,C0O0C122O1275C127O1299C132O1381C136O1381C142O1351C147O1367C152O1407C155O1462C159O1462C165O1488C171O1434C177O1514C181O1514C187O1542C192O1578C196O1578C202O1559C207O1634C211O1634C216O1694C220O1694C225O1791C229O1791C235O1736C240O1753C245O1770C250O1974C254O1974C260O1828C265O1842C270O1860C275O1877C280O1898C285O1913C291O1927C297O1945C303O1958C309O2044C313O2044C319O2019C325O2029C331O2114C335O2114C341O2089C347O2099C353O2180C357O2180C363O2159C369O2167C375O2301C379O2301C385O2223C391O2242C397O2265C403O2280C409O2419C413O2419C419O2346C425O2365C431O2384C437O2404C443O2527C447O2527C453O2462C459O2479C465O2501C471O2509C477O2716C481O2716C487O2579C493O2589C499O2601C505O2613C511O2627C517O2645C523O2663C529O2680C535O2697C541O2812C545O2812C551O2761C557O2769C563O2784C569O2794C575O2871C579O2871C585O2854C591O2862C597O2934C601O2934C607O2914C613O3109C617O3109C623O2977C629O2991C635O3004C641O3026C647O3039C653O3061C659O3074C665O3089C671O3162C675O3162C681O4403C689O4437C695O4451C701O4469C707O4487C713O4507C719O4530C725O4558C731O4572C737O4586C743O4600C749O4620C755O4639C761O4658C767O4672C773O4688C779O4705C785O4722C791O4743C797O4757C803O4774C809O4805C815O4833C821O4846C827O4854C833O4866C839O4876C845O4890C851O4909C857O4932C863O4947C869O4966C875O4984C881O5002C887O5019C893O5036C899O5051C905O5065C911O5083C917O5096C923O5110C929O5120C935O5140C941O5155C947O5168C956O5196C964O5225C970O5251C978O5280C988O5305C998O5336C1008O5351C1018O5361C1028O5373C1038O5385C1048O5399C1058O5416C1068O5438C1078O5446C1088O5454C1098O5462C1108O5475C1118O5483C1128O5493C1138O5512C1148O4418C1156O5664C1160O5685C1173O5728C1192O5664C1202O5799C1221O5826C1241O5862C1269O5979C1289O6015C1317O6205C1331O6216C1339O6245C1349O6269C1357O6298C1375O6337C1395O6395C1424O6507C1452O6627C1463O6687C1481O6716C1490O6769C1512O6956C1523O7036C1536O7063C1550O7135C1568O7173C1579O7253C1592O7280C1606O7381C1624O7405C1635O7485C1648O7512C1662O7583C1680O5769C1691O7602,,
code-creation,LazyCompile,10,218799,0x1fe027d242be,19,assertCrypto node:internal/util:133:22,0x30ec9dba96d8,~
code-source-info,0x1fe027d242be,12,3391,3444,C0O3398C6O3416C11O3422C16O3416C18O3443,,
tick,0x17b1f13,219197,1,0xacd930,6,0xd44a10,0x13b40babd867,0x1fe027d22d73,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0x1101d12,220266,1,0xacd930,5,0xd44a10,0x13b40babd867,0x1fe027d22d73,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,220780,0x1fe027d320a6,5, node:internal/crypto/random:1:1,0x1fe027d31b90,~
script-source,142,node:internal/crypto/random,'use strict';\n\nconst {\n  Array\x2C\n  ArrayPrototypeForEach\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeShift\x2C\n  ArrayPrototypeSplice\x2C\n  BigInt\x2C\n  FunctionPrototypeBind\x2C\n  FunctionPrototypeCall\x2C\n  MathMin\x2C\n  NumberIsNaN\x2C\n  NumberIsSafeInteger\x2C\n  NumberPrototypeToString\x2C\n  StringPrototypePadStart\x2C\n} = primordials;\n\nconst {\n  RandomBytesJob\x2C\n  RandomPrimeJob\x2C\n  CheckPrimeJob\x2C\n  kCryptoJobAsync\x2C\n  kCryptoJobSync\x2C\n  secureBuffer\x2C\n} = internalBinding('crypto');\n\nconst {\n  lazyDOMException\x2C\n} = require('internal/util');\n\nconst { Buffer\x2C kMaxLength } = require('buffer');\n\nconst {\n  codes: {\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_OUT_OF_RANGE\x2C\n    ERR_OPERATION_FAILED\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  validateNumber\x2C\n  validateBoolean\x2C\n  validateCallback\x2C\n  validateObject\x2C\n  validateUint32\x2C\n} = require('internal/validators');\n\nconst {\n  isArrayBufferView\x2C\n  isAnyArrayBuffer\x2C\n  isFloat32Array\x2C\n  isFloat64Array\x2C\n} = require('internal/util/types');\n\nconst { FastBuffer } = require('internal/buffer');\n\nconst kMaxInt32 = 2 ** 31 - 1;\nconst kMaxPossibleLength = MathMin(kMaxLength\x2C kMaxInt32);\n\nfunction assertOffset(offset\x2C elementSize\x2C length) {\n  validateNumber(offset\x2C 'offset');\n  offset *= elementSize;\n\n  const maxLength = MathMin(length\x2C kMaxPossibleLength);\n  if (NumberIsNaN(offset) || offset > maxLength || offset < 0) {\n    throw new ERR_OUT_OF_RANGE('offset'\x2C `>= 0 && <= ${maxLength}`\x2C offset);\n  }\n\n  return offset >>> 0;  // Convert to uint32.\n}\n\nfunction assertSize(size\x2C elementSize\x2C offset\x2C length) {\n  validateNumber(size\x2C 'size');\n  size *= elementSize;\n\n  if (NumberIsNaN(size) || size > kMaxPossibleLength || size < 0) {\n    throw new ERR_OUT_OF_RANGE('size'\x2C\n                               `>= 0 && <= ${kMaxPossibleLength}`\x2C size);\n  }\n\n  if (size + offset > length) {\n    throw new ERR_OUT_OF_RANGE('size + offset'\x2C `<= ${length}`\x2C size + offset);\n  }\n\n  return size >>> 0;  // Convert to uint32.\n}\n\nfunction randomBytes(size\x2C callback) {\n  size = assertSize(size\x2C 1\x2C 0\x2C Infinity);\n  if (callback !== undefined) {\n    validateCallback(callback);\n  }\n\n  const buf = new FastBuffer(size);\n\n  if (callback === undefined) {\n    randomFillSync(buf.buffer\x2C 0\x2C size);\n    return buf;\n  }\n\n  // Keep the callback as a regular function so this is propagated.\n  randomFill(buf.buffer\x2C 0\x2C size\x2C function(error) {\n    if (error) FunctionPrototypeCall(callback\x2C this\x2C error);\n    FunctionPrototypeCall(callback\x2C this\x2C null\x2C buf);\n  });\n}\n\nfunction randomFillSync(buf\x2C offset = 0\x2C size) {\n  if (!isAnyArrayBuffer(buf) && !isArrayBufferView(buf)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'buf'\x2C\n      ['ArrayBuffer'\x2C 'ArrayBufferView']\x2C\n      buf);\n  }\n\n  const elementSize = buf.BYTES_PER_ELEMENT || 1;\n\n  offset = assertOffset(offset\x2C elementSize\x2C buf.byteLength);\n\n  if (size === undefined) {\n    size = buf.byteLength - offset;\n  } else {\n    size = assertSize(size\x2C elementSize\x2C offset\x2C buf.byteLength);\n  }\n\n  if (size === 0)\n    return buf;\n\n  const job = new RandomBytesJob(\n    kCryptoJobSync\x2C\n    buf\x2C\n    offset\x2C\n    size);\n\n  const err = job.run()[0];\n  if (err)\n    throw err;\n\n  return buf;\n}\n\nfunction randomFill(buf\x2C offset\x2C size\x2C callback) {\n  if (!isAnyArrayBuffer(buf) && !isArrayBufferView(buf)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'buf'\x2C\n      ['ArrayBuffer'\x2C 'ArrayBufferView']\x2C\n      buf);\n  }\n\n  const elementSize = buf.BYTES_PER_ELEMENT || 1;\n\n  if (typeof offset === 'function') {\n    callback = offset;\n    offset = 0;\n    // Size is a length here\x2C assertSize() call turns it into a number of bytes\n    size = buf.length;\n  } else if (typeof size === 'function') {\n    callback = size;\n    size = buf.length - offset;\n  } else {\n    validateCallback(callback);\n  }\n\n  offset = assertOffset(offset\x2C elementSize\x2C buf.byteLength);\n\n  if (size === undefined) {\n    size = buf.byteLength - offset;\n  } else {\n    size = assertSize(size\x2C elementSize\x2C offset\x2C buf.byteLength);\n  }\n\n  if (size === 0) {\n    callback(null\x2C buf);\n    return;\n  }\n\n  const job = new RandomBytesJob(\n    kCryptoJobAsync\x2C\n    buf\x2C\n    offset\x2C\n    size);\n  job.ondone = FunctionPrototypeBind(onJobDone\x2C job\x2C buf\x2C callback);\n  job.run();\n}\n\n// Largest integer we can read from a buffer.\n// e.g.: Buffer.from("ff".repeat(6)\x2C "hex").readUIntBE(0\x2C 6);\nconst RAND_MAX = 0xFFFF_FFFF_FFFF;\n\n// Cache random data to use in randomInt. The cache size must be evenly\n// divisible by 6 because each attempt to obtain a random int uses 6 bytes.\nconst randomCache = new FastBuffer(6 * 1024);\nlet randomCacheOffset = randomCache.length;\nlet asyncCacheFillInProgress = false;\nconst asyncCachePendingTasks = [];\n\n// Generates an integer in [min\x2C max) range where min is inclusive and max is\n// exclusive.\nfunction randomInt(min\x2C max\x2C callback) {\n  // Detect optional min syntax\n  // randomInt(max)\n  // randomInt(max\x2C callback)\n  const minNotSpecified = typeof max === 'undefined' ||\n    typeof max === 'function';\n\n  if (minNotSpecified) {\n    callback = max;\n    max = min;\n    min = 0;\n  }\n\n  const isSync = typeof callback === 'undefined';\n  if (!isSync) {\n    validateCallback(callback);\n  }\n  if (!NumberIsSafeInteger(min)) {\n    throw new ERR_INVALID_ARG_TYPE('min'\x2C 'a safe integer'\x2C min);\n  }\n  if (!NumberIsSafeInteger(max)) {\n    throw new ERR_INVALID_ARG_TYPE('max'\x2C 'a safe integer'\x2C max);\n  }\n  if (max <= min) {\n    throw new ERR_OUT_OF_RANGE(\n      'max'\x2C `greater than the value of "min" (${min})`\x2C max\n    );\n  }\n\n  // First we generate a random int between [0..range)\n  const range = max - min;\n\n  if (!(range <= RAND_MAX)) {\n    throw new ERR_OUT_OF_RANGE(`max${minNotSpecified ? '' : ' - min'}`\x2C\n                               `<= ${RAND_MAX}`\x2C range);\n  }\n\n  // For (x % range) to produce an unbiased value greater than or equal to 0 and\n  // less than range\x2C x must be drawn randomly from the set of integers greater\n  // than or equal to 0 and less than randLimit.\n  const randLimit = RAND_MAX - (RAND_MAX % range);\n\n  // If we don't have a callback\x2C or if there is still data in the cache\x2C we can\n  // do this synchronously\x2C which is super fast.\n  while (isSync || (randomCacheOffset < randomCache.length)) {\n    if (randomCacheOffset === randomCache.length) {\n      // This might block the thread for a bit\x2C but we are in sync mode.\n      randomFillSync(randomCache);\n      randomCacheOffset = 0;\n    }\n\n    const x = randomCache.readUIntBE(randomCacheOffset\x2C 6);\n    randomCacheOffset += 6;\n\n    if (x < randLimit) {\n      const n = (x % range) + min;\n      if (isSync) return n;\n      process.nextTick(callback\x2C undefined\x2C n);\n      return;\n    }\n  }\n\n  // At this point\x2C we are in async mode with no data in the cache. We cannot\n  // simply refill the cache\x2C because another async call to randomInt might\n  // already be doing that. Instead\x2C queue this call for when the cache has\n  // been refilled.\n  ArrayPrototypePush(asyncCachePendingTasks\x2C { min\x2C max\x2C callback });\n  asyncRefillRandomIntCache();\n}\n\nfunction asyncRefillRandomIntCache() {\n  if (asyncCacheFillInProgress)\n    return;\n\n  asyncCacheFillInProgress = true;\n  randomFill(randomCache\x2C (err) => {\n    asyncCacheFillInProgress = false;\n\n    const tasks = asyncCachePendingTasks;\n    const errorReceiver = err && ArrayPrototypeShift(tasks);\n    if (!err)\n      randomCacheOffset = 0;\n\n    // Restart all pending tasks. If an error occurred\x2C we only notify a single\n    // callback (errorReceiver) about it. This way\x2C every async call to\n    // randomInt has a chance of being successful\x2C and it avoids complex\n    // exception handling here.\n    ArrayPrototypeForEach(ArrayPrototypeSplice(tasks\x2C 0)\x2C (task) => {\n      randomInt(task.min\x2C task.max\x2C task.callback);\n    });\n\n    // This is the only call that might throw\x2C and is therefore done at the end.\n    if (errorReceiver)\n      errorReceiver.callback(err);\n  });\n}\n\n\nfunction onJobDone(buf\x2C callback\x2C error) {\n  if (error) return FunctionPrototypeCall(callback\x2C this\x2C error);\n  FunctionPrototypeCall(callback\x2C this\x2C null\x2C buf);\n}\n\n// Really just the Web Crypto API alternative\n// to require('crypto').randomFillSync() with an\n// additional limitation that the input buffer is\n// not allowed to exceed 65536 bytes\x2C and can only\n// be an integer-type TypedArray.\nfunction getRandomValues(data) {\n  if (!isArrayBufferView(data) ||\n      isFloat32Array(data) ||\n      isFloat64Array(data)) {\n    // Ordinarily this would be an ERR_INVALID_ARG_TYPE. However\x2C\n    // the Web Crypto API and web platform tests expect this to\n    // be a DOMException with type TypeMismatchError.\n    throw lazyDOMException(\n      'The data argument must be an integer-type TypedArray'\x2C\n      'TypeMismatchError');\n  }\n  if (data.byteLength > 65536) {\n    throw lazyDOMException(\n      'The requested length exceeds 65\x2C536 bytes'\x2C\n      'QuotaExceededError');\n  }\n  randomFillSync(data\x2C 0);\n  return data;\n}\n\n// Implements an RFC 4122 version 4 random UUID.\n// To improve performance\x2C random data is generated in batches\n// large enough to cover kBatchSize UUID's at a time. The uuidData\n// buffer is reused. Each call to randomUUID() consumes 16 bytes\n// from the buffer.\n\nconst kBatchSize = 128;\nlet uuidData;\nlet uuidNotBuffered;\nlet uuidBatch = 0;\n\nlet hexBytesCache;\nfunction getHexBytes() {\n  if (hexBytesCache === undefined) {\n    hexBytesCache = new Array(256);\n    for (let i = 0; i < hexBytesCache.length; i++) {\n      const hex = NumberPrototypeToString(i\x2C 16);\n      hexBytesCache[i] = StringPrototypePadStart(hex\x2C 2\x2C '0');\n    }\n  }\n  return hexBytesCache;\n}\n\nfunction serializeUUID(buf\x2C offset = 0) {\n  const kHexBytes = getHexBytes();\n  // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n  return kHexBytes[buf[offset]] +\n    kHexBytes[buf[offset + 1]] +\n    kHexBytes[buf[offset + 2]] +\n    kHexBytes[buf[offset + 3]] +\n    '-' +\n    kHexBytes[buf[offset + 4]] +\n    kHexBytes[buf[offset + 5]] +\n    '-' +\n    kHexBytes[(buf[offset + 6] & 0x0f) | 0x40] +\n    kHexBytes[buf[offset + 7]] +\n    '-' +\n    kHexBytes[(buf[offset + 8] & 0x3f) | 0x80] +\n    kHexBytes[buf[offset + 9]] +\n    '-' +\n    kHexBytes[buf[offset + 10]] +\n    kHexBytes[buf[offset + 11]] +\n    kHexBytes[buf[offset + 12]] +\n    kHexBytes[buf[offset + 13]] +\n    kHexBytes[buf[offset + 14]] +\n    kHexBytes[buf[offset + 15]];\n}\n\nfunction getBufferedUUID() {\n  uuidData ??= secureBuffer(16 * kBatchSize);\n  if (uuidData === undefined)\n    throw new ERR_OPERATION_FAILED('Out of memory');\n\n  if (uuidBatch === 0) randomFillSync(uuidData);\n  uuidBatch = (uuidBatch + 1) % kBatchSize;\n  return serializeUUID(uuidData\x2C uuidBatch * 16);\n}\n\nfunction getUnbufferedUUID() {\n  uuidNotBuffered ??= secureBuffer(16);\n  if (uuidNotBuffered === undefined)\n    throw new ERR_OPERATION_FAILED('Out of memory');\n  randomFillSync(uuidNotBuffered);\n  return serializeUUID(uuidNotBuffered);\n}\n\nfunction randomUUID(options) {\n  if (options !== undefined)\n    validateObject(options\x2C 'options');\n  const {\n    disableEntropyCache = false\x2C\n  } = options || {};\n\n  validateBoolean(disableEntropyCache\x2C 'options.disableEntropyCache');\n\n  return disableEntropyCache ? getUnbufferedUUID() : getBufferedUUID();\n}\n\nfunction createRandomPrimeJob(type\x2C size\x2C options) {\n  validateObject(options\x2C 'options');\n\n  const {\n    safe = false\x2C\n    bigint = false\x2C\n  } = options;\n  let {\n    add\x2C\n    rem\x2C\n  } = options;\n\n  validateBoolean(safe\x2C 'options.safe');\n  validateBoolean(bigint\x2C 'options.bigint');\n\n  if (add !== undefined) {\n    if (typeof add === 'bigint') {\n      add = unsignedBigIntToBuffer(add\x2C 'options.add');\n    } else if (!isAnyArrayBuffer(add) && !isArrayBufferView(add)) {\n      throw new ERR_INVALID_ARG_TYPE(\n        'options.add'\x2C\n        [\n          'ArrayBuffer'\x2C\n          'TypedArray'\x2C\n          'Buffer'\x2C\n          'DataView'\x2C\n          'bigint'\x2C\n        ]\x2C\n        add);\n    }\n  }\n\n  if (rem !== undefined) {\n    if (typeof rem === 'bigint') {\n      rem = unsignedBigIntToBuffer(rem\x2C 'options.rem');\n    } else if (!isAnyArrayBuffer(rem) && !isArrayBufferView(rem)) {\n      throw new ERR_INVALID_ARG_TYPE(\n        'options.rem'\x2C\n        [\n          'ArrayBuffer'\x2C\n          'TypedArray'\x2C\n          'Buffer'\x2C\n          'DataView'\x2C\n          'bigint'\x2C\n        ]\x2C\n        rem);\n    }\n  }\n\n  const job = new RandomPrimeJob(type\x2C size\x2C safe\x2C add\x2C rem);\n  job.result = bigint ? arrayBufferToUnsignedBigInt : (p) => p;\n  return job;\n}\n\nfunction generatePrime(size\x2C options\x2C callback) {\n  validateUint32(size\x2C 'size'\x2C true);\n  if (typeof options === 'function') {\n    callback = options;\n    options = {};\n  }\n  validateCallback(callback);\n\n  const job = createRandomPrimeJob(kCryptoJobAsync\x2C size\x2C options);\n  job.ondone = (err\x2C prime) => {\n    if (err) {\n      callback(err);\n      return;\n    }\n\n    callback(\n      undefined\x2C\n      job.result(prime));\n  };\n  job.run();\n}\n\nfunction generatePrimeSync(size\x2C options = {}) {\n  validateUint32(size\x2C 'size'\x2C true);\n\n  const job = createRandomPrimeJob(kCryptoJobSync\x2C size\x2C options);\n  const { 0: err\x2C 1: prime } = job.run();\n  if (err)\n    throw err;\n  return job.result(prime);\n}\n\nfunction arrayBufferToUnsignedBigInt(arrayBuffer) {\n  return BigInt(`0x${Buffer.from(arrayBuffer).toString('hex')}`);\n}\n\nfunction unsignedBigIntToBuffer(bigint\x2C name) {\n  if (bigint < 0) {\n    throw new ERR_OUT_OF_RANGE(name\x2C '>= 0'\x2C bigint);\n  }\n\n  const hex = bigint.toString(16);\n  const padded = hex.padStart(hex.length + (hex.length % 2)\x2C 0);\n  return Buffer.from(padded\x2C 'hex');\n}\n\nfunction checkPrime(candidate\x2C options = {}\x2C callback) {\n  if (typeof candidate === 'bigint')\n    candidate = unsignedBigIntToBuffer(candidate\x2C 'candidate');\n  if (!isAnyArrayBuffer(candidate) && !isArrayBufferView(candidate)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'candidate'\x2C\n      [\n        'ArrayBuffer'\x2C\n        'TypedArray'\x2C\n        'Buffer'\x2C\n        'DataView'\x2C\n        'bigint'\x2C\n      ]\x2C\n      candidate\n    );\n  }\n  if (typeof options === 'function') {\n    callback = options;\n    options = {};\n  }\n  validateCallback(callback);\n  validateObject(options\x2C 'options');\n  const {\n    checks = 0\x2C\n  } = options;\n\n  validateUint32(checks\x2C 'options.checks');\n\n  const job = new CheckPrimeJob(kCryptoJobAsync\x2C candidate\x2C checks);\n  job.ondone = callback;\n  job.run();\n}\n\nfunction checkPrimeSync(candidate\x2C options = {}) {\n  if (typeof candidate === 'bigint')\n    candidate = unsignedBigIntToBuffer(candidate\x2C 'candidate');\n  if (!isAnyArrayBuffer(candidate) && !isArrayBufferView(candidate)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'candidate'\x2C\n      [\n        'ArrayBuffer'\x2C\n        'TypedArray'\x2C\n        'Buffer'\x2C\n        'DataView'\x2C\n        'bigint'\x2C\n      ]\x2C\n      candidate\n    );\n  }\n  validateObject(options\x2C 'options');\n  const {\n    checks = 0\x2C\n  } = options;\n\n  validateUint32(checks\x2C 'options.checks');\n\n  const job = new CheckPrimeJob(kCryptoJobSync\x2C candidate\x2C checks);\n  const { 0: err\x2C 1: result } = job.run();\n  if (err)\n    throw err;\n\n  return result;\n}\n\nmodule.exports = {\n  checkPrime\x2C\n  checkPrimeSync\x2C\n  randomBytes\x2C\n  randomFill\x2C\n  randomFillSync\x2C\n  randomInt\x2C\n  getRandomValues\x2C\n  randomUUID\x2C\n  generatePrime\x2C\n  generatePrimeSync\x2C\n};\n
code-source-info,0x1fe027d320a6,142,0,15068,C0O0C4O15068,,
tick,0x7efc33a646dc,221462,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d22d8c,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Function,10,221472,0x1fe027d32b26,678, node:internal/crypto/random:1:1,0x1fe027d32010,~
code-source-info,0x1fe027d32b26,142,0,15068,C0O0C263O25C269O34C275O59C281O81C287O104C293O128C299O138C305O163C311O188C317O199C323O214C329O237C335O264C341O425C344O425C349O317C355O335C361O353C367O370C373O389C379O407C385O485C388O485C393O463C399O543C402O543C407O520C413O528C418O664C421O664C426O664C431O586C437O612C443O634C449O798C452O798C457O703C463O721C469O740C475O760C481O778C487O920C490O920C495O841C501O862C507O882C513O900C519O976C522O976C527O961C533O1023C540O1063C543O1063C548O1063C550O4284C552O4284C554O4471C564O4471C569O4471C571O4521C574O4533C578O4521C580O4572C581O4572C583O4610C585O4610C587O9116C591O9116C593O9125C594O9125C596O9139C597O9139C599O9172C600O9172C602O9180C603O9180C605O14883C612O14904C618O14918C624O14936C630O14951C636O14965C642O14983C648O14996C654O15015C660O15029C666O15046C672O14898C677O15067,,
code-creation,Eval,10,221787,0x1fe027d348e6,5, node:internal/crypto/pbkdf2:1:1,0x1fe027d34670,~
script-source,143,node:internal/crypto/pbkdf2,'use strict';\n\nconst {\n  FunctionPrototypeCall\x2C\n  Promise\x2C\n} = primordials;\n\nconst { Buffer } = require('buffer');\n\nconst {\n  PBKDF2Job\x2C\n  kCryptoJobAsync\x2C\n  kCryptoJobSync\x2C\n} = internalBinding('crypto');\n\nconst {\n  validateCallback\x2C\n  validateInteger\x2C\n  validateString\x2C\n  validateUint32\x2C\n} = require('internal/validators');\n\nconst { ERR_MISSING_OPTION } = require('internal/errors').codes;\n\nconst {\n  getArrayBufferOrView\x2C\n  getDefaultEncoding\x2C\n  normalizeHashName\x2C\n  kKeyObject\x2C\n} = require('internal/crypto/util');\n\nconst {\n  lazyDOMException\x2C\n} = require('internal/util');\n\nfunction pbkdf2(password\x2C salt\x2C iterations\x2C keylen\x2C digest\x2C callback) {\n  if (typeof digest === 'function') {\n    callback = digest;\n    digest = undefined;\n  }\n\n  ({ password\x2C salt\x2C iterations\x2C keylen\x2C digest } =\n    check(password\x2C salt\x2C iterations\x2C keylen\x2C digest));\n\n  validateCallback(callback);\n\n  const job = new PBKDF2Job(\n    kCryptoJobAsync\x2C\n    password\x2C\n    salt\x2C\n    iterations\x2C\n    keylen\x2C\n    digest);\n\n  const encoding = getDefaultEncoding();\n  job.ondone = (err\x2C result) => {\n    if (err !== undefined)\n      return FunctionPrototypeCall(callback\x2C job\x2C err);\n    const buf = Buffer.from(result);\n    if (encoding === 'buffer')\n      return FunctionPrototypeCall(callback\x2C job\x2C null\x2C buf);\n    FunctionPrototypeCall(callback\x2C job\x2C null\x2C buf.toString(encoding));\n  };\n\n  job.run();\n}\n\nfunction pbkdf2Sync(password\x2C salt\x2C iterations\x2C keylen\x2C digest) {\n  ({ password\x2C salt\x2C iterations\x2C keylen\x2C digest } =\n    check(password\x2C salt\x2C iterations\x2C keylen\x2C digest));\n\n  const job = new PBKDF2Job(\n    kCryptoJobSync\x2C\n    password\x2C\n    salt\x2C\n    iterations\x2C\n    keylen\x2C\n    digest);\n\n  const { 0: err\x2C 1: result } = job.run();\n  if (err !== undefined)\n    throw err;\n\n  const buf = Buffer.from(result);\n  const encoding = getDefaultEncoding();\n  return encoding === 'buffer' ? buf : buf.toString(encoding);\n}\n\nfunction check(password\x2C salt\x2C iterations\x2C keylen\x2C digest) {\n  validateString(digest\x2C 'digest');\n\n  password = getArrayBufferOrView(password\x2C 'password');\n  salt = getArrayBufferOrView(salt\x2C 'salt');\n  validateUint32(iterations\x2C 'iterations'\x2C true);\n  validateUint32(keylen\x2C 'keylen');\n\n  return { password\x2C salt\x2C iterations\x2C keylen\x2C digest };\n}\n\nasync function pbkdf2DeriveBits(algorithm\x2C baseKey\x2C length) {\n  validateUint32(length\x2C 'length');\n  const { iterations } = algorithm;\n  let { hash } = algorithm;\n  const salt = getArrayBufferOrView(algorithm.salt\x2C 'algorithm.salt');\n  if (hash === undefined)\n    throw new ERR_MISSING_OPTION('algorithm.hash');\n  validateInteger(iterations\x2C 'algorithm.iterations'\x2C 1);\n\n  hash = normalizeHashName(hash.name);\n\n  const raw = baseKey[kKeyObject].export();\n\n  let byteLength = 64;  // the default\n  if (length !== undefined) {\n    if (length === 0)\n      throw lazyDOMException('length cannot be zero'\x2C 'OperationError');\n    if (length % 8) {\n      throw lazyDOMException(\n        'length must be a multiple of 8'\x2C\n        'OperationError');\n    }\n    byteLength = length / 8;\n  }\n\n  return new Promise((resolve\x2C reject) => {\n    pbkdf2(raw\x2C salt\x2C iterations\x2C byteLength\x2C hash\x2C (err\x2C result) => {\n      if (err) return reject(err);\n      resolve(result.buffer);\n    });\n  });\n}\n\nmodule.exports = {\n  pbkdf2\x2C\n  pbkdf2Sync\x2C\n  pbkdf2DeriveBits\x2C\n};\n
code-source-info,0x1fe027d348e6,143,0,3284,C0O0C4O3284,,
code-creation,Function,10,221949,0x1fe027d34bfe,255, node:internal/crypto/pbkdf2:1:1,0x1fe027d34850,~
code-source-info,0x1fe027d34bfe,143,0,3284,C0O0C75O25C81O50C87O96C90O96C95O85C101O178C104O178C109O126C115O139C121O158C127O293C130O293C135O216C141O236C147O255C153O273C159O357C162O357C167O383C172O334C178O485C181O485C186O402C192O426C198O448C204O469C210O551C213O551C218O529C224O3218C231O3239C237O3249C243O3263C249O3233C254O3283,,
code-creation,Eval,10,222341,0x1fe027d36286,5, node:internal/crypto/util:1:1,0x1fe027d35ee0,~
script-source,144,node:internal/crypto/util,'use strict';\n\nconst {\n  ArrayPrototypeIncludes\x2C\n  ArrayPrototypePush\x2C\n  BigInt\x2C\n  FunctionPrototypeBind\x2C\n  Number\x2C\n  ObjectKeys\x2C\n  Promise\x2C\n  StringPrototypeToLowerCase\x2C\n  Symbol\x2C\n} = primordials;\n\nconst {\n  getCiphers: _getCiphers\x2C\n  getCurves: _getCurves\x2C\n  getHashes: _getHashes\x2C\n  setEngine: _setEngine\x2C\n  secureHeapUsed: _secureHeapUsed\x2C\n} = internalBinding('crypto');\n\nconst { getOptionValue } = require('internal/options');\n\nconst {\n  crypto: {\n    ENGINE_METHOD_ALL\n  }\n} = internalBinding('constants');\n\nconst normalizeHashName = require('internal/crypto/hashnames');\n\nconst {\n  hideStackFrames\x2C\n  codes: {\n    ERR_CRYPTO_ENGINE_UNKNOWN\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_OUT_OF_RANGE\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  validateArray\x2C\n  validateNumber\x2C\n  validateString\n} = require('internal/validators');\n\nconst { Buffer } = require('buffer');\n\nconst {\n  cachedResult\x2C\n  filterDuplicateStrings\x2C\n  lazyDOMException\x2C\n} = require('internal/util');\n\nconst {\n  isArrayBufferView\x2C\n  isAnyArrayBuffer\x2C\n} = require('internal/util/types');\n\nconst kHandle = Symbol('kHandle');\nconst kKeyObject = Symbol('kKeyObject');\n\nconst lazyRequireCache = {};\n\nfunction lazyRequire(name) {\n  let ret = lazyRequireCache[name];\n  if (ret === undefined)\n    ret = lazyRequireCache[name] = require(name);\n  return ret;\n}\n\nvar defaultEncoding = 'buffer';\n\nfunction setDefaultEncoding(val) {\n  defaultEncoding = val;\n}\n\nfunction getDefaultEncoding() {\n  return defaultEncoding;\n}\n\n// This is here because many functions accepted binary strings without\n// any explicit encoding in older versions of node\x2C and we don't want\n// to break them unnecessarily.\nfunction toBuf(val\x2C encoding) {\n  if (typeof val === 'string') {\n    if (encoding === 'buffer')\n      encoding = 'utf8';\n    return Buffer.from(val\x2C encoding);\n  }\n  return val;\n}\n\nconst getCiphers = cachedResult(() => filterDuplicateStrings(_getCiphers()));\nconst getHashes = cachedResult(() => filterDuplicateStrings(_getHashes()));\nconst getCurves = cachedResult(() => filterDuplicateStrings(_getCurves()));\n\nfunction setEngine(id\x2C flags) {\n  validateString(id\x2C 'id');\n  if (flags)\n    validateNumber(flags\x2C 'flags');\n  flags = flags >>> 0;\n\n  // Use provided engine for everything by default\n  if (flags === 0)\n    flags = ENGINE_METHOD_ALL;\n\n  if (!_setEngine(id\x2C flags))\n    throw new ERR_CRYPTO_ENGINE_UNKNOWN(id);\n}\n\nconst getArrayBufferOrView = hideStackFrames((buffer\x2C name\x2C encoding) => {\n  if (isAnyArrayBuffer(buffer))\n    return buffer;\n  if (typeof buffer === 'string') {\n    if (encoding === 'buffer')\n      encoding = 'utf8';\n    return Buffer.from(buffer\x2C encoding);\n  }\n  if (!isArrayBufferView(buffer)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      name\x2C\n      [\n        'string'\x2C\n        'ArrayBuffer'\x2C\n        'Buffer'\x2C\n        'TypedArray'\x2C\n        'DataView'\x2C\n      ]\x2C\n      buffer\n    );\n  }\n  return buffer;\n});\n\n// The maximum buffer size that we'll support in the WebCrypto impl\nconst kMaxBufferLength = (2 ** 31) - 1;\n\n// The EC named curves that we currently support via the Web Crypto API.\nconst kNamedCurveAliases = {\n  'P-256': 'prime256v1'\x2C\n  'P-384': 'secp384r1'\x2C\n  'P-521': 'secp521r1'\x2C\n  'NODE-ED25519': 'ed25519'\x2C\n  'NODE-ED448': 'ed448'\x2C\n  'NODE-X25519': 'x25519'\x2C\n  'NODE-X448': 'x448'\x2C\n};\n\nconst kAesKeyLengths = [128\x2C 192\x2C 256];\n\n// These are the only algorithms we currently support\n// via the Web Crypto API\nconst kAlgorithms = {\n  'rsassa-pkcs1-v1_5': 'RSASSA-PKCS1-v1_5'\x2C\n  'rsa-pss': 'RSA-PSS'\x2C\n  'rsa-oaep': 'RSA-OAEP'\x2C\n  'ecdsa': 'ECDSA'\x2C\n  'ecdh': 'ECDH'\x2C\n  'aes-ctr': 'AES-CTR'\x2C\n  'aes-cbc': 'AES-CBC'\x2C\n  'aes-gcm': 'AES-GCM'\x2C\n  'aes-kw': 'AES-KW'\x2C\n  'hmac': 'HMAC'\x2C\n  'sha-1': 'SHA-1'\x2C\n  'sha-256': 'SHA-256'\x2C\n  'sha-384': 'SHA-384'\x2C\n  'sha-512': 'SHA-512'\x2C\n  'hkdf': 'HKDF'\x2C\n  'pbkdf2': 'PBKDF2'\x2C\n  // Following here are Node.js specific extensions. All\n  // should be prefixed with 'node-'\n  'node-dsa': 'NODE-DSA'\x2C\n  'node-dh': 'NODE-DH'\x2C\n  'node-scrypt': 'NODE-SCRYPT'\x2C\n  'node-ed25519': 'NODE-ED25519'\x2C\n  'node-ed448': 'NODE-ED448'\x2C\n};\nconst kAlgorithmsKeys = ObjectKeys(kAlgorithms);\n\n// These are the only export and import formats we currently\n// support via the Web Crypto API\nconst kExportFormats = [\n  'raw'\x2C\n  'pkcs8'\x2C\n  'spki'\x2C\n  'jwk'\x2C\n  'node.keyObject'];\n\n// These are the only hash algorithms we currently support via\n// the Web Crypto API.\nconst kHashTypes = [\n  'SHA-1'\x2C\n  'SHA-256'\x2C\n  'SHA-384'\x2C\n  'SHA-512'\x2C\n];\n\nfunction validateMaxBufferLength(data\x2C name) {\n  if (data.byteLength > kMaxBufferLength) {\n    throw lazyDOMException(\n      `${name} must be less than ${kMaxBufferLength + 1} bits`\x2C\n      'OperationError');\n  }\n}\n\nfunction normalizeAlgorithm(algorithm\x2C label = 'algorithm') {\n  if (algorithm != null) {\n    if (typeof algorithm === 'string')\n      algorithm = { name: algorithm };\n\n    if (typeof algorithm === 'object') {\n      const { name } = algorithm;\n      let hash;\n      if (typeof name !== 'string' ||\n          !ArrayPrototypeIncludes(\n            kAlgorithmsKeys\x2C\n            StringPrototypeToLowerCase(name))) {\n        throw lazyDOMException('Unrecognized name.'\x2C 'NotSupportedError');\n      }\n      if (algorithm.hash !== undefined) {\n        hash = normalizeAlgorithm(algorithm.hash\x2C 'algorithm.hash');\n        if (!ArrayPrototypeIncludes(kHashTypes\x2C hash.name))\n          throw lazyDOMException('Unrecognized name.'\x2C 'NotSupportedError');\n      }\n      return {\n        ...algorithm\x2C\n        name: kAlgorithms[StringPrototypeToLowerCase(name)]\x2C\n        hash\x2C\n      };\n    }\n  }\n  throw lazyDOMException('Unrecognized name.'\x2C 'NotSupportedError');\n}\n\nfunction hasAnyNotIn(set\x2C checks) {\n  for (const s of set)\n    if (!ArrayPrototypeIncludes(checks\x2C s))\n      return true;\n  return false;\n}\n\nfunction validateBitLength(length\x2C name\x2C required = false) {\n  if (length !== undefined || required) {\n    validateNumber(length\x2C name);\n    if (length < 0)\n      throw new ERR_OUT_OF_RANGE(name\x2C '> 0');\n    if (length % 8) {\n      throw new ERR_INVALID_ARG_VALUE(\n        name\x2C\n        length\x2C\n        'must be a multiple of 8');\n    }\n  }\n}\n\nfunction validateByteLength(buf\x2C name\x2C target) {\n  if (buf.byteLength !== target) {\n    throw lazyDOMException(\n      `${name} must contain exactly ${target} bytes`\x2C\n      'OperationError');\n  }\n}\n\nconst validateByteSource = hideStackFrames((val\x2C name) => {\n  val = toBuf(val);\n\n  if (isAnyArrayBuffer(val) || isArrayBufferView(val))\n    return;\n\n  throw new ERR_INVALID_ARG_TYPE(\n    name\x2C\n    [\n      'string'\x2C\n      'ArrayBuffer'\x2C\n      'TypedArray'\x2C\n      'DataView'\x2C\n      'Buffer'\x2C\n    ]\x2C\n    val);\n});\n\nfunction onDone(resolve\x2C reject\x2C err\x2C result) {\n  if (err) return reject(err);\n  resolve(result);\n}\n\nfunction jobPromise(job) {\n  return new Promise((resolve\x2C reject) => {\n    job.ondone = FunctionPrototypeBind(onDone\x2C job\x2C resolve\x2C reject);\n    job.run();\n  });\n}\n\n// In WebCrypto\x2C the publicExponent option in RSA is represented as a\n// WebIDL "BigInteger"... that is\x2C a Uint8Array that allows an arbitrary\n// number of leading zero bits. Our conventional APIs for reading\n// an unsigned int from a Buffer are not adequate. The implementation\n// here is adapted from the chromium implementation here:\n// https://github.com/chromium/chromium/blob/HEAD/third_party/blink/public/platform/web_crypto_algorithm_params.h\x2C but ported to JavaScript\n// Returns undefined if the conversion was unsuccessful.\nfunction bigIntArrayToUnsignedInt(input) {\n  let result = 0;\n\n  for (let n = 0; n < input.length; ++n) {\n    const n_reversed = input.length - n - 1;\n    if (n_reversed >= 4 && input[n])\n      return;  // Too large\n    result |= input[n] << 8 * n_reversed;\n  }\n\n  return result;\n}\n\nfunction bigIntArrayToUnsignedBigInt(input) {\n  let result = 0n;\n\n  for (let n = 0; n < input.length; ++n) {\n    const n_reversed = input.length - n - 1;\n    result |= BigInt(input[n]) << 8n * BigInt(n_reversed);\n  }\n\n  return result;\n}\n\nfunction getStringOption(options\x2C key) {\n  let value;\n  if (options && (value = options[key]) != null)\n    validateString(value\x2C `options.${key}`);\n  return value;\n}\n\nfunction getUsagesUnion(usageSet\x2C ...usages) {\n  const newset = [];\n  for (let n = 0; n < usages.length; n++) {\n    if (usageSet.has(usages[n]))\n      ArrayPrototypePush(newset\x2C usages[n]);\n  }\n  return newset;\n}\n\nfunction getHashLength(name) {\n  switch (name) {\n    case 'SHA-1': return 160;\n    case 'SHA-256': return 256;\n    case 'SHA-384': return 384;\n    case 'SHA-512': return 512;\n  }\n}\n\nconst kKeyOps = {\n  sign: 1\x2C\n  verify: 2\x2C\n  encrypt: 3\x2C\n  decrypt: 4\x2C\n  wrapKey: 5\x2C\n  unwrapKey: 6\x2C\n  deriveKey: 7\x2C\n  deriveBits: 8\x2C\n};\n\nfunction validateKeyOps(keyOps\x2C usagesSet) {\n  if (keyOps === undefined) return;\n  validateArray(keyOps\x2C 'keyData.key_ops');\n  let flags = 0;\n  for (let n = 0; n < keyOps.length; n++) {\n    const op = keyOps[n];\n    const op_flag = kKeyOps[op];\n    // Skipping unknown key ops\n    if (op_flag === undefined)\n      continue;\n    // Have we seen it already? if so\x2C error\n    if (flags & (1 << op_flag))\n      throw lazyDOMException('Duplicate key operation'\x2C 'DataError');\n    flags |= (1 << op_flag);\n\n    // TODO(@jasnell): RFC7517 section 4.3 strong recommends validating\n    // key usage combinations. Specifically\x2C it says that unrelated key\n    // ops SHOULD NOT be used together. We're not yet validating that here.\n  }\n\n  if (usagesSet !== undefined) {\n    for (const use of usagesSet) {\n      if (!ArrayPrototypeIncludes(keyOps\x2C use)) {\n        throw lazyDOMException(\n          'Key operations and usage mismatch'\x2C\n          'DataError');\n      }\n    }\n  }\n}\n\nfunction secureHeapUsed() {\n  const val = _secureHeapUsed();\n  if (val === undefined)\n    return { total: 0\x2C used: 0\x2C utilization: 0\x2C min: 0 };\n  const used = Number(_secureHeapUsed());\n  const total = Number(getOptionValue('--secure-heap'));\n  const min = Number(getOptionValue('--secure-heap-min'));\n  const utilization = used / total;\n  return { total\x2C used\x2C utilization\x2C min };\n}\n\nmodule.exports = {\n  getArrayBufferOrView\x2C\n  getCiphers\x2C\n  getCurves\x2C\n  getDefaultEncoding\x2C\n  getHashes\x2C\n  kHandle\x2C\n  kKeyObject\x2C\n  setDefaultEncoding\x2C\n  setEngine\x2C\n  toBuf\x2C\n\n  kHashTypes\x2C\n  kNamedCurveAliases\x2C\n  kAesKeyLengths\x2C\n  kExportFormats\x2C\n  normalizeAlgorithm\x2C\n  normalizeHashName\x2C\n  hasAnyNotIn\x2C\n  validateBitLength\x2C\n  validateByteLength\x2C\n  validateByteSource\x2C\n  validateKeyOps\x2C\n  jobPromise\x2C\n  lazyRequire\x2C\n  validateMaxBufferLength\x2C\n  bigIntArrayToUnsignedBigInt\x2C\n  bigIntArrayToUnsignedInt\x2C\n  getStringOption\x2C\n  getUsagesUnion\x2C\n  getHashLength\x2C\n  secureHeapUsed\x2C\n};\n
code-source-info,0x1fe027d36286,144,0,10573,C0O0C4O10573,,
code-creation,Function,10,222845,0x1fe027d372f6,848, node:internal/crypto/util:1:1,0x1fe027d361f0,~
code-source-info,0x1fe027d372f6,144,0,10573,C0O0C215O25C221O51C227O73C233O83C239O108C245O118C250O132C256O143C262O173C267O348C271O348C277O221C283O247C289O272C295O297C301O327C307O403C315O403C321O384C327O483C331O483C337O483C343O457C349O540C357O540C362O731C370O731C376O589C387O621C393O652C399O678C405O705C411O824C419O824C425O770C431O787C437O805C443O876C451O876C457O865C463O970C471O970C477O906C482O922C488O948C494O1050C502O1050C508O1007C514O1028C520O1099C524O1099C529O1137C533O1137C538O1185C539O1185C541O1369C543O1369C545O1877C551O1877C556O1954C562O1954C567O2030C573O2030C578O2431C584O2431C589O3007C595O3007C597O3123C602O3329C608O3447C612O3447C614O4092C618O4092C622O4092C624O4236C630O4404C634O4404C636O6337C642O6337C648O8521C652O8521C654O9995C662O10016C668O10040C674O10054C680O10067C686O10089C692O10102C698O10113C704O10127C710O10149C716O10162C722O10172C728O10186C734O10208C740O10226C746O10244C752O10266C758O10287C764O10302C770O10323C776O10345C782O10367C788O10385C794O10399C800O10414C806O10441C812O10472C818O10500C824O10519C830O10537C836O10554C842O10010C847O10572,,
tick,0x7efc33a647cd,222887,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d34cb3,0x13b40bab9d2d,0x13b40bab8ffd,0x1fe027d22dc7,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,223157,0x1fe027d38fde,5, node:internal/crypto/hashnames:1:1,0x1fe027d38e58,~
script-source,145,node:internal/crypto/hashnames,'use strict';\n\nconst {\n  ObjectKeys\x2C\n  StringPrototypeToLowerCase\x2C\n} = primordials;\n\nconst kHashContextNode = 1;\nconst kHashContextWebCrypto = 2;\nconst kHashContextJwkRsa = 3;\nconst kHashContextJwkRsaPss = 4;\nconst kHashContextJwkRsaOaep = 5;\nconst kHashContextJwkHmac = 6;\nconst kHashContextJwkDsa = 7;\n\n// WebCrypto and JWK use a bunch of different names for the\n// standard set of SHA-* digest algorithms... which is ... fun.\n// Here we provide a utility for mapping between them in order\n// make it easier in the code.\n\nconst kHashNames = {\n  sha1: {\n    [kHashContextNode]: 'sha1'\x2C\n    [kHashContextWebCrypto]: 'SHA-1'\x2C\n    [kHashContextJwkRsa]: 'RS1'\x2C\n    [kHashContextJwkRsaPss]: 'PS1'\x2C\n    [kHashContextJwkRsaOaep]: 'RSA-OAEP'\x2C\n    [kHashContextJwkHmac]: 'HS1'\x2C\n    [kHashContextJwkDsa]: 'NODE-DSA-SHA-1'\x2C\n  }\x2C\n  sha256: {\n    [kHashContextNode]: 'sha256'\x2C\n    [kHashContextWebCrypto]: 'SHA-256'\x2C\n    [kHashContextJwkRsa]: 'RS256'\x2C\n    [kHashContextJwkRsaPss]: 'PS256'\x2C\n    [kHashContextJwkRsaOaep]: 'RSA-OAEP-256'\x2C\n    [kHashContextJwkHmac]: 'HS256'\x2C\n    [kHashContextJwkDsa]: 'NODE-DSA-SHA-256'\x2C\n  }\x2C\n  sha384: {\n    [kHashContextNode]: 'sha384'\x2C\n    [kHashContextWebCrypto]: 'SHA-384'\x2C\n    [kHashContextJwkRsa]: 'RS384'\x2C\n    [kHashContextJwkRsaPss]: 'PS384'\x2C\n    [kHashContextJwkRsaOaep]: 'RSA-OAEP-384'\x2C\n    [kHashContextJwkHmac]: 'HS384'\x2C\n    [kHashContextJwkDsa]: 'NODE-DSA-SHA-384'\x2C\n  }\x2C\n  sha512: {\n    [kHashContextNode]: 'sha512'\x2C\n    [kHashContextWebCrypto]: 'SHA-512'\x2C\n    [kHashContextJwkRsa]: 'RS512'\x2C\n    [kHashContextJwkRsaPss]: 'PS512'\x2C\n    [kHashContextJwkRsaOaep]: 'RSA-OAEP-512'\x2C\n    [kHashContextJwkHmac]: 'HS512'\x2C\n    [kHashContextJwkDsa]: 'NODE-DSA-SHA-512'\x2C\n  }\n};\n\n{\n  // Index the aliases\n  const keys = ObjectKeys(kHashNames);\n  for (let n = 0; n < keys.length; n++) {\n    const contexts = ObjectKeys(kHashNames[keys[n]]);\n    for (let i = 0; i < contexts.length; i++) {\n      const alias =\n        StringPrototypeToLowerCase(kHashNames[keys[n]][contexts[i]]);\n      if (kHashNames[alias] === undefined)\n        kHashNames[alias] = kHashNames[keys[n]];\n    }\n  }\n}\n\nfunction normalizeHashName(name\x2C context = kHashContextNode) {\n  if (typeof name !== 'string')\n    return name;\n  name = StringPrototypeToLowerCase(name);\n  const alias = kHashNames[name] && kHashNames[name][context];\n  return alias || name;\n}\n\nnormalizeHashName.kContextNode = kHashContextNode;\nnormalizeHashName.kContextWebCrypto = kHashContextWebCrypto;\nnormalizeHashName.kContextJwkRsa = kHashContextJwkRsa;\nnormalizeHashName.kContextJwkRsaPss = kHashContextJwkRsaPss;\nnormalizeHashName.kContextJwkRsaOaep = kHashContextJwkRsaOaep;\nnormalizeHashName.kContextJwkHmac = kHashContextJwkHmac;\nnormalizeHashName.kContextJwkDsa = kHashContextJwkDsa;\n\nmodule.exports = normalizeHashName;\n
code-source-info,0x1fe027d38fde,145,0,2786,C0O0C4O2786,,
code-creation,Function,10,223290,0x1fe027d392e6,584, node:internal/crypto/hashnames:1:1,0x1fe027d38f48,~
code-source-info,0x1fe027d392e6,145,0,2786,C0O0C19O25C24O39C30O110C32O110C34O143C37O173C40O206C43O240C46O271C49O301C52O543C57O553C64O560C68O579C75O592C79O616C86O630C90O651C97O663C101O687C108O699C112O724C119O741C123O763C130O775C134O796C145O829C152O836C156O855C163O870C167O894C174O910C178O931C185O945C189O969C196O983C200O1008C207O1029C211O1051C218O1065C222O1086C233O1121C240O1128C244O1147C251O1162C255O1186C262O1202C266O1223C273O1237C277O1261C284O1275C288O1300C295O1321C299O1343C306O1357C310O1378C321O1413C328O1420C332O1439C339O1454C343O1478C350O1494C354O1515C361O1529C365O1553C372O1567C376O1592C383O1613C387O1635C394O1649C398O1670C411O543C413O1738C416O1738C421O1777C423O1789C427O1782C432O1825C437O1851C440O1846C444O1825C449O1875C451O1891C455O1880C460O1934C468O1976C471O1971C477O1989C480O1980C484O1934C489O2002C494O2016C499O2047C508O2082C511O2077C514O2065C518O1900C523O1862C526O1798C531O1764C534O2346C536O2377C540O2397C542O2433C546O2458C548O2491C552O2513C554O2549C558O2574C560O2611C564O2637C566O2671C570O2694C572O2727C576O2750C578O2765C583O2785,,
tick,0x10de10d,223456,0,0x0,0,0x11fddd0,0x1fe027d394e8,0x13b40bab9d2d,0x13b40bab8ffd,0x1fe027d3745b,0x13b40bab9d2d,0x13b40bab8ffd,0x1fe027d34cb3,0x13b40bab9d2d,0x13b40bab8ffd,0x1fe027d22dc7,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,223514,0x1fe027d39e86,20,cachedResult node:internal/util:222:22,0x30ec9dba9900,~
code-source-info,0x1fe027d39e86,12,6161,6296,C0O6161C12O6174C13O6174C15O6184C19O6294,,
new,MemoryChunk,0x39d101b80000,262144
code-creation,Eval,10,223871,0x1fe027d3a3ee,5, node:internal/crypto/scrypt:1:1,0x1fe027d3a168,~
script-source,146,node:internal/crypto/scrypt,'use strict';\n\nconst {\n  FunctionPrototypeCall\x2C\n  Promise\x2C\n} = primordials;\n\nconst { Buffer } = require('buffer');\n\nconst {\n  ScryptJob\x2C\n  kCryptoJobAsync\x2C\n  kCryptoJobSync\x2C\n} = internalBinding('crypto');\n\nconst {\n  validateCallback\x2C\n  validateInteger\x2C\n  validateInt32\x2C\n  validateUint32\x2C\n} = require('internal/validators');\n\nconst {\n  codes: {\n    ERR_CRYPTO_SCRYPT_INVALID_PARAMETER\x2C\n    ERR_CRYPTO_SCRYPT_NOT_SUPPORTED\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  getArrayBufferOrView\x2C\n  getDefaultEncoding\x2C\n  kKeyObject\x2C\n} = require('internal/crypto/util');\n\nconst {\n  lazyDOMException\x2C\n} = require('internal/util');\n\nconst defaults = {\n  N: 16384\x2C\n  r: 8\x2C\n  p: 1\x2C\n  maxmem: 32 << 20\x2C  // 32 MB\x2C matches SCRYPT_MAX_MEM.\n};\n\nfunction scrypt(password\x2C salt\x2C keylen\x2C options\x2C callback = defaults) {\n  if (callback === defaults) {\n    callback = options;\n    options = defaults;\n  }\n\n  options = check(password\x2C salt\x2C keylen\x2C options);\n  const { N\x2C r\x2C p\x2C maxmem } = options;\n  ({ password\x2C salt\x2C keylen } = options);\n\n  validateCallback(callback);\n\n  const job = new ScryptJob(\n    kCryptoJobAsync\x2C password\x2C salt\x2C N\x2C r\x2C p\x2C maxmem\x2C keylen);\n\n  const encoding = getDefaultEncoding();\n  job.ondone = (error\x2C result) => {\n    if (error !== undefined)\n      return FunctionPrototypeCall(callback\x2C job\x2C error);\n    const buf = Buffer.from(result);\n    if (encoding === 'buffer')\n      return FunctionPrototypeCall(callback\x2C job\x2C null\x2C buf);\n    FunctionPrototypeCall(callback\x2C job\x2C null\x2C buf.toString(encoding));\n  };\n\n  job.run();\n}\n\nfunction scryptSync(password\x2C salt\x2C keylen\x2C options = defaults) {\n  options = check(password\x2C salt\x2C keylen\x2C options);\n  const { N\x2C r\x2C p\x2C maxmem } = options;\n  ({ password\x2C salt\x2C keylen } = options);\n  const job = new ScryptJob(\n    kCryptoJobSync\x2C password\x2C salt\x2C N\x2C r\x2C p\x2C maxmem\x2C keylen);\n  const { 0: err\x2C 1: result } = job.run();\n\n  if (err !== undefined)\n    throw err;\n\n  const buf = Buffer.from(result);\n  const encoding = getDefaultEncoding();\n  return encoding === 'buffer' ? buf : buf.toString(encoding);\n}\n\nfunction check(password\x2C salt\x2C keylen\x2C options) {\n  if (ScryptJob === undefined)\n    throw new ERR_CRYPTO_SCRYPT_NOT_SUPPORTED();\n\n  password = getArrayBufferOrView(password\x2C 'password');\n  salt = getArrayBufferOrView(salt\x2C 'salt');\n  validateInt32(keylen\x2C 'keylen'\x2C 0);\n\n  let { N\x2C r\x2C p\x2C maxmem } = defaults;\n  if (options && options !== defaults) {\n    let has_N\x2C has_r\x2C has_p;\n    if (has_N = (options.N !== undefined)) {\n      N = options.N;\n      validateUint32(N\x2C 'N');\n    }\n    if (options.cost !== undefined) {\n      if (has_N) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER();\n      N = options.cost;\n      validateUint32(N\x2C 'cost');\n    }\n    if (has_r = (options.r !== undefined)) {\n      r = options.r;\n      validateUint32(r\x2C 'r');\n    }\n    if (options.blockSize !== undefined) {\n      if (has_r) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER();\n      r = options.blockSize;\n      validateUint32(r\x2C 'blockSize');\n    }\n    if (has_p = (options.p !== undefined)) {\n      p = options.p;\n      validateUint32(p\x2C 'p');\n    }\n    if (options.parallelization !== undefined) {\n      if (has_p) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER();\n      p = options.parallelization;\n      validateUint32(p\x2C 'parallelization');\n    }\n    if (options.maxmem !== undefined) {\n      maxmem = options.maxmem;\n      validateInteger(maxmem\x2C 'maxmem'\x2C 0);\n    }\n    if (N === 0) N = defaults.N;\n    if (r === 0) r = defaults.r;\n    if (p === 0) p = defaults.p;\n    if (maxmem === 0) maxmem = defaults.maxmem;\n  }\n\n  return { password\x2C salt\x2C keylen\x2C N\x2C r\x2C p\x2C maxmem };\n}\n\nasync function scryptDeriveBits(algorithm\x2C baseKey\x2C length) {\n  validateUint32(length\x2C 'length');\n  const {\n    N = 16384\x2C\n    r = 8\x2C\n    p = 1\x2C\n    maxmem = 32 * 1024 * 1024\x2C\n    encoding\x2C\n  } = algorithm;\n  validateUint32(N\x2C 'algorithm.N');\n  validateUint32(r\x2C 'algorithm.r');\n  validateUint32(p\x2C 'algorithm.p');\n  validateUint32(maxmem\x2C 'algorithm.maxmem');\n  const salt = getArrayBufferOrView(algorithm.salt\x2C 'algorithm.salt'\x2C encoding);\n\n  const raw = baseKey[kKeyObject].export();\n\n  let byteLength = 64;  // the default\n  if (length !== undefined) {\n    if (length === 0)\n      throw lazyDOMException('length cannot be zero'\x2C 'OperationError');\n    if (length % 8) {\n      throw lazyDOMException(\n        'length must be a multiple of 8'\x2C\n        'OperationError');\n    }\n    byteLength = length / 8;\n  }\n\n  return new Promise((resolve\x2C reject) => {\n    scrypt(raw\x2C salt\x2C byteLength\x2C { N\x2C r\x2C p\x2C maxmem }\x2C (err\x2C result) => {\n      if (err) return reject(err);\n      resolve(result.buffer);\n    });\n  });\n}\n\nmodule.exports = {\n  scrypt\x2C\n  scryptSync\x2C\n  scryptDeriveBits\x2C\n};\n
code-source-info,0x1fe027d3a3ee,146,0,4693,C0O0C4O4693,,
code-creation,Function,10,224101,0x1fe027d3a766,264, node:internal/crypto/scrypt:1:1,0x1fe027d3a358,~
code-source-info,0x1fe027d3a766,146,0,4693,C0O0C78O25C84O50C90O96C93O96C98O85C104O178C107O178C112O126C118O139C124O158C130O292C133O292C138O216C144O236C150O255C156O272C162O430C165O430C170O430C175O348C181O389C187O531C190O531C195O469C201O493C207O515C213O597C216O597C221O575C227O641C231O641C233O4627C240O4648C246O4658C252O4672C258O4642C263O4692,,
code-creation,Eval,10,224321,0x1fe027d3b436,5, node:internal/crypto/hkdf:1:1,0x1fe027d3b130,~
script-source,147,node:internal/crypto/hkdf,'use strict';\n\nconst {\n  FunctionPrototypeCall\x2C\n  Promise\x2C\n  Uint8Array\x2C\n} = primordials;\n\nconst {\n  HKDFJob\x2C\n  kCryptoJobAsync\x2C\n  kCryptoJobSync\x2C\n} = internalBinding('crypto');\n\nconst {\n  validateCallback\x2C\n  validateInteger\x2C\n  validateString\x2C\n  validateUint32\x2C\n} = require('internal/validators');\n\nconst { kMaxLength } = require('buffer');\n\nconst {\n  getArrayBufferOrView\x2C\n  normalizeHashName\x2C\n  toBuf\x2C\n  validateByteSource\x2C\n  kKeyObject\x2C\n} = require('internal/crypto/util');\n\nconst {\n  createSecretKey\x2C\n  isKeyObject\x2C\n} = require('internal/crypto/keys');\n\nconst {\n  lazyDOMException\x2C\n} = require('internal/util');\n\nconst {\n  isAnyArrayBuffer\x2C\n  isArrayBufferView\x2C\n} = require('internal/util/types');\n\nconst {\n  codes: {\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_OUT_OF_RANGE\x2C\n    ERR_MISSING_OPTION\x2C\n  }\x2C\n  hideStackFrames\x2C\n} = require('internal/errors');\n\nconst validateParameters = hideStackFrames((hash\x2C key\x2C salt\x2C info\x2C length) => {\n  key = prepareKey(key);\n  salt = toBuf(salt);\n  info = toBuf(info);\n\n  validateString(hash\x2C 'digest');\n  validateByteSource(salt\x2C 'salt');\n  validateByteSource(info\x2C 'info');\n\n  validateInteger(length\x2C 'length'\x2C 0\x2C kMaxLength);\n\n  if (info.byteLength > 1024) {\n    throw ERR_OUT_OF_RANGE(\n      'info'\x2C\n      'must not contain more than 1024 bytes'\x2C\n      info.byteLength);\n  }\n\n  return {\n    hash\x2C\n    key\x2C\n    salt\x2C\n    info\x2C\n    length\x2C\n  };\n});\n\nfunction prepareKey(key) {\n  if (isKeyObject(key))\n    return key;\n\n  // TODO(@jasnell): createSecretKey should allow using an ArrayBuffer\n  if (isAnyArrayBuffer(key))\n    return createSecretKey(new Uint8Array(key));\n\n  key = toBuf(key);\n\n  if (!isArrayBufferView(key)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'ikm'\x2C\n      [\n        'string'\x2C\n        'SecretKeyObject'\x2C\n        'ArrayBuffer'\x2C\n        'TypedArray'\x2C\n        'DataView'\x2C\n        'Buffer'\x2C\n      ]\x2C\n      key);\n  }\n\n  return createSecretKey(key);\n}\n\nfunction hkdf(hash\x2C key\x2C salt\x2C info\x2C length\x2C callback) {\n  ({\n    hash\x2C\n    key\x2C\n    salt\x2C\n    info\x2C\n    length\x2C\n  } = validateParameters(hash\x2C key\x2C salt\x2C info\x2C length));\n\n  validateCallback(callback);\n\n  const job = new HKDFJob(kCryptoJobAsync\x2C hash\x2C key\x2C salt\x2C info\x2C length);\n\n  job.ondone = (error\x2C bits) => {\n    if (error) return FunctionPrototypeCall(callback\x2C job\x2C error);\n    FunctionPrototypeCall(callback\x2C job\x2C null\x2C bits);\n  };\n\n  job.run();\n}\n\nfunction hkdfSync(hash\x2C key\x2C salt\x2C info\x2C length) {\n  ({\n    hash\x2C\n    key\x2C\n    salt\x2C\n    info\x2C\n    length\x2C\n  } = validateParameters(hash\x2C key\x2C salt\x2C info\x2C length));\n\n  const job = new HKDFJob(kCryptoJobSync\x2C hash\x2C key\x2C salt\x2C info\x2C length);\n  const { 0: err\x2C 1: bits } = job.run();\n  if (err !== undefined)\n    throw err;\n\n  return bits;\n}\n\nasync function hkdfDeriveBits(algorithm\x2C baseKey\x2C length) {\n  validateUint32(length\x2C 'length');\n  const { hash } = algorithm;\n  const salt = getArrayBufferOrView(algorithm.salt\x2C 'algorithm.salt');\n  const info = getArrayBufferOrView(algorithm.info\x2C 'algorithm.info');\n  if (hash === undefined)\n    throw new ERR_MISSING_OPTION('algorithm.hash');\n\n  let byteLength = 512 / 8;\n  if (length !== undefined) {\n    if (length === 0)\n      throw lazyDOMException('length cannot be zero'\x2C 'OperationError');\n    if (length % 8) {\n      throw lazyDOMException(\n        'length must be a multiple of 8'\x2C\n        'OperationError');\n    }\n    byteLength = length / 8;\n  }\n\n  return new Promise((resolve\x2C reject) => {\n    hkdf(\n      normalizeHashName(hash.name)\x2C\n      baseKey[kKeyObject]\x2C\n      salt\x2C\n      info\x2C\n      byteLength\x2C\n      (err\x2C bits) => {\n        if (err) return reject(err);\n        resolve(bits);\n      });\n  });\n}\n\nmodule.exports = {\n  hkdf\x2C\n  hkdfSync\x2C\n  hkdfDeriveBits\x2C\n};\n
code-source-info,0x1fe027d3b436,147,0,3678,C0O0C4O3678,,
code-creation,Function,10,224525,0x1fe027d3b7fe,362, node:internal/crypto/hkdf:1:1,0x1fe027d3b3a0,~
code-source-info,0x1fe027d3b7fe,147,0,3678,C0O0C102O25C108O50C114O61C120O151C123O151C128O101C134O112C140O131C146O266C149O266C154O189C160O209C166O228C172O246C178O322C181O322C186O307C192O444C195O444C200O352C206O376C212O397C218O406C224O428C230O524C233O524C238O488C244O507C250O590C253O590C258O568C264O670C267O670C272O627C278O647C284O822C287O822C292O822C297O726C303O752C309O774C315O801C320O878C325O878C329O878C331O3618C338O3639C344O3647C350O3659C356O3633C361O3677,,
tick,0x7efc336c02cf,224552,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d22df3,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
new,MemoryChunk,0x923ecc00000,262144
code-creation,Eval,10,225137,0x1fe027d3cf56,5, node:internal/crypto/keys:1:1,0x1fe027d3ca20,~
script-source,148,node:internal/crypto/keys,'use strict';\n\nconst {\n  ArrayFrom\x2C\n  ArrayPrototypeSlice\x2C\n  ObjectDefineProperty\x2C\n  ObjectSetPrototypeOf\x2C\n  Symbol\x2C\n  Uint8Array\x2C\n} = primordials;\n\nconst {\n  KeyObjectHandle\x2C\n  createNativeKeyObjectClass\x2C\n  kKeyTypeSecret\x2C\n  kKeyTypePublic\x2C\n  kKeyTypePrivate\x2C\n  kKeyFormatPEM\x2C\n  kKeyFormatDER\x2C\n  kKeyFormatJWK\x2C\n  kKeyEncodingPKCS1\x2C\n  kKeyEncodingPKCS8\x2C\n  kKeyEncodingSPKI\x2C\n  kKeyEncodingSEC1\x2C\n} = internalBinding('crypto');\n\nconst {\n  validateObject\x2C\n  validateOneOf\x2C\n  validateString\x2C\n} = require('internal/validators');\n\nconst {\n  codes: {\n    ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS\x2C\n    ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_OUT_OF_RANGE\x2C\n    ERR_OPERATION_FAILED\x2C\n    ERR_CRYPTO_INVALID_JWK\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  kHandle\x2C\n  kKeyObject\x2C\n  getArrayBufferOrView\x2C\n  bigIntArrayToUnsignedBigInt\x2C\n} = require('internal/crypto/util');\n\nconst {\n  isAnyArrayBuffer\x2C\n  isArrayBufferView\x2C\n} = require('internal/util/types');\n\nconst {\n  JSTransferable\x2C\n  kClone\x2C\n  kDeserialize\x2C\n} = require('internal/worker/js_transferable');\n\nconst {\n  customInspectSymbol: kInspect\x2C\n} = require('internal/util');\n\nconst { inspect } = require('internal/util/inspect');\n\nconst { Buffer } = require('buffer');\n\nconst kAlgorithm = Symbol('kAlgorithm');\nconst kExtractable = Symbol('kExtractable');\nconst kKeyType = Symbol('kKeyType');\nconst kKeyUsages = Symbol('kKeyUsages');\n\n// Key input contexts.\nconst kConsumePublic = 0;\nconst kConsumePrivate = 1;\nconst kCreatePublic = 2;\nconst kCreatePrivate = 3;\n\nconst encodingNames = [];\nfor (const m of [[kKeyEncodingPKCS1\x2C 'pkcs1']\x2C [kKeyEncodingPKCS8\x2C 'pkcs8']\x2C\n                 [kKeyEncodingSPKI\x2C 'spki']\x2C [kKeyEncodingSEC1\x2C 'sec1']])\n  encodingNames[m[0]] = m[1];\n\n// Creating the KeyObject class is a little complicated due to inheritance\n// and that fact that KeyObjects should be transferrable between threads\x2C\n// which requires the KeyObject base class to be implemented in C++.\n// The creation requires a callback to make sure that the NativeKeyObject\n// base class cannot exist without the other KeyObject implementations.\nconst {\n  0: KeyObject\x2C\n  1: SecretKeyObject\x2C\n  2: PublicKeyObject\x2C\n  3: PrivateKeyObject\x2C\n} = createNativeKeyObjectClass((NativeKeyObject) => {\n  // Publicly visible KeyObject class.\n  class KeyObject extends NativeKeyObject {\n    constructor(type\x2C handle) {\n      if (type !== 'secret' && type !== 'public' && type !== 'private')\n        throw new ERR_INVALID_ARG_VALUE('type'\x2C type);\n      if (typeof handle !== 'object' || !(handle instanceof KeyObjectHandle))\n        throw new ERR_INVALID_ARG_TYPE('handle'\x2C 'object'\x2C handle);\n\n      super(handle);\n\n      this[kKeyType] = type;\n\n      ObjectDefineProperty(this\x2C kHandle\x2C {\n        value: handle\x2C\n        enumerable: false\x2C\n        configurable: false\x2C\n        writable: false\n      });\n    }\n\n    get type() {\n      return this[kKeyType];\n    }\n\n    static from(key) {\n      if (!isCryptoKey(key))\n        throw new ERR_INVALID_ARG_TYPE('key'\x2C 'CryptoKey'\x2C key);\n      return key[kKeyObject];\n    }\n  }\n\n  class SecretKeyObject extends KeyObject {\n    constructor(handle) {\n      super('secret'\x2C handle);\n    }\n\n    get symmetricKeySize() {\n      return this[kHandle].getSymmetricKeySize();\n    }\n\n    export(options) {\n      if (options !== undefined) {\n        validateObject(options\x2C 'options');\n        validateOneOf(\n          options.format\x2C 'options.format'\x2C [undefined\x2C 'buffer'\x2C 'jwk']);\n        if (options.format === 'jwk') {\n          return this[kHandle].exportJwk({});\n        }\n      }\n      return this[kHandle].export();\n    }\n  }\n\n  const kAsymmetricKeyType = Symbol('kAsymmetricKeyType');\n  const kAsymmetricKeyDetails = Symbol('kAsymmetricKeyDetails');\n\n  function normalizeKeyDetails(details = {}) {\n    if (details.publicExponent !== undefined) {\n      return {\n        ...details\x2C\n        publicExponent:\n          bigIntArrayToUnsignedBigInt(new Uint8Array(details.publicExponent))\n      };\n    }\n    return details;\n  }\n\n  class AsymmetricKeyObject extends KeyObject {\n    // eslint-disable-next-line no-useless-constructor\n    constructor(type\x2C handle) {\n      super(type\x2C handle);\n    }\n\n    get asymmetricKeyType() {\n      return this[kAsymmetricKeyType] ||\n             (this[kAsymmetricKeyType] = this[kHandle].getAsymmetricKeyType());\n    }\n\n    get asymmetricKeyDetails() {\n      switch (this.asymmetricKeyType) {\n        case 'rsa':\n        case 'rsa-pss':\n        case 'dsa':\n        case 'ec':\n          return this[kAsymmetricKeyDetails] ||\n             (this[kAsymmetricKeyDetails] = normalizeKeyDetails(\n               this[kHandle].keyDetail({})\n             ));\n        default:\n          return {};\n      }\n    }\n  }\n\n  class PublicKeyObject extends AsymmetricKeyObject {\n    constructor(handle) {\n      super('public'\x2C handle);\n    }\n\n    export(options) {\n      if (options && options.format === 'jwk') {\n        return this[kHandle].exportJwk({});\n      }\n      const {\n        format\x2C\n        type\n      } = parsePublicKeyEncoding(options\x2C this.asymmetricKeyType);\n      return this[kHandle].export(format\x2C type);\n    }\n  }\n\n  class PrivateKeyObject extends AsymmetricKeyObject {\n    constructor(handle) {\n      super('private'\x2C handle);\n    }\n\n    export(options) {\n      if (options && options.format === 'jwk') {\n        if (options.passphrase !== undefined) {\n          throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS(\n            'jwk'\x2C 'does not support encryption');\n        }\n        return this[kHandle].exportJwk({});\n      }\n      const {\n        format\x2C\n        type\x2C\n        cipher\x2C\n        passphrase\n      } = parsePrivateKeyEncoding(options\x2C this.asymmetricKeyType);\n      return this[kHandle].export(format\x2C type\x2C cipher\x2C passphrase);\n    }\n  }\n\n  return [KeyObject\x2C SecretKeyObject\x2C PublicKeyObject\x2C PrivateKeyObject];\n});\n\nfunction parseKeyFormat(formatStr\x2C defaultFormat\x2C optionName) {\n  if (formatStr === undefined && defaultFormat !== undefined)\n    return defaultFormat;\n  else if (formatStr === 'pem')\n    return kKeyFormatPEM;\n  else if (formatStr === 'der')\n    return kKeyFormatDER;\n  else if (formatStr === 'jwk')\n    return kKeyFormatJWK;\n  throw new ERR_INVALID_ARG_VALUE(optionName\x2C formatStr);\n}\n\nfunction parseKeyType(typeStr\x2C required\x2C keyType\x2C isPublic\x2C optionName) {\n  if (typeStr === undefined && !required) {\n    return undefined;\n  } else if (typeStr === 'pkcs1') {\n    if (keyType !== undefined && keyType !== 'rsa') {\n      throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS(\n        typeStr\x2C 'can only be used for RSA keys');\n    }\n    return kKeyEncodingPKCS1;\n  } else if (typeStr === 'spki' && isPublic !== false) {\n    return kKeyEncodingSPKI;\n  } else if (typeStr === 'pkcs8' && isPublic !== true) {\n    return kKeyEncodingPKCS8;\n  } else if (typeStr === 'sec1' && isPublic !== true) {\n    if (keyType !== undefined && keyType !== 'ec') {\n      throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS(\n        typeStr\x2C 'can only be used for EC keys');\n    }\n    return kKeyEncodingSEC1;\n  }\n\n  throw new ERR_INVALID_ARG_VALUE(optionName\x2C typeStr);\n}\n\nfunction option(name\x2C objName) {\n  return objName === undefined ?\n    `options.${name}` : `options.${objName}.${name}`;\n}\n\nfunction parseKeyFormatAndType(enc\x2C keyType\x2C isPublic\x2C objName) {\n  const { format: formatStr\x2C type: typeStr } = enc;\n\n  const isInput = keyType === undefined;\n  const format = parseKeyFormat(formatStr\x2C\n                                isInput ? kKeyFormatPEM : undefined\x2C\n                                option('format'\x2C objName));\n\n  const isRequired = (!isInput ||\n                      format === kKeyFormatDER) &&\n                      format !== kKeyFormatJWK;\n  const type = parseKeyType(typeStr\x2C\n                            isRequired\x2C\n                            keyType\x2C\n                            isPublic\x2C\n                            option('type'\x2C objName));\n  return { format\x2C type };\n}\n\nfunction isStringOrBuffer(val) {\n  return typeof val === 'string' ||\n         isArrayBufferView(val) ||\n         isAnyArrayBuffer(val);\n}\n\nfunction parseKeyEncoding(enc\x2C keyType\x2C isPublic\x2C objName) {\n  if (enc === null || typeof enc !== 'object')\n    throw new ERR_INVALID_ARG_TYPE('options'\x2C 'object'\x2C enc);\n\n  const isInput = keyType === undefined;\n\n  const {\n    format\x2C\n    type\n  } = parseKeyFormatAndType(enc\x2C keyType\x2C isPublic\x2C objName);\n\n  let cipher\x2C passphrase\x2C encoding;\n  if (isPublic !== true) {\n    ({ cipher\x2C passphrase\x2C encoding } = enc);\n\n    if (!isInput) {\n      if (cipher != null) {\n        if (typeof cipher !== 'string')\n          throw new ERR_INVALID_ARG_VALUE(option('cipher'\x2C objName)\x2C cipher);\n        if (format === kKeyFormatDER &&\n            (type === kKeyEncodingPKCS1 ||\n             type === kKeyEncodingSEC1)) {\n          throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS(\n            encodingNames[type]\x2C 'does not support encryption');\n        }\n      } else if (passphrase !== undefined) {\n        throw new ERR_INVALID_ARG_VALUE(option('cipher'\x2C objName)\x2C cipher);\n      }\n    }\n\n    if ((isInput && passphrase !== undefined &&\n         !isStringOrBuffer(passphrase)) ||\n        (!isInput && cipher != null && !isStringOrBuffer(passphrase))) {\n      throw new ERR_INVALID_ARG_VALUE(option('passphrase'\x2C objName)\x2C\n                                      passphrase);\n    }\n  }\n\n  if (passphrase !== undefined)\n    passphrase = getArrayBufferOrView(passphrase\x2C 'key.passphrase'\x2C encoding);\n\n  return { format\x2C type\x2C cipher\x2C passphrase };\n}\n\n// Parses the public key encoding based on an object. keyType must be undefined\n// when this is used to parse an input encoding and must be a valid key type if\n// used to parse an output encoding.\nfunction parsePublicKeyEncoding(enc\x2C keyType\x2C objName) {\n  return parseKeyEncoding(enc\x2C keyType\x2C keyType ? true : undefined\x2C objName);\n}\n\n// Parses the private key encoding based on an object. keyType must be undefined\n// when this is used to parse an input encoding and must be a valid key type if\n// used to parse an output encoding.\nfunction parsePrivateKeyEncoding(enc\x2C keyType\x2C objName) {\n  return parseKeyEncoding(enc\x2C keyType\x2C false\x2C objName);\n}\n\nfunction getKeyObjectHandle(key\x2C ctx) {\n  if (ctx === kCreatePrivate) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'key'\x2C\n      ['string'\x2C 'ArrayBuffer'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n      key\n    );\n  }\n\n  if (key.type !== 'private') {\n    if (ctx === kConsumePrivate || ctx === kCreatePublic)\n      throw new ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE(key.type\x2C 'private');\n    if (key.type !== 'public') {\n      throw new ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE(key.type\x2C\n                                                   'private or public');\n    }\n  }\n\n  return key[kHandle];\n}\n\nfunction getKeyTypes(allowKeyObject\x2C bufferOnly = false) {\n  const types = [\n    'ArrayBuffer'\x2C\n    'Buffer'\x2C\n    'TypedArray'\x2C\n    'DataView'\x2C\n    'string'\x2C // Only if bufferOnly == false\n    'KeyObject'\x2C // Only if allowKeyObject == true && bufferOnly == false\n    'CryptoKey'\x2C // Only if allowKeyObject == true && bufferOnly == false\n  ];\n  if (bufferOnly) {\n    return ArrayPrototypeSlice(types\x2C 0\x2C 4);\n  } else if (!allowKeyObject) {\n    return ArrayPrototypeSlice(types\x2C 0\x2C 5);\n  }\n  return types;\n}\n\nfunction getKeyObjectHandleFromJwk(key\x2C ctx) {\n  validateObject(key\x2C 'key');\n  validateOneOf(\n    key.kty\x2C 'key.kty'\x2C ['RSA'\x2C 'EC'\x2C 'OKP']);\n  const isPublic = ctx === kConsumePublic || ctx === kCreatePublic;\n\n  if (key.kty === 'OKP') {\n    validateString(key.crv\x2C 'key.crv');\n    validateOneOf(\n      key.crv\x2C 'key.crv'\x2C ['Ed25519'\x2C 'Ed448'\x2C 'X25519'\x2C 'X448']);\n    validateString(key.x\x2C 'key.x');\n\n    if (!isPublic)\n      validateString(key.d\x2C 'key.d');\n\n    let keyData;\n    if (isPublic)\n      keyData = Buffer.from(key.x\x2C 'base64');\n    else\n      keyData = Buffer.from(key.d\x2C 'base64');\n\n    switch (key.crv) {\n      case 'Ed25519':\n      case 'X25519':\n        if (keyData.byteLength !== 32) {\n          throw new ERR_CRYPTO_INVALID_JWK();\n        }\n        break;\n      case 'Ed448':\n        if (keyData.byteLength !== 57) {\n          throw new ERR_CRYPTO_INVALID_JWK();\n        }\n        break;\n      case 'X448':\n        if (keyData.byteLength !== 56) {\n          throw new ERR_CRYPTO_INVALID_JWK();\n        }\n        break;\n    }\n\n    const handle = new KeyObjectHandle();\n    if (isPublic) {\n      handle.initEDRaw(\n        `NODE-${key.crv.toUpperCase()}`\x2C\n        keyData\x2C\n        kKeyTypePublic);\n    } else {\n      handle.initEDRaw(\n        `NODE-${key.crv.toUpperCase()}`\x2C\n        keyData\x2C\n        kKeyTypePrivate);\n    }\n\n    return handle;\n  }\n\n  if (key.kty === 'EC') {\n    validateString(key.crv\x2C 'key.crv');\n    validateOneOf(\n      key.crv\x2C 'key.crv'\x2C ['P-256'\x2C 'secp256k1'\x2C 'P-384'\x2C 'P-521']);\n    validateString(key.x\x2C 'key.x');\n    validateString(key.y\x2C 'key.y');\n\n    const jwk = {\n      kty: key.kty\x2C\n      crv: key.crv\x2C\n      x: key.x\x2C\n      y: key.y\n    };\n\n    if (!isPublic) {\n      validateString(key.d\x2C 'key.d');\n      jwk.d = key.d;\n    }\n\n    const handle = new KeyObjectHandle();\n    const type = handle.initJwk(jwk\x2C jwk.crv);\n    if (type === undefined)\n      throw new ERR_CRYPTO_INVALID_JWK();\n\n    return handle;\n  }\n\n  // RSA\n  validateString(key.n\x2C 'key.n');\n  validateString(key.e\x2C 'key.e');\n\n  const jwk = {\n    kty: key.kty\x2C\n    n: key.n\x2C\n    e: key.e\n  };\n\n  if (!isPublic) {\n    validateString(key.d\x2C 'key.d');\n    validateString(key.p\x2C 'key.p');\n    validateString(key.q\x2C 'key.q');\n    validateString(key.dp\x2C 'key.dp');\n    validateString(key.dq\x2C 'key.dq');\n    validateString(key.qi\x2C 'key.qi');\n    jwk.d = key.d;\n    jwk.p = key.p;\n    jwk.q = key.q;\n    jwk.dp = key.dp;\n    jwk.dq = key.dq;\n    jwk.qi = key.qi;\n  }\n\n  const handle = new KeyObjectHandle();\n  const type = handle.initJwk(jwk);\n  if (type === undefined)\n    throw new ERR_CRYPTO_INVALID_JWK();\n\n  return handle;\n}\n\nfunction prepareAsymmetricKey(key\x2C ctx) {\n  if (isKeyObject(key)) {\n    // Best case: A key object\x2C as simple as that.\n    return { data: getKeyObjectHandle(key\x2C ctx) };\n  } else if (isCryptoKey(key)) {\n    return { data: getKeyObjectHandle(key[kKeyObject]\x2C ctx) };\n  } else if (isStringOrBuffer(key)) {\n    // Expect PEM by default\x2C mostly for backward compatibility.\n    return { format: kKeyFormatPEM\x2C data: getArrayBufferOrView(key\x2C 'key') };\n  } else if (typeof key === 'object') {\n    const { key: data\x2C encoding\x2C format } = key;\n    // The 'key' property can be a KeyObject as well to allow specifying\n    // additional options such as padding along with the key.\n    if (isKeyObject(data))\n      return { data: getKeyObjectHandle(data\x2C ctx) };\n    else if (isCryptoKey(data))\n      return { data: getKeyObjectHandle(data[kKeyObject]\x2C ctx) };\n    else if (isJwk(data) && format === 'jwk')\n      return { data: getKeyObjectHandleFromJwk(data\x2C ctx)\x2C format: 'jwk' };\n    // Either PEM or DER using PKCS#1 or SPKI.\n    if (!isStringOrBuffer(data)) {\n      throw new ERR_INVALID_ARG_TYPE(\n        'key.key'\x2C\n        getKeyTypes(ctx !== kCreatePrivate)\x2C\n        data);\n    }\n\n    const isPublic =\n      (ctx === kConsumePrivate || ctx === kCreatePrivate) ? false : undefined;\n    return {\n      data: getArrayBufferOrView(data\x2C 'key'\x2C encoding)\x2C\n      ...parseKeyEncoding(key\x2C undefined\x2C isPublic)\n    };\n  }\n  throw new ERR_INVALID_ARG_TYPE(\n    'key'\x2C\n    getKeyTypes(ctx !== kCreatePrivate)\x2C\n    key);\n}\n\nfunction preparePrivateKey(key) {\n  return prepareAsymmetricKey(key\x2C kConsumePrivate);\n}\n\nfunction preparePublicOrPrivateKey(key) {\n  return prepareAsymmetricKey(key\x2C kConsumePublic);\n}\n\nfunction prepareSecretKey(key\x2C encoding\x2C bufferOnly = false) {\n  if (!bufferOnly) {\n    if (isKeyObject(key)) {\n      if (key.type !== 'secret')\n        throw new ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE(key.type\x2C 'secret');\n      return key[kHandle];\n    } else if (isCryptoKey(key)) {\n      if (key.type !== 'secret')\n        throw new ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE(key.type\x2C 'secret');\n      return key[kKeyObject][kHandle];\n    }\n  }\n  if (typeof key !== 'string' &&\n      !isArrayBufferView(key) &&\n      !isAnyArrayBuffer(key)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'key'\x2C\n      getKeyTypes(!bufferOnly\x2C bufferOnly)\x2C\n      key);\n  }\n  return getArrayBufferOrView(key\x2C 'key'\x2C encoding);\n}\n\nfunction createSecretKey(key\x2C encoding) {\n  key = prepareSecretKey(key\x2C encoding\x2C true);\n  if (key.byteLength === 0)\n    throw new ERR_OUT_OF_RANGE('key.byteLength'\x2C '> 0'\x2C key.byteLength);\n  const handle = new KeyObjectHandle();\n  handle.init(kKeyTypeSecret\x2C key);\n  return new SecretKeyObject(handle);\n}\n\nfunction createPublicKey(key) {\n  const { format\x2C type\x2C data\x2C passphrase } =\n    prepareAsymmetricKey(key\x2C kCreatePublic);\n  let handle;\n  if (format === 'jwk') {\n    handle = data;\n  } else {\n    handle = new KeyObjectHandle();\n    handle.init(kKeyTypePublic\x2C data\x2C format\x2C type\x2C passphrase);\n  }\n  return new PublicKeyObject(handle);\n}\n\nfunction createPrivateKey(key) {\n  const { format\x2C type\x2C data\x2C passphrase } =\n    prepareAsymmetricKey(key\x2C kCreatePrivate);\n  let handle;\n  if (format === 'jwk') {\n    handle = data;\n  } else {\n    handle = new KeyObjectHandle();\n    handle.init(kKeyTypePrivate\x2C data\x2C format\x2C type\x2C passphrase);\n  }\n  return new PrivateKeyObject(handle);\n}\n\nfunction isKeyObject(obj) {\n  return obj != null && obj[kKeyType] !== undefined;\n}\n\n// Our implementation of CryptoKey is a simple wrapper around a KeyObject\n// that adapts it to the standard interface. This implementation also\n// extends the JSTransferable class\x2C allowing the CryptoKey to be cloned\n// to Workers.\n// TODO(@jasnell): Embedder environments like electron may have issues\n// here similar to other things like URL. A chromium provided CryptoKey\n// will not be recognized as a Node.js CryptoKey\x2C and vice versa. It\n// would be fantastic if we could find a way of making those interop.\nclass CryptoKey extends JSTransferable {\n  constructor() {\n    throw new ERR_OPERATION_FAILED('Illegal constructor');\n  }\n\n  [kInspect](depth\x2C options) {\n    if (depth < 0)\n      return this;\n\n    const opts = {\n      ...options\x2C\n      depth: options.depth == null ? null : options.depth - 1\n    };\n\n    return `CryptoKey ${inspect({\n      type: this.type\x2C\n      extractable: this.extractable\x2C\n      algorithm: this.algorithm\x2C\n      usages: this.usages\n    }\x2C opts)}`;\n  }\n\n  get type() {\n    return this[kKeyObject].type;\n  }\n\n  get extractable() {\n    return this[kExtractable];\n  }\n\n  get algorithm() {\n    return this[kAlgorithm];\n  }\n\n  get usages() {\n    return ArrayFrom(this[kKeyUsages]);\n  }\n\n  [kClone]() {\n    const keyObject = this[kKeyObject];\n    const algorithm = this.algorithm;\n    const extractable = this.extractable;\n    const usages = this.usages;\n\n    return {\n      data: {\n        keyObject\x2C\n        algorithm\x2C\n        usages\x2C\n        extractable\x2C\n      }\x2C\n      deserializeInfo: 'internal/crypto/keys:InternalCryptoKey'\n    };\n  }\n\n  [kDeserialize]({ keyObject\x2C algorithm\x2C usages\x2C extractable }) {\n    this[kKeyObject] = keyObject;\n    this[kAlgorithm] = algorithm;\n    this[kKeyUsages] = usages;\n    this[kExtractable] = extractable;\n  }\n}\n\n// All internal code must use new InternalCryptoKey to create\n// CryptoKey instances. The CryptoKey class is exposed to end\n// user code but is not permitted to be constructed directly.\nclass InternalCryptoKey extends JSTransferable {\n  constructor(\n    keyObject\x2C\n    algorithm\x2C\n    keyUsages\x2C\n    extractable) {\n    super();\n    // Using symbol properties here currently instead of private\n    // properties because (for now) the performance penalty of\n    // private fields is still too high.\n    this[kKeyObject] = keyObject;\n    this[kAlgorithm] = algorithm;\n    this[kExtractable] = extractable;\n    this[kKeyUsages] = keyUsages;\n  }\n}\n\nInternalCryptoKey.prototype.constructor = CryptoKey;\nObjectSetPrototypeOf(InternalCryptoKey.prototype\x2C CryptoKey.prototype);\n\nfunction isCryptoKey(obj) {\n  return obj != null && obj[kKeyObject] !== undefined;\n}\n\nfunction isJwk(obj) {\n  return obj != null && obj.kty !== undefined;\n}\n\nmodule.exports = {\n  // Public API.\n  createSecretKey\x2C\n  createPublicKey\x2C\n  createPrivateKey\x2C\n  KeyObject\x2C\n  CryptoKey\x2C\n  InternalCryptoKey\x2C\n\n  // These are designed for internal use only and should not be exposed.\n  parsePublicKeyEncoding\x2C\n  parsePrivateKeyEncoding\x2C\n  parseKeyEncoding\x2C\n  preparePrivateKey\x2C\n  preparePublicOrPrivateKey\x2C\n  prepareSecretKey\x2C\n  SecretKeyObject\x2C\n  PublicKeyObject\x2C\n  PrivateKeyObject\x2C\n  isKeyObject\x2C\n  isCryptoKey\x2C\n  isJwk\x2C\n};\n
code-source-info,0x1fe027d3cf56,148,0,20521,C0O0C4O20521,,
code-creation,Function,10,226023,0x1fe027d3e54e,1232, node:internal/crypto/keys:1:1,0x1fe027d3cec0,~
code-source-info,0x1fe027d3e54e,148,0,20521,C0O0C264O25C270O38C276O61C282O85C287O109C293O119C299O398C303O398C309O159C315O178C320O208C326O226C332O244C338O263C344O280C350O297C356O314C362O335C368O356C374O376C380O491C384O491C390O436C396O454C402O471C408O761C412O761C418O761C424O547C430O588C436O628C442O654C448O681C454O703C460O729C466O882C470O882C476O800C482O811C488O825C494O849C500O969C504O969C510O926C516O946C522O1058C526O1058C532O1012C537O1030C542O1040C547O1148C551O1148C557O1134C562O1195C566O1195C572O1183C578O1249C582O1249C588O1238C594O1288C602O1288C606O1288C608O1331C616O1331C620O1331C622O1372C630O1372C634O1372C636O1411C644O1411C648O1411C650O1480C651O1480C653O1507C655O1507C657O1532C659O1532C661O1558C663O1558C665O1584C667O1584C669O1604C689O1606C714O1636C739O1683C764O1711C802O1599C833O1599C836O1741C841O1756C848O1764C851O1761C858O1588C929O2229C935O2229C941O2147C948O2163C957O2185C966O2207C975O17893C983O17995C1017O18574C1027O18929C1055O19354C1081O19797C1089O19819C1093O19871C1099O19892C1105O19832C1110O20063C1118O20101C1124O20120C1130O20139C1136O20159C1142O20172C1148O20185C1154O20280C1160O20306C1166O20333C1172O20353C1178O20374C1184O20403C1190O20423C1196O20442C1202O20461C1208O20481C1214O20496C1220O20511C1226O20078C1231O20520,,
tick,0x7efc33a63f53,226070,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d3b8e7,0x13b40bab9d2d,0x13b40bab8ffd,0x1fe027d22df3,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,226400,0x923ecc03d2e,247, node:internal/crypto/keys:97:32,0x1fe027d3d618,~
code-source-info,0x923ecc03d2e,148,2256,5872,C0O2256C17O2344C50O3127C83O3669C93O3669C97O3669C99O3731C109O3731C113O3731C115O4073C148O4782C176O5194C204O5799C213O5807C222O5818C231O5835C240O5852C246O5870,,
tick,0x115cf9e,226722,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d22e09,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,226836,0x923ecc0609e,5, node:internal/crypto/keygen:1:1,0x923ecc05ca8,~
script-source,149,node:internal/crypto/keygen,'use strict';\n\nconst {\n  FunctionPrototypeCall\x2C\n  ObjectDefineProperty\x2C\n  SafeArrayIterator\x2C\n} = primordials;\n\nconst {\n  DhKeyPairGenJob\x2C\n  DsaKeyPairGenJob\x2C\n  EcKeyPairGenJob\x2C\n  NidKeyPairGenJob\x2C\n  RsaKeyPairGenJob\x2C\n  SecretKeyGenJob\x2C\n  kCryptoJobAsync\x2C\n  kCryptoJobSync\x2C\n  kKeyVariantRSA_PSS\x2C\n  kKeyVariantRSA_SSA_PKCS1_v1_5\x2C\n  EVP_PKEY_ED25519\x2C\n  EVP_PKEY_ED448\x2C\n  EVP_PKEY_X25519\x2C\n  EVP_PKEY_X448\x2C\n  OPENSSL_EC_NAMED_CURVE\x2C\n  OPENSSL_EC_EXPLICIT_CURVE\x2C\n} = internalBinding('crypto');\n\nconst {\n  PublicKeyObject\x2C\n  PrivateKeyObject\x2C\n  SecretKeyObject\x2C\n  parsePublicKeyEncoding\x2C\n  parsePrivateKeyEncoding\x2C\n  isJwk\n} = require('internal/crypto/keys');\n\nconst {\n  kAesKeyLengths\x2C\n} = require('internal/crypto/util');\n\nconst { customPromisifyArgs } = require('internal/util');\n\nconst {\n  isInt32\x2C\n  isUint32\x2C\n  validateCallback\x2C\n  validateString\x2C\n  validateInteger\x2C\n  validateObject\x2C\n  validateOneOf\x2C\n} = require('internal/validators');\n\nconst {\n  codes: {\n    ERR_INCOMPATIBLE_OPTION_PAIR\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_MISSING_OPTION\x2C\n  }\n} = require('internal/errors');\n\nconst { isArrayBufferView } = require('internal/util/types');\n\nfunction wrapKey(key\x2C ctor) {\n  if (typeof key === 'string' ||\n      isArrayBufferView(key) ||\n      isJwk(key))\n    return key;\n  return new ctor(key);\n}\n\nfunction generateKeyPair(type\x2C options\x2C callback) {\n  if (typeof options === 'function') {\n    callback = options;\n    options = undefined;\n  }\n  validateCallback(callback);\n\n  const job = createJob(kCryptoJobAsync\x2C type\x2C options);\n\n  job.ondone = (error\x2C result) => {\n    if (error) return FunctionPrototypeCall(callback\x2C job\x2C error);\n    // If no encoding was chosen\x2C return key objects instead.\n    let { 0: pubkey\x2C 1: privkey } = result;\n    pubkey = wrapKey(pubkey\x2C PublicKeyObject);\n    privkey = wrapKey(privkey\x2C PrivateKeyObject);\n    FunctionPrototypeCall(callback\x2C job\x2C null\x2C pubkey\x2C privkey);\n  };\n\n  job.run();\n}\n\nObjectDefineProperty(generateKeyPair\x2C customPromisifyArgs\x2C {\n  value: ['publicKey'\x2C 'privateKey']\x2C\n  enumerable: false\n});\n\nfunction generateKeyPairSync(type\x2C options) {\n  return handleError(createJob(kCryptoJobSync\x2C type\x2C options).run());\n}\n\nfunction handleError(ret) {\n  if (ret == null)\n    return; // async\n\n  const { 0: err\x2C 1: keys } = ret;\n  if (err !== undefined)\n    throw err;\n\n  const { 0: publicKey\x2C 1: privateKey } = keys;\n\n  // If no encoding was chosen\x2C return key objects instead.\n  return {\n    publicKey: wrapKey(publicKey\x2C PublicKeyObject)\x2C\n    privateKey: wrapKey(privateKey\x2C PrivateKeyObject)\n  };\n}\n\nfunction parseKeyEncoding(keyType\x2C options = {}) {\n  const { publicKeyEncoding\x2C privateKeyEncoding } = options;\n\n  let publicFormat\x2C publicType;\n  if (publicKeyEncoding == null) {\n    publicFormat = publicType = undefined;\n  } else if (typeof publicKeyEncoding === 'object') {\n    ({\n      format: publicFormat\x2C\n      type: publicType\n    } = parsePublicKeyEncoding(publicKeyEncoding\x2C keyType\x2C\n                               'publicKeyEncoding'));\n  } else {\n    throw new ERR_INVALID_ARG_VALUE('options.publicKeyEncoding'\x2C\n                                    publicKeyEncoding);\n  }\n\n  let privateFormat\x2C privateType\x2C cipher\x2C passphrase;\n  if (privateKeyEncoding == null) {\n    privateFormat = privateType = undefined;\n  } else if (typeof privateKeyEncoding === 'object') {\n    ({\n      format: privateFormat\x2C\n      type: privateType\x2C\n      cipher\x2C\n      passphrase\n    } = parsePrivateKeyEncoding(privateKeyEncoding\x2C keyType\x2C\n                                'privateKeyEncoding'));\n  } else {\n    throw new ERR_INVALID_ARG_VALUE('options.privateKeyEncoding'\x2C\n                                    privateKeyEncoding);\n  }\n\n  return [\n    publicFormat\x2C\n    publicType\x2C\n    privateFormat\x2C\n    privateType\x2C\n    cipher\x2C\n    passphrase\x2C\n  ];\n}\n\nfunction createJob(mode\x2C type\x2C options) {\n  validateString(type\x2C 'type');\n\n  const encoding = new SafeArrayIterator(parseKeyEncoding(type\x2C options));\n\n  if (options !== undefined)\n    validateObject(options\x2C 'options');\n\n  switch (type) {\n    case 'rsa':\n    case 'rsa-pss':\n    {\n      validateObject(options\x2C 'options');\n      const { modulusLength } = options;\n      if (!isUint32(modulusLength))\n        throw new ERR_INVALID_ARG_VALUE('options.modulusLength'\x2C modulusLength);\n\n      let { publicExponent } = options;\n      if (publicExponent == null) {\n        publicExponent = 0x10001;\n      } else if (!isUint32(publicExponent)) {\n        throw new ERR_INVALID_ARG_VALUE(\n          'options.publicExponent'\x2C\n          publicExponent);\n      }\n\n      if (type === 'rsa') {\n        return new RsaKeyPairGenJob(\n          mode\x2C\n          kKeyVariantRSA_SSA_PKCS1_v1_5\x2C  // Used also for RSA-OAEP\n          modulusLength\x2C\n          publicExponent\x2C\n          ...encoding);\n      }\n\n      const { hash\x2C mgf1Hash\x2C saltLength } = options;\n      if (hash !== undefined && typeof hash !== 'string')\n        throw new ERR_INVALID_ARG_VALUE('options.hash'\x2C hash);\n      if (mgf1Hash !== undefined && typeof mgf1Hash !== 'string')\n        throw new ERR_INVALID_ARG_VALUE('options.mgf1Hash'\x2C mgf1Hash);\n      if (saltLength !== undefined && (!isInt32(saltLength) || saltLength < 0))\n        throw new ERR_INVALID_ARG_VALUE('options.saltLength'\x2C saltLength);\n\n      return new RsaKeyPairGenJob(\n        mode\x2C\n        kKeyVariantRSA_PSS\x2C\n        modulusLength\x2C\n        publicExponent\x2C\n        hash\x2C\n        mgf1Hash\x2C\n        saltLength\x2C\n        ...encoding);\n    }\n    case 'dsa':\n    {\n      validateObject(options\x2C 'options');\n      const { modulusLength } = options;\n      if (!isUint32(modulusLength))\n        throw new ERR_INVALID_ARG_VALUE('options.modulusLength'\x2C modulusLength);\n\n      let { divisorLength } = options;\n      if (divisorLength == null) {\n        divisorLength = -1;\n      } else if (!isInt32(divisorLength) || divisorLength < 0) {\n        throw new ERR_INVALID_ARG_VALUE('options.divisorLength'\x2C divisorLength);\n      }\n\n      return new DsaKeyPairGenJob(\n        mode\x2C\n        modulusLength\x2C\n        divisorLength\x2C\n        ...encoding);\n    }\n    case 'ec':\n    {\n      validateObject(options\x2C 'options');\n      const { namedCurve } = options;\n      if (typeof namedCurve !== 'string')\n        throw new ERR_INVALID_ARG_VALUE('options.namedCurve'\x2C namedCurve);\n      let { paramEncoding } = options;\n      if (paramEncoding == null || paramEncoding === 'named')\n        paramEncoding = OPENSSL_EC_NAMED_CURVE;\n      else if (paramEncoding === 'explicit')\n        paramEncoding = OPENSSL_EC_EXPLICIT_CURVE;\n      else\n        throw new ERR_INVALID_ARG_VALUE('options.paramEncoding'\x2C paramEncoding);\n\n      return new EcKeyPairGenJob(\n        mode\x2C\n        namedCurve\x2C\n        paramEncoding\x2C\n        ...encoding);\n    }\n    case 'ed25519':\n    case 'ed448':\n    case 'x25519':\n    case 'x448':\n    {\n      let id;\n      switch (type) {\n        case 'ed25519':\n          id = EVP_PKEY_ED25519;\n          break;\n        case 'ed448':\n          id = EVP_PKEY_ED448;\n          break;\n        case 'x25519':\n          id = EVP_PKEY_X25519;\n          break;\n        case 'x448':\n          id = EVP_PKEY_X448;\n          break;\n      }\n      return new NidKeyPairGenJob(mode\x2C id\x2C ...encoding);\n    }\n    case 'dh':\n    {\n      validateObject(options\x2C 'options');\n      const { group\x2C primeLength\x2C prime\x2C generator } = options;\n      if (group != null) {\n        if (prime != null)\n          throw new ERR_INCOMPATIBLE_OPTION_PAIR('group'\x2C 'prime');\n        if (primeLength != null)\n          throw new ERR_INCOMPATIBLE_OPTION_PAIR('group'\x2C 'primeLength');\n        if (generator != null)\n          throw new ERR_INCOMPATIBLE_OPTION_PAIR('group'\x2C 'generator');\n        if (typeof group !== 'string')\n          throw new ERR_INVALID_ARG_VALUE('options.group'\x2C group);\n\n        return new DhKeyPairGenJob(mode\x2C group\x2C ...encoding);\n      }\n\n      if (prime != null) {\n        if (primeLength != null)\n          throw new ERR_INCOMPATIBLE_OPTION_PAIR('prime'\x2C 'primeLength');\n        if (!isArrayBufferView(prime))\n          throw new ERR_INVALID_ARG_VALUE('options.prime'\x2C prime);\n      } else if (primeLength != null) {\n        if (!isInt32(primeLength) || primeLength < 0)\n          throw new ERR_INVALID_ARG_VALUE('options.primeLength'\x2C primeLength);\n      } else {\n        throw new ERR_MISSING_OPTION(\n          'At least one of the group\x2C prime\x2C or primeLength options');\n      }\n\n      if (generator != null) {\n        if (!isInt32(generator) || generator < 0)\n          throw new ERR_INVALID_ARG_VALUE('options.generator'\x2C generator);\n      }\n      return new DhKeyPairGenJob(\n        mode\x2C\n        prime != null ? prime : primeLength\x2C\n        generator == null ? 2 : generator\x2C\n        ...encoding);\n    }\n    default:\n      // Fall through\n  }\n  throw new ERR_INVALID_ARG_VALUE('type'\x2C type\x2C 'must be a supported key type');\n}\n\n// Symmetric Key Generation\n\nfunction generateKeyJob(mode\x2C keyType\x2C options) {\n  validateString(keyType\x2C 'type');\n  validateObject(options\x2C 'options');\n  const { length } = options;\n  switch (keyType) {\n    case 'hmac':\n      validateInteger(length\x2C 'options.length'\x2C 1\x2C 2 ** 31 - 1);\n      break;\n    case 'aes':\n      validateOneOf(length\x2C 'options.length'\x2C kAesKeyLengths);\n      break;\n    default:\n      throw new ERR_INVALID_ARG_VALUE(\n        'type'\x2C\n        keyType\x2C\n        'must be a supported key type');\n  }\n\n  return new SecretKeyGenJob(mode\x2C length);\n}\n\nfunction handleGenerateKeyError(ret) {\n  if (ret === undefined)\n    return; // async\n\n  const { 0: err\x2C 1: key } = ret;\n  if (err !== undefined)\n    throw err;\n\n  return wrapKey(key\x2C SecretKeyObject);\n}\n\nfunction generateKey(type\x2C options\x2C callback) {\n  if (typeof options === 'function') {\n    callback = options;\n    options = undefined;\n  }\n\n  validateCallback(callback);\n\n  const job = generateKeyJob(kCryptoJobAsync\x2C type\x2C options);\n\n  job.ondone = (error\x2C key) => {\n    if (error) return FunctionPrototypeCall(callback\x2C job\x2C error);\n    FunctionPrototypeCall(callback\x2C job\x2C null\x2C wrapKey(key\x2C SecretKeyObject));\n  };\n\n  handleGenerateKeyError(job.run());\n}\n\nfunction generateKeySync(type\x2C options) {\n  return handleGenerateKeyError(\n    generateKeyJob(kCryptoJobSync\x2C type\x2C options).run());\n}\n\nmodule.exports = {\n  generateKeyPair\x2C\n  generateKeyPairSync\x2C\n  generateKey\x2C\n  generateKeySync\x2C\n};\n
code-source-info,0x923ecc0609e,149,0,10291,C0O0C4O10291,,
code-creation,Function,10,227319,0x923ecc0670e,509, node:internal/crypto/keygen:1:1,0x923ecc06008,~
code-source-info,0x923ecc0670e,149,0,10291,C0O0C169O25C175O50C180O74C186O461C189O461C194O121C200O140C206O160C212O179C218O199C224O219C230O238C236O257C242O275C248O297C254O330C260O350C266O368C272O387C278O404C284O430C290O620C293O620C298O499C304O518C310O538C316O557C322O583C328O610C334O684C337O684C342O664C348O750C351O750C356O726C361O904C364O904C369O787C375O798C381O810C387O830C393O848C399O867C405O885C411O1049C414O1049C419O1049C424O960C430O994C436O1021C442O1108C445O1108C450O1086C456O1961C467O1923C472O10193C479O10214C485O10233C491O10256C497O10271C503O10208C508O10290,,
tick,0xf7dbe5,227783,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d22e4d,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,227859,0x923ecc08316,5, node:internal/crypto/diffiehellman:1:1,0x923ecc07e20,~
script-source,150,node:internal/crypto/diffiehellman,'use strict';\n\nconst {\n  ArrayBufferPrototypeSlice\x2C\n  FunctionPrototypeCall\x2C\n  MathFloor\x2C\n  ObjectDefineProperty\x2C\n  Promise\x2C\n  SafeSet\x2C\n} = primordials;\n\nconst { Buffer } = require('buffer');\n\nconst {\n  DHBitsJob\x2C\n  DHKeyExportJob\x2C\n  DiffieHellman: _DiffieHellman\x2C\n  DiffieHellmanGroup: _DiffieHellmanGroup\x2C\n  ECDH: _ECDH\x2C\n  ECDHBitsJob\x2C\n  ECDHConvertKey: _ECDHConvertKey\x2C\n  statelessDH\x2C\n  kCryptoJobAsync\x2C\n} = internalBinding('crypto');\n\nconst {\n  codes: {\n    ERR_CRYPTO_ECDH_INVALID_FORMAT\x2C\n    ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY\x2C\n    ERR_CRYPTO_INCOMPATIBLE_KEY\x2C\n    ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  validateCallback\x2C\n  validateInt32\x2C\n  validateObject\x2C\n  validateString\x2C\n  validateUint32\x2C\n} = require('internal/validators');\n\nconst {\n  isArrayBufferView\x2C\n  isAnyArrayBuffer\x2C\n} = require('internal/util/types');\n\nconst {\n  lazyDOMException\x2C\n} = require('internal/util');\n\nconst {\n  KeyObject\x2C\n  InternalCryptoKey\x2C\n  createPrivateKey\x2C\n  createPublicKey\x2C\n  isCryptoKey\x2C\n  isKeyObject\x2C\n} = require('internal/crypto/keys');\n\nconst {\n  generateKeyPair\x2C\n} = require('internal/crypto/keygen');\n\nconst {\n  getArrayBufferOrView\x2C\n  getDefaultEncoding\x2C\n  getUsagesUnion\x2C\n  hasAnyNotIn\x2C\n  jobPromise\x2C\n  toBuf\x2C\n  kHandle\x2C\n  kKeyObject\x2C\n} = require('internal/crypto/util');\n\nconst {\n  crypto: {\n    POINT_CONVERSION_COMPRESSED\x2C\n    POINT_CONVERSION_HYBRID\x2C\n    POINT_CONVERSION_UNCOMPRESSED\x2C\n  }\n} = internalBinding('constants');\n\nconst DH_GENERATOR = 2;\n\nfunction DiffieHellman(sizeOrKey\x2C keyEncoding\x2C generator\x2C genEncoding) {\n  if (!(this instanceof DiffieHellman))\n    return new DiffieHellman(sizeOrKey\x2C keyEncoding\x2C generator\x2C genEncoding);\n\n  if (typeof sizeOrKey !== 'number' &&\n      typeof sizeOrKey !== 'string' &&\n      !isArrayBufferView(sizeOrKey) &&\n      !isAnyArrayBuffer(sizeOrKey)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'sizeOrKey'\x2C\n      ['number'\x2C 'string'\x2C 'ArrayBuffer'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n      sizeOrKey\n    );\n  }\n\n  // Sizes < 0 don't make sense but they _are_ accepted (and subsequently\n  // rejected with ERR_OSSL_BN_BITS_TOO_SMALL) by OpenSSL. The glue code\n  // in node_crypto.cc accepts values that are IsInt32() for that reason\n  // and that's why we do that here too.\n  if (typeof sizeOrKey === 'number')\n    validateInt32(sizeOrKey\x2C 'sizeOrKey');\n\n  if (keyEncoding && !Buffer.isEncoding(keyEncoding) &&\n      keyEncoding !== 'buffer') {\n    genEncoding = generator;\n    generator = keyEncoding;\n    keyEncoding = false;\n  }\n\n  const encoding = getDefaultEncoding();\n  keyEncoding = keyEncoding || encoding;\n  genEncoding = genEncoding || encoding;\n\n  if (typeof sizeOrKey !== 'number')\n    sizeOrKey = toBuf(sizeOrKey\x2C keyEncoding);\n\n  if (!generator) {\n    generator = DH_GENERATOR;\n  } else if (typeof generator === 'number') {\n    validateInt32(generator\x2C 'generator');\n  } else if (typeof generator === 'string') {\n    generator = toBuf(generator\x2C genEncoding);\n  } else if (!isArrayBufferView(generator) && !isAnyArrayBuffer(generator)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'generator'\x2C\n      ['number'\x2C 'string'\x2C 'ArrayBuffer'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n      generator\n    );\n  }\n\n\n  this[kHandle] = new _DiffieHellman(sizeOrKey\x2C generator);\n  ObjectDefineProperty(this\x2C 'verifyError'\x2C {\n    enumerable: true\x2C\n    value: this[kHandle].verifyError\x2C\n    writable: false\n  });\n}\n\n\nfunction DiffieHellmanGroup(name) {\n  if (!(this instanceof DiffieHellmanGroup))\n    return new DiffieHellmanGroup(name);\n  this[kHandle] = new _DiffieHellmanGroup(name);\n  ObjectDefineProperty(this\x2C 'verifyError'\x2C {\n    enumerable: true\x2C\n    value: this[kHandle].verifyError\x2C\n    writable: false\n  });\n}\n\n\nDiffieHellmanGroup.prototype.generateKeys =\n    DiffieHellman.prototype.generateKeys =\n    dhGenerateKeys;\n\nfunction dhGenerateKeys(encoding) {\n  const keys = this[kHandle].generateKeys();\n  encoding = encoding || getDefaultEncoding();\n  return encode(keys\x2C encoding);\n}\n\n\nDiffieHellmanGroup.prototype.computeSecret =\n    DiffieHellman.prototype.computeSecret =\n    dhComputeSecret;\n\nfunction dhComputeSecret(key\x2C inEnc\x2C outEnc) {\n  const encoding = getDefaultEncoding();\n  inEnc = inEnc || encoding;\n  outEnc = outEnc || encoding;\n  key = getArrayBufferOrView(key\x2C 'key'\x2C inEnc);\n  const ret = this[kHandle].computeSecret(key);\n  if (typeof ret === 'string')\n    throw new ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY();\n  return encode(ret\x2C outEnc);\n}\n\n\nDiffieHellmanGroup.prototype.getPrime =\n    DiffieHellman.prototype.getPrime =\n    dhGetPrime;\n\nfunction dhGetPrime(encoding) {\n  const prime = this[kHandle].getPrime();\n  encoding = encoding || getDefaultEncoding();\n  return encode(prime\x2C encoding);\n}\n\n\nDiffieHellmanGroup.prototype.getGenerator =\n    DiffieHellman.prototype.getGenerator =\n    dhGetGenerator;\n\nfunction dhGetGenerator(encoding) {\n  const generator = this[kHandle].getGenerator();\n  encoding = encoding || getDefaultEncoding();\n  return encode(generator\x2C encoding);\n}\n\n\nDiffieHellmanGroup.prototype.getPublicKey =\n    DiffieHellman.prototype.getPublicKey =\n    dhGetPublicKey;\n\nfunction dhGetPublicKey(encoding) {\n  const key = this[kHandle].getPublicKey();\n  encoding = encoding || getDefaultEncoding();\n  return encode(key\x2C encoding);\n}\n\n\nDiffieHellmanGroup.prototype.getPrivateKey =\n    DiffieHellman.prototype.getPrivateKey =\n    dhGetPrivateKey;\n\nfunction dhGetPrivateKey(encoding) {\n  const key = this[kHandle].getPrivateKey();\n  encoding = encoding || getDefaultEncoding();\n  return encode(key\x2C encoding);\n}\n\n\nDiffieHellman.prototype.setPublicKey = function setPublicKey(key\x2C encoding) {\n  encoding = encoding || getDefaultEncoding();\n  key = getArrayBufferOrView(key\x2C 'key'\x2C encoding);\n  this[kHandle].setPublicKey(key);\n  return this;\n};\n\n\nDiffieHellman.prototype.setPrivateKey = function setPrivateKey(key\x2C encoding) {\n  encoding = encoding || getDefaultEncoding();\n  key = getArrayBufferOrView(key\x2C 'key'\x2C encoding);\n  this[kHandle].setPrivateKey(key);\n  return this;\n};\n\n\nfunction ECDH(curve) {\n  if (!(this instanceof ECDH))\n    return new ECDH(curve);\n\n  validateString(curve\x2C 'curve');\n  this[kHandle] = new _ECDH(curve);\n}\n\nECDH.prototype.computeSecret = DiffieHellman.prototype.computeSecret;\nECDH.prototype.setPrivateKey = DiffieHellman.prototype.setPrivateKey;\nECDH.prototype.setPublicKey = DiffieHellman.prototype.setPublicKey;\nECDH.prototype.getPrivateKey = DiffieHellman.prototype.getPrivateKey;\n\nECDH.prototype.generateKeys = function generateKeys(encoding\x2C format) {\n  this[kHandle].generateKeys();\n\n  return this.getPublicKey(encoding\x2C format);\n};\n\nECDH.prototype.getPublicKey = function getPublicKey(encoding\x2C format) {\n  const f = getFormat(format);\n  const key = this[kHandle].getPublicKey(f);\n  encoding = encoding || getDefaultEncoding();\n  return encode(key\x2C encoding);\n};\n\nECDH.convertKey = function convertKey(key\x2C curve\x2C inEnc\x2C outEnc\x2C format) {\n  validateString(curve\x2C 'curve');\n  const encoding = inEnc || getDefaultEncoding();\n  key = getArrayBufferOrView(key\x2C 'key'\x2C encoding);\n  outEnc = outEnc || encoding;\n  const f = getFormat(format);\n  const convertedKey = _ECDHConvertKey(key\x2C curve\x2C f);\n  return encode(convertedKey\x2C outEnc);\n};\n\nfunction encode(buffer\x2C encoding) {\n  if (encoding && encoding !== 'buffer')\n    buffer = buffer.toString(encoding);\n  return buffer;\n}\n\nfunction getFormat(format) {\n  if (format) {\n    if (format === 'compressed')\n      return POINT_CONVERSION_COMPRESSED;\n    if (format === 'hybrid')\n      return POINT_CONVERSION_HYBRID;\n    if (format !== 'uncompressed')\n      throw new ERR_CRYPTO_ECDH_INVALID_FORMAT(format);\n  }\n  return POINT_CONVERSION_UNCOMPRESSED;\n}\n\nconst dhEnabledKeyTypes = new SafeSet(['dh'\x2C 'ec'\x2C 'x448'\x2C 'x25519']);\n\nfunction diffieHellman(options) {\n  validateObject(options\x2C 'options');\n\n  const { privateKey\x2C publicKey } = options;\n  if (!(privateKey instanceof KeyObject))\n    throw new ERR_INVALID_ARG_VALUE('options.privateKey'\x2C privateKey);\n\n  if (!(publicKey instanceof KeyObject))\n    throw new ERR_INVALID_ARG_VALUE('options.publicKey'\x2C publicKey);\n\n  if (privateKey.type !== 'private')\n    throw new ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE(privateKey.type\x2C 'private');\n\n  if (publicKey.type !== 'public' && publicKey.type !== 'private') {\n    throw new ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE(publicKey.type\x2C\n                                                 'private or public');\n  }\n\n  const privateType = privateKey.asymmetricKeyType;\n  const publicType = publicKey.asymmetricKeyType;\n  if (privateType !== publicType || !dhEnabledKeyTypes.has(privateType)) {\n    throw new ERR_CRYPTO_INCOMPATIBLE_KEY('key types for Diffie-Hellman'\x2C\n                                          `${privateType} and ${publicType}`);\n  }\n\n  return statelessDH(privateKey[kHandle]\x2C publicKey[kHandle]);\n}\n\n// The deriveBitsECDH function is part of the Web Crypto API and serves both\n// deriveKeys and deriveBits functions.\nfunction deriveBitsECDH(name\x2C publicKey\x2C privateKey\x2C callback) {\n  validateString(name\x2C 'name');\n  validateObject(publicKey\x2C 'publicKey');\n  validateObject(privateKey\x2C 'privateKey');\n  validateCallback(callback);\n  const job = new ECDHBitsJob(kCryptoJobAsync\x2C name\x2C publicKey\x2C privateKey);\n  job.ondone = (error\x2C bits) => {\n    if (error) return FunctionPrototypeCall(callback\x2C job\x2C error);\n    FunctionPrototypeCall(callback\x2C job\x2C null\x2C bits);\n  };\n  job.run();\n}\n\n// The deriveBitsDH function is part of the Web Crypto API and serves both\n// deriveKeys and deriveBits functions.\nfunction deriveBitsDH(publicKey\x2C privateKey\x2C callback) {\n  validateObject(publicKey\x2C 'publicKey');\n  validateObject(privateKey\x2C 'privateKey');\n  validateCallback(callback);\n  const job = new DHBitsJob(kCryptoJobAsync\x2C publicKey\x2C privateKey);\n  job.ondone = (error\x2C bits) => {\n    if (error) return FunctionPrototypeCall(callback\x2C job\x2C error);\n    FunctionPrototypeCall(callback\x2C job\x2C null\x2C bits);\n  };\n  job.run();\n}\n\nfunction verifyAcceptableDhKeyUse(name\x2C type\x2C usages) {\n  let checkSet;\n  switch (type) {\n    case 'private':\n      checkSet = ['deriveBits'\x2C 'deriveKey'];\n      break;\n    case 'public':\n      checkSet = [];\n      break;\n  }\n  if (hasAnyNotIn(usages\x2C checkSet)) {\n    throw lazyDOMException(\n      `Unsupported key usage for an ${name} key`\x2C\n      'SyntaxError');\n  }\n}\n\nasync function dhGenerateKey(\n  algorithm\x2C\n  extractable\x2C\n  keyUsages) {\n  const usageSet = new SafeSet(keyUsages);\n\n  if (hasAnyNotIn(usageSet\x2C ['deriveKey'\x2C 'deriveBits'])) {\n    throw lazyDOMException(\n      'Unsupported key usage for a DH key'\x2C\n      'SyntaxError');\n  }\n\n  const {\n    name\x2C\n    primeLength\x2C\n    generator\x2C\n    group\n  } = algorithm;\n  let { prime } = algorithm;\n\n  if (prime !== undefined)\n    prime = getArrayBufferOrView(prime);\n\n  return new Promise((resolve\x2C reject) => {\n    generateKeyPair('dh'\x2C {\n      prime\x2C\n      primeLength\x2C\n      generator\x2C\n      group\x2C\n    }\x2C (err\x2C pubKey\x2C privKey) => {\n      if (err) {\n        return reject(lazyDOMException(\n          'The operation failed for an operation-specific reason'\x2C\n          'OperationError'));\n      }\n\n      const algorithm = { name\x2C prime\x2C primeLength\x2C generator\x2C group };\n\n      const publicKey = new InternalCryptoKey(pubKey\x2C algorithm\x2C []\x2C true);\n\n      const privateKey =\n        new InternalCryptoKey(\n          privKey\x2C\n          algorithm\x2C\n          getUsagesUnion(usageSet\x2C 'deriveBits'\x2C 'deriveKey')\x2C\n          extractable);\n\n      resolve({ publicKey\x2C privateKey });\n    });\n  });\n}\n\nasync function asyncDeriveBitsECDH(algorithm\x2C baseKey\x2C length) {\n  const { 'public': key } = algorithm;\n\n  // Null means that we're not asking for a specific number of bits\x2C just\n  // give us everything that is generated.\n  if (length !== null)\n    validateUint32(length\x2C 'length');\n  if (!isCryptoKey(key))\n    throw new ERR_INVALID_ARG_TYPE('algorithm.public'\x2C 'CryptoKey'\x2C key);\n\n  if (key.type !== 'public') {\n    throw lazyDOMException(\n      'algorithm.public must be a public key'\x2C 'InvalidAccessError');\n  }\n  if (baseKey.type !== 'private') {\n    throw lazyDOMException(\n      'baseKey must be a private key'\x2C 'InvalidAccessError');\n  }\n\n  if (key.algorithm.name !== 'ECDH') {\n    throw lazyDOMException('Keys must be ECDH keys'\x2C 'InvalidAccessError');\n  }\n\n  if (key.algorithm.name !== baseKey.algorithm.name) {\n    throw lazyDOMException(\n      'The public and private keys must be of the same type'\x2C\n      'InvalidAccessError');\n  }\n\n  if (key.algorithm.namedCurve !== baseKey.algorithm.namedCurve)\n    throw lazyDOMException('Named curve mismatch'\x2C 'InvalidAccessError');\n\n  const bits = await new Promise((resolve\x2C reject) => {\n    deriveBitsECDH(\n      baseKey.algorithm.namedCurve\x2C\n      key[kKeyObject][kHandle]\x2C\n      baseKey[kKeyObject][kHandle]\x2C (err\x2C bits) => {\n        if (err) return reject(err);\n        resolve(bits);\n      });\n  });\n\n  // If a length is not specified\x2C return the full derived secret\n  if (length === null)\n    return bits;\n\n  // If the length is not a multiple of 8\x2C it will be truncated\n  // down to the nearest multiple of 8.\n  length = MathFloor(length / 8);\n  const { byteLength } = bits;\n\n  // If the length is larger than the derived secret\x2C throw.\n  // Otherwise\x2C we either return the secret or a truncated\n  // slice.\n  if (byteLength < length)\n    throw lazyDOMException('derived bit length is too small'\x2C 'OperationError');\n\n  return length === byteLength ?\n    bits :\n    ArrayBufferPrototypeSlice(bits\x2C 0\x2C length);\n}\n\nasync function asyncDeriveBitsDH(algorithm\x2C baseKey\x2C length) {\n  const { 'public': key } = algorithm;\n  // Null has a specific meaning for DH\n  if (length !== null)\n    validateUint32(length\x2C 'length');\n  if (!isCryptoKey(key))\n    throw new ERR_INVALID_ARG_TYPE('algorithm.public'\x2C 'CryptoKey'\x2C key);\n\n  if (key.type !== 'public') {\n    throw lazyDOMException(\n      'algorithm.public must be a public key'\x2C 'InvalidAccessError');\n  }\n  if (baseKey.type !== 'private') {\n    throw lazyDOMException(\n      'baseKey must be a private key'\x2C 'InvalidAccessError');\n  }\n\n  if (key.algorithm.name !== 'NODE-DH')\n    throw lazyDOMException('Keys must be DH keys'\x2C 'InvalidAccessError');\n\n  if (key.algorithm.name !== baseKey.algorithm.name) {\n    throw lazyDOMException(\n      'The public and private keys must be of the same type'\x2C\n      'InvalidAccessError');\n  }\n\n  const bits = await new Promise((resolve\x2C reject) => {\n    deriveBitsDH(\n      key[kKeyObject][kHandle]\x2C\n      baseKey[kKeyObject][kHandle]\x2C (err\x2C bits) => {\n        if (err) return reject(err);\n        resolve(bits);\n      });\n  });\n\n  // If a length is not specified\x2C return the full derived secret\n  if (length === null)\n    return bits;\n\n  // If the length is not a multiple of 8\x2C it will be truncated\n  // down to the nearest multiple of 8.\n  length = MathFloor(length / 8);\n  const { byteLength } = bits;\n\n  // If the length is larger than the derived secret\x2C throw.\n  // Otherwise\x2C we either return the secret or a truncated\n  // slice.\n  if (byteLength < length)\n    throw lazyDOMException('derived bit length is too small'\x2C 'OperationError');\n\n  return length === byteLength ?\n    bits :\n    ArrayBufferPrototypeSlice(bits\x2C 0\x2C length);\n}\n\nfunction dhExportKey(key\x2C format) {\n  return jobPromise(new DHKeyExportJob(\n    kCryptoJobAsync\x2C\n    format\x2C\n    key[kKeyObject][kHandle]));\n}\n\nasync function dhImportKey(\n  format\x2C\n  keyData\x2C\n  algorithm\x2C\n  extractable\x2C\n  keyUsages) {\n  const usagesSet = new SafeSet(keyUsages);\n  let keyObject;\n  switch (format) {\n    case 'node.keyObject': {\n      if (!isKeyObject(keyData))\n        throw new ERR_INVALID_ARG_TYPE('keyData'\x2C 'KeyObject'\x2C keyData);\n      if (keyData.type === 'secret')\n        throw lazyDOMException('Invalid key type'\x2C 'InvalidAccessException');\n      verifyAcceptableDhKeyUse(algorithm.name\x2C keyData.type\x2C usagesSet);\n      keyObject = keyData;\n      break;\n    }\n    case 'spki': {\n      verifyAcceptableDhKeyUse(algorithm.name\x2C 'public'\x2C usagesSet);\n      keyObject = createPublicKey({\n        key: keyData\x2C\n        format: 'der'\x2C\n        type: 'spki'\n      });\n      break;\n    }\n    case 'pkcs8': {\n      verifyAcceptableDhKeyUse(algorithm.name\x2C 'private'\x2C usagesSet);\n      keyObject = createPrivateKey({\n        key: keyData\x2C\n        format: 'der'\x2C\n        type: 'pkcs8'\n      });\n      break;\n    }\n    default:\n      throw lazyDOMException(\n        `Unable to import DH key with format ${format}`\x2C\n        'NotSupportedError');\n  }\n\n  const {\n    prime\x2C\n    primeLength\x2C\n    generator\x2C\n    group\x2C\n  } = keyObject[kHandle].keyDetail({});\n\n  return new InternalCryptoKey(keyObject\x2C {\n    name: algorithm.name\x2C\n    prime\x2C\n    primeLength\x2C\n    generator\x2C\n    group\x2C\n  }\x2C keyUsages\x2C extractable);\n}\n\nmodule.exports = {\n  DiffieHellman\x2C\n  DiffieHellmanGroup\x2C\n  ECDH\x2C\n  diffieHellman\x2C\n  deriveBitsECDH\x2C\n  deriveBitsDH\x2C\n  dhGenerateKey\x2C\n  asyncDeriveBitsECDH\x2C\n  asyncDeriveBitsDH\x2C\n  dhExportKey\x2C\n  dhImportKey\x2C\n};\n
code-source-info,0x923ecc08316,150,0,16942,C0O0C4O16942,,
code-creation,Function,10,228591,0x923ecc08fce,1080, node:internal/crypto/diffiehellman:1:1,0x923ecc08280,~
code-source-info,0x923ecc08fce,150,0,16942,C0O0C263O25C269O54C275O79C281O92C287O116C293O127C299O173C302O173C307O162C313O411C316O411C321O203C327O216C333O249C339O287C345O316C351O325C357O356C363O375C369O390C375O668C378O668C383O668C388O462C394O498C400O538C406O571C412O611C418O637C424O800C427O800C432O707C438O727C444O744C450O762C456O780C462O886C465O886C470O843C476O864C482O951C485O951C490O929C496O1093C499O1093C504O988C510O1001C516O1022C522O1042C528O1061C534O1076C540O1158C543O1158C548O1137C554O1333C557O1333C562O1204C568O1228C574O1250C580O1268C586O1283C592O1297C598O1306C604O1317C610O1492C613O1492C618O1492C623O1391C629O1424C635O1453C641O1544C643O1544C645O3762C648O3781C656O3824C663O3847C669O3804C673O4035C676O4054C684O4098C691O4122C697O4078C701O4508C704O4527C712O4566C719O4585C725O4546C729O4763C732O4782C740O4825C747O4848C753O4805C757O5046C760O5065C768O5108C775O5131C781O5088C785O5317C788O5336C796O5380C803O5404C809O5360C813O5593C816O5607C825O5630C829O5825C832O5839C841O5863C845O6216C848O6221C856O6261C861O6271C865O6245C869O6286C872O6291C880O6331C885O6341C889O6315C893O6356C896O6361C904O6400C909O6410C913O6384C917O6424C920O6429C928O6469C933O6479C937O6453C941O6495C944O6500C953O6523C957O6650C960O6655C969O6678C973O6881C980O6897C984O7740C994O7740C999O7740C1001O16731C1008O16752C1014O16769C1020O16791C1026O16799C1032O16816C1038O16834C1044O16850C1050O16867C1056O16890C1062O16911C1068O16926C1074O16746C1079O16941,,
tick,0x11684eb,228867,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d22e6f,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,229420,0x923ecc0b6ce,5, node:internal/crypto/cipher:1:1,0x923ecc0b368,~
script-source,151,node:internal/crypto/cipher,'use strict';\n\nconst {\n  ObjectSetPrototypeOf\x2C\n  ReflectApply\x2C\n  StringPrototypeToLowerCase\x2C\n} = primordials;\n\nconst {\n  CipherBase\x2C\n  privateDecrypt: _privateDecrypt\x2C\n  privateEncrypt: _privateEncrypt\x2C\n  publicDecrypt: _publicDecrypt\x2C\n  publicEncrypt: _publicEncrypt\x2C\n  getCipherInfo: _getCipherInfo\x2C\n} = internalBinding('crypto');\n\nconst {\n  crypto: {\n    RSA_PKCS1_OAEP_PADDING\x2C\n    RSA_PKCS1_PADDING\x2C\n  }\n} = internalBinding('constants');\n\nconst {\n  codes: {\n    ERR_CRYPTO_INVALID_STATE\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  validateEncoding\x2C\n  validateInt32\x2C\n  validateObject\x2C\n  validateString\x2C\n} = require('internal/validators');\n\nconst {\n  preparePrivateKey\x2C\n  preparePublicOrPrivateKey\x2C\n  prepareSecretKey\x2C\n} = require('internal/crypto/keys');\n\nconst {\n  getDefaultEncoding\x2C\n  getArrayBufferOrView\x2C\n  getStringOption\x2C\n  kHandle\x2C\n} = require('internal/crypto/util');\n\nconst {\n  isArrayBufferView\x2C\n} = require('internal/util/types');\n\nconst assert = require('internal/assert');\n\nconst LazyTransform = require('internal/streams/lazy_transform');\n\nconst { normalizeEncoding } = require('internal/util');\n\nconst { StringDecoder } = require('string_decoder');\n\nfunction rsaFunctionFor(method\x2C defaultPadding\x2C keyType) {\n  return (options\x2C buffer) => {\n    const { format\x2C type\x2C data\x2C passphrase } =\n      keyType === 'private' ?\n        preparePrivateKey(options) :\n        preparePublicOrPrivateKey(options);\n    const padding = options.padding || defaultPadding;\n    const { oaepHash\x2C encoding } = options;\n    let { oaepLabel } = options;\n    if (oaepHash !== undefined)\n      validateString(oaepHash\x2C 'key.oaepHash');\n    if (oaepLabel !== undefined)\n      oaepLabel = getArrayBufferOrView(oaepLabel\x2C 'key.oaepLabel'\x2C encoding);\n    buffer = getArrayBufferOrView(buffer\x2C 'buffer'\x2C encoding);\n    return method(data\x2C format\x2C type\x2C passphrase\x2C buffer\x2C padding\x2C oaepHash\x2C\n                  oaepLabel);\n  };\n}\n\nconst publicEncrypt = rsaFunctionFor(_publicEncrypt\x2C RSA_PKCS1_OAEP_PADDING\x2C\n                                     'public');\nconst publicDecrypt = rsaFunctionFor(_publicDecrypt\x2C RSA_PKCS1_PADDING\x2C\n                                     'public');\nconst privateEncrypt = rsaFunctionFor(_privateEncrypt\x2C RSA_PKCS1_PADDING\x2C\n                                      'private');\nconst privateDecrypt = rsaFunctionFor(_privateDecrypt\x2C RSA_PKCS1_OAEP_PADDING\x2C\n                                      'private');\n\nfunction getDecoder(decoder\x2C encoding) {\n  encoding = normalizeEncoding(encoding);\n  decoder = decoder || new StringDecoder(encoding);\n  assert(decoder.encoding === encoding\x2C 'Cannot change encoding');\n  return decoder;\n}\n\nfunction getUIntOption(options\x2C key) {\n  let value;\n  if (options && (value = options[key]) != null) {\n    if (value >>> 0 !== value)\n      throw new ERR_INVALID_ARG_VALUE(`options.${key}`\x2C value);\n    return value;\n  }\n  return -1;\n}\n\nfunction createCipherBase(cipher\x2C credential\x2C options\x2C decipher\x2C iv) {\n  const authTagLength = getUIntOption(options\x2C 'authTagLength');\n  this[kHandle] = new CipherBase(decipher);\n  if (iv === undefined) {\n    this[kHandle].init(cipher\x2C credential\x2C authTagLength);\n  } else {\n    this[kHandle].initiv(cipher\x2C credential\x2C iv\x2C authTagLength);\n  }\n  this._decoder = null;\n\n  ReflectApply(LazyTransform\x2C this\x2C [options]);\n}\n\nfunction createCipher(cipher\x2C password\x2C options\x2C decipher) {\n  validateString(cipher\x2C 'cipher');\n  password = getArrayBufferOrView(password\x2C 'password');\n\n  ReflectApply(createCipherBase\x2C this\x2C [cipher\x2C password\x2C options\x2C decipher]);\n}\n\nfunction createCipherWithIV(cipher\x2C key\x2C options\x2C decipher\x2C iv) {\n  validateString(cipher\x2C 'cipher');\n  const encoding = getStringOption(options\x2C 'encoding');\n  key = prepareSecretKey(key\x2C encoding);\n  iv = iv === null ? null : getArrayBufferOrView(iv\x2C 'iv');\n  ReflectApply(createCipherBase\x2C this\x2C [cipher\x2C key\x2C options\x2C decipher\x2C iv]);\n}\n\n// The Cipher class is part of the legacy Node.js crypto API. It exposes\n// a stream-based encryption/decryption model. For backwards compatibility\n// the Cipher class is defined using the legacy function syntax rather than\n// ES6 classes.\n\nfunction Cipher(cipher\x2C password\x2C options) {\n  if (!(this instanceof Cipher))\n    return new Cipher(cipher\x2C password\x2C options);\n\n  ReflectApply(createCipher\x2C this\x2C [cipher\x2C password\x2C options\x2C true]);\n}\n\nObjectSetPrototypeOf(Cipher.prototype\x2C LazyTransform.prototype);\nObjectSetPrototypeOf(Cipher\x2C LazyTransform);\n\nCipher.prototype._transform = function _transform(chunk\x2C encoding\x2C callback) {\n  this.push(this[kHandle].update(chunk\x2C encoding));\n  callback();\n};\n\nCipher.prototype._flush = function _flush(callback) {\n  try {\n    this.push(this[kHandle].final());\n  } catch (e) {\n    callback(e);\n    return;\n  }\n  callback();\n};\n\nCipher.prototype.update = function update(data\x2C inputEncoding\x2C outputEncoding) {\n  const encoding = getDefaultEncoding();\n  inputEncoding = inputEncoding || encoding;\n  outputEncoding = outputEncoding || encoding;\n\n  if (typeof data === 'string') {\n    validateEncoding(data\x2C inputEncoding);\n  } else if (!isArrayBufferView(data)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'data'\x2C ['string'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C data);\n  }\n\n  const ret = this[kHandle].update(data\x2C inputEncoding);\n\n  if (outputEncoding && outputEncoding !== 'buffer') {\n    this._decoder = getDecoder(this._decoder\x2C outputEncoding);\n    return this._decoder.write(ret);\n  }\n\n  return ret;\n};\n\n\nCipher.prototype.final = function final(outputEncoding) {\n  outputEncoding = outputEncoding || getDefaultEncoding();\n  const ret = this[kHandle].final();\n\n  if (outputEncoding && outputEncoding !== 'buffer') {\n    this._decoder = getDecoder(this._decoder\x2C outputEncoding);\n    return this._decoder.end(ret);\n  }\n\n  return ret;\n};\n\n\nCipher.prototype.setAutoPadding = function setAutoPadding(ap) {\n  if (!this[kHandle].setAutoPadding(!!ap))\n    throw new ERR_CRYPTO_INVALID_STATE('setAutoPadding');\n  return this;\n};\n\nCipher.prototype.getAuthTag = function getAuthTag() {\n  const ret = this[kHandle].getAuthTag();\n  if (ret === undefined)\n    throw new ERR_CRYPTO_INVALID_STATE('getAuthTag');\n  return ret;\n};\n\n\nfunction setAuthTag(tagbuf\x2C encoding) {\n  tagbuf = getArrayBufferOrView(tagbuf\x2C 'buffer'\x2C encoding);\n  if (!this[kHandle].setAuthTag(tagbuf))\n    throw new ERR_CRYPTO_INVALID_STATE('setAuthTag');\n  return this;\n}\n\nCipher.prototype.setAAD = function setAAD(aadbuf\x2C options) {\n  const encoding = getStringOption(options\x2C 'encoding');\n  const plaintextLength = getUIntOption(options\x2C 'plaintextLength');\n  aadbuf = getArrayBufferOrView(aadbuf\x2C 'aadbuf'\x2C encoding);\n  if (!this[kHandle].setAAD(aadbuf\x2C plaintextLength))\n    throw new ERR_CRYPTO_INVALID_STATE('setAAD');\n  return this;\n};\n\n// The Cipheriv class is part of the legacy Node.js crypto API. It exposes\n// a stream-based encryption/decryption model. For backwards compatibility\n// the Cipheriv class is defined using the legacy function syntax rather than\n// ES6 classes.\n\nfunction Cipheriv(cipher\x2C key\x2C iv\x2C options) {\n  if (!(this instanceof Cipheriv))\n    return new Cipheriv(cipher\x2C key\x2C iv\x2C options);\n\n  ReflectApply(createCipherWithIV\x2C this\x2C [cipher\x2C key\x2C options\x2C true\x2C iv]);\n}\n\nfunction addCipherPrototypeFunctions(constructor) {\n  constructor.prototype._transform = Cipher.prototype._transform;\n  constructor.prototype._flush = Cipher.prototype._flush;\n  constructor.prototype.update = Cipher.prototype.update;\n  constructor.prototype.final = Cipher.prototype.final;\n  constructor.prototype.setAutoPadding = Cipher.prototype.setAutoPadding;\n  if (constructor === Cipheriv) {\n    constructor.prototype.getAuthTag = Cipher.prototype.getAuthTag;\n  } else {\n    constructor.prototype.setAuthTag = setAuthTag;\n  }\n  constructor.prototype.setAAD = Cipher.prototype.setAAD;\n}\n\nObjectSetPrototypeOf(Cipheriv.prototype\x2C LazyTransform.prototype);\nObjectSetPrototypeOf(Cipheriv\x2C LazyTransform);\naddCipherPrototypeFunctions(Cipheriv);\n\n// The Decipher class is part of the legacy Node.js crypto API. It exposes\n// a stream-based encryption/decryption model. For backwards compatibility\n// the Decipher class is defined using the legacy function syntax rather than\n// ES6 classes.\n\nfunction Decipher(cipher\x2C password\x2C options) {\n  if (!(this instanceof Decipher))\n    return new Decipher(cipher\x2C password\x2C options);\n\n  ReflectApply(createCipher\x2C this\x2C [cipher\x2C password\x2C options\x2C false]);\n}\n\nObjectSetPrototypeOf(Decipher.prototype\x2C LazyTransform.prototype);\nObjectSetPrototypeOf(Decipher\x2C LazyTransform);\naddCipherPrototypeFunctions(Decipher);\n\n// The Decipheriv class is part of the legacy Node.js crypto API. It exposes\n// a stream-based encryption/decryption model. For backwards compatibility\n// the Decipheriv class is defined using the legacy function syntax rather than\n// ES6 classes.\n\nfunction Decipheriv(cipher\x2C key\x2C iv\x2C options) {\n  if (!(this instanceof Decipheriv))\n    return new Decipheriv(cipher\x2C key\x2C iv\x2C options);\n\n  ReflectApply(createCipherWithIV\x2C this\x2C [cipher\x2C key\x2C options\x2C false\x2C iv]);\n}\n\nObjectSetPrototypeOf(Decipheriv.prototype\x2C LazyTransform.prototype);\nObjectSetPrototypeOf(Decipheriv\x2C LazyTransform);\naddCipherPrototypeFunctions(Decipheriv);\n\nfunction getCipherInfo(nameOrNid\x2C options) {\n  if (typeof nameOrNid !== 'string' && typeof nameOrNid !== 'number') {\n    throw new ERR_INVALID_ARG_TYPE(\n      'nameOrNid'\x2C\n      ['string'\x2C 'number']\x2C\n      nameOrNid);\n  }\n  if (typeof nameOrNid === 'number')\n    validateInt32(nameOrNid\x2C 'nameOrNid');\n  let keyLength\x2C ivLength;\n  if (options !== undefined) {\n    validateObject(options\x2C 'options');\n    ({ keyLength\x2C ivLength } = options);\n    if (keyLength !== undefined)\n      validateInt32(keyLength\x2C 'options.keyLength');\n    if (ivLength !== undefined)\n      validateInt32(ivLength\x2C 'options.ivLength');\n  }\n\n  const ret = _getCipherInfo({}\x2C nameOrNid\x2C keyLength\x2C ivLength);\n  if (ret !== undefined) {\n    if (ret.name) ret.name = StringPrototypeToLowerCase(ret.name);\n    if (ret.type) ret.type = StringPrototypeToLowerCase(ret.type);\n  }\n  return ret;\n}\n\nmodule.exports = {\n  Cipher\x2C\n  Cipheriv\x2C\n  Decipher\x2C\n  Decipheriv\x2C\n  privateDecrypt\x2C\n  privateEncrypt\x2C\n  publicDecrypt\x2C\n  publicEncrypt\x2C\n  getCipherInfo\x2C\n};\n
code-source-info,0x923ecc0b6ce,151,0,10241,C0O0C4O10241,,
code-creation,Function,10,229872,0x923ecc0c0a6,843, node:internal/crypto/cipher:1:1,0x923ecc0b638,~
code-source-info,0x923ecc0c0a6,151,0,10241,C0O0C149O25C154O49C160O65C166O306C170O306C175O121C181O151C186O186C191O220C196O253C201O286C207O413C211O413C216O413C222O358C227O386C232O554C236O554C241O554C247O467C253O497C259O523C265O668C269O668C274O593C280O613C286O630C292O648C298O783C302O783C307O711C313O732C319O761C325O905C329O905C334O827C340O849C346O873C352O892C358O972C362O972C367O949C373O1020C377O1020C381O1020C383O1071C387O1071C391O1071C393O1146C397O1146C402O1124C408O1199C412O1199C417O1181C423O1999C433O1999C439O2124C449O2124C455O2245C465O2245C471O2369C481O2369C487O4378C491O4406C501O4431C507O4378C512O4443C520O4443C525O4489C528O4496C537O4517C541O4638C544O4645C553O4662C557O4805C560O4812C569O4829C573O5485C576O5492C585O5508C589O5817C592O5824C601O5849C605O6001C608O6008C617O6029C621O6409C624O6416C633O6433C637O7830C641O7860C651O7885C657O7830C662O7897C670O7897C675O7944C679O7944C683O8439C687O8469C697O8494C703O8439C708O8506C716O8506C721O8553C725O8553C729O9061C733O9093C743O9118C749O9061C754O9130C762O9130C767O9179C771O9179C775O10084C783O10105C789O10115C795O10127C801O10139C807O10153C813O10171C819O10189C825O10206C831O10223C837O10099C842O10240,,
tick,0x1257a80,229942,1,0xb515a0,6,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d22e6f,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,230110,0x923ecc0d5d6,5, node:internal/streams/lazy_transform:1:1,0x923ecc0d450,~
script-source,152,node:internal/streams/lazy_transform,// LazyTransform is a special type of Transform stream that is lazily loaded.\n// This is used for performance with bi-API-ship: when two APIs are available\n// for the stream\x2C one conventional and one non-conventional.\n'use strict';\n\nconst {\n  ObjectDefineProperties\x2C\n  ObjectDefineProperty\x2C\n  ObjectSetPrototypeOf\x2C\n} = primordials;\n\nconst stream = require('stream');\n\nconst {\n  getDefaultEncoding\n} = require('internal/crypto/util');\n\nmodule.exports = LazyTransform;\n\nfunction LazyTransform(options) {\n  this._options = options;\n}\nObjectSetPrototypeOf(LazyTransform.prototype\x2C stream.Transform.prototype);\nObjectSetPrototypeOf(LazyTransform\x2C stream.Transform);\n\nfunction makeGetter(name) {\n  return function() {\n    stream.Transform.call(this\x2C this._options);\n    this._writableState.decodeStrings = false;\n\n    if (!this._options || !this._options.defaultEncoding) {\n      this._writableState.defaultEncoding = getDefaultEncoding();\n    }\n\n    return this[name];\n  };\n}\n\nfunction makeSetter(name) {\n  return function(val) {\n    ObjectDefineProperty(this\x2C name\x2C {\n      value: val\x2C\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\n    });\n  };\n}\n\nObjectDefineProperties(LazyTransform.prototype\x2C {\n  _readableState: {\n    get: makeGetter('_readableState')\x2C\n    set: makeSetter('_readableState')\x2C\n    configurable: true\x2C\n    enumerable: true\n  }\x2C\n  _writableState: {\n    get: makeGetter('_writableState')\x2C\n    set: makeSetter('_writableState')\x2C\n    configurable: true\x2C\n    enumerable: true\n  }\n});\n
code-source-info,0x923ecc0d5d6,152,0,1518,C0O0C4O1518,,
code-creation,Function,10,230193,0x923ecc0d926,193, node:internal/streams/lazy_transform:1:1,0x923ecc0d540,~
code-source-info,0x923ecc0d926,152,0,1518,C0O0C29O243C34O269C40O293C45O348C48O348C52O348C54O401C57O401C62O378C68O435C70O450C74O566C82O584C87O594C92O531C97O606C100O649C105O606C110O1206C120O1237C128O1248C139O1287C153O1385C161O1396C172O1435C186O1169C192O1517,,
code-creation,LazyCompile,10,230287,0x923ecc0de6e,14,makeGetter node:internal/streams/lazy_transform:26:20,0x923ecc0d658,~
code-source-info,0x923ecc0de6e,152,681,970,C0O681C9O692C13O968,,
code-creation,LazyCompile,10,230309,0x923ecc0e206,14,makeSetter node:internal/streams/lazy_transform:39:20,0x923ecc0d6d0,~
code-source-info,0x923ecc0e206,152,991,1167,C0O991C9O1002C13O1165,,
code-creation,LazyCompile,10,230389,0x923ecc0e41e,22,rsaFunctionFor node:internal/crypto/cipher:65:24,0x923ecc0b700,~
code-source-info,0x923ecc0e41e,151,1250,1975,C0O1250C17O1288C21O1973,,
code-creation,LazyCompile,10,230453,0x923ecc0f1c6,169,addCipherPrototypeFunctions node:internal/crypto/cipher:246:37,0x923ecc0b9d0,~
code-source-info,0x923ecc0f1c6,151,7273,7828,C0O7303C8O7333C13O7343C17O7324C21O7369C29O7395C34O7405C38O7386C42O7427C50O7453C55O7463C59O7444C63O7485C71O7510C76O7520C80O7501C84O7541C92O7575C97O7585C101O7566C105O7603C107O7619C112O7651C120O7681C125O7691C129O7672C135O7730C142O7751C146O7783C154O7809C159O7819C163O7800C168O7827,,
code-creation,Eval,10,230725,0x923ecc0f976,5, node:internal/crypto/sig:1:1,0x923ecc0f630,~
script-source,153,node:internal/crypto/sig,'use strict';\n\nconst {\n  FunctionPrototypeCall\x2C\n  ObjectSetPrototypeOf\x2C\n  ReflectApply\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_CRYPTO_SIGN_KEY_REQUIRED\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  validateCallback\x2C\n  validateEncoding\x2C\n  validateString\x2C\n} = require('internal/validators');\n\nconst {\n  Sign: _Sign\x2C\n  SignJob\x2C\n  Verify: _Verify\x2C\n  kCryptoJobAsync\x2C\n  kCryptoJobSync\x2C\n  kSigEncDER\x2C\n  kSigEncP1363\x2C\n  kSignJobModeSign\x2C\n  kSignJobModeVerify\x2C\n} = internalBinding('crypto');\n\nconst {\n  getArrayBufferOrView\x2C\n  getDefaultEncoding\x2C\n  kHandle\x2C\n} = require('internal/crypto/util');\n\nconst {\n  preparePrivateKey\x2C\n  preparePublicOrPrivateKey\x2C\n} = require('internal/crypto/keys');\n\nconst { Writable } = require('stream');\n\nconst { Buffer } = require('buffer');\n\nconst {\n  isArrayBufferView\x2C\n} = require('internal/util/types');\n\nfunction Sign(algorithm\x2C options) {\n  if (!(this instanceof Sign))\n    return new Sign(algorithm\x2C options);\n  validateString(algorithm\x2C 'algorithm');\n  this[kHandle] = new _Sign();\n  this[kHandle].init(algorithm);\n\n  ReflectApply(Writable\x2C this\x2C [options]);\n}\n\nObjectSetPrototypeOf(Sign.prototype\x2C Writable.prototype);\nObjectSetPrototypeOf(Sign\x2C Writable);\n\nSign.prototype._write = function _write(chunk\x2C encoding\x2C callback) {\n  this.update(chunk\x2C encoding);\n  callback();\n};\n\nSign.prototype.update = function update(data\x2C encoding) {\n  encoding = encoding || getDefaultEncoding();\n\n  if (typeof data === 'string') {\n    validateEncoding(data\x2C encoding);\n  } else if (!isArrayBufferView(data)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'data'\x2C ['string'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C data);\n  }\n\n  this[kHandle].update(data\x2C encoding);\n  return this;\n};\n\nfunction getPadding(options) {\n  return getIntOption('padding'\x2C options);\n}\n\nfunction getSaltLength(options) {\n  return getIntOption('saltLength'\x2C options);\n}\n\nfunction getDSASignatureEncoding(options) {\n  if (typeof options === 'object') {\n    const { dsaEncoding = 'der' } = options;\n    if (dsaEncoding === 'der')\n      return kSigEncDER;\n    else if (dsaEncoding === 'ieee-p1363')\n      return kSigEncP1363;\n    throw new ERR_INVALID_ARG_VALUE('options.dsaEncoding'\x2C dsaEncoding);\n  }\n\n  return kSigEncDER;\n}\n\nfunction getIntOption(name\x2C options) {\n  const value = options[name];\n  if (value !== undefined) {\n    if (value === value >> 0) {\n      return value;\n    }\n    throw new ERR_INVALID_ARG_VALUE(`options.${name}`\x2C value);\n  }\n  return undefined;\n}\n\nSign.prototype.sign = function sign(options\x2C encoding) {\n  if (!options)\n    throw new ERR_CRYPTO_SIGN_KEY_REQUIRED();\n\n  const { data\x2C format\x2C type\x2C passphrase } = preparePrivateKey(options\x2C true);\n\n  // Options specific to RSA\n  const rsaPadding = getPadding(options);\n  const pssSaltLength = getSaltLength(options);\n\n  // Options specific to (EC)DSA\n  const dsaSigEnc = getDSASignatureEncoding(options);\n\n  const ret = this[kHandle].sign(data\x2C format\x2C type\x2C passphrase\x2C rsaPadding\x2C\n                                 pssSaltLength\x2C dsaSigEnc);\n\n  encoding = encoding || getDefaultEncoding();\n  if (encoding && encoding !== 'buffer')\n    return ret.toString(encoding);\n\n  return ret;\n};\n\nfunction signOneShot(algorithm\x2C data\x2C key\x2C callback) {\n  if (algorithm != null)\n    validateString(algorithm\x2C 'algorithm');\n\n  if (callback !== undefined)\n    validateCallback(callback);\n\n  data = getArrayBufferOrView(data\x2C 'data');\n\n  if (!key)\n    throw new ERR_CRYPTO_SIGN_KEY_REQUIRED();\n\n  // Options specific to RSA\n  const rsaPadding = getPadding(key);\n  const pssSaltLength = getSaltLength(key);\n\n  // Options specific to (EC)DSA\n  const dsaSigEnc = getDSASignatureEncoding(key);\n\n  const {\n    data: keyData\x2C\n    format: keyFormat\x2C\n    type: keyType\x2C\n    passphrase: keyPassphrase\n  } = preparePrivateKey(key);\n\n  const job = new SignJob(\n    callback ? kCryptoJobAsync : kCryptoJobSync\x2C\n    kSignJobModeSign\x2C\n    keyData\x2C\n    keyFormat\x2C\n    keyType\x2C\n    keyPassphrase\x2C\n    data\x2C\n    algorithm\x2C\n    pssSaltLength\x2C\n    rsaPadding\x2C\n    dsaSigEnc);\n\n  if (!callback) {\n    const { 0: err\x2C 1: signature } = job.run();\n    if (err !== undefined)\n      throw err;\n\n    return Buffer.from(signature);\n  }\n\n  job.ondone = (error\x2C signature) => {\n    if (error) return FunctionPrototypeCall(callback\x2C job\x2C error);\n    FunctionPrototypeCall(callback\x2C job\x2C null\x2C Buffer.from(signature));\n  };\n  job.run();\n}\n\nfunction Verify(algorithm\x2C options) {\n  if (!(this instanceof Verify))\n    return new Verify(algorithm\x2C options);\n  validateString(algorithm\x2C 'algorithm');\n  this[kHandle] = new _Verify();\n  this[kHandle].init(algorithm);\n\n  ReflectApply(Writable\x2C this\x2C [options]);\n}\n\nObjectSetPrototypeOf(Verify.prototype\x2C Writable.prototype);\nObjectSetPrototypeOf(Verify\x2C Writable);\n\nVerify.prototype._write = Sign.prototype._write;\nVerify.prototype.update = Sign.prototype.update;\n\nVerify.prototype.verify = function verify(options\x2C signature\x2C sigEncoding) {\n  const {\n    data\x2C\n    format\x2C\n    type\x2C\n    passphrase\n  } = preparePublicOrPrivateKey(options\x2C true);\n\n  sigEncoding = sigEncoding || getDefaultEncoding();\n\n  // Options specific to RSA\n  const rsaPadding = getPadding(options);\n  const pssSaltLength = getSaltLength(options);\n\n  // Options specific to (EC)DSA\n  const dsaSigEnc = getDSASignatureEncoding(options);\n\n  signature = getArrayBufferOrView(signature\x2C 'signature'\x2C sigEncoding);\n\n  return this[kHandle].verify(data\x2C format\x2C type\x2C passphrase\x2C signature\x2C\n                              rsaPadding\x2C pssSaltLength\x2C dsaSigEnc);\n};\n\nfunction verifyOneShot(algorithm\x2C data\x2C key\x2C signature\x2C callback) {\n  if (algorithm != null)\n    validateString(algorithm\x2C 'algorithm');\n\n  if (callback !== undefined)\n    validateCallback(callback);\n\n  data = getArrayBufferOrView(data\x2C 'data');\n\n  if (!isArrayBufferView(data)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'data'\x2C\n      ['Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n      data\n    );\n  }\n\n  // Options specific to RSA\n  const rsaPadding = getPadding(key);\n  const pssSaltLength = getSaltLength(key);\n\n  // Options specific to (EC)DSA\n  const dsaSigEnc = getDSASignatureEncoding(key);\n\n  if (!isArrayBufferView(signature)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'signature'\x2C\n      ['Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n      signature\n    );\n  }\n\n  const {\n    data: keyData\x2C\n    format: keyFormat\x2C\n    type: keyType\x2C\n    passphrase: keyPassphrase\n  } = preparePublicOrPrivateKey(key);\n\n  const job = new SignJob(\n    callback ? kCryptoJobAsync : kCryptoJobSync\x2C\n    kSignJobModeVerify\x2C\n    keyData\x2C\n    keyFormat\x2C\n    keyType\x2C\n    keyPassphrase\x2C\n    data\x2C\n    algorithm\x2C\n    pssSaltLength\x2C\n    rsaPadding\x2C\n    dsaSigEnc\x2C\n    signature);\n\n  if (!callback) {\n    const { 0: err\x2C 1: result } = job.run();\n    if (err !== undefined)\n      throw err;\n\n    return result;\n  }\n\n  job.ondone = (error\x2C result) => {\n    if (error) return FunctionPrototypeCall(callback\x2C job\x2C error);\n    FunctionPrototypeCall(callback\x2C job\x2C null\x2C result);\n  };\n  job.run();\n}\n\nmodule.exports = {\n  Sign\x2C\n  signOneShot\x2C\n  Verify\x2C\n  verifyOneShot\x2C\n};\n
code-source-info,0x923ecc0f976,153,0,7083,C0O0C4O7083,,
code-creation,Function,10,231073,0x923ecc0ffde,563, node:internal/crypto/sig:1:1,0x923ecc0f8e0,~
code-source-info,0x923ecc0ffde,153,0,7083,C0O0C126O25C132O50C137O74C143O220C146O220C151O220C156O129C162O163C168O189C174O319C177O319C182O259C188O279C194O299C200O518C203O518C208O368C214O377C220O396C226O407C232O426C238O444C244O458C250O474C256O494C262O615C265O615C270O556C276O580C282O602C288O711C291O711C296O659C302O680C308O766C311O766C316O753C322O805C325O805C330O794C336O858C339O858C344O835C350O1152C353O1178C361O1198C366O1152C371O1210C377O1210C382O1249C385O1254C394O1271C398O1368C401O1373C410O1390C414O2517C417O2522C426O2537C430O4681C433O4709C441O4729C446O4681C451O4741C457O4741C462O4782C465O4789C473O4813C478O4823C482O4806C486O4831C489O4838C497O4862C502O4872C506O4855C510O4881C513O4888C522O4905C526O7011C533O7032C539O7040C545O7055C551O7065C557O7026C562O7082,,
tick,0x7efc3373d97a,231107,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d22eaf,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,231398,0x923ecc1143e,5, node:internal/crypto/hash:1:1,0x923ecc11138,~
script-source,154,node:internal/crypto/hash,'use strict';\n\nconst {\n  ObjectSetPrototypeOf\x2C\n  ReflectApply\x2C\n  Symbol\x2C\n} = primordials;\n\nconst {\n  Hash: _Hash\x2C\n  HashJob\x2C\n  Hmac: _Hmac\x2C\n  kCryptoJobAsync\x2C\n} = internalBinding('crypto');\n\nconst {\n  getArrayBufferOrView\x2C\n  getDefaultEncoding\x2C\n  getStringOption\x2C\n  jobPromise\x2C\n  normalizeAlgorithm\x2C\n  normalizeHashName\x2C\n  validateMaxBufferLength\x2C\n  kHandle\x2C\n} = require('internal/crypto/util');\n\nconst {\n  prepareSecretKey\x2C\n} = require('internal/crypto/keys');\n\nconst {\n  Buffer\x2C\n} = require('buffer');\n\nconst {\n  codes: {\n    ERR_CRYPTO_HASH_FINALIZED\x2C\n    ERR_CRYPTO_HASH_UPDATE_FAILED\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  validateEncoding\x2C\n  validateString\x2C\n  validateUint32\x2C\n} = require('internal/validators');\n\nconst {\n  isArrayBufferView\x2C\n} = require('internal/util/types');\n\nconst LazyTransform = require('internal/streams/lazy_transform');\n\nconst kState = Symbol('kState');\nconst kFinalized = Symbol('kFinalized');\n\nfunction Hash(algorithm\x2C options) {\n  if (!(this instanceof Hash))\n    return new Hash(algorithm\x2C options);\n  if (!(algorithm instanceof _Hash))\n    validateString(algorithm\x2C 'algorithm');\n  const xofLen = typeof options === 'object' && options !== null ?\n    options.outputLength : undefined;\n  if (xofLen !== undefined)\n    validateUint32(xofLen\x2C 'options.outputLength');\n  this[kHandle] = new _Hash(algorithm\x2C xofLen);\n  this[kState] = {\n    [kFinalized]: false\n  };\n  ReflectApply(LazyTransform\x2C this\x2C [options]);\n}\n\nObjectSetPrototypeOf(Hash.prototype\x2C LazyTransform.prototype);\nObjectSetPrototypeOf(Hash\x2C LazyTransform);\n\nHash.prototype.copy = function copy(options) {\n  const state = this[kState];\n  if (state[kFinalized])\n    throw new ERR_CRYPTO_HASH_FINALIZED();\n\n  return new Hash(this[kHandle]\x2C options);\n};\n\nHash.prototype._transform = function _transform(chunk\x2C encoding\x2C callback) {\n  this[kHandle].update(chunk\x2C encoding);\n  callback();\n};\n\nHash.prototype._flush = function _flush(callback) {\n  this.push(this[kHandle].digest());\n  callback();\n};\n\nHash.prototype.update = function update(data\x2C encoding) {\n  encoding = encoding || getDefaultEncoding();\n\n  const state = this[kState];\n  if (state[kFinalized])\n    throw new ERR_CRYPTO_HASH_FINALIZED();\n\n  if (typeof data === 'string') {\n    validateEncoding(data\x2C encoding);\n  } else if (!isArrayBufferView(data)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'data'\x2C ['string'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C data);\n  }\n\n  if (!this[kHandle].update(data\x2C encoding))\n    throw new ERR_CRYPTO_HASH_UPDATE_FAILED();\n  return this;\n};\n\n\nHash.prototype.digest = function digest(outputEncoding) {\n  const state = this[kState];\n  if (state[kFinalized])\n    throw new ERR_CRYPTO_HASH_FINALIZED();\n  outputEncoding = outputEncoding || getDefaultEncoding();\n\n  // Explicit conversion for backward compatibility.\n  const ret = this[kHandle].digest(`${outputEncoding}`);\n  state[kFinalized] = true;\n  return ret;\n};\n\nfunction Hmac(hmac\x2C key\x2C options) {\n  if (!(this instanceof Hmac))\n    return new Hmac(hmac\x2C key\x2C options);\n  validateString(hmac\x2C 'hmac');\n  const encoding = getStringOption(options\x2C 'encoding');\n  key = prepareSecretKey(key\x2C encoding);\n  this[kHandle] = new _Hmac();\n  this[kHandle].init(hmac\x2C key);\n  this[kState] = {\n    [kFinalized]: false\n  };\n  ReflectApply(LazyTransform\x2C this\x2C [options]);\n}\n\nObjectSetPrototypeOf(Hmac.prototype\x2C LazyTransform.prototype);\nObjectSetPrototypeOf(Hmac\x2C LazyTransform);\n\nHmac.prototype.update = Hash.prototype.update;\n\nHmac.prototype.digest = function digest(outputEncoding) {\n  const state = this[kState];\n  outputEncoding = outputEncoding || getDefaultEncoding();\n\n  if (state[kFinalized]) {\n    const buf = Buffer.from('');\n    return outputEncoding === 'buffer' ? buf : buf.toString(outputEncoding);\n  }\n\n  // Explicit conversion for backward compatibility.\n  const ret = this[kHandle].digest(`${outputEncoding}`);\n  state[kFinalized] = true;\n  return ret;\n};\n\nHmac.prototype._flush = Hash.prototype._flush;\nHmac.prototype._transform = Hash.prototype._transform;\n\n// Implementation for WebCrypto subtle.digest()\n\nasync function asyncDigest(algorithm\x2C data) {\n  algorithm = normalizeAlgorithm(algorithm);\n  data = getArrayBufferOrView(data\x2C 'data');\n  validateMaxBufferLength(data\x2C 'data');\n\n  if (algorithm.length !== undefined)\n    validateUint32(algorithm.length\x2C 'algorithm.length');\n\n  return jobPromise(new HashJob(\n    kCryptoJobAsync\x2C\n    normalizeHashName(algorithm.name)\x2C\n    data\x2C\n    algorithm.length));\n}\n\nmodule.exports = {\n  Hash\x2C\n  Hmac\x2C\n  asyncDigest\x2C\n};\n
code-source-info,0x923ecc1143e,154,0,4550,C0O0C4O4550,,
code-creation,Function,10,231608,0x923ecc1198e,590, node:internal/crypto/hash:1:1,0x923ecc113a8,~
code-source-info,0x923ecc1198e,154,0,4550,C0O0C97O25C102O49C108O65C113O163C116O163C121O107C127O116C133O133C139O142C145O363C148O363C153O201C159O225C165O247C171O266C177O280C183O302C189O323C195O350C201O429C204O429C209O407C215O485C218O485C223O473C229O624C232O624C237O624C242O528C248O559C254O594C260O721C263O721C268O663C274O683C280O701C286O787C289O787C294O764C300O842C303O842C307O842C309O902C312O902C316O902C318O939C321O939C325O939C327O1483C330O1509C338O1534C343O1483C348O1546C354O1546C359O1590C362O1595C371O1610C375O1783C378O1788C387O1809C391O1919C394O1924C403O1941C407O2026C410O2031C419O2048C423O2566C426O2571C435O2588C439O3339C442O3365C450O3390C455O3339C460O3402C466O3402C471O3446C474O3451C482O3475C487O3485C491O3468C495O3494C498O3499C507O3516C511O3940C514O3945C522O3969C527O3979C531O3962C535O3987C538O3992C546O4020C551O4030C555O4013C559O4497C566O4518C572O4526C578O4534C584O4512C589O4549,,
code-creation,Eval,10,231987,0x923ecc12e56,5, node:internal/crypto/x509:1:1,0x923ecc12a80,~
script-source,155,node:internal/crypto/x509,'use strict';\n\nconst {\n  ObjectSetPrototypeOf\x2C\n  SafeMap\x2C\n  Symbol\x2C\n} = primordials;\n\nconst {\n  parseX509\x2C\n  X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT\x2C\n  X509_CHECK_FLAG_NEVER_CHECK_SUBJECT\x2C\n  X509_CHECK_FLAG_NO_WILDCARDS\x2C\n  X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS\x2C\n  X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS\x2C\n  X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS\x2C\n} = internalBinding('crypto');\n\nconst {\n  PublicKeyObject\x2C\n  isKeyObject\x2C\n} = require('internal/crypto/keys');\n\nconst {\n  customInspectSymbol: kInspect\x2C\n} = require('internal/util');\n\nconst {\n  validateBoolean\x2C\n  validateObject\x2C\n  validateString\x2C\n} = require('internal/validators');\n\nconst { inspect } = require('internal/util/inspect');\n\nconst { Buffer } = require('buffer');\n\nconst {\n  isArrayBufferView\x2C\n} = require('internal/util/types');\n\nconst {\n  codes: {\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  JSTransferable\x2C\n  kClone\x2C\n  kDeserialize\x2C\n} = require('internal/worker/js_transferable');\n\nconst {\n  kHandle\x2C\n} = require('internal/crypto/util');\n\nconst kInternalState = Symbol('kInternalState');\n\nfunction isX509Certificate(value) {\n  return value[kInternalState] !== undefined;\n}\n\nfunction getFlags(options = {}) {\n  validateObject(options\x2C 'options');\n  const {\n    subject = 'always'\x2C  // Can be 'always' or 'never'\n    wildcards = true\x2C\n    partialWildcards = true\x2C\n    multiLabelWildcards = false\x2C\n    singleLabelSubdomains = false\x2C\n  } = { ...options };\n  let flags = 0;\n  validateString(subject\x2C 'options.subject');\n  validateBoolean(wildcards\x2C 'options.wildcards');\n  validateBoolean(partialWildcards\x2C 'options.partialWildcards');\n  validateBoolean(multiLabelWildcards\x2C 'options.multiLabelWildcards');\n  validateBoolean(singleLabelSubdomains\x2C 'options.singleLabelSubdomains');\n  switch (subject) {\n    case 'always': flags |= X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT; break;\n    case 'never': flags |= X509_CHECK_FLAG_NEVER_CHECK_SUBJECT; break;\n    default:\n      throw new ERR_INVALID_ARG_VALUE('options.subject'\x2C subject);\n  }\n  if (!wildcards) flags |= X509_CHECK_FLAG_NO_WILDCARDS;\n  if (!partialWildcards) flags |= X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS;\n  if (multiLabelWildcards) flags |= X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS;\n  if (singleLabelSubdomains) flags |= X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS;\n  return flags;\n}\n\nclass InternalX509Certificate extends JSTransferable {\n  [kInternalState] = new SafeMap();\n\n  constructor(handle) {\n    super();\n    this[kHandle] = handle;\n  }\n}\n\nclass X509Certificate extends JSTransferable {\n  [kInternalState] = new SafeMap();\n\n  constructor(buffer) {\n    if (typeof buffer === 'string')\n      buffer = Buffer.from(buffer);\n    if (!isArrayBufferView(buffer)) {\n      throw new ERR_INVALID_ARG_TYPE(\n        'buffer'\x2C\n        ['string'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n        buffer);\n    }\n    super();\n    this[kHandle] = parseX509(buffer);\n  }\n\n  [kInspect](depth\x2C options) {\n    if (depth < 0)\n      return this;\n\n    const opts = {\n      ...options\x2C\n      depth: options.depth == null ? null : options.depth - 1\n    };\n\n    return `X509Certificate ${inspect({\n      subject: this.subject\x2C\n      subjectAltName: this.subjectAltName\x2C\n      issuer: this.issuer\x2C\n      infoAccess: this.infoAccess\x2C\n      validFrom: this.validFrom\x2C\n      validTo: this.validTo\x2C\n      fingerprint: this.fingerprint\x2C\n      fingerprint256: this.fingerprint256\x2C\n      keyUsage: this.keyUsage\x2C\n      serialNumber: this.serialNumber\x2C\n    }\x2C opts)}`;\n  }\n\n  [kClone]() {\n    const handle = this[kHandle];\n    return {\n      data: { handle }\x2C\n      deserializeInfo: 'internal/crypto/x509:InternalX509Certificate'\n    };\n  }\n\n  [kDeserialize]({ handle }) {\n    this[kHandle] = handle;\n  }\n\n  get subject() {\n    let value = this[kInternalState].get('subject');\n    if (value === undefined) {\n      value = this[kHandle].subject();\n      this[kInternalState].set('subject'\x2C value);\n    }\n    return value;\n  }\n\n  get subjectAltName() {\n    let value = this[kInternalState].get('subjectAltName');\n    if (value === undefined) {\n      value = this[kHandle].subjectAltName();\n      this[kInternalState].set('subjectAltName'\x2C value);\n    }\n    return value;\n  }\n\n  get issuer() {\n    let value = this[kInternalState].get('issuer');\n    if (value === undefined) {\n      value = this[kHandle].issuer();\n      this[kInternalState].set('issuer'\x2C value);\n    }\n    return value;\n  }\n\n  get issuerCertificate() {\n    let value = this[kInternalState].get('issuerCertificate');\n    if (value === undefined) {\n      const cert = this[kHandle].getIssuerCert();\n      if (cert)\n        value = new InternalX509Certificate(this[kHandle].getIssuerCert());\n      this[kInternalState].set('issuerCertificate'\x2C value);\n    }\n    return value;\n  }\n\n  get infoAccess() {\n    let value = this[kInternalState].get('infoAccess');\n    if (value === undefined) {\n      value = this[kHandle].infoAccess();\n      this[kInternalState].set('infoAccess'\x2C value);\n    }\n    return value;\n  }\n\n  get validFrom() {\n    let value = this[kInternalState].get('validFrom');\n    if (value === undefined) {\n      value = this[kHandle].validFrom();\n      this[kInternalState].set('validFrom'\x2C value);\n    }\n    return value;\n  }\n\n  get validTo() {\n    let value = this[kInternalState].get('validTo');\n    if (value === undefined) {\n      value = this[kHandle].validTo();\n      this[kInternalState].set('validTo'\x2C value);\n    }\n    return value;\n  }\n\n  get fingerprint() {\n    let value = this[kInternalState].get('fingerprint');\n    if (value === undefined) {\n      value = this[kHandle].fingerprint();\n      this[kInternalState].set('fingerprint'\x2C value);\n    }\n    return value;\n  }\n\n  get fingerprint256() {\n    let value = this[kInternalState].get('fingerprint256');\n    if (value === undefined) {\n      value = this[kHandle].fingerprint256();\n      this[kInternalState].set('fingerprint256'\x2C value);\n    }\n    return value;\n  }\n\n  get keyUsage() {\n    let value = this[kInternalState].get('keyUsage');\n    if (value === undefined) {\n      value = this[kHandle].keyUsage();\n      this[kInternalState].set('keyUsage'\x2C value);\n    }\n    return value;\n  }\n\n  get serialNumber() {\n    let value = this[kInternalState].get('serialNumber');\n    if (value === undefined) {\n      value = this[kHandle].serialNumber();\n      this[kInternalState].set('serialNumber'\x2C value);\n    }\n    return value;\n  }\n\n  get raw() {\n    let value = this[kInternalState].get('raw');\n    if (value === undefined) {\n      value = this[kHandle].raw();\n      this[kInternalState].set('raw'\x2C value);\n    }\n    return value;\n  }\n\n  get publicKey() {\n    let value = this[kInternalState].get('publicKey');\n    if (value === undefined) {\n      value = new PublicKeyObject(this[kHandle].publicKey());\n      this[kInternalState].set('publicKey'\x2C value);\n    }\n    return value;\n  }\n\n  toString() {\n    let value = this[kInternalState].get('pem');\n    if (value === undefined) {\n      value = this[kHandle].pem();\n      this[kInternalState].set('pem'\x2C value);\n    }\n    return value;\n  }\n\n  // There's no standardized JSON encoding for X509 certs so we\n  // fallback to providing the PEM encoding as a string.\n  toJSON() { return this.toString(); }\n\n  get ca() {\n    let value = this[kInternalState].get('ca');\n    if (value === undefined) {\n      value = this[kHandle].checkCA();\n      this[kInternalState].set('ca'\x2C value);\n    }\n    return value;\n  }\n\n  checkHost(name\x2C options) {\n    validateString(name\x2C 'name');\n    return this[kHandle].checkHost(name\x2C getFlags(options));\n  }\n\n  checkEmail(email\x2C options) {\n    validateString(email\x2C 'email');\n    return this[kHandle].checkEmail(email\x2C getFlags(options));\n  }\n\n  checkIP(ip\x2C options) {\n    validateString(ip\x2C 'ip');\n    return this[kHandle].checkIP(ip\x2C getFlags(options));\n  }\n\n  checkIssued(otherCert) {\n    if (!isX509Certificate(otherCert))\n      throw new ERR_INVALID_ARG_TYPE('otherCert'\x2C 'X509Certificate'\x2C otherCert);\n    return this[kHandle].checkIssued(otherCert[kHandle]);\n  }\n\n  checkPrivateKey(pkey) {\n    if (!isKeyObject(pkey))\n      throw new ERR_INVALID_ARG_TYPE('pkey'\x2C 'KeyObject'\x2C pkey);\n    if (pkey.type !== 'private')\n      throw new ERR_INVALID_ARG_VALUE('pkey'\x2C pkey);\n    return this[kHandle].checkPrivateKey(pkey[kHandle]);\n  }\n\n  verify(pkey) {\n    if (!isKeyObject(pkey))\n      throw new ERR_INVALID_ARG_TYPE('pkey'\x2C 'KeyObject'\x2C pkey);\n    if (pkey.type !== 'public')\n      throw new ERR_INVALID_ARG_VALUE('pkey'\x2C pkey);\n    return this[kHandle].verify(pkey[kHandle]);\n  }\n\n  toLegacyObject() {\n    return this[kHandle].toLegacy();\n  }\n}\n\nInternalX509Certificate.prototype.constructor = X509Certificate;\nObjectSetPrototypeOf(\n  InternalX509Certificate.prototype\x2C\n  X509Certificate.prototype);\n\nmodule.exports = {\n  X509Certificate\x2C\n  InternalX509Certificate\x2C\n  isX509Certificate\x2C\n};\n
code-source-info,0x923ecc12e56,155,0,8836,C0O0C4O8836,,
tick,0x7efc3363549c,232393,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x1fe027d22ee7,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Function,10,232408,0x923ecc147ce,651, node:internal/crypto/x509:1:1,0x923ecc12dc0,~
code-source-info,0x923ecc147ce,155,0,8836,C0O0C80O25C85O49C91O60C96O346C99O346C104O96C110O109C116O149C122O188C128O220C134O260C140O301C146O420C149O420C154O384C160O403C166O499C169O499C174O485C179O593C182O593C187O536C193O555C199O573C205O646C208O646C213O634C219O700C222O700C227O689C233O753C236O753C241O730C247O866C250O866C255O866C260O809C266O835C272O951C275O951C280O905C285O923C290O933C295O1019C298O1019C303O1006C309O1076C312O1076C316O1076C325O2380C333O2400C368O2342C377O2536C385O2556C395O2919C403O3503C412O3671C588O8592C591O8616C598O8638C602O8657C605O8705C610O8734C615O8657C620O8747C627O8768C633O8787C639O8814C645O8762C650O8835,,
code-creation,Function,10,232431,0x923ecc14bd6,26,<instance_members_initializer> node:internal/crypto/x509:103:3,0x923ecc139e8,~
code-source-info,0x923ecc14bd6,155,2555,2587,C3O2574C10O2574C25O2587,,
code-creation,Function,10,232439,0x923ecc14c86,26,<instance_members_initializer> node:internal/crypto/x509:94:3,0x923ecc12f78,~
code-source-info,0x923ecc14c86,155,2399,2431,C3O2418C10O2418C25O2431,,
code-creation,Eval,10,232667,0x923ecc162b6,5, node:internal/crypto/certificate:1:1,0x923ecc16110,~
script-source,156,node:internal/crypto/certificate,'use strict';\n\nconst {\n  certExportChallenge\x2C\n  certExportPublicKey\x2C\n  certVerifySpkac\x2C\n} = internalBinding('crypto');\n\nconst {\n  getArrayBufferOrView\x2C\n} = require('internal/crypto/util');\n\n// The functions contained in this file cover the SPKAC format\n// (also referred to as Netscape SPKI). A general description of\n// the format can be found at https://en.wikipedia.org/wiki/SPKAC\n\nfunction verifySpkac(spkac\x2C encoding) {\n  return certVerifySpkac(\n    getArrayBufferOrView(spkac\x2C 'spkac'\x2C encoding));\n}\n\nfunction exportPublicKey(spkac\x2C encoding) {\n  return certExportPublicKey(\n    getArrayBufferOrView(spkac\x2C 'spkac'\x2C encoding));\n}\n\nfunction exportChallenge(spkac\x2C encoding) {\n  return certExportChallenge(\n    getArrayBufferOrView(spkac\x2C 'spkac'\x2C encoding));\n}\n\n// The legacy implementation of this exposed the Certificate\n// object and required that users create an instance before\n// calling the member methods. This API pattern has been\n// deprecated\x2C however\x2C as the method implementations do not\n// rely on any object state.\n\n// For backwards compatibility reasons\x2C this cannot be converted into a\n// ES6 Class.\nfunction Certificate() {\n  if (!(this instanceof Certificate))\n    return new Certificate();\n}\n\nCertificate.prototype.verifySpkac = verifySpkac;\nCertificate.prototype.exportPublicKey = exportPublicKey;\nCertificate.prototype.exportChallenge = exportChallenge;\n\nCertificate.exportChallenge = exportChallenge;\nCertificate.exportPublicKey = exportPublicKey;\nCertificate.verifySpkac = verifySpkac;\n\nmodule.exports = Certificate;\n
code-source-info,0x923ecc162b6,156,0,1546,C0O0C4O1546,,
code-creation,Function,10,232749,0x923ecc164fe,155, node:internal/crypto/certificate:1:1,0x923ecc16220,~
code-source-info,0x923ecc164fe,156,0,1546,C0O0C38O92C41O92C46O25C52O48C58O71C64O156C67O156C72O130C78O1218C81O1230C88O1252C92O1267C95O1279C102O1305C106O1324C109O1336C116O1362C120O1382C125O1410C129O1429C134O1457C138O1476C143O1500C147O1516C149O1531C154O1545,,
tick,0x110cbb4,233146,0,0x0,3,0x11e9ce0,0x1615d7f,0x3f8cd556adb8,0x3f8cd556ac69,0x3f8cd556aae0,0xac12f0,0x3f8cd556a7e2,0x1c78303f7c8d,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,233157,0x923ecc16fce,13,get node:crypto:287:8,0x1fe027d21ff8,~
code-source-info,0x923ecc16fce,141,6772,6827,C0O6777C8O6784C12O6825,,
code-creation,LazyCompile,10,233223,0x923ecc17ac6,38,lazyRequire node:internal/crypto/util:67:21,0x1fe027d362b8,~
code-source-info,0x923ecc17ac6,144,1210,1345,C0O1231C7O1247C11O1257C13O1284C21O1315C26O1313C35O1332C37O1343,,
code-creation,Eval,10,233656,0x923ecc190ae,5, node:internal/crypto/webcrypto:1:1,0x923ecc18cb8,~
script-source,157,node:internal/crypto/webcrypto,'use strict';\n\nconst {\n  ArrayPrototypeIncludes\x2C\n  JSONParse\x2C\n  JSONStringify\x2C\n  ObjectDefineProperties\x2C\n  SafeSet\x2C\n  SymbolToStringTag\x2C\n  StringPrototypeRepeat\x2C\n} = primordials;\n\nconst {\n  kWebCryptoKeyFormatRaw\x2C\n  kWebCryptoKeyFormatPKCS8\x2C\n  kWebCryptoKeyFormatSPKI\x2C\n  kWebCryptoCipherEncrypt\x2C\n  kWebCryptoCipherDecrypt\x2C\n} = internalBinding('crypto');\n\nconst {\n  validateArray\x2C\n  validateBoolean\x2C\n  validateObject\x2C\n  validateOneOf\x2C\n  validateString\x2C\n} = require('internal/validators');\n\nconst { TextDecoder\x2C TextEncoder } = require('internal/encoding');\n\nconst {\n  codes: {\n    ERR_INVALID_ARG_TYPE\x2C\n  }\n} = require('internal/errors');\n\nconst {\n  CryptoKey\x2C\n  InternalCryptoKey\x2C\n  createSecretKey\x2C\n  isCryptoKey\x2C\n  isKeyObject\x2C\n} = require('internal/crypto/keys');\n\nconst {\n  asyncDigest\x2C\n} = require('internal/crypto/hash');\n\nconst {\n  getArrayBufferOrView\x2C\n  hasAnyNotIn\x2C\n  lazyRequire\x2C\n  normalizeAlgorithm\x2C\n  normalizeHashName\x2C\n  validateMaxBufferLength\x2C\n  kExportFormats\x2C\n  kHandle\x2C\n  kKeyObject\x2C\n} = require('internal/crypto/util');\n\nconst {\n  lazyDOMException\x2C\n} = require('internal/util');\n\nconst {\n  getRandomValues\x2C\n} = require('internal/crypto/random');\n\nasync function generateKey(\n  algorithm\x2C\n  extractable\x2C\n  keyUsages) {\n  algorithm = normalizeAlgorithm(algorithm);\n  validateBoolean(extractable\x2C 'extractable');\n  validateArray(keyUsages\x2C 'keyUsages');\n  switch (algorithm.name) {\n    case 'RSASSA-PKCS1-v1_5':\n      // Fall through\n    case 'RSA-PSS':\n      // Fall through\n    case 'RSA-OAEP':\n      return lazyRequire('internal/crypto/rsa')\n        .rsaKeyGenerate(algorithm\x2C extractable\x2C keyUsages);\n    case 'NODE-ED25519':\n      // Fall through\n    case 'NODE-ED448':\n      // Fall through\n    case 'ECDSA':\n      // Fall through\n    case 'ECDH':\n      return lazyRequire('internal/crypto/ec')\n        .ecGenerateKey(algorithm\x2C extractable\x2C keyUsages);\n    case 'HMAC':\n      return lazyRequire('internal/crypto/mac')\n        .hmacGenerateKey(algorithm\x2C extractable\x2C keyUsages);\n    case 'AES-CTR':\n      // Fall through\n    case 'AES-CBC':\n      // Fall through\n    case 'AES-GCM':\n      // Fall through\n    case 'AES-KW':\n      return lazyRequire('internal/crypto/aes')\n        .aesGenerateKey(algorithm\x2C extractable\x2C keyUsages);\n\n    // Following are Node.js specific extensions. Names must be prefixed\n    // with the `NODE-`\n    case 'NODE-DSA':\n      return lazyRequire('internal/crypto/dsa')\n        .dsaGenerateKey(algorithm\x2C extractable\x2C keyUsages);\n    case 'NODE-DH':\n      return lazyRequire('internal/crypto/diffiehellman')\n        .dhGenerateKey(algorithm\x2C extractable\x2C keyUsages);\n    default:\n      throw lazyDOMException('Unrecognized name.');\n  }\n}\n\nasync function deriveBits(algorithm\x2C baseKey\x2C length) {\n  algorithm = normalizeAlgorithm(algorithm);\n  if (!isCryptoKey(baseKey))\n    throw new ERR_INVALID_ARG_TYPE('baseKey'\x2C 'CryptoKey'\x2C baseKey);\n  if (!ArrayPrototypeIncludes(baseKey.usages\x2C 'deriveBits')) {\n    throw lazyDOMException(\n      'baseKey does not have deriveBits usage'\x2C\n      'InvalidAccessError');\n  }\n  if (baseKey.algorithm.name !== algorithm.name)\n    throw lazyDOMException('Key algorithm mismatch'\x2C 'InvalidAccessError');\n  switch (algorithm.name) {\n    case 'ECDH':\n      return lazyRequire('internal/crypto/diffiehellman')\n        .asyncDeriveBitsECDH(algorithm\x2C baseKey\x2C length);\n    case 'HKDF':\n      return lazyRequire('internal/crypto/hkdf')\n        .hkdfDeriveBits(algorithm\x2C baseKey\x2C length);\n    case 'PBKDF2':\n      return lazyRequire('internal/crypto/pbkdf2')\n        .pbkdf2DeriveBits(algorithm\x2C baseKey\x2C length);\n    case 'NODE-SCRYPT':\n      return lazyRequire('internal/crypto/scrypt')\n        .scryptDeriveBits(algorithm\x2C baseKey\x2C length);\n    case 'NODE-DH':\n      return lazyRequire('internal/crypto/diffiehellman')\n        .asyncDeriveBitsDH(algorithm\x2C baseKey\x2C length);\n  }\n  throw lazyDOMException('Unrecognized name.');\n}\n\nasync function deriveKey(\n  algorithm\x2C\n  baseKey\x2C\n  derivedKeyAlgorithm\x2C\n  extractable\x2C\n  keyUsages) {\n  algorithm = normalizeAlgorithm(algorithm);\n  derivedKeyAlgorithm = normalizeAlgorithm(derivedKeyAlgorithm);\n  if (!isCryptoKey(baseKey))\n    throw new ERR_INVALID_ARG_TYPE('baseKey'\x2C 'CryptoKey'\x2C baseKey);\n  if (!ArrayPrototypeIncludes(baseKey.usages\x2C 'deriveKey')) {\n    throw lazyDOMException(\n      'baseKey does not have deriveKey usage'\x2C\n      'InvalidAccessError');\n  }\n  if (baseKey.algorithm.name !== algorithm.name)\n    throw lazyDOMException('Key algorithm mismatch'\x2C 'InvalidAccessError');\n  validateObject(derivedKeyAlgorithm\x2C 'derivedKeyAlgorithm'\x2C {\n    allowArray: true\x2C allowFunction: true\x2C\n  });\n  validateBoolean(extractable\x2C 'extractable');\n  validateArray(keyUsages\x2C 'keyUsages');\n\n  const { length } = derivedKeyAlgorithm;\n  let bits;\n  switch (algorithm.name) {\n    case 'ECDH':\n      bits = await lazyRequire('internal/crypto/diffiehellman')\n        .asyncDeriveBitsECDH(algorithm\x2C baseKey\x2C length);\n      break;\n    case 'HKDF':\n      bits = await lazyRequire('internal/crypto/hkdf')\n        .hkdfDeriveBits(algorithm\x2C baseKey\x2C length);\n      break;\n    case 'PBKDF2':\n      bits = await lazyRequire('internal/crypto/pbkdf2')\n        .pbkdf2DeriveBits(algorithm\x2C baseKey\x2C length);\n      break;\n    case 'NODE-SCRYPT':\n      bits = await lazyRequire('internal/crypto/scrypt')\n        .scryptDeriveBits(algorithm\x2C baseKey\x2C length);\n      break;\n    case 'NODE-DH':\n      bits = await lazyRequire('internal/crypto/diffiehellman')\n        .asyncDeriveBitsDH(algorithm\x2C baseKey\x2C length);\n      break;\n    default:\n      throw lazyDOMException('Unrecognized name.');\n  }\n\n  return importKey('raw'\x2C bits\x2C derivedKeyAlgorithm\x2C extractable\x2C keyUsages);\n}\n\nasync function exportKeySpki(key) {\n  switch (key.algorithm.name) {\n    case 'RSASSA-PKCS1-v1_5':\n      // Fall through\n    case 'RSA-PSS':\n      // Fall through\n    case 'RSA-OAEP':\n      if (key.type === 'public') {\n        return lazyRequire('internal/crypto/rsa')\n          .rsaExportKey(key\x2C kWebCryptoKeyFormatSPKI);\n      }\n      break;\n    case 'NODE-ED25519':\n      // Fall through\n    case 'NODE-ED448':\n      // Fall through\n    case 'ECDSA':\n      // Fall through\n    case 'ECDH':\n      if (key.type === 'public') {\n        return lazyRequire('internal/crypto/ec')\n          .ecExportKey(key\x2C kWebCryptoKeyFormatSPKI);\n      }\n      break;\n    case 'NODE-DSA':\n      if (key.type === 'public') {\n        return lazyRequire('internal/crypto/dsa')\n          .dsaExportKey(key\x2C kWebCryptoKeyFormatSPKI);\n      }\n      break;\n    case 'NODE-DH':\n      if (key.type === 'public') {\n        return lazyRequire('internal/crypto/diffiehellman')\n          .dhExportKey(key\x2C kWebCryptoKeyFormatSPKI);\n      }\n      break;\n  }\n\n  throw lazyDOMException(\n    `Unable to export a raw ${key.algorithm.name} ${key.type} key`\x2C\n    'InvalidAccessError');\n}\n\nasync function exportKeyPkcs8(key) {\n  switch (key.algorithm.name) {\n    case 'RSASSA-PKCS1-v1_5':\n      // Fall through\n    case 'RSA-PSS':\n      // Fall through\n    case 'RSA-OAEP':\n      if (key.type === 'private') {\n        return lazyRequire('internal/crypto/rsa')\n          .rsaExportKey(key\x2C kWebCryptoKeyFormatPKCS8);\n      }\n      break;\n    case 'NODE-ED25519':\n      // Fall through\n    case 'NODE-ED448':\n      // Fall through\n    case 'ECDSA':\n      // Fall through\n    case 'ECDH':\n      if (key.type === 'private') {\n        return lazyRequire('internal/crypto/ec')\n          .ecExportKey(key\x2C kWebCryptoKeyFormatPKCS8);\n      }\n      break;\n    case 'NODE-DSA':\n      if (key.type === 'private') {\n        return lazyRequire('internal/crypto/dsa')\n          .dsaExportKey(key\x2C kWebCryptoKeyFormatPKCS8);\n      }\n      break;\n    case 'NODE-DH':\n      if (key.type === 'private') {\n        return lazyRequire('internal/crypto/diffiehellman')\n          .dhExportKey(key\x2C kWebCryptoKeyFormatPKCS8);\n      }\n      break;\n  }\n\n  throw lazyDOMException(\n    `Unable to export a pkcs8 ${key.algorithm.name} ${key.type} key`\x2C\n    'InvalidAccessError');\n}\n\nasync function exportKeyRaw(key) {\n  switch (key.algorithm.name) {\n    case 'NODE-ED25519':\n      // Fall through\n    case 'NODE-ED448':\n      if (key.type === 'public') {\n        return lazyRequire('internal/crypto/ec')\n          .ecExportKey(key\x2C kWebCryptoKeyFormatRaw);\n      }\n      break;\n    case 'ECDSA':\n      // Fall through\n    case 'ECDH':\n      if (key.type === 'public') {\n        return lazyRequire('internal/crypto/ec')\n          .ecExportKey(key\x2C kWebCryptoKeyFormatRaw);\n      }\n      break;\n    case 'AES-CTR':\n      // Fall through\n    case 'AES-CBC':\n      // Fall through\n    case 'AES-GCM':\n      // Fall through\n    case 'AES-KW':\n      // Fall through\n    case 'HMAC':\n      return key[kKeyObject].export().buffer;\n  }\n\n  throw lazyDOMException(\n    `Unable to export a raw ${key.algorithm.name} ${key.type} key`\x2C\n    'InvalidAccessError');\n}\n\nasync function exportKeyJWK(key) {\n  const jwk = key[kKeyObject][kHandle].exportJwk({\n    key_ops: key.usages\x2C\n    ext: key.extractable\x2C\n  });\n  switch (key.algorithm.name) {\n    case 'RSASSA-PKCS1-v1_5':\n      jwk.alg = normalizeHashName(\n        key.algorithm.hash.name\x2C\n        normalizeHashName.kContextJwkRsa);\n      return jwk;\n    case 'RSA-PSS':\n      jwk.alg = normalizeHashName(\n        key.algorithm.hash.name\x2C\n        normalizeHashName.kContextJwkRsaPss);\n      return jwk;\n    case 'RSA-OAEP':\n      jwk.alg = normalizeHashName(\n        key.algorithm.hash.name\x2C\n        normalizeHashName.kContextJwkRsaOaep);\n      return jwk;\n    case 'ECDSA':\n      // Fall through\n    case 'ECDH':\n      jwk.crv ||= key.algorithm.namedCurve;\n      return jwk;\n    case 'AES-CTR':\n      // Fall through\n    case 'AES-CBC':\n      // Fall through\n    case 'AES-GCM':\n      // Fall through\n    case 'AES-KW':\n      jwk.alg = lazyRequire('internal/crypto/aes')\n        .getAlgorithmName(key.algorithm.name\x2C key.algorithm.length);\n      return jwk;\n    case 'HMAC':\n      jwk.alg = normalizeHashName(\n        key.algorithm.hash.name\x2C\n        normalizeHashName.kContextJwkHmac);\n      return jwk;\n    case 'NODE-DSA':\n      jwk.alg = normalizeHashName(\n        key.algorithm.hash.name\x2C\n        normalizeHashName.kContextJwkDsa);\n      return jwk;\n    case 'NODE-ED25519':\n      // Fall through\n    case 'NODE-ED448':\n      return jwk;\n    default:\n      // Fall through\n  }\n\n  throw lazyDOMException('Not yet supported'\x2C 'NotSupportedError');\n}\n\nasync function exportKey(format\x2C key) {\n  validateString(format\x2C 'format');\n  validateOneOf(format\x2C 'format'\x2C kExportFormats);\n  if (!isCryptoKey(key))\n    throw new ERR_INVALID_ARG_TYPE('key'\x2C 'CryptoKey'\x2C key);\n\n  if (!key.extractable)\n    throw lazyDOMException('key is not extractable'\x2C 'InvalidAccessException');\n\n  switch (format) {\n    case 'node.keyObject': return key[kKeyObject];\n    case 'spki': return exportKeySpki(key);\n    case 'pkcs8': return exportKeyPkcs8(key);\n    case 'jwk': return exportKeyJWK(key);\n    case 'raw': return exportKeyRaw(key);\n  }\n  throw lazyDOMException(\n    'Export format is unsupported'\x2C 'NotSupportedError');\n}\n\nasync function importGenericSecretKey(\n  { name\x2C length }\x2C\n  format\x2C\n  keyData\x2C\n  extractable\x2C\n  keyUsages) {\n  const usagesSet = new SafeSet(keyUsages);\n  if (extractable)\n    throw lazyDOMException(`${name} keys are not extractable`\x2C 'SyntaxError');\n\n  if (hasAnyNotIn(usagesSet\x2C ['deriveKey'\x2C 'deriveBits'])) {\n    throw lazyDOMException(\n      `Unsupported key usage for a ${name} key`\x2C\n      'SyntaxError');\n  }\n\n  switch (format) {\n    case 'node.keyObject': {\n      if (!isKeyObject(keyData))\n        throw new ERR_INVALID_ARG_TYPE('keyData'\x2C 'KeyObject'\x2C keyData);\n\n      if (keyData.type === 'secret')\n        return new InternalCryptoKey(keyData\x2C { name }\x2C keyUsages\x2C extractable);\n\n      break;\n    }\n    case 'raw':\n      if (hasAnyNotIn(usagesSet\x2C ['deriveKey'\x2C 'deriveBits'])) {\n        throw lazyDOMException(\n          `Unsupported key usage for a ${name} key`\x2C\n          'SyntaxError');\n      }\n\n      const checkLength = keyData.byteLength * 8;\n\n      if (checkLength === 0 || length === 0)\n        throw lazyDOMException('Zero-length key is not supported'\x2C 'DataError');\n\n      // The Web Crypto spec allows for key lengths that are not multiples of\n      // 8. We don't. Our check here is stricter than that defined by the spec\n      // in that we require that algorithm.length match keyData.length * 8 if\n      // algorithm.length is specified.\n      if (length !== undefined && length !== checkLength) {\n        throw lazyDOMException('Invalid key length'\x2C 'DataError');\n      }\n\n      const keyObject = createSecretKey(keyData);\n      return new InternalCryptoKey(keyObject\x2C { name }\x2C keyUsages\x2C false);\n  }\n\n  throw lazyDOMException(\n    `Unable to import ${name} key with format ${format}`\x2C\n    'NotSupportedError');\n}\n\nasync function importKey(\n  format\x2C\n  keyData\x2C\n  algorithm\x2C\n  extractable\x2C\n  keyUsages) {\n  validateString(format\x2C 'format');\n  validateOneOf(format\x2C 'format'\x2C kExportFormats);\n  if (format !== 'node.keyObject' && format !== 'jwk')\n    keyData = getArrayBufferOrView(keyData\x2C 'keyData');\n  algorithm = normalizeAlgorithm(algorithm);\n  validateBoolean(extractable\x2C 'extractable');\n  validateArray(keyUsages\x2C 'keyUsages');\n  switch (algorithm.name) {\n    case 'RSASSA-PKCS1-v1_5':\n      // Fall through\n    case 'RSA-PSS':\n      // Fall through\n    case 'RSA-OAEP':\n      return lazyRequire('internal/crypto/rsa')\n        .rsaImportKey(format\x2C keyData\x2C algorithm\x2C extractable\x2C keyUsages);\n    case 'NODE-ED25519':\n      // Fall through\n    case 'NODE-ED448':\n      // Fall through\n    case 'ECDSA':\n      // Fall through\n    case 'ECDH':\n      return lazyRequire('internal/crypto/ec')\n        .ecImportKey(format\x2C keyData\x2C algorithm\x2C extractable\x2C keyUsages);\n    case 'HMAC':\n      return lazyRequire('internal/crypto/mac')\n        .hmacImportKey(format\x2C keyData\x2C algorithm\x2C extractable\x2C keyUsages);\n    case 'AES-CTR':\n      // Fall through\n    case 'AES-CBC':\n      // Fall through\n    case 'AES-GCM':\n      // Fall through\n    case 'AES-KW':\n      return lazyRequire('internal/crypto/aes')\n        .aesImportKey(algorithm\x2C format\x2C keyData\x2C extractable\x2C keyUsages);\n    case 'HKDF':\n      // Fall through\n    case 'NODE-SCRYPT':\n      // Fall through\n    case 'PBKDF2':\n      return importGenericSecretKey(\n        algorithm\x2C\n        format\x2C\n        keyData\x2C\n        extractable\x2C\n        keyUsages);\n    case 'NODE-DSA':\n      return lazyRequire('internal/crypto/dsa')\n        .dsaImportKey(format\x2C keyData\x2C algorithm\x2C extractable\x2C keyUsages);\n    case 'NODE-DH':\n      return lazyRequire('internal/crypto/diffiehellman')\n        .dhImportKey(format\x2C keyData\x2C algorithm\x2C extractable\x2C keyUsages);\n  }\n\n  throw lazyDOMException('Unrecognized name.'\x2C 'NotSupportedError');\n}\n\n// subtle.wrapKey() is essentially a subtle.exportKey() followed\n// by a subtle.encrypt().\nasync function wrapKey(format\x2C key\x2C wrappingKey\x2C algorithm) {\n  algorithm = normalizeAlgorithm(algorithm);\n  let keyData = await exportKey(format\x2C key);\n\n  if (format === 'jwk') {\n    if (keyData == null || typeof keyData !== 'object')\n      throw lazyDOMException('Invalid exported JWK key'\x2C 'DataError');\n    const ec = new TextEncoder();\n    const raw = JSONStringify(keyData);\n    keyData = ec.encode(raw + StringPrototypeRepeat(' '\x2C 8 - (raw.length % 8)));\n  }\n\n  return cipherOrWrap(\n    kWebCryptoCipherEncrypt\x2C\n    algorithm\x2C\n    wrappingKey\x2C\n    keyData\x2C\n    'wrapKey');\n}\n\n// subtle.unwrapKey() is essentially a subtle.decrypt() followed\n// by a subtle.importKey().\nasync function unwrapKey(\n  format\x2C\n  wrappedKey\x2C\n  unwrappingKey\x2C\n  unwrapAlgo\x2C\n  unwrappedKeyAlgo\x2C\n  extractable\x2C\n  keyUsages) {\n  wrappedKey = getArrayBufferOrView(wrappedKey\x2C 'wrappedKey');\n\n  let keyData = await cipherOrWrap(\n    kWebCryptoCipherDecrypt\x2C\n    normalizeAlgorithm(unwrapAlgo)\x2C\n    unwrappingKey\x2C\n    wrappedKey\x2C\n    'unwrapKey');\n\n  if (format === 'jwk') {\n    // The fatal: true option is only supported in builds that have ICU.\n    const options = process.versions.icu !== undefined ?\n      { fatal: true } : undefined;\n    const dec = new TextDecoder('utf-8'\x2C options);\n    try {\n      keyData = JSONParse(dec.decode(keyData));\n    } catch {\n      throw lazyDOMException('Invalid imported JWK key'\x2C 'DataError');\n    }\n  }\n\n  return importKey(format\x2C keyData\x2C unwrappedKeyAlgo\x2C extractable\x2C keyUsages);\n}\n\nfunction signVerify(algorithm\x2C key\x2C data\x2C signature) {\n  algorithm = normalizeAlgorithm(algorithm);\n  if (!isCryptoKey(key))\n    throw new ERR_INVALID_ARG_TYPE('key'\x2C 'CryptoKey'\x2C key);\n  data = getArrayBufferOrView(data\x2C 'data');\n  let usage = 'sign';\n  if (signature !== undefined) {\n    signature = getArrayBufferOrView(signature\x2C 'signature');\n    usage = 'verify';\n  }\n\n  if (!ArrayPrototypeIncludes(key.usages\x2C usage) ||\n      algorithm.name !== key.algorithm.name) {\n    throw lazyDOMException(\n      `Unable to use this key to ${usage}`\x2C\n      'InvalidAccessError');\n  }\n\n  switch (algorithm.name) {\n    case 'RSA-PSS':\n      // Fall through\n    case 'RSASSA-PKCS1-v1_5':\n      return lazyRequire('internal/crypto/rsa')\n        .rsaSignVerify(key\x2C data\x2C algorithm\x2C signature);\n    case 'NODE-ED25519':\n      // Fall through\n    case 'NODE-ED448':\n      // Fall through\n    case 'ECDSA':\n      return lazyRequire('internal/crypto/ec')\n        .ecdsaSignVerify(key\x2C data\x2C algorithm\x2C signature);\n    case 'HMAC':\n      return lazyRequire('internal/crypto/mac')\n        .hmacSignVerify(key\x2C data\x2C algorithm\x2C signature);\n    // The following are Node.js specific extensions. They must begin with\n    // the `NODE-` prefix\n    case 'NODE-DSA':\n      return lazyRequire('internal/crypto/dsa')\n        .dsaSignVerify(key\x2C data\x2C algorithm\x2C signature);\n  }\n  throw lazyDOMException('Unrecognized named.'\x2C 'NotSupportedError');\n}\n\nasync function sign(algorithm\x2C key\x2C data) {\n  return signVerify(algorithm\x2C key\x2C data);\n}\n\nasync function verify(algorithm\x2C key\x2C signature\x2C data) {\n  return signVerify(algorithm\x2C key\x2C data\x2C signature);\n}\n\nasync function cipherOrWrap(mode\x2C algorithm\x2C key\x2C data\x2C op) {\n  algorithm = normalizeAlgorithm(algorithm);\n  // We use a Node.js style error here instead of a DOMException because\n  // the WebCrypto spec is not specific what kind of error is to be thrown\n  // in this case. Both Firefox and Chrome throw simple TypeErrors here.\n  if (!isCryptoKey(key))\n    throw new ERR_INVALID_ARG_TYPE('key'\x2C 'CryptoKey'\x2C key);\n  // The key algorithm and cipher algorithm must match\x2C and the\n  // key must have the proper usage.\n  if (key.algorithm.name !== algorithm.name ||\n      !ArrayPrototypeIncludes(key.usages\x2C op)) {\n    throw lazyDOMException(\n      'The requested operation is not valid for the provided key'\x2C\n      'InvalidAccessError');\n  }\n\n  // For the Web Crypto API\x2C the input data can be any ArrayBuffer\x2C\n  // TypedArray\x2C or DataView.\n  data = getArrayBufferOrView(data\x2C 'data');\n\n  // While WebCrypto allows for larger input buffer sizes\x2C we limit\n  // those to sizes that can fit within uint32_t because of limitations\n  // in the OpenSSL API.\n  validateMaxBufferLength(data\x2C 'data');\n\n  switch (algorithm.name) {\n    case 'RSA-OAEP':\n      return lazyRequire('internal/crypto/rsa')\n        .rsaCipher(mode\x2C key\x2C data\x2C algorithm);\n    case 'AES-CTR':\n      // Fall through\n    case 'AES-CBC':\n      // Fall through\n    case 'AES-GCM':\n      return lazyRequire('internal/crypto/aes')\n        .aesCipher(mode\x2C key\x2C data\x2C algorithm);\n    case 'AES-KW':\n      if (op === 'wrapKey' || op === 'unwrapKey') {\n        return lazyRequire('internal/crypto/aes')\n          .aesCipher(mode\x2C key\x2C data\x2C algorithm);\n      }\n  }\n  throw lazyDOMException('Unrecognized name.'\x2C 'NotSupportedError');\n}\n\nasync function encrypt(algorithm\x2C key\x2C data) {\n  return cipherOrWrap(kWebCryptoCipherEncrypt\x2C algorithm\x2C key\x2C data\x2C 'encrypt');\n}\n\nasync function decrypt(algorithm\x2C key\x2C data) {\n  return cipherOrWrap(kWebCryptoCipherDecrypt\x2C algorithm\x2C key\x2C data\x2C 'decrypt');\n}\n\n// The SubtleCrypto and Crypto classes are defined as part of the\n// Web Crypto API standard: https://www.w3.org/TR/WebCryptoAPI/\n\nclass SubtleCrypto {}\nconst subtle = new SubtleCrypto();\n\nclass Crypto {}\nconst crypto = new Crypto();\n\nObjectDefineProperties(\n  Crypto.prototype\x2C {\n    [SymbolToStringTag]: {\n      enumerable: false\x2C\n      configurable: true\x2C\n      writable: false\x2C\n      value: 'Crypto'\x2C\n    }\x2C\n    subtle: {\n      enumerable: true\x2C\n      configurable: false\x2C\n      value: subtle\x2C\n    }\x2C\n    getRandomValues: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: getRandomValues\x2C\n    }\x2C\n    CryptoKey: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: CryptoKey\x2C\n    }\n  });\n\nObjectDefineProperties(\n  SubtleCrypto.prototype\x2C {\n    [SymbolToStringTag]: {\n      enumerable: false\x2C\n      configurable: true\x2C\n      writable: false\x2C\n      value: 'SubtleCrypto'\x2C\n    }\x2C\n    encrypt: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: encrypt\x2C\n    }\x2C\n    decrypt: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: decrypt\x2C\n    }\x2C\n    sign: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: sign\x2C\n    }\x2C\n    verify: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: verify\x2C\n    }\x2C\n    digest: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: asyncDigest\x2C\n    }\x2C\n    generateKey: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: generateKey\x2C\n    }\x2C\n    deriveKey: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: deriveKey\x2C\n    }\x2C\n    deriveBits: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: deriveBits\x2C\n    }\x2C\n    importKey: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: importKey\x2C\n    }\x2C\n    exportKey: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: exportKey\x2C\n    }\x2C\n    wrapKey: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: wrapKey\x2C\n    }\x2C\n    unwrapKey: {\n      enumerable: true\x2C\n      configurable: true\x2C\n      writable: true\x2C\n      value: unwrapKey\x2C\n    }\n  });\n\nmodule.exports = crypto;\n
code-source-info,0x923ecc190ae,157,0,22366,C0O0C4O22366,,
tick,0x7efc33635473,234631,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc17adb,0x923ecc16fd6,0x1615d7f,0x3f8cd556adb8,0x3f8cd556ac69,0x3f8cd556aae0,0xac12f0,0x3f8cd556a7e2,0x1c78303f7c8d,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Function,10,234644,0x923ecc1a2ee,999, node:internal/crypto/webcrypto:1:1,0x923ecc19018,~
code-source-info,0x923ecc1a2ee,157,0,22366,C0O0C204O25C210O51C216O64C222O81C227O107C233O118C238O139C244O327C248O327C254O190C260O216C266O244C272O271C278O298C284O456C288O456C294O365C300O382C306O401C312O419C318O436C324O526C328O526C334O497C340O510C346O610C350O610C356O610C362O580C368O734C372O734C378O649C383O662C389O683C395O702C401O717C407O795C411O795C417O778C422O1008C426O1008C432O839C438O863C444O878C450O893C456O915C462O936C468O963C474O981C480O992C486O1074C490O1074C496O1052C502O1132C506O1132C512O1111C543O20134C545O20134C554O20134C577O20186C579O20186C586O20234C600O20252C602O20272C615O20390C623O20456C638O20492C646O20579C661O20618C669O20705C680O20201C685O20768C699O20786C701O20806C714O20931C722O21018C737O21047C745O21134C760O21160C768O21247C783O21272C791O21359C806O21386C814O21473C829O21510C837O21597C852O21632C860O21719C875O21753C883O21840C898O21874C906O21961C921O21994C929O22081C944O22112C952O22199C967O22230C975O22317C986O20729C991O22341C993O22356C998O22365,,
code-creation,LazyCompile,10,234842,0x923ecc1c4be,2,SubtleCrypto node:internal/crypto/webcrypto:683:1,0x923ecc19680,~
code-source-info,0x923ecc1c4be,157,20097,20097,C1O20097,,
code-creation,LazyCompile,10,234863,0x923ecc1de76,2,Crypto node:internal/crypto/webcrypto:686:1,0x923ecc196d0,~
code-source-info,0x923ecc1de76,157,20155,20155,C1O20155,,
tick,0x1166f50,235285,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,235709,0x923ecc1f26e,5, node:assert:1:1,0x923ecc1ec68,~
script-source,158,node:assert,// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.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\n// deal in the Software without restriction\x2C including without limitation the\n// rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C distribute\x2C sublicense\x2C and/or\n// sell 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 BE LIABLE FOR ANY CLAIM\x2C DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN\n// ACTION OF CONTRACT\x2C TORT OR OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n  ArrayPrototypeIndexOf\x2C\n  ArrayPrototypeJoin\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeShift\x2C\n  ArrayPrototypeSlice\x2C\n  Error\x2C\n  ErrorCaptureStackTrace\x2C\n  FunctionPrototypeBind\x2C\n  NumberIsNaN\x2C\n  ObjectAssign\x2C\n  ObjectIs\x2C\n  ObjectKeys\x2C\n  ObjectPrototypeIsPrototypeOf\x2C\n  ReflectApply\x2C\n  RegExpPrototypeTest\x2C\n  SafeMap\x2C\n  String\x2C\n  StringPrototypeCharCodeAt\x2C\n  StringPrototypeIncludes\x2C\n  StringPrototypeIndexOf\x2C\n  StringPrototypeReplace\x2C\n  StringPrototypeSlice\x2C\n  StringPrototypeSplit\x2C\n  StringPrototypeStartsWith\x2C\n} = primordials;\n\nconst { Buffer } = require('buffer');\nconst {\n  codes: {\n    ERR_AMBIGUOUS_ARGUMENT\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_INVALID_RETURN_VALUE\x2C\n    ERR_MISSING_ARGS\x2C\n  }\x2C\n  isErrorStackTraceLimitWritable\x2C\n  overrideStackTrace\x2C\n} = require('internal/errors');\nconst AssertionError = require('internal/assert/assertion_error');\nconst { openSync\x2C closeSync\x2C readSync } = require('fs');\nconst { inspect } = require('internal/util/inspect');\nconst { isPromise\x2C isRegExp } = require('internal/util/types');\nconst { EOL } = require('internal/constants');\nconst { NativeModule } = require('internal/bootstrap/loaders');\nconst { isError } = require('internal/util');\n\nconst errorCache = new SafeMap();\nconst CallTracker = require('internal/assert/calltracker');\nconst {\n  validateFunction\x2C\n} = require('internal/validators');\n\nlet isDeepEqual;\nlet isDeepStrictEqual;\nlet parseExpressionAt;\nlet findNodeAround;\nlet decoder;\n\nfunction lazyLoadComparison() {\n  const comparison = require('internal/util/comparisons');\n  isDeepEqual = comparison.isDeepEqual;\n  isDeepStrictEqual = comparison.isDeepStrictEqual;\n}\n\n// Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\nconst escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nconst meta = [\n  '\\\\u0000'\x2C '\\\\u0001'\x2C '\\\\u0002'\x2C '\\\\u0003'\x2C '\\\\u0004'\x2C\n  '\\\\u0005'\x2C '\\\\u0006'\x2C '\\\\u0007'\x2C '\\\\b'\x2C ''\x2C\n  ''\x2C '\\\\u000b'\x2C '\\\\f'\x2C ''\x2C '\\\\u000e'\x2C\n  '\\\\u000f'\x2C '\\\\u0010'\x2C '\\\\u0011'\x2C '\\\\u0012'\x2C '\\\\u0013'\x2C\n  '\\\\u0014'\x2C '\\\\u0015'\x2C '\\\\u0016'\x2C '\\\\u0017'\x2C '\\\\u0018'\x2C\n  '\\\\u0019'\x2C '\\\\u001a'\x2C '\\\\u001b'\x2C '\\\\u001c'\x2C '\\\\u001d'\x2C\n  '\\\\u001e'\x2C '\\\\u001f'\x2C\n];\n\nconst escapeFn = (str) => meta[StringPrototypeCharCodeAt(str\x2C 0)];\n\nlet warned = false;\n\n// The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nconst assert = module.exports = ok;\n\nconst NO_EXCEPTION_SENTINEL = {};\n\n// All of the following functions must throw an AssertionError\n// when a corresponding condition is not met\x2C with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n  if (obj.message instanceof Error) throw obj.message;\n\n  throw new AssertionError(obj);\n}\n\n/**\n * @param {any} actual\n * @param {any} expected\n * @param {string | Error} [message]\n * @param {string} [operator]\n * @param {Function} [stackStartFn]\n * @returns {never}\n */\nfunction fail(actual\x2C expected\x2C message\x2C operator\x2C stackStartFn) {\n  const argsLen = arguments.length;\n\n  let internalMessage = false;\n  if (actual == null && argsLen <= 1) {\n    internalMessage = true;\n    message = 'Failed';\n  } else if (argsLen === 1) {\n    message = actual;\n    actual = undefined;\n  } else {\n    if (warned === false) {\n      warned = true;\n      process.emitWarning(\n        'assert.fail() with more than one argument is deprecated. ' +\n          'Please use assert.strictEqual() instead or only pass a message.'\x2C\n        'DeprecationWarning'\x2C\n        'DEP0094'\n      );\n    }\n    if (argsLen === 2)\n      operator = '!=';\n  }\n\n  if (message instanceof Error) throw message;\n\n  const errArgs = {\n    actual\x2C\n    expected\x2C\n    operator: operator === undefined ? 'fail' : operator\x2C\n    stackStartFn: stackStartFn || fail\x2C\n    message\n  };\n  const err = new AssertionError(errArgs);\n  if (internalMessage) {\n    err.generatedMessage = true;\n  }\n  throw err;\n}\n\nassert.fail = fail;\n\n// The AssertionError is defined in internal/error.\nassert.AssertionError = AssertionError;\n\nfunction findColumn(fd\x2C column\x2C code) {\n  if (code.length > column + 100) {\n    try {\n      return parseCode(code\x2C column);\n    } catch {\n      // End recursion in case no code could be parsed. The expression should\n      // have been found after 2500 characters\x2C so stop trying.\n      if (code.length - column > 2500) {\n        // eslint-disable-next-line no-throw-literal\n        throw null;\n      }\n    }\n  }\n  // Read up to 2500 bytes more than necessary in columns. That way we address\n  // multi byte characters and read enough data to parse the code.\n  const bytesToRead = column - code.length + 2500;\n  const buffer = Buffer.allocUnsafe(bytesToRead);\n  const bytesRead = readSync(fd\x2C buffer\x2C 0\x2C bytesToRead);\n  code += decoder.write(buffer.slice(0\x2C bytesRead));\n  // EOF: fast path.\n  if (bytesRead < bytesToRead) {\n    return parseCode(code\x2C column);\n  }\n  // Read potentially missing code.\n  return findColumn(fd\x2C column\x2C code);\n}\n\nfunction getCode(fd\x2C line\x2C column) {\n  let bytesRead = 0;\n  if (line === 0) {\n    // Special handle line number one. This is more efficient and simplifies the\n    // rest of the algorithm. Read more than the regular column number in bytes\n    // to prevent multiple reads in case multi byte characters are used.\n    return findColumn(fd\x2C column\x2C '');\n  }\n  let lines = 0;\n  // Prevent blocking the event loop by limiting the maximum amount of\n  // data that may be read.\n  let maxReads = 32; // bytesPerRead * maxReads = 512 kb\n  const bytesPerRead = 16384;\n  // Use a single buffer up front that is reused until the call site is found.\n  let buffer = Buffer.allocUnsafe(bytesPerRead);\n  while (maxReads-- !== 0) {\n    // Only allocate a new buffer in case the needed line is found. All data\n    // before that can be discarded.\n    buffer = lines < line ? buffer : Buffer.allocUnsafe(bytesPerRead);\n    bytesRead = readSync(fd\x2C buffer\x2C 0\x2C bytesPerRead);\n    // Read the buffer until the required code line is found.\n    for (let i = 0; i < bytesRead; i++) {\n      if (buffer[i] === 10 && ++lines === line) {\n        // If the end of file is reached\x2C directly parse the code and return.\n        if (bytesRead < bytesPerRead) {\n          return parseCode(buffer.toString('utf8'\x2C i + 1\x2C bytesRead)\x2C column);\n        }\n        // Check if the read code is sufficient or read more until the whole\n        // expression is read. Make sure multi byte characters are preserved\n        // properly by using the decoder.\n        const code = decoder.write(buffer.slice(i + 1\x2C bytesRead));\n        return findColumn(fd\x2C column\x2C code);\n      }\n    }\n  }\n}\n\nfunction parseCode(code\x2C offset) {\n  // Lazy load acorn.\n  if (parseExpressionAt === undefined) {\n    const Parser = require('internal/deps/acorn/acorn/dist/acorn').Parser;\n    ({ findNodeAround } = require('internal/deps/acorn/acorn-walk/dist/walk'));\n\n    parseExpressionAt = FunctionPrototypeBind(Parser.parseExpressionAt\x2C Parser);\n  }\n  let node;\n  let start = 0;\n  // Parse the read code until the correct expression is found.\n  do {\n    try {\n      node = parseExpressionAt(code\x2C start\x2C { ecmaVersion: 'latest' });\n      start = node.end + 1 || start;\n      // Find the CallExpression in the tree.\n      node = findNodeAround(node\x2C offset\x2C 'CallExpression');\n    } catch (err) {\n      // Unexpected token error and the like.\n      start += err.raisedAt || 1;\n      if (start > offset) {\n        // No matching expression found. This could happen if the assert\n        // expression is bigger than the provided buffer.\n        // eslint-disable-next-line no-throw-literal\n        throw null;\n      }\n    }\n  } while (node === undefined || node.node.end < offset);\n\n  return [\n    node.node.start\x2C\n    StringPrototypeReplace(StringPrototypeSlice(code\x2C\n                                                node.node.start\x2C node.node.end)\x2C\n                           escapeSequencesRegExp\x2C escapeFn)\x2C\n  ];\n}\n\nfunction getErrMessage(message\x2C fn) {\n  const tmpLimit = Error.stackTraceLimit;\n  const errorStackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n  // Make sure the limit is set to 1. Otherwise it could fail (<= 0) or it\n  // does to much work.\n  if (errorStackTraceLimitIsWritable) Error.stackTraceLimit = 1;\n  // We only need the stack trace. To minimize the overhead use an object\n  // instead of an error.\n  const err = {};\n  ErrorCaptureStackTrace(err\x2C fn);\n  if (errorStackTraceLimitIsWritable) Error.stackTraceLimit = tmpLimit;\n\n  overrideStackTrace.set(err\x2C (_\x2C stack) => stack);\n  const call = err.stack[0];\n\n  const filename = call.getFileName();\n  const line = call.getLineNumber() - 1;\n  let column = call.getColumnNumber() - 1;\n  let identifier;\n  let code;\n\n  if (filename) {\n    identifier = `${filename}${line}${column}`;\n\n    // Skip Node.js modules!\n    if (StringPrototypeStartsWith(filename\x2C 'node:') &&\n        NativeModule.exists(StringPrototypeSlice(filename\x2C 5))) {\n      errorCache.set(identifier\x2C undefined);\n      return;\n    }\n  } else {\n    const fn = call.getFunction();\n    if (!fn) {\n      return message;\n    }\n    code = String(fn);\n    identifier = `${code}${line}${column}`;\n  }\n\n  if (errorCache.has(identifier)) {\n    return errorCache.get(identifier);\n  }\n\n  let fd;\n  try {\n    // Set the stack trace limit to zero. This makes sure unexpected token\n    // errors are handled faster.\n    if (errorStackTraceLimitIsWritable) Error.stackTraceLimit = 0;\n\n    if (filename) {\n      if (decoder === undefined) {\n        const { StringDecoder } = require('string_decoder');\n        decoder = new StringDecoder('utf8');\n      }\n      fd = openSync(filename\x2C 'r'\x2C 0o666);\n      // Reset column and message.\n      ({ 0: column\x2C 1: message } = getCode(fd\x2C line\x2C column));\n      // Flush unfinished multi byte characters.\n      decoder.end();\n    } else {\n      for (let i = 0; i < line; i++) {\n        code = StringPrototypeSlice(code\x2C\n                                    StringPrototypeIndexOf(code\x2C '\\n') + 1);\n      }\n      ({ 0: column\x2C 1: message } = parseCode(code\x2C column));\n    }\n    // Always normalize indentation\x2C otherwise the message could look weird.\n    if (StringPrototypeIncludes(message\x2C '\\n')) {\n      if (EOL === '\\r\\n') {\n        message = StringPrototypeReplace(message\x2C /\\r\\n/g\x2C '\\n');\n      }\n      const frames = StringPrototypeSplit(message\x2C '\\n');\n      message = ArrayPrototypeShift(frames);\n      for (const frame of frames) {\n        let pos = 0;\n        while (pos < column && (frame[pos] === ' ' || frame[pos] === '\\t')) {\n          pos++;\n        }\n        message += `\\n  ${StringPrototypeSlice(frame\x2C pos)}`;\n      }\n    }\n    message = `The expression evaluated to a falsy value:\\n\\n  ${message}\\n`;\n    // Make sure to always set the cache! No matter if the message is\n    // undefined or not\n    errorCache.set(identifier\x2C message);\n\n    return message;\n  } catch {\n    // Invalidate cache to prevent trying to read this part again.\n    errorCache.set(identifier\x2C undefined);\n  } finally {\n    // Reset limit.\n    if (errorStackTraceLimitIsWritable) Error.stackTraceLimit = tmpLimit;\n    if (fd !== undefined)\n      closeSync(fd);\n  }\n}\n\nfunction innerOk(fn\x2C argLen\x2C value\x2C message) {\n  if (!value) {\n    let generatedMessage = false;\n\n    if (argLen === 0) {\n      generatedMessage = true;\n      message = 'No value argument passed to `assert.ok()`';\n    } else if (message == null) {\n      generatedMessage = true;\n      message = getErrMessage(message\x2C fn);\n    } else if (message instanceof Error) {\n      throw message;\n    }\n\n    const err = new AssertionError({\n      actual: value\x2C\n      expected: true\x2C\n      message\x2C\n      operator: '=='\x2C\n      stackStartFn: fn\n    });\n    err.generatedMessage = generatedMessage;\n    throw err;\n  }\n}\n\n/**\n * Pure assertion tests whether a value is truthy\x2C as determined\n * by !!value.\n * @param {...any} args\n * @returns {void}\n */\nfunction ok(...args) {\n  innerOk(ok\x2C args.length\x2C ...args);\n}\nassert.ok = ok;\n\n/**\n * The equality assertion tests shallow\x2C coercive equality with ==.\n * @param {any} actual\n * @param {any} expected\n * @param {string | Error} [message]\n * @returns {void}\n */\n/* eslint-disable no-restricted-properties */\nassert.equal = function equal(actual\x2C expected\x2C message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual'\x2C 'expected');\n  }\n  // eslint-disable-next-line eqeqeq\n  if (actual != expected && (!NumberIsNaN(actual) || !NumberIsNaN(expected))) {\n    innerFail({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: '=='\x2C\n      stackStartFn: equal\n    });\n  }\n};\n\n/**\n * The non-equality assertion tests for whether two objects are not\n * equal with !=.\n * @param {any} actual\n * @param {any} expected\n * @param {string | Error} [message]\n * @returns {void}\n */\nassert.notEqual = function notEqual(actual\x2C expected\x2C message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual'\x2C 'expected');\n  }\n  // eslint-disable-next-line eqeqeq\n  if (actual == expected || (NumberIsNaN(actual) && NumberIsNaN(expected))) {\n    innerFail({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: '!='\x2C\n      stackStartFn: notEqual\n    });\n  }\n};\n\n/**\n * The deep equivalence assertion tests a deep equality relation.\n * @param {any} actual\n * @param {any} expected\n * @param {string | Error} [message]\n * @returns {void}\n */\nassert.deepEqual = function deepEqual(actual\x2C expected\x2C message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual'\x2C 'expected');\n  }\n  if (isDeepEqual === undefined) lazyLoadComparison();\n  if (!isDeepEqual(actual\x2C expected)) {\n    innerFail({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: 'deepEqual'\x2C\n      stackStartFn: deepEqual\n    });\n  }\n};\n\n/**\n * The deep non-equivalence assertion tests for any deep inequality.\n * @param {any} actual\n * @param {any} expected\n * @param {string | Error} [message]\n * @returns {void}\n */\nassert.notDeepEqual = function notDeepEqual(actual\x2C expected\x2C message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual'\x2C 'expected');\n  }\n  if (isDeepEqual === undefined) lazyLoadComparison();\n  if (isDeepEqual(actual\x2C expected)) {\n    innerFail({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: 'notDeepEqual'\x2C\n      stackStartFn: notDeepEqual\n    });\n  }\n};\n/* eslint-enable */\n\n/**\n * The deep strict equivalence assertion tests a deep strict equality\n * relation.\n * @param {any} actual\n * @param {any} expected\n * @param {string | Error} [message]\n * @returns {void}\n */\nassert.deepStrictEqual = function deepStrictEqual(actual\x2C expected\x2C message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual'\x2C 'expected');\n  }\n  if (isDeepEqual === undefined) lazyLoadComparison();\n  if (!isDeepStrictEqual(actual\x2C expected)) {\n    innerFail({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: 'deepStrictEqual'\x2C\n      stackStartFn: deepStrictEqual\n    });\n  }\n};\n\n/**\n * The deep strict non-equivalence assertion tests for any deep strict\n * inequality.\n * @param {any} actual\n * @param {any} expected\n * @param {string | Error} [message]\n * @returns {void}\n */\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual\x2C expected\x2C message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual'\x2C 'expected');\n  }\n  if (isDeepEqual === undefined) lazyLoadComparison();\n  if (isDeepStrictEqual(actual\x2C expected)) {\n    innerFail({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: 'notDeepStrictEqual'\x2C\n      stackStartFn: notDeepStrictEqual\n    });\n  }\n}\n\n/**\n * The strict equivalence assertion tests a strict equality relation.\n * @param {any} actual\n * @param {any} expected\n * @param {string | Error} [message]\n * @returns {void}\n */\nassert.strictEqual = function strictEqual(actual\x2C expected\x2C message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual'\x2C 'expected');\n  }\n  if (!ObjectIs(actual\x2C expected)) {\n    innerFail({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: 'strictEqual'\x2C\n      stackStartFn: strictEqual\n    });\n  }\n};\n\n/**\n * The strict non-equivalence assertion tests for any strict inequality.\n * @param {any} actual\n * @param {any} expected\n * @param {string | Error} [message]\n * @returns {void}\n */\nassert.notStrictEqual = function notStrictEqual(actual\x2C expected\x2C message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual'\x2C 'expected');\n  }\n  if (ObjectIs(actual\x2C expected)) {\n    innerFail({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: 'notStrictEqual'\x2C\n      stackStartFn: notStrictEqual\n    });\n  }\n};\n\nclass Comparison {\n  constructor(obj\x2C keys\x2C actual) {\n    for (const key of keys) {\n      if (key in obj) {\n        if (actual !== undefined &&\n            typeof actual[key] === 'string' &&\n            isRegExp(obj[key]) &&\n            RegExpPrototypeTest(obj[key]\x2C actual[key])) {\n          this[key] = actual[key];\n        } else {\n          this[key] = obj[key];\n        }\n      }\n    }\n  }\n}\n\nfunction compareExceptionKey(actual\x2C expected\x2C key\x2C message\x2C keys\x2C fn) {\n  if (!(key in actual) || !isDeepStrictEqual(actual[key]\x2C expected[key])) {\n    if (!message) {\n      // Create placeholder objects to create a nice output.\n      const a = new Comparison(actual\x2C keys);\n      const b = new Comparison(expected\x2C keys\x2C actual);\n\n      const err = new AssertionError({\n        actual: a\x2C\n        expected: b\x2C\n        operator: 'deepStrictEqual'\x2C\n        stackStartFn: fn\n      });\n      err.actual = actual;\n      err.expected = expected;\n      err.operator = fn.name;\n      throw err;\n    }\n    innerFail({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: fn.name\x2C\n      stackStartFn: fn\n    });\n  }\n}\n\nfunction expectedException(actual\x2C expected\x2C message\x2C fn) {\n  let generatedMessage = false;\n  let throwError = false;\n\n  if (typeof expected !== 'function') {\n    // Handle regular expressions.\n    if (isRegExp(expected)) {\n      const str = String(actual);\n      if (RegExpPrototypeTest(expected\x2C str))\n        return;\n\n      if (!message) {\n        generatedMessage = true;\n        message = 'The input did not match the regular expression ' +\n                  `${inspect(expected)}. Input:\\n\\n${inspect(str)}\\n`;\n      }\n      throwError = true;\n      // Handle primitives properly.\n    } else if (typeof actual !== 'object' || actual === null) {\n      const err = new AssertionError({\n        actual\x2C\n        expected\x2C\n        message\x2C\n        operator: 'deepStrictEqual'\x2C\n        stackStartFn: fn\n      });\n      err.operator = fn.name;\n      throw err;\n    } else {\n      // Handle validation objects.\n      const keys = ObjectKeys(expected);\n      // Special handle errors to make sure the name and the message are\n      // compared as well.\n      if (expected instanceof Error) {\n        ArrayPrototypePush(keys\x2C 'name'\x2C 'message');\n      } else if (keys.length === 0) {\n        throw new ERR_INVALID_ARG_VALUE('error'\x2C\n                                        expected\x2C 'may not be an empty object');\n      }\n      if (isDeepEqual === undefined) lazyLoadComparison();\n      for (const key of keys) {\n        if (typeof actual[key] === 'string' &&\n            isRegExp(expected[key]) &&\n            RegExpPrototypeTest(expected[key]\x2C actual[key])) {\n          continue;\n        }\n        compareExceptionKey(actual\x2C expected\x2C key\x2C message\x2C keys\x2C fn);\n      }\n      return;\n    }\n  // Guard instanceof against arrow functions as they don't have a prototype.\n  // Check for matching Error classes.\n  } else if (expected.prototype !== undefined && actual instanceof expected) {\n    return;\n  } else if (ObjectPrototypeIsPrototypeOf(Error\x2C expected)) {\n    if (!message) {\n      generatedMessage = true;\n      message = 'The error is expected to be an instance of ' +\n        `"${expected.name}". Received `;\n      if (isError(actual)) {\n        const name = (actual.constructor && actual.constructor.name) ||\n                     actual.name;\n        if (expected.name === name) {\n          message += 'an error with identical name but a different prototype.';\n        } else {\n          message += `"${name}"`;\n        }\n        if (actual.message) {\n          message += `\\n\\nError message:\\n\\n${actual.message}`;\n        }\n      } else {\n        message += `"${inspect(actual\x2C { depth: -1 })}"`;\n      }\n    }\n    throwError = true;\n  } else {\n    // Check validation functions return value.\n    const res = ReflectApply(expected\x2C {}\x2C [actual]);\n    if (res !== true) {\n      if (!message) {\n        generatedMessage = true;\n        const name = expected.name ? `"${expected.name}" ` : '';\n        message = `The ${name}validation function is expected to return` +\n          ` "true". Received ${inspect(res)}`;\n\n        if (isError(actual)) {\n          message += `\\n\\nCaught error:\\n\\n${actual}`;\n        }\n      }\n      throwError = true;\n    }\n  }\n\n  if (throwError) {\n    const err = new AssertionError({\n      actual\x2C\n      expected\x2C\n      message\x2C\n      operator: fn.name\x2C\n      stackStartFn: fn\n    });\n    err.generatedMessage = generatedMessage;\n    throw err;\n  }\n}\n\nfunction getActual(fn) {\n  validateFunction(fn\x2C 'fn');\n  try {\n    fn();\n  } catch (e) {\n    return e;\n  }\n  return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n  // Accept native ES6 promises and promises that are implemented in a similar\n  // way. Do not accept thenables that use a function as `obj` and that have no\n  // `catch` handler.\n  return isPromise(obj) ||\n    (obj !== null && typeof obj === 'object' &&\n    typeof obj.then === 'function' &&\n    typeof obj.catch === 'function');\n}\n\nasync function waitForActual(promiseFn) {\n  let resultPromise;\n  if (typeof promiseFn === 'function') {\n    // Return a rejected promise if `promiseFn` throws synchronously.\n    resultPromise = promiseFn();\n    // Fail in case no promise is returned.\n    if (!checkIsPromise(resultPromise)) {\n      throw new ERR_INVALID_RETURN_VALUE('instance of Promise'\x2C\n                                         'promiseFn'\x2C resultPromise);\n    }\n  } else if (checkIsPromise(promiseFn)) {\n    resultPromise = promiseFn;\n  } else {\n    throw new ERR_INVALID_ARG_TYPE(\n      'promiseFn'\x2C ['Function'\x2C 'Promise']\x2C promiseFn);\n  }\n\n  try {\n    await resultPromise;\n  } catch (e) {\n    return e;\n  }\n  return NO_EXCEPTION_SENTINEL;\n}\n\nfunction expectsError(stackStartFn\x2C actual\x2C error\x2C message) {\n  if (typeof error === 'string') {\n    if (arguments.length === 4) {\n      throw new ERR_INVALID_ARG_TYPE('error'\x2C\n                                     ['Object'\x2C 'Error'\x2C 'Function'\x2C 'RegExp']\x2C\n                                     error);\n    }\n    if (typeof actual === 'object' && actual !== null) {\n      if (actual.message === error) {\n        throw new ERR_AMBIGUOUS_ARGUMENT(\n          'error/message'\x2C\n          `The error message "${actual.message}" is identical to the message.`\n        );\n      }\n    } else if (actual === error) {\n      throw new ERR_AMBIGUOUS_ARGUMENT(\n        'error/message'\x2C\n        `The error "${actual}" is identical to the message.`\n      );\n    }\n    message = error;\n    error = undefined;\n  } else if (error != null &&\n             typeof error !== 'object' &&\n             typeof error !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE('error'\x2C\n                                   ['Object'\x2C 'Error'\x2C 'Function'\x2C 'RegExp']\x2C\n                                   error);\n  }\n\n  if (actual === NO_EXCEPTION_SENTINEL) {\n    let details = '';\n    if (error && error.name) {\n      details += ` (${error.name})`;\n    }\n    details += message ? `: ${message}` : '.';\n    const fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n    innerFail({\n      actual: undefined\x2C\n      expected: error\x2C\n      operator: stackStartFn.name\x2C\n      message: `Missing expected ${fnType}${details}`\x2C\n      stackStartFn\n    });\n  }\n\n  if (!error)\n    return;\n\n  expectedException(actual\x2C error\x2C message\x2C stackStartFn);\n}\n\nfunction hasMatchingError(actual\x2C expected) {\n  if (typeof expected !== 'function') {\n    if (isRegExp(expected)) {\n      const str = String(actual);\n      return RegExpPrototypeTest(expected\x2C str);\n    }\n    throw new ERR_INVALID_ARG_TYPE(\n      'expected'\x2C ['Function'\x2C 'RegExp']\x2C expected\n    );\n  }\n  // Guard instanceof against arrow functions as they don't have a prototype.\n  if (expected.prototype !== undefined && actual instanceof expected) {\n    return true;\n  }\n  if (ObjectPrototypeIsPrototypeOf(Error\x2C expected)) {\n    return false;\n  }\n  return ReflectApply(expected\x2C {}\x2C [actual]) === true;\n}\n\nfunction expectsNoError(stackStartFn\x2C actual\x2C error\x2C message) {\n  if (actual === NO_EXCEPTION_SENTINEL)\n    return;\n\n  if (typeof error === 'string') {\n    message = error;\n    error = undefined;\n  }\n\n  if (!error || hasMatchingError(actual\x2C error)) {\n    const details = message ? `: ${message}` : '.';\n    const fnType = stackStartFn.name === 'doesNotReject' ?\n      'rejection' : 'exception';\n    innerFail({\n      actual\x2C\n      expected: error\x2C\n      operator: stackStartFn.name\x2C\n      message: `Got unwanted ${fnType}${details}\\n` +\n               `Actual message: "${actual && actual.message}"`\x2C\n      stackStartFn\n    });\n  }\n  throw actual;\n}\n\n/**\n * Expects the function `promiseFn` to throw an error.\n * @param {() => any} promiseFn\n * @param {...any} [args]\n * @returns {void}\n */\nassert.throws = function throws(promiseFn\x2C ...args) {\n  expectsError(throws\x2C getActual(promiseFn)\x2C ...args);\n};\n\n/**\n * Expects `promiseFn` function or its value to reject.\n * @param {() => Promise<any>} promiseFn\n * @param {...any} [args]\n * @returns {Promise<void>}\n */\nassert.rejects = async function rejects(promiseFn\x2C ...args) {\n  expectsError(rejects\x2C await waitForActual(promiseFn)\x2C ...args);\n};\n\n/**\n * Asserts that the function `fn` does not throw an error.\n * @param {() => any} fn\n * @param {...any} [args]\n * @returns {void}\n */\nassert.doesNotThrow = function doesNotThrow(fn\x2C ...args) {\n  expectsNoError(doesNotThrow\x2C getActual(fn)\x2C ...args);\n};\n\n/**\n * Expects `fn` or its value to not reject.\n * @param {() => Promise<any>} fn\n * @param {...any} [args]\n * @returns {Promise<void>}\n */\nassert.doesNotReject = async function doesNotReject(fn\x2C ...args) {\n  expectsNoError(doesNotReject\x2C await waitForActual(fn)\x2C ...args);\n};\n\n/**\n * Throws `value` if the value is not `null` or `undefined`.\n * @param {any} err\n * @returns {void}\n */\nassert.ifError = function ifError(err) {\n  if (err !== null && err !== undefined) {\n    let message = 'ifError got unwanted exception: ';\n    if (typeof err === 'object' && typeof err.message === 'string') {\n      if (err.message.length === 0 && err.constructor) {\n        message += err.constructor.name;\n      } else {\n        message += err.message;\n      }\n    } else {\n      message += inspect(err);\n    }\n\n    const newErr = new AssertionError({\n      actual: err\x2C\n      expected: null\x2C\n      operator: 'ifError'\x2C\n      message\x2C\n      stackStartFn: ifError\n    });\n\n    // Make sure we actually have a stack trace!\n    const origStack = err.stack;\n\n    if (typeof origStack === 'string') {\n      // This will remove any duplicated frames from the error frames taken\n      // from within `ifError` and add the original error frames to the newly\n      // created ones.\n      const tmp2 = StringPrototypeSplit(origStack\x2C '\\n');\n      ArrayPrototypeShift(tmp2);\n      // Filter all frames existing in err.stack.\n      let tmp1 = StringPrototypeSplit(newErr.stack\x2C '\\n');\n      for (const errFrame of tmp2) {\n        // Find the first occurrence of the frame.\n        const pos = ArrayPrototypeIndexOf(tmp1\x2C errFrame);\n        if (pos !== -1) {\n          // Only keep new frames.\n          tmp1 = ArrayPrototypeSlice(tmp1\x2C 0\x2C pos);\n          break;\n        }\n      }\n      newErr.stack =\n        `${ArrayPrototypeJoin(tmp1\x2C '\\n')}\\n${ArrayPrototypeJoin(tmp2\x2C '\\n')}`;\n    }\n\n    throw newErr;\n  }\n};\n\nfunction internalMatch(string\x2C regexp\x2C message\x2C fn) {\n  if (!isRegExp(regexp)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'regexp'\x2C 'RegExp'\x2C regexp\n    );\n  }\n  const match = fn.name === 'match';\n  if (typeof string !== 'string' ||\n      RegExpPrototypeTest(regexp\x2C string) !== match) {\n    if (message instanceof Error) {\n      throw message;\n    }\n\n    const generatedMessage = !message;\n\n    // 'The input was expected to not match the regular expression ' +\n    message = message || (typeof string !== 'string' ?\n      'The "string" argument must be of type string. Received type ' +\n        `${typeof string} (${inspect(string)})` :\n      (match ?\n        'The input did not match the regular expression ' :\n        'The input was expected to not match the regular expression ') +\n          `${inspect(regexp)}. Input:\\n\\n${inspect(string)}\\n`);\n    const err = new AssertionError({\n      actual: string\x2C\n      expected: regexp\x2C\n      message\x2C\n      operator: fn.name\x2C\n      stackStartFn: fn\n    });\n    err.generatedMessage = generatedMessage;\n    throw err;\n  }\n}\n\n/**\n * Expects the `string` input to match the regular expression.\n * @param {string} string\n * @param {RegExp} regexp\n * @param {string | Error} [message]\n * @returns {void}\n */\nassert.match = function match(string\x2C regexp\x2C message) {\n  internalMatch(string\x2C regexp\x2C message\x2C match);\n};\n\n/**\n * Expects the `string` input not to match the regular expression.\n * @param {string} string\n * @param {RegExp} regexp\n * @param {string | Error} [message]\n * @returns {void}\n */\nassert.doesNotMatch = function doesNotMatch(string\x2C regexp\x2C message) {\n  internalMatch(string\x2C regexp\x2C message\x2C doesNotMatch);\n};\n\nassert.CallTracker = CallTracker;\n\n/**\n * Expose a strict only variant of assert.\n * @param {...any} args\n * @returns {void}\n */\nfunction strict(...args) {\n  innerOk(strict\x2C args.length\x2C ...args);\n}\n\nassert.strict = ObjectAssign(strict\x2C assert\x2C {\n  equal: assert.strictEqual\x2C\n  deepEqual: assert.deepStrictEqual\x2C\n  notEqual: assert.notStrictEqual\x2C\n  notDeepEqual: assert.notDeepStrictEqual\n});\n\nassert.strict.strict = assert.strict;\n
code-source-info,0x923ecc1f26e,158,0,31412,C0O0C4O31412,,
code-creation,Function,10,237036,0x923ecc2048e,959, node:assert:1:1,0x923ecc1f1d8,~
tick,0x7efc336c02cf,237045,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-source-info,0x923ecc2048e,158,0,31412,C0O0C292O1183C298O1208C304O1230C310O1252C316O1275C322O1298C328O1307C334O1333C340O1358C346O1373C351O1389C357O1401C363O1415C369O1447C375O1463C381O1486C386O1497C392O1507C398O1536C404O1563C410O1589C416O1615C422O1639C428O1663C434O1727C440O1727C445O1716C451O1963C457O1963C462O1963C467O1769C473O1797C479O1823C485O1850C491O1880C497O1905C503O1939C509O2014C515O2014C519O2014C521O2100C527O2100C532O2066C538O2076C544O2087C550O2135C556O2135C561O2123C567O2201C573O2201C578O2177C584O2188C590O2249C596O2249C601O2241C607O2305C613O2305C618O2288C624O2364C630O2364C635O2352C641O2410C643O2410C648O2410C650O2445C656O2445C661O2517C667O2517C672O2495C678O2554C679O2554C681O2571C682O2571C684O2594C685O2594C687O2617C688O2617C690O2637C691O2637C693O3006C697O3006C699O3052C703O3052C705O3412C709O3412C711O3476C712O3476C714O3673C717O3688C724O3725C725O3725C727O5292C729O5304C733O5365C735O5387C739O13316C741O13326C745O13559C749O13572C753O14146C757O14162C761O14720C765O14737C769O15287C773O15307C777O15899C781O15922C785O16513C787O16539C791O17141C795O17160C799O17662C803O17684C828O18009C830O26754C834O26768C838O27026C842O27041C846O27295C850O27315C854O27554C858O27575C862O27800C866O27815C870O30555C874O30568C878O30848C882O30868C886O30979C888O30998C892O31179C895O31216C900O31242C908O31275C916O31311C924O31350C935O31195C940O31193C944O31381C949O31404C953O31395C958O31411,,
tick,0x1159dd8,237434,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc20691,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,237591,0x923ecc23b1e,5, node:internal/assert/assertion_error:1:1,0x923ecc237f8,~
script-source,159,node:internal/assert/assertion_error,'use strict';\n\nconst {\n  ArrayPrototypeJoin\x2C\n  ArrayPrototypePop\x2C\n  Error\x2C\n  ErrorCaptureStackTrace\x2C\n  MathMax\x2C\n  ObjectCreate\x2C\n  ObjectDefineProperty\x2C\n  ObjectGetPrototypeOf\x2C\n  ObjectKeys\x2C\n  String\x2C\n  StringPrototypeEndsWith\x2C\n  StringPrototypeRepeat\x2C\n  StringPrototypeSlice\x2C\n  StringPrototypeSplit\x2C\n} = primordials;\n\nconst { inspect } = require('internal/util/inspect');\nconst {\n  removeColors\x2C\n} = require('internal/util');\nconst {\n  validateObject\x2C\n} = require('internal/validators');\nconst { isErrorStackTraceLimitWritable } = require('internal/errors');\n\nlet blue = '';\nlet green = '';\nlet red = '';\nlet white = '';\n\nconst kReadableOperator = {\n  deepStrictEqual: 'Expected values to be strictly deep-equal:'\x2C\n  strictEqual: 'Expected values to be strictly equal:'\x2C\n  strictEqualObject: 'Expected "actual" to be reference-equal to "expected":'\x2C\n  deepEqual: 'Expected values to be loosely deep-equal:'\x2C\n  notDeepStrictEqual: 'Expected "actual" not to be strictly deep-equal to:'\x2C\n  notStrictEqual: 'Expected "actual" to be strictly unequal to:'\x2C\n  notStrictEqualObject:\n    'Expected "actual" not to be reference-equal to "expected":'\x2C\n  notDeepEqual: 'Expected "actual" not to be loosely deep-equal to:'\x2C\n  notIdentical: 'Values have same structure but are not reference-equal:'\x2C\n  notDeepEqualUnequal: 'Expected values not to be loosely deep-equal:'\n};\n\n// Comparing short primitives should just show === / !== instead of using the\n// diff.\nconst kMaxShortLength = 12;\n\nfunction copyError(source) {\n  const keys = ObjectKeys(source);\n  const target = ObjectCreate(ObjectGetPrototypeOf(source));\n  for (const key of keys) {\n    target[key] = source[key];\n  }\n  ObjectDefineProperty(target\x2C 'message'\x2C { value: source.message });\n  return target;\n}\n\nfunction inspectValue(val) {\n  // The util.inspect default values could be changed. This makes sure the\n  // error messages contain the necessary information nevertheless.\n  return inspect(\n    val\x2C\n    {\n      compact: false\x2C\n      customInspect: false\x2C\n      depth: 1000\x2C\n      maxArrayLength: Infinity\x2C\n      // Assert compares only enumerable properties (with a few exceptions).\n      showHidden: false\x2C\n      // Assert does not detect proxies currently.\n      showProxy: false\x2C\n      sorted: true\x2C\n      // Inspect getters as we also check them when comparing entries.\n      getters: true\x2C\n    }\n  );\n}\n\nfunction createErrDiff(actual\x2C expected\x2C operator) {\n  let other = '';\n  let res = '';\n  let end = '';\n  let skipped = false;\n  const actualInspected = inspectValue(actual);\n  const actualLines = StringPrototypeSplit(actualInspected\x2C '\\n');\n  const expectedLines = StringPrototypeSplit(inspectValue(expected)\x2C '\\n');\n\n  let i = 0;\n  let indicator = '';\n\n  // In case both values are objects or functions explicitly mark them as not\n  // reference equal for the `strictEqual` operator.\n  if (operator === 'strictEqual' &&\n      ((typeof actual === 'object' && actual !== null &&\n        typeof expected === 'object' && expected !== null) ||\n       (typeof actual === 'function' && typeof expected === 'function'))) {\n    operator = 'strictEqualObject';\n  }\n\n  // If "actual" and "expected" fit on a single line and they are not strictly\n  // equal\x2C check further special handling.\n  if (actualLines.length === 1 && expectedLines.length === 1 &&\n    actualLines[0] !== expectedLines[0]) {\n    // Check for the visible length using the `removeColors()` function\x2C if\n    // appropriate.\n    const c = inspect.defaultOptions.colors;\n    const actualRaw = c ? removeColors(actualLines[0]) : actualLines[0];\n    const expectedRaw = c ? removeColors(expectedLines[0]) : expectedLines[0];\n    const inputLength = actualRaw.length + expectedRaw.length;\n    // If the character length of "actual" and "expected" together is less than\n    // kMaxShortLength and if neither is an object and at least one of them is\n    // not `zero`\x2C use the strict equal comparison to visualize the output.\n    if (inputLength <= kMaxShortLength) {\n      if ((typeof actual !== 'object' || actual === null) &&\n          (typeof expected !== 'object' || expected === null) &&\n          (actual !== 0 || expected !== 0)) { // -0 === +0\n        return `${kReadableOperator[operator]}\\n\\n` +\n            `${actualLines[0]} !== ${expectedLines[0]}\\n`;\n      }\n    } else if (operator !== 'strictEqualObject') {\n      // If the stderr is a tty and the input length is lower than the current\n      // columns per line\x2C add a mismatch indicator below the output. If it is\n      // not a tty\x2C use a default value of 80 characters.\n      const maxLength = process.stderr.isTTY ? process.stderr.columns : 80;\n      if (inputLength < maxLength) {\n        while (actualRaw[i] === expectedRaw[i]) {\n          i++;\n        }\n        // Ignore the first characters.\n        if (i > 2) {\n          // Add position indicator for the first mismatch in case it is a\n          // single line and the input length is less than the column length.\n          indicator = `\\n  ${StringPrototypeRepeat(' '\x2C i)}^`;\n          i = 0;\n        }\n      }\n    }\n  }\n\n  // Remove all ending lines that match (this optimizes the output for\n  // readability by reducing the number of total changed lines).\n  let a = actualLines[actualLines.length - 1];\n  let b = expectedLines[expectedLines.length - 1];\n  while (a === b) {\n    if (i++ < 3) {\n      end = `\\n  ${a}${end}`;\n    } else {\n      other = a;\n    }\n    ArrayPrototypePop(actualLines);\n    ArrayPrototypePop(expectedLines);\n    if (actualLines.length === 0 || expectedLines.length === 0)\n      break;\n    a = actualLines[actualLines.length - 1];\n    b = expectedLines[expectedLines.length - 1];\n  }\n\n  const maxLines = MathMax(actualLines.length\x2C expectedLines.length);\n  // Strict equal with identical objects that are not identical by reference.\n  // E.g.\x2C assert.deepStrictEqual({ a: Symbol() }\x2C { a: Symbol() })\n  if (maxLines === 0) {\n    // We have to get the result again. The lines were all removed before.\n    const actualLines = StringPrototypeSplit(actualInspected\x2C '\\n');\n\n    // Only remove lines in case it makes sense to collapse those.\n    // TODO: Accept env to always show the full error.\n    if (actualLines.length > 50) {\n      actualLines[46] = `${blue}...${white}`;\n      while (actualLines.length > 47) {\n        ArrayPrototypePop(actualLines);\n      }\n    }\n\n    return `${kReadableOperator.notIdentical}\\n\\n` +\n           `${ArrayPrototypeJoin(actualLines\x2C '\\n')}\\n`;\n  }\n\n  // There were at least five identical lines at the end. Mark a couple of\n  // skipped.\n  if (i >= 5) {\n    end = `\\n${blue}...${white}${end}`;\n    skipped = true;\n  }\n  if (other !== '') {\n    end = `\\n  ${other}${end}`;\n    other = '';\n  }\n\n  let printedLines = 0;\n  let identical = 0;\n  const msg = kReadableOperator[operator] +\n        `\\n${green}+ actual${white} ${red}- expected${white}`;\n  const skippedMsg = ` ${blue}...${white} Lines skipped`;\n\n  let lines = actualLines;\n  let plusMinus = `${green}+${white}`;\n  let maxLength = expectedLines.length;\n  if (actualLines.length < maxLines) {\n    lines = expectedLines;\n    plusMinus = `${red}-${white}`;\n    maxLength = actualLines.length;\n  }\n\n  for (i = 0; i < maxLines; i++) {\n    if (maxLength < i + 1) {\n      // If more than two former lines are identical\x2C print them. Collapse them\n      // in case more than five lines were identical.\n      if (identical > 2) {\n        if (identical > 3) {\n          if (identical > 4) {\n            if (identical === 5) {\n              res += `\\n  ${lines[i - 3]}`;\n              printedLines++;\n            } else {\n              res += `\\n${blue}...${white}`;\n              skipped = true;\n            }\n          }\n          res += `\\n  ${lines[i - 2]}`;\n          printedLines++;\n        }\n        res += `\\n  ${lines[i - 1]}`;\n        printedLines++;\n      }\n      // No identical lines before.\n      identical = 0;\n      // Add the expected line to the cache.\n      if (lines === actualLines) {\n        res += `\\n${plusMinus} ${lines[i]}`;\n      } else {\n        other += `\\n${plusMinus} ${lines[i]}`;\n      }\n      printedLines++;\n    // Only extra actual lines exist\n    // Lines diverge\n    } else {\n      const expectedLine = expectedLines[i];\n      let actualLine = actualLines[i];\n      // If the lines diverge\x2C specifically check for lines that only diverge by\n      // a trailing comma. In that case it is actually identical and we should\n      // mark it as such.\n      let divergingLines =\n        actualLine !== expectedLine &&\n        (!StringPrototypeEndsWith(actualLine\x2C '\x2C') ||\n         StringPrototypeSlice(actualLine\x2C 0\x2C -1) !== expectedLine);\n      // If the expected line has a trailing comma but is otherwise identical\x2C\n      // add a comma at the end of the actual line. Otherwise the output could\n      // look weird as in:\n      //\n      //   [\n      //     1         // No comma at the end!\n      // +   2\n      //   ]\n      //\n      if (divergingLines &&\n          StringPrototypeEndsWith(expectedLine\x2C '\x2C') &&\n          StringPrototypeSlice(expectedLine\x2C 0\x2C -1) === actualLine) {\n        divergingLines = false;\n        actualLine += '\x2C';\n      }\n      if (divergingLines) {\n        // If more than two former lines are identical\x2C print them. Collapse\n        // them in case more than five lines were identical.\n        if (identical > 2) {\n          if (identical > 3) {\n            if (identical > 4) {\n              if (identical === 5) {\n                res += `\\n  ${actualLines[i - 3]}`;\n                printedLines++;\n              } else {\n                res += `\\n${blue}...${white}`;\n                skipped = true;\n              }\n            }\n            res += `\\n  ${actualLines[i - 2]}`;\n            printedLines++;\n          }\n          res += `\\n  ${actualLines[i - 1]}`;\n          printedLines++;\n        }\n        // No identical lines before.\n        identical = 0;\n        // Add the actual line to the result and cache the expected diverging\n        // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n        res += `\\n${green}+${white} ${actualLine}`;\n        other += `\\n${red}-${white} ${expectedLine}`;\n        printedLines += 2;\n      // Lines are identical\n      } else {\n        // Add all cached information to the result before adding other things\n        // and reset the cache.\n        res += other;\n        other = '';\n        identical++;\n        // The very first identical line since the last diverging line is be\n        // added to the result.\n        if (identical <= 2) {\n          res += `\\n  ${actualLine}`;\n          printedLines++;\n        }\n      }\n    }\n    // Inspected object to big (Show ~50 rows max)\n    if (printedLines > 50 && i < maxLines - 2) {\n      return `${msg}${skippedMsg}\\n${res}\\n${blue}...${white}${other}\\n` +\n             `${blue}...${white}`;\n    }\n  }\n\n  return `${msg}${skipped ? skippedMsg : ''}\\n${res}${other}${end}${indicator}`;\n}\n\nfunction addEllipsis(string) {\n  const lines = StringPrototypeSplit(string\x2C '\\n'\x2C 11);\n  if (lines.length > 10) {\n    lines.length = 10;\n    return `${ArrayPrototypeJoin(lines\x2C '\\n')}\\n...`;\n  } else if (string.length > 512) {\n    return `${StringPrototypeSlice(string\x2C 512)}...`;\n  }\n  return string;\n}\n\nclass AssertionError extends Error {\n  constructor(options) {\n    validateObject(options\x2C 'options');\n    const {\n      message\x2C\n      operator\x2C\n      stackStartFn\x2C\n      details\x2C\n      // Compatibility with older versions.\n      stackStartFunction\n    } = options;\n    let {\n      actual\x2C\n      expected\n    } = options;\n\n    const limit = Error.stackTraceLimit;\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n\n    if (message != null) {\n      super(String(message));\n    } else {\n      if (process.stderr.isTTY) {\n        // Reset on each call to make sure we handle dynamically set environment\n        // variables correct.\n        if (process.stderr.hasColors()) {\n          blue = '\\u001b[34m';\n          green = '\\u001b[32m';\n          white = '\\u001b[39m';\n          red = '\\u001b[31m';\n        } else {\n          blue = '';\n          green = '';\n          white = '';\n          red = '';\n        }\n      }\n      // Prevent the error stack from being visible by duplicating the error\n      // in a very close way to the original in case both sides are actually\n      // instances of Error.\n      if (typeof actual === 'object' && actual !== null &&\n          typeof expected === 'object' && expected !== null &&\n          'stack' in actual && actual instanceof Error &&\n          'stack' in expected && expected instanceof Error) {\n        actual = copyError(actual);\n        expected = copyError(expected);\n      }\n\n      if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n        super(createErrDiff(actual\x2C expected\x2C operator));\n      } else if (operator === 'notDeepStrictEqual' ||\n        operator === 'notStrictEqual') {\n        // In case the objects are equal but the operator requires unequal\x2C show\n        // the first object and say A equals B\n        let base = kReadableOperator[operator];\n        const res = StringPrototypeSplit(inspectValue(actual)\x2C '\\n');\n\n        // In case "actual" is an object or a function\x2C it should not be\n        // reference equal.\n        if (operator === 'notStrictEqual' &&\n            ((typeof actual === 'object' && actual !== null) ||\n             typeof actual === 'function')) {\n          base = kReadableOperator.notStrictEqualObject;\n        }\n\n        // Only remove lines in case it makes sense to collapse those.\n        // TODO: Accept env to always show the full error.\n        if (res.length > 50) {\n          res[46] = `${blue}...${white}`;\n          while (res.length > 47) {\n            ArrayPrototypePop(res);\n          }\n        }\n\n        // Only print a single input.\n        if (res.length === 1) {\n          super(`${base}${res[0].length > 5 ? '\\n\\n' : ' '}${res[0]}`);\n        } else {\n          super(`${base}\\n\\n${ArrayPrototypeJoin(res\x2C '\\n')}\\n`);\n        }\n      } else {\n        let res = inspectValue(actual);\n        let other = inspectValue(expected);\n        const knownOperator = kReadableOperator[operator];\n        if (operator === 'notDeepEqual' && res === other) {\n          res = `${knownOperator}\\n\\n${res}`;\n          if (res.length > 1024) {\n            res = `${StringPrototypeSlice(res\x2C 0\x2C 1021)}...`;\n          }\n          super(res);\n        } else {\n          if (res.length > 512) {\n            res = `${StringPrototypeSlice(res\x2C 0\x2C 509)}...`;\n          }\n          if (other.length > 512) {\n            other = `${StringPrototypeSlice(other\x2C 0\x2C 509)}...`;\n          }\n          if (operator === 'deepEqual') {\n            res = `${knownOperator}\\n\\n${res}\\n\\nshould loosely deep-equal\\n\\n`;\n          } else {\n            const newOp = kReadableOperator[`${operator}Unequal`];\n            if (newOp) {\n              res = `${newOp}\\n\\n${res}\\n\\nshould not loosely deep-equal\\n\\n`;\n            } else {\n              other = ` ${operator} ${other}`;\n            }\n          }\n          super(`${res}${other}`);\n        }\n      }\n    }\n\n    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n\n    this.generatedMessage = !message;\n    ObjectDefineProperty(this\x2C 'name'\x2C {\n      value: 'AssertionError [ERR_ASSERTION]'\x2C\n      enumerable: false\x2C\n      writable: true\x2C\n      configurable: true\n    });\n    this.code = 'ERR_ASSERTION';\n    if (details) {\n      this.actual = undefined;\n      this.expected = undefined;\n      this.operator = undefined;\n      for (let i = 0; i < details.length; i++) {\n        this['message ' + i] = details[i].message;\n        this['actual ' + i] = details[i].actual;\n        this['expected ' + i] = details[i].expected;\n        this['operator ' + i] = details[i].operator;\n        this['stack trace ' + i] = details[i].stack;\n      }\n    } else {\n      this.actual = actual;\n      this.expected = expected;\n      this.operator = operator;\n    }\n    ErrorCaptureStackTrace(this\x2C stackStartFn || stackStartFunction);\n    // Create error message including the error code in the name.\n    this.stack; // eslint-disable-line no-unused-expressions\n    // Reset the name.\n    this.name = 'AssertionError';\n  }\n\n  toString() {\n    return `${this.name} [${this.code}]: ${this.message}`;\n  }\n\n  [inspect.custom](recurseTimes\x2C ctx) {\n    // Long strings should not be fully inspected.\n    const tmpActual = this.actual;\n    const tmpExpected = this.expected;\n\n    if (typeof this.actual === 'string') {\n      this.actual = addEllipsis(this.actual);\n    }\n    if (typeof this.expected === 'string') {\n      this.expected = addEllipsis(this.expected);\n    }\n\n    // This limits the `actual` and `expected` property default inspection to\n    // the minimum depth. Otherwise those values would be too verbose compared\n    // to the actual error message which contains a combined view of these two\n    // input values.\n    const result = inspect(this\x2C {\n      ...ctx\x2C\n      customInspect: false\x2C\n      depth: 0\n    });\n\n    // Reset the properties after inspection.\n    this.actual = tmpActual;\n    this.expected = tmpExpected;\n\n    return result;\n  }\n}\n\nmodule.exports = AssertionError;\n
code-source-info,0x923ecc23b1e,159,0,17184,C0O0C4O17184,,
code-creation,Function,10,238286,0x923ecc241ee,321, node:internal/assert/assertion_error:1:1,0x923ecc23a88,~
code-source-info,0x923ecc241ee,159,0,17184,C0O0C105O25C111O47C117O68C123O77C129O103C135O114C141O130C147O154C153O178C159O192C165O202C171O229C177O254C183O278C189O338C192O338C197O326C203O400C206O400C211O382C217O456C220O456C225O436C231O531C234O531C239O496C245O571C247O571C249O587C251O587C253O601C255O601C257O617C259O617C261O648C265O648C267O1472C269O1472C274O11254C287O16306C290O16306C313O17151C315O17166C320O17183,,
tick,0xf86dc0,238531,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc2071e,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,238553,0x923ecc25896,5, node:internal/assert/calltracker:1:1,0x923ecc25628,~
script-source,160,node:internal/assert/calltracker,'use strict';\n\nconst {\n  ArrayPrototypePush\x2C\n  Error\x2C\n  FunctionPrototype\x2C\n  ReflectApply\x2C\n  SafeSet\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_UNAVAILABLE_DURING_EXIT\x2C\n  }\x2C\n} = require('internal/errors');\nconst AssertionError = require('internal/assert/assertion_error');\nconst {\n  validateUint32\x2C\n} = require('internal/validators');\n\nconst noop = FunctionPrototype;\n\nclass CallTracker {\n\n  #callChecks = new SafeSet()\n\n  calls(fn\x2C exact = 1) {\n    if (process._exiting)\n      throw new ERR_UNAVAILABLE_DURING_EXIT();\n    if (typeof fn === 'number') {\n      exact = fn;\n      fn = noop;\n    } else if (fn === undefined) {\n      fn = noop;\n    }\n\n    validateUint32(exact\x2C 'exact'\x2C true);\n\n    const context = {\n      exact\x2C\n      actual: 0\x2C\n      // eslint-disable-next-line no-restricted-syntax\n      stackTrace: new Error()\x2C\n      name: fn.name || 'calls'\n    };\n    const callChecks = this.#callChecks;\n    callChecks.add(context);\n\n    return function() {\n      context.actual++;\n      if (context.actual === context.exact) {\n        // Once function has reached its call count remove it from\n        // callChecks set to prevent memory leaks.\n        callChecks.delete(context);\n      }\n      // If function has been called more than expected times\x2C add back into\n      // callchecks.\n      if (context.actual === context.exact + 1) {\n        callChecks.add(context);\n      }\n      return ReflectApply(fn\x2C this\x2C arguments);\n    };\n  }\n\n  report() {\n    const errors = [];\n    for (const context of this.#callChecks) {\n      // If functions have not been called exact times\n      if (context.actual !== context.exact) {\n        const message = `Expected the ${context.name} function to be ` +\n                        `executed ${context.exact} time(s) but was ` +\n                        `executed ${context.actual} time(s).`;\n        ArrayPrototypePush(errors\x2C {\n          message\x2C\n          actual: context.actual\x2C\n          expected: context.exact\x2C\n          operator: context.name\x2C\n          stack: context.stackTrace\n        });\n      }\n    }\n    return errors;\n  }\n\n  verify() {\n    const errors = this.report();\n    if (errors.length > 0) {\n      throw new AssertionError({\n        message: 'Function(s) were not called the expected number of times'\x2C\n        details: errors\x2C\n      });\n    }\n  }\n}\n\nmodule.exports = CallTracker;\n
code-source-info,0x923ecc25896,160,0,2344,C0O0C4O2344,,
code-creation,Function,10,238676,0x923ecc25cee,181, node:internal/assert/calltracker:1:1,0x923ecc25800,~
code-source-info,0x923ecc25cee,160,0,2344,C0O0C33O25C39O47C45O56C50O77C56O93C62O181C65O181C70O181C75O143C81O232C84O232C88O232C90O306C93O306C98O286C104O352C106O352C173O2314C175O2329C180O2343,,
code-creation,Function,10,238692,0x923ecc25e76,26,<instance_members_initializer> node:internal/assert/calltracker:25:3,0x923ecc25a30,~
code-source-info,0x923ecc25e76,160,395,422,C3O409C10O409C25O422,,
code-creation,LazyCompile,10,238975,0x923ecc26be6,37,get BlockList node:net:1760:16,0x1c78303ff898,~
code-source-info,0x923ecc26be6,117,46816,46905,C0O46825C14O46839C19O46868C26O46835C32O46884C36O46901,,
code-creation,Eval,10,239189,0x923ecc27096,5, node:internal/blocklist:1:1,0x923ecc26ea0,~
script-source,161,node:internal/blocklist,'use strict';\n\nconst {\n  Boolean\x2C\n  ObjectSetPrototypeOf\x2C\n  Symbol\n} = primordials;\n\nconst {\n  BlockList: BlockListHandle\x2C\n} = internalBinding('block_list');\n\nconst {\n  customInspectSymbol: kInspect\x2C\n} = require('internal/util');\n\nconst {\n  SocketAddress\x2C\n  kHandle: kSocketAddressHandle\x2C\n} = require('internal/socketaddress');\n\nconst {\n  JSTransferable\x2C\n  kClone\x2C\n  kDeserialize\x2C\n} = require('internal/worker/js_transferable');\n\nconst { inspect } = require('internal/util/inspect');\n\nconst kHandle = Symbol('kHandle');\nconst { owner_symbol } = internalBinding('symbols');\n\nconst {\n  ERR_INVALID_ARG_VALUE\x2C\n} = require('internal/errors').codes;\n\nconst { validateInt32\x2C validateString } = require('internal/validators');\n\nclass BlockList extends JSTransferable {\n  constructor() {\n    super();\n    this[kHandle] = new BlockListHandle();\n    this[kHandle][owner_symbol] = this;\n  }\n\n  [kInspect](depth\x2C options) {\n    if (depth < 0)\n      return this;\n\n    const opts = {\n      ...options\x2C\n      depth: options.depth == null ? null : options.depth - 1\n    };\n\n    return `BlockList ${inspect({\n      rules: this.rules\n    }\x2C opts)}`;\n  }\n\n  addAddress(address\x2C family = 'ipv4') {\n    if (!SocketAddress.isSocketAddress(address)) {\n      validateString(address\x2C 'address');\n      validateString(family\x2C 'family');\n      address = new SocketAddress({\n        address\x2C\n        family\x2C\n      });\n    }\n    this[kHandle].addAddress(address[kSocketAddressHandle]);\n  }\n\n  addRange(start\x2C end\x2C family = 'ipv4') {\n    if (!SocketAddress.isSocketAddress(start)) {\n      validateString(start\x2C 'start');\n      validateString(family\x2C 'family');\n      start = new SocketAddress({\n        address: start\x2C\n        family\x2C\n      });\n    }\n    if (!SocketAddress.isSocketAddress(end)) {\n      validateString(end\x2C 'end');\n      validateString(family\x2C 'family');\n      end = new SocketAddress({\n        address: end\x2C\n        family\x2C\n      });\n    }\n    const ret = this[kHandle].addRange(\n      start[kSocketAddressHandle]\x2C\n      end[kSocketAddressHandle]);\n    if (ret === false)\n      throw new ERR_INVALID_ARG_VALUE('start'\x2C start\x2C 'must come before end');\n  }\n\n  addSubnet(network\x2C prefix\x2C family = 'ipv4') {\n    if (!SocketAddress.isSocketAddress(network)) {\n      validateString(network\x2C 'network');\n      validateString(family\x2C 'family');\n      network = new SocketAddress({\n        address: network\x2C\n        family\x2C\n      });\n    }\n    switch (network.family) {\n      case 'ipv4':\n        validateInt32(prefix\x2C 'prefix'\x2C 0\x2C 32);\n        break;\n      case 'ipv6':\n        validateInt32(prefix\x2C 'prefix'\x2C 0\x2C 128);\n        break;\n    }\n    this[kHandle].addSubnet(network[kSocketAddressHandle]\x2C prefix);\n  }\n\n  check(address\x2C family = 'ipv4') {\n    if (!SocketAddress.isSocketAddress(address)) {\n      validateString(address\x2C 'address');\n      validateString(family\x2C 'family');\n      try {\n        address = new SocketAddress({\n          address\x2C\n          family\x2C\n        });\n      } catch {\n        // Ignore the error. If it's not a valid address\x2C return false.\n        return false;\n      }\n    }\n    return Boolean(this[kHandle].check(address[kSocketAddressHandle]));\n  }\n\n  get rules() {\n    return this[kHandle].getRules();\n  }\n\n  [kClone]() {\n    const handle = this[kHandle];\n    return {\n      data: { handle }\x2C\n      deserializeInfo: 'internal/blocklist:InternalBlockList'\x2C\n    };\n  }\n\n  [kDeserialize]({ handle }) {\n    this[kHandle] = handle;\n    this[kHandle][owner_symbol] = this;\n  }\n}\n\nclass InternalBlockList extends JSTransferable {\n  constructor(handle) {\n    super();\n    this[kHandle] = handle;\n    if (handle !== undefined)\n      handle[owner_symbol] = this;\n  }\n}\n\nInternalBlockList.prototype.constructor = BlockList.prototype.constructor;\nObjectSetPrototypeOf(InternalBlockList.prototype\x2C BlockList.prototype);\n\nmodule.exports = {\n  BlockList\x2C\n  InternalBlockList\x2C\n};\n
code-source-info,0x923ecc27096,161,0,3877,C0O0C4O3877,,
code-creation,Function,10,239370,0x923ecc27aae,359, node:internal/blocklist:1:1,0x923ecc27000,~
code-source-info,0x923ecc27aae,161,0,3877,C0O0C35O25C41O36C46O60C51O127C54O127C59O106C65O204C68O204C73O190C78O293C81O293C86O241C92O267C98O385C101O385C106O339C111O357C116O367C121O450C124O450C129O438C135O501C138O501C142O501C144O545C147O545C152O528C158O611C161O611C166O637C171O584C177O688C180O688C185O654C191O669C197O745C204O884C241O3223C251O3384C278O3519C301O3691C306O3725C311O3735C315O3713C319O3787C324O3808C329O3748C334O3821C341O3842C347O3855C353O3836C358O3876,,
tick,0xf955d1,239641,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc27aff,0x13b40bab9d2d,0x13b40bab8ffd,0x923ecc26bf4,0x1615d7f,0x3f8cd556adb8,0x3f8cd556ac69,0x3f8cd556aae0,0xac12f0,0x3f8cd556a7e2,0x1c78303f7c8d,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,239670,0x923ecc2933e,5, node:internal/socketaddress:1:1,0x923ecc29138,~
script-source,162,node:internal/socketaddress,'use strict';\n\nconst {\n  ObjectSetPrototypeOf\x2C\n  Symbol\x2C\n} = primordials;\n\nconst {\n  SocketAddress: _SocketAddress\x2C\n  AF_INET\x2C\n  AF_INET6\x2C\n} = internalBinding('block_list');\n\nconst {\n  validateObject\x2C\n  validateString\x2C\n  validatePort\x2C\n  validateUint32\x2C\n} = require('internal/validators');\n\nconst {\n  codes: {\n    ERR_INVALID_ARG_VALUE\x2C\n  }\x2C\n} = require('internal/errors');\n\nconst {\n  customInspectSymbol: kInspect\x2C\n} = require('internal/util');\n\nconst { inspect } = require('internal/util/inspect');\n\nconst {\n  JSTransferable\x2C\n  kClone\x2C\n  kDeserialize\x2C\n} = require('internal/worker/js_transferable');\n\nconst kHandle = Symbol('kHandle');\nconst kDetail = Symbol('kDetail');\n\nclass SocketAddress extends JSTransferable {\n  static isSocketAddress(value) {\n    return value?.[kHandle] !== undefined;\n  }\n\n  constructor(options = {}) {\n    super();\n    validateObject(options\x2C 'options');\n    let { family = 'ipv4' } = options;\n    const {\n      address = (family === 'ipv4' ? '127.0.0.1' : '::')\x2C\n      port = 0\x2C\n      flowlabel = 0\x2C\n    } = options;\n\n    let type;\n    if (typeof family?.toLowerCase === 'function')\n      family = family.toLowerCase();\n    switch (family) {\n      case 'ipv4':\n        type = AF_INET;\n        break;\n      case 'ipv6':\n        type = AF_INET6;\n        break;\n      default:\n        throw new ERR_INVALID_ARG_VALUE('options.family'\x2C options.family);\n    }\n\n    validateString(address\x2C 'options.address');\n    validatePort(port\x2C 'options.port');\n    validateUint32(flowlabel\x2C 'options.flowlabel'\x2C false);\n\n    this[kHandle] = new _SocketAddress(address\x2C port\x2C type\x2C flowlabel);\n    this[kDetail] = this[kHandle].detail({\n      address: undefined\x2C\n      port: undefined\x2C\n      family: undefined\x2C\n      flowlabel: undefined\x2C\n    });\n  }\n\n  get address() {\n    return this[kDetail].address;\n  }\n\n  get port() {\n    return this[kDetail].port;\n  }\n\n  get family() {\n    return this[kDetail].family === AF_INET ? 'ipv4' : 'ipv6';\n  }\n\n  get flowlabel() {\n    // The flow label can be changed internally.\n    return this[kHandle].flowlabel();\n  }\n\n  [kInspect](depth\x2C options) {\n    if (depth < 0)\n      return this;\n\n    const opts = {\n      ...options\x2C\n      depth: options.depth == null ? null : options.depth - 1\n    };\n\n    return `SocketAddress ${inspect(this.toJSON()\x2C opts)}`;\n  }\n\n  [kClone]() {\n    const handle = this[kHandle];\n    return {\n      data: { handle }\x2C\n      deserializeInfo: 'internal/socketaddress:InternalSocketAddress'\x2C\n    };\n  }\n\n  [kDeserialize]({ handle }) {\n    this[kHandle] = handle;\n    this[kDetail] = handle.detail({\n      address: undefined\x2C\n      port: undefined\x2C\n      family: undefined\x2C\n      flowlabel: undefined\x2C\n    });\n  }\n\n  toJSON() {\n    return {\n      address: this.address\x2C\n      port: this.port\x2C\n      family: this.family\x2C\n      flowlabel: this.flowlabel\x2C\n    };\n  }\n}\n\nclass InternalSocketAddress extends JSTransferable {\n  constructor(handle) {\n    super();\n    this[kHandle] = handle;\n  }\n}\n\nInternalSocketAddress.prototype.constructor =\n  SocketAddress.prototype.constructor;\nObjectSetPrototypeOf(InternalSocketAddress.prototype\x2C SocketAddress.prototype);\n\nmodule.exports = {\n  SocketAddress\x2C\n  InternalSocketAddress\x2C\n  kHandle\x2C\n};\n
code-source-info,0x923ecc2933e,162,0,3207,C0O0C4O3207,,
code-creation,Function,10,239825,0x923ecc29e76,366, node:internal/socketaddress:1:1,0x923ecc292a8,~
code-source-info,0x923ecc29e76,162,0,3207,C0O0C38O25C43O49C48O143C51O143C56O100C62O118C68O129C74O257C77O257C82O185C88O203C94O221C100O237C106O345C109O345C114O345C119O313C125O419C128O419C133O405C138O466C141O466C146O454C152O557C155O557C160O511C165O529C170O539C175O618C178O618C182O618C184O653C187O653C191O653C193O701C226O2071C236O2313C246O2482C279O2877C302O2988C307O3028C312O3038C316O3010C320O3094C325O3119C330O3051C335O3132C342O3153C348O3170C354O3195C360O3147C365O3206,,
code-creation,LazyCompile,10,239974,0x923ecc2a8de,37,get SocketAddress node:net:1764:20,0x1c78303ff910,~
code-source-info,0x923ecc2a8de,117,46926,47031,C0O46935C14O46953C19O46986C26O46949C32O47006C36O47027,,
code-creation,LazyCompile,10,240070,0x923ecc2ab4e,5,get node:stream:52:6,0xaad6677ab50,~
script-source,43,node:stream,// 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  ObjectDefineProperty\x2C\n} = primordials;\n\nconst {\n  promisify: { custom: customPromisify }\x2C\n} = require('internal/util');\n\nconst pipeline = require('internal/streams/pipeline');\nconst eos = require('internal/streams/end-of-stream');\nconst internalBuffer = require('internal/buffer');\n\nconst promises = require('stream/promises');\n\nconst Stream = module.exports = require('internal/streams/legacy').Stream;\nStream.Readable = require('internal/streams/readable');\nStream.Writable = require('internal/streams/writable');\nStream.Duplex = require('internal/streams/duplex');\nStream.Transform = require('internal/streams/transform');\nStream.PassThrough = require('internal/streams/passthrough');\nStream.pipeline = pipeline;\nconst { addAbortSignal } = require('internal/streams/add-abort-signal');\nStream.addAbortSignal = addAbortSignal;\nStream.finished = eos;\n\nObjectDefineProperty(Stream\x2C 'promises'\x2C {\n  configurable: true\x2C\n  enumerable: true\x2C\n  get() {\n    return promises;\n  }\n});\n\nObjectDefineProperty(pipeline\x2C customPromisify\x2C {\n  enumerable: true\x2C\n  get() {\n    return promises.pipeline;\n  }\n});\n\nObjectDefineProperty(eos\x2C customPromisify\x2C {\n  enumerable: true\x2C\n  get() {\n    return promises.finished;\n  }\n});\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\nStream._isUint8Array = require('internal/util/types').isUint8Array;\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n  return new internalBuffer.FastBuffer(chunk.buffer\x2C\n                                       chunk.byteOffset\x2C\n                                       chunk.byteLength);\n};\n
code-source-info,0x923ecc2ab4e,43,2102,2131,C0O2111C4O2127,,
code-creation,Eval,10,240344,0x923ecc2b5de,5, node:worker_threads:1:1,0x923ecc2b488,~
script-source,163,node:worker_threads,'use strict';\n\nconst {\n  isMainThread\x2C\n  SHARE_ENV\x2C\n  resourceLimits\x2C\n  setEnvironmentData\x2C\n  getEnvironmentData\x2C\n  threadId\x2C\n  Worker\n} = require('internal/worker');\n\nconst {\n  MessagePort\x2C\n  MessageChannel\x2C\n  moveMessagePortToContext\x2C\n  receiveMessageOnPort\x2C\n  BroadcastChannel\x2C\n} = require('internal/worker/io');\n\nconst {\n  markAsUntransferable\x2C\n} = require('internal/buffer');\n\nmodule.exports = {\n  isMainThread\x2C\n  MessagePort\x2C\n  MessageChannel\x2C\n  markAsUntransferable\x2C\n  moveMessagePortToContext\x2C\n  receiveMessageOnPort\x2C\n  resourceLimits\x2C\n  threadId\x2C\n  SHARE_ENV\x2C\n  Worker\x2C\n  parentPort: null\x2C\n  workerData: null\x2C\n  BroadcastChannel\x2C\n  setEnvironmentData\x2C\n  getEnvironmentData\x2C\n};\n
code-source-info,0x923ecc2b5de,163,0,686,C0O0C4O686,,
code-creation,Function,10,240391,0x923ecc2b7fe,180, node:worker_threads:1:1,0x923ecc2b548,~
code-source-info,0x923ecc2b7fe,163,0,686,C0O139C3O139C8O25C13O41C18O54C23O72C28O94C33O116C38O128C43O285C46O285C51O178C56O193C61O211C66O239C71O263C76O353C79O353C84O327C89O382C96O403C102O419C108O434C114O452C120O476C126O504C132O528C138O546C144O558C150O571C156O621C162O641C168O663C174O397C179O685,,
tick,0xd12416,240718,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc2b801,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,240904,0x923ecc2c796,5, node:internal/worker:1:1,0x923ecc2c188,~
script-source,164,node:internal/worker,'use strict';\n\nconst {\n  ArrayIsArray\x2C\n  ArrayPrototypeForEach\x2C\n  ArrayPrototypeMap\x2C\n  ArrayPrototypePush\x2C\n  Float64Array\x2C\n  FunctionPrototypeBind\x2C\n  JSONStringify\x2C\n  MathMax\x2C\n  ObjectCreate\x2C\n  ObjectEntries\x2C\n  Promise\x2C\n  PromiseResolve\x2C\n  ReflectApply\x2C\n  RegExpPrototypeTest\x2C\n  SafeArrayIterator\x2C\n  SafeMap\x2C\n  String\x2C\n  Symbol\x2C\n  SymbolFor\x2C\n  TypedArrayPrototypeFill\x2C\n  Uint32Array\x2C\n  globalThis: { Atomics\x2C SharedArrayBuffer }\x2C\n} = primordials;\n\nconst EventEmitter = require('events');\nconst assert = require('internal/assert');\nconst path = require('path');\nconst { now } = require('internal/perf/utils');\n\nconst errorCodes = require('internal/errors').codes;\nconst {\n  ERR_WORKER_NOT_RUNNING\x2C\n  ERR_WORKER_PATH\x2C\n  ERR_WORKER_UNSERIALIZABLE_ERROR\x2C\n  ERR_WORKER_UNSUPPORTED_EXTENSION\x2C\n  ERR_WORKER_INVALID_EXEC_ARGV\x2C\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_INVALID_ARG_VALUE\x2C\n} = errorCodes;\nconst { getOptionValue } = require('internal/options');\n\nconst workerIo = require('internal/worker/io');\nconst {\n  drainMessagePort\x2C\n  MessageChannel\x2C\n  messageTypes\x2C\n  kPort\x2C\n  kIncrementsPortRef\x2C\n  kWaitingStreams\x2C\n  kStdioWantsMoreDataCallback\x2C\n  setupPortReferencing\x2C\n  ReadableWorkerStdio\x2C\n  WritableWorkerStdio\n} = workerIo;\nconst { deserializeError } = require('internal/error_serdes');\nconst { fileURLToPath\x2C isURLInstance\x2C pathToFileURL } = require('internal/url');\nconst { validateArray } = require('internal/validators');\n\nconst {\n  ownsProcessState\x2C\n  isMainThread\x2C\n  resourceLimits: resourceLimitsRaw\x2C\n  threadId\x2C\n  Worker: WorkerImpl\x2C\n  kMaxYoungGenerationSizeMb\x2C\n  kMaxOldGenerationSizeMb\x2C\n  kCodeRangeSizeMb\x2C\n  kStackSizeMb\x2C\n  kTotalResourceLimitCount\n} = internalBinding('worker');\n\nconst kHandle = Symbol('kHandle');\nconst kPublicPort = Symbol('kPublicPort');\nconst kDispose = Symbol('kDispose');\nconst kOnExit = Symbol('kOnExit');\nconst kOnMessage = Symbol('kOnMessage');\nconst kOnCouldNotSerializeErr = Symbol('kOnCouldNotSerializeErr');\nconst kOnErrorMessage = Symbol('kOnErrorMessage');\nconst kParentSideStdio = Symbol('kParentSideStdio');\nconst kLoopStartTime = Symbol('kLoopStartTime');\nconst kIsOnline = Symbol('kIsOnline');\n\nconst SHARE_ENV = SymbolFor('nodejs.worker_threads.SHARE_ENV');\nlet debug = require('internal/util/debuglog').debuglog('worker'\x2C (fn) => {\n  debug = fn;\n});\n\nlet cwdCounter;\n\nconst environmentData = new SafeMap();\n\nif (isMainThread) {\n  cwdCounter = new Uint32Array(new SharedArrayBuffer(4));\n  const originalChdir = process.chdir;\n  process.chdir = function(path) {\n    Atomics.add(cwdCounter\x2C 0\x2C 1);\n    originalChdir(path);\n  };\n}\n\nfunction setEnvironmentData(key\x2C value) {\n  if (value === undefined)\n    environmentData.delete(key);\n  else\n    environmentData.set(key\x2C value);\n}\n\nfunction getEnvironmentData(key) {\n  return environmentData.get(key);\n}\n\nfunction assignEnvironmentData(data) {\n  if (data === undefined) return;\n  data.forEach((value\x2C key) => {\n    environmentData.set(key\x2C value);\n  });\n}\n\nclass Worker extends EventEmitter {\n  constructor(filename\x2C options = {}) {\n    super();\n    debug(`[${threadId}] create new worker`\x2C filename\x2C options);\n    if (options.execArgv && !ArrayIsArray(options.execArgv)) {\n      throw new ERR_INVALID_ARG_TYPE('options.execArgv'\x2C\n                                     'Array'\x2C\n                                     options.execArgv);\n    }\n    let argv;\n    if (options.argv) {\n      validateArray(options.argv\x2C 'options.argv');\n      argv = ArrayPrototypeMap(options.argv\x2C String);\n    }\n\n    let url\x2C doEval;\n    if (options.eval) {\n      if (typeof filename !== 'string') {\n        throw new ERR_INVALID_ARG_VALUE(\n          'options.eval'\x2C\n          options.eval\x2C\n          'must be false when \\'filename\\' is not a string'\n        );\n      }\n      url = null;\n      doEval = 'classic';\n    } else if (isURLInstance(filename) && filename.protocol === 'data:') {\n      url = null;\n      doEval = 'module';\n      filename = `import ${JSONStringify(`${filename}`)}`;\n    } else {\n      doEval = false;\n      if (isURLInstance(filename)) {\n        url = filename;\n        filename = fileURLToPath(filename);\n      } else if (typeof filename !== 'string') {\n        throw new ERR_INVALID_ARG_TYPE(\n          'filename'\x2C\n          ['string'\x2C 'URL']\x2C\n          filename\n        );\n      } else if (path.isAbsolute(filename) ||\n                 RegExpPrototypeTest(/^\\.\\.?[\\\\/]/\x2C filename)) {\n        filename = path.resolve(filename);\n        url = pathToFileURL(filename);\n      } else {\n        throw new ERR_WORKER_PATH(filename);\n      }\n\n      const ext = path.extname(filename);\n      if (ext !== '.js' && ext !== '.mjs' && ext !== '.cjs') {\n        throw new ERR_WORKER_UNSUPPORTED_EXTENSION(ext);\n      }\n    }\n\n    let env;\n    if (typeof options.env === 'object' && options.env !== null) {\n      env = ObjectCreate(null);\n      ArrayPrototypeForEach(\n        ObjectEntries(options.env)\x2C\n        ({ 0: key\x2C 1: value }) => { env[key] = `${value}`; }\n      );\n    } else if (options.env == null) {\n      env = process.env;\n    } else if (options.env !== SHARE_ENV) {\n      throw new ERR_INVALID_ARG_TYPE(\n        'options.env'\x2C\n        ['object'\x2C 'undefined'\x2C 'null'\x2C 'worker_threads.SHARE_ENV']\x2C\n        options.env);\n    }\n\n    // Set up the C++ handle for the worker\x2C as well as some internal wiring.\n    this[kHandle] = new WorkerImpl(url\x2C\n                                   env === process.env ? null : env\x2C\n                                   options.execArgv\x2C\n                                   parseResourceLimits(options.resourceLimits)\x2C\n                                   !!(options.trackUnmanagedFds ?? true));\n    if (this[kHandle].invalidExecArgv) {\n      throw new ERR_WORKER_INVALID_EXEC_ARGV(this[kHandle].invalidExecArgv);\n    }\n    if (this[kHandle].invalidNodeOptions) {\n      throw new ERR_WORKER_INVALID_EXEC_ARGV(\n        this[kHandle].invalidNodeOptions\x2C 'invalid NODE_OPTIONS env variable');\n    }\n    this[kHandle].onexit = (code\x2C customErr\x2C customErrReason) => {\n      this[kOnExit](code\x2C customErr\x2C customErrReason);\n    };\n    this[kPort] = this[kHandle].messagePort;\n    this[kPort].on('message'\x2C (data) => this[kOnMessage](data));\n    this[kPort].start();\n    this[kPort].unref();\n    this[kPort][kWaitingStreams] = 0;\n    debug(`[${threadId}] created Worker with ID ${this.threadId}`);\n\n    let stdin = null;\n    if (options.stdin)\n      stdin = new WritableWorkerStdio(this[kPort]\x2C 'stdin');\n    const stdout = new ReadableWorkerStdio(this[kPort]\x2C 'stdout');\n    if (!options.stdout) {\n      stdout[kIncrementsPortRef] = false;\n      pipeWithoutWarning(stdout\x2C process.stdout);\n    }\n    const stderr = new ReadableWorkerStdio(this[kPort]\x2C 'stderr');\n    if (!options.stderr) {\n      stderr[kIncrementsPortRef] = false;\n      pipeWithoutWarning(stderr\x2C process.stderr);\n    }\n\n    this[kParentSideStdio] = { stdin\x2C stdout\x2C stderr };\n\n    const { port1\x2C port2 } = new MessageChannel();\n    const transferList = [port2];\n    // If transferList is provided.\n    if (options.transferList)\n      ArrayPrototypePush(transferList\x2C\n                         ...new SafeArrayIterator(options.transferList));\n\n    this[kPublicPort] = port1;\n    ArrayPrototypeForEach(['message'\x2C 'messageerror']\x2C (event) => {\n      this[kPublicPort].on(event\x2C (message) => this.emit(event\x2C message));\n    });\n    setupPortReferencing(this[kPublicPort]\x2C this\x2C 'message');\n    this[kPort].postMessage({\n      argv\x2C\n      type: messageTypes.LOAD_SCRIPT\x2C\n      filename\x2C\n      doEval\x2C\n      cwdCounter: cwdCounter || workerIo.sharedCwdCounter\x2C\n      workerData: options.workerData\x2C\n      environmentData\x2C\n      publicPort: port2\x2C\n      manifestURL: getOptionValue('--experimental-policy') ?\n        require('internal/process/policy').url :\n        null\x2C\n      manifestSrc: getOptionValue('--experimental-policy') ?\n        require('internal/process/policy').src :\n        null\x2C\n      hasStdin: !!options.stdin\n    }\x2C transferList);\n    // Use this to cache the Worker's loopStart value once available.\n    this[kLoopStartTime] = -1;\n    this[kIsOnline] = false;\n    this.performance = {\n      eventLoopUtilization: FunctionPrototypeBind(eventLoopUtilization\x2C this)\x2C\n    };\n    // Actually start the new thread now that everything is in place.\n    this[kHandle].startThread();\n\n    process.nextTick(() => process.emit('worker'\x2C this));\n  }\n\n  [kOnExit](code\x2C customErr\x2C customErrReason) {\n    debug(`[${threadId}] hears end event for Worker ${this.threadId}`);\n    drainMessagePort(this[kPublicPort]);\n    drainMessagePort(this[kPort]);\n    this.removeAllListeners('message');\n    this.removeAllListeners('messageerrors');\n    this[kPublicPort].unref();\n    this[kPort].unref();\n    this[kDispose]();\n    if (customErr) {\n      debug(`[${threadId}] failing with custom error ${customErr} \\\n        and with reason ${customErrReason}`);\n      this.emit('error'\x2C new errorCodes[customErr](customErrReason));\n    }\n    this.emit('exit'\x2C code);\n    this.removeAllListeners();\n  }\n\n  [kOnCouldNotSerializeErr]() {\n    this.emit('error'\x2C new ERR_WORKER_UNSERIALIZABLE_ERROR());\n  }\n\n  [kOnErrorMessage](serialized) {\n    // This is what is called for uncaught exceptions.\n    const error = deserializeError(serialized);\n    this.emit('error'\x2C error);\n  }\n\n  [kOnMessage](message) {\n    switch (message.type) {\n      case messageTypes.UP_AND_RUNNING:\n        this[kIsOnline] = true;\n        return this.emit('online');\n      case messageTypes.COULD_NOT_SERIALIZE_ERROR:\n        return this[kOnCouldNotSerializeErr]();\n      case messageTypes.ERROR_MESSAGE:\n        return this[kOnErrorMessage](message.error);\n      case messageTypes.STDIO_PAYLOAD:\n      {\n        const { stream\x2C chunks } = message;\n        const readable = this[kParentSideStdio][stream];\n        ArrayPrototypeForEach(chunks\x2C ({ chunk\x2C encoding }) => {\n          readable.push(chunk\x2C encoding);\n        });\n        return;\n      }\n      case messageTypes.STDIO_WANTS_MORE_DATA:\n      {\n        const { stream } = message;\n        return this[kParentSideStdio][stream][kStdioWantsMoreDataCallback]();\n      }\n    }\n\n    assert.fail(`Unknown worker message type ${message.type}`);\n  }\n\n  [kDispose]() {\n    this[kHandle].onexit = null;\n    this[kHandle] = null;\n    this[kPort] = null;\n    this[kPublicPort] = null;\n\n    const { stdout\x2C stderr } = this[kParentSideStdio];\n\n    if (!stdout.readableEnded) {\n      debug(`[${threadId}] explicitly closes stdout for ${this.threadId}`);\n      stdout.push(null);\n    }\n    if (!stderr.readableEnded) {\n      debug(`[${threadId}] explicitly closes stderr for ${this.threadId}`);\n      stderr.push(null);\n    }\n  }\n\n  postMessage(...args) {\n    if (this[kPublicPort] === null) return;\n\n    ReflectApply(this[kPublicPort].postMessage\x2C this[kPublicPort]\x2C args);\n  }\n\n  terminate(callback) {\n    debug(`[${threadId}] terminates Worker with ID ${this.threadId}`);\n\n    this.ref();\n\n    if (typeof callback === 'function') {\n      process.emitWarning(\n        'Passing a callback to worker.terminate() is deprecated. ' +\n        'It returns a Promise instead.'\x2C\n        'DeprecationWarning'\x2C 'DEP0132');\n      if (this[kHandle] === null) return PromiseResolve();\n      this.once('exit'\x2C (exitCode) => callback(null\x2C exitCode));\n    }\n\n    if (this[kHandle] === null) return PromiseResolve();\n\n    this[kHandle].stopThread();\n\n    // Do not use events.once() here\x2C because the 'exit' event will always be\n    // emitted regardless of any errors\x2C and the point is to only resolve\n    // once the thread has actually stopped.\n    return new Promise((resolve) => {\n      this.once('exit'\x2C resolve);\n    });\n  }\n\n  ref() {\n    if (this[kHandle] === null) return;\n\n    this[kHandle].ref();\n    this[kPublicPort].ref();\n  }\n\n  unref() {\n    if (this[kHandle] === null) return;\n\n    this[kHandle].unref();\n    this[kPublicPort].unref();\n  }\n\n  get threadId() {\n    if (this[kHandle] === null) return -1;\n\n    return this[kHandle].threadId;\n  }\n\n  get stdin() {\n    return this[kParentSideStdio].stdin;\n  }\n\n  get stdout() {\n    return this[kParentSideStdio].stdout;\n  }\n\n  get stderr() {\n    return this[kParentSideStdio].stderr;\n  }\n\n  get resourceLimits() {\n    if (this[kHandle] === null) return {};\n\n    return makeResourceLimits(this[kHandle].getResourceLimits());\n  }\n\n  getHeapSnapshot() {\n    const heapSnapshotTaker = this[kHandle] && this[kHandle].takeHeapSnapshot();\n    return new Promise((resolve\x2C reject) => {\n      if (!heapSnapshotTaker) return reject(new ERR_WORKER_NOT_RUNNING());\n      heapSnapshotTaker.ondone = (handle) => {\n        const { HeapSnapshotStream } = require('internal/heap_utils');\n        resolve(new HeapSnapshotStream(handle));\n      };\n    });\n  }\n}\n\nfunction pipeWithoutWarning(source\x2C dest) {\n  const sourceMaxListeners = source._maxListeners;\n  const destMaxListeners = dest._maxListeners;\n  source.setMaxListeners(Infinity);\n  dest.setMaxListeners(Infinity);\n\n  source.pipe(dest);\n\n  source._maxListeners = sourceMaxListeners;\n  dest._maxListeners = destMaxListeners;\n}\n\nconst resourceLimitsArray = new Float64Array(kTotalResourceLimitCount);\nfunction parseResourceLimits(obj) {\n  const ret = resourceLimitsArray;\n  TypedArrayPrototypeFill(ret\x2C -1);\n  if (typeof obj !== 'object' || obj === null) return ret;\n\n  if (typeof obj.maxOldGenerationSizeMb === 'number')\n    ret[kMaxOldGenerationSizeMb] = MathMax(obj.maxOldGenerationSizeMb\x2C 2);\n  if (typeof obj.maxYoungGenerationSizeMb === 'number')\n    ret[kMaxYoungGenerationSizeMb] = obj.maxYoungGenerationSizeMb;\n  if (typeof obj.codeRangeSizeMb === 'number')\n    ret[kCodeRangeSizeMb] = obj.codeRangeSizeMb;\n  if (typeof obj.stackSizeMb === 'number')\n    ret[kStackSizeMb] = obj.stackSizeMb;\n  return ret;\n}\n\nfunction makeResourceLimits(float64arr) {\n  return {\n    maxYoungGenerationSizeMb: float64arr[kMaxYoungGenerationSizeMb]\x2C\n    maxOldGenerationSizeMb: float64arr[kMaxOldGenerationSizeMb]\x2C\n    codeRangeSizeMb: float64arr[kCodeRangeSizeMb]\x2C\n    stackSizeMb: float64arr[kStackSizeMb]\n  };\n}\n\nfunction eventLoopUtilization(util1\x2C util2) {\n  // TODO(trevnorris): Works to solve the thread-safe read/write issue of\n  // loopTime\x2C but has the drawback that it can't be set until the event loop\n  // has had a chance to turn. So it will be impossible to read the ELU of\n  // a worker thread immediately after it's been created.\n  if (!this[kIsOnline] || !this[kHandle]) {\n    return { idle: 0\x2C active: 0\x2C utilization: 0 };\n  }\n\n  // Cache loopStart\x2C since it's only written to once.\n  if (this[kLoopStartTime] === -1) {\n    this[kLoopStartTime] = this[kHandle].loopStartTime();\n    if (this[kLoopStartTime] === -1)\n      return { idle: 0\x2C active: 0\x2C utilization: 0 };\n  }\n\n  if (util2) {\n    const idle = util1.idle - util2.idle;\n    const active = util1.active - util2.active;\n    return { idle\x2C active\x2C utilization: active / (idle + active) };\n  }\n\n  const idle = this[kHandle].loopIdleTime();\n\n  // Using performance.now() here is fine since it's always the time from\n  // the beginning of the process\x2C and is why it needs to be offset by the\n  // loopStart time (which is also calculated from the beginning of the\n  // process).\n  const active = now() - this[kLoopStartTime] - idle;\n\n  if (!util1) {\n    return { idle\x2C active\x2C utilization: active / (idle + active) };\n  }\n\n  const idle_delta = idle - util1.idle;\n  const active_delta = active - util1.active;\n  const utilization = active_delta / (idle_delta + active_delta);\n  return { idle: idle_delta\x2C active: active_delta\x2C utilization };\n}\n\nmodule.exports = {\n  ownsProcessState\x2C\n  isMainThread\x2C\n  SHARE_ENV\x2C\n  resourceLimits:\n    !isMainThread ? makeResourceLimits(resourceLimitsRaw) : {}\x2C\n  setEnvironmentData\x2C\n  getEnvironmentData\x2C\n  assignEnvironmentData\x2C\n  threadId\x2C\n  Worker\x2C\n};\n
code-source-info,0x923ecc2c796,164,0,15713,C0O0C4O15713,,
code-creation,Function,10,241567,0x923ecc2db06,1203, node:internal/worker:1:1,0x923ecc2c700,~
code-source-info,0x923ecc2db06,164,0,15713,C0O0C250O25C256O41C262O66C268O87C274O109C279O125C285O150C291O167C297O178C303O194C309O211C315O222C321O240C327O256C333O279C339O300C344O311C350O321C355O331C360O344C366O371C377O400C383O409C388O469C396O469C401O503C409O503C413O503C415O544C423O544C427O544C429O577C437O577C443O569C449O629C457O629C463O655C467O629C469O872C473O673C479O699C485O718C491O753C497O789C503O821C509O845C515O911C523O911C529O892C535O958C543O958C547O958C549O1205C553O999C559O1019C565O1037C571O1053C577O1062C583O1084C589O1103C595O1134C601O1158C607O1181C613O1244C621O1244C627O1223C633O1334C641O1334C647O1286C653O1301C659O1316C665O1385C673O1385C679O1367C685O1656C689O1656C695O1428C700O1448C705O1480C710O1501C716O1521C722O1535C728O1564C734O1591C740O1611C746O1627C751O1700C755O1700C759O1700C761O1739C765O1739C769O1739C771O1779C775O1779C779O1779C781O1815C785O1815C789O1815C791O1853C795O1853C799O1853C801O1907C805O1907C809O1907C811O1966C815O1966C819O1966C821O2018C825O2018C829O2018C831O2069C835O2069C839O2069C841O2113C845O2113C849O2113C851O2153C855O2153C859O2153C861O2211C869O2211C875O2244C891O2245C897O2211C899O2297C900O2297C902O2334C904O2334C909O2334C911O2350C922O2372C928O2401C937O2385C942O2383C946O2452C952O2460C956O2452C958O2469C968O2483C974O2965C984O8332C994O8968C1004O9068C1014O9241C1024O10138C1110O13020C1112O13020C1117O13020C1119O15469C1127O15490C1133O15510C1139O15526C1148O15560C1154O15575C1167O15621C1173O15643C1179O15665C1185O15690C1191O15702C1197O15484C1202O15712,,
tick,0x1152483,241799,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc2dd73,0x13b40bab9d2d,0x13b40bab8ffd,0x923ecc2b801,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,241895,0x923ecc2fa8e,5, node:internal/error_serdes:1:1,0x923ecc2f7b8,~
script-source,165,node:internal/error_serdes,'use strict';\n\nconst Buffer = require('buffer').Buffer;\nconst {\n  ArrayPrototypeForEach\x2C\n  Error\x2C\n  EvalError\x2C\n  FunctionPrototypeCall\x2C\n  ObjectAssign\x2C\n  ObjectCreate\x2C\n  ObjectDefineProperty\x2C\n  ObjectGetOwnPropertyDescriptor\x2C\n  ObjectGetOwnPropertyNames\x2C\n  ObjectGetPrototypeOf\x2C\n  ObjectKeys\x2C\n  ObjectPrototypeToString\x2C\n  RangeError\x2C\n  ReferenceError\x2C\n  SafeSet\x2C\n  SymbolToStringTag\x2C\n  SyntaxError\x2C\n  TypeError\x2C\n  URIError\x2C\n} = primordials;\n\nconst kSerializedError = 0;\nconst kSerializedObject = 1;\nconst kInspectedError = 2;\n\nconst errors = {\n  Error\x2C TypeError\x2C RangeError\x2C URIError\x2C SyntaxError\x2C ReferenceError\x2C EvalError\n};\nconst errorConstructorNames = new SafeSet(ObjectKeys(errors));\n\nfunction TryGetAllProperties(object\x2C target = object) {\n  const all = ObjectCreate(null);\n  if (object === null)\n    return all;\n  ObjectAssign(all\x2C\n               TryGetAllProperties(ObjectGetPrototypeOf(object)\x2C target));\n  const keys = ObjectGetOwnPropertyNames(object);\n  ArrayPrototypeForEach(keys\x2C (key) => {\n    let descriptor;\n    try {\n      descriptor = ObjectGetOwnPropertyDescriptor(object\x2C key);\n    } catch { return; }\n    const getter = descriptor.get;\n    if (getter && key !== '__proto__') {\n      try {\n        descriptor.value = FunctionPrototypeCall(getter\x2C target);\n      } catch {}\n    }\n    if ('value' in descriptor && typeof descriptor.value !== 'function') {\n      delete descriptor.get;\n      delete descriptor.set;\n      all[key] = descriptor;\n    }\n  });\n  return all;\n}\n\nfunction GetConstructors(object) {\n  const constructors = [];\n\n  for (let current = object;\n    current !== null;\n    current = ObjectGetPrototypeOf(current)) {\n    const desc = ObjectGetOwnPropertyDescriptor(current\x2C 'constructor');\n    if (desc && desc.value) {\n      ObjectDefineProperty(constructors\x2C constructors.length\x2C {\n        value: desc.value\x2C enumerable: true\n      });\n    }\n  }\n\n  return constructors;\n}\n\nfunction GetName(object) {\n  const desc = ObjectGetOwnPropertyDescriptor(object\x2C 'name');\n  return desc && desc.value;\n}\n\nlet internalUtilInspect;\nfunction inspect(...args) {\n  if (!internalUtilInspect) {\n    internalUtilInspect = require('internal/util/inspect');\n  }\n  return internalUtilInspect.inspect(...args);\n}\n\nlet serialize;\nfunction serializeError(error) {\n  if (!serialize) serialize = require('v8').serialize;\n  try {\n    if (typeof error === 'object' &&\n        ObjectPrototypeToString(error) === '[object Error]') {\n      const constructors = GetConstructors(error);\n      for (let i = 0; i < constructors.length; i++) {\n        const name = GetName(constructors[i]);\n        if (errorConstructorNames.has(name)) {\n          const serialized = serialize({\n            constructor: name\x2C\n            properties: TryGetAllProperties(error)\n          });\n          return Buffer.concat([Buffer.from([kSerializedError])\x2C serialized]);\n        }\n      }\n    }\n  } catch {}\n  try {\n    const serialized = serialize(error);\n    return Buffer.concat([Buffer.from([kSerializedObject])\x2C serialized]);\n  } catch {}\n  return Buffer.concat([Buffer.from([kInspectedError])\x2C\n                        Buffer.from(inspect(error)\x2C 'utf8')]);\n}\n\nlet deserialize;\nfunction deserializeError(error) {\n  if (!deserialize) deserialize = require('v8').deserialize;\n  switch (error[0]) {\n    case kSerializedError:\n      const { constructor\x2C properties } = deserialize(error.subarray(1));\n      const ctor = errors[constructor];\n      ObjectDefineProperty(properties\x2C SymbolToStringTag\x2C {\n        value: { value: 'Error'\x2C configurable: true }\x2C\n        enumerable: true\n      });\n      return ObjectCreate(ctor.prototype\x2C properties);\n    case kSerializedObject:\n      return deserialize(error.subarray(1));\n    case kInspectedError:\n      const buf = Buffer.from(error.buffer\x2C\n                              error.byteOffset + 1\x2C\n                              error.byteLength - 1);\n      return buf.toString('utf8');\n  }\n  require('assert').fail('This should not happen');\n}\n\nmodule.exports = { serializeError\x2C deserializeError };\n
code-source-info,0x923ecc2fa8e,165,0,4030,C0O0C4O4030,,
code-creation,Function,10,242079,0x923ecc2febe,335, node:internal/error_serdes:1:1,0x923ecc2f9f8,~
code-source-info,0x923ecc2febe,165,0,4030,C0O0C100O30C106O30C111O47C115O30C117O66C123O91C128O100C133O113C139O138C145O154C151O170C157O194C163O228C169O257C175O281C180O295C186O322C191O336C196O354C201O365C207O386C212O401C217O414C222O467C223O467C225O496C227O496C229O523C231O523C233O542C240O546C246O553C252O564C258O576C264O586C270O599C276O615C282O542C284O658C287O670C294O658C299O658C301O2038C302O2038C304O2235C305O2235C307O3156C308O3156C310O3975C317O3994C323O4010C329O3990C334O4029,,
code-creation,Eval,10,242380,0x923ecc30d96,5, node:util/types:1:1,0x923ecc30c40,~
script-source,166,node:util/types,'use strict';\n\nmodule.exports = require('internal/util/types');\n
code-source-info,0x923ecc30d96,166,0,64,C0O0C4O64,,
code-creation,Function,10,242401,0x923ecc30e2e,13, node:util/types:1:1,0x923ecc30d00,~
code-source-info,0x923ecc30e2e,166,0,64,C0O15C3O32C7O30C12O63,,
code-creation,LazyCompile,10,242533,0x923ecc313c6,16,get node:events:101:6,0x30ec9dbb1cf8,~
code-source-info,0x923ecc313c6,13,2897,2950,C0O2906C3O2926C10O2936C12O2935C15O2946,,
code-creation,LazyCompile,10,242555,0x923ecc314be,5,get node:events:136:16,0x30ec9dbb1e38,~
code-source-info,0x923ecc314be,13,3826,3866,C0O3835C4O3862,,
tick,0x10ef8ce,242878,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,242893,0x923ecc320f6,5, node:tls:1:1,0x923ecc31d70,~
script-source,167,node:tls,// 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  ArrayPrototypeIncludes\x2C\n  ArrayPrototypeJoin\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeReduce\x2C\n  ArrayPrototypeSome\x2C\n  ObjectDefineProperty\x2C\n  ObjectFreeze\x2C\n  RegExpPrototypeTest\x2C\n  StringFromCharCode\x2C\n  StringPrototypeCharCodeAt\x2C\n  StringPrototypeEndsWith\x2C\n  StringPrototypeIncludes\x2C\n  StringPrototypeReplace\x2C\n  StringPrototypeSlice\x2C\n  StringPrototypeSplit\x2C\n  StringPrototypeStartsWith\x2C\n} = primordials;\n\nconst {\n  ERR_TLS_CERT_ALTNAME_INVALID\x2C\n  ERR_OUT_OF_RANGE\n} = require('internal/errors').codes;\nconst internalUtil = require('internal/util');\ninternalUtil.assertCrypto();\nconst { isArrayBufferView } = require('internal/util/types');\n\nconst net = require('net');\nconst { getOptionValue } = require('internal/options');\nconst { getRootCertificates\x2C getSSLCiphers } = internalBinding('crypto');\nconst { Buffer } = require('buffer');\nconst { URL } = require('internal/url');\nconst { canonicalizeIP } = internalBinding('cares_wrap');\nconst _tls_common = require('_tls_common');\nconst _tls_wrap = require('_tls_wrap');\nconst { createSecurePair } = require('internal/tls/secure-pair');\nconst { parseCertString } = require('internal/tls/parse-cert-string');\n\n// Allow {CLIENT_RENEG_LIMIT} client-initiated session renegotiations\n// every {CLIENT_RENEG_WINDOW} seconds. An error event is emitted if more\n// renegotiations are seen. The settings are applied to all remote client\n// connections.\nexports.CLIENT_RENEG_LIMIT = 3;\nexports.CLIENT_RENEG_WINDOW = 600;\n\nexports.DEFAULT_CIPHERS = getOptionValue('--tls-cipher-list');\n\nexports.DEFAULT_ECDH_CURVE = 'auto';\n\nif (getOptionValue('--tls-min-v1.0'))\n  exports.DEFAULT_MIN_VERSION = 'TLSv1';\nelse if (getOptionValue('--tls-min-v1.1'))\n  exports.DEFAULT_MIN_VERSION = 'TLSv1.1';\nelse if (getOptionValue('--tls-min-v1.2'))\n  exports.DEFAULT_MIN_VERSION = 'TLSv1.2';\nelse if (getOptionValue('--tls-min-v1.3'))\n  exports.DEFAULT_MIN_VERSION = 'TLSv1.3';\nelse\n  exports.DEFAULT_MIN_VERSION = 'TLSv1.2';\n\nif (getOptionValue('--tls-max-v1.3'))\n  exports.DEFAULT_MAX_VERSION = 'TLSv1.3';\nelse if (getOptionValue('--tls-max-v1.2'))\n  exports.DEFAULT_MAX_VERSION = 'TLSv1.2';\nelse\n  exports.DEFAULT_MAX_VERSION = 'TLSv1.3'; // Will depend on node version.\n\n\nexports.getCiphers = internalUtil.cachedResult(\n  () => internalUtil.filterDuplicateStrings(getSSLCiphers()\x2C true)\n);\n\nlet rootCertificates;\n\nfunction cacheRootCertificates() {\n  rootCertificates = ObjectFreeze(getRootCertificates());\n}\n\nObjectDefineProperty(exports\x2C 'rootCertificates'\x2C {\n  configurable: false\x2C\n  enumerable: true\x2C\n  get: () => {\n    // Out-of-line caching to promote inlining the getter.\n    if (!rootCertificates) cacheRootCertificates();\n    return rootCertificates;\n  }\x2C\n});\n\n// Convert protocols array into valid OpenSSL protocols list\n// ("\\x06spdy/2\\x08http/1.1\\x08http/1.0")\nfunction convertProtocols(protocols) {\n  const lens = new Array(protocols.length);\n  const buff = Buffer.allocUnsafe(ArrayPrototypeReduce(protocols\x2C (p\x2C c\x2C i) => {\n    const len = Buffer.byteLength(c);\n    if (len > 255) {\n      throw new ERR_OUT_OF_RANGE('The byte length of the protocol at index ' +\n        `${i} exceeds the maximum length.`\x2C '<= 255'\x2C len\x2C true);\n    }\n    lens[i] = len;\n    return p + 1 + len;\n  }\x2C 0));\n\n  let offset = 0;\n  for (let i = 0\x2C c = protocols.length; i < c; i++) {\n    buff[offset++] = lens[i];\n    buff.write(protocols[i]\x2C offset);\n    offset += lens[i];\n  }\n\n  return buff;\n}\n\nexports.convertALPNProtocols = function convertALPNProtocols(protocols\x2C out) {\n  // If protocols is Array - translate it into buffer\n  if (ArrayIsArray(protocols)) {\n    out.ALPNProtocols = convertProtocols(protocols);\n  } else if (isArrayBufferView(protocols)) {\n    // Copy new buffer not to be modified by user.\n    out.ALPNProtocols = Buffer.from(protocols);\n  }\n};\n\nfunction unfqdn(host) {\n  return StringPrototypeReplace(host\x2C /[.]$/\x2C '');\n}\n\n// String#toLowerCase() is locale-sensitive so we use\n// a conservative version that only lowercases A-Z.\nfunction toLowerCase(c) {\n  return StringFromCharCode(32 + StringPrototypeCharCodeAt(c\x2C 0));\n}\n\nfunction splitHost(host) {\n  return StringPrototypeSplit(\n    StringPrototypeReplace(unfqdn(host)\x2C /[A-Z]/g\x2C toLowerCase)\x2C\n    '.'\n  );\n}\n\nfunction check(hostParts\x2C pattern\x2C wildcards) {\n  // Empty strings\x2C null\x2C undefined\x2C etc. never match.\n  if (!pattern)\n    return false;\n\n  const patternParts = splitHost(pattern);\n\n  if (hostParts.length !== patternParts.length)\n    return false;\n\n  // Pattern has empty components\x2C e.g. "bad..example.com".\n  if (ArrayPrototypeIncludes(patternParts\x2C ''))\n    return false;\n\n  // RFC 6125 allows IDNA U-labels (Unicode) in names but we have no\n  // good way to detect their encoding or normalize them so we simply\n  // reject them.  Control characters and blanks are rejected as well\n  // because nothing good can come from accepting them.\n  const isBad = (s) => RegExpPrototypeTest(/[^\\u0021-\\u007F]/u\x2C s);\n  if (ArrayPrototypeSome(patternParts\x2C isBad))\n    return false;\n\n  // Check host parts from right to left first.\n  for (let i = hostParts.length - 1; i > 0; i -= 1) {\n    if (hostParts[i] !== patternParts[i])\n      return false;\n  }\n\n  const hostSubdomain = hostParts[0];\n  const patternSubdomain = patternParts[0];\n  const patternSubdomainParts = StringPrototypeSplit(patternSubdomain\x2C '*');\n\n  // Short-circuit when the subdomain does not contain a wildcard.\n  // RFC 6125 does not allow wildcard substitution for components\n  // containing IDNA A-labels (Punycode) so match those verbatim.\n  if (patternSubdomainParts.length === 1 ||\n      StringPrototypeIncludes(patternSubdomain\x2C 'xn--'))\n    return hostSubdomain === patternSubdomain;\n\n  if (!wildcards)\n    return false;\n\n  // More than one wildcard is always wrong.\n  if (patternSubdomainParts.length > 2)\n    return false;\n\n  // *.tld wildcards are not allowed.\n  if (patternParts.length <= 2)\n    return false;\n\n  const { 0: prefix\x2C 1: suffix } = patternSubdomainParts;\n\n  if (prefix.length + suffix.length > hostSubdomain.length)\n    return false;\n\n  if (!StringPrototypeStartsWith(hostSubdomain\x2C prefix))\n    return false;\n\n  if (!StringPrototypeEndsWith(hostSubdomain\x2C suffix))\n    return false;\n\n  return true;\n}\n\nexports.checkServerIdentity = function checkServerIdentity(hostname\x2C cert) {\n  const subject = cert.subject;\n  const altNames = cert.subjectaltname;\n  const dnsNames = [];\n  const uriNames = [];\n  const ips = [];\n\n  hostname = '' + hostname;\n\n  if (altNames) {\n    const splitAltNames = StringPrototypeSplit(altNames\x2C '\x2C ');\n    ArrayPrototypeForEach(splitAltNames\x2C (name) => {\n      if (StringPrototypeStartsWith(name\x2C 'DNS:')) {\n        ArrayPrototypePush(dnsNames\x2C StringPrototypeSlice(name\x2C 4));\n      } else if (StringPrototypeStartsWith(name\x2C 'URI:')) {\n        const uri = new URL(StringPrototypeSlice(name\x2C 4));\n\n        // TODO(bnoordhuis) Also use scheme.\n        ArrayPrototypePush(uriNames\x2C uri.hostname);\n      } else if (StringPrototypeStartsWith(name\x2C 'IP Address:')) {\n        ArrayPrototypePush(ips\x2C canonicalizeIP(StringPrototypeSlice(name\x2C 11)));\n      }\n    });\n  }\n\n  let valid = false;\n  let reason = 'Unknown reason';\n\n  const hasAltNames =\n    dnsNames.length > 0 || ips.length > 0 || uriNames.length > 0;\n\n  hostname = unfqdn(hostname);  // Remove trailing dot for error messages.\n\n  if (net.isIP(hostname)) {\n    valid = ArrayPrototypeIncludes(ips\x2C canonicalizeIP(hostname));\n    if (!valid)\n      reason = `IP: ${hostname} is not in the cert's list: ` +\n               ArrayPrototypeJoin(ips\x2C '\x2C ');\n    // TODO(bnoordhuis) Also check URI SANs that are IP addresses.\n  } else if (hasAltNames || subject) {\n    const hostParts = splitHost(hostname);\n    const wildcard = (pattern) => check(hostParts\x2C pattern\x2C true);\n\n    if (hasAltNames) {\n      const noWildcard = (pattern) => check(hostParts\x2C pattern\x2C false);\n      valid = ArrayPrototypeSome(dnsNames\x2C wildcard) ||\n              ArrayPrototypeSome(uriNames\x2C noWildcard);\n      if (!valid)\n        reason =\n          `Host: ${hostname}. is not in the cert's altnames: ${altNames}`;\n    } else {\n      // Match against Common Name only if no supported identifiers exist.\n      const cn = subject.CN;\n\n      if (ArrayIsArray(cn))\n        valid = ArrayPrototypeSome(cn\x2C wildcard);\n      else if (cn)\n        valid = wildcard(cn);\n\n      if (!valid)\n        reason = `Host: ${hostname}. is not cert's CN: ${cn}`;\n    }\n  } else {\n    reason = 'Cert is empty';\n  }\n\n  if (!valid) {\n    return new ERR_TLS_CERT_ALTNAME_INVALID(reason\x2C hostname\x2C cert);\n  }\n};\n\nexports.createSecureContext = _tls_common.createSecureContext;\nexports.SecureContext = _tls_common.SecureContext;\nexports.TLSSocket = _tls_wrap.TLSSocket;\nexports.Server = _tls_wrap.Server;\nexports.createServer = _tls_wrap.createServer;\nexports.connect = _tls_wrap.connect;\n\nexports.parseCertString = internalUtil.deprecate(\n  parseCertString\x2C\n  'tls.parseCertString() is deprecated. ' +\n  'Please use querystring.parse() instead.'\x2C\n  'DEP0076');\n\nexports.createSecurePair = internalUtil.deprecate(\n  createSecurePair\x2C\n  'tls.createSecurePair() is deprecated. Please use ' +\n  'tls.TLSSocket instead.'\x2C 'DEP0064');\n
code-source-info,0x923ecc320f6,167,0,10345,C0O0C4O10345,,
code-creation,Function,10,243344,0x923ecc3280e,751, node:tls:1:1,0x923ecc32060,~
code-source-info,0x923ecc3280e,167,0,10345,C0O0C128O1159C134O1168C140O1184C146O1209C152O1235C158O1257C164O1279C170O1303C176O1325C181O1349C187O1365C193O1388C199O1410C205O1439C211O1466C217O1493C223O1519C229O1543C235O1567C241O1675C244O1675C249O1701C254O1622C260O1654C266O1730C269O1730C273O1730C275O1756C278O1769C283O1769C287O1815C290O1815C295O1793C301O1860C304O1860C308O1860C310O1903C313O1903C318O1884C323O1979C326O1979C331O1940C337O1961C343O2025C346O2025C351O2014C357O2060C360O2060C365O2052C371O2112C374O2112C379O2093C385O2163C388O2163C393O2205C396O2205C401O2256C404O2256C409O2235C414O2321C417O2321C422O2301C427O2599C429O2626C433O2631C437O2659C441O2667C444O2693C448O2691C452O2731C454O2758C458O2769C461O2773C467O2809C469O2837C475O2853C478O2857C484O2893C486O2921C492O2939C495O2943C501O2979C503O3007C509O3025C512O3029C518O3065C520O3093C526O3113C528O3141C532O3155C535O3159C541O3195C543O3223C549O3241C552O3245C558O3281C560O3309C566O3329C568O3357C572O3404C575O3438C585O3438C590O3423C594O3527C595O3527C597O3642C600O3663C605O3744C616O3642C621O4619C625O4648C629O7397C633O7425C637O9772C641O9758C645O9829C649O9815C653O9874C657O9862C661O9912C665O9900C669O9953C673O9941C677O9995C681O9983C685O10005C688O10044C698O10116C708O10044C713O10029C717O10178C720O10218C730O10303C740O10218C745O10203C750O10344,,
code-creation,Eval,10,243684,0x923ecc35bd6,5, node:_tls_common:1:1,0x923ecc35960,~
script-source,168,node:_tls_common,// 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 tls = require('tls');\n\nconst {\n  ArrayPrototypePush\x2C\n  ObjectCreate\x2C\n  StringPrototypeReplace\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_TLS_INVALID_PROTOCOL_VERSION\x2C\n    ERR_TLS_PROTOCOL_VERSION_CONFLICT\x2C\n  }\x2C\n} = require('internal/errors');\n\nconst {\n  crypto: {\n    SSL_OP_CIPHER_SERVER_PREFERENCE\x2C\n    TLS1_VERSION\x2C\n    TLS1_1_VERSION\x2C\n    TLS1_2_VERSION\x2C\n    TLS1_3_VERSION\x2C\n  }\x2C\n} = internalBinding('constants');\n\nconst {\n  validateInteger\x2C\n} = require('internal/validators');\n\nconst {\n  configSecureContext\x2C\n} = require('internal/tls/secure-context');\n\nconst {\n  parseCertString\x2C\n} = require('internal/tls/parse-cert-string');\n\nfunction toV(which\x2C v\x2C def) {\n  if (v == null) v = def;\n  if (v === 'TLSv1') return TLS1_VERSION;\n  if (v === 'TLSv1.1') return TLS1_1_VERSION;\n  if (v === 'TLSv1.2') return TLS1_2_VERSION;\n  if (v === 'TLSv1.3') return TLS1_3_VERSION;\n  throw new ERR_TLS_INVALID_PROTOCOL_VERSION(v\x2C which);\n}\n\nconst {\n  SecureContext: NativeSecureContext\x2C\n} = internalBinding('crypto');\n\nfunction SecureContext(secureProtocol\x2C secureOptions\x2C minVersion\x2C maxVersion) {\n  if (!(this instanceof SecureContext)) {\n    return new SecureContext(secureProtocol\x2C secureOptions\x2C minVersion\x2C\n                             maxVersion);\n  }\n\n  if (secureProtocol) {\n    if (minVersion != null)\n      throw new ERR_TLS_PROTOCOL_VERSION_CONFLICT(minVersion\x2C secureProtocol);\n    if (maxVersion != null)\n      throw new ERR_TLS_PROTOCOL_VERSION_CONFLICT(maxVersion\x2C secureProtocol);\n  }\n\n  this.context = new NativeSecureContext();\n  this.context.init(secureProtocol\x2C\n                    toV('minimum'\x2C minVersion\x2C tls.DEFAULT_MIN_VERSION)\x2C\n                    toV('maximum'\x2C maxVersion\x2C tls.DEFAULT_MAX_VERSION));\n\n  if (secureOptions) {\n    validateInteger(secureOptions\x2C 'secureOptions');\n    this.context.setOptions(secureOptions);\n  }\n}\n\nfunction createSecureContext(options) {\n  if (!options) options = {};\n\n  const {\n    honorCipherOrder\x2C\n    minVersion\x2C\n    maxVersion\x2C\n    secureProtocol\x2C\n  } = options;\n\n  let { secureOptions } = options;\n\n  if (honorCipherOrder)\n    secureOptions |= SSL_OP_CIPHER_SERVER_PREFERENCE;\n\n  const c = new SecureContext(secureProtocol\x2C secureOptions\x2C\n                              minVersion\x2C maxVersion);\n\n  configSecureContext(c.context\x2C options);\n\n  return c;\n}\n\n// Translate some fields from the handle's C-friendly format into more idiomatic\n// javascript object representations before passing them back to the user.  Can\n// be used on any cert object\x2C but changing the name would be semver-major.\nfunction translatePeerCertificate(c) {\n  if (!c)\n    return null;\n\n  if (c.issuer != null) c.issuer = parseCertString(c.issuer);\n  if (c.issuerCertificate != null && c.issuerCertificate !== c) {\n    c.issuerCertificate = translatePeerCertificate(c.issuerCertificate);\n  }\n  if (c.subject != null) c.subject = parseCertString(c.subject);\n  if (c.infoAccess != null) {\n    const info = c.infoAccess;\n    c.infoAccess = ObjectCreate(null);\n\n    // XXX: More key validation?\n    StringPrototypeReplace(info\x2C /([^\\n:]*):([^\\n]*)(?:\\n|$)/g\x2C\n                           (all\x2C key\x2C val) => {\n                             if (key in c.infoAccess)\n                               ArrayPrototypePush(c.infoAccess[key]\x2C val);\n                             else\n                               c.infoAccess[key] = [val];\n                           });\n  }\n  return c;\n}\n\nmodule.exports = {\n  SecureContext\x2C\n  createSecureContext\x2C\n  translatePeerCertificate\x2C\n};\n
code-source-info,0x923ecc35bd6,168,0,4647,C0O0C4O4647,,
code-creation,Function,10,243896,0x923ecc35ede,255, node:_tls_common:1:1,0x923ecc35b40,~
code-source-info,0x923ecc35ede,168,0,4647,C0O0C73O1161C76O1161C80O1161C82O1188C88O1210C94O1226C100O1373C103O1373C108O1373C113O1291C119O1329C125O1546C128O1546C133O1546C138O1426C144O1463C150O1481C156O1501C162O1521C168O1608C171O1608C176O1587C182O1676C185O1676C190O1651C196O1748C199O1748C204O1727C210O2137C213O2137C218O2112C224O4557C231O4578C237O4595C243O4618C249O4572C254O4646,,
tick,0x1242940,243967,1,0xb515a0,6,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc32992,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,244197,0x923ecc36cbe,5, node:internal/tls/secure-context:1:1,0x923ecc369d8,~
script-source,169,node:internal/tls/secure-context,'use strict';\n\nconst {\n  ArrayIsArray\x2C\n  ArrayPrototypeFilter\x2C\n  ArrayPrototypeForEach\x2C\n  ArrayPrototypeJoin\x2C\n  StringPrototypeSplit\x2C\n  StringPrototypeStartsWith\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n  }\x2C\n} = require('internal/errors');\n\nconst {\n  isArrayBufferView\x2C\n} = require('internal/util/types');\n\nconst {\n  validateInt32\x2C\n  validateObject\x2C\n  validateString\x2C\n} = require('internal/validators');\n\nconst {\n  toBuf\x2C\n} = require('internal/crypto/util');\n\nconst {\n  crypto: {\n    TLS1_2_VERSION\x2C\n    TLS1_3_VERSION\x2C\n  }\x2C\n} = internalBinding('constants');\n\nfunction getDefaultEcdhCurve() {\n  // We do it this way because DEFAULT_ECDH_CURVE can be\n  // changed by users\x2C so we need to grab the current\n  // value\x2C but we want the evaluation to be lazy.\n  return require('tls').DEFAULT_ECDH_CURVE || 'auto';\n}\n\nfunction getDefaultCiphers() {\n  // We do it this way because DEFAULT_CIPHERS can be\n  // changed by users\x2C so we need to grab the current\n  // value\x2C but we want the evaluation to be lazy.\n  return require('tls').DEFAULT_CIPHERS;\n}\n\nfunction addCACerts(context\x2C certs\x2C name) {\n  ArrayPrototypeForEach(certs\x2C (cert) => {\n    validateKeyOrCertOption(name\x2C cert);\n    context.addCACert(cert);\n  });\n}\n\nfunction setCerts(context\x2C certs\x2C name) {\n  ArrayPrototypeForEach(certs\x2C (cert) => {\n    validateKeyOrCertOption(name\x2C cert);\n    context.setCert(cert);\n  });\n}\n\nfunction validateKeyOrCertOption(name\x2C value) {\n  if (typeof value !== 'string' && !isArrayBufferView(value)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      name\x2C\n      [\n        'string'\x2C\n        'Buffer'\x2C\n        'TypedArray'\x2C\n        'DataView'\x2C\n      ]\x2C\n      value\n    );\n  }\n}\n\nfunction setKey(context\x2C key\x2C passphrase\x2C name) {\n  validateKeyOrCertOption(`${name}.key`\x2C key);\n  if (passphrase != null)\n    validateString(passphrase\x2C `${name}.passphrase`);\n  context.setKey(key\x2C passphrase);\n}\n\nfunction processCiphers(ciphers\x2C name) {\n  ciphers = StringPrototypeSplit(ciphers || getDefaultCiphers()\x2C ':');\n\n  const cipherList =\n    ArrayPrototypeJoin(\n      ArrayPrototypeFilter(\n        ciphers\x2C\n        (cipher) => {\n          return cipher.length > 0 &&\n            !StringPrototypeStartsWith(cipher\x2C 'TLS_');\n        })\x2C ':');\n\n  const cipherSuites =\n    ArrayPrototypeJoin(\n      ArrayPrototypeFilter(\n        ciphers\x2C\n        (cipher) => {\n          return cipher.length > 0 &&\n            StringPrototypeStartsWith(cipher\x2C 'TLS_');\n        })\x2C ':');\n\n  // Specifying empty cipher suites for both TLS1.2 and TLS1.3 is invalid\x2C its\n  // not possible to handshake with no suites.\n  if (cipherSuites === '' && cipherList === '')\n    throw new ERR_INVALID_ARG_VALUE(name\x2C ciphers);\n\n  return { cipherList\x2C cipherSuites };\n}\n\nfunction configSecureContext(context\x2C options = {}\x2C name = 'options') {\n  validateObject(options\x2C name);\n\n  const {\n    ca\x2C\n    cert\x2C\n    ciphers = getDefaultCiphers()\x2C\n    clientCertEngine\x2C\n    crl\x2C\n    dhparam\x2C\n    ecdhCurve = getDefaultEcdhCurve()\x2C\n    key\x2C\n    passphrase\x2C\n    pfx\x2C\n    privateKeyIdentifier\x2C\n    privateKeyEngine\x2C\n    sessionIdContext\x2C\n    sessionTimeout\x2C\n    sigalgs\x2C\n    ticketKeys\x2C\n  } = options;\n\n  // Add CA before the cert to be able to load cert's issuer in C++ code.\n  // NOTE(@jasnell): ca\x2C cert\x2C and key are permitted to be falsy\x2C so do not\n  // change the checks to !== undefined checks.\n  if (ca) {\n    addCACerts(context\x2C ArrayIsArray(ca) ? ca : [ca]\x2C `${name}.ca`);\n  } else {\n    context.addRootCerts();\n  }\n\n  if (cert) {\n    setCerts(context\x2C ArrayIsArray(cert) ? cert : [cert]\x2C `${name}.cert`);\n  }\n\n  // Set the key after the cert.\n  // `ssl_set_pkey` returns `0` when the key does not match the cert\x2C but\n  // `ssl_set_cert` returns `1` and nullifies the key in the SSL structure\n  // which leads to the crash later on.\n  if (key) {\n    if (ArrayIsArray(key)) {\n      for (let i = 0; i < key.length; ++i) {\n        const val = key[i];\n        // eslint-disable-next-line eqeqeq\n        const pem = (val != undefined && val.pem !== undefined ? val.pem : val);\n        setKey(context\x2C pem\x2C val.passphrase || passphrase\x2C name);\n      }\n    } else {\n      setKey(context\x2C key\x2C passphrase\x2C name);\n    }\n  }\n\n  if (sigalgs !== undefined) {\n    validateString(sigalgs\x2C `${name}.sigalgs`);\n\n    if (sigalgs === '')\n      throw new ERR_INVALID_ARG_VALUE(`${name}.sigalgs`\x2C sigalgs);\n\n    context.setSigalgs(sigalgs);\n  }\n\n  if (privateKeyIdentifier !== undefined) {\n    if (privateKeyEngine === undefined) {\n      // Engine is required when privateKeyIdentifier is present\n      throw new ERR_INVALID_ARG_VALUE(`${name}.privateKeyEngine`\x2C\n                                      privateKeyEngine);\n    }\n    if (key) {\n      // Both data key and engine key can't be set at the same time\n      throw new ERR_INVALID_ARG_VALUE(`${name}.privateKeyIdentifier`\x2C\n                                      privateKeyIdentifier);\n    }\n\n    if (typeof privateKeyIdentifier === 'string' &&\n        typeof privateKeyEngine === 'string') {\n      if (context.setEngineKey)\n        context.setEngineKey(privateKeyIdentifier\x2C privateKeyEngine);\n      else\n        throw new ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED();\n    } else if (typeof privateKeyIdentifier !== 'string') {\n      throw new ERR_INVALID_ARG_TYPE(`${name}.privateKeyIdentifier`\x2C\n                                     ['string'\x2C 'undefined']\x2C\n                                     privateKeyIdentifier);\n    } else {\n      throw new ERR_INVALID_ARG_TYPE(`${name}.privateKeyEngine`\x2C\n                                     ['string'\x2C 'undefined']\x2C\n                                     privateKeyEngine);\n    }\n  }\n\n  if (ciphers != null)\n    validateString(ciphers\x2C `${name}.ciphers`);\n\n  // Work around an OpenSSL API quirk. cipherList is for TLSv1.2 and below\x2C\n  // cipherSuites is for TLSv1.3 (and presumably any later versions). TLSv1.3\n  // cipher suites all have a standard name format beginning with TLS_\x2C so split\n  // the ciphers and pass them to the appropriate API.\n  const {\n    cipherList\x2C\n    cipherSuites\x2C\n  } = processCiphers(ciphers\x2C `${name}.ciphers`);\n\n  context.setCipherSuites(cipherSuites);\n  context.setCiphers(cipherList);\n\n  if (cipherSuites === '' &&\n      context.getMaxProto() > TLS1_2_VERSION &&\n      context.getMinProto() < TLS1_3_VERSION) {\n    context.setMaxProto(TLS1_2_VERSION);\n  }\n\n  if (cipherList === '' &&\n      context.getMinProto() < TLS1_3_VERSION &&\n      context.getMaxProto() > TLS1_2_VERSION) {\n    context.setMinProto(TLS1_3_VERSION);\n  }\n\n  validateString(ecdhCurve\x2C `${name}.ecdhCurve`);\n  context.setECDHCurve(ecdhCurve);\n\n  if (dhparam !== undefined) {\n    validateKeyOrCertOption(`${name}.dhparam`\x2C dhparam);\n    const warning = context.setDHParam(dhparam);\n    if (warning)\n      process.emitWarning(warning\x2C 'SecurityWarning');\n  }\n\n  if (crl !== undefined) {\n    if (ArrayIsArray(crl)) {\n      for (const val of crl) {\n        validateKeyOrCertOption(`${name}.crl`\x2C val);\n        context.addCRL(val);\n      }\n    } else {\n      validateKeyOrCertOption(`${name}.crl`\x2C crl);\n      context.addCRL(crl);\n    }\n  }\n\n  if (sessionIdContext !== undefined) {\n    validateString(sessionIdContext\x2C `${name}.sessionIdContext`);\n    context.setSessionIdContext(sessionIdContext);\n  }\n\n  if (pfx !== undefined) {\n    if (ArrayIsArray(pfx)) {\n      ArrayPrototypeForEach(pfx\x2C (val) => {\n        const raw = val.buf ? val.buf : val;\n        const pass = val.passphrase || passphrase;\n        if (pass !== undefined) {\n          context.loadPKCS12(toBuf(raw)\x2C toBuf(pass));\n        } else {\n          context.loadPKCS12(toBuf(raw));\n        }\n      });\n    } else if (passphrase) {\n      context.loadPKCS12(toBuf(pfx)\x2C toBuf(passphrase));\n    } else {\n      context.loadPKCS12(toBuf(pfx));\n    }\n  }\n\n  if (typeof clientCertEngine === 'string') {\n    if (typeof context.setClientCertEngine !== 'function')\n      throw new ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED();\n    else\n      context.setClientCertEngine(clientCertEngine);\n  } else if (clientCertEngine !== undefined) {\n    throw new ERR_INVALID_ARG_TYPE(`${name}.clientCertEngine`\x2C\n                                   ['string'\x2C 'null'\x2C 'undefined']\x2C\n                                   clientCertEngine);\n  }\n\n  if (ticketKeys !== undefined) {\n    if (!isArrayBufferView(ticketKeys)) {\n      throw new ERR_INVALID_ARG_TYPE(\n        `${name}.ticketKeys`\x2C\n        ['Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n        ticketKeys);\n    }\n    if (ticketKeys.byteLength !== 48) {\n      throw new ERR_INVALID_ARG_VALUE(\n        `${name}.ticketKeys`\x2C\n        ticketKeys.byteLength\x2C\n        'must be exactly 48 bytes');\n    }\n    context.setTicketKeys(ticketKeys);\n  }\n\n  if (sessionTimeout !== undefined) {\n    validateInt32(sessionTimeout\x2C `${name}.sessionTimeout`);\n    context.setSessionTimeout(sessionTimeout);\n  }\n}\n\nmodule.exports = {\n  configSecureContext\x2C\n};\n
code-source-info,0x923ecc36cbe,169,0,8911,C0O0C4O8911,,
code-creation,Function,10,244575,0x923ecc37106,285, node:internal/tls/secure-context:1:1,0x923ecc36c28,~
code-source-info,0x923ecc37106,169,0,8911,C0O0C108O25C114O41C120O65C126O90C132O112C138O136C144O306C150O306C155O306C160O204C166O248C172O274C178O368C184O368C189O345C195O466C201O466C206O411C212O428C218O446C224O520C230O520C235O509C241O623C244O623C249O623C254O578C260O598C266O8866C273O8887C279O8881C284O8910,,
code-creation,Eval,10,244704,0x923ecc38096,5, node:internal/tls/parse-cert-string:1:1,0x923ecc37ed0,~
script-source,170,node:internal/tls/parse-cert-string,'use strict';\n\nconst {\n  ArrayIsArray\x2C\n  ArrayPrototypeForEach\x2C\n  ArrayPrototypePush\x2C\n  StringPrototypeIndexOf\x2C\n  StringPrototypeSlice\x2C\n  StringPrototypeSplit\x2C\n  ObjectCreate\x2C\n} = primordials;\n\n// Example:\n// C=US\\nST=CA\\nL=SF\\nO=Joyent\\nOU=Node.js\\nCN=ca1\\nemailAddress=ry@clouds.org\nfunction parseCertString(s) {\n  const out = ObjectCreate(null);\n  ArrayPrototypeForEach(StringPrototypeSplit(s\x2C '\\n')\x2C (part) => {\n    const sepIndex = StringPrototypeIndexOf(part\x2C '=');\n    if (sepIndex > 0) {\n      const key = StringPrototypeSlice(part\x2C 0\x2C sepIndex);\n      const value = StringPrototypeSlice(part\x2C sepIndex + 1);\n      if (key in out) {\n        if (!ArrayIsArray(out[key])) {\n          out[key] = [out[key]];\n        }\n        ArrayPrototypePush(out[key]\x2C value);\n      } else {\n        out[key] = value;\n      }\n    }\n  });\n  return out;\n}\n\nexports.parseCertString = parseCertString;\n
code-source-info,0x923ecc38096,170,0,889,C0O0C4O889,,
code-creation,Function,10,244756,0x923ecc381be,81, node:internal/tls/parse-cert-string:1:1,0x923ecc38000,~
code-source-info,0x923ecc381be,170,0,889,C0O0C31O25C37O41C43O66C49O88C55O114C61O138C67O162C73O846C75O870C80O888,,
tick,0xd1274d,245066,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc3299a,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,245744,0x923ecc39d3e,5, node:_tls_wrap:1:1,0x923ecc39598,~
script-source,171,node:_tls_wrap,// 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  ArrayPrototypeJoin\x2C\n  ArrayPrototypePush\x2C\n  FunctionPrototype\x2C\n  ObjectAssign\x2C\n  ObjectDefineProperty\x2C\n  ObjectSetPrototypeOf\x2C\n  ReflectApply\x2C\n  RegExp\x2C\n  RegExpPrototypeTest\x2C\n  StringPrototypeReplace\x2C\n  StringPrototypeSlice\x2C\n  Symbol\x2C\n  SymbolFor\x2C\n} = primordials;\n\nconst {\n  assertCrypto\x2C\n  deprecate\n} = require('internal/util');\n\nassertCrypto();\n\nconst { setImmediate } = require('timers');\nconst assert = require('internal/assert');\nconst crypto = require('crypto');\nconst EE = require('events');\nconst net = require('net');\nconst tls = require('tls');\nconst common = require('_tls_common');\nconst JSStreamSocket = require('internal/js_stream_socket');\nconst { Buffer } = require('buffer');\nlet debug = require('internal/util/debuglog').debuglog('tls'\x2C (fn) => {\n  debug = fn;\n});\nconst { TCP\x2C constants: TCPConstants } = internalBinding('tcp_wrap');\nconst tls_wrap = internalBinding('tls_wrap');\nconst { Pipe\x2C constants: PipeConstants } = internalBinding('pipe_wrap');\nconst { owner_symbol } = require('internal/async_hooks').symbols;\nconst { isArrayBufferView } = require('internal/util/types');\nconst { SecureContext: NativeSecureContext } = internalBinding('crypto');\nconst { connResetException\x2C codes } = require('internal/errors');\nconst {\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_INVALID_ARG_VALUE\x2C\n  ERR_MULTIPLE_CALLBACK\x2C\n  ERR_SOCKET_CLOSED\x2C\n  ERR_TLS_DH_PARAM_SIZE\x2C\n  ERR_TLS_HANDSHAKE_TIMEOUT\x2C\n  ERR_TLS_INVALID_CONTEXT\x2C\n  ERR_TLS_RENEGOTIATION_DISABLED\x2C\n  ERR_TLS_REQUIRED_SERVER_NAME\x2C\n  ERR_TLS_SESSION_ATTACK\x2C\n  ERR_TLS_SNI_FROM_SERVER\x2C\n  ERR_TLS_INVALID_STATE\n} = codes;\nconst { onpskexchange: kOnPskExchange } = internalBinding('symbols');\nconst {\n  getOptionValue\x2C\n  getAllowUnauthorized\x2C\n} = require('internal/options');\nconst {\n  validateBoolean\x2C\n  validateBuffer\x2C\n  validateCallback\x2C\n  validateFunction\x2C\n  validateInt32\x2C\n  validateNumber\x2C\n  validateObject\x2C\n  validateString\x2C\n  validateUint32\x2C\n} = require('internal/validators');\nconst {\n  InternalX509Certificate\n} = require('internal/crypto/x509');\nconst traceTls = getOptionValue('--trace-tls');\nconst tlsKeylog = getOptionValue('--tls-keylog');\nconst { appendFile } = require('fs');\nconst kConnectOptions = Symbol('connect-options');\nconst kDisableRenegotiation = Symbol('disable-renegotiation');\nconst kErrorEmitted = Symbol('error-emitted');\nconst kHandshakeTimeout = Symbol('handshake-timeout');\nconst kRes = Symbol('res');\nconst kSNICallback = Symbol('snicallback');\nconst kEnableTrace = Symbol('enableTrace');\nconst kPskCallback = Symbol('pskcallback');\nconst kPskIdentityHint = Symbol('pskidentityhint');\nconst kPendingSession = Symbol('pendingSession');\nconst kIsVerified = Symbol('verified');\n\nconst noop = FunctionPrototype;\n\nlet ipServernameWarned = false;\nlet tlsTracingWarned = false;\n\n// Server side times how long a handshake is taking to protect against slow\n// handshakes being used for DoS.\nfunction onhandshakestart(now) {\n  debug('server onhandshakestart');\n\n  const { lastHandshakeTime } = this;\n  assert(now >= lastHandshakeTime\x2C\n         `now (${now}) < lastHandshakeTime (${lastHandshakeTime})`);\n\n  this.lastHandshakeTime = now;\n\n  // If this is the first handshake we can skip the rest of the checks.\n  if (lastHandshakeTime === 0)\n    return;\n\n  if ((now - lastHandshakeTime) >= tls.CLIENT_RENEG_WINDOW * 1000)\n    this.handshakes = 1;\n  else\n    this.handshakes++;\n\n  const owner = this[owner_symbol];\n\n  assert(owner._tlsOptions.isServer);\n\n  if (this.handshakes > tls.CLIENT_RENEG_LIMIT) {\n    owner._emitTLSError(new ERR_TLS_SESSION_ATTACK());\n    return;\n  }\n\n  if (owner[kDisableRenegotiation])\n    owner._emitTLSError(new ERR_TLS_RENEGOTIATION_DISABLED());\n}\n\nfunction onhandshakedone() {\n  debug('server onhandshakedone');\n\n  const owner = this[owner_symbol];\n  assert(owner._tlsOptions.isServer);\n\n  // `newSession` callback wasn't called yet\n  if (owner._newSessionPending) {\n    owner._securePending = true;\n    return;\n  }\n\n  owner._finishInit();\n}\n\n\nfunction loadSession(hello) {\n  debug('server onclienthello'\x2C\n        'sessionid.len'\x2C hello.sessionId.length\x2C\n        'ticket?'\x2C hello.tlsTicket\n  );\n  const owner = this[owner_symbol];\n\n  let once = false;\n  function onSession(err\x2C session) {\n    debug('server resumeSession callback(err %j\x2C sess? %s)'\x2C err\x2C !!session);\n    if (once)\n      return owner.destroy(new ERR_MULTIPLE_CALLBACK());\n    once = true;\n\n    if (err)\n      return owner.destroy(err);\n\n    if (owner._handle === null)\n      return owner.destroy(new ERR_SOCKET_CLOSED());\n\n    owner._handle.loadSession(session);\n    // Session is loaded. End the parser to allow handshaking to continue.\n    owner._handle.endParser();\n  }\n\n  if (hello.sessionId.length <= 0 ||\n      hello.tlsTicket ||\n      (owner.server &&\n      !owner.server.emit('resumeSession'\x2C hello.sessionId\x2C onSession))) {\n    // Sessions without identifiers can't be resumed.\n    // Sessions with tickets can be resumed directly from the ticket\x2C no server\n    // session storage is necessary.\n    // Without a call to a resumeSession listener\x2C a session will never be\n    // loaded\x2C so end the parser to allow handshaking to continue.\n    owner._handle.endParser();\n  }\n}\n\n\nfunction loadSNI(info) {\n  const owner = this[owner_symbol];\n  const servername = info.servername;\n  if (!servername || !owner._SNICallback)\n    return requestOCSP(owner\x2C info);\n\n  let once = false;\n  owner._SNICallback(servername\x2C (err\x2C context) => {\n    if (once)\n      return owner.destroy(new ERR_MULTIPLE_CALLBACK());\n    once = true;\n\n    if (err)\n      return owner.destroy(err);\n\n    if (owner._handle === null)\n      return owner.destroy(new ERR_SOCKET_CLOSED());\n\n    // TODO(indutny): eventually disallow raw `SecureContext`\n    if (context)\n      owner._handle.sni_context = context.context || context;\n\n    requestOCSP(owner\x2C info);\n  });\n}\n\n\nfunction requestOCSP(socket\x2C info) {\n  if (!info.OCSPRequest || !socket.server)\n    return requestOCSPDone(socket);\n\n  let ctx = socket._handle.sni_context;\n\n  if (!ctx) {\n    ctx = socket.server._sharedCreds;\n\n    // TLS socket is using a `net.Server` instead of a tls.TLSServer.\n    // Some TLS properties like `server._sharedCreds` will not be present\n    if (!ctx)\n      return requestOCSPDone(socket);\n  }\n\n  // TODO(indutny): eventually disallow raw `SecureContext`\n  if (ctx.context)\n    ctx = ctx.context;\n\n  if (socket.server.listenerCount('OCSPRequest') === 0) {\n    return requestOCSPDone(socket);\n  }\n\n  let once = false;\n  const onOCSP = (err\x2C response) => {\n    debug('server OCSPRequest done'\x2C 'handle?'\x2C !!socket._handle\x2C 'once?'\x2C once\x2C\n          'response?'\x2C !!response\x2C 'err?'\x2C err);\n    if (once)\n      return socket.destroy(new ERR_MULTIPLE_CALLBACK());\n    once = true;\n\n    if (err)\n      return socket.destroy(err);\n\n    if (socket._handle === null)\n      return socket.destroy(new ERR_SOCKET_CLOSED());\n\n    if (response)\n      socket._handle.setOCSPResponse(response);\n    requestOCSPDone(socket);\n  };\n\n  debug('server oncertcb emit OCSPRequest');\n  socket.server.emit('OCSPRequest'\x2C\n                     ctx.getCertificate()\x2C\n                     ctx.getIssuer()\x2C\n                     onOCSP);\n}\n\nfunction requestOCSPDone(socket) {\n  debug('server certcb done');\n  try {\n    socket._handle.certCbDone();\n  } catch (e) {\n    debug('server certcb done errored'\x2C e);\n    socket.destroy(e);\n  }\n}\n\nfunction onnewsessionclient(sessionId\x2C session) {\n  debug('client emit session');\n  const owner = this[owner_symbol];\n  if (owner[kIsVerified]) {\n    owner.emit('session'\x2C session);\n  } else {\n    owner[kPendingSession] = session;\n  }\n}\n\nfunction onnewsession(sessionId\x2C session) {\n  debug('onnewsession');\n  const owner = this[owner_symbol];\n\n  // TODO(@sam-github) no server to emit the event on\x2C but handshake won't\n  // continue unless newSessionDone() is called\x2C should it be\x2C or is that\n  // situation unreachable\x2C or only occurring during shutdown?\n  if (!owner.server)\n    return;\n\n  let once = false;\n  const done = () => {\n    debug('onnewsession done');\n    if (once)\n      return;\n    once = true;\n\n    if (owner._handle === null)\n      return owner.destroy(new ERR_SOCKET_CLOSED());\n\n    this.newSessionDone();\n\n    owner._newSessionPending = false;\n    if (owner._securePending)\n      owner._finishInit();\n    owner._securePending = false;\n  };\n\n  owner._newSessionPending = true;\n  if (!owner.server.emit('newSession'\x2C sessionId\x2C session\x2C done))\n    done();\n}\n\nfunction onPskServerCallback(identity\x2C maxPskLen) {\n  const owner = this[owner_symbol];\n  const ret = owner[kPskCallback](owner\x2C identity);\n  if (ret == null)\n    return undefined;\n\n  let psk;\n  if (isArrayBufferView(ret)) {\n    psk = ret;\n  } else {\n    if (typeof ret !== 'object') {\n      throw new ERR_INVALID_ARG_TYPE(\n        'ret'\x2C\n        ['Object'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n        ret\n      );\n    }\n    psk = ret.psk;\n    validateBuffer(psk\x2C 'psk');\n  }\n\n  if (psk.length > maxPskLen) {\n    throw new ERR_INVALID_ARG_VALUE(\n      'psk'\x2C\n      psk\x2C\n      `Pre-shared key exceeds ${maxPskLen} bytes`\n    );\n  }\n\n  return psk;\n}\n\nfunction onPskClientCallback(hint\x2C maxPskLen\x2C maxIdentityLen) {\n  const owner = this[owner_symbol];\n  const ret = owner[kPskCallback](hint);\n  if (ret == null)\n    return undefined;\n\n  validateObject(ret\x2C 'ret');\n\n  validateBuffer(ret.psk\x2C 'psk');\n  if (ret.psk.length > maxPskLen) {\n    throw new ERR_INVALID_ARG_VALUE(\n      'psk'\x2C\n      ret.psk\x2C\n      `Pre-shared key exceeds ${maxPskLen} bytes`\n    );\n  }\n\n  validateString(ret.identity\x2C 'identity');\n  if (Buffer.byteLength(ret.identity) > maxIdentityLen) {\n    throw new ERR_INVALID_ARG_VALUE(\n      'identity'\x2C\n      ret.identity\x2C\n      `PSK identity exceeds ${maxIdentityLen} bytes`\n    );\n  }\n\n  return { psk: ret.psk\x2C identity: ret.identity };\n}\n\nfunction onkeylog(line) {\n  debug('onkeylog');\n  this[owner_symbol].emit('keylog'\x2C line);\n}\n\nfunction onocspresponse(resp) {\n  debug('client onocspresponse');\n  this[owner_symbol].emit('OCSPResponse'\x2C resp);\n}\n\nfunction onerror(err) {\n  const owner = this[owner_symbol];\n  debug('%s onerror %s had? %j'\x2C\n        owner._tlsOptions.isServer ? 'server' : 'client'\x2C err\x2C\n        owner._hadError);\n\n  if (owner._hadError)\n    return;\n\n  owner._hadError = true;\n\n  // Destroy socket if error happened before handshake's finish\n  if (!owner._secureEstablished) {\n    // When handshake fails control is not yet released\x2C\n    // so self._tlsError will return null instead of actual error\n    owner.destroy(err);\n  } else if (owner._tlsOptions.isServer &&\n             owner._rejectUnauthorized &&\n             RegExpPrototypeTest(/peer did not return a certificate/\x2C\n                                 err.message)) {\n    // Ignore server's authorization errors\n    owner.destroy();\n  } else {\n    // Emit error\n    owner._emitTLSError(err);\n  }\n}\n\n// Used by both client and server TLSSockets to start data flowing from _handle\x2C\n// read(0) causes a StreamBase::ReadStart\x2C via Socket._read.\nfunction initRead(tlsSocket\x2C socket) {\n  debug('%s initRead'\x2C\n        tlsSocket._tlsOptions.isServer ? 'server' : 'client'\x2C\n        'handle?'\x2C !!tlsSocket._handle\x2C\n        'buffered?'\x2C !!socket && socket.readableLength\n  );\n  // If we were destroyed already don't bother reading\n  if (!tlsSocket._handle)\n    return;\n\n  // Socket already has some buffered data - emulate receiving it\n  if (socket && socket.readableLength) {\n    let buf;\n    while ((buf = socket.read()) !== null)\n      tlsSocket._handle.receive(buf);\n  }\n\n  tlsSocket.read(0);\n}\n\n/**\n * Provides a wrap of socket stream to do encrypted communication.\n */\n\nfunction TLSSocket(socket\x2C opts) {\n  const tlsOptions = { ...opts };\n  let enableTrace = tlsOptions.enableTrace;\n\n  if (enableTrace == null) {\n    enableTrace = traceTls;\n\n    if (enableTrace && !tlsTracingWarned) {\n      tlsTracingWarned = true;\n      process.emitWarning('Enabling --trace-tls can expose sensitive data in ' +\n                          'the resulting log.');\n    }\n  } else {\n    validateBoolean(enableTrace\x2C 'options.enableTrace');\n  }\n\n  if (tlsOptions.ALPNProtocols)\n    tls.convertALPNProtocols(tlsOptions.ALPNProtocols\x2C tlsOptions);\n\n  this._tlsOptions = tlsOptions;\n  this._secureEstablished = false;\n  this._securePending = false;\n  this._newSessionPending = false;\n  this._controlReleased = false;\n  this.secureConnecting = true;\n  this._SNICallback = null;\n  this.servername = null;\n  this.alpnProtocol = null;\n  this.authorized = false;\n  this.authorizationError = null;\n  this[kRes] = null;\n  this[kIsVerified] = false;\n  this[kPendingSession] = null;\n\n  let wrap;\n  if ((socket instanceof net.Socket && socket._handle) || !socket) {\n    // 1. connected socket\n    // 2. no socket\x2C one will be created with net.Socket().connect\n    wrap = socket;\n  } else {\n    // 3. socket has no handle so it is js not c++\n    // 4. unconnected sockets are wrapped\n    // TLS expects to interact from C++ with a net.Socket that has a C++ stream\n    // handle\x2C but a JS stream doesn't have one. Wrap it up to make it look like\n    // a socket.\n    wrap = new JSStreamSocket(socket);\n  }\n\n  // Just a documented property to make secure sockets\n  // distinguishable from regular ones.\n  this.encrypted = true;\n\n  ReflectApply(net.Socket\x2C this\x2C [{\n    handle: this._wrapHandle(wrap)\x2C\n    allowHalfOpen: socket ? socket.allowHalfOpen : tlsOptions.allowHalfOpen\x2C\n    pauseOnCreate: tlsOptions.pauseOnConnect\x2C\n    manualStart: true\x2C\n    highWaterMark: tlsOptions.highWaterMark\x2C\n    onread: !socket ? tlsOptions.onread : null\x2C\n    signal: tlsOptions.signal\x2C\n  }]);\n\n  // Proxy for API compatibility\n  this.ssl = this._handle;  // C++ TLSWrap object\n\n  this.on('error'\x2C this._tlsError);\n\n  this._init(socket\x2C wrap);\n\n  if (enableTrace && this._handle)\n    this._handle.enableTrace();\n\n  // Read on next tick so the caller has a chance to setup listeners\n  process.nextTick(initRead\x2C this\x2C socket);\n}\nObjectSetPrototypeOf(TLSSocket.prototype\x2C net.Socket.prototype);\nObjectSetPrototypeOf(TLSSocket\x2C net.Socket);\nexports.TLSSocket = TLSSocket;\n\nconst proxiedMethods = [\n  'ref'\x2C 'unref'\x2C 'open'\x2C 'bind'\x2C 'listen'\x2C 'connect'\x2C 'bind6'\x2C\n  'connect6'\x2C 'getsockname'\x2C 'getpeername'\x2C 'setNoDelay'\x2C 'setKeepAlive'\x2C\n  'setSimultaneousAccepts'\x2C 'setBlocking'\x2C\n\n  // PipeWrap\n  'setPendingInstances'\x2C\n];\n\n// Proxy HandleWrap\x2C PipeWrap and TCPWrap methods\nfunction makeMethodProxy(name) {\n  return function methodProxy(...args) {\n    if (this._parent[name])\n      return ReflectApply(this._parent[name]\x2C this._parent\x2C args);\n  };\n}\nfor (const proxiedMethod of proxiedMethods) {\n  tls_wrap.TLSWrap.prototype[proxiedMethod] =\n    makeMethodProxy(proxiedMethod);\n}\n\ntls_wrap.TLSWrap.prototype.close = function close(cb) {\n  let ssl;\n  if (this[owner_symbol]) {\n    ssl = this[owner_symbol].ssl;\n    this[owner_symbol].ssl = null;\n  }\n\n  // Invoke `destroySSL` on close to clean up possibly pending write requests\n  // that may self-reference TLSWrap\x2C leading to leak\n  const done = () => {\n    if (ssl) {\n      ssl.destroySSL();\n      if (ssl._secureContext.singleUse) {\n        ssl._secureContext.context.close();\n        ssl._secureContext.context = null;\n      }\n    }\n    if (cb)\n      cb();\n  };\n\n  if (this._parentWrap && this._parentWrap._handle === this._parent) {\n    this._parentWrap.once('close'\x2C done);\n    return this._parentWrap.destroy();\n  }\n  return this._parent.close(done);\n};\n\nTLSSocket.prototype.disableRenegotiation = function disableRenegotiation() {\n  this[kDisableRenegotiation] = true;\n};\n\nTLSSocket.prototype._wrapHandle = function(wrap) {\n  let handle;\n\n  if (wrap)\n    handle = wrap._handle;\n\n  const options = this._tlsOptions;\n  if (!handle) {\n    handle = options.pipe ?\n      new Pipe(PipeConstants.SOCKET) :\n      new TCP(TCPConstants.SOCKET);\n    handle[owner_symbol] = this;\n  }\n\n  // Wrap socket's handle\n  const context = options.secureContext ||\n                  options.credentials ||\n                  tls.createSecureContext(options);\n  assert(handle.isStreamBase\x2C 'handle must be a StreamBase');\n  if (!(context.context instanceof NativeSecureContext)) {\n    throw new ERR_TLS_INVALID_CONTEXT('context');\n  }\n  const res = tls_wrap.wrap(handle\x2C context.context\x2C !!options.isServer);\n  res._parent = handle;  // C++ "wrap" object: TCPWrap\x2C JSStream\x2C ...\n  res._parentWrap = wrap;  // JS object: net.Socket\x2C JSStreamSocket\x2C ...\n  res._secureContext = context;\n  res.reading = handle.reading;\n  this[kRes] = res;\n  defineHandleReading(this\x2C handle);\n\n  this.on('close'\x2C onSocketCloseDestroySSL);\n\n  return res;\n};\n\n// This eliminates a cyclic reference to TLSWrap\n// Ref: https://github.com/nodejs/node/commit/f7620fb96d339f704932f9bb9a0dceb9952df2d4\nfunction defineHandleReading(socket\x2C handle) {\n  ObjectDefineProperty(handle\x2C 'reading'\x2C {\n    get: () => {\n      return socket[kRes].reading;\n    }\x2C\n    set: (value) => {\n      socket[kRes].reading = value;\n    }\n  });\n}\n\nfunction onSocketCloseDestroySSL() {\n  // Make sure we are not doing it on OpenSSL's stack\n  setImmediate(destroySSL\x2C this);\n  this[kRes] = null;\n}\n\nfunction destroySSL(self) {\n  self._destroySSL();\n}\n\nTLSSocket.prototype._destroySSL = function _destroySSL() {\n  if (!this.ssl) return;\n  this.ssl.destroySSL();\n  if (this.ssl._secureContext.singleUse) {\n    this.ssl._secureContext.context.close();\n    this.ssl._secureContext.context = null;\n  }\n  this.ssl = null;\n  this[kPendingSession] = null;\n  this[kIsVerified] = false;\n};\n\n// Constructor guts\x2C arbitrarily factored out.\nlet warnOnTlsKeylog = true;\nlet warnOnTlsKeylogError = true;\nTLSSocket.prototype._init = function(socket\x2C wrap) {\n  const options = this._tlsOptions;\n  const ssl = this._handle;\n  this.server = options.server;\n\n  debug('%s _init'\x2C\n        options.isServer ? 'server' : 'client'\x2C\n        'handle?'\x2C !!ssl\n  );\n\n  // Clients (!isServer) always request a cert\x2C servers request a client cert\n  // only on explicit configuration.\n  const requestCert = !!options.requestCert || !options.isServer;\n  const rejectUnauthorized = !!options.rejectUnauthorized;\n\n  this._requestCert = requestCert;\n  this._rejectUnauthorized = rejectUnauthorized;\n  if (requestCert || rejectUnauthorized)\n    ssl.setVerifyMode(requestCert\x2C rejectUnauthorized);\n\n  // Only call .onkeylog if there is a keylog listener.\n  ssl.onkeylog = onkeylog;\n  this.on('newListener'\x2C keylogNewListener);\n\n  function keylogNewListener(event) {\n    if (event !== 'keylog')\n      return;\n\n    // Guard against enableKeylogCallback after destroy\n    if (!this._handle) return;\n    this._handle.enableKeylogCallback();\n\n    // Remove this listener since it's no longer needed.\n    this.removeListener('newListener'\x2C keylogNewListener);\n  }\n\n  if (options.isServer) {\n    ssl.onhandshakestart = onhandshakestart;\n    ssl.onhandshakedone = onhandshakedone;\n    ssl.onclienthello = loadSession;\n    ssl.oncertcb = loadSNI;\n    ssl.onnewsession = onnewsession;\n    ssl.lastHandshakeTime = 0;\n    ssl.handshakes = 0;\n\n    if (this.server) {\n      if (this.server.listenerCount('resumeSession') > 0 ||\n          this.server.listenerCount('newSession') > 0) {\n        // Also starts the client hello parser as a side effect.\n        ssl.enableSessionCallbacks();\n      }\n      if (this.server.listenerCount('OCSPRequest') > 0)\n        ssl.enableCertCb();\n    }\n  } else {\n    ssl.onhandshakestart = noop;\n    ssl.onhandshakedone = () => {\n      debug('client onhandshakedone');\n      this._finishInit();\n    };\n    ssl.onocspresponse = onocspresponse;\n\n    if (options.session)\n      ssl.setSession(options.session);\n\n    ssl.onnewsession = onnewsessionclient;\n\n    // Only call .onnewsession if there is a session listener.\n    this.on('newListener'\x2C newListener);\n\n    function newListener(event) {\n      if (event !== 'session')\n        return;\n\n      // Guard against enableSessionCallbacks after destroy\n      if (!this._handle) return;\n      this._handle.enableSessionCallbacks();\n\n      // Remove this listener since it's no longer needed.\n      this.removeListener('newListener'\x2C newListener);\n    }\n  }\n\n  if (tlsKeylog) {\n    if (warnOnTlsKeylog) {\n      warnOnTlsKeylog = false;\n      process.emitWarning('Using --tls-keylog makes TLS connections insecure ' +\n        'by writing secret key material to file ' + tlsKeylog);\n    }\n    this.on('keylog'\x2C (line) => {\n      appendFile(tlsKeylog\x2C line\x2C { mode: 0o600 }\x2C (err) => {\n        if (err && warnOnTlsKeylogError) {\n          warnOnTlsKeylogError = false;\n          process.emitWarning('Failed to write TLS keylog (this warning ' +\n            'will not be repeated): ' + err);\n        }\n      });\n    });\n  }\n\n  ssl.onerror = onerror;\n\n  // If custom SNICallback was given\x2C or if\n  // there're SNI contexts to perform match against -\n  // set `.onsniselect` callback.\n  if (options.isServer &&\n      options.SNICallback &&\n      (options.SNICallback !== SNICallback ||\n       (options.server && options.server._contexts.length))) {\n    assert(typeof options.SNICallback === 'function');\n    this._SNICallback = options.SNICallback;\n    ssl.enableCertCb();\n  }\n\n  if (options.ALPNProtocols) {\n    // Keep reference in secureContext not to be GC-ed\n    ssl._secureContext.alpnBuffer = options.ALPNProtocols;\n    ssl.setALPNProtocols(ssl._secureContext.alpnBuffer);\n  }\n\n  if (options.pskCallback && ssl.enablePskCallback) {\n    validateFunction(options.pskCallback\x2C 'pskCallback');\n\n    ssl[kOnPskExchange] = options.isServer ?\n      onPskServerCallback : onPskClientCallback;\n\n    this[kPskCallback] = options.pskCallback;\n    ssl.enablePskCallback();\n\n    if (options.pskIdentityHint) {\n      validateString(options.pskIdentityHint\x2C 'options.pskIdentityHint');\n      ssl.setPskIdentityHint(options.pskIdentityHint);\n    }\n  }\n\n\n  if (options.handshakeTimeout > 0)\n    this.setTimeout(options.handshakeTimeout\x2C this._handleTimeout);\n\n  if (socket instanceof net.Socket) {\n    this._parent = socket;\n\n    // To prevent assertion in afterConnect() and properly kick off readStart\n    this.connecting = socket.connecting || !socket._handle;\n    socket.once('connect'\x2C () => {\n      this.connecting = false;\n      this.emit('connect');\n    });\n  }\n\n  // Assume `tls.connect()`\n  if (wrap) {\n    wrap.on('error'\x2C (err) => this._emitTLSError(err));\n  } else {\n    assert(!socket);\n    this.connecting = true;\n  }\n};\n\nTLSSocket.prototype.renegotiate = function(options\x2C callback) {\n  validateObject(options\x2C 'options');\n  if (callback !== undefined) {\n    validateCallback(callback);\n  }\n\n  debug('%s renegotiate()'\x2C\n        this._tlsOptions.isServer ? 'server' : 'client'\x2C\n        'destroyed?'\x2C this.destroyed\n  );\n\n  if (this.destroyed)\n    return;\n\n  let requestCert = !!this._requestCert;\n  let rejectUnauthorized = !!this._rejectUnauthorized;\n\n  if (options.requestCert !== undefined)\n    requestCert = !!options.requestCert;\n  if (options.rejectUnauthorized !== undefined)\n    rejectUnauthorized = !!options.rejectUnauthorized;\n\n  if (requestCert !== this._requestCert ||\n      rejectUnauthorized !== this._rejectUnauthorized) {\n    this._handle.setVerifyMode(requestCert\x2C rejectUnauthorized);\n    this._requestCert = requestCert;\n    this._rejectUnauthorized = rejectUnauthorized;\n  }\n  // Ensure that we'll cycle through internal openssl's state\n  this.write('');\n\n  try {\n    this._handle.renegotiate();\n  } catch (err) {\n    if (callback) {\n      process.nextTick(callback\x2C err);\n    }\n    return false;\n  }\n\n  // Ensure that we'll cycle through internal openssl's state\n  this.write('');\n\n  if (callback) {\n    this.once('secure'\x2C () => callback(null));\n  }\n\n  return true;\n};\n\nTLSSocket.prototype.exportKeyingMaterial = function(length\x2C label\x2C context) {\n  validateUint32(length\x2C 'length'\x2C true);\n  validateString(label\x2C 'label');\n  if (context !== undefined)\n    validateBuffer(context\x2C 'context');\n\n  if (!this._secureEstablished)\n    throw new ERR_TLS_INVALID_STATE();\n\n  return this._handle.exportKeyingMaterial(length\x2C label\x2C context);\n};\n\nTLSSocket.prototype.setMaxSendFragment = function setMaxSendFragment(size) {\n  validateInt32(size\x2C 'size');\n  return this._handle.setMaxSendFragment(size) === 1;\n};\n\nTLSSocket.prototype._handleTimeout = function() {\n  this._emitTLSError(new ERR_TLS_HANDSHAKE_TIMEOUT());\n};\n\nTLSSocket.prototype._emitTLSError = function(err) {\n  const e = this._tlsError(err);\n  if (e)\n    this.emit('error'\x2C e);\n};\n\nTLSSocket.prototype._tlsError = function(err) {\n  this.emit('_tlsError'\x2C err);\n  if (this._controlReleased)\n    return err;\n  return null;\n};\n\nTLSSocket.prototype._releaseControl = function() {\n  if (this._controlReleased)\n    return false;\n  this._controlReleased = true;\n  this.removeListener('error'\x2C this._tlsError);\n  return true;\n};\n\nTLSSocket.prototype._finishInit = function() {\n  // Guard against getting onhandshakedone() after .destroy().\n  // * 1.2: If destroy() during onocspresponse()\x2C then write of next handshake\n  // record fails\x2C the handshake done info callbacks does not occur\x2C and the\n  // socket closes.\n  // * 1.3: The OCSP response comes in the same record that finishes handshake\x2C\n  // so even after .destroy()\x2C the handshake done info callback occurs\n  // immediately after onocspresponse(). Ignore it.\n  if (!this._handle)\n    return;\n\n  this.alpnProtocol = this._handle.getALPNNegotiatedProtocol();\n  // The servername could be set by TLSWrap::SelectSNIContextCallback().\n  if (this.servername === null) {\n    this.servername = this._handle.getServername();\n  }\n\n  debug('%s _finishInit'\x2C\n        this._tlsOptions.isServer ? 'server' : 'client'\x2C\n        'handle?'\x2C !!this._handle\x2C\n        'alpn'\x2C this.alpnProtocol\x2C\n        'servername'\x2C this.servername);\n\n  this._secureEstablished = true;\n  if (this._tlsOptions.handshakeTimeout > 0)\n    this.setTimeout(0\x2C this._handleTimeout);\n  this.emit('secure');\n};\n\nTLSSocket.prototype._start = function() {\n  debug('%s _start'\x2C\n        this._tlsOptions.isServer ? 'server' : 'client'\x2C\n        'handle?'\x2C !!this._handle\x2C\n        'connecting?'\x2C this.connecting\x2C\n        'requestOCSP?'\x2C !!this._tlsOptions.requestOCSP\x2C\n  );\n  if (this.connecting) {\n    this.once('connect'\x2C this._start);\n    return;\n  }\n\n  // Socket was destroyed before the connection was established\n  if (!this._handle)\n    return;\n\n  if (this._tlsOptions.requestOCSP)\n    this._handle.requestOCSP();\n  this._handle.start();\n};\n\nTLSSocket.prototype.setServername = function(name) {\n  validateString(name\x2C 'name');\n\n  if (this._tlsOptions.isServer) {\n    throw new ERR_TLS_SNI_FROM_SERVER();\n  }\n\n  this._handle.setServername(name);\n};\n\nTLSSocket.prototype.setSession = function(session) {\n  if (typeof session === 'string')\n    session = Buffer.from(session\x2C 'latin1');\n  this._handle.setSession(session);\n};\n\nTLSSocket.prototype.getPeerCertificate = function(detailed) {\n  if (this._handle) {\n    return common.translatePeerCertificate(\n      this._handle.getPeerCertificate(detailed)) || {};\n  }\n\n  return null;\n};\n\nTLSSocket.prototype.getCertificate = function() {\n  if (this._handle) {\n    // It's not a peer cert\x2C but the formatting is identical.\n    return common.translatePeerCertificate(\n      this._handle.getCertificate()) || {};\n  }\n\n  return null;\n};\n\nTLSSocket.prototype.getPeerX509Certificate = function(detailed) {\n  const cert = this._handle?.getPeerX509Certificate();\n  return cert ? new InternalX509Certificate(cert) : undefined;\n};\n\nTLSSocket.prototype.getX509Certificate = function() {\n  const cert = this._handle?.getX509Certificate();\n  return cert ? new InternalX509Certificate(cert) : undefined;\n};\n\n// Proxy TLSSocket handle methods\nfunction makeSocketMethodProxy(name) {\n  return function socketMethodProxy(...args) {\n    if (this._handle)\n      return ReflectApply(this._handle[name]\x2C this._handle\x2C args);\n    return null;\n  };\n}\n\nArrayPrototypeForEach([\n  'getCipher'\x2C\n  'getSharedSigalgs'\x2C\n  'getEphemeralKeyInfo'\x2C\n  'getFinished'\x2C\n  'getPeerFinished'\x2C\n  'getProtocol'\x2C\n  'getSession'\x2C\n  'getTLSTicket'\x2C\n  'isSessionReused'\x2C\n  'enableTrace'\x2C\n]\x2C (method) => {\n  TLSSocket.prototype[method] = makeSocketMethodProxy(method);\n});\n\n// TODO: support anonymous (nocert)\n\n\nfunction onServerSocketSecure() {\n  if (this._requestCert) {\n    const verifyError = this._handle.verifyError();\n    if (verifyError) {\n      this.authorizationError = verifyError.code;\n\n      if (this._rejectUnauthorized)\n        this.destroy();\n    } else {\n      this.authorized = true;\n    }\n  }\n\n  if (!this.destroyed && this._releaseControl()) {\n    debug('server emit secureConnection');\n    this.secureConnecting = false;\n    this._tlsOptions.server.emit('secureConnection'\x2C this);\n  }\n}\n\nfunction onSocketTLSError(err) {\n  if (!this._controlReleased && !this[kErrorEmitted]) {\n    this[kErrorEmitted] = true;\n    debug('server emit tlsClientError:'\x2C err);\n    this._tlsOptions.server.emit('tlsClientError'\x2C err\x2C this);\n  }\n}\n\nfunction onSocketKeylog(line) {\n  this._tlsOptions.server.emit('keylog'\x2C line\x2C this);\n}\n\nfunction onSocketClose(err) {\n  // Closed because of error - no need to emit it twice\n  if (err)\n    return;\n\n  // Emit ECONNRESET\n  if (!this._controlReleased && !this[kErrorEmitted]) {\n    this[kErrorEmitted] = true;\n    const connReset = connResetException('socket hang up');\n    this._tlsOptions.server.emit('tlsClientError'\x2C connReset\x2C this);\n  }\n}\n\nfunction tlsConnectionListener(rawSocket) {\n  debug('net.Server.on(connection): new TLSSocket');\n  const socket = new TLSSocket(rawSocket\x2C {\n    secureContext: this._sharedCreds\x2C\n    isServer: true\x2C\n    server: this\x2C\n    requestCert: this.requestCert\x2C\n    rejectUnauthorized: this.rejectUnauthorized\x2C\n    handshakeTimeout: this[kHandshakeTimeout]\x2C\n    ALPNProtocols: this.ALPNProtocols\x2C\n    SNICallback: this[kSNICallback] || SNICallback\x2C\n    enableTrace: this[kEnableTrace]\x2C\n    pauseOnConnect: this.pauseOnConnect\x2C\n    pskCallback: this[kPskCallback]\x2C\n    pskIdentityHint: this[kPskIdentityHint]\x2C\n  });\n\n  socket.on('secure'\x2C onServerSocketSecure);\n\n  if (this.listenerCount('keylog') > 0)\n    socket.on('keylog'\x2C onSocketKeylog);\n\n  socket[kErrorEmitted] = false;\n  socket.on('close'\x2C onSocketClose);\n  socket.on('_tlsError'\x2C onSocketTLSError);\n}\n\n// AUTHENTICATION MODES\n//\n// There are several levels of authentication that TLS/SSL supports.\n// Read more about this in "man SSL_set_verify".\n//\n// 1. The server sends a certificate to the client but does not request a\n// cert from the client. This is common for most HTTPS servers. The browser\n// can verify the identity of the server\x2C but the server does not know who\n// the client is. Authenticating the client is usually done over HTTP using\n// login boxes and cookies and stuff.\n//\n// 2. The server sends a cert to the client and requests that the client\n// also send it a cert. The client knows who the server is and the server is\n// requesting the client also identify themselves. There are several\n// outcomes:\n//\n//   A) verifyError returns null meaning the client's certificate is signed\n//   by one of the server's CAs. The server now knows the client's identity\n//   and the client is authorized.\n//\n//   B) For some reason the client's certificate is not acceptable -\n//   verifyError returns a string indicating the problem. The server can\n//   either (i) reject the client or (ii) allow the client to connect as an\n//   unauthorized connection.\n//\n// The mode is controlled by two boolean variables.\n//\n// requestCert\n//   If true the server requests a certificate from client connections. For\n//   the common HTTPS case\x2C users will want this to be false\x2C which is what\n//   it defaults to.\n//\n// rejectUnauthorized\n//   If true clients whose certificates are invalid for any reason will not\n//   be allowed to make connections. If false\x2C they will simply be marked as\n//   unauthorized but secure communication will continue. By default this is\n//   true.\n//\n//\n//\n// Options:\n// - requestCert. Send verify request. Default to false.\n// - rejectUnauthorized. Boolean\x2C default to true.\n// - key. string.\n// - cert: string.\n// - clientCertEngine: string.\n// - ca: string or array of strings.\n// - sessionTimeout: integer.\n//\n// emit 'secureConnection'\n//   function (tlsSocket) { }\n//\n//   "UNABLE_TO_GET_ISSUER_CERT"\x2C "UNABLE_TO_GET_CRL"\x2C\n//   "UNABLE_TO_DECRYPT_CERT_SIGNATURE"\x2C "UNABLE_TO_DECRYPT_CRL_SIGNATURE"\x2C\n//   "UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY"\x2C "CERT_SIGNATURE_FAILURE"\x2C\n//   "CRL_SIGNATURE_FAILURE"\x2C "CERT_NOT_YET_VALID" "CERT_HAS_EXPIRED"\x2C\n//   "CRL_NOT_YET_VALID"\x2C "CRL_HAS_EXPIRED" "ERROR_IN_CERT_NOT_BEFORE_FIELD"\x2C\n//   "ERROR_IN_CERT_NOT_AFTER_FIELD"\x2C "ERROR_IN_CRL_LAST_UPDATE_FIELD"\x2C\n//   "ERROR_IN_CRL_NEXT_UPDATE_FIELD"\x2C "OUT_OF_MEM"\x2C\n//   "DEPTH_ZERO_SELF_SIGNED_CERT"\x2C "SELF_SIGNED_CERT_IN_CHAIN"\x2C\n//   "UNABLE_TO_GET_ISSUER_CERT_LOCALLY"\x2C "UNABLE_TO_VERIFY_LEAF_SIGNATURE"\x2C\n//   "CERT_CHAIN_TOO_LONG"\x2C "CERT_REVOKED" "INVALID_CA"\x2C\n//   "PATH_LENGTH_EXCEEDED"\x2C "INVALID_PURPOSE" "CERT_UNTRUSTED"\x2C\n//   "CERT_REJECTED"\n//\nfunction Server(options\x2C listener) {\n  if (!(this instanceof Server))\n    return new Server(options\x2C listener);\n\n  if (typeof options === 'function') {\n    listener = options;\n    options = {};\n  } else if (options == null || typeof options === 'object') {\n    options = options || {};\n  } else {\n    throw new ERR_INVALID_ARG_TYPE('options'\x2C 'Object'\x2C options);\n  }\n\n  this._contexts = [];\n  this.requestCert = options.requestCert === true;\n  this.rejectUnauthorized = options.rejectUnauthorized !== false;\n\n  if (options.sessionTimeout)\n    this.sessionTimeout = options.sessionTimeout;\n\n  if (options.ticketKeys)\n    this.ticketKeys = options.ticketKeys;\n\n  if (options.ALPNProtocols)\n    tls.convertALPNProtocols(options.ALPNProtocols\x2C this);\n\n  this.setSecureContext(options);\n\n  this[kHandshakeTimeout] = options.handshakeTimeout || (120 * 1000);\n  this[kSNICallback] = options.SNICallback;\n  this[kPskCallback] = options.pskCallback;\n  this[kPskIdentityHint] = options.pskIdentityHint;\n\n  validateNumber(this[kHandshakeTimeout]\x2C 'options.handshakeTimeout');\n\n  if (this[kSNICallback] && typeof this[kSNICallback] !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE(\n      'options.SNICallback'\x2C 'function'\x2C options.SNICallback);\n  }\n\n  if (this[kPskCallback] && typeof this[kPskCallback] !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE(\n      'options.pskCallback'\x2C 'function'\x2C options.pskCallback);\n  }\n  if (this[kPskIdentityHint] && typeof this[kPskIdentityHint] !== 'string') {\n    throw new ERR_INVALID_ARG_TYPE(\n      'options.pskIdentityHint'\x2C\n      'string'\x2C\n      options.pskIdentityHint\n    );\n  }\n\n  // constructor call\n  ReflectApply(net.Server\x2C this\x2C [options\x2C tlsConnectionListener]);\n\n  if (listener) {\n    this.on('secureConnection'\x2C listener);\n  }\n\n  this[kEnableTrace] = options.enableTrace;\n}\n\nObjectSetPrototypeOf(Server.prototype\x2C net.Server.prototype);\nObjectSetPrototypeOf(Server\x2C net.Server);\nexports.Server = Server;\nexports.createServer = function createServer(options\x2C listener) {\n  return new Server(options\x2C listener);\n};\n\n\nServer.prototype.setSecureContext = function(options) {\n  validateObject(options\x2C 'options');\n\n  if (options.pfx)\n    this.pfx = options.pfx;\n  else\n    this.pfx = undefined;\n\n  if (options.key)\n    this.key = options.key;\n  else\n    this.key = undefined;\n\n  if (options.passphrase)\n    this.passphrase = options.passphrase;\n  else\n    this.passphrase = undefined;\n\n  if (options.cert)\n    this.cert = options.cert;\n  else\n    this.cert = undefined;\n\n  if (options.clientCertEngine)\n    this.clientCertEngine = options.clientCertEngine;\n  else\n    this.clientCertEngine = undefined;\n\n  if (options.ca)\n    this.ca = options.ca;\n  else\n    this.ca = undefined;\n\n  if (options.minVersion)\n    this.minVersion = options.minVersion;\n  else\n    this.minVersion = undefined;\n\n  if (options.maxVersion)\n    this.maxVersion = options.maxVersion;\n  else\n    this.maxVersion = undefined;\n\n  if (options.secureProtocol)\n    this.secureProtocol = options.secureProtocol;\n  else\n    this.secureProtocol = undefined;\n\n  if (options.crl)\n    this.crl = options.crl;\n  else\n    this.crl = undefined;\n\n  this.sigalgs = options.sigalgs;\n\n  if (options.ciphers)\n    this.ciphers = options.ciphers;\n  else\n    this.ciphers = undefined;\n\n  this.ecdhCurve = options.ecdhCurve;\n\n  if (options.dhparam)\n    this.dhparam = options.dhparam;\n  else\n    this.dhparam = undefined;\n\n  if (options.honorCipherOrder !== undefined)\n    this.honorCipherOrder = !!options.honorCipherOrder;\n  else\n    this.honorCipherOrder = true;\n\n  const secureOptions = options.secureOptions || 0;\n\n  if (secureOptions)\n    this.secureOptions = secureOptions;\n  else\n    this.secureOptions = undefined;\n\n  if (options.sessionIdContext) {\n    this.sessionIdContext = options.sessionIdContext;\n  } else {\n    this.sessionIdContext = StringPrototypeSlice(\n      crypto.createHash('sha1')\n        .update(ArrayPrototypeJoin(process.argv\x2C ' '))\n        .digest('hex')\x2C 0\x2C 32);\n  }\n\n  if (options.sessionTimeout)\n    this.sessionTimeout = options.sessionTimeout;\n\n  if (options.ticketKeys)\n    this.ticketKeys = options.ticketKeys;\n\n  this.privateKeyIdentifier = options.privateKeyIdentifier;\n  this.privateKeyEngine = options.privateKeyEngine;\n\n  this._sharedCreds = tls.createSecureContext({\n    pfx: this.pfx\x2C\n    key: this.key\x2C\n    passphrase: this.passphrase\x2C\n    cert: this.cert\x2C\n    clientCertEngine: this.clientCertEngine\x2C\n    ca: this.ca\x2C\n    ciphers: this.ciphers\x2C\n    sigalgs: this.sigalgs\x2C\n    ecdhCurve: this.ecdhCurve\x2C\n    dhparam: this.dhparam\x2C\n    minVersion: this.minVersion\x2C\n    maxVersion: this.maxVersion\x2C\n    secureProtocol: this.secureProtocol\x2C\n    secureOptions: this.secureOptions\x2C\n    honorCipherOrder: this.honorCipherOrder\x2C\n    crl: this.crl\x2C\n    sessionIdContext: this.sessionIdContext\x2C\n    ticketKeys: this.ticketKeys\x2C\n    sessionTimeout: this.sessionTimeout\x2C\n    privateKeyIdentifier: this.privateKeyIdentifier\x2C\n    privateKeyEngine: this.privateKeyEngine\x2C\n  });\n};\n\n\nServer.prototype._getServerData = function() {\n  return {\n    ticketKeys: this.getTicketKeys().toString('hex')\n  };\n};\n\n\nServer.prototype._setServerData = function(data) {\n  this.setTicketKeys(Buffer.from(data.ticketKeys\x2C 'hex'));\n};\n\n\nServer.prototype.getTicketKeys = function getTicketKeys() {\n  return this._sharedCreds.context.getTicketKeys();\n};\n\n\nServer.prototype.setTicketKeys = function setTicketKeys(keys) {\n  validateBuffer(keys);\n  assert(keys.byteLength === 48\x2C\n         'Session ticket keys must be a 48-byte buffer');\n  this._sharedCreds.context.setTicketKeys(keys);\n};\n\n\nServer.prototype.setOptions = deprecate(function(options) {\n  this.requestCert = options.requestCert === true;\n  this.rejectUnauthorized = options.rejectUnauthorized !== false;\n\n  if (options.pfx) this.pfx = options.pfx;\n  if (options.key) this.key = options.key;\n  if (options.passphrase) this.passphrase = options.passphrase;\n  if (options.cert) this.cert = options.cert;\n  if (options.clientCertEngine)\n    this.clientCertEngine = options.clientCertEngine;\n  if (options.ca) this.ca = options.ca;\n  if (options.minVersion) this.minVersion = options.minVersion;\n  if (options.maxVersion) this.maxVersion = options.maxVersion;\n  if (options.secureProtocol) this.secureProtocol = options.secureProtocol;\n  if (options.crl) this.crl = options.crl;\n  if (options.ciphers) this.ciphers = options.ciphers;\n  if (options.ecdhCurve !== undefined)\n    this.ecdhCurve = options.ecdhCurve;\n  if (options.dhparam) this.dhparam = options.dhparam;\n  if (options.sessionTimeout) this.sessionTimeout = options.sessionTimeout;\n  if (options.ticketKeys) this.ticketKeys = options.ticketKeys;\n  const secureOptions = options.secureOptions || 0;\n  if (options.honorCipherOrder !== undefined)\n    this.honorCipherOrder = !!options.honorCipherOrder;\n  else\n    this.honorCipherOrder = true;\n  if (secureOptions) this.secureOptions = secureOptions;\n  if (options.ALPNProtocols)\n    tls.convertALPNProtocols(options.ALPNProtocols\x2C this);\n  if (options.sessionIdContext) {\n    this.sessionIdContext = options.sessionIdContext;\n  } else {\n    this.sessionIdContext = StringPrototypeSlice(\n      crypto.createHash('sha1')\n        .update(ArrayPrototypeJoin(process.argv\x2C ' '))\n        .digest('hex')\x2C 0\x2C 32);\n  }\n  if (options.pskCallback) this[kPskCallback] = options.pskCallback;\n  if (options.pskIdentityHint) this[kPskIdentityHint] = options.pskIdentityHint;\n  if (options.sigalgs) this.sigalgs = options.sigalgs;\n  if (options.privateKeyIdentifier !== undefined)\n    this.privateKeyIdentifier = options.privateKeyIdentifier;\n  if (options.privateKeyEngine !== undefined)\n    this.privateKeyEngine = options.privateKeyEngine;\n}\x2C 'Server.prototype.setOptions() is deprecated'\x2C 'DEP0122');\n\n// SNI Contexts High-Level API\nServer.prototype.addContext = function(servername\x2C context) {\n  if (!servername) {\n    throw new ERR_TLS_REQUIRED_SERVER_NAME();\n  }\n\n  const re = new RegExp('^' + StringPrototypeReplace(\n    StringPrototypeReplace(servername\x2C /([.^$+?\\-\\\\[\\]{}])/g\x2C '\\\\$1')\x2C\n    /\\*/g\x2C '[^.]*'\n  ) + '$');\n  ArrayPrototypePush(this._contexts\x2C\n                     [re\x2C tls.createSecureContext(context).context]);\n};\n\nServer.prototype[EE.captureRejectionSymbol] = function(\n  err\x2C event\x2C sock) {\n\n  switch (event) {\n    case 'secureConnection':\n      sock.destroy(err);\n      break;\n    default:\n      ReflectApply(net.Server.prototype[SymbolFor('nodejs.rejection')]\x2C this\x2C\n                   [err\x2C event\x2C sock]);\n  }\n};\n\nfunction SNICallback(servername\x2C callback) {\n  const contexts = this.server._contexts;\n\n  for (let i = contexts.length - 1; i >= 0; --i) {\n    const elem = contexts[i];\n    if (RegExpPrototypeTest(elem[0]\x2C servername)) {\n      callback(null\x2C elem[1]);\n      return;\n    }\n  }\n\n  callback(null\x2C undefined);\n}\n\n\n// Target API:\n//\n//  let s = tls.connect({port: 8000\x2C host: "google.com"}\x2C function() {\n//    if (!s.authorized) {\n//      s.destroy();\n//      return;\n//    }\n//\n//    // s.socket;\n//\n//    s.end("hello world\\n");\n//  });\n//\n//\nfunction normalizeConnectArgs(listArgs) {\n  const args = net._normalizeArgs(listArgs);\n  const options = args[0];\n  const cb = args[1];\n\n  // If args[0] was options\x2C then normalize dealt with it.\n  // If args[0] is port\x2C or args[0]\x2C args[1] is host\x2C port\x2C we need to\n  // find the options and merge them in\x2C normalize's options has only\n  // the host/port/path args that it knows about\x2C not the tls options.\n  // This means that options.host overrides a host arg.\n  if (listArgs[1] !== null && typeof listArgs[1] === 'object') {\n    ObjectAssign(options\x2C listArgs[1]);\n  } else if (listArgs[2] !== null && typeof listArgs[2] === 'object') {\n    ObjectAssign(options\x2C listArgs[2]);\n  }\n\n  return cb ? [options\x2C cb] : [options];\n}\n\nfunction onConnectSecure() {\n  const options = this[kConnectOptions];\n\n  // Check the size of DHE parameter above minimum requirement\n  // specified in options.\n  const ekeyinfo = this.getEphemeralKeyInfo();\n  if (ekeyinfo.type === 'DH' && ekeyinfo.size < options.minDHSize) {\n    const err = new ERR_TLS_DH_PARAM_SIZE(ekeyinfo.size);\n    debug('client emit:'\x2C err);\n    this.emit('error'\x2C err);\n    this.destroy();\n    return;\n  }\n\n  let verifyError = this._handle.verifyError();\n\n  // Verify that server's identity matches it's certificate's names\n  // Unless server has resumed our existing session\n  if (!verifyError && !this.isSessionReused()) {\n    const hostname = options.servername ||\n                   options.host ||\n                   (options.socket && options.socket._host) ||\n                   'localhost';\n    const cert = this.getPeerCertificate(true);\n    verifyError = options.checkServerIdentity(hostname\x2C cert);\n  }\n\n  if (verifyError) {\n    this.authorized = false;\n    this.authorizationError = verifyError.code || verifyError.message;\n\n    if (options.rejectUnauthorized) {\n      this.destroy(verifyError);\n      return;\n    }\n    debug('client emit secureConnect. rejectUnauthorized: %s\x2C ' +\n          'authorizationError: %s'\x2C options.rejectUnauthorized\x2C\n          this.authorizationError);\n    this.secureConnecting = false;\n    this.emit('secureConnect');\n  } else {\n    this.authorized = true;\n    debug('client emit secureConnect. authorized:'\x2C this.authorized);\n    this.secureConnecting = false;\n    this.emit('secureConnect');\n  }\n\n  this[kIsVerified] = true;\n  const session = this[kPendingSession];\n  this[kPendingSession] = null;\n  if (session)\n    this.emit('session'\x2C session);\n\n  this.removeListener('end'\x2C onConnectEnd);\n}\n\nfunction onConnectEnd() {\n  // NOTE: This logic is shared with _http_client.js\n  if (!this._hadError) {\n    const options = this[kConnectOptions];\n    this._hadError = true;\n    const error = connResetException('Client network socket disconnected ' +\n                                     'before secure TLS connection was ' +\n                                     'established');\n    error.path = options.path;\n    error.host = options.host;\n    error.port = options.port;\n    error.localAddress = options.localAddress;\n    this.destroy(error);\n  }\n}\n\n// Arguments: [port\x2C] [host\x2C] [options\x2C] [cb]\nexports.connect = function connect(...args) {\n  args = normalizeConnectArgs(args);\n  let options = args[0];\n  const cb = args[1];\n  const allowUnauthorized = getAllowUnauthorized();\n\n  options = {\n    rejectUnauthorized: !allowUnauthorized\x2C\n    ciphers: tls.DEFAULT_CIPHERS\x2C\n    checkServerIdentity: tls.checkServerIdentity\x2C\n    minDHSize: 1024\x2C\n    ...options\n  };\n\n  if (!options.keepAlive)\n    options.singleUse = true;\n\n  assert(typeof options.checkServerIdentity === 'function');\n  assert(typeof options.minDHSize === 'number'\x2C\n         'options.minDHSize is not a number: ' + options.minDHSize);\n  assert(options.minDHSize > 0\x2C\n         'options.minDHSize is not a positive number: ' +\n         options.minDHSize);\n\n  const context = options.secureContext || tls.createSecureContext(options);\n\n  const tlssock = new TLSSocket(options.socket\x2C {\n    allowHalfOpen: options.allowHalfOpen\x2C\n    pipe: !!options.path\x2C\n    secureContext: context\x2C\n    isServer: false\x2C\n    requestCert: true\x2C\n    rejectUnauthorized: options.rejectUnauthorized !== false\x2C\n    session: options.session\x2C\n    ALPNProtocols: options.ALPNProtocols\x2C\n    requestOCSP: options.requestOCSP\x2C\n    enableTrace: options.enableTrace\x2C\n    pskCallback: options.pskCallback\x2C\n    highWaterMark: options.highWaterMark\x2C\n    onread: options.onread\x2C\n    signal: options.signal\x2C\n  });\n\n  tlssock[kConnectOptions] = options;\n\n  if (cb)\n    tlssock.once('secureConnect'\x2C cb);\n\n  if (!options.socket) {\n    // If user provided the socket\x2C it's their responsibility to manage its\n    // connectivity. If we created one internally\x2C we connect it.\n    if (options.timeout) {\n      tlssock.setTimeout(options.timeout);\n    }\n\n    tlssock.connect(options\x2C tlssock._start);\n  }\n\n  tlssock._releaseControl();\n\n  if (options.session)\n    tlssock.setSession(options.session);\n\n  if (options.servername) {\n    if (!ipServernameWarned && net.isIP(options.servername)) {\n      process.emitWarning(\n        'Setting the TLS ServerName to an IP address is not permitted by ' +\n        'RFC 6066. This will be ignored in a future version.'\x2C\n        'DeprecationWarning'\x2C\n        'DEP0123'\n      );\n      ipServernameWarned = true;\n    }\n    tlssock.setServername(options.servername);\n  }\n\n  if (options.socket)\n    tlssock._start();\n\n  tlssock.on('secure'\x2C onConnectSecure);\n  tlssock.prependListener('end'\x2C onConnectEnd);\n\n  return tlssock;\n};\n
code-source-info,0x923ecc39d3e,171,0,48545,C0O0C4O48545,,
code-creation,Function,10,247761,0x923ecc3be4e,2023, node:_tls_wrap:1:1,0x923ecc39ca8,~
code-source-info,0x923ecc3be4e,171,0,48545,C0O0C401O1159C406O1184C412O1206C418O1228C423O1249C429O1265C435O1289C440O1313C446O1329C452O1339C458O1362C464O1388C470O1412C475O1422C481O1491C485O1491C490O1461C495O1477C500O1518C503O1560C507O1560C512O1543C518O1594C522O1594C526O1594C528O1637C532O1637C536O1637C538O1667C542O1667C547O1698C551O1698C555O1698C557O1726C561O1726C565O1726C567O1757C571O1757C575O1757C577O1804C581O1804C585O1804C587O1861C591O1861C596O1850C602O1892C606O1892C612O1925C627O1926C633O1892C635O2011C639O2011C644O1978C650O1994C656O2057C660O2057C664O2057C666O2129C670O2129C675O2094C681O2111C687O2184C691O2184C696O2215C701O2167C707O2255C711O2255C716O2233C722O2334C726O2334C731O2310C737O2399C741O2399C746O2369C752O2389C757O2437C763O2461C769O2486C775O2511C781O2532C787O2557C793O2586C799O2613C805O2647C811O2679C817O2705C823O2732C829O2807C833O2807C838O2788C844O2889C848O2889C853O2845C858O2863C864O3096C868O3096C873O2928C879O2947C885O2965C891O2985C897O3005C903O3022C909O3040C915O3058C921O3076C927O3166C931O3166C936O3138C942O3216C946O3216C950O3216C952O3265C956O3265C960O3265C962O3320C966O3320C971O3305C977O3359C981O3359C985O3359C987O3416C991O3416C995O3416C997O3471C1001O3471C1005O3471C1007O3522C1011O3522C1015O3522C1017O3564C1021O3564C1025O3564C1027O3600C1031O3600C1035O3600C1037O3644C1041O3644C1045O3644C1047O3688C1051O3688C1055O3688C1057O3736C1061O3736C1065O3736C1067O3787C1071O3787C1075O3787C1077O3833C1081O3833C1085O3833C1087O3867C1089O3867C1091O3912C1092O3912C1094O3942C1095O3942C1097O15068C1101O15099C1111O15114C1117O15121C1123O15068C1128O15133C1136O15169C1142O15133C1147O15178C1149O15196C1153O15233C1158O15714C1185O15697C1216O15697C1219O15734C1223O15743C1229O15751C1235O15782C1239O15776C1246O15686C1317O15817C1320O15826C1325O15834C1334O15850C1338O16548C1341O16558C1350O16589C1354O16667C1357O16677C1366O16699C1370O18268C1373O18278C1382O18300C1386O18666C1387O18666C1389O18699C1390O18699C1392O18705C1395O18715C1404O18731C1408O23464C1411O23474C1420O23496C1424O24735C1427O24745C1436O24776C1440O25103C1443O25113C1452O25142C1456O25269C1459O25279C1468O25304C1472O25378C1475O25388C1484O25412C1488O25503C1491O25513C1500O25533C1504O25646C1507O25656C1516O25682C1520O25843C1523O25853C1532O25875C1536O26939C1539O26949C1548O26966C1552O27470C1555O27480C1564O27504C1568O27677C1571O27687C1580O27708C1584O27851C1587O27861C1596O27890C1604O28059C1607O28069C1616O28094C1624O28305C1627O28315C1636O28348C1644O28493C1647O28503C1656O28532C1664O28899C1679O28899C1689O35855C1693O35883C1707O35898C1717O35905C1727O35855C1737O35917C1745O35950C1755O35917C1765O35959C1767O35974C1775O35984C1779O36005C1787O36095C1790O36102C1803O36129C1811O39038C1814O39045C1827O39070C1835O39159C1838O39166C1851O39191C1859O39274C1862O39281C1875O39305C1883O39391C1886O39398C1899O39422C1907O39624C1910O39631C1919O39654C1933O39654C1943O39652C1951O41823C1954O41830C1967O41851C1975O42224C1978O42231C1987O42244C2001O42268C2009O46161C2013O46177C2022O48544,,
tick,0x7efc33635473,247840,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc3299a,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
tick,0xfb32c4,247855,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc3299a,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
new,MemoryChunk,0x274d30f40000,262144
tick,0x110cb8d,248297,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc3c093,0x13b40bab9d2d,0x13b40bab8ffd,0x923ecc3299a,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,248305,0x1fe027d3f986,5, node:internal/js_stream_socket:1:1,0x1fe027d3f708,~
script-source,172,node:internal/js_stream_socket,'use strict';\n\nconst {\n  Symbol\x2C\n} = primordials;\n\nconst { setImmediate } = require('timers');\nconst assert = require('internal/assert');\nconst { Socket } = require('net');\nconst { JSStream } = internalBinding('js_stream');\nconst uv = internalBinding('uv');\nlet debug = require('internal/util/debuglog').debuglog(\n  'stream_socket'\x2C\n  (fn) => {\n    debug = fn;\n  }\n);\nconst { owner_symbol } = require('internal/async_hooks').symbols;\nconst { ERR_STREAM_WRAP } = require('internal/errors').codes;\n\nconst kCurrentWriteRequest = Symbol('kCurrentWriteRequest');\nconst kCurrentShutdownRequest = Symbol('kCurrentShutdownRequest');\nconst kPendingShutdownRequest = Symbol('kPendingShutdownRequest');\n\nfunction isClosing() { return this[owner_symbol].isClosing(); }\n\nfunction onreadstart() { return this[owner_symbol].readStart(); }\n\nfunction onreadstop() { return this[owner_symbol].readStop(); }\n\nfunction onshutdown(req) { return this[owner_symbol].doShutdown(req); }\n\nfunction onwrite(req\x2C bufs) { return this[owner_symbol].doWrite(req\x2C bufs); }\n\n/* This class serves as a wrapper for when the C++ side of Node wants access\n * to a standard JS stream. For example\x2C TLS or HTTP do not operate on network\n * resources conceptually\x2C although that is the common case and what we are\n * optimizing for; in theory\x2C they are completely composable and can work with\n * any stream resource they see.\n *\n * For the common case\x2C i.e. a TLS socket wrapping around a net.Socket\x2C we\n * can skip going through the JS layer and let TLS access the raw C++ handle\n * of a net.Socket. The flipside of this is that\x2C to maintain composability\x2C\n * we need a way to create "fake" net.Socket instances that call back into a\n * "real" JavaScript stream. JSStreamSocket is exactly this.\n */\nclass JSStreamSocket extends Socket {\n  constructor(stream) {\n    const handle = new JSStream();\n    handle.close = (cb) => {\n      debug('close');\n      this.doClose(cb);\n    };\n    // Inside of the following functions\x2C `this` refers to the handle\n    // and `this[owner_symbol]` refers to this JSStreamSocket instance.\n    handle.isClosing = isClosing;\n    handle.onreadstart = onreadstart;\n    handle.onreadstop = onreadstop;\n    handle.onshutdown = onshutdown;\n    handle.onwrite = onwrite;\n\n    stream.pause();\n    stream.on('error'\x2C (err) => this.emit('error'\x2C err));\n    const ondata = (chunk) => {\n      if (typeof chunk === 'string' ||\n          stream.readableObjectMode === true) {\n        // Make sure that no further `data` events will happen.\n        stream.pause();\n        stream.removeListener('data'\x2C ondata);\n\n        this.emit('error'\x2C new ERR_STREAM_WRAP());\n        return;\n      }\n\n      debug('data'\x2C chunk.length);\n      if (this._handle)\n        this._handle.readBuffer(chunk);\n    };\n    stream.on('data'\x2C ondata);\n    stream.once('end'\x2C () => {\n      debug('end');\n      if (this._handle)\n        this._handle.emitEOF();\n    });\n    // Some `Stream` don't pass `hasError` parameters when closed.\n    stream.once('close'\x2C () => {\n      // Errors emitted from `stream` have also been emitted to this instance\n      // so that we don't pass errors to `destroy()` again.\n      this.destroy();\n    });\n\n    super({ handle\x2C manualStart: true });\n    this.stream = stream;\n    this[kCurrentWriteRequest] = null;\n    this[kCurrentShutdownRequest] = null;\n    this[kPendingShutdownRequest] = null;\n    this.readable = stream.readable;\n    this.writable = stream.writable;\n\n    // Start reading.\n    this.read(0);\n  }\n\n  // Allow legacy requires in the test suite to keep working:\n  //   const { StreamWrap } = require('internal/js_stream_socket')\n  static get StreamWrap() {\n    return JSStreamSocket;\n  }\n\n  isClosing() {\n    return !this.readable || !this.writable;\n  }\n\n  readStart() {\n    this.stream.resume();\n    return 0;\n  }\n\n  readStop() {\n    this.stream.pause();\n    return 0;\n  }\n\n  doShutdown(req) {\n    // TODO(addaleax): It might be nice if we could get into a state where\n    // DoShutdown() is not called on streams while a write is still pending.\n    //\n    // Currently\x2C the only part of the code base where that happens is the\n    // TLS implementation\x2C which calls both DoWrite() and DoShutdown() on the\n    // underlying network stream inside of its own DoShutdown() method.\n    // Working around that on the native side is not quite trivial (yet?)\x2C\n    // so for now that is supported here.\n\n    if (this[kCurrentWriteRequest] !== null) {\n      this[kPendingShutdownRequest] = req;\n      return 0;\n    }\n    assert(this[kCurrentWriteRequest] === null);\n    assert(this[kCurrentShutdownRequest] === null);\n    this[kCurrentShutdownRequest] = req;\n\n    const handle = this._handle;\n\n    setImmediate(() => {\n      // Ensure that write is dispatched asynchronously.\n      this.stream.end(() => {\n        this.finishShutdown(handle\x2C 0);\n      });\n    });\n    return 0;\n  }\n\n  // handle === this._handle except when called from doClose().\n  finishShutdown(handle\x2C errCode) {\n    // The shutdown request might already have been cancelled.\n    if (this[kCurrentShutdownRequest] === null)\n      return;\n    const req = this[kCurrentShutdownRequest];\n    this[kCurrentShutdownRequest] = null;\n    handle.finishShutdown(req\x2C errCode);\n  }\n\n  doWrite(req\x2C bufs) {\n    assert(this[kCurrentWriteRequest] === null);\n    assert(this[kCurrentShutdownRequest] === null);\n\n    const handle = this._handle;\n    const self = this;\n\n    let pending = bufs.length;\n\n    this.stream.cork();\n    // Use `var` over `let` for performance optimization.\n    for (var i = 0; i < bufs.length; ++i)\n      this.stream.write(bufs[i]\x2C done);\n    this.stream.uncork();\n\n    // Only set the request here\x2C because the `write()` calls could throw.\n    this[kCurrentWriteRequest] = req;\n\n    function done(err) {\n      if (!err && --pending !== 0)\n        return;\n\n      // Ensure that this is called once in case of error\n      pending = 0;\n\n      let errCode = 0;\n      if (err) {\n        errCode = uv[`UV_${err.code}`] || uv.UV_EPIPE;\n      }\n\n      // Ensure that write was dispatched\n      setImmediate(() => {\n        self.finishWrite(handle\x2C errCode);\n      });\n    }\n\n    return 0;\n  }\n\n  // handle === this._handle except when called from doClose().\n  finishWrite(handle\x2C errCode) {\n    // The write request might already have been cancelled.\n    if (this[kCurrentWriteRequest] === null)\n      return;\n    const req = this[kCurrentWriteRequest];\n    this[kCurrentWriteRequest] = null;\n\n    handle.finishWrite(req\x2C errCode);\n    if (this[kPendingShutdownRequest]) {\n      const req = this[kPendingShutdownRequest];\n      this[kPendingShutdownRequest] = null;\n      this.doShutdown(req);\n    }\n  }\n\n  doClose(cb) {\n    const handle = this._handle;\n\n    // When sockets of the "net" module destroyed\x2C they will call\n    // `this._handle.close()` which will also emit EOF if not emitted before.\n    // This feature makes sockets on the other side emit "end" and "close"\n    // even though we haven't called `end()`. As `stream` are likely to be\n    // instances of `net.Socket`\x2C calling `stream.destroy()` manually will\n    // avoid issues that don't properly close wrapped connections.\n    this.stream.destroy();\n\n    setImmediate(() => {\n      // Should be already set by net.js\n      assert(this._handle === null);\n\n      this.finishWrite(handle\x2C uv.UV_ECANCELED);\n      this.finishShutdown(handle\x2C uv.UV_ECANCELED);\n\n      cb();\n    });\n  }\n}\n\nmodule.exports = JSStreamSocket;\n
code-source-info,0x1fe027d3f986,172,0,7449,C0O0C4O7449,,
code-creation,Function,10,248623,0x274d30f412a6,312, node:internal/js_stream_socket:1:1,0x1fe027d3f8f0,~
code-source-info,0x274d30f412a6,172,0,7449,C0O0C65O25C70O76C73O76C78O59C84O110C87O110C91O110C93O157C96O157C101O146C106O194C109O194C114O181C120O235C123O235C127O235C129O270C132O270C137O303C150O304C156O270C158O393C161O393C166O424C171O376C177O462C180O462C185O488C190O442C196O526C199O526C203O526C205O590C208O590C212O590C214O657C217O657C221O657C230O1789C304O7416C306O7431C311O7448,,
code-creation,LazyCompile,10,249062,0x274d30f46cce,14,makeMethodProxy node:_tls_wrap:551:25,0x923ecc3a248,~
code-source-info,0x274d30f46cce,171,15534,15685,C0O15534C9O15545C13O15683,,
code-creation,LazyCompile,10,249120,0x274d30f4a776,21, node:_tls_wrap:1033:4,0x923ecc3b200,~
code-source-info,0x274d30f4a776,171,29115,29193,C0O29131C3O29141C11O29161C15O29159C20O29192,,
code-creation,LazyCompile,10,249141,0x274d30f4a8de,14,makeSocketMethodProxy node:_tls_wrap:1014:31,0x923ecc3a3b0,~
code-source-info,0x274d30f4a8de,171,28729,28897,C0O28729C9O28740C13O28895,,
code-creation,Eval,10,249333,0x274d30f4b196,5, node:internal/tls/secure-pair:1:1,0x274d30f4afb0,~
script-source,173,node:internal/tls/secure-pair,'use strict';\n\nconst EventEmitter = require('events');\nconst { Duplex } = require('stream');\nconst _tls_wrap = require('_tls_wrap');\nconst _tls_common = require('_tls_common');\n\nconst {\n  Symbol\x2C\n  ReflectConstruct\x2C\n} = primordials;\n\nconst kCallback = Symbol('Callback');\nconst kOtherSide = Symbol('Other');\n\nclass DuplexSocket extends Duplex {\n  constructor() {\n    super();\n    this[kCallback] = null;\n    this[kOtherSide] = null;\n  }\n\n  _read() {\n    const callback = this[kCallback];\n    if (callback) {\n      this[kCallback] = null;\n      callback();\n    }\n  }\n\n  _write(chunk\x2C encoding\x2C callback) {\n    if (chunk.length === 0) {\n      process.nextTick(callback);\n    } else {\n      this[kOtherSide].push(chunk);\n      this[kOtherSide][kCallback] = callback;\n    }\n  }\n\n  _final(callback) {\n    this[kOtherSide].on('end'\x2C callback);\n    this[kOtherSide].push(null);\n  }\n}\n\nclass DuplexPair {\n  constructor() {\n    this.socket1 = new DuplexSocket();\n    this.socket2 = new DuplexSocket();\n    this.socket1[kOtherSide] = this.socket2;\n    this.socket2[kOtherSide] = this.socket1;\n  }\n}\n\nclass SecurePair extends EventEmitter {\n  constructor(secureContext = _tls_common.createSecureContext()\x2C\n              isServer = false\x2C\n              requestCert = !isServer\x2C\n              rejectUnauthorized = false\x2C\n              options = {}) {\n    super();\n    const { socket1\x2C socket2 } = new DuplexPair();\n\n    this.server = options.server;\n    this.credentials = secureContext;\n\n    this.encrypted = socket1;\n    this.cleartext = new _tls_wrap.TLSSocket(socket2\x2C {\n      secureContext\x2C\n      isServer\x2C\n      requestCert\x2C\n      rejectUnauthorized\x2C\n      ...options\n    });\n    this.cleartext.once('secure'\x2C () => this.emit('secure'));\n  }\n\n  destroy() {\n    this.cleartext.destroy();\n    this.encrypted.destroy();\n  }\n}\n\nexports.createSecurePair = function createSecurePair(...args) {\n  return ReflectConstruct(SecurePair\x2C args);\n};\n
code-source-info,0x274d30f4b196,173,0,1929,C0O0C4O1929,,
code-creation,Function,10,249458,0x274d30f4b956,202, node:internal/tls/secure-pair:1:1,0x274d30f4b100,~
code-source-info,0x274d30f4b956,173,0,1929,C0O0C33O36C36O36C41O74C44O74C49O63C54O111C57O111C61O111C63O153C66O153C70O153C72O188C77O198C83O252C86O252C90O252C92O291C95O291C99O291C101O336C138O309C161O878C163O1115C190O1090C192O1817C196O1842C201O1928,,
tick,0x7efc3362894a,249482,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x923ecc329a2,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,249697,0x274d30f4c44e,17,get node:tls:108:8,0x923ecc32358,~
code-source-info,0x274d30f4c44e,167,3744,3895,C0O3815C6O3838C9O3838C12O3867C16O3891,,
code-creation,LazyCompile,10,249724,0x274d30f4cf56,29,cacheRootCertificates node:tls:101:31,0x923ecc32128,~
code-source-info,0x274d30f4cf56,167,3576,3640,C0O3583C7O3615C10O3615C14O3602C21O3600C28O3639,,
scavenge,begin,0,248932,1745847819731
new,MemoryChunk,0x206740ac0000,262144
new,MemoryChunk,0x27e11580000,262144
tick,0xea6ed0,250887,0,0x0,1
scavenge,end,0,250533,1745847819733
code-creation,Eval,10,251203,0x274d30f4d2ce,5, node:console:1:1,0x274d30f4d178,~
script-source,174,node:console,// 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\nmodule.exports = require('internal/console/global');\n
code-source-info,0x274d30f4d2ce,174,0,1202,C0O0C4O1202,,
code-creation,Function,10,251271,0x274d30f4d366,13, node:console:1:1,0x274d30f4d238,~
code-source-info,0x274d30f4d366,174,0,1202,C0O1149C3O1166C7O1164C12O1201,,
tick,0xf8ea57,252004,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,Eval,10,252170,0x274d30f4ec5e,5, node:zlib:1:1,0x274d30f4e568,~
script-source,175,node:zlib,// 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  ArrayBuffer\x2C\n  ArrayPrototypeForEach\x2C\n  ArrayPrototypeMap\x2C\n  ArrayPrototypePush\x2C\n  Error\x2C\n  FunctionPrototypeBind\x2C\n  MathMaxApply\x2C\n  NumberIsFinite\x2C\n  NumberIsNaN\x2C\n  ObjectDefineProperties\x2C\n  ObjectDefineProperty\x2C\n  ObjectFreeze\x2C\n  ObjectKeys\x2C\n  ObjectSetPrototypeOf\x2C\n  ReflectApply\x2C\n  StringPrototypeStartsWith\x2C\n  Symbol\x2C\n  TypedArrayPrototypeFill\x2C\n  Uint32Array\x2C\n} = primordials;\n\nconst {\n  codes: {\n    ERR_BROTLI_INVALID_PARAM\x2C\n    ERR_BUFFER_TOO_LARGE\x2C\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_OUT_OF_RANGE\x2C\n    ERR_ZLIB_INITIALIZATION_FAILED\x2C\n  }\x2C\n  hideStackFrames\n} = require('internal/errors');\nconst { Transform\x2C finished } = require('stream');\nconst {\n  deprecate\n} = require('internal/util');\nconst {\n  isArrayBufferView\x2C\n  isAnyArrayBuffer\x2C\n  isUint8Array\x2C\n} = require('internal/util/types');\nconst binding = internalBinding('zlib');\nconst assert = require('internal/assert');\nconst {\n  Buffer\x2C\n  kMaxLength\n} = require('buffer');\nconst { owner_symbol } = require('internal/async_hooks').symbols;\nconst {\n  validateFunction\x2C\n  validateNumber\x2C\n} = require('internal/validators');\n\nconst kFlushFlag = Symbol('kFlushFlag');\nconst kError = Symbol('kError');\n\nconst constants = internalBinding('constants').zlib;\nconst {\n  // Zlib flush levels\n  Z_NO_FLUSH\x2C Z_BLOCK\x2C Z_PARTIAL_FLUSH\x2C Z_SYNC_FLUSH\x2C Z_FULL_FLUSH\x2C Z_FINISH\x2C\n  // Zlib option values\n  Z_MIN_CHUNK\x2C Z_MIN_WINDOWBITS\x2C Z_MAX_WINDOWBITS\x2C Z_MIN_LEVEL\x2C Z_MAX_LEVEL\x2C\n  Z_MIN_MEMLEVEL\x2C Z_MAX_MEMLEVEL\x2C Z_DEFAULT_CHUNK\x2C Z_DEFAULT_COMPRESSION\x2C\n  Z_DEFAULT_STRATEGY\x2C Z_DEFAULT_WINDOWBITS\x2C Z_DEFAULT_MEMLEVEL\x2C Z_FIXED\x2C\n  // Node's compression stream modes (node_zlib_mode)\n  DEFLATE\x2C DEFLATERAW\x2C INFLATE\x2C INFLATERAW\x2C GZIP\x2C GUNZIP\x2C UNZIP\x2C\n  BROTLI_DECODE\x2C BROTLI_ENCODE\x2C\n  // Brotli operations (~flush levels)\n  BROTLI_OPERATION_PROCESS\x2C BROTLI_OPERATION_FLUSH\x2C\n  BROTLI_OPERATION_FINISH\x2C BROTLI_OPERATION_EMIT_METADATA\x2C\n} = constants;\n\n// Translation table for return codes.\nconst codes = {\n  Z_OK: constants.Z_OK\x2C\n  Z_STREAM_END: constants.Z_STREAM_END\x2C\n  Z_NEED_DICT: constants.Z_NEED_DICT\x2C\n  Z_ERRNO: constants.Z_ERRNO\x2C\n  Z_STREAM_ERROR: constants.Z_STREAM_ERROR\x2C\n  Z_DATA_ERROR: constants.Z_DATA_ERROR\x2C\n  Z_MEM_ERROR: constants.Z_MEM_ERROR\x2C\n  Z_BUF_ERROR: constants.Z_BUF_ERROR\x2C\n  Z_VERSION_ERROR: constants.Z_VERSION_ERROR\n};\n\nfor (const ckey of ObjectKeys(codes)) {\n  codes[codes[ckey]] = ckey;\n}\n\nfunction zlibBuffer(engine\x2C buffer\x2C callback) {\n  validateFunction(callback\x2C 'callback');\n  // Streams do not support non-Uint8Array ArrayBufferViews yet. Convert it to a\n  // Buffer without copying.\n  if (isArrayBufferView(buffer) && !isUint8Array(buffer)) {\n    buffer = Buffer.from(buffer.buffer\x2C buffer.byteOffset\x2C buffer.byteLength);\n  } else if (isAnyArrayBuffer(buffer)) {\n    buffer = Buffer.from(buffer);\n  }\n  engine.buffers = null;\n  engine.nread = 0;\n  engine.cb = callback;\n  engine.on('data'\x2C zlibBufferOnData);\n  engine.on('error'\x2C zlibBufferOnError);\n  engine.on('end'\x2C zlibBufferOnEnd);\n  engine.end(buffer);\n}\n\nfunction zlibBufferOnData(chunk) {\n  if (!this.buffers)\n    this.buffers = [chunk];\n  else\n    ArrayPrototypePush(this.buffers\x2C chunk);\n  this.nread += chunk.length;\n  if (this.nread > this._maxOutputLength) {\n    this.close();\n    this.removeAllListeners('end');\n    this.cb(new ERR_BUFFER_TOO_LARGE(this._maxOutputLength));\n  }\n}\n\nfunction zlibBufferOnError(err) {\n  this.removeAllListeners('end');\n  this.cb(err);\n}\n\nfunction zlibBufferOnEnd() {\n  let buf;\n  if (this.nread === 0) {\n    buf = Buffer.alloc(0);\n  } else {\n    const bufs = this.buffers;\n    buf = (bufs.length === 1 ? bufs[0] : Buffer.concat(bufs\x2C this.nread));\n  }\n  this.close();\n  if (this._info)\n    this.cb(null\x2C { buffer: buf\x2C engine: this });\n  else\n    this.cb(null\x2C buf);\n}\n\nfunction zlibBufferSync(engine\x2C buffer) {\n  if (typeof buffer === 'string') {\n    buffer = Buffer.from(buffer);\n  } else if (!isArrayBufferView(buffer)) {\n    if (isAnyArrayBuffer(buffer)) {\n      buffer = Buffer.from(buffer);\n    } else {\n      throw new ERR_INVALID_ARG_TYPE(\n        'buffer'\x2C\n        ['string'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView'\x2C 'ArrayBuffer']\x2C\n        buffer\n      );\n    }\n  }\n  buffer = processChunkSync(engine\x2C buffer\x2C engine._finishFlushFlag);\n  if (engine._info)\n    return { buffer\x2C engine };\n  return buffer;\n}\n\nfunction zlibOnError(message\x2C errno\x2C code) {\n  const self = this[owner_symbol];\n  // There is no way to cleanly recover.\n  // Continuing only obscures problems.\n\n  // eslint-disable-next-line no-restricted-syntax\n  const error = new Error(message);\n  error.errno = errno;\n  error.code = code;\n  self.destroy(error);\n  self[kError] = error;\n}\n\n// 1. Returns false for undefined and NaN\n// 2. Returns true for finite numbers\n// 3. Throws ERR_INVALID_ARG_TYPE for non-numbers\n// 4. Throws ERR_OUT_OF_RANGE for infinite numbers\nconst checkFiniteNumber = hideStackFrames((number\x2C name) => {\n  // Common case\n  if (number === undefined) {\n    return false;\n  }\n\n  if (NumberIsFinite(number)) {\n    return true; // Is a valid number\n  }\n\n  if (NumberIsNaN(number)) {\n    return false;\n  }\n\n  validateNumber(number\x2C name);\n\n  // Infinite numbers\n  throw new ERR_OUT_OF_RANGE(name\x2C 'a finite number'\x2C number);\n});\n\n// 1. Returns def for number when it's undefined or NaN\n// 2. Returns number for finite numbers >= lower and <= upper\n// 3. Throws ERR_INVALID_ARG_TYPE for non-numbers\n// 4. Throws ERR_OUT_OF_RANGE for infinite numbers or numbers > upper or < lower\nconst checkRangesOrGetDefault = hideStackFrames(\n  (number\x2C name\x2C lower\x2C upper\x2C def) => {\n    if (!checkFiniteNumber(number\x2C name)) {\n      return def;\n    }\n    if (number < lower || number > upper) {\n      throw new ERR_OUT_OF_RANGE(name\x2C\n                                 `>= ${lower} and <= ${upper}`\x2C number);\n    }\n    return number;\n  }\n);\n\nconst FLUSH_BOUND = [\n  [ Z_NO_FLUSH\x2C Z_BLOCK ]\x2C\n  [ BROTLI_OPERATION_PROCESS\x2C BROTLI_OPERATION_EMIT_METADATA ]\x2C\n];\nconst FLUSH_BOUND_IDX_NORMAL = 0;\nconst FLUSH_BOUND_IDX_BROTLI = 1;\n\n// The base class for all Zlib-style streams.\nfunction ZlibBase(opts\x2C mode\x2C handle\x2C { flush\x2C finishFlush\x2C fullFlush }) {\n  let chunkSize = Z_DEFAULT_CHUNK;\n  let maxOutputLength = kMaxLength;\n  // The ZlibBase class is not exported to user land\x2C the mode should only be\n  // passed in by us.\n  assert(typeof mode === 'number');\n  assert(mode >= DEFLATE && mode <= BROTLI_ENCODE);\n\n  let flushBoundIdx;\n  if (mode !== BROTLI_ENCODE && mode !== BROTLI_DECODE) {\n    flushBoundIdx = FLUSH_BOUND_IDX_NORMAL;\n  } else {\n    flushBoundIdx = FLUSH_BOUND_IDX_BROTLI;\n  }\n\n  if (opts) {\n    chunkSize = opts.chunkSize;\n    if (!checkFiniteNumber(chunkSize\x2C 'options.chunkSize')) {\n      chunkSize = Z_DEFAULT_CHUNK;\n    } else if (chunkSize < Z_MIN_CHUNK) {\n      throw new ERR_OUT_OF_RANGE('options.chunkSize'\x2C\n                                 `>= ${Z_MIN_CHUNK}`\x2C chunkSize);\n    }\n\n    flush = checkRangesOrGetDefault(\n      opts.flush\x2C 'options.flush'\x2C\n      FLUSH_BOUND[flushBoundIdx][0]\x2C FLUSH_BOUND[flushBoundIdx][1]\x2C flush);\n\n    finishFlush = checkRangesOrGetDefault(\n      opts.finishFlush\x2C 'options.finishFlush'\x2C\n      FLUSH_BOUND[flushBoundIdx][0]\x2C FLUSH_BOUND[flushBoundIdx][1]\x2C\n      finishFlush);\n\n    maxOutputLength = checkRangesOrGetDefault(\n      opts.maxOutputLength\x2C 'options.maxOutputLength'\x2C\n      1\x2C kMaxLength\x2C kMaxLength);\n\n    if (opts.encoding || opts.objectMode || opts.writableObjectMode) {\n      opts = { ...opts };\n      opts.encoding = null;\n      opts.objectMode = false;\n      opts.writableObjectMode = false;\n    }\n  }\n\n  ReflectApply(Transform\x2C this\x2C [{ autoDestroy: true\x2C ...opts }]);\n  this[kError] = null;\n  this.bytesWritten = 0;\n  this._handle = handle;\n  handle[owner_symbol] = this;\n  // Used by processCallback() and zlibOnError()\n  handle.onerror = zlibOnError;\n  this._outBuffer = Buffer.allocUnsafe(chunkSize);\n  this._outOffset = 0;\n\n  this._chunkSize = chunkSize;\n  this._defaultFlushFlag = flush;\n  this._finishFlushFlag = finishFlush;\n  this._defaultFullFlushFlag = fullFlush;\n  this._info = opts && opts.info;\n  this._maxOutputLength = maxOutputLength;\n}\nObjectSetPrototypeOf(ZlibBase.prototype\x2C Transform.prototype);\nObjectSetPrototypeOf(ZlibBase\x2C Transform);\n\nObjectDefineProperty(ZlibBase.prototype\x2C '_closed'\x2C {\n  configurable: true\x2C\n  enumerable: true\x2C\n  get() {\n    return !this._handle;\n  }\n});\n\n// `bytesRead` made sense as a name when looking from the zlib engine's\n// perspective\x2C but it is inconsistent with all other streams exposed by Node.js\n// that have this concept\x2C where it stands for the number of bytes read\n// *from* the stream (that is\x2C net.Socket/tls.Socket & file system streams).\nObjectDefineProperty(ZlibBase.prototype\x2C 'bytesRead'\x2C {\n  configurable: true\x2C\n  enumerable: true\x2C\n  get: deprecate(function() {\n    return this.bytesWritten;\n  }\x2C 'zlib.bytesRead is deprecated and will change its meaning in the ' +\n     'future. Use zlib.bytesWritten instead.'\x2C 'DEP0108')\x2C\n  set: deprecate(function(value) {\n    this.bytesWritten = value;\n  }\x2C 'Setting zlib.bytesRead is deprecated. ' +\n     'This feature will be removed in the future.'\x2C 'DEP0108')\n});\n\nZlibBase.prototype.reset = function() {\n  if (!this._handle)\n    assert(false\x2C 'zlib binding closed');\n  return this._handle.reset();\n};\n\n// This is the _flush function called by the transform class\x2C\n// internally\x2C when the last chunk has been written.\nZlibBase.prototype._flush = function(callback) {\n  this._transform(Buffer.alloc(0)\x2C ''\x2C callback);\n};\n\n// Force Transform compat behavior.\nZlibBase.prototype._final = function(callback) {\n  callback();\n};\n\n// If a flush is scheduled while another flush is still pending\x2C a way to figure\n// out which one is the "stronger" flush is needed.\n// This is currently only used to figure out which flush flag to use for the\n// last chunk.\n// Roughly\x2C the following holds:\n// Z_NO_FLUSH (< Z_TREES) < Z_BLOCK < Z_PARTIAL_FLUSH <\n//     Z_SYNC_FLUSH < Z_FULL_FLUSH < Z_FINISH\nconst flushiness = [];\nlet i = 0;\nconst kFlushFlagList = [Z_NO_FLUSH\x2C Z_BLOCK\x2C Z_PARTIAL_FLUSH\x2C\n                        Z_SYNC_FLUSH\x2C Z_FULL_FLUSH\x2C Z_FINISH];\nfor (const flushFlag of kFlushFlagList) {\n  flushiness[flushFlag] = i++;\n}\n\nfunction maxFlush(a\x2C b) {\n  return flushiness[a] > flushiness[b] ? a : b;\n}\n\n// Set up a list of 'special' buffers that can be written using .write()\n// from the .flush() code as a way of introducing flushing operations into the\n// write sequence.\nconst kFlushBuffers = [];\n{\n  const dummyArrayBuffer = new ArrayBuffer();\n  for (const flushFlag of kFlushFlagList) {\n    kFlushBuffers[flushFlag] = Buffer.from(dummyArrayBuffer);\n    kFlushBuffers[flushFlag][kFlushFlag] = flushFlag;\n  }\n}\n\nZlibBase.prototype.flush = function(kind\x2C callback) {\n  if (typeof kind === 'function' || (kind === undefined && !callback)) {\n    callback = kind;\n    kind = this._defaultFullFlushFlag;\n  }\n\n  if (this.writableFinished) {\n    if (callback)\n      process.nextTick(callback);\n  } else if (this.writableEnded) {\n    if (callback)\n      this.once('end'\x2C callback);\n  } else {\n    this.write(kFlushBuffers[kind]\x2C ''\x2C callback);\n  }\n};\n\nZlibBase.prototype.close = function(callback) {\n  if (callback) finished(this\x2C callback);\n  this.destroy();\n};\n\nZlibBase.prototype._destroy = function(err\x2C callback) {\n  _close(this);\n  callback(err);\n};\n\nZlibBase.prototype._transform = function(chunk\x2C encoding\x2C cb) {\n  let flushFlag = this._defaultFlushFlag;\n  // We use a 'fake' zero-length chunk to carry information about flushes from\n  // the public API to the actual stream implementation.\n  if (typeof chunk[kFlushFlag] === 'number') {\n    flushFlag = chunk[kFlushFlag];\n  }\n\n  // For the last chunk\x2C also apply `_finishFlushFlag`.\n  if (this.writableEnded && this.writableLength === chunk.byteLength) {\n    flushFlag = maxFlush(flushFlag\x2C this._finishFlushFlag);\n  }\n  processChunk(this\x2C chunk\x2C flushFlag\x2C cb);\n};\n\nZlibBase.prototype._processChunk = function(chunk\x2C flushFlag\x2C cb) {\n  // _processChunk() is left for backwards compatibility\n  if (typeof cb === 'function')\n    processChunk(this\x2C chunk\x2C flushFlag\x2C cb);\n  else\n    return processChunkSync(this\x2C chunk\x2C flushFlag);\n};\n\nfunction processChunkSync(self\x2C chunk\x2C flushFlag) {\n  let availInBefore = chunk.byteLength;\n  let availOutBefore = self._chunkSize - self._outOffset;\n  let inOff = 0;\n  let availOutAfter;\n  let availInAfter;\n\n  let buffers = null;\n  let nread = 0;\n  let inputRead = 0;\n  const state = self._writeState;\n  const handle = self._handle;\n  let buffer = self._outBuffer;\n  let offset = self._outOffset;\n  const chunkSize = self._chunkSize;\n\n  let error;\n  self.on('error'\x2C function onError(er) {\n    error = er;\n  });\n\n  while (true) {\n    handle.writeSync(flushFlag\x2C\n                     chunk\x2C // in\n                     inOff\x2C // in_off\n                     availInBefore\x2C // in_len\n                     buffer\x2C // out\n                     offset\x2C // out_off\n                     availOutBefore); // out_len\n    if (error)\n      throw error;\n    else if (self[kError])\n      throw self[kError];\n\n    availOutAfter = state[0];\n    availInAfter = state[1];\n\n    const inDelta = (availInBefore - availInAfter);\n    inputRead += inDelta;\n\n    const have = availOutBefore - availOutAfter;\n    if (have > 0) {\n      const out = buffer.slice(offset\x2C offset + have);\n      offset += have;\n      if (!buffers)\n        buffers = [out];\n      else\n        ArrayPrototypePush(buffers\x2C out);\n      nread += out.byteLength;\n\n      if (nread > self._maxOutputLength) {\n        _close(self);\n        throw new ERR_BUFFER_TOO_LARGE(self._maxOutputLength);\n      }\n\n    } else {\n      assert(have === 0\x2C 'have should not go down');\n    }\n\n    // Exhausted the output buffer\x2C or used all the input create a new one.\n    if (availOutAfter === 0 || offset >= chunkSize) {\n      availOutBefore = chunkSize;\n      offset = 0;\n      buffer = Buffer.allocUnsafe(chunkSize);\n    }\n\n    if (availOutAfter === 0) {\n      // Not actually done. Need to reprocess.\n      // Also\x2C update the availInBefore to the availInAfter value\x2C\n      // so that if we have to hit it a third (fourth\x2C etc.) time\x2C\n      // it'll have the correct byte counts.\n      inOff += inDelta;\n      availInBefore = availInAfter;\n    } else {\n      break;\n    }\n  }\n\n  self.bytesWritten = inputRead;\n  _close(self);\n\n  if (nread === 0)\n    return Buffer.alloc(0);\n\n  return (buffers.length === 1 ? buffers[0] : Buffer.concat(buffers\x2C nread));\n}\n\nfunction processChunk(self\x2C chunk\x2C flushFlag\x2C cb) {\n  const handle = self._handle;\n  if (!handle) return process.nextTick(cb);\n\n  handle.buffer = chunk;\n  handle.cb = cb;\n  handle.availOutBefore = self._chunkSize - self._outOffset;\n  handle.availInBefore = chunk.byteLength;\n  handle.inOff = 0;\n  handle.flushFlag = flushFlag;\n\n  handle.write(flushFlag\x2C\n               chunk\x2C // in\n               0\x2C // in_off\n               handle.availInBefore\x2C // in_len\n               self._outBuffer\x2C // out\n               self._outOffset\x2C // out_off\n               handle.availOutBefore); // out_len\n}\n\nfunction processCallback() {\n  // This callback's context (`this`) is the `_handle` (ZCtx) object. It is\n  // important to null out the values once they are no longer needed since\n  // `_handle` can stay in memory long after the buffer is needed.\n  const handle = this;\n  const self = this[owner_symbol];\n  const state = self._writeState;\n\n  if (self.destroyed) {\n    this.buffer = null;\n    this.cb();\n    return;\n  }\n\n  const availOutAfter = state[0];\n  const availInAfter = state[1];\n\n  const inDelta = handle.availInBefore - availInAfter;\n  self.bytesWritten += inDelta;\n\n  const have = handle.availOutBefore - availOutAfter;\n  if (have > 0) {\n    const out = self._outBuffer.slice(self._outOffset\x2C self._outOffset + have);\n    self._outOffset += have;\n    self.push(out);\n  } else {\n    assert(have === 0\x2C 'have should not go down');\n  }\n\n  if (self.destroyed) {\n    this.cb();\n    return;\n  }\n\n  // Exhausted the output buffer\x2C or used all the input create a new one.\n  if (availOutAfter === 0 || self._outOffset >= self._chunkSize) {\n    handle.availOutBefore = self._chunkSize;\n    self._outOffset = 0;\n    self._outBuffer = Buffer.allocUnsafe(self._chunkSize);\n  }\n\n  if (availOutAfter === 0) {\n    // Not actually done. Need to reprocess.\n    // Also\x2C update the availInBefore to the availInAfter value\x2C\n    // so that if we have to hit it a third (fourth\x2C etc.) time\x2C\n    // it'll have the correct byte counts.\n    handle.inOff += inDelta;\n    handle.availInBefore = availInAfter;\n\n    this.write(handle.flushFlag\x2C\n               this.buffer\x2C // in\n               handle.inOff\x2C // in_off\n               handle.availInBefore\x2C // in_len\n               self._outBuffer\x2C // out\n               self._outOffset\x2C // out_off\n               self._chunkSize); // out_len\n    return;\n  }\n\n  if (availInAfter > 0) {\n    // If we have more input that should be written\x2C but we also have output\n    // space available\x2C that means that the compression library was not\n    // interested in receiving more data\x2C and in particular that the input\n    // stream has ended early.\n    // This applies to streams where we don't check data past the end of\n    // what was consumed; that is\x2C everything except Gunzip/Unzip.\n    self.push(null);\n  }\n\n  // Finished with the chunk.\n  this.buffer = null;\n  this.cb();\n}\n\nfunction _close(engine) {\n  // Caller may invoke .close after a zlib error (which will null _handle).\n  if (!engine._handle)\n    return;\n\n  engine._handle.close();\n  engine._handle = null;\n}\n\nconst zlibDefaultOpts = {\n  flush: Z_NO_FLUSH\x2C\n  finishFlush: Z_FINISH\x2C\n  fullFlush: Z_FULL_FLUSH\n};\n// Base class for all streams actually backed by zlib and using zlib-specific\n// parameters.\nfunction Zlib(opts\x2C mode) {\n  let windowBits = Z_DEFAULT_WINDOWBITS;\n  let level = Z_DEFAULT_COMPRESSION;\n  let memLevel = Z_DEFAULT_MEMLEVEL;\n  let strategy = Z_DEFAULT_STRATEGY;\n  let dictionary;\n\n  if (opts) {\n    // windowBits is special. On the compression side\x2C 0 is an invalid value.\n    // But on the decompression side\x2C a value of 0 for windowBits tells zlib\n    // to use the window size in the zlib header of the compressed stream.\n    if ((opts.windowBits == null || opts.windowBits === 0) &&\n        (mode === INFLATE ||\n         mode === GUNZIP ||\n         mode === UNZIP)) {\n      windowBits = 0;\n    } else {\n      // `{ windowBits: 8 }` is valid for deflate but not gzip.\n      const min = Z_MIN_WINDOWBITS + (mode === GZIP ? 1 : 0);\n      windowBits = checkRangesOrGetDefault(\n        opts.windowBits\x2C 'options.windowBits'\x2C\n        min\x2C Z_MAX_WINDOWBITS\x2C Z_DEFAULT_WINDOWBITS);\n    }\n\n    level = checkRangesOrGetDefault(\n      opts.level\x2C 'options.level'\x2C\n      Z_MIN_LEVEL\x2C Z_MAX_LEVEL\x2C Z_DEFAULT_COMPRESSION);\n\n    memLevel = checkRangesOrGetDefault(\n      opts.memLevel\x2C 'options.memLevel'\x2C\n      Z_MIN_MEMLEVEL\x2C Z_MAX_MEMLEVEL\x2C Z_DEFAULT_MEMLEVEL);\n\n    strategy = checkRangesOrGetDefault(\n      opts.strategy\x2C 'options.strategy'\x2C\n      Z_DEFAULT_STRATEGY\x2C Z_FIXED\x2C Z_DEFAULT_STRATEGY);\n\n    dictionary = opts.dictionary;\n    if (dictionary !== undefined && !isArrayBufferView(dictionary)) {\n      if (isAnyArrayBuffer(dictionary)) {\n        dictionary = Buffer.from(dictionary);\n      } else {\n        throw new ERR_INVALID_ARG_TYPE(\n          'options.dictionary'\x2C\n          ['Buffer'\x2C 'TypedArray'\x2C 'DataView'\x2C 'ArrayBuffer']\x2C\n          dictionary\n        );\n      }\n    }\n  }\n\n  const handle = new binding.Zlib(mode);\n  // Ideally\x2C we could let ZlibBase() set up _writeState. I haven't been able\n  // to come up with a good solution that doesn't break our internal API\x2C\n  // and with it all supported npm versions at the time of writing.\n  this._writeState = new Uint32Array(2);\n  handle.init(windowBits\x2C\n              level\x2C\n              memLevel\x2C\n              strategy\x2C\n              this._writeState\x2C\n              processCallback\x2C\n              dictionary);\n\n  ReflectApply(ZlibBase\x2C this\x2C [opts\x2C mode\x2C handle\x2C zlibDefaultOpts]);\n\n  this._level = level;\n  this._strategy = strategy;\n}\nObjectSetPrototypeOf(Zlib.prototype\x2C ZlibBase.prototype);\nObjectSetPrototypeOf(Zlib\x2C ZlibBase);\n\n// This callback is used by `.params()` to wait until a full flush happened\n// before adjusting the parameters. In particular\x2C the call to the native\n// `params()` function should not happen while a write is currently in progress\n// on the threadpool.\nfunction paramsAfterFlushCallback(level\x2C strategy\x2C callback) {\n  assert(this._handle\x2C 'zlib binding closed');\n  this._handle.params(level\x2C strategy);\n  if (!this.destroyed) {\n    this._level = level;\n    this._strategy = strategy;\n    if (callback) callback();\n  }\n}\n\nZlib.prototype.params = function params(level\x2C strategy\x2C callback) {\n  checkRangesOrGetDefault(level\x2C 'level'\x2C Z_MIN_LEVEL\x2C Z_MAX_LEVEL);\n  checkRangesOrGetDefault(strategy\x2C 'strategy'\x2C Z_DEFAULT_STRATEGY\x2C Z_FIXED);\n\n  if (this._level !== level || this._strategy !== strategy) {\n    this.flush(Z_SYNC_FLUSH\x2C\n               FunctionPrototypeBind(paramsAfterFlushCallback\x2C this\x2C\n                                     level\x2C strategy\x2C callback));\n  } else {\n    process.nextTick(callback);\n  }\n};\n\n// generic zlib\n// minimal 2-byte header\nfunction Deflate(opts) {\n  if (!(this instanceof Deflate))\n    return new Deflate(opts);\n  ReflectApply(Zlib\x2C this\x2C [opts\x2C DEFLATE]);\n}\nObjectSetPrototypeOf(Deflate.prototype\x2C Zlib.prototype);\nObjectSetPrototypeOf(Deflate\x2C Zlib);\n\nfunction Inflate(opts) {\n  if (!(this instanceof Inflate))\n    return new Inflate(opts);\n  ReflectApply(Zlib\x2C this\x2C [opts\x2C INFLATE]);\n}\nObjectSetPrototypeOf(Inflate.prototype\x2C Zlib.prototype);\nObjectSetPrototypeOf(Inflate\x2C Zlib);\n\nfunction Gzip(opts) {\n  if (!(this instanceof Gzip))\n    return new Gzip(opts);\n  ReflectApply(Zlib\x2C this\x2C [opts\x2C GZIP]);\n}\nObjectSetPrototypeOf(Gzip.prototype\x2C Zlib.prototype);\nObjectSetPrototypeOf(Gzip\x2C Zlib);\n\nfunction Gunzip(opts) {\n  if (!(this instanceof Gunzip))\n    return new Gunzip(opts);\n  ReflectApply(Zlib\x2C this\x2C [opts\x2C GUNZIP]);\n}\nObjectSetPrototypeOf(Gunzip.prototype\x2C Zlib.prototype);\nObjectSetPrototypeOf(Gunzip\x2C Zlib);\n\nfunction DeflateRaw(opts) {\n  if (opts && opts.windowBits === 8) opts.windowBits = 9;\n  if (!(this instanceof DeflateRaw))\n    return new DeflateRaw(opts);\n  ReflectApply(Zlib\x2C this\x2C [opts\x2C DEFLATERAW]);\n}\nObjectSetPrototypeOf(DeflateRaw.prototype\x2C Zlib.prototype);\nObjectSetPrototypeOf(DeflateRaw\x2C Zlib);\n\nfunction InflateRaw(opts) {\n  if (!(this instanceof InflateRaw))\n    return new InflateRaw(opts);\n  ReflectApply(Zlib\x2C this\x2C [opts\x2C INFLATERAW]);\n}\nObjectSetPrototypeOf(InflateRaw.prototype\x2C Zlib.prototype);\nObjectSetPrototypeOf(InflateRaw\x2C Zlib);\n\nfunction Unzip(opts) {\n  if (!(this instanceof Unzip))\n    return new Unzip(opts);\n  ReflectApply(Zlib\x2C this\x2C [opts\x2C UNZIP]);\n}\nObjectSetPrototypeOf(Unzip.prototype\x2C Zlib.prototype);\nObjectSetPrototypeOf(Unzip\x2C Zlib);\n\nfunction createConvenienceMethod(ctor\x2C sync) {\n  if (sync) {\n    return function syncBufferWrapper(buffer\x2C opts) {\n      return zlibBufferSync(new ctor(opts)\x2C buffer);\n    };\n  }\n  return function asyncBufferWrapper(buffer\x2C opts\x2C callback) {\n    if (typeof opts === 'function') {\n      callback = opts;\n      opts = {};\n    }\n    return zlibBuffer(new ctor(opts)\x2C buffer\x2C callback);\n  };\n}\n\nconst kMaxBrotliParam = MathMaxApply(ArrayPrototypeMap(\n  ObjectKeys(constants)\x2C\n  (key) => (StringPrototypeStartsWith(key\x2C 'BROTLI_PARAM_') ?\n    constants[key] :\n    0)\n));\n\nconst brotliInitParamsArray = new Uint32Array(kMaxBrotliParam + 1);\n\nconst brotliDefaultOpts = {\n  flush: BROTLI_OPERATION_PROCESS\x2C\n  finishFlush: BROTLI_OPERATION_FINISH\x2C\n  fullFlush: BROTLI_OPERATION_FLUSH\n};\nfunction Brotli(opts\x2C mode) {\n  assert(mode === BROTLI_DECODE || mode === BROTLI_ENCODE);\n\n  TypedArrayPrototypeFill(brotliInitParamsArray\x2C -1);\n  if (opts?.params) {\n    ArrayPrototypeForEach(ObjectKeys(opts.params)\x2C (origKey) => {\n      const key = +origKey;\n      if (NumberIsNaN(key) || key < 0 || key > kMaxBrotliParam ||\n          (brotliInitParamsArray[key] | 0) !== -1) {\n        throw new ERR_BROTLI_INVALID_PARAM(origKey);\n      }\n\n      const value = opts.params[origKey];\n      if (typeof value !== 'number' && typeof value !== 'boolean') {\n        throw new ERR_INVALID_ARG_TYPE('options.params[key]'\x2C\n                                       'number'\x2C opts.params[origKey]);\n      }\n      brotliInitParamsArray[key] = value;\n    });\n  }\n\n  const handle = mode === BROTLI_DECODE ?\n    new binding.BrotliDecoder(mode) : new binding.BrotliEncoder(mode);\n\n  this._writeState = new Uint32Array(2);\n  // TODO(addaleax): Sometimes we generate better error codes in C++ land\x2C\n  // e.g. ERR_BROTLI_PARAM_SET_FAILED -- it's hard to access them with\n  // the current bindings setup\x2C though.\n  if (!handle.init(brotliInitParamsArray\x2C\n                   this._writeState\x2C\n                   processCallback)) {\n    throw new ERR_ZLIB_INITIALIZATION_FAILED();\n  }\n\n  ReflectApply(ZlibBase\x2C this\x2C [opts\x2C mode\x2C handle\x2C brotliDefaultOpts]);\n}\nObjectSetPrototypeOf(Brotli.prototype\x2C Zlib.prototype);\nObjectSetPrototypeOf(Brotli\x2C Zlib);\n\nfunction BrotliCompress(opts) {\n  if (!(this instanceof BrotliCompress))\n    return new BrotliCompress(opts);\n  ReflectApply(Brotli\x2C this\x2C [opts\x2C BROTLI_ENCODE]);\n}\nObjectSetPrototypeOf(BrotliCompress.prototype\x2C Brotli.prototype);\nObjectSetPrototypeOf(BrotliCompress\x2C Brotli);\n\nfunction BrotliDecompress(opts) {\n  if (!(this instanceof BrotliDecompress))\n    return new BrotliDecompress(opts);\n  ReflectApply(Brotli\x2C this\x2C [opts\x2C BROTLI_DECODE]);\n}\nObjectSetPrototypeOf(BrotliDecompress.prototype\x2C Brotli.prototype);\nObjectSetPrototypeOf(BrotliDecompress\x2C Brotli);\n\n\nfunction createProperty(ctor) {\n  return {\n    configurable: true\x2C\n    enumerable: true\x2C\n    value: function(options) {\n      return new ctor(options);\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(binding.Zlib.prototype\x2C 'jsref'\x2C {\n  get() { return this[owner_symbol]; }\x2C\n  set(v) { return this[owner_symbol] = v; }\n});\n\nmodule.exports = {\n  Deflate\x2C\n  Inflate\x2C\n  Gzip\x2C\n  Gunzip\x2C\n  DeflateRaw\x2C\n  InflateRaw\x2C\n  Unzip\x2C\n  BrotliCompress\x2C\n  BrotliDecompress\x2C\n\n  // Convenience methods.\n  // compress/decompress a string or buffer in one step.\n  deflate: createConvenienceMethod(Deflate\x2C false)\x2C\n  deflateSync: createConvenienceMethod(Deflate\x2C true)\x2C\n  gzip: createConvenienceMethod(Gzip\x2C false)\x2C\n  gzipSync: createConvenienceMethod(Gzip\x2C true)\x2C\n  deflateRaw: createConvenienceMethod(DeflateRaw\x2C false)\x2C\n  deflateRawSync: createConvenienceMethod(DeflateRaw\x2C true)\x2C\n  unzip: createConvenienceMethod(Unzip\x2C false)\x2C\n  unzipSync: createConvenienceMethod(Unzip\x2C true)\x2C\n  inflate: createConvenienceMethod(Inflate\x2C false)\x2C\n  inflateSync: createConvenienceMethod(Inflate\x2C true)\x2C\n  gunzip: createConvenienceMethod(Gunzip\x2C false)\x2C\n  gunzipSync: createConvenienceMethod(Gunzip\x2C true)\x2C\n  inflateRaw: createConvenienceMethod(InflateRaw\x2C false)\x2C\n  inflateRawSync: createConvenienceMethod(InflateRaw\x2C true)\x2C\n  brotliCompress: createConvenienceMethod(BrotliCompress\x2C false)\x2C\n  brotliCompressSync: createConvenienceMethod(BrotliCompress\x2C true)\x2C\n  brotliDecompress: createConvenienceMethod(BrotliDecompress\x2C false)\x2C\n  brotliDecompressSync: createConvenienceMethod(BrotliDecompress\x2C true)\x2C\n};\n\nObjectDefineProperties(module.exports\x2C {\n  createDeflate: createProperty(Deflate)\x2C\n  createInflate: createProperty(Inflate)\x2C\n  createDeflateRaw: createProperty(DeflateRaw)\x2C\n  createInflateRaw: createProperty(InflateRaw)\x2C\n  createGzip: createProperty(Gzip)\x2C\n  createGunzip: createProperty(Gunzip)\x2C\n  createUnzip: createProperty(Unzip)\x2C\n  createBrotliCompress: createProperty(BrotliCompress)\x2C\n  createBrotliDecompress: createProperty(BrotliDecompress)\x2C\n  constants: {\n    configurable: false\x2C\n    enumerable: true\x2C\n    value: constants\n  }\x2C\n  codes: {\n    enumerable: true\x2C\n    writable: false\x2C\n    value: ObjectFreeze(codes)\n  }\n});\n\n// These should be considered deprecated\n// expose all the zlib constants\nfor (const bkey of ObjectKeys(constants)) {\n  if (StringPrototypeStartsWith(bkey\x2C 'BROTLI')) continue;\n  ObjectDefineProperty(module.exports\x2C bkey\x2C {\n    enumerable: false\x2C value: constants[bkey]\x2C writable: false\n  });\n}\n
code-source-info,0x274d30f4ec5e,175,0,29391,C0O0C4O29391,,
code-creation,Function,10,253403,0x274d30f50a6e,4132, node:zlib:1:1,0x274d30f4ebc8,~
code-source-info,0x274d30f50a6e,175,0,29391,C0O0C360O1159C365O1174C371O1199C376O1220C382O1242C388O1251C394O1276C399O1292C405O1310C411O1325C416O1351C421O1375C426O1391C432O1405C437O1429C443O1445C449O1474C454O1484C460O1511C466O1728C470O1728C476O1728C482O1565C488O1595C494O1621C500O1647C506O1669C512O1708C517O1788C521O1788C527O1764C533O1775C539O1831C543O1831C549O1817C554O1926C558O1926C564O1867C570O1888C576O1908C582O1974C586O1974C590O1974C592O2014C596O2014C600O2014C602O2077C606O2077C612O2052C618O2062C624O2121C628O2121C634O2152C640O2104C646O2212C650O2212C656O2172C662O2192C668O2264C672O2264C676O2264C678O2301C682O2301C686O2301C688O2338C692O2338C698O2366C702O2338C704O3035C708O2406C713O2418C718O2427C723O2444C729O2458C734O2472C739O2508C745O2521C751O2539C757O2557C763O2570C769O2585C775O2601C781O2617C787O2634C793O2659C799O2679C805O2701C811O2721C817O2786C823O2795C829O2807C835O2816C841O2828C847O2834C853O2842C859O2851C865O2866C871O2922C876O2948C882O2974C888O2999C894O3100C904O3120C916O3152C928O3191C940O3225C952O3262C964O3304C976O3343C988O3381C1000O3423C1011O3462C1015O3462C1049O3454C1080O3454C1083O3485C1085O3496C1092O3504C1099O3443C1170O5988C1176O5988C1180O5988C1182O6625C1188O6625C1192O6625C1194O6960C1214O6966C1224O6978C1249O6993C1259O7019C1271O6960C1273O7087C1274O7087C1276O7121C1278O7121C1280O9224C1284O9254C1294O9275C1300O9224C1305O9287C1313O9287C1318O9331C1322O9361C1338O9429C1346O9331C1351O9774C1355O9804C1371O9879C1383O10004C1392O9879C1401O10072C1413O10177C1425O10072C1443O9774C1453O10247C1457O10256C1467O10272C1475O10500C1479O10509C1489O10526C1497O10639C1501O10648C1511O10665C1519O11085C1523O11085C1525O11097C1528O11123C1542O11124C1556O11136C1570O11145C1584O11186C1598O11200C1612O11214C1623O11249C1659O11236C1702O11236C1705O11269C1711O11280C1725O11291C1736O11225C1815O11571C1819O11571C1821O11604C1823O11604C1835O11649C1871O11636C1914O11636C1917O11671C1925O11705C1935O11705C1945O11696C1953O11733C1959O11746C1973O11770C1984O11625C2063O11790C2067O11799C2077O11815C2085O12222C2089O12231C2099O12247C2107O12334C2111O12343C2121O12362C2129O12427C2133O12436C2143O12457C2151O12996C2155O13005C2165O13029C2173O18662C2184O18673C2194O18700C2204O18723C2214O18662C2216O21150C2220O21176C2234O21196C2240O21150C2250O21208C2258O21208C2268O21767C2272O21772C2286O21789C2294O22438C2298O22467C2312O22483C2322O22438C2332O22495C2340O22495C2350O22669C2354O22698C2368O22714C2378O22669C2388O22726C2396O22726C2406O22888C2410O22914C2424O22930C2434O22888C2444O22942C2452O22942C2462O23109C2466O23137C2480O23153C2490O23109C2500O23165C2508O23165C2518O23408C2522O23440C2536O23456C2546O23408C2556O23468C2564O23468C2574O23657C2578O23689C2592O23705C2602O23657C2612O23717C2620O23717C2630O23886C2634O23913C2648O23929C2658O23886C2668O23941C2676O23941C2686O24392C2694O24426C2710O24405C2722O24392C2730O24392C2732O24574C2738O24606C2748O24574C2758O24574C2760O24639C2771O24650C2781O24691C2791O24729C2801O24639C2803O26093C2807O26121C2821O26137C2831O26093C2841O26149C2849O26149C2859O26351C2863O26387C2877O26405C2887O26351C2897O26417C2905O26417C2915O26635C2919O26673C2933O26691C2943O26635C2953O26703C2961O26703C2971O27069C2975O27098C2985O27103C3008O27127C3020O27167C3032O27069C3042O27214C3053O27235C3063O27246C3073O27257C3083O27265C3093O27275C3103O27289C3113O27303C3123O27312C3133O27330C3148O27443C3173O27499C3198O27547C3223O27597C3248O27648C3273O27710C3298O27762C3323O27814C3348O27863C3373O27919C3398O27969C3423O28023C3448O28076C3473O28138C3498O28199C3523O28269C3548O28336C3573O28410C3593O27229C3601O28493C3624O28521C3644O28563C3664O28608C3684O28656C3704O28698C3724O28736C3744O28775C3764O28822C3784O28880C3800O28927C3811O28987C3829O29011C3838O29067C3864O28463C3874O29189C3882O29189C3928O29181C3971O29181C3974O29216C3982O29220C3997O29263C3999O29303C4009O29312C4024O29359C4041O29275C4051O29170C4131O29390,,
tick,0x7efc33a646dc,253496,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,253909,0x274d30f55e2e,135,fromArrayBuffer node:buffer:447:25,0x73467ca4dc8,~
code-source-info,0x274d30f55e2e,18,12897,13570,C0O12962C4O12998C9O13029C11O13042C15O13059C20O13063C26O13094C29O13139C36O13150C40O13167C41O13181C46O13190C56O13196C61O13190C62O13239C66O13271C73O13353C75O13362C79O13375C80O13386C85O13399C87O13410C92O13431C102O13437C107O13431C110O13496C113O13521C129O13528C134O13568,,
code-creation,LazyCompile,10,254058,0x274d30f56196,29, node:zlib:805:3,0x274d30f4fb70,~
code-source-info,0x274d30f56196,175,24451,24538,C0O24461C8O24461C17O24515C22O24524C28O24538,,
tick,0x7efc3364c6d0,254159,0,0x0,0,0xf48b80,0x274d30f5165b,0x13b40bab9d2d,0x1c78303f7c4a,0x1c78303f72ab,0x1c78303f70a2,0x1c78303e3c9f,0x1c78303db730,0x158e77f
code-creation,LazyCompile,10,254180,0x274d30f581de,23,createConvenienceMethod node:zlib:788:33,0x274d30f4f350,~
code-source-info,0x274d30f581de,175,24009,24366,C0O24009C9O24026C13O24042C17O24151C18O24158C22O24364,,
code-creation,LazyCompile,10,254232,0x274d30f5841e,25,createProperty node:zlib:873:24,0x274d30f4f4c0,~
code-source-info,0x274d30f5841e,175,26776,26917,C0O26776C9O26787C14O26853C24O26915,,
code-creation,LazyCompile,10,254737,0x274d30f5904e,318,processTicksAndRejections node:internal/process/task_queues:68:35,0x30ec9dbbb330,~
code-source-info,0x274d30f5904e,25,1496,2430,C0O1507C2O1536C7O1544C12O1544C17O1536C19O1577C21O1582C23O1581C27O1606C34O1631C36O1630C46O1606C54O1707C59O1734C65O1766C70O1823C75O1852C110O1882C111O1895C115O1882C119O1901C121O1928C122O1941C128O1950C132O1928C137O1956C139O1983C140O1996C146O2005C152O2014C156O1983C161O2020C163O2047C164O2060C170O2069C176O2078C182O2087C186O2047C191O2093C193O2121C198O2121C215O2188C220O2192C225O2223C230O2223C245O2260C250O2260C256O2290C261O2290C264O2335C269O2325C274O2325C282O2338C285O2338C290O1515C296O2369C301O2369C305O2399C312O2399C317O2429,,
code-creation,LazyCompile,10,254792,0x274d30f59336,43,shift node:internal/fixed_queue:108:8,0xaad66741408,~
code-source-info,0x274d30f59336,28,3954,4180,C0O3981C5O4009C10O4009C15O4031C20O4031C26O4049C32O4148C36O4141C40O4164C42O4176,,
code-creation,LazyCompile,10,254822,0x274d30f59476,54,shift node:internal/fixed_queue:80:8,0xaad667411e8,~
code-source-info,0x274d30f59476,28,3300,3510,C0O3331C5O3341C9O3335C13O3354C15O3388C16O3400C17O3410C22O3420C28O3428C32O3465C36O3472C42O3479C44O3477C47O3457C51O3490C53O3506,,
code-creation,LazyCompile,10,254858,0x274d30f595be,42,emitBeforeScript node:internal/async_hooks:497:26,0x30ec9dbb9728,~
code-source-info,0x274d30f595be,24,16566,16717,C0O16606C12O16606C17O16662C22O16675C25O16666C31O16689C36O16689C41O16716,,
code-creation,LazyCompile,10,254897,0x274d30f5971e,180,pushAsyncContext node:internal/async_hooks:527:26,0x30ec9dbb98d0,~
code-source-info,0x274d30f5971e,24,17210,17755,C0O17265C7O17283C9O17282C13O17300C20O17334C24O17348C26O17359C32O17366C35O17377C40O17393C44O17363C49O17405C54O17412C59O17455C60O17458C65O17469C72O17492C78O17499C83O17515C85O17514C88O17497C92O17537C97O17548C104O17571C107O17575C113O17582C118O17598C120O17597C123O17580C127O17618C134O17636C142O17649C146O17655C153O17671C158O17690C162O17703C169O17719C174O17736C179O17754,,
code-creation,LazyCompile,10,254940,0x274d30f5991e,19,doEmitWarning node:internal/process/warning:74:23,0x456580ffb30,~
code-source-info,0x274d30f5991e,75,1598,1647,C0O1612C3O1620C11O1620C18O1646,,
code-creation,LazyCompile,10,255024,0x274d30f59c36,352,onWarning node:internal/process/warning:79:19,0x456580ffb80,~
code-source-info,0x274d30f59c36,75,1704,2835,C0O1718C2O1743C4O1732C9O1751C10O1758C11O1791C18O1796C22O1824C27O1853C33O1868C34O1875C35O1892C38O1900C46O1941C51O1966C56O1997C62O2009C67O2017C85O2033C100O2056C106O2066C109O2085C130O2097C134O2118C140O2149C154O2201C165O2246C170O2246C179O2269C182O2269C190O2327C198O2354C201O2374C216O2390C222O2405C226O2449C237O2527C243O2527C248O2542C256O2560C268O2543C275O2590C280O2609C293O2618C306O2658C316O2691C320O2715C326O2749C329O2749C333O2765C335O2788C338O2795C342O2812C343O2819C346O2819C351O2834,,
code-creation,LazyCompile,10,255154,0x274d30f59f96,353,basename node:path:1306:11,0xaad66763b40,~
code-source-info,0x274d30f59f96,35,39512,41904,C0O39530C4O39559C12O39559C17O39591C25O39591C30O39638C32O39655C35O39682C37O39693C41O39722C47O39729C52O39740C57O39755C61O39747C66O39771C68O39779C73O39797C75O39807C76O39831C80O39838C84O39872C87O39900C91O39907C95O39914C96O39914C101O39948C106O39948C112O39992C114O40005C116O40001C121O40175C125O40208C127O40218C131O40235C135O40281C137O40302C142O40468C144O40502C146O40523C150O40550C151O40561C156O40632C158O40645C161O40645C166O40641C171O40701C178O40714C183O40850C190O41013C193O41040C198O39922C203O39882C206O41115C208O41125C213O41142C220O41177C222O41185C227O41212C232O41226C246O41233C251O41272C252O41301C256O41308C260O41315C261O41315C266O41334C271O41338C279O41377C281O41373C286O41541C290O41572C292O41582C296O41597C300O41627C302O41635C307O41755C309O41785C311O41793C315O41323C320O41283C323O41817C325O41825C330O41839C332O41849C333O41854C347O41861C352O41900,,
tick,0x112a1f6,255235,0,0x0,2,0x11e9ce0,0x274d30f59d7f,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
code-creation,LazyCompile,10,255251,0x274d30f5a32e,149,lazyOption node:internal/process/warning:26:20,0x456580ff768,~
code-source-info,0x274d30f5a32e,75,430,965,C0O557C6O594C12O604C19O602C25O637C30O649C38O649C46O684C51O700C56O722C64O722C72O712C78O768C83O780C91O780C99O818C104O834C109O856C117O856C125O846C133O914C138O926C144O944C148O963,,
code-creation,LazyCompile,10,255288,0x274d30f5a4ee,41,writeOut node:internal/process/warning:46:18,0x456580ffa90,~
code-source-info,0x274d30f5a4ee,75,1083,1188,C0O1097C6O1115C12O1123C17O1157C24O1121C30O1171C35O1171C40O1187,,
code-creation,LazyCompile,10,255363,0x274d30f5a61e,38,warn node:internal/console/constructor:367:7,0xaad667479a8,~
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  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_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_INCOMPATIBLE_OPTION_PAIR\x2C\n  }\x2C\n} = require('internal/errors');\nconst { validateInteger } = 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\x2C\n  CHAR_LOWERCASE_E\x2C\n  CHAR_LOWERCASE_N\x2C\n  CHAR_UPPERCASE_C\x2C\n} = require('internal/constants');\nconst kCounts = Symbol('counts');\n\nconst kTraceConsoleCategory = 'node\x2Cnode.console';\nconst kTraceCount = CHAR_UPPERCASE_C;\nconst kTraceBegin = CHAR_LOWERCASE_B;\nconst kTraceEnd = CHAR_LOWERCASE_E;\nconst kTraceInstant = CHAR_LOWERCASE_N;\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 (typeof inspectOptions === 'object' && inspectOptions !== null) {\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  } else if (inspectOptions !== undefined) {\n    throw new ERR_INVALID_ARG_TYPE(\n      'options.inspectOptions'\x2C\n      'object'\x2C\n      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 && !ArrayIsArray(properties))\n      throw new ERR_INVALID_ARG_TYPE('properties'\x2C 'Array'\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 = {};\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,0x274d30f5a61e,30,11295,11379,C0O11295C3O11311C5O11316C7O11315C13O11333C18O11350C20O11349C24O11367C30O11332C37O11378,,
code-creation,LazyCompile,10,256182,0x274d30f5bcbe,50,value node:internal/console/constructor:332:20,0xaad66747770,~
code-source-info,0x274d30f5bcbe,30,10019,10191,C0O10047C2O10052C4O10051C8O10077C13O10071C19O10093C24O10093C29O10134C36O10154C44O10141C49O10185,,
code-creation,LazyCompile,10,256205,0x274d30f5bde6,27,get node:internal/console/constructor:215:14,0xaad66747458,~
code-source-info,0x274d30f5bde6,30,6194,6290,C0O6211C6O6226C9O6242C16O6233C22O6264C26O6278,,
code-creation,LazyCompile,10,256255,0x274d30f5bfae,97,getStderr node:internal/bootstrap/switches/is_main_thread:132:19,0x3fe299d3c558,~
script-source,87,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\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,0x274d30f5bfae,87,3619,3932,C0O3626C6O3638C10O3652C11O3655C17O3664C24O3662C30O3696C37O3717C40O3724C44O3715C48O3799C55O3815C59O3833C64O3844C70O3857C73O3865C86O3865C92O3916C96O3930,,
tick,0x7efc33641632,256551,0,0x0,3,0x11e9ce0,0x274d30f5bdef,0x274d30f5bcc6,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
code-creation,LazyCompile,10,256618,0x274d30f5cbee,305,createWritableStdioStream node:internal/bootstrap/switches/is_main_thread:41:35,0x3fe299d3c448,~
code-source-info,0x274d30f5cbee,87,1312,2845,C0O1325C4O1403C7O1403C20O1395C53O1460C59O1460C64O1482C66O1499C73O1491C79O1522C81O1535C85O1550C87O1605C93O1605C98O1653C100O1682C110O1662C116O1715C118O1728C122O1742C124O1801C130O1801C135O2033C138O2045C147O2064C152O2072C159O2075C164O2120C170O2120C175O2101C180O2163C184O2180C199O2214C208O2172C216O2319C220O2336C232O2355C238O2328C244O2438C246O2451C250O2467C252O2610C258O2610C263O2597C268O2635C275O2667C285O2644C291O2783C293O2793C297O2802C298O2818C302O2829C304O2843,,
code-creation,Eval,10,256822,0x274d30f5d32e,5, node:tty:1:1,0x274d30f5d118,~
script-source,176,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,0x274d30f5d32e,176,0,5065,C0O0C4O5065,,
code-creation,Function,10,257046,0x274d30f5da16,426, node:tty:1:1,0x274d30f5d298,~
code-source-info,0x274d30f5da16,176,0,5065,C0O0C53O1159C59O1168C65O1187C70O1239C76O1239C80O1239C82O1278C85O1278C90O1263C96O1268C102O1322C108O1322C112O1322C114O1398C117O1405C122O1358C128O1374C134O1453C140O1453C145O1422C150O1439C155O1523C156O1523C158O2128C161O2160C169O2175C174O2182C179O2128C184O2194C190O2231C195O2194C200O2241C203O2252C212O2273C216O3462C219O3495C227O3510C232O3517C237O3462C242O3529C248O3567C253O3529C258O3577C261O3589C267O3605C271O3614C274O3626C281O3650C285O3668C288O3680C295O3700C299O3714C302O3726C311O3749C315O4210C318O4222C327O4241C331O4385C334O4397C343O4418C347O4568C350O4580C359O4600C363O4743C366O4755C375O4781C379O4920C382O4932C391O4956C395O5011C402O5030C408O5038C414O5050C420O5026C425O5064,,
code-creation,Eval,10,257327,0x274d30f5eec6,5, node:internal/tty:1:1,0x274d30f5ec50,~
script-source,177,node:internal/tty,// MIT License\n\n// Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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 {\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_OUT_OF_RANGE\n} = require('internal/errors').codes;\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 ('TRAVIS' in env || 'CIRCLECI' in env || 'APPVEYOR' in env ||\n      'GITLAB_CI' 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    if (typeof count !== 'number') {\n      throw new ERR_INVALID_ARG_TYPE('count'\x2C 'number'\x2C count);\n    }\n    if (count < 2) {\n      throw new ERR_OUT_OF_RANGE('count'\x2C '>= 2'\x2C count);\n    }\n  }\n  return count <= 2 ** getColorDepth(env);\n}\n\nmodule.exports = {\n  getColorDepth\x2C\n  hasColors\n};\n
code-source-info,0x274d30f5eec6,177,0,6547,C0O0C4O6547,,
code-creation,Function,10,257633,0x274d30f5f346,372, node:internal/tty:1:1,0x274d30f5ee30,~
code-source-info,0x274d30f5f346,177,0,6547,C0O0C72O1186C78O1208C84O1231C90O1255C96O1356C102O1356C107O1382C112O1311C118O1335C124O1395C125O1395C127O1424C129O1424C131O1445C133O1445C135O1467C137O1467C139O1489C141O1489C143O1906C150O1919C156O1942C162O1966C168O1989C174O2012C180O2034C186O2055C192O2079C198O2103C204O2125C210O2148C216O2169C222O2192C228O2211C234O2316C240O2408C246O1906C248O2449C342O2449C344O2570C345O2570C347O6496C354O6517C360O6534C366O6511C371O6546,,
tick,0x7efc33641641,257668,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x274d30f5daa2,0x13b40bab9d2d,0x13b40bab8ffd,0x274d30f5cc29,0x274d30f5bfbf,0x274d30f5bdef,0x274d30f5bcc6,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
code-creation,LazyCompile,10,257859,0x274d30f600e6,194,WriteStream node:tty:85:21,0x274d30f5d400,~
code-source-info,0x274d30f600e6,176,2514,3460,C0O2523C2O2534C7O2563C12O2570C17O2590C18O2593C20O2600C26O2605C32O2618C37O2627C44O2633C49O2627C50O2672C52O2690C67O2690C73O2725C79O2751C86O2757C91O2751C92O2794C97O2798C102O2805C114O2830C118O2805C124O3271C129O3279C136O3279C141O3317C151O3317C157O3350C162O3358C167O3358C173O3384C175O3400C176O3422C179O3413C183O3431C185O3450C188O3441C193O3459,,
code-creation,LazyCompile,10,258012,0x274d30f60bbe,674,Socket node:net:283:16,0x1c78303fd7d8,~
code-source-info,0x274d30f60bbe,117,7049,10627,C0O7063C2O7074C7O7094C12O7101C17O7121C18O7125C19O7141C23O7345C25O7350C30O7367C34O7375C35O7390C39O7401C41O7406C45O7415C49O7425C50O7438C54O7448C55O7459C59O7469C61O7474C65O7487C69O7498C71O7503C75O7524C79O7531C81O7536C85O7546C89O7556C91O7561C95O7570C99O7580C101O7585C105O7596C109O7606C111O7611C115O7623C119O7634C125O7671C132O7687C143O7730C149O7809C151O7833C154O7849C159O7833C163O7831C167O7923C168O7941C172O7952C173O7972C177O8012C178O8034C182O8045C187O8052C192O8059C197O8059C203O8095C209O8132C213O8122C217O8155C219O8160C225O8198C230O8179C234O8177C240O8229C246O8261C251O8285C253O8403C258O8418C263O8416C267O8459C272O8467C277O8467C283O8724C285O8739C293O8745C298O8739C299O8779C301O8784C304O8808C309O8816C314O8816C318O8801C322O8835C324O8843C331O8855C336O8879C343O8898C345O8887C352O8907C356O8989C361O8997C368O8997C374O9022C376O9039C384O9045C389O9039C390O9088C391O9101C395O9115C397O9129C400O9129C404O9127C408O9320C413O9346C426O9320C431O9452C436O9462C446O9522C449O9542C454O9522C460O9567C468O9613C476O9662C484O9693C486O9698C490O9707C494O9721C496O9726C499O9747C503O9738C509O9774C511O9779C514O9797C518O9788C522O9815C524O9820C527O9840C531O9831C535O9917C546O9917C552O9952C555O9952C559O9979C560O9997C564O10007C566O10029C570O10170C576O10189C582O10198C587O10227C593O10314C599O10330C603O10350C608O10358C613O10358C617O10376C618O10397C624O10430C630O10456C637O10456C642O10502C643O10514C647O10524C648O10537C652O10577C654O10582C658O10594C662O10601C664O10606C668O10621C673O10626,,
code-creation,LazyCompile,10,258084,0x274d30f6113e,109,Duplex node:internal/streams/duplex:52:16,0x456580deb58,~
script-source,57,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
code-source-info,0x274d30f6113e,57,1951,2360,C0O1965C2O1976C7O2000C12O2007C17O2027C18O2031C23O2040C28O2040C34O2063C39O2072C44O2072C50O2095C51O2114C55O2125C59O2156C65O2165C70O2182C71O2196C75O2222C81O2231C86O2248C87O2262C91O2288C97O2302C102O2321C103O2340C108O2359,,
code-creation,LazyCompile,10,258384,0x274d30f6176e,220,Readable node:internal/streams/readable:179:18,0x456580d0588,~
script-source,51,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<Writable>.\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.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    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    this.emit('data'\x2C ret);\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    // v1 stream\n    const src = stream;\n    stream = new Readable({\n      objectMode: true\x2C\n      destroy(err\x2C callback) {\n        destroyImpl.destroyer(src\x2C err);\n        callback(err);\n      }\n    }).wrap(src);\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  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 state\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(state\x2C 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
code-source-info,0x274d30f6176e,51,6217,7097,C0O6217C9O6231C16O6242C21O6268C28O6275C33O6297C34O6452C41O6468C44O6475C48O6457C52O6486C71O6508C76O6506C80O6555C84O6593C92O6620C95O6641C99O6631C103O6671C111O6701C114O6725C118O6715C122O6758C130O6790C133O6816C137O6806C141O6843C149O6854C151O6870C158O6903C166O6870C171O6925C178O6932C186O6932C192O6956C199O6968C212O6968C219O7096,,
tick,0x1257f00,260034,0,0x0,3,0x11febe0,0x274d30f5cc37,0x274d30f5bfbf,0x274d30f5bdef,0x274d30f5bcc6,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
tick,0xfb3196,260059,0,0x0,3,0x11febe0,0x274d30f5cc37,0x274d30f5bfbf,0x274d30f5bdef,0x274d30f5bcc6,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
code-creation,LazyCompile,10,260071,0x274d30f64486,18,Stream node:internal/streams/legacy:10:16,0x456580c5a20,~
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,0x274d30f64486,50,127,160,C0O138C5O141C10O141C17O159,,
code-creation,LazyCompile,10,260417,0x274d30f64c36,349,ReadableState node:internal/streams/readable:78:23,0x456580d0538,~
code-source-info,0x274d30f64c36,51,2519,6197,C0O2857C6O2896C8O2925C11O2932C15O2914C20O3065C25O3086C27O3105C33O3081C37O3121C41O3162C52O3185C54O3204C60O3155C64O3370C69O3391C73O3405C88O3405C97O3478C102O3478C106O3389C110O3681C112O3699C115O3695C120O3693C124O3715C125O3727C129O3734C131O3745C135O3753C136O3766C140O3776C141O3787C145O3798C146O3814C150O3825C151O3838C155O4032C156O4049C160O4329C161O4339C165O4460C166O4478C170O4489C171O4510C175O4521C176O4544C180O4555C181O4576C185O4587C187O4592C191O4601C195O4687C196O4705C200O4776C202O4794C208O4813C214O4823C218O4791C222O4910C224O4930C230O4949C236O4961C240O4927C244O5003C245O5018C249O5271C250O5284C254O5354C255O5366C259O5470C260O5488C264O5695C269O5719C271O5738C279O5716C283O5871C284O5894C288O5904C289O5925C293O5987C294O6004C298O6016C299O6029C303O6039C304O6053C308O6063C312O6086C318O6102C320O6121C323O6143C330O6117C335O6115C339O6182C343O6172C348O6196,,
code-creation,LazyCompile,10,260496,0x274d30f6506e,98,getHighWaterMark node:internal/streams/state:19:26,0x456580d3c10,~
code-source-info,0x274d30f6506e,53,424,832,C0O478C12O478C18O529C21O552C26O557C33O585C38O611C47O633C56O678C69O684C74O678C75O732C80O739C84O754C85O781C88O818C93O788C97O830,,
code-creation,LazyCompile,10,260522,0x274d30f651de,26,highWaterMarkFrom node:internal/streams/state:10:27,0x456580d3ab0,~
code-source-info,0x274d30f651de,53,168,309,C0O218C7O250C15O270C19O288C25O307,,
code-creation,LazyCompile,10,260555,0x274d30f652f6,17,BufferList node:internal/streams/buffer_list:14:14,0x456580d2f90,~
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,0x274d30f652f6,52,265,338,C0O274C1O284C5O296C6O306C10O318C11O330C16O337,,
tick,0x7efc336353a5,260759,0,0x0,3,0x11febe0,0x274d30f64ca9,0x274d30f617b5,0x274d30f6115a,0x274d30f60c83,0x274d30f6015c,0x274d30f5cc37,0x274d30f5bfbf,0x274d30f5bdef,0x274d30f5bcc6,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
code-creation,LazyCompile,10,260858,0x274d30f65a36,98,construct node:internal/streams/destroy:225:19,0x456580c31f0,~
script-source,46,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 (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,0x274d30f65a36,46,4626,5014,C0O4661C8O4694C9O4701C10O4726C15O4761C20O4780C24O4793C25O4807C29O4822C33O4835C34O4849C38O4872C45O4877C48O4872C54O4908C61O4922C64O4908C72O4934C77O4959C78O4966C79O4974C82O4982C90O4982C97O5013,,
code-creation,LazyCompile,10,261248,0x274d30f666d6,266,Writable node:internal/streams/writable:219:18,0x456580dcca0,~
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,0x274d30f666d6,56,7409,8929,C0O7409C9O7983C16O8000C19O8007C23O7989C27O8019C33O8037C44O8037C51O8093C58O8100C63O8122C64O8126C83O8148C88O8146C92O8195C96O8233C104O8261C107O8283C111O8273C115O8314C123O8343C126O8366C130O8356C134O8398C142O8428C145O8452C149O8442C153O8485C161O8513C164O8535C168O8525C172O8566C180O8598C183O8624C187O8614C191O8651C197O8665C204O8698C212O8665C217O8720C224O8727C232O8727C238O8751C245O8763C258O8763C265O8928,,
tick,0x7efc3373d8f0,262265,0,0x0,3,0x11e9ce0,0x274d30f6116a,0x274d30f60c83,0x274d30f6015c,0x274d30f5cc37,0x274d30f5bfbf,0x274d30f5bdef,0x274d30f5bcc6,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
code-creation,LazyCompile,10,262330,0x274d30f686e6,341,WritableState node:internal/streams/writable:77:23,0x456580dcb40,~
code-source-info,0x274d30f686e6,56,2482,6983,C0O2816C6O2855C8O2884C11O2891C15O2873C20O2999C25O3020C27O3039C33O3015C37O3055C41O3096C52O3119C54O3138C60O3089C64O3347C69O3368C73O3382C88O3382C97O3455C102O3455C106O3366C110O3522C111O3539C115O3574C116O3589C120O3635C121O3647C125O3705C126O3716C130O3758C131O3772C135O3811C136O3826C140O4025C144O4047C150O4061C156O4075C158O4097C159O4094C163O4305C168O4329C170O4348C178O4326C182O4526C183O4538C187O4602C188O4615C192O4692C193O4704C197O4968C198O4978C202O5181C203O5203C207O5269C210O5292C217O5292C223O5282C227O5392C228O5405C232O5477C233O5491C237O5606C238O5630C242O5641C245O5641C249O5768C250O5783C254O5973C255O5990C259O6128C260O6145C264O6232C265O6250C269O6321C271O6339C277O6358C283O6368C287O6336C291O6455C293O6475C299O6494C305O6506C309O6472C313O6729C314O6742C318O6812C319O6824C323O6928C324O6946C328O6958C330O6963C335O6976C340O6982,,
code-creation,LazyCompile,10,262398,0x274d30f68b06,23,resetBuffer node:internal/streams/writable:202:21,0x456580dcb90,~
code-source-info,0x274d30f68b06,56,7005,7117,C0O7017C2O7032C6O7040C7O7060C11O7067C12O7084C16O7094C17O7108C22O7116,,
code-creation,LazyCompile,10,262448,0x274d30f68c1e,21,set node:internal/streams/readable:1178:8,0x456580d1530,~
code-source-info,0x274d30f68c1e,51,35898,36025,C0O35948C6O35979C13O36007C15O36003C20O36024,,
code-creation,LazyCompile,10,262483,0x274d30f68d26,14,set node:net:1688:6,0x1c78303ff5e8,~
code-source-info,0x274d30f68d26,117,45020,45053,C0O45026C2O45038C7O45047C13O45051,,
code-creation,LazyCompile,10,262503,0x274d30f68e26,8,get node:net:1687:6,0x1c78303ff598,~
code-source-info,0x274d30f68e26,117,44985,45013,C0O44990C2O45002C4O45001C7O45011,,
code-creation,LazyCompile,10,262525,0x274d30f68f1e,32,getNewAsyncId node:net:156:23,0x1c78303fd5f8,~
code-source-info,0x274d30f68f1e,117,3982,4098,C0O3995C4O4028C14O4061C17O4061C22O4083C27O4083C31O4096,,
code-creation,LazyCompile,10,262589,0x274d30f690e6,196,Readable.on node:internal/streams/readable:870:33,0x456580d0e68,~
code-source-info,0x274d30f690e6,51,27678,28577,C0O27703C5O27710C10O27720C15O27723C29O27723C35O27764C40O27783C42O27790C47O27972C55O27972C62O27998C65O27965C69O28091C75O28099C80O28121C85O28121C91O28140C93O28147C98O28180C104O28201C110O28228C112O28273C118O28252C122O28287C123O28301C127O28316C128O28338C132O28353C140O28380C145O28394C150O28353C155O28420C161O28438C164O28438C170O28482C176O28501C179O28509C187O28509C193O28564C195O28575,,
code-creation,LazyCompile,10,262648,0x274d30f6936e,135,initSocketHandle node:net:254:26,0x1c78303fd788,~
code-source-info,0x274d30f6936e,117,6321,6899,C0O6337C5O6337C9O6353C10O6368C14O6454C20O6474C27O6482C32O6496C36O6513C43O6530C45O6528C49O6548C51O6553C57O6591C62O6572C66O6570C70O6620C72O6625C74O6624C78O6639C80O6675C82O6680C84O6679C88O6699C90O6740C94O6758C99O6763C105O6796C106O6803C107O6812C109O6817C114O6826C118O6856C123O6864C128O6864C134O6898,,
code-creation,LazyCompile,10,262707,0x274d30f695ae,120,undestroy node:internal/streams/destroy:160:19,0x456580c3130,~
code-source-info,0x274d30f695ae,46,3064,3661,C0O3086C5O3119C10O3138C14O3151C15O3165C19O3177C20O3186C24O3199C25O3214C29O3227C30O3239C34O3252C35O3262C39O3274C40O3289C44O3302C45O3312C49O3325C50O3333C54O3346C55O3359C59O3375C63O3388C64O3402C68O3414C69O3426C73O3439C74O3448C78O3461C79O3476C83O3489C84O3499C88O3511C89O3526C93O3539C94O3547C98O3560C99O3569C103O3582C104O3596C108O3609C109O3623C113O3636C114O3647C119O3660,,
tick,0x10aa656,262783,0,0x0,0,0xf48b80,0x274d30f60dee,0x274d30f6015c,0x274d30f5cc37,0x274d30f5bfbf,0x274d30f5bdef,0x274d30f5bcc6,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
code-creation,LazyCompile,10,262912,0x274d30f69c5e,96,value node:internal/console/constructor:303:20,0xaad66747660,~
code-source-info,0x274d30f69c5e,30,9207,9689,C0O9236C2O9241C4O9240C8O9260C10O9270C15O9307C21O9342C29O9392C34O9392C41O9408C48O9452C53O9463C58O9463C64O9480C66O9515C72O9549C74O9564C78O9591C80O9606C81O9622C87O9637C93O9660C95O9683,,
code-creation,LazyCompile,10,263064,0x274d30f6a2de,636,getColorDepth node:internal/tty:109:23,0x274d30f5ef48,~
code-source-info,0x274d30f6a2de,177,3209,6068,C7O3224C16O3364C22O3409C64O3482C67O3482C71O3520C75O3537C76O3562C79O3562C83O3600C87O3618C88O3643C91O3643C95O3681C99O3699C100O3723C104O3739C105O3761C111O3843C117O4073C124O4078C129O4096C133O4112C134O4120C137O4132C144O4141C149O4202C155O4259C161O4259C166O4247C171O4280C176O4313C183O4292C191O4290C197O4512C203O4526C206O4516C211O4530C216O4559C223O4569C226O4559C229O4580C233O4590C238O4608C242O4626C243O4633C247O4643C252O4661C256O4679C257O4691C261O4708C262O4724C268O4736C272O4754C273O4770C279O4780C284O4793C294O4814C304O4835C314O4863C319O4877C326O4885C331O4909C335O4927C336O4938C340O4954C341O4962C346O4985C351O4999C361O5063C366O5006C375O5089C381O5101C383O5110C384O5130C419O5183C427O5215C435O5251C440O5215C447O5291C451O5309C452O5324C456O5342C457O5391C461O5409C462O5443C466O5461C467O5477C474O5487C479O5510C486O5520C491O5539C495O5557C496O5573C509O5585C521O5627C526O5589C533O5642C539O5660C540O5688C547O5719C552O5688C556O5688C558O5731C567O5744C572O5763C581O5779C584O5789C585O5800C596O5823C604O5804C611O5924C617O5941C620O6009C626O6026C630O6043C631O6050C635O6066,,
code-creation,LazyCompile,10,263350,0x274d30f6af56,49,formatWithOptions node:internal/util/inspect:1881:27,0x73467c95ea8,~
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} = 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]*(?:;[-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} <Complex prototype>`;\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(`<ref *${index}>`\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('<uninitialized>'\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('<items unknown>'\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('<pending>'\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('<rejected>'\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 = `<Inspection threw (${err.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  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,0x274d30f6af56,14,63597,63846,C0O63597C8O63627C18O63700C34O63706C39O63700C40O63789C43O63796C48O63844,,
tick,0x7efc33641626,266238,0,0x0,3,0x11e9ce0,0x274d30f5bcea,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
tick,0x7efc3363549c,266258,0,0x0,3,0x11e9ce0,0x274d30f5bcea,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
tick,0x7efc33a63f40,266264,0,0x0,3,0x11e9ce0,0x274d30f5bcea,0x274d30f5a636,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
code-creation,LazyCompile,10,266386,0x274d30f6f4b6,855,formatWithOptionsInternal node:internal/util/inspect:1889:35,0x73467c95f20,~
code-source-info,0x274d30f6f4b6,14,63882,67725,C0O63923C1O63927C5O63942C7O63957C10O63974C13O63981C19O64027C26O64034C31O64049C33O64062C34O64077C36O64104C38O64125C40O64138C44O64145C47O64130C52O64163C57O64167C65O64203C70O64245C77O64271C80O64245C86O64292C88O64298C92O64311C96O64302C112O64331C180O64410C185O64414C189O64435C195O64486C204O64525C206O64496C214O64556C222O64607C236O64653C246O64713C255O64778C257O64759C263O64806C270O64823C272O64816C279O64872C284O64890C286O64922C294O64965C299O64994C304O65026C308O64882C314O65078C316O65128C321O65151C324O65155C329O65138C334O65177C336O65243C341O65247C345O65268C351O65319C365O65365C373O65416C378O65472C387O65511C393O65518C395O65511C401O65482C407O65559C409O65608C414O65626C417O65630C422O65618C428O65668C430O65718C435O65736C438O65740C443O65768C450O65812C455O65845C461O65874C465O65728C471O65908C473O65978C478O65982C482O66003C488O66058C502O66108C510O66163C515O66219C524O66297C530O66312C532O66297C538O66229C544O66357C546O66425C551O66429C555O66450C561O66503C566O66559C575O66637C581O66654C583O66637C589O66569C595O66697C597O66746C603O66768C606O66796C608O66845C610O66852C623O66852C635O66907C637O66919C641O66938C643O67035C645O67067C647O67085C650O67079C655O67104C657O67111C662O67150C673O67111C685O67178C687O67185C694O67204C696O67216C702O67236C704O67249C709O67269C711O67276C723O67276C735O67327C737O67339C741O64151C746O64112C752O67372C753O67384C758O67399C763O67410C766O67448C770O67440C775O67466C777O67473C780O67473C792O67548C796O67541C801O67576C803O67580C807O67589C809O67596C816O67606C828O67641C837O67674C841O67685C844O67701C849O67532C852O67712C854O67723,,
code-creation,LazyCompile,10,266493,0x274d30f6fc26,269,value node:internal/console/constructor:261:20,0xaad667475d8,~
code-source-info,0x274d30f6fc26,30,7688,9126,C0O7745C5O7786C7O7791C9O7790C13O7831C15O7848C17O7844C21O7881C23O7898C29O7913C34O7949C38O7974C44O8001C49O8045C55O8052C60O8069C68O8073C75O8124C80O8156C90O8176C98O8133C105O8210C107O8231C112O8255C122O8278C123O8295C128O8320C133O8320C138O8334C145O8651C153O8651C160O8674C165O8698C176O8698C182O8735C187O8735C206O8931C216O8935C222O8970C224O8970C238O9075C239O9082C250O9082C268O9125,,
code-creation,LazyCompile,10,266543,0x274d30f6fec6,31,listenerCount node:events:726:23,0x30ec9dbb2a20,~
code-source-info,0x274d30f6fec6,13,20678,20946,C0O20709C5O20721C7O20772C9O20778C13O20791C17O20837C19O20846C20O20858C24O20914C28O20921C29O20935C30O20944,,
code-creation,LazyCompile,10,266574,0x274d30f6ffe6,39,once node:events:532:44,0x30ec9dbb26b0,~
code-source-info,0x274d30f6ffe6,13,15429,15542,C0O15450C3O15450C7O15483C24O15492C30O15483C36O15528C38O15540,,
code-creation,LazyCompile,10,266606,0x274d30f701d6,60,_onceWrap node:events:518:19,0x30ec9dbb2660,~
code-source-info,0x274d30f701d6,13,15002,15225,C0O15045C6O15069C12O15080C18O15088C24O15094C31O15124C34O15136C39O15136C45O15151C47O15168C51O15182C53O15195C57O15208C59O15223,,
code-creation,LazyCompile,10,266669,0x274d30f7030e,26,Writable.write node:internal/streams/writable:333:36,0x456580dce50,~
code-source-info,0x274d30f7030e,56,10749,10827,C0O10775C15O10782C22O10816C25O10825,,
code-creation,LazyCompile,10,266750,0x274d30f70506,338,_write node:internal/streams/writable:283:16,0x456580dce00,~
code-source-info,0x274d30f70506,56,9383,10712,C0O9438C5O9457C11O9499C14O9535C22O9567C26O9605C34O9631C36O9644C43O9661C46O9668C51O9668C58O9696C65O9702C70O9696C71O9742C77O9778C81O9795C85O9821C90O9827C95O9821C96O9877C102O9895C108O9944C114O9958C119O9979C124O9994C129O9994C137O10025C143O10065C145O10086C147O10075C152O10102C158O10134C163O10145C168O10145C175O10175C180O10190C185O10190C192O10224C198O10264C216O10270C221O10264C222O10374C224O10391C230O10405C235O10411C243O10464C249O10481C259O10487C265O10529C269O10544C272O10552C277O10552C283O10575C296O10575C301O10614C303O10625C304O10632C310O10647C314O10653C332O10660C337O10710,,
code-creation,LazyCompile,10,266824,0x274d30f708de,217,writeOrBuffer node:internal/streams/writable:365:23,0x456580dd060,~
code-source-info,0x274d30f708de,56,11668,12659,C0O11733C10O11756C15O11767C22O11783C25O11780C29O11848C34O11863C38O11855C42O11952C44O11966C45O11982C49O12003C55O12020C61O12036C67O12054C73O12079C78O12088C90O12095C96O12102C102O12112C106O12088C111O12139C119O12162C124O12184C125O12201C129O12230C137O12250C142O12267C143O12281C149O12311C151O12326C155O12337C157O12351C161O12367C162O12381C166O12393C167O12404C171O12423C176O12453C190O12423C195O12467C196O12478C200O12608C204O12629C211O12647C216O12657,,
code-creation,LazyCompile,10,266863,0x274d30f70b26,26,Socket._write node:net:791:35,0x1c78303fee10,~
code-source-info,0x274d30f70b26,117,20223,20296,C0O20253C19O20253C25O20295,,
code-creation,LazyCompile,10,266913,0x274d30f70d36,186,Socket._writeGeneric node:net:754:42,0x1c78303fecd0,~
code-source-info,0x274d30f70d36,117,19333,20086,C0O19333C21O19535C27O19553C29O19571C33O19583C35O19605C39O19626C52O19626C58O19729C59O19736C60O19743C61O19761C65O19771C67O19793C71O19812C77O19827C84O19834C87O19830C93O19827C97O19860C98O19873C99O19886C104O19886C108O19908C110O19915C114O19931C130O19937C138O19979C157O19985C163O20035C169O20046C173O20051C176O20078C180O20072C185O20085,,
code-creation,LazyCompile,10,266955,0x274d30f70fae,45,_unrefTimer node:net:402:52,0x1c78303fdff8,~
code-source-info,0x274d30f70fae,117,10820,10930,C0O10840C5O10848C9O10879C11O10885C13O10884C18O10902C20O10904C22O10903C26O10914C31O10914C35O10864C40O10827C44O10929,,
code-creation,LazyCompile,10,266999,0x274d30f710de,55,writeGeneric node:internal/stream_base_commons:147:22,0x3fe299d2dfa8,~
script-source,83,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  const stream = this.handle[owner_symbol];\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  const stream = this[owner_symbol];\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,0x274d30f710de,83,3597,3781,C0O3640C5O3661C7O3660C11O3640C17O3690C29O3690C35O3730C47O3730C52O3768C54O3779,,
tick,0x1257f00,267351,0,0x0,3,0x11e9ce0,0x274d30f70dd3,0x274d30f70b39,0x274d30f7099c,0x274d30f70652,0x274d30f7031d,0x274d30f6fce1,0x274d30f5a63c,0xc13800,0x274d30f5a511,0x274d30f59d90,0x27ba8ebceb83,0x274d30f59929,0x274d30f590c1
code-creation,LazyCompile,10,267380,0x274d30f71b56,47,createWriteWrap node:internal/stream_base_commons:109:25,0x3fe299d2dee8,~
code-source-info,0x274d30f71b56,83,2719,2933,C0O2754C5O2754C11O2774C13O2785C17O2797C19O2812C23O2833C24O2843C28O2854C29O2864C33O2871C34O2882C38O2892C40O2905C44O2920C46O2931,,
code-creation,LazyCompile,10,267463,0x274d30f71d6e,215,handleWriteReq node:internal/stream_base_commons:45:24,0x3fe299d2de48,~
code-source-info,0x274d30f71d6e,83,1174,2006,C0O1208C5O1227C80O1297C85O1297C92O1327C99O1347C101O1346C106O1376C108O1387C112O1401C114O1412C115O1477C120O1477C126O1506C127O1562C132O1562C138O1589C139O1628C144O1628C150O1656C151O1753C156O1753C162O1780C163O1821C168O1828C173O1828C180O1875C185O1875C192O1907C199O1927C201O1926C206O1956C208O1967C212O1983C214O1994,,
code-creation,LazyCompile,10,267714,0x274d30f71fc6,92,afterWriteDispatched node:internal/stream_base_commons:155:30,0x3fe299d2e018,~
code-source-info,0x274d30f71fc6,83,3812,4086,C0O3831C2O3843C7O3859C9O3858C12O3841C16O3877C18O3891C23O3907C25O3906C30O3887C34O3931C35O3939C40O3950C42O3960C48O3993C56O3960C62O3957C66O4001C67O4014C73O4034C81O4069C86O4069C91O4085,,
code-creation,LazyCompile,10,267806,0x274d30f7222e,323,onwrite node:internal/streams/writable:425:17,0x456580dd150,~
code-source-info,0x274d30f7222e,56,13444,15067,C0O13482C5O13519C10O13544C15O13556C19O13592C26O13619C29O13615C35O13592C40O13649C41O13656C42O13664C43O13678C47O13689C48O13703C52O13713C57O13735C64O13726C68O13747C69O13762C73O13770C77O13874C81O13942C87O13959C89O13973C93O14091C99O14117C104O14132C110O14156C117O14179C121O14196C125O14214C128O14222C148O14222C155O14288C170O14288C177O14356C182O14365C187O14380C191O14372C196O14403C199O14403C204O14442C208O14723C214O14770C219O14789C226O14792C231O14816C242O14840C248O14867C255O14906C261O14910C267O14918C273O14892C277O14935C280O14943C288O14974C293O14943C301O15022C316O15022C322O15066,,
code-creation,LazyCompile,10,267970,0x274d30f7253e,62,Readable.removeListener node:internal/streams/readable:900:45,0x456580d0ed8,~
code-source-info,0x274d30f7253e,51,28680,29237,C0O28705C5O28712C10O28722C15O28737C29O28737C35O28811C37O28818C42O29168C45O29176C53O29176C59O29224C61O29235,,
code-creation,LazyCompile,10,268057,0x274d30f726ce,307,removeListener node:events:561:28,0x30ec9dbb2778,~
code-source-info,0x274d30f726ce,13,16175,17446,C0O16200C3O16200C7O16252C12O16267C14O16301C16O16313C17O16334C19O16340C23O16354C25O16386C27O16398C28O16406C30O16415C35O16436C42O16445C47O16469C54O16480C59O16493C64O16510C66O16525C71O16525C75O16523C81O16570C83O16584C85O16612C91O16645C99O16679C114O16645C121O16725C127O16782C130O16813C134O16820C138O16827C139O16827C144O16850C146O16858C152O16862C159O16882C163O16886C170O16895C175O16923C180O16949C182O16834C187O16795C190O16987C191O17000C196O17015C198O17027C199O17037C200O17050C205O17072C210O17072C216O17106C222O17147C228O17159C233O17183C240O17157C246O17205C251O17205C256O17260C263O17267C268O17284C269O17303C272O17297C276O17328C282O17373C299O17373C304O17428C306O17440,,
code-creation,LazyCompile,10,268099,0x274d30f729de,13,destroyHooksExist node:internal/async_hooks:474:27,0x30ec9dbb9638,~
code-source-info,0x274d30f729de,24,16015,16050,C0O16022C5O16038C8O16029C12O16048,,
code-creation,LazyCompile,10,268121,0x274d30f72ade,32,emitAfterScript node:internal/async_hooks:505:25,0x30ec9dbb9778,~
code-source-info,0x274d30f72ade,24,16744,16840,C0O16758C5O16771C8O16762C14O16784C19O16784C23O16813C26O16813C31O16839,,
code-creation,LazyCompile,10,268163,0x274d30f72c56,167,popAsyncContext node:internal/async_hooks:541:25,0x30ec9dbb9920,~
code-source-info,0x274d30f72c56,24,17844,18431,C0O17878C7O17896C9O17895C13O17913C14O17929C19O17936C20O17949C21O17953C24O17957C31O17980C36O17996C38O17995C44O18015C49O18097C54O18104C58O18130C59O18153C61O18165C65O18172C72O18188C77O18209C80O18220C87O18238C90O18235C93O18207C97O18251C104O18267C109O18286C112O18297C119O18315C122O18324C125O18312C128O18284C132O18332C137O18358C142O18358C146O18367C153O18385C158O18399C162O18411C163O18425C166O18429,,
code-creation,LazyCompile,10,268186,0x274d30f72e46,13,enabledHooksExist node:internal/async_hooks:462:27,0x30ec9dbb9528,~
code-source-info,0x274d30f72e46,24,15838,15871,C0O15845C5O15861C8O15852C12O15869,,
tick,0x7efc336c02cf,268218,0,0x0,3,0x11e9ce0,0x274d30f72c6e,0x274d30f72af8,0x274d30f59148
code-creation,LazyCompile,10,268260,0x274d30f72f5e,46,afterWriteTick node:internal/streams/writable:482:24,0x456580dd1a0,~
code-source-info,0x274d30f72f5e,56,15092,15208,C0O15095C5O15103C10O15110C15O15117C20O15127C21O15152C25O15162C40O15169C45O15206,,
code-creation,LazyCompile,10,268313,0x274d30f730c6,104,afterWrite node:internal/streams/writable:487:20,0x456580dd1f0,~
code-source-info,0x274d30f730c6,56,15229,15585,C0O15285C7O15303C14O15322C20O15329C25O15348C30O15361C32O15382C33O15398C37O15418C45O15418C50O15455C60O15455C65O15466C71O15481C75O15489C78O15440C81O15512C87O15529C90O15529C94O15556C97O15556C103O15584,,
code-creation,LazyCompile,10,268342,0x274d30f73266,35,get node:internal/streams/duplex:94:8,0x456580dec38,~
code-source-info,0x274d30f73266,57,3274,3483,C0O3294C6O3339C12O3379C13O3392C14O3419C19O3434C25O3452C30O3467C34O3477,,
code-creation,LazyCompile,10,268378,0x274d30f733b6,87, node:internal/console/constructor:342:10,0xaad667478f0,~
code-source-info,0x274d30f733b6,30,10348,11166,C0O10565C7O10582C9O10578C17O10610C26O10629C31O10642C35O10670C40O10685C46O11081C54O11081C61O11104C66O11128C79O11128C86O11165,,
code-creation,LazyCompile,10,268428,0x274d30f7351e,85,finishMaybe node:internal/streams/writable:727:21,0x456580dd4c8,~
code-source-info,0x274d30f7351e,56,21275,21567,C0O21301C3O21305C9O21330C12O21330C17O21370C23O21380C31O21389C37O21416C43O21431C47O21441C51O21461C54O21469C68O21469C75O21525C78O21525C84O21566,,
code-creation,LazyCompile,10,268458,0x274d30f736be,73,needFinish node:internal/streams/writable:650:20,0x456580dd3d8,~
code-source-info,0x274d30f736be,56,19361,19652,C0O19387C6O19413C12O19444C18O19451C23O19477C30O19504C35O19513C41O19520C46O19546C53O19575C60O19603C67O19636C72O19650,,
code-creation,LazyCompile,10,268585,0x274d30f73996,439,processPromiseRejections node:internal/process/promises:203:34,0x30ec9dbbe6c8,~
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,0x274d30f73996,26,6333,8378,C0O6378C5O6401C11O6408C15O6453C20O6446C26O6453C31O6493C38O6513C41O6493C46O6472C51O6481C56O6542C59O6555C68O6555C76O6598C79O6606C84O6606C89O6416C92O6651C97O6678C102O6698C112O6698C114O6724C121O6744C124O6724C129O6797C134O6820C139O6820C145O6838C147O6877C149O6897C150O6916C154O6936C159O6944C164O6949C169O6976C176O7022C185O7381C194O7489C203O7653C212O7985C221O7072C223O7090C225O7079C237O7117C242O7166C250O7166C255O7245C264O7245C270O7289C272O7303C275O7303C280O7355C282O7419C291O7419C296O7463C298O7531C307O7531C312O7575C315O7575C320O7627C322O7706C331O7706C337O7750C339O7788C341O7806C343O7795C355O7835C360O7886C368O7886C373O7959C375O8050C384O8050C390O8094C392O8120C395O8120C400O8174C405O8191C409O8214C411O8239C413O6688C419O8285C425O8336C428O8363C434O8370C438O8376,,
code-creation,LazyCompile,10,269004,0x274d30f746b6,25,setHasRejectionToWarn node:internal/process/promises:71:31,0x30ec9dbbdcd8,~
code-source-info,0x274d30f746b6,26,2001,2061,C0O2013C7O2022C12O2045C19O2043C24O2060,,
tick,0x7efc337aeff3,269300,1,0xb03340,6,0xd44a10,0x1c78303ec909,0x160fe38
code-creation,Script,10,269550,0x274d30f750fe,149, file:///var/www/quadcode.com/build/server/chunks/index-d9e8b680.js:1:1,0x274d30f74808,~
script-source,178,file:///var/www/quadcode.com/build/server/chunks/index-d9e8b680.js,class o{constructor(t\x2Cn){this.status=t\x2Ctypeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`};}toString(){return JSON.stringify(this.body)}}class c{constructor(t\x2Cn){this.status=t\x2Cthis.location=n;}}class i{constructor(t\x2Cn){this.status=t\x2Cthis.data=n;}}function a(e\x2Ct){if(isNaN(e)||e<400||e>599)throw new Error(`HTTP error status codes must be between 400 and 599 \u2014 ${e} is invalid`);return new o(e\x2Ct)}function h(e\x2Ct){if(isNaN(e)||e<300||e>308)throw new Error("Invalid status code");return new c(e\x2Ct.toString())}function d(e\x2Ct){const n=JSON.stringify(e)\x2Cr=new Headers(t?.headers);return r.has("content-length")||r.set("content-length"\x2Cs.encode(n).byteLength.toString())\x2Cr.has("content-type")||r.set("content-type"\x2C"application/json")\x2Cnew Response(n\x2C{...t\x2Cheaders:r})}const s=new TextEncoder;function g(e\x2Ct){const n=new Headers(t?.headers);if(!n.has("content-length")){const r=s.encode(e);return n.set("content-length"\x2Cr.byteLength.toString())\x2Cnew Response(r\x2C{...t\x2Cheaders:n})}return new Response(e\x2C{...t\x2Cheaders:n})}\n\nexport { a\x2C c\x2C d\x2C g\x2C h\x2C i\x2C o };\n//# sourceMappingURL=index-d9e8b680.js.map\n
code-source-info,0x274d30f750fe,178,0,1124,C10O0C31O0C51O0C84O0C108O174C132O231C135O806C139O806C144O806C148O1124,,
code-creation,Script,10,269820,0x274d30f75d1e,124, file:///var/www/quadcode.com/build/server/chunks/ssr-c1febd33.js:1:1,0x274d30f75468,~
script-source,179,file:///var/www/quadcode.com/build/server/chunks/ssr-c1febd33.js,import { s\x2C f } from './index2-db879dd9.js';\n\nlet a;function l(t){a=t;}function d(){if(!a)throw new Error("Function called outside component initialization");return a}function b(t){d().$$.on_destroy.push(t);}function y(t\x2Cn){return d().$$.context.set(t\x2Cn)\x2Cn}function E(t){return d().$$.context.get(t)}function h(t){return t?.length!==void 0?t:Array.from(t)}const _=/[&"]/g\x2Cg=/[&<]/g;function w(t\x2Cn=!1){const e=String(t)\x2Co=n?_:g;o.lastIndex=0;let u=""\x2Cr=0;for(;o.test(e);){const c=o.lastIndex-1\x2Cs=e[c];u+=e.substring(r\x2Cc)+(s==="&"?"&amp;":s==='"'?"&quot;":"&lt;")\x2Cr=c+1;}return u+e.substring(r)}function R(t\x2Cn){t=h(t);let e="";for(let o=0;o<t.length;o+=1)e+=n(t[o]\x2Co);return e}const S={$$render:()=>""};function T(t\x2Cn){if(!t||!t.$$render)throw n==="svelte:component"&&(n+=" this={...}")\x2Cnew Error(`<${n}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled\x2C rather than imported as pre-compiled modules. Otherwise you may need to fix a <${n}>.`);return t}let i;function A(t){function n(e\x2Co\x2Cu\x2Cr\x2Cc){const s=a\x2Cp={on_destroy:i\x2Ccontext:new Map(c||(s?s.$$.context:[]))\x2Con_mount:[]\x2Cbefore_update:[]\x2Cafter_update:[]\x2Ccallbacks:f()};l({$$:p});const f$1=t(e\x2Co\x2Cu\x2Cr);return l(s)\x2Cf$1}return {render:(e={}\x2C{$$slots:o={}\x2Ccontext:u=new Map}={})=>{i=[];const r={title:""\x2Chead:""\x2Ccss:new Set}\x2Cc=n(r\x2Ce\x2C{}\x2Co\x2Cu);return s(i)\x2C{html:c\x2Ccss:{code:Array.from(r.css).map(s=>s.code).join(`\n`)\x2Cmap:null}\x2Chead:r.title+r.head}}\x2C$$render:n}}function C(t\x2Cn\x2Ce){if(n==null||e&&!n)return "";const o=e&&n===!0?"":`="${w(n\x2C!0)}"`;return ` ${t}${o}`}\n\nexport { A\x2C C\x2C E\x2C R\x2C S\x2C T\x2C b\x2C w\x2C y };\n//# sourceMappingURL=ssr-c1febd33.js.map\n
code-source-info,0x274d30f75d1e,179,0,1648,C10O0C58O0C78O0C85O50C86O50C88O364C92O364C94O374C98O374C100O683C105O693C115O683C118O1017C119O1017C123O1648,,
tick,0x1611315,270370,0,0x0,0,0x160fe5a
code-creation,Script,10,270538,0x274d30f76ab6,89, file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:1:1,0x274d30f76358,~
script-source,180,file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js,function o(){}function r(n){return n()}function f(){return Object.create(null)}function s(n){n.forEach(r);}function i(n){return typeof n=="function"}function l(n\x2Cu){return n!=n?u==u:n!==u||n&&typeof n=="object"||typeof n=="function"}function c(n\x2C...u){if(n==null){for(const e of u)e(void 0);return o}const t=n.subscribe(...u);return t.unsubscribe?()=>t.unsubscribe():t}function b(n){let u;return c(n\x2Ct=>u=t)()\x2Cu}function a$1(n){return n??""}\n\nconst a=[];function z(e\x2Co){return {subscribe:A(e\x2Co).subscribe}}function A(e\x2Co$1=o){let n;const r=new Set;function u(t){if(l(e\x2Ct)&&(e=t\x2Cn)){const i=!a.length;for(const s of r)s[1]()\x2Ca.push(s\x2Ce);if(i){for(let s=0;s<a.length;s+=2)a[s][0](a[s+1]);a.length=0;}}}function l$1(t){u(t(e));}function b(t\x2Ci=o){const s=[t\x2Ci];return r.add(s)\x2Cr.size===1&&(n=o$1(u\x2Cl$1)||o)\x2Ct(e)\x2C()=>{r.delete(s)\x2Cr.size===0&&n&&(n()\x2Cn=null);}}return {set:u\x2Cupdate:l$1\x2Csubscribe:b}}function E(e\x2Co$1\x2Cn){const r=!Array.isArray(e)\x2Cu=r?[e]:e;if(!u.every(Boolean))throw new Error("derived() expects stores as input\x2C got a falsy value");const l=o$1.length<2;return z(n\x2C(b\x2Ct)=>{let i$1=!1;const s$1=[];let d=0\x2Cp=o;const h=()=>{if(d)return;p();const c=o$1(r?s$1[0]:s$1\x2Cb\x2Ct);l?b(c):p=i(c)?c:o;}\x2Cy=u.map((c$1\x2Cg)=>c(c$1\x2C_=>{s$1[g]=_\x2Cd&=~(1<<g)\x2Ci$1&&h();}\x2C()=>{d|=1<<g;}));return i$1=!0\x2Ch()\x2Cfunction(){s(y)\x2Cp()\x2Ci$1=!1;}})}\n\nexport { A\x2C E\x2C a$1 as a\x2C b\x2C c\x2C f\x2C s\x2C z };\n//# sourceMappingURL=index2-db879dd9.js.map\n
code-source-info,0x274d30f76ab6,180,0,1409,C10O0C55O0C75O0C82O451C84O451C88O1409,,
code-creation,Script,10,270742,0x274d30f77056,62, file:///var/www/quadcode.com/build/server/chunks/shared-server-de020940.js:1:1,0x274d30f76df0,~
script-source,181,file:///var/www/quadcode.com/build/server/chunks/shared-server-de020940.js,let n={};function t(e){}function i(e){n=e;}\n\nexport { i\x2C n\x2C t };\n//# sourceMappingURL=shared-server-de020940.js.map\n
code-source-info,0x274d30f77056,181,0,116,C10O0C28O0C48O0C55O6C56O6C61O116,,
code-creation,LazyCompile,10,271274,0x274d30f7fa2e,5,get node:internal/bootstrap/pre_execution:314:8,0x27ba8ebda308,~
code-source-info,0x274d30f7fa2e,91,10092,10125,C0O10103C4O10119,,
code-creation,LazyCompile,10,271324,0x274d30f7fb16,9, file:///var/www/quadcode.com/build/shims.js:308:69,0x36d16aca5028,~
code-source-info,0x274d30f7fb16,133,10848,10862,C0O10853C4O10853C8O10862,,
tick,0x11f94b4,271446,0,0x0,0,0x11f9410,0x36d16acb27d5,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,271522,0x27e115b6a26,5,get node:internal/bootstrap/pre_execution:326:8,0x27ba8ebda3a8,~
code-source-info,0x27e115b6a26,91,10306,10338,C0O10317C4O10332,,
code-creation,LazyCompile,10,271547,0x27e115b6af6,5,get node:buffer:283:6,0x73467ca48f0,~
code-source-info,0x27e115b6af6,18,8091,8116,C0O8096C4O8114,,
code-creation,LazyCompile,10,272023,0x27e115b7d1e,26,requireConstants$2 file:///var/www/quadcode.com/build/shims.js:7334:29,0x36d16aca22c0,~
code-source-info,0x27e115b7d1e,133,218384,229897,C0O218390C4O218418C6O218437C7O218439C9O218462C11O218468C19O229859C23O229876C25O229895,,
code-creation,LazyCompile,10,272040,0x27e115b8cd6,1988, file:///var/www/quadcode.com/build/shims.js:7337:12,0x27e115b7c88,~
code-source-info,0x27e115b8cd6,133,218478,229858,C0O218478C9O218492C13O218499C24O218514C29O218499C34O218557C144O219133C150O219117C156O219102C162O219086C168O219062C174O219044C180O219021C186O218999C192O218976C198O218955C204O218932C210O218915C216O218899C222O218881C228O218863C234O218849C240O218830C246O218815C252O218790C258O218764C264O218745C270O218731C276O218708C282O218692C288O218669C294O218636C300O218620C306O218604C312O218581C316O219161C321O219161C325O219179C333O220788C342O220798C344O220812C351O220779C355O220822C363O220985C372O220994C374O221007C381O220976C385O221017C393O221612C402O221622C404O221636C411O221603C415O221646C423O221896C432O221914C434O221936C441O221887C445O221961C453O224583C462O224595C464O224611C471O224564C475O224621C485O224660C496O224682C507O224701C518O224721C529O224741C540O224760C551O224783C562O224806C573O224827C584O224847C595O224867C606O224888C617O224908C628O224932C639O224957C650O224979C661O225001C672O225021C683O225043C694O225065C705O225084C716O225106C727O225132C738O225156C749O225176C760O225204C771O225226C782O225251C793O225278C804O225299C815O225320C826O225346C837O225366C848O225388C859O225461C869O224642C873O225476C883O225514C893O225496C897O225529C907O225568C918O225591C929O225615C940O225639C951O225660C962O225680C973O225701C984O225725C995O225754C1006O225783C1017O225807C1028O225829C1039O225871C1050O225890C1060O225550C1064O225903C1067O225932C1072O225932C1077O225922C1081O225954C1085O225975C1089O225983C1093O225990C1101O226003C1106O225990C1112O226014C1122O226015C1127O226141C1135O226324C1144O226335C1146O226350C1153O226315C1157O226360C1162O226374C1166O226395C1169O226399C1176O226399C1182O226416C1185O226423C1192O226423C1197O226416C1202O226471C1205O226479C1210O226485C1215O226490C1219O226497C1224O226497C1230O226485C1235O226541C1238O226549C1243O226555C1248O226560C1252O226567C1259O226582C1263O226567C1269O226555C1274O226439C1279O226382C1282O226598C1289O226614C1293O226697C1300O226713C1304O226904C1311O226916C1315O226983C1321O227010C1326O227016C1334O227031C1339O227016C1344O227000C1348O227039C1355O227052C1359O227104C1365O227137C1370O227153C1378O227168C1383O227153C1389O227180C1402O227181C1412O227127C1416O227261C1427O227481C1439O227496C1444O227481C1454O227285C1458O227509C1464O227536C1473O227559C1490O227559C1500O227526C1504O227639C1509O227647C1513O227647C1521O227669C1524O227677C1533O227686C1542O227686C1552O227657C1559O227626C1562O227701C1568O227723C1573O227727C1590O227727C1600O227713C1604O228136C1615O228265C1627O228280C1632O228265C1642O228157C1646O228293C1652O228317C1661O228330C1678O228330C1688O228307C1692O228448C1702O228469C1706O228494C1709O228500C1713O228500C1721O228521C1723O228527C1731O228548C1734O228556C1743O228569C1752O228569C1762O228509C1769O228481C1772O228608C1778O228649C1787O228662C1801O228662C1811O228639C1815O228689C1821O228713C1829O228703C1833O228724C1839O228748C1847O228738C1851O228777C1859O229525C1872O229542C1874O229563C1881O229501C1889O229573C1900O229634C1916O229683C1932O229738C1948O229790C1964O229839C1982O229597C1987O229857,,
code-creation,LazyCompile,10,272101,0x27e115b9896,118, file:///var/www/quadcode.com/build/shims.js:7590:13,0x27e115b7f68,~
code-source-info,0x27e115b9896,133,228787,229500,C0O228810C2O228847C8O228852C12O228871C15O228911C21O228916C25O228938C28O228982C34O228987C38O229013C41O229060C47O229065C51O229094C54O229131C60O229136C64O229155C67O229206C73O229211C77O229244C80O229290C86O229295C90O229323C93O229371C99O229376C103O229406C106O229461C112O229466C117O229499,,
code-creation,LazyCompile,10,272115,0x27e115b99fe,40, file:///var/www/quadcode.com/build/shims.js:7515:13,0x27e115b7ee0,~
code-source-info,0x27e115b99fe,133,226151,226314,C0O226168C2O226190C8O226195C12O226211C15O226241C21O226246C25O226270C28O226294C34O226299C39O226313,,
code-creation,LazyCompile,10,272124,0x27e115b9c2e,599, file:///var/www/quadcode.com/build/shims.js:7391:13,0x27e115b7e58,~
code-source-info,0x27e115b9c2e,133,221971,224563,C0O221989C2O222015C8O222020C12O222038C15O222061C21O222066C25O222081C28O222105C34O222110C38O222126C41O222150C47O222155C51O222171C54O222194C60O222199C64O222239C67O222266C73O222271C77O222290C80O222317C86O222322C90O222341C93O222366C99O222371C103O222407C106O222431C112O222436C116O222452C119O222476C125O222481C129O222497C132O222522C138O222528C142O222545C145O222569C151O222575C155O222591C158O222619C164O222625C168O222645C171O222674C177O222680C181O222701C184O222727C190O222733C194O222751C197O222777C203O222783C207O222801C210O222825C216O222831C220O222847C223O222873C229O222879C233O222897C236O222923C242O222929C246O222947C249O222970C255O222976C259O223014C262O223040C268O223046C272O223064C275O223094C281O223100C285O223122C288O223150C294O223156C298O223176C301O223201C307O223207C311O223241C314O223269C320O223275C324O223295C327O223321C333O223327C337O223345C340O223374C346O223380C350O223401C353O223432C359O223438C363O223482C366O223507C372O223513C376O223530C379O223555C385O223561C389O223597C392O223627C398O223633C402O223694C405O223718C411O223724C415O223740C418O223766C424O223772C428O223810C431O223836C437O223842C441O223895C444O223918C450O223924C454O223965C457O223993C463O223999C467O224019C470O224047C476O224053C480O224073C483O224098C489O224104C493O224121C496O224145C502O224151C506O224167C509O224192C515O224198C519O224215C522O224243C528O224249C532O224269C535O224302C541O224308C545O224333C548O224366C554O224372C558O224397C561O224425C567O224431C571O224451C574O224477C580O224483C584O224518C587O224543C593O224549C598O224562,,
code-creation,LazyCompile,10,272160,0x27e115ba0be,41, file:///var/www/quadcode.com/build/shims.js:7385:13,0x27e115b7e20,~
code-source-info,0x27e115ba0be,133,221656,221886,C0O221680C3O221719C9O221724C13O221743C16O221789C22O221794C26O221820C29O221862C35O221867C40O221885,,
code-creation,LazyCompile,10,272170,0x27e115ba1ce,123, file:///var/www/quadcode.com/build/shims.js:7373:13,0x27e115b7de8,~
code-source-info,0x27e115ba1ce,133,221027,221602,C0O221043C3O221080C9O221085C13O221118C16O221150C22O221155C26O221183C29O221217C35O221222C39O221252C42O221275C48O221280C52O221299C55O221322C61O221328C65O221347C68O221377C74O221383C78O221409C81O221433C87O221439C91O221459C96O221483C102O221490C106O221536C111O221569C117O221576C122O221601,,
code-creation,LazyCompile,10,272182,0x27e115ba33e,40, file:///var/www/quadcode.com/build/shims.js:7368:13,0x27e115b7db0,~
code-source-info,0x27e115ba33e,133,220832,220975,C0O220847C2O220865C8O220870C12O220886C15O220907C21O220912C25O220931C28O220953C34O220958C39O220974,,
code-creation,LazyCompile,10,272192,0x27e115ba4c6,326, file:///var/www/quadcode.com/build/shims.js:7341:13,0x27e115b7d78,~
code-source-info,0x27e115ba4c6,133,219189,220778,C0O219205C2O219223C8O219228C12O219242C15O219266C21O219271C25O219291C28O219313C34O219318C38O219336C41O219363C47O219368C51O219391C54O219432C60O219437C64O219474C67O219507C73O219512C77O219541C80O219571C86O219576C90O219602C93O219629C99O219634C103O219657C106O219689C112O219694C116O219722C119O219753C125O219758C129O219785C132O219821C138O219827C142O219859C145O219897C151O219903C155O219937C158O219971C164O219977C168O220007C171O220037C177O220043C181O220069C184O220102C190O220108C194O220137C197O220178C203O220184C207O220221C210O220253C216O220259C220O220287C223O220322C229O220328C233O220359C236O220394C242O220400C246O220431C249O220462C255O220468C259O220495C262O220528C268O220534C272O220563C275O220585C281O220591C285O220609C288O220639C294O220645C298O220671C301O220704C307O220710C311O220739C314O220759C320O220765C325O220777,,
code-creation,LazyCompile,10,272283,0x27e115bad96,61,requireUtils file:///var/www/quadcode.com/build/shims.js:7312:23,0x36d16aca2248,~
code-source-info,0x27e115bad96,133,217888,218325,C0O217888C5O217894C9O217916C11O217929C12O217931C14O217948C16O217954C20O217961C31O217976C36O217961C41O218016C45O218032C49O218278C54O218294C58O218310C60O218323,,
code-creation,LazyCompile,10,272436,0x27e115bafd6,51,enumToMap file:///var/www/quadcode.com/build/shims.js:7317:20,0x27e115bac98,~
code-source-info,0x27e115bafd6,133,218061,218276,C0O218061C12O218086C13O218086C15O218095C19O218102C27O218102C33O218111C43O218112C48O218262C50O218273,,
code-creation,LazyCompile,10,272474,0x27e115bb4ae,26, file:///var/www/quadcode.com/build/shims.js:7319:31,0x27e115baf08,~
code-source-info,0x27e115bb4ae,133,218120,218254,C0O218154C5O218157C9O218173C13O218219C20O218228C25O218253,,
tick,0xebc911,272515,0,0x0,0,0x11f26d0,0x27e115bb4c7,0x15dbb0f,0x27e115bb001,0x27e115b9106,0x27e115b7d31,0x36d16acb3262,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,272551,0x27e115bb61e,44, file:///var/www/quadcode.com/build/shims.js:7510:43,0x27e115b7e90,~
code-source-info,0x27e115bb61e,133,226023,226136,C0O226040C5O226049C10O226049C17O226072C20O226080C28O226108C35O226118C38O226098C43O226135,,
code-creation,RegExp,3,272649,0x7efc24043740,776,^H
code-creation,LazyCompile,10,272816,0x27e115bc356,7, file:///var/www/quadcode.com/build/shims.js:7586:64,0x27e115b7f18,~
code-source-info,0x27e115bc356,133,228669,228684,C0O228678C2O228678C6O228684,,
code-creation,LazyCompile,10,272903,0x27e115bc496,73,alloc node:buffer:358:30,0x73467ca4a80,~
code-source-info,0x27e115bc496,18,10421,10652,C0O10448C5O10448C9O10468C14O10499C20O10513C25O10536C30O10536C35O10566C40O10597C54O10573C59O10615C60O10622C67O10629C72O10650,,
code-creation,LazyCompile,10,273029,0x27e115bd1ee,384,lazyllhttp file:///var/www/quadcode.com/build/shims.js:8206:27,0x36d16aca2518,~
code-source-info,0x27e115bd1ee,133,397769,400279,C10O397769C18O397799C22O397807C27O397811C36O397828C43O397868C48O397885C52O397909C57O397917C61O397924C69O397929C76O397924C83O397909C96O397891C127O397889C137O398278C141O398302C146O398310C150O398317C157O398322C164O398340C171O398317C178O398302C191O398284C221O398380C225O398405C230O398417C235O398433C240O398492C248O398593C256O398872C264O399021C272O399304C280O399591C288O399827C296O400107C310O398405C324O398387C359O400277,,
code-creation,LazyCompile,10,273282,0x206740af07f6,18,requireLlhttp_simdWasm file:///var/www/quadcode.com/build/shims.js:7843:33,0x36d16aca24c8,~
code-source-info,0x206740af07f6,133,311792,386584,C0O311798C4O311830C6O311853C7O311855C9O311882C11O311888C13O311904C15O386559C17O386582,,
code-creation,LazyCompile,10,273314,0x206740af08e6,14,byteLength node:buffer:639:17,0x73467ca5ed8,~
code-source-info,0x206740af08e6,18,18442,18493,C0O18454C3O18486C8O18454C13O18493,,
code-creation,LazyCompile,10,273344,0x206740af09de,76,base64ByteLength node:buffer:575:26,0x73467ca5048,~
code-source-info,0x206740af09de,18,16127,16370,C0O16164C7O16205C11O16168C19O16210C24O16224C30O16235C32O16245C39O16252C44O16289C48O16252C56O16294C61O16308C67O16343C69O16357C72O16362C75O16368,,
tick,0x1663060,273582,0,0x0,0,0x36d16acb3827,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,273614,0x206740af0e86,46,dispatcherWeakref file:///var/www/quadcode.com/build/shims.js:10099:34,0x36d16aca74c8,~
code-source-info,0x206740af0e86,133,448964,449120,C0O448971C8O449008C18O449019C27O449075C37O449099C45O449118,,
code-creation,LazyCompile,10,273778,0x206740af14de,14,getGlobalDispatcher$1 file:///var/www/quadcode.com/build/shims.js:12235:32,0x36d16aca3768,~
code-source-info,0x206740af14de,133,506396,506440,C0O506403C8O506421C10O506420C13O506438,,
code-creation,LazyCompile,10,273901,0x206740af1af6,668,Agent file:///var/www/quadcode.com/build/shims.js:10131:15,0x36d16aca7518,~
code-source-info,0x206740af1af6,133,450080,451997,C0O450080C22O450083C40O450109C51O450130C59O450142C72O450164C80O450164C97O450178C103O450221C119O450227C124O450221C125O450296C142O450389C158O450395C163O450389C164O450476C168O450488C173O450488C181O450534C186O450547C202O450553C207O450547C208O450636C218O450690C223O450727C237O450732C240O450757C246O450781C251O450794C257O450803C261O450809C266O450825C271O450838C276O450809C283O450861C288O450874C309O450889C319O450917C323O450889C333O450747C337O450943C351O450948C362O450965C365O450972C370O450972C383O450992C389O450958C393O451007C407O451012C409O451011C413O451045C419O451079C431O451035C435O451117C449O451122C454O451140C458O451163C472O451168C477O451178C481O451193C495O451198C498O451214C502O451210C507O451208C511O451225C525O451230C536O451248C546O451244C551O451242C555O451502C560O451502C562O451513C576O451518C583O451528C587O451621C601O451626C608O451638C612O451733C626O451738C633O451753C637O451861C651O451866C658O451886C667O451996,,
code-creation,LazyCompile,10,273954,0x206740af203e,80,DispatcherBase file:///var/www/quadcode.com/build/shims.js:6946:15,0x36d16aca5668,~
code-source-info,0x206740af203e,133,208187,208323,C3O208196C11O208196C23O208210C28O208215C32O208227C36O208240C41O208245C45O208259C49O208271C54O208276C58O208285C62O208298C67O208303C72O208314C79O208322,,
code-creation,LazyCompile,10,273992,0x206740af2176,19,Dispatcher file:///var/www/quadcode.com/build/shims.js:6915:20,0x36d16aca5528,~
code-source-info,0x206740af2176,133,207347,207347,C0O207347C5O207347C13O207347C18O207347,,
code-creation,LazyCompile,10,274055,0x206740af239e,19,createRedirectInterceptor$2 file:///var/www/quadcode.com/build/shims.js:7812:38,0x36d16aca2400,~
code-source-info,0x206740af239e,133,236282,236788,C0O236282C8O236302C14O236332C18O236786,,
code-creation,LazyCompile,10,274084,0x206740af24de,30,deepClone file:///var/www/quadcode.com/build/shims.js:449:20,0x36d16aca0c38,~
code-source-info,0x206740af24de,133,14947,14997,C0O14957C4O14969C9O14975C13O14980C18O14980C24O14969C29O14995,,
code-creation,LazyCompile,10,274145,0x206740af279e,68,setGlobalDispatcher$1 file:///var/www/quadcode.com/build/shims.js:12223:32,0x36d16aca3718,~
code-source-info,0x206740af279e,133,506069,506363,C0O506081C4O506108C12O506139C24O506145C29O506139C30O506217C34O506224C39O506239C47O506251C57O506282C61O506224C67O506362,,
code-creation,LazyCompile,10,274311,0x206740af333e,732,requireCookies file:///var/www/quadcode.com/build/shims.js:18168:25,0x36d16aca4330,~
code-source-info,0x206740af333e,133,695821,700373,C0O695821C41O695827C51O695851C59O695866C60O695868C62O695887C70O695921C79O695921C83O695902C89O695976C98O695976C102O695946C108O695957C114O696013C119O696013C123O696002C129O696051C138O696051C142O696039C148O698598C151O698605C159O698648C179O698698C187O698723C192O698734C197O698698C223O698822C231O698847C236O698858C241O698822C256O698648C261O698639C265O698926C268O698933C276O698960C296O699010C301O699021C326O699083C331O699094C356O699157C366O699157C392O699419C400O699444C405O699454C410O699419C436O699548C444O699573C449O699584C454O699548C480O699674C488O699699C493O699710C498O699674C524O699798C532O699823C537O699834C542O699798C568O699922C576O699947C581O699958C586O699922C612O700048C617O700059C642O700172C650O700197C655O700208C660O700172C675O698960C680O698951C684O700276C691O700291C697O700306C703O700323C709O700341C715O700284C723O700356C731O700371,,
code-creation,LazyCompile,10,274369,0x206740af3a3e,162,requireParse file:///var/www/quadcode.com/build/shims.js:17843:23,0x36d16aca42b0,~
code-source-info,0x206740af3a3e,133,683013,695757,C0O683013C31O683019C41O683041C49O683054C50O683056C52O683073C60O683136C69O683136C73O683088C79O683110C85O683190C94O683190C98O683167C104O683253C109O683253C113O683216C119O683287C124O683287C126O695681C133O695694C139O695713C145O695687C153O695742C161O695755,,
code-creation,LazyCompile,10,274399,0x206740af3c96,55,requireConstants$1 file:///var/www/quadcode.com/build/shims.js:17524:29,0x36d16aca41a0,~
code-source-info,0x206740af3c96,133,674765,675171,C0O674771C6O674799C10O674818C11O674820C13O674843C17O674957C22O675071C27O675079C34O675098C40O675124C46O675091C50O675150C54O675169,,
code-creation,LazyCompile,10,274454,0x206740af41ee,157,requireUtil$1 file:///var/www/quadcode.com/build/shims.js:17544:24,0x36d16aca41f0,~
code-source-info,0x206740af41ee,133,675232,682955,C0O675232C65O675238C75O675261C83O675275C84O675277C86O675295C94O675317C99O675317C101O675355C106O675338C112O682411C113O682411C115O682868C122O682882C128O682905C134O682919C140O682875C148O682939C156O682953,,
code-creation,LazyCompile,10,274527,0x206740af4b06,237,requireDataURL file:///var/www/quadcode.com/build/shims.js:4740:25,0x36d16aca1be8,~
code-source-info,0x206740af4b06,133,141420,158905,C0O141420C87O141426C93O141450C97O141465C98O141467C100O141486C104O141507C109O141507C111O141537C117O141528C123O141597C128O141597C132O141558C138O141576C144O141632C148O141632C153O141632C155O141693C159O141693C161O141753C165O141753C167O141919C171O141919C173O158668C180O158683C186O158704C192O158722C198O158755C204O158792C210O158816C216O158834C222O158864C228O158676C232O158888C236O158903,,
tick,0x114e26d,274700,0,0x0,2,0x11e9ce0,0x206740af4b86,0x206740af3aab,0x206740af338d,0x36d16acb4dbd,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,274738,0x206740af6456,801,requireUtil$3 file:///var/www/quadcode.com/build/shims.js:3034:24,0x36d16aca17f0,~
code-source-info,0x206740af6456,133,89692,121878,C0O89692C286O89698C292O89721C296O89735C297O89737C299O89755C303O89837C309O89837C314O89770C320O89786C326O89812C332O89888C338O89888C343O89868C349O89930C356O89914C362O90001C368O89953C373O89965C378O89978C383O90025C388O90025C390O90063C397O90046C403O90208C404O90208C409O90227C418O90236C422O90234C430O108550C434O108550C436O112194C441O112201C447O112216C452O112223C462O112241C467O112248C471O112240C476O112257C482O112223C489O112201C494O112194C496O116991C501O117002C505O116991C507O117327C513O117327C515O120801C520O120808C532O120886C540O120900C546O120914C552O120930C558O120956C564O120979C570O120995C576O121045C582O121076C588O121106C594O121130C600O121155C606O121179C612O121209C618O121222C624O121236C630O121271C636O121298C642O121337C648O121358C654O121377C660O121399C666O121415C672O121439C678O121454C684O121486C690O121510C696O121525C702O121545C708O121586C714O121603C720O121625C726O121648C732O121659C738O121675C744O121693C750O121708C756O121733C762O121757C768O121778C774O121799C780O121814C786O121836C792O120893C796O121862C800O121876,,
code-creation,LazyCompile,10,274899,0x206740af8396,277,requireConstants$3 file:///var/www/quadcode.com/build/shims.js:2834:29,0x36d16aca16f0,~
code-source-info,0x206740af8396,133,84613,88407,C0O84613C14O84619C20O84647C24O84666C25O84668C27O84691C31O84747C38O84706C44O84722C50O84793C55O84843C60O84890C65O84986C70O85658C75O85884C80O85937C85O85996C90O86073C95O86132C100O86321C105O86755C110O86849C115O86902C120O87128C125O87139C139O87361C143O87371C144O87371C146O87455C151O87466C164O88064C172O88083C178O88100C184O88120C190O88136C196O88157C202O88179C208O88198C214O88218C220O88234C226O88257C232O88274C238O88293C244O88319C250O88338C256O88354C262O88367C268O88076C272O88386C276O88405,,
code-creation,LazyCompile,10,274919,0x206740af860e,52, file:///var/www/quadcode.com/build/shims.js:2923:51,0x206740af79d0,~
code-source-info,0x206740af860e,133,87156,87360,C3O87272C10O87272C27O87307C31O87321C39O87321C45O87340C49O87352C51O87359,,
code-creation,LazyCompile,10,274968,0x206740af87f6,96,atob node:buffer:1228:14,0x73467ca7120,~
code-source-info,0x206740af87f6,18,36308,36740,C0O36495C5O36530C7O36543C11O36535C16O36562C21O36581C28O36595C32O36581C39O36607C50O36613C55O36607C56O36552C61O36517C64O36683C67O36697C75O36697C82O36718C90O36719C95O36738,,
code-creation,LazyCompile,10,275003,0x206740af896e,49, node:internal/util:446:42,0x30ec9dba9f00,~
code-source-info,0x206740af896e,12,12407,12567,C0O12430C6O12466C12O12481C17O12509C24O12479C30O12526C43O12533C48O12565,,
code-creation,LazyCompile,10,275046,0x206740af8afe,93,DOMException node:internal/per_context/domexception:41:14,0x30ec9db8b698,~
script-source,7,node:internal/per_context/domexception,'use strict';\n\nconst {\n  Error\x2C\n  ObjectDefineProperties\x2C\n  ObjectDefineProperty\x2C\n  SafeWeakMap\x2C\n  SafeMap\x2C\n  SymbolToStringTag\x2C\n  TypeError\x2C\n} = primordials;\n\nclass ERR_INVALID_THIS extends TypeError {\n  constructor(type) {\n    super('Value of "this" must be of ' + type);\n  }\n\n  get code() { return 'ERR_INVALID_THIS'; }\n}\n\nlet internalsMap;\nlet nameToCodeMap;\nlet isInitialized = false;\n\n// We need to instantiate the maps lazily because they render\n// the snapshot non-rehashable.\n// https://bugs.chromium.org/p/v8/issues/detail?id=6593\nfunction ensureInitialized() {\n  if (isInitialized) {\n    return;\n  }\n  internalsMap = new SafeWeakMap();\n  nameToCodeMap = new SafeMap();\n  forEachCode((name\x2C codeName\x2C value) => {\n    nameToCodeMap.set(name\x2C value);\n  });\n  isInitialized = true;\n}\n\nclass DOMException extends Error {\n  constructor(message = ''\x2C name = 'Error') {\n    ensureInitialized();\n    super();\n    internalsMap.set(this\x2C {\n      message: `${message}`\x2C\n      name: `${name}`\n    });\n  }\n\n  get name() {\n    ensureInitialized();\n    const internals = internalsMap.get(this);\n    if (internals === undefined) {\n      throw new ERR_INVALID_THIS('DOMException');\n    }\n    return internals.name;\n  }\n\n  get message() {\n    ensureInitialized();\n    const internals = internalsMap.get(this);\n    if (internals === undefined) {\n      throw new ERR_INVALID_THIS('DOMException');\n    }\n    return internals.message;\n  }\n\n  get code() {\n    ensureInitialized();\n    const internals = internalsMap.get(this);\n    if (internals === undefined) {\n      throw new ERR_INVALID_THIS('DOMException');\n    }\n    const code = nameToCodeMap.get(internals.name);\n    return code === undefined ? 0 : code;\n  }\n}\n\nObjectDefineProperties(DOMException.prototype\x2C {\n  [SymbolToStringTag]: { configurable: true\x2C value: 'DOMException' }\x2C\n  name: { enumerable: true\x2C configurable: true }\x2C\n  message: { enumerable: true\x2C configurable: true }\x2C\n  code: { enumerable: true\x2C configurable: true }\n});\n\nfunction forEachCode(fn) {\n  fn('IndexSizeError'\x2C 'INDEX_SIZE_ERR'\x2C 1);\n  fn('DOMStringSizeError'\x2C 'DOMSTRING_SIZE_ERR'\x2C 2);\n  fn('HierarchyRequestError'\x2C 'HIERARCHY_REQUEST_ERR'\x2C 3);\n  fn('WrongDocumentError'\x2C 'WRONG_DOCUMENT_ERR'\x2C 4);\n  fn('InvalidCharacterError'\x2C 'INVALID_CHARACTER_ERR'\x2C 5);\n  fn('NoDataAllowedError'\x2C 'NO_DATA_ALLOWED_ERR'\x2C 6);\n  fn('NoModificationAllowedError'\x2C 'NO_MODIFICATION_ALLOWED_ERR'\x2C 7);\n  fn('NotFoundError'\x2C 'NOT_FOUND_ERR'\x2C 8);\n  fn('NotSupportedError'\x2C 'NOT_SUPPORTED_ERR'\x2C 9);\n  fn('InUseAttributeError'\x2C 'INUSE_ATTRIBUTE_ERR'\x2C 10);\n  fn('InvalidStateError'\x2C 'INVALID_STATE_ERR'\x2C 11);\n  fn('SyntaxError'\x2C 'SYNTAX_ERR'\x2C 12);\n  fn('InvalidModificationError'\x2C 'INVALID_MODIFICATION_ERR'\x2C 13);\n  fn('NamespaceError'\x2C 'NAMESPACE_ERR'\x2C 14);\n  fn('InvalidAccessError'\x2C 'INVALID_ACCESS_ERR'\x2C 15);\n  fn('ValidationError'\x2C 'VALIDATION_ERR'\x2C 16);\n  fn('TypeMismatchError'\x2C 'TYPE_MISMATCH_ERR'\x2C 17);\n  fn('SecurityError'\x2C 'SECURITY_ERR'\x2C 18);\n  fn('NetworkError'\x2C 'NETWORK_ERR'\x2C 19);\n  fn('AbortError'\x2C 'ABORT_ERR'\x2C 20);\n  fn('URLMismatchError'\x2C 'URL_MISMATCH_ERR'\x2C 21);\n  fn('QuotaExceededError'\x2C 'QUOTA_EXCEEDED_ERR'\x2C 22);\n  fn('TimeoutError'\x2C 'TIMEOUT_ERR'\x2C 23);\n  fn('InvalidNodeTypeError'\x2C 'INVALID_NODE_TYPE_ERR'\x2C 24);\n  fn('DataCloneError'\x2C 'DATA_CLONE_ERR'\x2C 25);\n  // There are some more error names\x2C but since they don't have codes assigned\x2C\n  // we don't need to care about them.\n}\n\nforEachCode((name\x2C codeName\x2C value) => {\n  const desc = { enumerable: true\x2C value };\n  ObjectDefineProperty(DOMException\x2C codeName\x2C desc);\n  ObjectDefineProperty(DOMException.prototype\x2C codeName\x2C desc);\n});\n\nexports.DOMException = DOMException;\n
code-source-info,0x206740af8afe,7,840,1002,C25O877C28O877C31O902C39O902C51O915C56O928C71O958C78O984C83O928C92O1001,,
code-creation,LazyCompile,10,275257,0x206740af90d6,70,ensureInitialized node:internal/per_context/domexception:28:27,0x30ec9db8b648,~
code-source-info,0x206740af90d6,7,567,790,C0O574C6O599C7O606C8O613C13O628C21O626C27O649C32O665C40O663C46O682C54O682C58O767C62O781C69O789,,
code-creation,LazyCompile,10,275318,0x206740af93ce,352,forEachCode node:internal/per_context/domexception:86:21,0x30ec9db8b828,~
code-source-info,0x206740af93ce,7,2002,3398,C0O2011C9O2011C14O2056C23O2056C28O2109C37O2109C42O2168C51O2168C56O2221C65O2221C70O2280C79O2280C84O2334C93O2334C98O2404C107O2404C112O2447C121O2447C126O2498C135O2498C140O2554C149O2554C154O2606C163O2606C168O2645C177O2645C182O2711C191O2711C196O2756C205O2756C210O2810C219O2810C224O2857C233O2857C238O2909C247O2909C252O2952C261O2952C266O2993C275O2993C280O3030C289O3030C294O3080C303O3080C308O3134C317O3134C322O3175C331O3175C336O3234C345O3234C351O3397,,
code-creation,LazyCompile,10,275346,0x206740af96b6,18, node:internal/per_context/domexception:34:15,0x206740af9000,~
code-source-info,0x206740af96b6,7,694,762,C0O727C5O741C10O741C17O761,,
code-creation,LazyCompile,10,275450,0x206740af99ee,82,requireGlobal file:///var/www/quadcode.com/build/shims.js:2978:24,0x36d16aca1770,~
code-source-info,0x206740af99ee,133,88470,89631,C0O88470C18O88476C24O88499C28O88515C29O88517C31O88535C35O88648C39O88655C47O88658C52O88648C54O89556C61O89572C67O89592C73O89565C77O89613C81O89629,,
code-creation,LazyCompile,10,275600,0x206740af9bc6,14,TextEncoder node:internal/encoding:325:14,0x73467cb8210,~
code-source-info,0x206740af9bc6,21,9068,9103,C0O9077C4O9082C8O9092C13O9102,,
tick,0xf7a4dd,275740,0,0x0,3,0x11e9ce0,0x206740af33b5,0x36d16acb4dbd,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,275764,0x206740afb3fe,619,requireWebidl file:///var/www/quadcode.com/build/shims.js:4091:24,0x36d16aca1a90,~
code-source-info,0x206740afb3fe,133,122297,141356,C0O122297C14O122303C20O122326C24O122342C25O122344C27O122362C31O122387C37O122377C43O122434C48O122434C52O122410C58O122418C63O122520C64O122520C66O122525C70O122543C74O122550C78O122562C82O122569C86O122583C90O122591C93O122598C102O122615C106O122709C109O122716C118O122740C122O123039C125O123046C134O123069C138O123282C145O123300C149O123534C156O123561C160O123890C163O123897C172O123907C176O124378C179O124385C188O124403C192O127698C195O127705C204O127722C208O127987C215O128012C219O129047C226O129070C230O130912C237O130938C241O131213C248O131240C252O132946C259O132971C263O133147C266O133154C275O133175C279O133882C282O133889C291O133911C295O134731C298O134738C305O134759C309O134823C312O134830C321O134849C325O135144C328O135151C337O135166C341O135250C344O135257C353O135281C357O135576C360O135583C369O135616C373O135919C376O135926C385O135954C389O136253C392O136260C401O136289C405O136599C408O136606C417O136629C421O137945C424O137952C433O137974C437O139294C440O139301C449O139321C453O140515C456O140522C465O140546C469O140922C472O140929C480O140973C488O141002C493O141013C498O140973C503O140964C507O141030C510O141037C518O141091C526O141120C531O141130C536O141091C541O141082C545O141161C548O141168C556O141222C564O141249C569O141260C577O141282C582O141293C587O141222C593O141213C597O141310C604O141326C610O141319C614O141338C618O141354,,
code-creation,LazyCompile,10,275887,0x206740afc7b6,14,webidl.sequenceConverter file:///var/www/quadcode.com/build/shims.js:4301:38,0x206740afa500,~
code-source-info,0x206740afc7b6,133,128023,128994,C0O128023C9O128040C13O128991,,
code-creation,LazyCompile,10,275942,0x206740afc966,18,webidl.recordConverter file:///var/www/quadcode.com/build/shims.js:4343:36,0x206740afa590,~
code-source-info,0x206740afc966,133,129081,130908,C0O129081C13O129117C17O130905,,
code-creation,LazyCompile,10,276082,0x206740afe10e,617,requireHeaders file:///var/www/quadcode.com/build/shims.js:12247:25,0x36d16aca37b8,~
code-source-info,0x206740afe10e,133,506616,523027,C0O506616C47O506622C57O506646C65O506661C66O506663C68O506682C76O506714C81O506697C87O506745C92O506745C96O506734C102O506798C107O506774C112O506881C117O506881C121O506818C127O506835C133O506857C139O506918C144O506918C148O506907C154O506951C159O506951C161O506985C168O506985C172O506985C174O507035C181O507035C185O507035C234O511819C238O511819C281O508950C330O519254C365O521809C370O521806C380O521809C409O521935C414O521945C418O521952C423O521972C428O521982C432O521962C436O521993C440O522000C445O522025C457O522049C463O522081C469O522110C475O522139C481O522168C487O522206C493O522236C499O522268C505O522301C511O522334C515O522359C519O522366C525O522377C534O522404C538O522411C544O522425C553O522000C559O522486C562O522493C571O522516C575O522957C582O522972C588O522981C594O522993C600O522965C608O523010C616O523025,,
code-creation,LazyCompile,10,276107,0x206740afe4e6,15,<instance_members_initializer> file:///var/www/quadcode.com/build/shims.js:12318:4,0x206740afcfa0,~
code-source-info,0x206740afe4e6,133,509015,509029,C3O509025C14O509029,,
code-creation,LazyCompile,10,276141,0x206740afea1e,113,requireSymbols$2 file:///var/www/quadcode.com/build/shims.js:4073:27,0x36d16aca1a40,~
code-source-info,0x206740afea1e,133,121948,122234,C0O121954C4O121980C6O121997C7O121999C9O122020C11O122027C16O122050C23O122050C31O122078C38O122078C46O122109C53O122109C61O122138C68O122138C76O122166C83O122166C91O122194C98O122194C108O122037C110O122215C112O122232,,
code-creation,LazyCompile,10,276252,0x206740aff41e,14,webidl.nullableConverter file:///var/www/quadcode.com/build/shims.js:4475:38,0x206740afa740,~
code-source-info,0x206740aff41e,133,132982,133094,C0O132982C9O132999C13O133091,,
code-creation,LazyCompile,10,276324,0x206740aff6d6,14,webidl.dictionaryConverter file:///var/www/quadcode.com/build/shims.js:4416:40,0x206740afa6b0,~
code-source-info,0x206740aff6d6,133,131251,132942,C0O131251C9O131269C13O132939,,
code-creation,LazyCompile,10,276412,0x206740affb1e,14,makeDispatcher file:///var/www/quadcode.com/build/shims.js:20287:25,0x36d16aca4998,~
code-source-info,0x206740affb1e,133,759203,760444,C0O759203C9O759212C13O760442,,
code-creation,LazyCompile,10,276469,0x206740affd3e,81,installPolyfills file:///var/www/quadcode.com/build/shims.js:20403:26,0x36d16aca49e8,~
code-source-info,0x206740affd3e,133,761893,762070,C0O761918C17O761910C30O761910C31O761931C35O761938C40O761953C44O761965C53O762046C58O762053C68O761938C76O761899C80O762069,,
code-creation,LazyCompile,10,276587,0x27e115bd726,37,A file:///var/www/quadcode.com/build/server/chunks/ssr-c1febd33.js:3:984,0x274d30f759f8,~
code-source-info,0x27e115bd726,179,1029,1465,C0O1029C15O1228C20O1243C30O1462C36O1464,,
code-creation,LazyCompile,10,276710,0x27e115be01e,104,requireCookie file:///var/www/quadcode.com/build/server/index.js:713:24,0x36d16ac89858,~
code-source-info,0x27e115be01e,132,17173,22570,C0O17173C39O17179C45O17202C49O17216C50O17218C52O17236C56O17286C63O17299C67O17309C74O17326C78O17404C82O17411C87O17421C91O17404C93O17656C97O17656C99O22554C103O22568,,
code-creation,LazyCompile,10,276766,0x27e115be4de,130,requireSetCookie file:///var/www/quadcode.com/build/server/index.js:987:27,0x36d16ac89900,~
code-source-info,0x27e115be4de,132,22695,29658,C0O22695C33O22701C39O22727C44O22744C48O22752C49O22754C51O22775C55O22808C59O22808C61O29463C68O29481C72O29491C77O29501C84O29515C88O29525C93O29535C100O29555C104O29571C109O29581C116O29608C120O29631C125O29648C129O29656,,
tick,0x10b78d1,276815,0,0x0,0,0x11f81c0,0x27e115be515,0x36d16ac8d564,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,276903,0x27e115be88e,26,z file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:22,0x274d30f76788,~
code-source-info,0x27e115be88e,180,464,506,C0O470C5O488C9O488C15O494C25O505,,
code-creation,LazyCompile,10,276948,0x27e115beb96,96,A file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:74,0x274d30f767d8,~
code-source-info,0x27e115beb96,180,516,893,C0O516C27O523C56O530C57O530C59O540C63O540C68O540C70O855C77O867C83O876C89O890C95O892,,
code-creation,LazyCompile,10,277034,0x27e115bf3e6,20,__memo file:///var/www/quadcode.com/build/server/manifest.js:2:16,0x3f8cd557ef58,~
code-source-info,0x27e115bf3e6,131,41,101,C0O41C12O53C13O53C15O61C19O99,,
new,MemoryChunk,0x245b1480000,262144
new,MemoryChunk,0x14888c40000,262144
new,MemoryChunk,0x18f1d6c80000,262144
new,MemoryChunk,0x31e719400000,262144
new,MemoryChunk,0x286a71bc0000,262144
new,MemoryChunk,0x56b7a300000,262144
new,MemoryChunk,0x89c1fa00000,262144
new,MemoryChunk,0x202ec5f80000,262144
scavenge,begin,0,278090,1745847819759
new,MemoryChunk,0x3fcdcc140000,262144
new,MemoryChunk,0x352b9a880000,262144
new,MemoryChunk,0x2c0485780000,262144
tick,0x7efc3373dad8,278068,0,0x0,1
scavenge,end,0,279866,1745847819760
code-creation,LazyCompile,10,278406,0x27e115bf58e,38,kr file:///var/www/quadcode.com/build/server/index.js:1264:12318,0x36d16ac8bbf8,~
code-source-info,0x27e115bf58e,132,67435,67460,C0O67435C14O67439C21O67447C23O67446C32O67456C37O67459,,
code-creation,LazyCompile,10,278510,0x27e115bfb9e,328,init file:///var/www/quadcode.com/build/server/index.js:1264:12353,0x36d16ac8bc48,~
code-source-info,0x27e115bfb9e,132,67470,67912,C10O67470C18O67476C52O67482C63O67490C70O67514C74O67517C84O67555C88O67558C96O67487C102O67485C106O67580C117O67585C124O67609C128O67612C138O67650C142O67653C150O67582C156O67580C162O67681C166O67684C175O67702C180O67708C191O67702C217O67714C219O67719C228O67738C242O67790C256O67849C272O67727C289O67903C291O67903C303O67911,,
code-creation,LazyCompile,10,278562,0x27e115bff46,72,ur file:///var/www/quadcode.com/build/server/index.js:1264:11995,0x36d16ac8b338,~
code-source-info,0x27e115bff46,132,67112,67255,C0O67112C14O67130C20O67147C26O67151C30O67165C35O67177C39O67184C44O67184C50O67194C60O67195C66O67165C71O67254,,
code-creation,LazyCompile,10,278701,0x2c048578e23e,168, file:///var/www/quadcode.com/build/server/index.js:1264:12085,0x27e115bfe60,~
code-source-info,0x2c048578e23e,132,67202,67252,C0O67202C25O67204C122O67211C129O67222C132O67211C141O67227C146O67228C151O67238C158O67249C161O67238C167O67252,,
code-creation,LazyCompile,10,278775,0x2c048578e53e,2,t file:///var/www/quadcode.com/build/server/chunks/shared-server-de020940.js:1:20,0x274d30f76f40,~
code-source-info,0x2c048578e53e,181,19,24,C1O23,,
code-creation,LazyCompile,10,278812,0x2c048578e6ae,72,lr file:///var/www/quadcode.com/build/server/index.js:1264:12149,0x36d16ac8b388,~
code-source-info,0x2c048578e6ae,132,67266,67409,C0O67266C14O67284C20O67301C26O67305C30O67319C35O67331C39O67338C44O67338C50O67348C60O67349C66O67319C71O67408,,
code-creation,LazyCompile,10,278893,0x2c048578e87e,168, file:///var/www/quadcode.com/build/server/index.js:1264:12239,0x2c048578e5c8,~
code-source-info,0x2c048578e87e,132,67356,67406,C0O67356C25O67358C122O67365C129O67376C132O67365C141O67381C146O67382C151O67392C158O67403C161O67392C167O67406,,
code-creation,LazyCompile,10,278928,0x2c048578eb96,12,i file:///var/www/quadcode.com/build/server/chunks/shared-server-de020940.js:1:35,0x274d30f76f90,~
code-source-info,0x2c048578eb96,181,34,43,C0O39C11O42,,
code-creation,LazyCompile,10,278949,0x2c048578eca6,12,M$1 file:///var/www/quadcode.com/build/server/index.js:106:40,0x36d16ac89340,~
code-source-info,0x2c048578eca6,132,4002,4056,C0O4005C11O4055,,
code-creation,LazyCompile,10,278995,0x2c048578edfe,131,exports.importModuleDynamicallyCallback node:internal/process/esm_loader:25:57,0x27ba8ebe3790,~
code-source-info,0x2c048578edfe,100,760,1137,C6O760C14O806C20O806C25O790C30O856C35O856C42O921C47O921C53O881C58O936C60O987C62O1038C65O1038C80O994C95O1071C96O1084C101O1090C106O1084,,
code-creation,LazyCompile,10,279052,0x2c048578ef9e,16,getModuleFromWrap node:internal/vm/module:457:22,0x13b40babfd98,~
code-source-info,0x2c048578ef9e,112,12270,12305,C0O12296C5O12296C10O12296C15O12305,,
code-creation,LazyCompile,10,279086,0x2c048578ffb6,107,importModuleDynamically node:internal/modules/esm/translators:114:39,0x27ba8ebfd100,~
code-source-info,0x2c048578ffb6,110,3188,3264,C6O3188C17O3202C51O3213C56O3229C61O3239C66O3245C82O3262,,
tick,0x159bcfa,279180,0,0x0,0,0x1c78303f6410,0x1c78303f61e6,0x1c78303f2a19,0x1c78303f26fd,0xbaa280,0x1c78303d9420,0x1c78303dc07f,0x1c78303dba82,0x1c78303db645,0x1c78303db3ed,0x2c048578fff8,0x2c048578ee4e,0x15ca0d4,0x2c048578ecac,0x27e115bfc52,0x3f8cd5575061,0x15d4470,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,Function,4,284309,0x1413732a980,14560,wasm-function[71],0x249ffe47,
code-creation,Function,4,284328,0x1413732e260,352,wasm-function[43],0x249ffe2b,
code-creation,Function,4,284332,0x1413732e3c0,224,wasm-to-js:iii:i,0x249ffe02,
code-creation,Function,4,284336,0x1413732e4a0,224,wasm-to-js:i:i,0x249ffe01,
code-creation,Function,4,284340,0x1413732e580,224,wasm-to-js:iiii:i,0x249ffe00,
code-creation,Function,4,284343,0x1413732e660,896,wasm-function[76],0x249ffe4c,
code-creation,Function,4,284347,0x1413732e9e0,96,wasm-function[75],0x249ffe4b,
code-creation,Function,4,284351,0x1413732ea40,256,wasm-function[74],0x249ffe4a,
code-creation,Function,4,284354,0x1413732eb40,4256,wasm-function[73],0x249ffe49,
code-creation,Function,4,284358,0x1413732fbe0,96,wasm-function[72],0x249ffe48,
code-creation,Function,4,284361,0x1413732fc40,96,wasm-function[70],0x249ffe46,
code-creation,Function,4,284365,0x1413732fca0,512,wasm-function[69],0x249ffe45,
code-creation,Function,4,284368,0x1413732fea0,480,wasm-function[67],0x249ffe43,
code-creation,Function,4,284372,0x14137330080,192,wasm-function[66],0x249ffe42,
code-creation,Function,4,284375,0x14137330140,416,wasm-function[65],0x249ffe41,
code-creation,Function,4,284379,0x141373302e0,512,wasm-function[64],0x249ffe40,
code-creation,Function,4,284382,0x141373304e0,288,wasm-function[63],0x249ffe3f,
code-creation,Function,4,284395,0x14137330600,704,wasm-function[62],0x249ffe3e,
code-creation,Function,4,284399,0x141373308c0,256,wasm-function[61],0x249ffe3d,
code-creation,Function,4,284402,0x141373309c0,256,wasm-function[60],0x249ffe3c,
code-creation,Function,4,284406,0x14137330ac0,256,wasm-function[59],0x249ffe3b,
code-creation,Function,4,284409,0x14137330bc0,256,wasm-function[58],0x249ffe3a,
code-creation,Function,4,284413,0x14137330cc0,352,wasm-function[57],0x249ffe39,
code-creation,Function,4,284416,0x14137330e20,256,wasm-function[56],0x249ffe38,
code-creation,Function,4,284420,0x14137330f20,352,wasm-function[55],0x249ffe37,
code-creation,Function,4,284423,0x14137331080,256,wasm-function[54],0x249ffe36,
code-creation,Function,4,284427,0x14137331180,352,wasm-function[53],0x249ffe35,
code-creation,Function,4,284430,0x141373312e0,256,wasm-function[52],0x249ffe34,
code-creation,Function,4,284434,0x141373313e0,256,wasm-function[51],0x249ffe33,
code-creation,Function,4,284437,0x141373314e0,256,wasm-function[50],0x249ffe32,
code-creation,Function,4,284441,0x141373315e0,352,wasm-function[49],0x249ffe31,
code-creation,Function,4,284444,0x14137331740,256,wasm-function[48],0x249ffe30,
code-creation,Function,4,284448,0x14137331840,352,wasm-function[47],0x249ffe2f,
code-creation,Function,4,284451,0x141373319a0,256,wasm-function[46],0x249ffe2e,
code-creation,Function,4,284455,0x14137331aa0,352,wasm-function[45],0x249ffe2d,
code-creation,Function,4,284459,0x14137331c00,256,wasm-function[44],0x249ffe2c,
code-creation,Function,4,284462,0x14137331d00,128,wasm-function[25],0x249ffe19,
code-creation,Function,4,284465,0x14137331d80,256,wasm-function[42],0x249ffe2a,
code-creation,Function,4,284469,0x14137331e80,352,wasm-function[41],0x249ffe29,
code-creation,Function,4,284476,0x14137331fe0,256,wasm-function[40],0x249ffe28,
code-creation,Function,4,284480,0x141373320e0,352,wasm-function[39],0x249ffe27,
code-creation,Function,4,284483,0x14137332240,256,wasm-function[38],0x249ffe26,
code-creation,Function,4,284487,0x14137332340,128,wasm-function[37],0x249ffe25,
tick,0x7efc336cabcb,284495,0,0x0,6
code-creation,Function,4,284513,0x141373323c0,128,wasm-function[36],0x249ffe24,
code-creation,Function,4,284519,0x14137332440,128,wasm-function[35],0x249ffe23,
code-creation,Function,4,284523,0x141373324c0,128,wasm-function[34],0x249ffe22,
code-creation,Function,4,284526,0x14137332540,10592,wasm-function[33],0x249ffe21,
code-creation,Function,4,284530,0x14137334ea0,160,wasm-function[32],0x249ffe20,
code-creation,Function,4,284533,0x14137334f40,160,wasm-function[31],0x249ffe1f,
code-creation,Function,4,284537,0x14137334fe0,96,wasm-function[30],0x249ffe1e,
code-creation,Function,4,284540,0x14137335040,96,wasm-function[29],0x249ffe1d,
code-creation,Function,4,284544,0x141373350a0,96,wasm-function[28],0x249ffe1c,
code-creation,Function,4,284548,0x14137335100,96,wasm-function[27],0x249ffe1b,
code-creation,Function,4,284551,0x14137335160,128,wasm-function[26],0x249ffe1a,
code-creation,Function,4,284555,0x141373351e0,96,wasm-function[16],0x249ffe10,
code-creation,Function,4,284558,0x14137335240,160,wasm-function[24],0x249ffe18,
code-creation,Function,4,284562,0x141373352e0,384,wasm-function[23],0x249ffe17,
code-creation,Function,4,284565,0x14137335460,96,wasm-function[22],0x249ffe16,
code-creation,Function,4,284568,0x141373354c0,96,wasm-function[21],0x249ffe15,
code-creation,Function,4,284572,0x14137335520,256,wasm-function[20],0x249ffe14,
code-creation,Function,4,284576,0x14137335620,96,wasm-function[19],0x249ffe13,
code-creation,Function,4,284579,0x14137335680,96,wasm-function[18],0x249ffe12,
code-creation,Function,4,284583,0x141373356e0,96,wasm-function[17],0x249ffe11,
code-creation,Function,4,284586,0x14137335740,160,wasm-function[12],0x249ffe0c,
code-creation,Function,4,284590,0x141373357e0,96,wasm-function[15],0x249ffe0f,
code-creation,Function,4,284593,0x14137335840,96,wasm-function[14],0x249ffe0e,
code-creation,Function,4,284596,0x141373358a0,96,wasm-function[13],0x249ffe0d,
code-creation,Function,4,284600,0x14137335900,160,wasm-function[10],0x249ffe0a,
code-creation,Function,4,284607,0x141373359a0,160,wasm-function[11],0x249ffe0b,
code-creation,Function,4,284611,0x14137335a40,96,wasm-function[9],0x249ffe09,
code-creation,Function,4,284614,0x14137335aa0,96,wasm-function[8],0x249ffe08,
code-creation,Function,4,284618,0x14137335b00,121760,wasm-function[68],0x249ffe44,
code-creation,Function,4,284848,0x141373536a0,96,wasm-function[24],0x249ffe18,*
code-creation,Function,4,284855,0x14137353700,288,wasm-function[41],0x249ffe29,*
code-creation,Function,4,284898,0x14137353820,192,wasm-function[40],0x249ffe28,*
code-creation,Function,4,284993,0x141373538e0,576,wasm-function[76],0x249ffe4c,*
code-creation,Function,4,285031,0x14137353b20,64,wasm-function[75],0x249ffe4b,*
code-creation,Function,4,285152,0x14137353b60,288,wasm-function[39],0x249ffe27,*
code-creation,Function,4,285172,0x14137353c80,192,wasm-function[74],0x249ffe4a,*
code-creation,Function,4,285345,0x14137353d40,192,wasm-function[38],0x249ffe26,*
code-creation,Function,4,285428,0x14137353e00,96,wasm-function[37],0x249ffe25,*
code-creation,Function,4,285492,0x14137353e60,96,wasm-function[36],0x249ffe24,*
code-creation,Function,4,285555,0x14137353ec0,96,wasm-function[35],0x249ffe23,*
code-creation,Function,4,285611,0x14137353f20,96,wasm-function[34],0x249ffe22,*
code-creation,Function,4,286715,0x14137353f80,2816,wasm-function[73],0x249ffe49,*
code-creation,Function,4,286815,0x14137354a80,96,wasm-function[72],0x249ffe48,*
code-creation,Function,4,286885,0x14137354ae0,96,wasm-function[70],0x249ffe46,*
code-creation,Function,4,287108,0x14137354b40,384,wasm-function[69],0x249ffe45,*
code-creation,Function,4,287370,0x14137354cc0,384,wasm-function[67],0x249ffe43,*
code-creation,Function,4,287409,0x14137354e40,128,wasm-function[66],0x249ffe42,*
code-creation,Function,4,287557,0x14137354ec0,288,wasm-function[65],0x249ffe41,*
code-creation,Function,4,287716,0x14137354fe0,320,wasm-function[64],0x249ffe40,*
code-creation,Function,4,287770,0x14137355120,5088,wasm-function[33],0x249ffe21,*
code-creation,Function,4,287809,0x14137356500,192,wasm-function[63],0x249ffe3f,*
code-creation,Function,4,287933,0x141373565c0,128,wasm-function[32],0x249ffe20,*
code-creation,Function,4,288014,0x14137356640,448,wasm-function[62],0x249ffe3e,*
code-creation,Function,4,288052,0x14137356800,128,wasm-function[31],0x249ffe1f,*
code-creation,Function,4,288097,0x14137356880,160,wasm-function[61],0x249ffe3d,*
code-creation,Function,4,288105,0x14137356920,64,wasm-function[30],0x249ffe1e,*
code-creation,Function,4,288153,0x14137356960,64,wasm-function[29],0x249ffe1d,*
code-creation,Function,4,288194,0x141373569a0,64,wasm-function[28],0x249ffe1c,*
code-creation,Function,4,288235,0x141373569e0,64,wasm-function[27],0x249ffe1b,*
code-creation,Function,4,288264,0x14137356a20,192,wasm-function[60],0x249ffe3c,*
code-creation,Function,4,288303,0x14137356ae0,96,wasm-function[26],0x249ffe1a,*
code-creation,Function,4,288365,0x14137356b40,96,wasm-function[25],0x249ffe19,*
code-creation,Function,4,288383,0x14137356ba0,192,wasm-function[59],0x249ffe3b,*
code-creation,Function,4,288537,0x14137356c60,192,wasm-function[50],0x249ffe32,*
code-creation,Function,4,288545,0x14137356d20,288,wasm-function[49],0x249ffe31,*
code-creation,Function,4,288666,0x14137356e40,192,wasm-function[48],0x249ffe30,*
code-creation,Function,4,288703,0x14137356f00,192,wasm-function[58],0x249ffe3a,*
code-creation,Function,4,288868,0x14137356fc0,288,wasm-function[47],0x249ffe2f,*
code-creation,Function,4,288920,0x141373570e0,288,wasm-function[57],0x249ffe39,*
code-creation,Function,4,289003,0x14137357200,192,wasm-function[46],0x249ffe2e,*
code-creation,Function,4,289084,0x141373572c0,192,wasm-function[56],0x249ffe38,*
code-creation,Function,4,289149,0x14137357380,288,wasm-function[45],0x249ffe2d,*
code-creation,Function,4,289261,0x141373574a0,192,wasm-function[44],0x249ffe2c,*
code-creation,Function,4,289301,0x14137357560,288,wasm-function[55],0x249ffe37,*
code-creation,Function,4,289402,0x14137357680,288,wasm-function[43],0x249ffe2b,*
code-creation,Function,4,289467,0x141373577a0,192,wasm-function[54],0x249ffe36,*
code-creation,Function,4,289515,0x14137357860,192,wasm-function[42],0x249ffe2a,*
code-creation,Function,4,289621,0x14137357920,192,wasm-function[52],0x249ffe34,*
code-creation,Function,4,289662,0x141373579e0,64,wasm-function[16],0x249ffe10,*
code-creation,Function,4,289682,0x14137357a20,288,wasm-function[53],0x249ffe35,*
code-creation,Function,4,289827,0x14137357b40,320,wasm-function[23],0x249ffe17,*
code-creation,Function,4,289852,0x14137357c80,192,wasm-function[51],0x249ffe33,*
code-creation,Function,4,289894,0x14137357d40,96,wasm-function[22],0x249ffe16,*
code-creation,Function,4,289965,0x14137357da0,96,wasm-function[21],0x249ffe15,*
code-creation,Function,4,289974,0x14137357e00,160,wasm-function[12],0x249ffe0c,*
code-creation,Function,4,290032,0x14137357ea0,64,wasm-function[15],0x249ffe0f,*
code-creation,Function,4,290066,0x14137357ee0,224,wasm-function[20],0x249ffe14,*
code-creation,Function,4,290074,0x14137357fc0,64,wasm-function[14],0x249ffe0e,*
code-creation,Function,4,290113,0x14137358000,64,wasm-function[19],0x249ffe13,*
code-creation,Function,4,290146,0x14137358040,64,wasm-function[18],0x249ffe12,*
code-creation,Function,4,290154,0x14137358080,96,wasm-function[13],0x249ffe0d,*
code-creation,Function,4,290178,0x141373580e0,64,wasm-function[17],0x249ffe11,*
code-creation,Function,4,290270,0x14137358120,128,wasm-function[10],0x249ffe0a,*
code-creation,Function,4,290274,0x141373581a0,160,wasm-function[11],0x249ffe0b,*
code-creation,Function,4,290291,0x14137358240,32,wasm-function[8],0x249ffe08,*
code-creation,Function,4,290351,0x14137358260,64,wasm-function[9],0x249ffe09,*
tick,0x7efc336d14b6,291828,0,0x0,8
code-creation,Function,4,291860,0x141373582a0,10624,wasm-function[71],0x249ffe47,*
code-creation,Script,10,292226,0x2c0485793626,86, file:///var/www/quadcode.com/build/server/chunks/hooks.server-2187e3d5.js:1:1,0x2c0485793358,~
script-source,183,file:///var/www/quadcode.com/build/server/chunks/hooks.server-2187e3d5.js,import { A as Ae\x2C _ } from './index3-fd856014.js';\nimport './index2-db879dd9.js';\n\nconst u=new RegExp(/^\\/[^.]*([?#].*)?$/)\x2Cf=async({event:a\x2Cresolve:s})=>{const{url:n\x2Crequest:c}=a\x2C{pathname:o}=n;if(u.test(o)){let t=Ae.get().map(e=>e.toLowerCase()).find(e=>e===`${o.match(/[^/]+?(?=\\/|$)/)}`.toLowerCase());if(t===_&&!c.headers.get("prevent-redirect")){const e=new RegExp(`^/${t}`)\x2Cl=`${o}`.replace(e\x2C"")||"/";return new Response(void 0\x2C{headers:{location:l}\x2Cstatus:301})}else t||(t=_);return s({...a\x2Clocals:{lang:t}}\x2C{transformPageChunk:({html:e})=>e.replace("%lang%"\x2C`${t}`)})}return s(a)};\n\nexport { f as handle };\n//# sourceMappingURL=hooks.server-2187e3d5.js.map\n
code-source-info,0x2c0485793626,183,0,667,C10O0C31O0C51O0C58O91C69O91C74O91C76O126C80O126C85O667,,
tick,0x165468e,292582,0,0x0,0,0x1c78303d5b98,0x1c78303d59a2,0x1c78303ca381,0x1c78303dc2ce,0x1c78303dba82,0x1c78303db645,0x1c78303f259c,0xac09c0,0x1c78303e8a12,0x158e77f
tick,0x7efc336d14b6,294823,0,0x0,8
tick,0x1124eaf,295797,1,0xabf940,2,0xd44a10,0x1c78303e47da,0x158e77f
code-creation,Script,10,296594,0x2c04857a343e,5456, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:1:1,0x2c0485797510,~
script-source,184,file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js,import { A as A$1\x2C b\x2C E as E$2 } from './index2-db879dd9.js';\n\nvar R$1=Object.defineProperty\x2CA=Object.defineProperties;var E$1=Object.getOwnPropertyDescriptors;var x$1=Object.getOwnPropertySymbols;var C$1=Object.prototype.hasOwnProperty\x2CO$1=Object.prototype.propertyIsEnumerable;var p$1=(t\x2Ce\x2Cr)=>e in t?R$1(t\x2Ce\x2C{enumerable:!0\x2Cconfigurable:!0\x2Cwritable:!0\x2Cvalue:r}):t[e]=r\x2Cu=(t\x2Ce)=>{for(var r in e||(e={}))C$1.call(e\x2Cr)&&p$1(t\x2Cr\x2Ce[r]);if(x$1)for(var r of x$1(e))O$1.call(e\x2Cr)&&p$1(t\x2Cr\x2Ce[r]);return t}\x2CT$1=(t\x2Ce)=>A(t\x2CE$1(e));var c$1=(t\x2Ce)=>{var r={};for(var i in t)C$1.call(t\x2Ci)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&x$1)for(var i of x$1(t))e.indexOf(i)<0&&O$1.call(t\x2Ci)&&(r[i]=t[i]);return r};var j$1=(t\x2Ce)=>{for(var r in e)R$1(t\x2Cr\x2C{get:e[r]\x2Cenumerable:!0});};var h={};j$1(h\x2C{ago:()=>Q$1\x2Ccurrency:()=>W$1\x2Cdate:()=>G\x2Ceq:()=>$\x2Cgt:()=>L$1\x2Cgte:()=>z$1\x2Clt:()=>V\x2Clte:()=>v\x2Cne:()=>S\x2Cnumber:()=>B$1});var g=(t\x2Ce)=>{let{modifierDefaults:r}=e||{}\x2C{[t]:i}=r||{};return i||{}};var $=({value:t\x2Coptions:e=[]\x2CdefaultValue:r=""})=>(e.find(({key:i})=>`${i}`.toLowerCase()===`${t}`.toLowerCase())||{}).value||r\x2CS=({value:t\x2Coptions:e=[]\x2CdefaultValue:r=""})=>(e.find(({key:i})=>`${i}`.toLowerCase()!==`${t}`.toLowerCase())||{}).value||r\x2CV=({value:t\x2Coptions:e=[]\x2CdefaultValue:r=""})=>(e.sort((o\x2Cn)=>+o.key-+n.key).find(({key:o})=>+t<+o)||{}).value||r\x2CL$1=({value:t\x2Coptions:e=[]\x2CdefaultValue:r=""})=>(e.sort((o\x2Cn)=>+n.key-+o.key).find(({key:o})=>+t>+o)||{}).value||r\x2Cv=({value:t\x2Coptions:e=[]\x2CdefaultValue:r=""})=>$({value:t\x2Coptions:e\x2CdefaultValue:V({value:t\x2Coptions:e\x2CdefaultValue:r})})\x2Cz$1=({value:t\x2Coptions:e=[]\x2CdefaultValue:r=""})=>$({value:t\x2Coptions:e\x2CdefaultValue:L$1({value:t\x2Coptions:e\x2CdefaultValue:r})})\x2CB$1=({value:t\x2Cprops:e\x2CdefaultValue:r=""\x2Clocale:i=""\x2CparserOptions:o})=>{if(!i)return "";let s=g("number"\x2Co)\x2C{maximumFractionDigits:n}=s\x2Cm=c$1(s\x2C["maximumFractionDigits"])\x2Cd=(e==null?void 0:e.number)||{}\x2C{maximumFractionDigits:f=n||2}=d\x2Ca=c$1(d\x2C["maximumFractionDigits"]);return new Intl.NumberFormat(i\x2Cu(T$1(u({}\x2Cm)\x2C{maximumFractionDigits:f})\x2Ca)).format(+t||+r)}\x2CG=({value:t\x2Cprops:e\x2CdefaultValue:r=""\x2Clocale:i=""\x2CparserOptions:o})=>{if(!i)return "";let n=c$1(g("date"\x2Co)\x2C[])\x2Cm=c$1((e==null?void 0:e.date)||{}\x2C[]);return new Intl.DateTimeFormat(i\x2Cu(u({}\x2Cn)\x2Cm)).format(+t||+r)}\x2CD$1=[{key:"second"\x2Cmultiplier:1e3}\x2C{key:"minute"\x2Cmultiplier:60}\x2C{key:"hour"\x2Cmultiplier:60}\x2C{key:"day"\x2Cmultiplier:24}\x2C{key:"week"\x2Cmultiplier:7}\x2C{key:"month"\x2Cmultiplier:13/3}\x2C{key:"year"\x2Cmultiplier:12}]\x2CN$1=(t=""\x2Ce="")=>new RegExp(`^${t}s?$`).test(e)\x2CH$1=t=>D$1.indexOf(D$1.find(({key:e})=>N$1(e\x2Ct)))\x2CJ$1=(t\x2Ce)=>D$1.reduce(([r\x2Ci]\x2C{key:o\x2Cmultiplier:n}\x2Cm)=>{if(N$1(i\x2Ce))return [r\x2Ci];if(!i||m===H$1(i)+1){let f=Math.round(r/n);if(!i||Math.abs(f)>=1||e!=="auto")return [f\x2Co]}return [r\x2Ci]}\x2C[t\x2C""])\x2CQ$1=({value:t\x2CdefaultValue:e=""\x2Clocale:r=""\x2Cprops:i\x2CparserOptions:o})=>{if(!r)return "";let k=g("ago"\x2Co)\x2C{format:n\x2Cnumeric:m}=k\x2Cf=c$1(k\x2C["format"\x2C"numeric"])\x2Cy=(i==null?void 0:i.ago)||{}\x2C{format:a=n||"auto"\x2Cnumeric:s=m||"auto"}=y\x2Cd=c$1(y\x2C["format"\x2C"numeric"])\x2CM=+t||+e\x2Cl=J$1(M\x2Ca);return new Intl.RelativeTimeFormat(r\x2Cu(T$1(u({}\x2Cf)\x2C{numeric:s})\x2Cd)).format(...l)}\x2CW$1=({value:t\x2CdefaultValue:e=""\x2Clocale:r=""\x2Cprops:i\x2CparserOptions:o})=>{if(!r)return "";let M=g("currency"\x2Co)\x2C{ratio:n\x2Ccurrency:m}=M\x2Cf=c$1(M\x2C["ratio"\x2C"currency"])\x2Cl=(i==null?void 0:i.currency)||{}\x2C{ratio:a=n||1\x2Ccurrency:s=m}=l\x2Cd=c$1(l\x2C["ratio"\x2C"currency"]);return new Intl.NumberFormat(r\x2Cu(T$1(u({}\x2Cf)\x2C{style:"currency"\x2Ccurrency:s})\x2Cd)).format(a*(t||e))};var X$1=t=>typeof t=="string"&&/{{(?:(?!{{|}}).)+}}/.test(t)\x2CF$1=t=>typeof t=="string"?t.replace(/\\\\(?=:|;|{|})/g\x2C""):t\x2CY$1=({value:t\x2Cprops:e\x2Cpayload:r\x2CparserOptions:i\x2Clocale:o})=>`${t}`.replace(/{{\\s*(?:(?!{{|}}).)+\\s*}}/g\x2Cn=>{let m=F$1(`${n.match(/(?!{|\\s).+?(?!\\\\[:;]).(?=\\s*(?:[:;]|}}$))/)}`)\x2Cf=r==null?void 0:r[m]\x2C[\x2Ca=""]=n.match(/.+?(?!\\\\;).;\\s*default\\s*:\\s*([^\\s:;].+?(?:\\\\[:;]|[^;}])*)(?=\\s*(?:;|}}$))/i)||[];a=a||(r==null?void 0:r.default)||"";let[\x2Cs=""]=n.match(/{{\\s*(?:[^;]|(?:\\\\;))+\\s*(?:(?!\\\\:).[:])\\s*(?!\\s)((?:\\\\;|[^;])+?)(?=\\s*(?:[;]|}}$))/i)||[];if(f===void 0&&s!=="ne")return a;let d=!!s\x2C{customModifiers:M}=i||{}\x2Cl=u(u({}\x2Ch)\x2CM||{});s=Object.keys(l).includes(s)?s:"eq";let k=l[s]\x2Cy=(n.match(/[^\\s:;{](?:[^;]|\\\\[;])+[^:;}]/gi)||[]).reduce((b\x2CI\x2Cq)=>{if(q>0){let P=F$1(`${I.match(/(?:(?:\\\\:)|[^:])+/)}`.trim())\x2Cw=`${I.match(/(?:(?:\\\\:)|[^:])+$/)}`.trimStart();if(P&&P!=="default"&&w)return [...b\x2C{key:P\x2Cvalue:w}]}return b}\x2C[]);return !d&&!y.length?f:k({value:f\x2Coptions:y\x2Cprops:e\x2CdefaultValue:a\x2Clocale:o\x2CparserOptions:i})})\x2CU$1=({value:t\x2Cprops:e\x2Cpayload:r\x2CparserOptions:i\x2Clocale:o})=>{if(X$1(t)){let n=Y$1({value:t\x2Cpayload:r\x2Cprops:e\x2CparserOptions:i\x2Clocale:o});return U$1({value:n\x2Cpayload:r\x2Cprops:e\x2CparserOptions:i\x2Clocale:o})}else return F$1(t)}\x2CZ$1=t=>({parse:(e\x2C[r\x2Ci]\x2Co\x2Cn)=>(r!=null&&r.default&&e===void 0&&(e=r.default)\x2Ce===void 0&&(e=n)\x2CU$1({value:e\x2Cpayload:r\x2Cprops:i\x2CparserOptions:t\x2Clocale:o}))})\x2Crt=Z$1;\n\nvar U=Object.defineProperty\x2CJ=Object.defineProperties\x2CQ=Object.getOwnPropertyDescriptors\x2Cj=Object.getOwnPropertySymbols\x2Cz=Object.prototype.hasOwnProperty\x2CH=Object.prototype.propertyIsEnumerable\x2Cx=(o\x2Ce\x2Ca)=>e in o?U(o\x2Ce\x2C{enumerable:!0\x2Cconfigurable:!0\x2Cwritable:!0\x2Cvalue:a}):o[e]=a\x2Cn=(o\x2Ce)=>{for(var a in e||(e={}))z.call(e\x2Ca)&&x(o\x2Ca\x2Ce[a]);if(j)for(var a of j(e))H.call(e\x2Ca)&&x(o\x2Ca\x2Ce[a]);return o}\x2Cp=(o\x2Ce)=>J(o\x2CQ(e))\x2CO=(o\x2Ce)=>{var a={};for(var t in o)z.call(o\x2Ct)&&e.indexOf(t)<0&&(a[t]=o[t]);if(o!=null&&j)for(var t of j(o))e.indexOf(t)<0&&H.call(o\x2Ct)&&(a[t]=o[t]);return a}\x2CN=["error"\x2C"warn"\x2C"debug"]\x2CF=({logger:o=console\x2Clevel:e=N[1]\x2Cprefix:a="[i18n]: "})=>N.reduce((t\x2Cl\x2Cr)=>p(n({}\x2Ct)\x2C{[l]:i=>N.indexOf(e)>=r&&o[l](`${a}${i}`)})\x2C{})\x2Cc=F({})\x2CX=o=>{c=o;}\x2CE=o=>{var e=o\x2C{parser:a\x2Ckey:t\x2Cparams:l\x2Ctranslations:r\x2Clocale:i\x2CfallbackLocale:s}=e\x2Cu=O(e\x2C["parser"\x2C"key"\x2C"params"\x2C"translations"\x2C"locale"\x2C"fallbackLocale"]);if(!t)return c.warn(`No translation key provided ('${i}' locale). Skipping translation...`)\x2C"";if(!i)return c.warn(`No locale provided for '${t}' key. Skipping translation...`)\x2C"";let y=(r[i]||{})[t];if(s&&y===void 0&&(c.debug(`No translation provided for '${t}' key in locale '${i}'. Trying fallback '${s}'`)\x2Cy=(r[s]||{})[t])\x2Cy===void 0){if(c.debug(`No translation provided for '${t}' key in fallback '${s}'.`)\x2Cu.hasOwnProperty("fallbackValue"))return u.fallbackValue;c.warn(`No translation nor fallback found for '${t}' .`);}return a.parse(y\x2Cl\x2Ci\x2Ct)}\x2Ck=(...o)=>o.length?o.filter(e=>!!e).map(e=>{let a=`${e}`.toLowerCase();try{let[t]=Intl.Collator.supportedLocalesOf(e);if(!t)throw new Error;a=t;}catch{c.warn(`'${e}' locale is non-standard.`);}return a}):[]\x2CT=(o\x2Ce\x2Ca)=>{if(e&&Array.isArray(o))return o.map(t=>T(t\x2Ce));if(o&&typeof o=="object"){let t=Object.keys(o).reduce((l\x2Cr)=>{let i=o[r]\x2Cs=a?`${a}.${r}`:`${r}`;return i&&typeof i=="object"&&!(e&&Array.isArray(i))?n(n({}\x2Cl)\x2CT(i\x2Ce\x2Cs)):p(n({}\x2Cl)\x2C{[s]:T(i\x2Ce)})}\x2C{});return Object.keys(t).length?t:null}return o}\x2CY=o=>o.reduce((e\x2C{key:a\x2Cdata:t\x2Clocale:l})=>{if(!t)return e;let[r]=k(l)\x2Ci=p(n({}\x2Ce[r]||{})\x2C{[a]:t});return p(n({}\x2Ce)\x2C{[r]:i})}\x2C{})\x2CZ=async o=>{try{let e=await Promise.all(o.map(a=>{var t=a\x2C{loader:l}=t\x2Cr=O(t\x2C["loader"]);return new Promise(async i=>{let s;try{s=await l();}catch(u){c.error(`Failed to load translation. Verify your '${r.locale}' > '${r.key}' Loader.`)\x2Cc.error(u);}i(p(n({loader:l}\x2Cr)\x2C{data:s}));})}));return Y(e)}catch(e){c.error(e);}return {}}\x2Cee=o=>e=>{try{if(typeof e=="string")return e===o;if(typeof e=="object")return e.test(o)}catch{c.error("Invalid route config!");}return !1}\x2CM=(o\x2Ce)=>{let a=!0;try{a=Object.keys(o).filter(t=>o[t]!==void 0).every(t=>o[t]===e[t]);}catch{}return a}\x2CC=1e3*60*60*24\x2Cae=class{constructor(o){this.cachedAt=0\x2Cthis.loadedKeys={}\x2Cthis.currentRoute=A$1()\x2Cthis.config=A$1()\x2Cthis.isLoading=A$1(!1)\x2Cthis.promises=new Set\x2Cthis.loading={subscribe:this.isLoading.subscribe\x2CtoPromise:(e\x2Ca)=>{let{fallbackLocale:t}=b(this.config)\x2Cl=Array.from(this.promises).filter(r=>{let i=M({locale:k(e)[0]\x2Croute:a}\x2Cr);return t&&(i=i||M({locale:k(t)[0]\x2Croute:a}\x2Cr))\x2Ci}).map(({promise:r})=>r);return Promise.all(l)}\x2Cget:()=>b(this.isLoading)}\x2Cthis.privateRawTranslations=A$1({})\x2Cthis.rawTranslations={subscribe:this.privateRawTranslations.subscribe\x2Cget:()=>b(this.rawTranslations)}\x2Cthis.privateTranslations=A$1({})\x2Cthis.translations={subscribe:this.privateTranslations.subscribe\x2Cget:()=>b(this.translations)}\x2Cthis.locales=p(n({}\x2CE$2([this.config\x2Cthis.privateTranslations]\x2C([e\x2Ca])=>{if(!e)return [];let{loaders:t=[]}=e\x2Cl=t.map(({locale:i})=>i)\x2Cr=Object.keys(a).map(i=>i);return Array.from(new Set([...k(...l)\x2C...k(...r)]))}\x2C[]))\x2C{get:()=>b(this.locales)})\x2Cthis.internalLocale=A$1()\x2Cthis.loaderTrigger=E$2([this.internalLocale\x2Cthis.currentRoute]\x2C([e\x2Ca]\x2Ct)=>{var l\x2Cr;e!==void 0&&a!==void 0&&!(e===((l=b(this.loaderTrigger))==null?void 0:l[0])&&a===((r=b(this.loaderTrigger))==null?void 0:r[1]))&&(c.debug("Triggering translation load...")\x2Ct([e\x2Ca]));}\x2C[])\x2Cthis.localeHelper=A$1()\x2Cthis.locale={subscribe:this.localeHelper.subscribe\x2CforceSet:this.localeHelper.set\x2Cset:this.internalLocale.set\x2Cupdate:this.internalLocale.update\x2Cget:()=>b(this.locale)}\x2Cthis.initialized=E$2([this.locale\x2Cthis.currentRoute\x2Cthis.privateTranslations]\x2C([e\x2Ca\x2Ct]\x2Cl)=>{b(this.initialized)||l(e!==void 0&&a!==void 0&&!!Object.keys(t).length);})\x2Cthis.translation=E$2([this.privateTranslations\x2Cthis.locale\x2Cthis.isLoading]\x2C([e\x2Ca\x2Ct]\x2Cl)=>{let r=e[a];r&&Object.keys(r).length&&!t&&l(r);}\x2C{})\x2Cthis.t=p(n({}\x2CE$2([this.config\x2Cthis.translation]\x2Ce=>{var[a]=e\x2Ct=a\x2C{parser:l\x2CfallbackLocale:r}=t\x2Ci=O(t\x2C["parser"\x2C"fallbackLocale"]);return (s\x2C...u)=>E(n({parser:l\x2Ckey:s\x2Cparams:u\x2Ctranslations:this.translations.get()\x2Clocale:this.locale.get()\x2CfallbackLocale:r}\x2Ci.hasOwnProperty("fallbackValue")?{fallbackValue:i.fallbackValue}:{}))}))\x2C{get:(e\x2C...a)=>b(this.t)(e\x2C...a)})\x2Cthis.l=p(n({}\x2CE$2([this.config\x2Cthis.translations]\x2Ce=>{var[a\x2C...t]=e\x2Cl=a\x2C{parser:r\x2CfallbackLocale:i}=l\x2Cs=O(l\x2C["parser"\x2C"fallbackLocale"])\x2C[u]=t;return (y\x2Cb\x2C...A)=>E(n({parser:r\x2Ckey:b\x2Cparams:A\x2Ctranslations:u\x2Clocale:y\x2CfallbackLocale:i}\x2Cs.hasOwnProperty("fallbackValue")?{fallbackValue:s.fallbackValue}:{}))}))\x2C{get:(e\x2Ca\x2C...t)=>b(this.l)(e\x2Ca\x2C...t)})\x2Cthis.getLocale=e=>{let{fallbackLocale:a}=b(this.config)||{}\x2Ct=e||a;if(!t)return;let l=this.locales.get();return l.find(r=>k(t).includes(r))||l.find(r=>k(a).includes(r))}\x2Cthis.setLocale=e=>{if(e&&e!==b(this.internalLocale))return c.debug(`Setting '${e}' locale.`)\x2Cthis.internalLocale.set(e)\x2Cthis.loading.toPromise(e\x2Cb(this.currentRoute))}\x2Cthis.setRoute=e=>{if(e!==b(this.currentRoute)){c.debug(`Setting '${e}' route.`)\x2Cthis.currentRoute.set(e);let a=b(this.internalLocale);return this.loading.toPromise(a\x2Ce)}}\x2Cthis.loadConfig=async e=>{await this.configLoader(e);}\x2Cthis.getTranslationProps=async(e=this.locale.get()\x2Ca=b(this.currentRoute))=>{let t=b(this.config);if(!t||!e)return [];let l=this.translations.get()\x2C{loaders:r\x2CfallbackLocale:i=""\x2Ccache:s=C}=t||{}\x2Cu=Number.isNaN(+s)?C:+s;this.cachedAt?Date.now()>u+this.cachedAt&&(c.debug("Refreshing cache.")\x2Cthis.loadedKeys={}\x2Cthis.cachedAt=0):(c.debug("Setting cache timestamp.")\x2Cthis.cachedAt=Date.now());let[y\x2Cb$1]=k(e\x2Ci)\x2CA=l[y]\x2Cq=l[b$1]\x2CS=(r||[]).map(f=>{var w=f\x2C{locale:V}=w\x2Cm=O(w\x2C["locale"]);return p(n({}\x2Cm)\x2C{locale:k(V)[0]})}).filter(({routes:f})=>!f||(f||[]).some(ee(a))).filter(({key:f\x2Clocale:w})=>w===y&&(!A||!(this.loadedKeys[y]||[]).includes(f))||i&&w===b$1&&(!q||!(this.loadedKeys[b$1]||[]).includes(f)));if(S.length){this.isLoading.set(!0)\x2Cc.debug("Fetching translations...");let f=await Z(S);this.isLoading.set(!1);let w=Object.keys(f).reduce((m\x2Cg)=>p(n({}\x2Cm)\x2C{[g]:Object.keys(f[g])})\x2C{})\x2CV=S.filter(({key:m\x2Clocale:g})=>(w[g]||[]).some($=>`${$}`.startsWith(m))).reduce((m\x2C{key:g\x2Clocale:$})=>p(n({}\x2Cm)\x2C{[$]:[...m[$]||[]\x2Cg]})\x2C{});return [f\x2CV]}return []}\x2Cthis.addTranslations=(e\x2Ca)=>{if(!e)return;let t=b(this.config)\x2C{preprocess:l}=t||{};c.debug("Adding translations...");let r=Object.keys(e||{});this.privateRawTranslations.update(i=>r.reduce((s\x2Cu)=>p(n({}\x2Cs)\x2C{[u]:n(n({}\x2Cs[u]||{})\x2Ce[u])})\x2Ci))\x2Cthis.privateTranslations.update(i=>r.reduce((s\x2Cu)=>{let y=!0\x2Cb=e[u];return typeof l=="function"&&(b=l(b))\x2C(typeof l=="function"||l==="none")&&(y=!1)\x2Cp(n({}\x2Cs)\x2C{[u]:n(n({}\x2Cs[u]||{})\x2Cy?T(b\x2Cl==="preserveArrays"):b)})}\x2Ci))\x2Cr.forEach(i=>{let s=Object.keys(e[i]).map(u=>`${u}`.split(".")[0]);a&&(s=a[i])\x2Cthis.loadedKeys[i]=Array.from(new Set([...this.loadedKeys[i]||[]\x2C...s||[]]));});}\x2Cthis.loader=async([e\x2Ca])=>{let t=this.getLocale(e)||void 0;c.debug(`Adding loader promise for '${t}' locale and '${a}' route.`);let l=(async()=>{let r=await this.getTranslationProps(t\x2Ca);r.length&&this.addTranslations(...r);})();this.promises.add({locale:t\x2Croute:a\x2Cpromise:l})\x2Cl.then(()=>{t&&this.locale.get()!==t&&this.locale.forceSet(t);});}\x2Cthis.loadTranslations=(e\x2Ca=b(this.currentRoute)||"")=>{let t=this.getLocale(e);if(t)return this.setRoute(a)\x2Cthis.setLocale(t)\x2Cthis.loading.toPromise(t\x2Ca)}\x2Cthis.loaderTrigger.subscribe(this.loader)\x2Cthis.isLoading.subscribe(async e=>{e&&this.promises.size&&(await this.loading.toPromise()\x2Cthis.promises.clear()\x2Cc.debug("Loader promises have been purged."));})\x2Co&&this.loadConfig(o);}async configLoader(o){if(!o)return c.error("No config provided!");let e=o\x2C{initLocale:a\x2CfallbackLocale:t\x2Ctranslations:l\x2Clog:r}=e\x2Ci=O(e\x2C["initLocale"\x2C"fallbackLocale"\x2C"translations"\x2C"log"]);r&&X(F(r))\x2C[a]=k(a)\x2C[t]=k(t)\x2Cc.debug("Setting config.")\x2Cthis.config.set(n({initLocale:a\x2CfallbackLocale:t\x2Ctranslations:l}\x2Ci))\x2Cl&&this.addTranslations(l)\x2Ca&&await this.loadTranslations(a);}}\x2Cte=Object.defineProperty\x2Coe=Object.defineProperties\x2Cre=Object.getOwnPropertyDescriptors\x2CP=Object.getOwnPropertySymbols\x2CB=Object.prototype.hasOwnProperty\x2CW=Object.prototype.propertyIsEnumerable\x2CK=(o\x2Ce\x2Ca)=>e in o?te(o\x2Ce\x2C{enumerable:!0\x2Cconfigurable:!0\x2Cwritable:!0\x2Cvalue:a}):o[e]=a\x2Cle=(o\x2Ce)=>{for(var a in e||(e={}))B.call(e\x2Ca)&&K(o\x2Ca\x2Ce[a]);if(P)for(var a of P(e))W.call(e\x2Ca)&&K(o\x2Ca\x2Ce[a]);return o}\x2Cie=(o\x2Ce)=>oe(o\x2Cre(e))\x2Cse=(o\x2Ce)=>{var a={};for(var t in o)B.call(o\x2Ct)&&e.indexOf(t)<0&&(a[t]=o[t]);if(o!=null&&P)for(var t of P(o))e.indexOf(t)<0&&W.call(o\x2Ct)&&(a[t]=o[t]);return a}\x2CD=o=>{var e=o\x2C{parserOptions:a={}}=e\x2Ct=se(e\x2C["parserOptions"]);return ie(le({}\x2Ct)\x2C{parser:rt(a)})}\x2Cne=class extends ae{constructor(e){super(e&&D(e))\x2Cthis.loadConfig=a=>super.configLoader(D(a));}}\x2Cce=ne;const ue={full:"English"\x2Cshort:"Eng"}\x2Cde={full:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439"\x2Cshort:"Rus"}\x2Cye={full:"Espa\xf1ol"\x2Cshort:"Spa"}\x2Cpe={full:"Portugu\xeas"\x2Cshort:"Por"}\x2Cfe={full:"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22"\x2Cshort:"Tha"}\x2Cke={full:"Ti\u1ebfng Vi\u1ec7t"\x2Cshort:"Vie"}\x2CL={en:ue\x2Cru:de\x2Ces:ye\x2Cpt:pe\x2Cth:fe\x2Cvi:ke}\x2Cbe=[{locale:"en"\x2Ckey:""\x2Cloader:async()=>(await import('./en-8778cddd.js')).default}\x2C{locale:"en"\x2Ckey:"turnkey-solution"\x2Croutes:["/turnkey-solution"\x2C"/white-label-broker"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./turnkey-solution-ec91c16f.js')).default}\x2C{locale:"en"\x2Ckey:"white-label-broker"\x2Croutes:["/white-label-broker"\x2C"/turnkey-solution"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./white-label-broker-6dd0a658.js')).default}\x2C{locale:"en"\x2Ckey:"trading-platform"\x2Croutes:["/trading-platform"\x2C"/back-office"\x2C"/turnkey-solution"\x2C"/white-label-broker"]\x2Cloader:async()=>(await import('./trading-platform-29dbbd85.js')).default}\x2C{locale:"en"\x2Ckey:"back-office"\x2Croutes:["/back-office"]\x2Cloader:async()=>(await import('./back-office-ee484f2f.js')).default}\x2C{locale:"en"\x2Ckey:"about"\x2Croutes:["/about"]\x2Cloader:async()=>(await import('./about-cfe30d63.js')).default}\x2C{locale:"en"\x2Ckey:"team"\x2Croutes:["/team"]\x2Cloader:async()=>(await import('./team-960d9f9b.js')).default}\x2C{locale:"en"\x2Ckey:"cookie"\x2Croutes:["/cookie-policy"]\x2Cloader:async()=>(await import('./cookie-1dd2e484.js')).default}\x2C{locale:"en"\x2Ckey:"marketing-guide"\x2Croutes:["/marketing-guide"]\x2Cloader:async()=>(await import('./marketing-6ca21eb4.js')).default}\x2C{locale:"en"\x2Ckey:"privacy-policy"\x2Croutes:["/privacy-policy"]\x2Cloader:async()=>(await import('./privacy-ed49d547.js')).default}\x2C{locale:"en"\x2Ckey:"terms-and-conditions"\x2Croutes:["/terms-and-conditions"]\x2Cloader:async()=>(await import('./terms-and-conditions-36ffc81d.js')).default}\x2C{locale:"en"\x2Ckey:"under-construction"\x2Croutes:["/under-construction"]\x2Cloader:async()=>(await import('./under-construction-f944a8ce.js')).default}\x2C{locale:"en"\x2Ckey:"video-tutorials"\x2Croutes:["/video-tutorials"]\x2Cloader:async()=>(await import('./video-tutorials-62915218.js')).default}\x2C{locale:"en"\x2Ckey:"vulnerability-disclosure-policy"\x2Croutes:["/vulnerability-disclosure-policy"]\x2Cloader:async()=>(await import('./vulnerability-disclosure-policy-25365e62.js')).default}\x2C{locale:"en"\x2Ckey:"webinars"\x2Croutes:["/webinars"\x2C"/events"]\x2Cloader:async()=>(await import('./webinars-a0333e1e.js')).default}\x2C{locale:"en"\x2Ckey:"events"\x2Croutes:["/events"]\x2Cloader:async()=>(await import('./events-feef7a31.js')).default}\x2C{locale:"en"\x2Ckey:"business-plan"\x2Croutes:["/business-plan"]\x2Cloader:async()=>(await import('./business-plan-f5086845.js')).default}\x2C{locale:"en"\x2Ckey:"for-traders"\x2Croutes:["/for-traders"]\x2Cloader:async()=>(await import('./for-traders-0b1a3984.js')).default}\x2C{locale:"en"\x2Ckey:"prop-firm"\x2Croutes:["/prop-firm"\x2C"/white-label-binary-options"]\x2Cloader:async()=>(await import('./prop-firm-bd659d67.js')).default}\x2C{locale:"en"\x2Ckey:"white-label-binary-options"\x2Croutes:["/white-label-binary-options"]\x2Cloader:async()=>(await import('./white-label-binary-options-d564dd32.js')).default}\x2C{locale:"en"\x2Ckey:"glossary"\x2Croutes:["/glossary"]\x2Cloader:async()=>(await import('./glossary-44103c42.js')).default}]\x2Cme=[{locale:"ru"\x2Ckey:""\x2Cloader:async()=>(await import('./ru-a10d2ab6.js')).default}\x2C{locale:"ru"\x2Ckey:"turnkey-solution"\x2Croutes:["/turnkey-solution"\x2C"/white-label-broker"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./turnkey-solution2-72b7b826.js')).default}\x2C{locale:"ru"\x2Ckey:"white-label-broker"\x2Croutes:["/white-label-broker"\x2C"/turnkey-solution"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./white-label-broker2-b2a5b661.js')).default}\x2C{locale:"ru"\x2Ckey:"trading-platform"\x2Croutes:["/trading-platform"\x2C"/back-office"\x2C"/turnkey-solution"\x2C"/white-label-broker"]\x2Cloader:async()=>(await import('./trading-platform2-fae62527.js')).default}\x2C{locale:"ru"\x2Ckey:"back-office"\x2Croutes:["/back-office"]\x2Cloader:async()=>(await import('./back-office2-0cfdb3d6.js')).default}\x2C{locale:"ru"\x2Ckey:"about"\x2Croutes:["/about"]\x2Cloader:async()=>(await import('./about2-8d053202.js')).default}\x2C{locale:"ru"\x2Ckey:"team"\x2Croutes:["/team"]\x2Cloader:async()=>(await import('./team2-05de9d8c.js')).default}\x2C{locale:"ru"\x2Ckey:"cookie"\x2Croutes:["/cookie-policy"]\x2Cloader:async()=>(await import('./cookie2-ef8a8c69.js')).default}\x2C{locale:"ru"\x2Ckey:"events"\x2Croutes:["/events"\x2C"/webinars"]\x2Cloader:async()=>(await import('./events2-d3b6bc35.js')).default}\x2C{locale:"ru"\x2Ckey:"marketing-guide"\x2Croutes:["/marketing-guide"]\x2Cloader:async()=>(await import('./marketing2-bd2287f4.js')).default}\x2C{locale:"ru"\x2Ckey:"privacy-policy"\x2Croutes:["/privacy-policy"]\x2Cloader:async()=>(await import('./privacy2-96769947.js')).default}\x2C{locale:"ru"\x2Ckey:"terms-and-conditions"\x2Croutes:["/terms-and-conditions"]\x2Cloader:async()=>(await import('./terms-and-conditions2-d7261c12.js')).default}\x2C{locale:"ru"\x2Ckey:"under-construction"\x2Croutes:["/under-construction"]\x2Cloader:async()=>(await import('./under-construction2-fb92971a.js')).default}\x2C{locale:"ru"\x2Ckey:"video-tutorials"\x2Croutes:["/video-tutorials"]\x2Cloader:async()=>(await import('./video-tutorials2-3f5e365b.js')).default}\x2C{locale:"ru"\x2Ckey:"vulnerability-disclosure-policy"\x2Croutes:["/vulnerability-disclosure-policy"]\x2Cloader:async()=>(await import('./vulnerability-disclosure-policy2-b729ad56.js')).default}\x2C{locale:"ru"\x2Ckey:"webinars"\x2Croutes:["/webinars"\x2C"/events"]\x2Cloader:async()=>(await import('./webinars2-e9116077.js')).default}\x2C{locale:"ru"\x2Ckey:"business-plan"\x2Croutes:["/business-plan"]\x2Cloader:async()=>(await import('./business-plan2-d8258749.js')).default}\x2C{locale:"ru"\x2Ckey:"for-traders"\x2Croutes:["/for-traders"]\x2Cloader:async()=>(await import('./for-traders2-33ef7bc5.js')).default}\x2C{locale:"ru"\x2Ckey:"prop-firm"\x2Croutes:["/prop-firm"\x2C"/white-label-binary-options"]\x2Cloader:async()=>(await import('./prop-firm2-5f2103f1.js')).default}\x2C{locale:"ru"\x2Ckey:"white-label-binary-options"\x2Croutes:["/white-label-binary-options"]\x2Cloader:async()=>(await import('./white-label-binary-options2-58f3ccb7.js')).default}\x2C{locale:"ru"\x2Ckey:"glossary"\x2Croutes:["/glossary"]\x2Cloader:async()=>(await import('./glossary2-df231e2e.js')).default}]\x2Cwe=[{locale:"es"\x2Ckey:""\x2Cloader:async()=>(await import('./es-17cddd28.js')).default}\x2C{locale:"es"\x2Ckey:"turnkey-solution"\x2Croutes:["/turnkey-solution"\x2C"/white-label-broker"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./turnkey-solution3-6af9ed21.js')).default}\x2C{locale:"es"\x2Ckey:"white-label-broker"\x2Croutes:["/white-label-broker"\x2C"/turnkey-solution"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./white-label-broker3-cbe9ac68.js')).default}\x2C{locale:"es"\x2Ckey:"trading-platform"\x2Croutes:["/trading-platform"\x2C"/back-office"\x2C"/turnkey-solution"\x2C"/white-label-broker"]\x2Cloader:async()=>(await import('./trading-platform3-a7c8ff19.js')).default}\x2C{locale:"es"\x2Ckey:"back-office"\x2Croutes:["/back-office"]\x2Cloader:async()=>(await import('./back-office3-8f5c9271.js')).default}\x2C{locale:"es"\x2Ckey:"about"\x2Croutes:["/about"]\x2Cloader:async()=>(await import('./about3-faa9f1cf.js')).default}\x2C{locale:"es"\x2Ckey:"team"\x2Croutes:["/team"]\x2Cloader:async()=>(await import('./team3-557c351c.js')).default}\x2C{locale:"es"\x2Ckey:"cookie"\x2Croutes:["/cookie-policy"]\x2Cloader:async()=>(await import('./cookie3-4ad36a4e.js')).default}\x2C{locale:"es"\x2Ckey:"events"\x2Croutes:["/events"]\x2Cloader:async()=>(await import('./events3-2226841b.js')).default}\x2C{locale:"es"\x2Ckey:"marketing-guide"\x2Croutes:["/marketing-guide"]\x2Cloader:async()=>(await import('./marketing3-85420d6a.js')).default}\x2C{locale:"es"\x2Ckey:"privacy-policy"\x2Croutes:["/privacy-policy"]\x2Cloader:async()=>(await import('./privacy3-23b086c9.js')).default}\x2C{locale:"es"\x2Ckey:"terms-and-conditions"\x2Croutes:["/terms-and-conditions"]\x2Cloader:async()=>(await import('./terms-and-conditions3-b08ed7b5.js')).default}\x2C{locale:"es"\x2Ckey:"under-construction"\x2Croutes:["/under-construction"]\x2Cloader:async()=>(await import('./under-construction3-d693f09f.js')).default}\x2C{locale:"es"\x2Ckey:"video-tutorials"\x2Croutes:["/video-tutorials"]\x2Cloader:async()=>(await import('./video-tutorials3-ead8014e.js')).default}\x2C{locale:"es"\x2Ckey:"vulnerability-disclosure-policy"\x2Croutes:["/vulnerability-disclosure-policy"]\x2Cloader:async()=>(await import('./vulnerability-disclosure-policy3-7d9ad76d.js')).default}\x2C{locale:"es"\x2Ckey:"webinars"\x2Croutes:["/webinars"\x2C"/events"]\x2Cloader:async()=>(await import('./webinars3-e9152460.js')).default}\x2C{locale:"es"\x2Ckey:"business-plan"\x2Croutes:["/business-plan"]\x2Cloader:async()=>(await import('./business-plan3-f3cbb396.js')).default}\x2C{locale:"es"\x2Ckey:"for-traders"\x2Croutes:["/for-traders"]\x2Cloader:async()=>(await import('./for-traders3-b862a74d.js')).default}\x2C{locale:"es"\x2Ckey:"prop-firm"\x2Croutes:["/prop-firm"\x2C"/white-label-binary-options"]\x2Cloader:async()=>(await import('./prop-firm3-9aae8264.js')).default}\x2C{locale:"es"\x2Ckey:"white-label-binary-options"\x2Croutes:["/white-label-binary-options"]\x2Cloader:async()=>(await import('./white-label-binary-options3-cfbcb418.js')).default}\x2C{locale:"es"\x2Ckey:"glossary"\x2Croutes:["/glossary"]\x2Cloader:async()=>(await import('./glossary3-10fb0461.js')).default}]\x2Che=[{locale:"pt"\x2Ckey:""\x2Cloader:async()=>(await import('./pt-be10766b.js')).default}\x2C{locale:"pt"\x2Ckey:"turnkey-solution"\x2Croutes:["/turnkey-solution"\x2C"/white-label-broker"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./turnkey-solution4-88009b05.js')).default}\x2C{locale:"pt"\x2Ckey:"white-label-broker"\x2Croutes:["/white-label-broker"\x2C"/turnkey-solution"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./white-label-broker4-2ff28042.js')).default}\x2C{locale:"pt"\x2Ckey:"trading-platform"\x2Croutes:["/trading-platform"\x2C"/back-office"\x2C"/turnkey-solution"\x2C"/white-label-broker"]\x2Cloader:async()=>(await import('./trading-platform4-a333019a.js')).default}\x2C{locale:"pt"\x2Ckey:"back-office"\x2Croutes:["/back-office"]\x2Cloader:async()=>(await import('./back-office4-8ccfc50f.js')).default}\x2C{locale:"pt"\x2Ckey:"about"\x2Croutes:["/about"]\x2Cloader:async()=>(await import('./about4-b271053d.js')).default}\x2C{locale:"pt"\x2Ckey:"team"\x2Croutes:["/team"]\x2Cloader:async()=>(await import('./team4-1dd04d33.js')).default}\x2C{locale:"pt"\x2Ckey:"cookie"\x2Croutes:["/cookie-policy"]\x2Cloader:async()=>(await import('./cookie4-a23ad005.js')).default}\x2C{locale:"pt"\x2Ckey:"events"\x2Croutes:["/events"]\x2Cloader:async()=>(await import('./events4-fa299575.js')).default}\x2C{locale:"pt"\x2Ckey:"marketing-guide"\x2Croutes:["/marketing-guide"]\x2Cloader:async()=>(await import('./marketing4-ca67b85d.js')).default}\x2C{locale:"pt"\x2Ckey:"privacy-policy"\x2Croutes:["/privacy-policy"]\x2Cloader:async()=>(await import('./privacy4-ab9f6a8c.js')).default}\x2C{locale:"pt"\x2Ckey:"terms-and-conditions"\x2Croutes:["/terms-and-conditions"]\x2Cloader:async()=>(await import('./terms-and-conditions4-31ec174c.js')).default}\x2C{locale:"pt"\x2Ckey:"under-construction"\x2Croutes:["/under-construction"]\x2Cloader:async()=>(await import('./under-construction4-3aebc2fc.js')).default}\x2C{locale:"pt"\x2Ckey:"video-tutorials"\x2Croutes:["/video-tutorials"]\x2Cloader:async()=>(await import('./video-tutorials4-4f62bdea.js')).default}\x2C{locale:"pt"\x2Ckey:"vulnerability-disclosure-policy"\x2Croutes:["/vulnerability-disclosure-policy"]\x2Cloader:async()=>(await import('./vulnerability-disclosure-policy4-cfe5c509.js')).default}\x2C{locale:"pt"\x2Ckey:"webinars"\x2Croutes:["/webinars"\x2C"/events"]\x2Cloader:async()=>(await import('./webinars4-9e2aca3c.js')).default}\x2C{locale:"pt"\x2Ckey:"business-plan"\x2Croutes:["/business-plan"]\x2Cloader:async()=>(await import('./business-plan4-d4fb00da.js')).default}\x2C{locale:"pt"\x2Ckey:"for-traders"\x2Croutes:["/for-traders"]\x2Cloader:async()=>(await import('./for-traders4-4ef33edf.js')).default}\x2C{locale:"pt"\x2Ckey:"prop-firm"\x2Croutes:["/prop-firm"\x2C"/white-label-binary-options"]\x2Cloader:async()=>(await import('./prop-firm4-c0e1719b.js')).default}\x2C{locale:"pt"\x2Ckey:"white-label-binary-options"\x2Croutes:["/white-label-binary-options"]\x2Cloader:async()=>(await import('./white-label-binary-options4-9fd3802f.js')).default}\x2C{locale:"pt"\x2Ckey:"glossary"\x2Croutes:["/glossary"]\x2Cloader:async()=>(await import('./glossary4-f62860c6.js')).default}]\x2Cge=[{locale:"vi"\x2Ckey:""\x2Cloader:async()=>(await import('./vi-8aacc75a.js')).default}\x2C{locale:"vi"\x2Ckey:"turnkey-solution"\x2Croutes:["/turnkey-solution"\x2C"/white-label-broker"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./turnkey-solution5-a59165be.js')).default}\x2C{locale:"vi"\x2Ckey:"white-label-broker"\x2Croutes:["/white-label-broker"\x2C"/turnkey-solution"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./white-label-broker5-b6231d05.js')).default}\x2C{locale:"vi"\x2Ckey:"trading-platform"\x2Croutes:["/trading-platform"\x2C"/back-office"\x2C"/turnkey-solution"\x2C"/white-label-broker"]\x2Cloader:async()=>(await import('./trading-platform5-e30e294b.js')).default}\x2C{locale:"vi"\x2Ckey:"back-office"\x2Croutes:["/back-office"]\x2Cloader:async()=>(await import('./back-office5-bb78e4ea.js')).default}\x2C{locale:"vi"\x2Ckey:"about"\x2Croutes:["/about"]\x2Cloader:async()=>(await import('./about5-bba68662.js')).default}\x2C{locale:"vi"\x2Ckey:"team"\x2Croutes:["/team"]\x2Cloader:async()=>(await import('./team5-5eb1508e.js')).default}\x2C{locale:"vi"\x2Ckey:"cookie"\x2Croutes:["/cookie-policy"]\x2Cloader:async()=>(await import('./cookie5-347feecd.js')).default}\x2C{locale:"vi"\x2Ckey:"events"\x2Croutes:["/events"]\x2Cloader:async()=>(await import('./events5-19c64a76.js')).default}\x2C{locale:"vi"\x2Ckey:"marketing-guide"\x2Croutes:["/marketing-guide"]\x2Cloader:async()=>(await import('./marketing5-3fc21f61.js')).default}\x2C{locale:"vi"\x2Ckey:"privacy-policy"\x2Croutes:["/privacy-policy"]\x2Cloader:async()=>(await import('./privacy5-a2cf584b.js')).default}\x2C{locale:"vi"\x2Ckey:"terms-and-conditions"\x2Croutes:["/terms-and-conditions"]\x2Cloader:async()=>(await import('./terms-and-conditions5-17a79ea7.js')).default}\x2C{locale:"vi"\x2Ckey:"under-construction"\x2Croutes:["/under-construction"]\x2Cloader:async()=>(await import('./under-construction5-34b67320.js')).default}\x2C{locale:"vi"\x2Ckey:"video-tutorials"\x2Croutes:["/video-tutorials"]\x2Cloader:async()=>(await import('./video-tutorials5-3420463f.js')).default}\x2C{locale:"vi"\x2Ckey:"vulnerability-disclosure-policy"\x2Croutes:["/vulnerability-disclosure-policy"]\x2Cloader:async()=>(await import('./vulnerability-disclosure-policy5-d7ee3891.js')).default}\x2C{locale:"vi"\x2Ckey:"webinars"\x2Croutes:["/webinars"\x2C"/events"]\x2Cloader:async()=>(await import('./webinars5-a6b63f15.js')).default}\x2C{locale:"vi"\x2Ckey:"business-plan"\x2Croutes:["/business-plan"]\x2Cloader:async()=>(await import('./business-plan5-9ac9baea.js')).default}\x2C{locale:"vi"\x2Ckey:"for-traders"\x2Croutes:["/for-traders"]\x2Cloader:async()=>(await import('./for-traders5-81f28568.js')).default}\x2C{locale:"vi"\x2Ckey:"prop-firm"\x2Croutes:["/prop-firm"\x2C"/white-label-binary-options"]\x2Cloader:async()=>(await import('./prop-firm5-3558d38e.js')).default}\x2C{locale:"vi"\x2Ckey:"white-label-binary-options"\x2Croutes:["/white-label-binary-options"]\x2Cloader:async()=>(await import('./white-label-binary-options5-f8750296.js')).default}\x2C{locale:"vi"\x2Ckey:"glossary"\x2Croutes:["/glossary"]\x2Cloader:async()=>(await import('./glossary5-2ab898a8.js')).default}]\x2Cve=[{locale:"th"\x2Ckey:""\x2Cloader:async()=>(await import('./th-f5a0806a.js')).default}\x2C{locale:"th"\x2Ckey:"turnkey-solution"\x2Croutes:["/turnkey-solution"\x2C"/white-label-broker"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./turnkey-solution6-4748a566.js')).default}\x2C{locale:"th"\x2Ckey:"white-label-broker"\x2Croutes:["/white-label-broker"\x2C"/turnkey-solution"\x2C"/trading-platform"]\x2Cloader:async()=>(await import('./white-label-broker6-d68a72f0.js')).default}\x2C{locale:"th"\x2Ckey:"trading-platform"\x2Croutes:["/trading-platform"\x2C"/back-office"\x2C"/turnkey-solution"\x2C"/white-label-broker"]\x2Cloader:async()=>(await import('./trading-platform6-c29f2cfa.js')).default}\x2C{locale:"th"\x2Ckey:"back-office"\x2Croutes:["/back-office"]\x2Cloader:async()=>(await import('./back-office6-c478c865.js')).default}\x2C{locale:"th"\x2Ckey:"about"\x2Croutes:["/about"]\x2Cloader:async()=>(await import('./about6-20aa4692.js')).default}\x2C{locale:"th"\x2Ckey:"team"\x2Croutes:["/team"]\x2Cloader:async()=>(await import('./team6-f7384c72.js')).default}\x2C{locale:"th"\x2Ckey:"cookie"\x2Croutes:["/cookie-policy"]\x2Cloader:async()=>(await import('./cookie6-f54af360.js')).default}\x2C{locale:"th"\x2Ckey:"events"\x2Croutes:["/events"]\x2Cloader:async()=>(await import('./events6-433e50f6.js')).default}\x2C{locale:"th"\x2Ckey:"marketing-guide"\x2Croutes:["/marketing-guide"]\x2Cloader:async()=>(await import('./marketing6-44d7abf6.js')).default}\x2C{locale:"th"\x2Ckey:"privacy-policy"\x2Croutes:["/privacy-policy"]\x2Cloader:async()=>(await import('./privacy6-6aaa68ce.js')).default}\x2C{locale:"th"\x2Ckey:"terms-and-conditions"\x2Croutes:["/terms-and-conditions"]\x2Cloader:async()=>(await import('./terms-and-conditions6-2f7f7848.js')).default}\x2C{locale:"th"\x2Ckey:"under-construction"\x2Croutes:["/under-construction"]\x2Cloader:async()=>(await import('./under-construction6-8240fbec.js')).default}\x2C{locale:"th"\x2Ckey:"video-tutorials"\x2Croutes:["/video-tutorials"]\x2Cloader:async()=>(await import('./video-tutorials6-be50520e.js')).default}\x2C{locale:"th"\x2Ckey:"vulnerability-disclosure-policy"\x2Croutes:["/vulnerability-disclosure-policy"]\x2Cloader:async()=>(await import('./vulnerability-disclosure-policy6-ba20daf9.js')).default}\x2C{locale:"th"\x2Ckey:"webinars"\x2Croutes:["/webinars"\x2C"/events"]\x2Cloader:async()=>(await import('./webinars6-ea62dbcf.js')).default}\x2C{locale:"th"\x2Ckey:"business-plan"\x2Croutes:["/business-plan"]\x2Cloader:async()=>(await import('./business-plan6-dac6ec9d.js')).default}\x2C{locale:"th"\x2Ckey:"for-traders"\x2Croutes:["/for-traders"]\x2Cloader:async()=>(await import('./for-traders6-056c458f.js')).default}\x2C{locale:"th"\x2Ckey:"prop-firm"\x2Croutes:["/prop-firm"\x2C"/white-label-binary-options"]\x2Cloader:async()=>(await import('./prop-firm6-82dfc423.js')).default}\x2C{locale:"th"\x2Ckey:"white-label-binary-options"\x2Croutes:["/white-label-binary-options"]\x2Cloader:async()=>(await import('./white-label-binary-options6-5249e81f.js')).default}\x2C{locale:"th"\x2Ckey:"glossary"\x2Croutes:["/glossary"]\x2Cloader:async()=>(await import('./glossary6-fefef6ef.js')).default}]\x2CLe=[be.flatMap(o=>o)\x2Cme.flatMap(o=>o)\x2Cwe.flatMap(o=>o)\x2Che.flatMap(o=>o)\x2Cge.flatMap(o=>o)\x2Cve.flatMap(o=>o)]\x2COe={translations:{en:{lang:L}\x2Cru:{lang:L}\x2Ces:{lang:L}\x2Cpt:{lang:L}\x2Cth:{lang:L}\x2Cvi:{lang:L}}\x2Cloaders:Le.flatMap(o=>o)}\x2C_="en"\x2C{t:Re\x2Clocale:R\x2Clocales:Ae\x2Cloading:I\x2CaddTranslations:Se\x2CloadTranslations:Ve\x2Ctranslations:Ne\x2CsetRoute:xe\x2CsetLocale:Ee}=new ce(Oe)\x2CMe=()=>R.get()===_?"":R.get()\x2CCe=o=>{const e=R.get()===_?"":R.get();return `${e?`/${e}`:""}${o}`}\x2CKe=o=>{switch(o){case"glossary":return "glossary";case"post":default:return "blog"}};I.subscribe(async o=>{o&&await I.toPromise();});\n\nexport { Ae as A\x2C Ce as C\x2C Ee as E\x2C Ke as K\x2C Me as M\x2C Ne as N\x2C Oe as O\x2C R\x2C Se as S\x2C Ve as V\x2C _\x2C Re as a\x2C xe as x };\n//# sourceMappingURL=index3-fd856014.js.map\n
code-source-info,0x2c04857a343e,184,0,32610,C10O0C32O0C53O0C57O71C62O78C66O71C68O95C73O102C77O95C79O127C84O134C88O127C90O168C95O175C99O168C101O205C106O212C112O222C116O205C118O241C123O248C129O258C133O241C135O287C139O287C141O373C145O373C147O503C151O503C153O530C157O530C159O702C164O767C165O767C167O770C171O774C177O781C185O798C193O811C201O820C209O829C217O841C225O852C233O862C241O871C249O884C257O770C262O900C266O900C268O972C272O972C274O1096C278O1096C280O1220C284O1220C286O1335C290O1335C292O1448C296O1448C298O1570C302O1570C304O1694C308O1694C310O2055C314O2055C316O2270C320O2270C322O2471C326O2471C328O2519C332O2519C334O2569C338O2569C340O2761C344O2761C346O3123C350O3123C352O3482C356O3482C358O3539C362O3539C364O3598C368O3598C370O4518C374O4518C376O4739C381O4894C383O4906C388O4913C392O4906C394O4930C399O4937C403O4930C405O4956C410O4963C414O4956C416O4991C421O4998C425O4991C427O5022C432O5029C438O5039C442O5022C444O5056C449O5063C455O5073C459O5056C461O5096C465O5096C467O5180C471O5180C473O5296C477O5296C479O5315C483O5315C485O5473C489O5473C491O5500C495O5500C497O5633C504O5633C508O5633C510O5641C514O5641C516O5653C520O5653C522O6362C526O6362C528O6569C532O6569C534O6872C538O6872C540O7002C544O7002C546O7332C550O7332C552O7470C556O7470C558O7575C564O7575C566O7591C598O13400C603O13407C607O13400C609O13425C614O13432C618O13425C620O13452C625O13459C629O13452C631O13487C636O13494C640O13487C642O13518C647O13525C653O13535C657O13518C659O13552C664O13559C670O13569C674O13552C676O13592C680O13592C682O13678C686O13678C688O13795C692O13795C694O13817C698O13817C700O13975C704O13975C706O14075C710O14089C742O14172C743O14184C748O14216C753O14248C758O14280C763O14314C768O14346C773O14380C781O14384C787O14390C793O14396C799O14402C805O14408C811O14414C818O14421C833O14449C857O14616C881O14799C905O14997C929O15126C953O15238C977O15342C1001O15456C1025O15583C1049O15711C1073O15849C1097O15996C1121O16135C1145O16303C1169O16451C1193O16562C1217O16685C1241O16811C1265O16961C1289O17113C1313O17246C1330O17309C1345O17337C1369O17504C1393O17688C1417O17887C1441O18017C1465O18130C1489O18235C1513O18350C1537O18472C1561O18600C1585O18729C1609O18868C1633O19016C1657O19156C1681O19325C1705O19474C1729O19600C1753O19727C1777O19878C1801O20031C1825O20165C1842O20229C1857O20257C1881O20424C1905O20608C1929O20807C1953O20937C1977O21050C2001O21155C2025O21270C2049O21380C2073O21508C2097O21637C2121O21776C2145O21924C2169O22064C2193O22233C2217O22382C2241O22508C2268O22635C2299O22786C2330O22939C2361O23073C2382O23137C2403O23165C2438O23332C2473O23516C2508O23715C2543O23845C2578O23958C2613O24063C2648O24178C2683O24288C2718O24416C2753O24545C2788O24684C2823O24832C2858O24972C2893O25141C2931O25290C2969O25416C3007O25543C3045O25694C3083O25847C3121O25981C3149O26045C3170O26073C3208O26240C3246O26424C3284O26623C3322O26753C3360O26866C3398O26971C3436O27086C3474O27196C3512O27324C3550O27453C3588O27592C3626O27740C3664O27880C3702O28049C3740O28198C3778O28324C3816O28451C3854O28602C3892O28755C3930O28889C3958O28953C3979O28981C4017O29148C4055O29332C4093O29531C4131O29661C4169O29774C4207O29879C4245O29994C4283O30104C4321O30232C4359O30361C4397O30500C4435O30648C4473O30788C4511O30957C4549O31106C4587O31232C4625O31359C4663O31510C4701O31663C4739O31797C4767O31861C4779O31865C4798O31865C4820O31882C4839O31882C4861O31899C4880O31899C4902O31916C4921O31916C4943O31933C4962O31933C4984O31950C5003O31950C5024O31968C5033O31982C5042O31986C5053O31992C5071O31998C5082O32004C5100O32010C5111O32016C5129O32022C5140O32028C5158O32034C5169O32040C5187O32046C5198O32052C5226O32067C5245O32067C5265O31968C5268O32084C5270O32084C5273O32213C5280O32206C5292O32092C5303O32102C5314O32112C5325O32123C5335O32141C5346O32161C5357O32177C5368O32189C5379O32202C5390O32220C5397O32220C5400O32250C5407O32250C5410O32318C5417O32318C5420O32400C5424O32402C5443O32402C5455O32610,,
tick,0xfb3236,298241,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x7efc33641612,298253,1,0xabf940,3,0xd44a10,0x1c78303e47da,0x158e77f
tick,0x1168481,299016,0,0x0,2,0x11e9ce0,0x2c04857a353f,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,299086,0x2c04857a72ee,63,j$1 file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:3:640,0x2c0485797e40,~
code-source-info,0x2c04857a72ee,184,702,760,C0O723C13O718C26O718C27O725C30O731C37O739C50O725C58O710C62O759,,
code-creation,LazyCompile,10,299305,0x2c04857a75de,80,F file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:601,0x2c0485798ad8,~
code-source-info,0x2c04857a75de,184,5500,5630,C0O5500C14O5509C23O5511C28O5525C41O5528C46O5539C56O5557C61O5557C73O5557C79O5630,,
code-creation,LazyCompile,10,299369,0x2c04857a77de,55, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:665,0x2c04857a74f8,~
code-source-info,0x2c04857a77de,184,5564,5626,C0O5564C13O5573C23O5575C25O5575C38O5585C40O5588C49O5573C54O5626,,
code-creation,LazyCompile,10,299444,0x2c04857a7976,246,n file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:281,0x2c04857989e8,~
code-source-info,0x2c04857a7976,184,5180,5293,C0O5202C9O5206C18O5196C31O5196C32O5211C35O5213C40O5213C53O5231C63O5224C71O5188C74O5236C78O5254C81O5254C110O5249C138O5249C141O5259C144O5261C149O5261C165O5279C175O5272C180O5241C243O5284C245O5292,,
code-creation,LazyCompile,10,299502,0x2c04857a7b76,17,p file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:397,0x2c0485798a38,~
code-source-info,0x2c04857a7b76,184,5296,5312,C0O5303C6O5307C11O5303C16O5312,,
code-creation,LazyCompile,10,299565,0x2c04857a7ce6,43,x file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:197,0x2c0485798998,~
code-source-info,0x2c04857a7ce6,184,5096,5177,C0O5105C2O5107C10O5116C17O5167C27O5112C36O5175C42O5177,,
code-creation,LazyCompile,10,299953,0x2c04857a7e26,3, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:26974,0x2c048579d318,~
code-source-info,0x2c04857a7e26,184,31873,31877,C0O31876C2O31877,,
code-creation,LazyCompile,10,300012,0x2c04857a7f0e,3, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:26991,0x2c048579d368,~
code-source-info,0x2c04857a7f0e,184,31890,31894,C0O31893C2O31894,,
code-creation,LazyCompile,10,300054,0x2c04857a7ff6,3, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:27008,0x2c048579d3b8,~
code-source-info,0x2c04857a7ff6,184,31907,31911,C0O31910C2O31911,,
tick,0x15620a1,300112,0,0x0,0,0x158cf78,0x2c04857a474e,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,300132,0x2c04857a80de,3, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:27025,0x2c048579d408,~
code-source-info,0x2c04857a80de,184,31924,31928,C0O31927C2O31928,,
code-creation,LazyCompile,10,300170,0x2c04857a81c6,3, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:27042,0x2c048579d458,~
code-source-info,0x2c04857a81c6,184,31941,31945,C0O31944C2O31945,,
code-creation,LazyCompile,10,300202,0x2c04857a82ae,3, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:27059,0x2c048579d4a8,~
code-source-info,0x2c04857a82ae,184,31958,31962,C0O31961C2O31962,,
code-creation,LazyCompile,10,300261,0x2c04857a8396,3, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:27176,0x2c048579d4f8,~
code-source-info,0x2c04857a8396,184,32075,32079,C0O32078C2O32079,,
code-creation,LazyCompile,10,300360,0x2c04857a84fe,66,ne file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:9204,0x2c0485798fd8,~
code-source-info,0x2c04857a84fe,184,14103,14167,C0O14103C12O14107C21O14113C28O14116C37O14107C58O14137C65O14166,,
code-creation,LazyCompile,10,300416,0x2c04857a86ce,64,D file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:9076,0x2c0485798f88,~
code-source-info,0x2c04857a86ce,184,13975,14071,C0O13985C3O14002C14O14012C17O14015C22O14012C28O14036C34O14046C36O14046C50O14063C58O14043C63O14070,,
code-creation,LazyCompile,10,300495,0x2c04857a8856,266,se file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:8918,0x2c0485798f38,~
code-source-info,0x2c04857a8856,184,13817,13972,C0O13831C2O13847C15O13842C28O13842C29O13849C32O13851C37O13851C45O13864C50O13864C57O13874C64O13885C68O13883C77O13834C80O13890C87O13902C89O13917C92O13917C121O13912C149O13912C152O13924C157O13924C164O13934C175O13940C180O13940C190O13958C194O13956C200O13904C263O13963C265O13971,,
code-creation,LazyCompile,10,300583,0x2c04857a8aee,246,le file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:8779,0x2c0485798e98,~
code-source-info,0x2c04857a8aee,184,13678,13791,C0O13700C9O13704C18O13694C31O13694C32O13709C35O13711C40O13711C53O13729C63O13722C71O13686C74O13734C78O13752C81O13752C110O13747C138O13747C141O13757C144O13759C149O13759C165O13777C175O13770C180O13739C243O13782C245O13790,,
code-creation,LazyCompile,10,300641,0x2c04857a8d7e,43,K file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:8693,0x2c0485798e48,~
code-source-info,0x2c04857a8d7e,184,13592,13674,C0O13601C2O13603C10O13613C17O13664C27O13608C36O13672C42O13674,,
code-creation,LazyCompile,10,300722,0x2c04857a91b6,25,Z$1 file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:3:4677,0x2c0485798948,~
code-source-info,0x2c04857a91b6,184,4739,4890,C0O4739C9O4743C14O4750C24O4890,,
code-creation,LazyCompile,10,300754,0x2c04857a92ce,17,ie file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:8896,0x2c0485798ee8,~
code-source-info,0x2c04857a92ce,184,13795,13813,C0O13802C6O13807C11O13802C16O13813,,
code-creation,LazyCompile,10,301100,0x2c04857aa64e,1021,ae file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:2709,0x2c0485798da8,~
code-source-info,0x2c04857aa64e,184,7608,13019,C0O7608C9O7612C13O7625C21O7643C28O7665C34O7665C37O7664C44O7683C50O7683C53O7682C60O7704C68O7704C72O7703C79O7730C83O7726C88O7725C103O7763C108O7773C116O7793C124O8013C134O7746C141O8064C149O8064C153O8063C168O8109C173O8132C181O8146C191O8092C198O8200C206O8200C210O8199C225O8242C230O8262C238O8276C248O8225C265O8317C267O8322C283O8332C297O8344C316O8322C322O8317C333O8526C341O8315C346O8314C353O8568C359O8568C362O8567C369O8593C385O8603C399O8623C418O8593C423O8592C430O8863C436O8863C439O8862C454O8897C459O8910C470O8934C475O8947C486O8960C491O8975C502O8991C507O9006C515O9017C525O8880C532O9054C548O9064C562O9076C576O9094C592O9054C597O9053C604O9221C620O9231C634O9256C648O9268C666O9221C671O9220C688O9354C690O9359C706O9369C720O9381C736O9359C742O9354C753O9681C761O9352C766O9351C783O9720C785O9725C801O9735C815O9747C831O9725C837O9720C848O10023C856O9718C861O9717C872O10071C883O10241C894O10408C905O10581C916O10645C927O11693C938O12305C949O12659C956O12798C961O12812C969O12827C974O12812C982O12840C987O12850C997O12850C1004O12996C1009O13004C1014O13004C1020O13018,,
tick,0x10de1a0,301171,0,0x0,0,0x11febe0,0x2c04857a8523,0x2c04857a48de,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,301295,0x2c04857ab18e,124,E file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:461,0x274d30f76860,~
code-source-info,0x2c04857ab18e,180,903,1321,C0O903C18O921C22O928C27O928C33O921C35O941C48O944C58O941C60O949C63O955C68O961C72O955C79O970C88O976C93O970C94O1050C97O1054C104O1060C107O1050C109O1063C113O1072C118O1070C123O1320,,
code-creation,LazyCompile,10,301437,0x2c04857ab756,145,b file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:293,0x27e115bea58,~
code-source-info,0x2c04857ab756,180,735,855,C16O740C23O751C32O752C41O754C47O751C49O757C56O766C64O766C73O773C76O775C83O779C92O788C105O788C121O787C133O805C136O803C144O854,,
code-creation,LazyCompile,10,301491,0x2c04857abab6,91, file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:632,0x2c04857ab068,~
code-source-info,0x2c04857abab6,180,1074,1319,C0O1074C31O1090C32O1090C34O1103C36O1103C38O1112C39O1112C41O1116C45O1116C47O1126C51O1126C53O1199C60O1201C70O1201C75O1199C77O1272C78O1282C83O1286C90O1318,,
code-creation,LazyCompile,10,301523,0x2c04857abd4e,32, file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:763,0x2c04857ab990,~
code-source-info,0x2c04857abd4e,180,1205,1270,C0O1205C9O1214C13O1216C26O1214C31O1270,,
code-creation,LazyCompile,10,301585,0x2c04857abf86,186,c file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:1:244,0x274d30f76698,~
code-source-info,0x2c04857abf86,180,243,369,C0O243C15O252C20O279C44O274C72O274C75O281C77O281C81O264C145O291C149O299C150O310C161O310C166O308C168O326C171O335C185O368,,
code-creation,LazyCompile,10,301624,0x2c04857ac15e,2,o file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:1:11,0x274d30f768e0,~
code-source-info,0x2c04857ac15e,180,10,14,C1O13,,
code-creation,LazyCompile,10,301661,0x2c04857ac23e,69, file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:778,0x2c04857abc40,~
code-source-info,0x2c04857ac23e,180,1220,1254,C0O1224C12O1230C28O1239C31O1236C41O1234C53O1244C61O1249C64O1249C68O1253,,
code-creation,LazyCompile,10,301721,0x2c04857ac396,104,h file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:684,0x2c04857ab940,~
code-source-info,0x2c04857ac396,180,1126,1196,C0O1131C6O1136C7O1143C8O1143C13O1143C16O1155C25O1159C31O1161C35O1164C42O1168C51O1155C57O1177C68O1179C79O1186C96O1185C103O1195,,
code-creation,LazyCompile,10,301793,0x2c04857ac596,296, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:3738,0x2c04857a9a68,~
code-source-info,0x2c04857ac596,184,8637,8840,C0O8637C25O8639C62O8641C162O8657C165O8658C171O8670C174O8691C183O8698C188O8691C203O8728C206O8684C211O8742C220O8749C225O8742C241O8779C244O8735C255O8789C263O8789C268O8829C277O8832C286O8834C290O8829C295O8839,,
code-creation,LazyCompile,10,301838,0x2c04857ac7d6,5,i file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:1:118,0x274d30f76980,~
code-source-info,0x2c04857ac7d6,180,117,149,C0O121C4O148,,
code-creation,LazyCompile,10,301953,0x2c04857acb9e,389,loader file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:7407,0x2c04857a9fc0,~
code-source-info,0x2c04857acb9e,184,12306,12637,C0O12306C47O12313C84O12315C218O12327C223O12332C228O12332C236O12327C238O12353C243O12355C253O12391C268O12409C279O12355C284O12428C289O12520C293O12523C298O12528C303O12537C315O12549C323O12557C329O12567C333O12537C338O12573C348O12573C364O12636,,
code-creation,LazyCompile,10,301981,0x2c04857ace46,140, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:7530,0x2c04857ac988,~
code-source-info,0x2c04857ace46,184,12429,12519,C10O12429C18O12445C23O12456C30O12476C37O12478C40O12456C54O12445C80O12483C91O12496C99O12496C115O12518,,
code-creation,LazyCompile,10,302052,0x2c04857ad11e,108,getLocale file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:5173,0x2c04857a9de0,~
code-source-info,0x2c04857ad11e,184,10072,10226,C0O10072C11O10098C22O10105C27O10098C35O10095C41O10119C47O10119C49O10124C53O10130C54O10137C55O10143C60O10148C65O10156C70O10156C75O10171C85O10171C92O10200C102O10200C107O10225,,
code-creation,LazyCompile,10,302098,0x2c04857ad356,32,b file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:1:380,0x274d30f766e8,~
code-source-info,0x2c04857ad356,180,379,412,C0O379C8O387C9O387C11O389C15O398C20O396C26O407C31O411,,
code-creation,LazyCompile,10,302138,0x2c04857ad496,9, file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:1:401,0x2c04857ad2a0,~
code-source-info,0x2c04857ad496,180,400,406,C0O404C2O404C8O406,,
code-creation,LazyCompile,10,302177,0x2c04857ad58e,74, file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:366,0x2c04857ab630,~
code-source-info,0x2c04857ad58e,180,808,854,C0O813C7O815C14O822C17O821C26O825C29O827C35O831C44O837C52O841C55O841C64O846C73O853,,
code-creation,LazyCompile,10,302225,0x2c04857ad6e6,64,p file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:689,0x2c04857a7720,~
code-source-info,0x2c04857ad6e6,184,5588,5624,C0O5606C5O5593C14O5601C17O5593C25O5603C34O5608C39O5609C47O5616C53O5620C58O5612C63O5624,,
tick,0x7efc336353a5,302289,0,0x0,3,0x11e9ce0,0x2c04857accb5,0x2c04857ab7de,0x2c04857aaa1c,0x2c04857a8523,0x2c04857a48de,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,302491,0x2c04857add16,906,getTranslationProps file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:5747,0x2c04857a9f20,~
code-source-info,0x2c04857add16,184,10646,11672,C4O10646C35O10659C40O10666C45O10666C58O10674C69O10681C74O10674C132O10704C143O10711C148O10704C153O10719C157O10727C159O10729C171O10739C172O10745C177O10750C182O10763C187O10763C192O10811C198O10778C203O10795C213O10806C224O10819C228O10826C235O10832C238O10826C253O10838C256O10841C261O10846C267O10855C271O10860C276O10860C286O10873C290O10867C293O10865C303O10886C311O10886C322O10928C333O10945C346O10952C354O10952C364O11000C368O11005C373O11005C378O10999C384O11023C392O11023C398O11023C420O11016C460O11018C568O11032C570O11033C573O11032C575O11039C577O11040C580O11039C582O11048C589O11056C600O11056C606O11139C616O11140C622O11185C632O11186C638O11329C654O11337C659O11342C664O11352C671O11352C681O11362C689O11362C694O11402C699O11408C711O11402C736O11402C738O11413C743O11418C748O11428C755O11428C760O11442C764O11449C773O11449C779O11456C792O11457C798O11442C800O11514C811O11514C817O11582C830O11583C837O11649C846O11657C855O11659C868O11661C869O11662C881O11671,,
code-creation,LazyCompile,10,302566,0x2c04857ae376,19,get file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:4118,0x2c04857a9ab8,~
code-source-info,0x2c04857ae376,184,9017,9035,C0O9021C9O9028C14O9021C18O9035,,
code-creation,LazyCompile,10,302677,0x2c04857ae56e,155, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:7961,0x2c04857aa060,~
code-source-info,0x2c04857ae56e,184,12860,12994,C10O12860C18O12870C25O12878C30O12887C39O12905C44O12913C49O12913C61O12894C87O12930C92O12939C97O12939C106O12949C114O12949C130O12993,,
code-creation,LazyCompile,10,302740,0x2c04857ae76e,98,loadConfig file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:5683,0x2c04857a9ed0,~
code-source-info,0x2c04857ae76e,184,10582,10620,C10O10582C18O10592C21O10603C26O10603C39O10592C73O10619,,
code-creation,LazyCompile,10,302845,0x2c04857aead6,525,configLoader file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:8138,0x2c0485798df8,~
code-source-info,0x2c04857aead6,184,13037,13395,C10O13037C18O13041C22O13047C25O13056C33O13056C48O13085C49O13091C52O13105C57O13122C62O13137C67O13143C72O13150C75O13152C80O13150C86O13208C96O13213C101O13211C108O13223C113O13222C135O13220C238O13232C243O13231C265O13229C368O13239C376O13239C381O13269C386O13276C394O13280C401O13294C407O13311C413O13326C417O13280C423O13276C430O13333C432O13341C437O13341C444O13360C446O13374C451O13374C464O13363C500O13394,,
code-creation,LazyCompile,10,302946,0x2c04857aee96,266,O file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:416,0x2c0485798a88,~
code-source-info,0x2c04857aee96,184,5315,5470,C0O5329C2O5345C15O5340C28O5340C29O5347C32O5349C37O5349C45O5362C50O5362C57O5372C64O5383C68O5381C77O5332C80O5388C87O5400C89O5415C92O5415C121O5410C149O5410C152O5422C157O5422C164O5432C175O5438C180O5438C190O5456C194O5454C200O5402C263O5461C265O5469,,
code-creation,LazyCompile,10,303046,0x2c04857af196,45,k file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:1463,0x2c0485798bc8,~
code-source-info,0x2c04857af196,184,6362,6566,C0O6362C3O6372C9O6381C19O6381C25O6395C35O6396C44O6566,,
code-creation,LazyCompile,10,303084,0x2c04857af2ee,5, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:1489,0x2c04857af078,~
code-source-info,0x2c04857af2ee,184,6388,6394,C0O6391C4O6394,,
code-creation,LazyCompile,10,303222,0x2c04857af44e,295,u file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:116,0x27e115be9b8,~
code-source-info,0x2c04857af44e,180,558,700,C0O562C9O567C12O565C23O575C33O578C37O590C44O593C50O615C79O610C107O610C110O617C112O618C116O621C124O624C127O626C136O633C139O626C148O600C211O636C215O652C217O655C221O656C224O658C228O655C233O670C242O671C247O674C255O678C260O681C263O679C267O677C272O666C278O642C281O686C289O694C294O699,,
code-creation,LazyCompile,10,303282,0x2c04857af69e,37,l file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:1:160,0x274d30f769d0,~
code-source-info,0x2c04857af69e,180,159,233,C0O165C2O173C9O178C16O183C24O189C30O200C36O232,,
tick,0x7efc336c02cf,303334,0,0x0,3,0x11e9ce0,0x2c04857af45a,0x2c04857aec7d,0x2c04857ae788,0x2c04857aaa44,0x2c04857a8523,0x2c04857a48de,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,303417,0x2c04857af956,166,addTranslations file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:6795,0x2c04857a9f70,~
code-source-info,0x2c04857af956,184,11694,12293,C0O11694C19O11702C23O11708C24O11715C25O11721C36O11728C41O11721C46O11751C50O11748C56O11757C61O11759C69O11759C74O11797C78O11804C85O11809C89O11804C94O11797C96O11816C101O11821C106O11844C116O11844C126O11919C131O11939C141O11939C149O12135C159O12135C165O12292,,
code-creation,LazyCompile,10,303487,0x2c04857afc4e,21,l$1 file:///var/www/quadcode.com/build/server/chunks/index2-db879dd9.js:3:270,0x27e115bea08,~
code-source-info,0x2c04857afc4e,180,712,725,C0O716C7O720C10O718C15O716C20O724,,
code-creation,LazyCompile,10,303527,0x2c04857afdae,22, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:6952,0x2c04857af798,~
code-source-info,0x2c04857afdae,184,11851,11912,C0O11856C5O11856C15O11856C21O11912,,
code-creation,LazyCompile,10,303569,0x2c04857afede,79, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:6964,0x2c04857afcf0,~
code-source-info,0x2c04857afede,184,11863,11909,C0O11870C10O11872C12O11872C25O11882C37O11887C41O11893C48O11887C59O11903C63O11885C73O11870C78O11909,,
code-creation,LazyCompile,10,303768,0x2c04857b094e,22, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:7047,0x2c04857af7e8,~
code-source-info,0x2c04857b094e,184,11946,12131,C0O11951C5O11951C15O11951C21O12131,,
code-creation,LazyCompile,10,303841,0x2c04857b0a96,151, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:7059,0x2c04857b0890,~
code-source-info,0x2c04857b0a96,184,11958,12128,C0O11972C2O11977C7O11978C11O11982C21O12014C24O12014C31O12013C39O12043C44O12044C61O12065C63O12065C76O12075C88O12080C92O12086C99O12080C107O12095C116O12101C121O12102C125O12097C135O12078C145O12063C150O12127,,
code-creation,LazyCompile,10,303915,0x2c04857b0d5e,136,T file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:1670,0x2c0485798c18,~
code-source-info,0x2c04857b0d5e,184,6569,6869,C0O6569C17O6579C21O6585C25O6591C33O6591C40O6602C43O6611C53O6611C58O6626C59O6626C69O6658C73O6665C81O6665C87O6672C99O6673C106O6824C110O6838C115O6838C121O6845C132O6859C133O6860C135O6868,,
code-creation,LazyCompile,10,303981,0x2c04857b0f66,161, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:1781,0x2c04857b0c68,~
code-source-info,0x2c04857b0f66,184,6680,6819,C0O6694C5O6695C9O6701C15O6706C25O6711C33O6718C35O6722C47O6754C49O6757C53O6763C58O6763C75O6777C77O6777C97O6785C103O6775C120O6797C122O6797C135O6807C145O6810C155O6795C160O6818,,
tick,0x165c402,304449,0,0x0,0,0x2c04857a79b5,0x2c04857b0fcd,0x15e8631,0x2c04857b0dc1,0x2c04857b0fc7,0x15e8631,0x2c04857b0dc1,0x2c04857b0b13,0x15e8631,0x2c04857b095d,0x2c04857afc58,0x2c04857af9e3,0x2c04857aec8b,0x2c04857ae788,0x2c04857aaa44,0x2c04857a8523,0x2c04857a48de,0x1590930,0xac12f0,0x1c78303e9c4a,0x158e77f
code-creation,LazyCompile,10,304749,0x2c04857b165e,182, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:7244,0x2c04857af838,~
code-source-info,0x2c04857b165e,184,12143,12290,C0O12153C4O12160C14O12166C18O12160C24O12170C34O12171C40O12200C49O12207C58O12217C63O12231C67O12237C72O12246C81O12259C88O12269C98O12272C104O12281C112O12281C165O12242C171O12237C176O12230C181O12289,,
code-creation,LazyCompile,10,304810,0x2c04857b1876,23, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:7276,0x2c04857b1558,~
code-source-info,0x2c04857b1876,184,12175,12198,C0O12195C4O12185C12O12185C19O12195C22O12198,,
code-creation,LazyCompile,10,304947,0x2c04857b1aae,105, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:27513,0x2c048579d638,~
code-source-info,0x2c04857b1aae,184,32412,32446,C10O32412C18O32422C24O32431C27O32433C32O32433C44O32425C80O32445,,
code-creation,LazyCompile,10,305063,0x2c04857b1c1e,63, file:///var/www/quadcode.com/build/server/chunks/index3-fd856014.js:5:7679,0x2c04857ac9c0,~
code-source-info,0x2c04857b1c1e,184,12578,12634,C0O12583C11O12591C16O12598C21O12598C28O12606C30O12603C41O12614C46O12621C53O12630C56O12621C62O12633,,
code-creation,LazyCompile,10,305181,0x2c04857b1e26,41,env file:///var/www/quadcode.com/build/env.js:32:13,0x3f8cd556bb68,~
code-source-info,0x2c04857b1e26,128,574,691,C0O611C5O614C9O642C13O650C17O639C22O656C26O664C33O667C40O689,,
code-creation,LazyCompile,10,305301,0x2c04857b1f96,73,exports.initializeImportMetaObject node:internal/process/esm_loader:15:46,0x27ba8ebe3700,~
code-source-info,0x2c04857b1f96,100,413,701,C0O454C6O454C11O438C16O504C21O504C28O566C33O566C39O529C44O581C46O629C48O656C51O656C66O629C72O700,,
code-creation,LazyCompile,10,305362,0x2c04857b20f6,33,initializeImportMeta node:internal/modules/esm/translators:129:30,0x27ba8ebfd1c8,~
code-source-info,0x2c04857b20f6,110,3645,3786,C3O3654C8O3683C14O3722C17O3737C21O3735C25O3769C27O3778C32O3785,,
tick,0x11277a0,305510,0,0x0,2,0x11e9ce0,0x3f8cd5575146,0x158e77f
code-creation,LazyCompile,10,305552,0x2c04857b225e,162,dirname node:path:1275:10,0xaad66763af0,~
code-source-info,0x2c04857b225e,35,38742,39411,C0O38755C8O38755C13O38798C19O38805C24O38818C26O38829C27O38850C34O38850C42O38889C44O38885C48O38923C51O38950C53O38978C57O38985C61O38992C63O38992C68O39011C73O39015C81O39054C83O39050C88O39084C92O39115C97O39134C101O39221C103O39000C108O38960C111O39262C113O39270C118O39284C128O39311C129O39316C135O39335C140O39348C142O39360C143O39365C156O39372C161O39407,,
code-creation,LazyCompile,10,305662,0x2c04857b2496,118,join node:path:1166:7,0xaad66763a00,~
code-source-info,0x2c04857b2496,35,35667,36077,C0O35667C3O35692C9O35699C14O35712C16O35723C17O35732C19O35757C21O35769C25O35762C30O35802C32O35806C36O35817C44O35817C49O35860C55O35867C60O35882C64O35918C71O35955C76O35969C87O35779C92O35744C95O35994C99O36026C101O36037C102O36042C107O36055C112O36055C117O36073,,
code-creation,LazyCompile,10,305754,0x2c04857b26ae,159,normalize node:path:1127:12,0xaad66763960,~
code-source-info,0x2c04857b26ae,35,34767,35371,C0O34780C8O34780C13O34824C19O34831C24O34844C26O34855C27O34886C34O34886C42O34925C44O34921C48O34981C53O35018C57O35025C61O34981C69O35034C71O35030C75O35085C80O35115C91O35092C98O35169C104O35176C109O35191C113O35215C115O35226C116O35233C126O35271C127O35282C131O35311C141O35329C150O35353C158O35367,,
code-creation,LazyCompile,10,305854,0x2c04857b2a96,60,serve file:///var/www/quadcode.com/build/handler.js:1154:15,0x3f8cd5572d80,~
code-source-info,0x2c04857b2a96,129,31847,32279,C13O31873C19O31889C24O31889C34O31916C44O31990C54O31911C59O32277,,
code-creation,LazyCompile,10,305924,0x2c04857b2c96,121,existsSync node:fs:287:20,0x3fe299d15e48,~
code-source-info,0x2c04857b2c96,76,7606,8117,C3O7627C8O7634C17O7632C18O7674C19O7687C20O7706C27O7708C34O7732C39O7743C44O7743C50O7769C55O7777C62O7791C73O7777C78O7985C84O8006C90O8033C95O8041C110O8041C115O8095C120O8115,,
code-creation,LazyCompile,10,306198,0x2c04857b3406,649,sirv file:///var/www/quadcode.com/build/handler.js:591:15,0x3f8cd5572928,~
code-source-info,0x2c04857b3406,129,16643,19059,C0O16643C62O16661C70O16675C75O16667C80O16707C85O16712C95O16707C97O16750C102O16755C112O16769C114O16750C116O16794C121O16799C131O16794C133O16843C138O16848C147O16867C157O16867C163O16886C171O16887C176O16843C178O16914C183O16919C192O16940C202O16940C208O16959C216O16960C221O16914C223O16990C224O16990C226O17011C228O17011C230O17030C235O17037C241O17030C243O17056C248O17063C254O17056C256O17072C261O17088C269O17123C274O17128C279O17135C287O17135C293O17155C298O17169C307O17181C312O17188C319O17188C332O17213C339O17164C341O17240C343O17240C345O17245C350O17254C356O17262C361O17277C364O17285C374O17285C379O17342C384O17351C390O17361C393O17369C403O17369C410O17392C413O17400C423O17400C428O17426C431O17429C441O17441C450O17429C456O17455C466O17456C471O17528C476O17533C481O17540C492O17574C500O17528C502O17585C511O17600C517O17611C525O17614C529O17637C538O17652C544O17659C549O17666C557O17669C559O17694C564O17704C570O17713C575O17722C580O17713C585O18070C590O18075C601O18090C614O18090C626O18122C636O18122C642O18070C644O18140C648O19057,,
code-creation,LazyCompile,10,306301,0x2c04857b3936,10, file:///var/www/quadcode.com/build/handler.js:598:42,0x2c04857b30b0,~
code-source-info,0x2c04857b3936,129,16871,16885,C0O16876C9O16885,,
code-creation,LazyCompile,10,306337,0x2c04857b3a1e,10, file:///var/www/quadcode.com/build/handler.js:599:44,0x2c04857b3100,~
code-source-info,0x2c04857b3a1e,129,16944,16958,C0O16949C9O16958,,
code-creation,LazyCompile,10,306436,0x2c04857b3b3e,171,totalist file:///var/www/quadcode.com/build/handler.js:13:18,0x3f8cd5572608,~
code-source-info,0x2c04857b3b3e,129,431,737,C17O458C26O464C32O494C38O494C43O519C45O522C47O527C49O550C53O544C58O567C66O586C70O573C76O594C82O602C87O625C92O625C101O668C109O681C113O668C125O644C132O701C140O714C144O701C156O692C161O559C166O535C170O736,,
code-creation,LazyCompile,10,306529,0x2c04857b3db6,118,readdirSync node:fs:1373:21,0x3fe299d16e10,~
code-source-info,0x2c04857b3db6,76,34807,35213,C0O34827C5O34848C7O34837C14O34864C19O34871C25O34909C32O34911C39O34936C44O34944C51O34952C54O34963C59O34963C65O35028C70O35048C82O34944C88O35115C93O35115C97O35161C105O35177C108O35177C117O35211,,
tick,0x155822e,306582,0,0x0,0,0x2c04857b3dc9,0x2c04857b3b64,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc335f76f7,307680,1,0xb101a0,6,0xd44a10,0x2c04857b3e08,0x2c04857b3b64,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
code-creation,LazyCompile,10,308031,0x2c04857b4126,159, file:///var/www/quadcode.com/build/handler.js:626:17,0x2c04857b31a0,~
code-source-info,0x2c04857b4126,129,17727,18049,C0O17754C5O17780C10O17780C19O17810C26O17820C37O17852C42O17852C49O17864C50O17871C51O17890C58O17913C67O17890C73O17925C79O17933C81O17960C83O17958C87O17968C95O17985C100O17985C105O17996C118O17997C124O17978C135O18023C141O18028C147O18035C153O18019C158O18048,,
code-creation,LazyCompile,10,308217,0x2c04857b45ae,177,toHeaders file:///var/www/quadcode.com/build/handler.js:573:19,0x3f8cd55728d8,~
code-source-info,0x2c04857b45ae,129,16190,16627,C0O16225C5O16239C13O16239C18O16233C22O16265C25O16277C37O16286C42O16277C49O16265C58O16306C60O16316C65O16333C74O16376C79O16404C89O16428C93O16460C98O16466C103O16466C114O16487C118O16496C120O16524C124O16532C128O16544C131O16574C146O16588C151O16594C156O16594C170O16560C174O16610C176O16625,,
code-creation,LazyCompile,10,308263,0x2c04857b47be,77,lookup file:///var/www/quadcode.com/build/handler.js:474:16,0x3f8cd55726a8,~
code-source-info,0x2c04857b47be,129,13920,14059,C0O13940C5O13944C9O13952C14O13952C19O13958C24O13959C29O13989C37O13989C43O14008C50O14022C58O14039C68O14039C73O14020C76O14057,,
new,MemoryChunk,0x3384fda80000,270336
code-creation,RegExp,3,308694,0x7efc24043ac0,908,\\.well-known[\\\\+\\/]
tick,0x14cde15,308757,0,0x0,0,0x1205de0,0x16231c8,0x2c04857b4150,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
code-creation,RegExp,3,308781,0x7efc24043ec0,1280,(^\\.|[\\\\+|\\/+]\\.)
code-creation,RegExp,3,308857,0x7efc24044420,920,\\\\+
tick,0x1557f9a,309829,0,0x0,0,0x2c04857b2709,0x2c04857b2506,0x2c04857b3b84,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x1c3ed15,310903,0,0x0,4,0x11ea100,0x2c04857b2709,0x2c04857b2506,0x2c04857b3bce,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x1657bb4,311968,0,0x0,0,0x27ba8ebc99b4,0x2c04857b2709,0x2c04857b2506,0x2c04857b3b84,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x164b6c6,313030,0,0x0,0,0x27ba8ebc99b4,0x2c04857b2709,0x2c04857b2506,0x2c04857b3b84,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
code-creation,LazyCompile,13,313677,0x7efc24044820,1772,normalizeString node:path:66:25,0xaad66763428,*
code-source-info,0x7efc24044820,35,2161,4085,C0O2161C48O2341C159O2333C171O2366C191O2443C256O2394C466O2530C544O2581C547O2575C560O2593C570O3110C578O2640C592O3787C596O3750C642O3713C660O3827C669O3750C675O3827C701O3738C731O3750C855O3903C862O3915C886O2672C896O2697C906O2881C916O2923C994O2998C1015O3110C1067O3210C1070O3217C1073O3223C1142O3221C1232O4006C1242O4022C1292O2351C1295O2315C1310O4083C1347O2760C1352O3384C1357O2161C1411O2394C1516O2998C1533O3110C1567O3221C1584O2315,,
tick,0x1adbbba,314092,0,0x0,0,0xd7aac0,0x2c04857b418a,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x110b298,315189,0,0x0,0,0x11fddd0,0x2c04857b41bf,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0xe7eb50,316260,0,0x0,0,0xd68e90,0x1c78303e0cc5,0x1c78303e091d,0x1c78303e0368,0x1c78303dfd2c,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
scavenge,begin,0,335195,1745847819798
new,MemoryChunk,0x287e8b1c0000,262144
new,MemoryChunk,0x2245076c0000,262144
tick,0xe6c349,317347,0,0x0,1
scavenge,end,0,338811,1745847819799
tick,0x161ecea,318430,0,0x0,0,0x15be120,0x2c04857b419c,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x1562128,319505,0,0x0,0,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc336ca95d,320603,1,0xb0cb50,6,0xd44a10,0x1c78303dfd02,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc3360d6a0,321680,0,0x0,0,0xd63da0,0x2c04857b4615,0x2c04857b4169,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x104a596,322763,0,0x0,0,0x11f4410,0x1645d6f,0x2c04857b47d6,0x2c04857b45df,0x2c04857b4169,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0xe808ae,323842,0,0x0,0,0x11fddd0,0x2c04857b41bf,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc336ca95d,324910,1,0xb0cb50,6,0xd44a10,0x1c78303dfd02,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
scavenge,begin,0,354744,1745847819807
new,MemoryChunk,0x39f82d300000,262144
tick,0x7efc337b3374,325971,0,0x0,1
new,MemoryChunk,0x3b1bfb340000,262144
tick,0x7efc337b3374,327065,0,0x0,1
scavenge,end,0,357797,1745847819809
tick,0x1ad8fac,328120,0,0x0,0,0xd7aac0,0x2c04857b418a,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x10de737,329209,0,0x0,0,0x11fddd0,0x2c04857b41bf,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc24044976,330285,0,0x0,0,0x2c04857b2709,0x2c04857b2506,0x2c04857b3bce,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc336ca95d,331377,1,0xb0cb50,6,0xd44a10,0x1c78303dfd02,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x1597da9,332459,0,0x0,0,0x2c04857b45c0,0x2c04857b4169,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0xec0ffa,333540,0,0x0,6,0x11f30e0,0x1c78303e0270,0x1c78303dfd2c,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
new,MemoryChunk,0xb8e18100000,262144
new,MemoryChunk,0x1e348100000,262144
new,MemoryChunk,0xcdef9b80000,262144
new,MemoryChunk,0x6034afc0000,262144
new,MemoryChunk,0x386df3e80000,262144
new,MemoryChunk,0x13b659f00000,262144
new,MemoryChunk,0x394c92d80000,262144
new,MemoryChunk,0x30365e500000,262144
new,MemoryChunk,0x121deb500000,262144
new,MemoryChunk,0x19cfc2f80000,262144
new,MemoryChunk,0x114898080000,262144
new,MemoryChunk,0x199994f80000,262144
new,MemoryChunk,0x326a02400000,262144
new,MemoryChunk,0x2b1a6c740000,262144
new,MemoryChunk,0x1760b9dc0000,262144
new,MemoryChunk,0x11a213300000,262144
scavenge,begin,0,368197,1745847819815
new,MemoryChunk,0x8860f900000,262144
new,MemoryChunk,0x24c70ce80000,262144
tick,0x7efc337b3374,335464,0,0x0,1
scavenge,end,0,375328,1745847819817
tick,0x156163f,336551,0,0x0,0,0x2c04857b2709,0x2c04857b2506,0x2c04857b3b84,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x1651b07,337618,0,0x0,0,0x2c04857b47e3,0x2c04857b45df,0x2c04857b4169,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc336cabcb,339368,0,0x0,4,0x11f2330,0x1c78303e066d,0x1c78303e02f0,0x1c78303dfd2c,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
code-creation,LazyCompile,13,339394,0x7efc24045020,392,dateFromMs node:internal/fs/utils:459:20,0x3fe299d204d0,*
code-source-info,0x7efc24045020,77,11498,11543,C0O11498C48O11523C75O11534C109O11514C240O11541C267O11498C321O11534,,
tick,0x1c3b007,340424,0,0x0,4,0x11ea100,0x2c04857b3bce,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc336ca95d,341516,1,0xb0cb50,6,0xd44a10,0x1c78303dfd02,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc336ca95d,342608,1,0xb0cb50,6,0xd44a10,0x1c78303dfd02,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x1e54b0b,343680,0,0x0,4,0x11ea100,0x1c78303dfd2c,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
code-creation,LazyCompile,13,344704,0x7efc24045260,3064,join node:path:1166:7,0xaad66763a00,*
code-source-info,0x7efc24045260,35,35667,36077,C0O35667C100O35699C164O35762C178O35806C183O3416I0C210O35860C227O35867C248O35882C262O35969C437O35779C441O35744C456O35994C470O3416I5C493O34824I1C511O34831I1C524O34886I1C738O35025I1C742O34981I1C962O34921I1C973O35030I1C1048O3110I2C1052O2333I2C1073O2366I2C1094O2443I2C1120O2394I2C1324O2530I2C1376O2581I2C1380O2575I2C1389O2593I2C1408O3787I2C1412O3750I2C1463O3713I2C1473O3827I2C1483O3750I2C1489O3827I2C1516O3750I2C1640O3903I2C1647O3915I2C1690O2672I2C1704O2697I2C1714O2881I2C1724O2923I2C1812O2998I2C1833O35115I1C1843O3110I2C1899O3210I2C1902O3217I2C1905O3223I2C1983O3221I2C2064O4006I2C2083O4022I2C2125O2351I2C2131O2315I2C2146O35176I1C2156O35282I1C2166O35329I1C2176O36073C2207O35353I1C2249O36073C2251O35311I1C2256O35191I1C2266O35233I1C2276O36073C2312O2760I2C2317O3384I2C2322O36073C2334O3457I5C2339O36037C2351O3457I0C2356O35723C2368O35667C2422O35744C2493O34886I1C2569O34981I1C2645O2394I2C2738O2998I2C2755O3110I2C2789O3221I2C2816O2315I2,F0O35817F1O36055F2O35092I1F3O2443I2F3O2530I2F0O34780I1,S0x73467c99d68S0xaad66763960S0xaad66763428S0xaad66763388
tick,0x7efc336c02cf,344771,0,0x0,4,0x11f2330,0x27ba8ebc88ed,0x2c04857b24c2,0x2c04857b3bce,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x1645d40,345802,0,0x0,0,0x2c04857b45df,0x2c04857b4169,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x15620c5,346870,0,0x0,0,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x7efc336ca95d,347934,1,0xb0cb50,6,0xd44a10,0x1c78303dfd02,0x2c04857b3b90,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
code-creation,LazyCompile,13,348206,0x7efc24045fc0,4432,getStatsFromBinding node:internal/fs/utils:529:29,0x3fe299d20708,*
code-source-info,0x7efc24045fc0,77,13953,15003,C0O13953C84O1390I0C295O13981C308O14564C318O14561C348O14564C355O14561C359O14564C362O14561C392O14583C405O14580C427O14602C440O14599C462O14625C475O14622C497O14644C510O14641C532O14663C545O14660C567O14686C580O14683C602O14705C615O14702C637O14724C650O14721C672O14747C685O14744C707O14786C720O14782C736O14806C748O14802C769O11032I1C794O11013I1C815O11025I1C820O14846C833O14842C849O14866C861O14862C882O11032I2C892O11013I2C898O11025I2C903O14906C916O14902C932O14926C944O14922C965O11032I3C975O11013I3C989O11025I3C994O14966C1007O14962C1029O14986C1039O14982C1158O11032I4C1168O11013I4C1184O11025I4C1189O11534I9C1211O11514I9C1353O9988I10C1403O10007I10C1446O10028I10C1489O10048I10C1532O10066I10C1575O10085I10C1618O10108I10C1661O10130I10C1704O10149I10C1747O10171I10C1790O13007I5C1833O13033I5C1884O13059I5C1935O13089I5C1963O11514I9C2069O13117I5C2176O11534I8C2202O11514I8C2333O13153I5C2440O11534I7C2466O11514I7C2597O13189I5C2704O11534I6C2726O11514I6C2857O13229I5C2964O15001C2994O14050C2999O13953,F0O13981F1O14762F1O14822F1O14882F1O14942F2O14541F3O13231I5F3O13191I5F3O13155I5F3O13119I5F4O12866I5,S0x73467c97190S0x3fe299d20430S0x3fe299d20628S0x3fe299d204d0S0x3fe299d20000
tick,0x1101d12,349020,0,0x0,0,0x1566430,0x2c04857b41bf,0x2c04857b3bda,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x1561763,350104,0,0x0,0,0x2c04857b3bce,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b3bbb,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
tick,0x164c73b,351196,0,0x0,0,0x2c04857b364a,0x2c04857b2acc,0x3f8cd5575178,0x158e77f
code-creation,LazyCompile,10,351345,0x8860f93bff6,52,serve_prerendered file:///var/www/quadcode.com/build/handler.js:1175:27,0x3f8cd5572dd0,~
code-source-info,0x8860f93bff6,129,32420,33006,C0O32420C8O32442C13O32448C19O32453C28O32458C34O32453C41O32442C45O32442C47O32482C51O33004,,
code-creation,LazyCompile,10,351544,0x8860f93c1be,14,sequence file:///var/www/quadcode.com/build/handler.js:1269:18,0x3f8cd5572e20,~
code-source-info,0x8860f93c1be,129,34602,34952,C0O34602C9O34659C13O34950,,
code-creation,LazyCompile,10,351623,0x8860f93c316,13,polka file:///var/www/quadcode.com/build/index.js:211:16,0x1c78303f1248,~
code-source-info,0x8860f93c316,114,6031,6066,C0O6041C7O6048C12O6064,,
code-creation,LazyCompile,10,351696,0x8860f93c51e,173,Polka file:///var/www/quadcode.com/build/index.js:139:13,0x1c78303f1428,~
code-source-info,0x8860f93c51e,114,3906,4234,C0O3906C22O3920C30O3920C43O3931C51O3942C55O3953C59O3972C63O3965C67O3982C75O4002C80O4010C89O4010C94O3995C98O4024C102O4044C112O4037C116O4087C120O4109C130O4127C135O4135C147O4135C153O4102C157O4166C165O4178C172O4233,,
code-creation,LazyCompile,10,351746,0x8860f93c80e,238,Trouter file:///var/www/quadcode.com/build/index.js:34:13,0x1c78303f1298,~
code-source-info,0x8860f93c80e,114,893,1362,C0O900C2O912C6O937C11O941C19O941C25O930C29O975C34O979C42O979C48O968C52O1017C57O1021C65O1021C71O1010C75O1061C80O1065C88O1065C94O1054C98O1108C103O1112C111O1112C117O1101C121O1157C126O1161C134O1161C140O1150C144O1205C149O1209C157O1209C163O1198C167O1251C172O1255C180O1255C186O1244C190O1295C195O1299C203O1299C209O1288C213O1337C218O1341C226O1341C232O1330C237O1361,,
code-creation,LazyCompile,10,351867,0x8860f93cc86,248,use file:///var/www/quadcode.com/build/index.js:149:5,0x1c78303f1478,~
code-source-info,0x8860f93cc86,114,4240,5094,C0O4240C17O4259C22O4268C27O4282C31O4288C39O4302C48O4306C51O4302C60O4288C67O4324C80O4374C82O4363C87O4386C91O4392C108O4402C114O4411C115O4411C169O4416C178O4420C184O4416C190O4392C197O4443C201O4449C209O4453C214O4909C223O4913C226O4909C240O4449C245O5066C247O5078,,
code-creation,LazyCompile,10,351904,0x8860f93cf0e,18,mount file:///var/www/quadcode.com/build/index.js:136:15,0x1c78303f13d8,~
code-source-info,0x8860f93cf0e,114,3819,3861,C0O3825C2O3839C4O3828C9O3850C17O3861,,
code-creation,LazyCompile,10,351949,0x8860f93d09e,93,use file:///var/www/quadcode.com/build/index.js:49:5,0x1c78303f12e8,~
code-source-info,0x8860f93d09e,114,1368,1554,C0O1368C8O1403C11O1406C16O1413C24O1413C31O1455C36O1455C42O1437C47O1443C52O1484C57O1491C69O1498C75O1504C81O1524C85O1491C90O1539C92O1551,,
code-creation,LazyCompile,10,352036,0x8860f93d3ee,349,parse$1 file:///var/www/quadcode.com/build/index.js:6:18,0x1c78303f1158,~
code-source-info,0x8860f93d3ee,114,150,863,C0O185C3O174C8O193C15O222C21O228C22O255C25O267C28O281C36O281C42O294C43O297C48O308C53O308C57O336C62O336C67O330C69O349C70O356C74O363C76O369C81O388C89O388C94O405C105O434C107O440C112O462C123O462C130O492C141O492C148O517C153O527C163O542C179O553C187O570C192O527C199O517C204O584C206O597C215O604C229O646C231O652C235O658C237O672C253O687C257O700C262O700C267O694C276O730C281O745C291O319C294O761C301O778C305O799C314O810C320O823C328O820C337O795C348O861,,
code-creation,LazyCompile,10,352128,0x8860f93d94e,82,listen file:///var/www/quadcode.com/build/index.js:182:8,0x1c78303f14c8,~
code-source-info,0x8860f93d94e,114,5103,5258,C0O5103C2O5130C11O5140C17O5145C22O5145C27O5123C31O5161C42O5180C47O5161C53O5196C58O5203C63O5210C68O5221C73O5210C79O5243C81O5255,,
code-creation,LazyCompile,10,352156,0x8860f93daa6,19,createServer node:http:58:22,0x1c78303f82c8,~
code-source-info,0x8860f93daa6,115,1965,2036,C0O1993C13O2000C18O2034,,
tick,0x110cb8d,352278,0,0x0,3,0x11febe0,0x8860f93dab3,0x8860f93d964,0x1c78303f1ba2,0x1590930,0x15c9fd9
code-creation,LazyCompile,10,352309,0x8860f93dc96,194,Server node:_http_server:371:16,0x3f8cd5563f48,~
code-source-info,0x8860f93dc96,126,13107,14102,C0O13138C2O13149C7O13169C18O13176C23O13213C24O13217C30O13258C33O13289C38O13312C49O13370C57O13411C73O13417C78O13411C79O13480C82O13497C87O13497C93O13520C98O13524C103O13531C113O13531C119O13571C123O13603C131O13603C137O13863C138O13886C142O13903C153O13903C159O13944C160O13957C164O13964C168O13986C172O13996C173O14017C177O14027C183O14047C187O14076C188O14096C193O14101,,
code-creation,LazyCompile,10,352378,0x8860f93ff06,191,Server node:net:1172:16,0x1c78303fdbe8,~
code-source-info,0x8860f93ff06,117,30638,31466,C0O30672C2O30683C7O30707C18O30714C23O30754C24O30758C29O30771C34O30771C39O30786C45O30827C48O30861C51O30884C59O30884C67O30931C78O30989C84O31020C90O31079C98O31079C106O31138C122O31144C127O31138C128O31207C129O31225C133O31233C135O31238C140O31255C144O31263C145O31276C149O31286C150O31305C154O31316C156O31330C160O31338C161O31350C165O31391C175O31381C179O31449C185O31437C190O31465,,
code-creation,LazyCompile,10,352435,0x287e8b1e0336,101,storeHTTPOptions node:_http_server:356:26,0x3f8cd5563ef8,~
code-source-info,0x287e8b1e0336,126,12544,13090,C0O12558C2O12563C5O12591C16O12610C18O12581C22O12629C24O12634C27O12661C38O12651C42O12728C47O12745C49O12782C62O12782C67O12836C69O12855C73O12910C78O12932C80O12974C88O12974C93O13043C95O13067C100O13089,,
code-creation,LazyCompile,10,352655,0x287e8b1e0796,692,Server.listen node:net:1395:35,0x1c78303ff0d0,~
code-source-info,0x287e8b1e0796,117,37025,40555,C0O37025C3O37058C6O37058C11O37095C12O37105C16O37123C18O37133C22O37150C28O37165C33O37171C38O37165C39O37211C43O37239C51O37239C57O37359C60O37373C67O37380C74O37391C78O37359C87O37417C94O37424C101O37435C105O37403C110O37488C116O37507C125O37542C128O37559C133O37542C138O37643C140O37666C142O37655C147O37677C149O37690C153O37705C155O37710C158O37734C163O37742C168O37742C172O37727C176O37760C193O37760C198O37818C200O37830C201O37837C204O37837C209O37962C217O37989C223O37992C228O38004C237O38069C249O38004C254O38078C256O38090C257O38360C263O38367C269O38387C276O38431C289O38462C294O38491C300O38512C301O38525C305O38709C307O38739C315O38775C323O38800C328O38821C336O38800C341O38866C350O38957C356O38971C359O39001C363O39006C367O39019C372O39064C387O38971C394O39225C399O39261C403O39266C413O39324C425O39225C430O39346C432O39358C433O39498C442O39525C447O39506C453O39580C458O39570C465O39608C474O39640C486O39728C501O39640C506O39755C512O39876C514O39888C515O39911C517O39930C523O39942C528O39958C530O39966C533O39980C544O40009C550O40021C555O40037C557O40045C560O40059C571O40076C572O40085C577O40117C582O40125C587O40125C593O40145C595O40169C600O40177C605O40177C609O40194C610O40207C614O40223C622O40229C627O40223C628O40285C630O40297C631O40305C636O40319C646O40342C651O40362C667O40368C672O40362C673O40501C686O40507C691O40501,,
code-creation,LazyCompile,10,352735,0x287e8b1e0d9e,183,normalizeArgs node:net:217:23,0x1c78303fd738,~
code-source-info,0x287e8b1e0d9e,117,5520,6224,C0O5535C2O5552C8O5559C13O5572C18O5594C20O5598C24O5620C28O5632C30O5643C31O5664C32O5668C36O5689C38O5695C48O5776C55O5801C58O5805C64O5854C66O5867C72O5925C74O5938C78O5959C85O5966C92O5984C99O6010C101O6029C104O6023C108O6068C112O6075C115O6062C119O6083C123O6117C132O6124C143O6151C152O6158C161O6167C170O6175C172O6179C176O6201C180O6211C182O6222,,
code-creation,LazyCompile,10,352782,0x287e8b1e0f9e,23,toNumber node:net:1207:18,0x1c78303fdc38,~
code-source-info,0x287e8b1e0f9e,117,31594,31642,C0O31600C5O31612C12O31623C22O31640,,
code-creation,LazyCompile,10,352815,0x287e8b1e10a6,19,getFlags node:net:133:18,0x1c78303fd558,~
code-source-info,0x287e8b1e10a6,117,3497,3574,C0O3512C1O3528C8O3539C11O3552C18O3572,,
code-creation,LazyCompile,10,352859,0x287e8b1e12ce,138,addAbortSignalOption node:net:1155:30,0x1c78303fdb98,~
code-source-info,0x287e8b1e12ce,117,30210,30621,C0O30210C15O30230C22O30241C31O30271C32O30278C33O30285C40O30313C48O30285C53O30350C59O30390C63O30390C65O30423C68O30434C74O30449C79O30457C87O30457C94O30493C97O30500C108O30500C114O30542C117O30547C130O30547C137O30620,,
code-creation,LazyCompile,10,352907,0x287e8b1e1516,137,validatePort node:internal/validators:202:22,0x73467c9a0c0,~
code-source-info,0x287e8b1e1516,17,6112,6479,C18O6112C24O6136C32O6165C52O6262C55O6262C60O6287C66O6295C73O6311C78O6322C80O6328C83O6317C94O6349C100O6373C107O6383C109O6401C125O6407C130O6401C131O6461C133O6473C136O6477,,
code-creation,LazyCompile,10,352948,0x287e8b1e1766,83,lookupAndListen node:net:1494:25,0x1c78303fde40,~
code-source-info,0x287e8b1e1766,117,40582,40970,C0O40582C25O40635C33O40658C41O40664C50O40662C58O40682C65O40686C70O40693C75O40686C82O40969,,
code-creation,Eval,10,353297,0x287e8b1e26ae,5, node:dns:1:1,0x287e8b1e2338,~
script-source,185,node:dns,// 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  ArrayPrototypeMap\x2C\n  ObjectCreate\x2C\n  ObjectDefineProperties\x2C\n  ObjectDefineProperty\x2C\n  ReflectApply\x2C\n} = primordials;\n\nconst cares = internalBinding('cares_wrap');\nconst { toASCII } = require('internal/idna');\nconst { isIP } = require('internal/net');\nconst { customPromisifyArgs } = require('internal/util');\nconst errors = require('internal/errors');\nconst {\n  bindDefaultResolver\x2C\n  getDefaultResolver\x2C\n  setDefaultResolver\x2C\n  Resolver\x2C\n  validateHints\x2C\n  emitInvalidHostnameWarning\x2C\n  getDefaultVerbatim\x2C\n  setDefaultResultOrder\x2C\n} = require('internal/dns/utils');\nconst {\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_INVALID_ARG_VALUE\x2C\n  ERR_MISSING_ARGS\x2C\n} = errors.codes;\nconst {\n  validateCallback\x2C\n  validatePort\x2C\n  validateString\x2C\n  validateOneOf\x2C\n} = require('internal/validators');\n\nconst {\n  GetAddrInfoReqWrap\x2C\n  GetNameInfoReqWrap\x2C\n  QueryReqWrap\x2C\n} = cares;\n\nconst dnsException = errors.dnsException;\n\nlet promises = null; // Lazy loaded\n\nfunction onlookup(err\x2C addresses) {\n  if (err) {\n    return this.callback(dnsException(err\x2C 'getaddrinfo'\x2C this.hostname));\n  }\n  this.callback(null\x2C addresses[0]\x2C this.family || isIP(addresses[0]));\n}\n\n\nfunction onlookupall(err\x2C addresses) {\n  if (err) {\n    return this.callback(dnsException(err\x2C 'getaddrinfo'\x2C this.hostname));\n  }\n\n  const family = this.family;\n  for (let i = 0; i < addresses.length; i++) {\n    const addr = addresses[i];\n    addresses[i] = {\n      address: addr\x2C\n      family: family || isIP(addr)\n    };\n  }\n\n  this.callback(null\x2C addresses);\n}\n\n\n// Easy DNS A/AAAA look up\n// lookup(hostname\x2C [options\x2C] callback)\nfunction lookup(hostname\x2C options\x2C callback) {\n  let hints = 0;\n  let family = -1;\n  let all = false;\n  let verbatim = getDefaultVerbatim();\n\n  // Parse arguments\n  if (hostname) {\n    validateString(hostname\x2C 'hostname');\n  }\n\n  if (typeof options === 'function') {\n    callback = options;\n    family = 0;\n  } else {\n    validateCallback(callback);\n\n    if (options !== null && typeof options === 'object') {\n      hints = options.hints >>> 0;\n      family = options.family >>> 0;\n      all = options.all === true;\n      if (typeof options.verbatim === 'boolean') {\n        verbatim = options.verbatim === true;\n      }\n\n      validateHints(hints);\n    } else {\n      family = options >>> 0;\n    }\n  }\n\n  validateOneOf(family\x2C 'family'\x2C [0\x2C 4\x2C 6]);\n\n  if (!hostname) {\n    emitInvalidHostnameWarning(hostname);\n    if (all) {\n      process.nextTick(callback\x2C null\x2C []);\n    } else {\n      process.nextTick(callback\x2C null\x2C null\x2C family === 6 ? 6 : 4);\n    }\n    return {};\n  }\n\n  const matchedFamily = isIP(hostname);\n  if (matchedFamily) {\n    if (all) {\n      process.nextTick(\n        callback\x2C null\x2C [{ address: hostname\x2C family: matchedFamily }]);\n    } else {\n      process.nextTick(callback\x2C null\x2C hostname\x2C matchedFamily);\n    }\n    return {};\n  }\n\n  const req = new GetAddrInfoReqWrap();\n  req.callback = callback;\n  req.family = family;\n  req.hostname = hostname;\n  req.oncomplete = all ? onlookupall : onlookup;\n\n  const err = cares.getaddrinfo(\n    req\x2C toASCII(hostname)\x2C family\x2C hints\x2C verbatim\n  );\n  if (err) {\n    process.nextTick(callback\x2C dnsException(err\x2C 'getaddrinfo'\x2C hostname));\n    return {};\n  }\n  return req;\n}\n\nObjectDefineProperty(lookup\x2C customPromisifyArgs\x2C\n                     { value: ['address'\x2C 'family']\x2C enumerable: false });\n\n\nfunction onlookupservice(err\x2C hostname\x2C service) {\n  if (err)\n    return this.callback(dnsException(err\x2C 'getnameinfo'\x2C this.hostname));\n\n  this.callback(null\x2C hostname\x2C service);\n}\n\n\nfunction lookupService(address\x2C port\x2C callback) {\n  if (arguments.length !== 3)\n    throw new ERR_MISSING_ARGS('address'\x2C 'port'\x2C 'callback');\n\n  if (isIP(address) === 0)\n    throw new ERR_INVALID_ARG_VALUE('address'\x2C address);\n\n  validatePort(port);\n\n  validateCallback(callback);\n\n  port = +port;\n\n  const req = new GetNameInfoReqWrap();\n  req.callback = callback;\n  req.hostname = address;\n  req.port = port;\n  req.oncomplete = onlookupservice;\n\n  const err = cares.getnameinfo(req\x2C address\x2C port);\n  if (err) throw dnsException(err\x2C 'getnameinfo'\x2C address);\n  return req;\n}\n\nObjectDefineProperty(lookupService\x2C customPromisifyArgs\x2C\n                     { value: ['hostname'\x2C 'service']\x2C enumerable: false });\n\n\nfunction onresolve(err\x2C result\x2C ttls) {\n  if (ttls && this.ttl)\n    result = ArrayPrototypeMap(\n      result\x2C (address\x2C index) => ({ address\x2C ttl: ttls[index] }));\n\n  if (err)\n    this.callback(dnsException(err\x2C this.bindingName\x2C this.hostname));\n  else\n    this.callback(null\x2C result);\n}\n\nfunction resolver(bindingName) {\n  function query(name\x2C /* options\x2C */ callback) {\n    let options;\n    if (arguments.length > 2) {\n      options = callback;\n      callback = arguments[2];\n    }\n\n    validateString(name\x2C 'name');\n    validateCallback(callback);\n\n    const req = new QueryReqWrap();\n    req.bindingName = bindingName;\n    req.callback = callback;\n    req.hostname = name;\n    req.oncomplete = onresolve;\n    req.ttl = !!(options && options.ttl);\n    const err = this._handle[bindingName](req\x2C toASCII(name));\n    if (err) throw dnsException(err\x2C bindingName\x2C name);\n    return req;\n  }\n  ObjectDefineProperty(query\x2C 'name'\x2C { value: bindingName });\n  return query;\n}\n\nconst resolveMap = ObjectCreate(null);\nResolver.prototype.resolveAny = resolveMap.ANY = resolver('queryAny');\nResolver.prototype.resolve4 = resolveMap.A = resolver('queryA');\nResolver.prototype.resolve6 = resolveMap.AAAA = resolver('queryAaaa');\nResolver.prototype.resolveCaa = resolveMap.CAA = resolver('queryCaa');\nResolver.prototype.resolveCname = resolveMap.CNAME = resolver('queryCname');\nResolver.prototype.resolveMx = resolveMap.MX = resolver('queryMx');\nResolver.prototype.resolveNs = resolveMap.NS = resolver('queryNs');\nResolver.prototype.resolveTxt = resolveMap.TXT = resolver('queryTxt');\nResolver.prototype.resolveSrv = resolveMap.SRV = resolver('querySrv');\nResolver.prototype.resolvePtr = resolveMap.PTR = resolver('queryPtr');\nResolver.prototype.resolveNaptr = resolveMap.NAPTR = resolver('queryNaptr');\nResolver.prototype.resolveSoa = resolveMap.SOA = resolver('querySoa');\nResolver.prototype.reverse = resolver('getHostByAddr');\n\nResolver.prototype.resolve = resolve;\n\nfunction resolve(hostname\x2C rrtype\x2C callback) {\n  let resolver;\n  if (typeof rrtype === 'string') {\n    resolver = resolveMap[rrtype];\n  } else if (typeof rrtype === 'function') {\n    resolver = resolveMap.A;\n    callback = rrtype;\n  } else {\n    throw new ERR_INVALID_ARG_TYPE('rrtype'\x2C 'string'\x2C rrtype);\n  }\n\n  if (typeof resolver === 'function') {\n    return ReflectApply(resolver\x2C this\x2C [hostname\x2C callback]);\n  }\n  throw new ERR_INVALID_ARG_VALUE('rrtype'\x2C rrtype);\n}\n\nfunction defaultResolverSetServers(servers) {\n  const resolver = new Resolver();\n\n  resolver.setServers(servers);\n  setDefaultResolver(resolver);\n  bindDefaultResolver(module.exports\x2C Resolver.prototype);\n\n  if (promises !== null)\n    bindDefaultResolver(promises\x2C promises.Resolver.prototype);\n}\n\nmodule.exports = {\n  lookup\x2C\n  lookupService\x2C\n\n  Resolver\x2C\n  setDefaultResultOrder\x2C\n  setServers: defaultResolverSetServers\x2C\n\n  // uv_getaddrinfo flags\n  ADDRCONFIG: cares.AI_ADDRCONFIG\x2C\n  ALL: cares.AI_ALL\x2C\n  V4MAPPED: cares.AI_V4MAPPED\x2C\n\n  // ERROR CODES\n  NODATA: 'ENODATA'\x2C\n  FORMERR: 'EFORMERR'\x2C\n  SERVFAIL: 'ESERVFAIL'\x2C\n  NOTFOUND: 'ENOTFOUND'\x2C\n  NOTIMP: 'ENOTIMP'\x2C\n  REFUSED: 'EREFUSED'\x2C\n  BADQUERY: 'EBADQUERY'\x2C\n  BADNAME: 'EBADNAME'\x2C\n  BADFAMILY: 'EBADFAMILY'\x2C\n  BADRESP: 'EBADRESP'\x2C\n  CONNREFUSED: 'ECONNREFUSED'\x2C\n  TIMEOUT: 'ETIMEOUT'\x2C\n  EOF: 'EOF'\x2C\n  FILE: 'EFILE'\x2C\n  NOMEM: 'ENOMEM'\x2C\n  DESTRUCTION: 'EDESTRUCTION'\x2C\n  BADSTR: 'EBADSTR'\x2C\n  BADFLAGS: 'EBADFLAGS'\x2C\n  NONAME: 'ENONAME'\x2C\n  BADHINTS: 'EBADHINTS'\x2C\n  NOTINITIALIZED: 'ENOTINITIALIZED'\x2C\n  LOADIPHLPAPI: 'ELOADIPHLPAPI'\x2C\n  ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS'\x2C\n  CANCELLED: 'ECANCELLED'\n};\n\nbindDefaultResolver(module.exports\x2C getDefaultResolver());\n\nObjectDefineProperties(module.exports\x2C {\n  promises: {\n    configurable: true\x2C\n    enumerable: true\x2C\n    get() {\n      if (promises === null) {\n        promises = require('internal/dns/promises');\n        promises.setServers = defaultResolverSetServers;\n        promises.setDefaultResultOrder = setDefaultResultOrder;\n      }\n      return promises;\n    }\n  }\n});\n
code-source-info,0x287e8b1e26ae,185,0,9428,C0O0C4O9428,,
code-creation,Function,10,353738,0x287e8b1e311e,952, node:dns:1:1,0x287e8b1e2618,~
code-source-info,0x287e8b1e311e,185,0,9428,C0O0C145O1159C151O1180C156O1196C161O1222C167O1246C173O1292C176O1292C180O1292C182O1343C188O1343C193O1331C199O1386C205O1386C210O1377C216O1443C222O1443C227O1419C232O1484C238O1484C243O1697C249O1697C254O1522C260O1545C265O1567C271O1589C277O1601C283O1618C289O1648C295O1670C301O1816C306O1738C312O1762C318O1787C324O1906C330O1906C335O1833C341O1853C347O1869C353O1887C359O2011C362O1949C368O1971C374O1993C380O2047C384O2040C386O2077C387O2077C389O4377C392O4406C403O4377C408O5267C411O5303C422O5267C427O6396C429O6396C433O6396C435O6416C438O6425C449O6465C454O6463C460O6446C464O6487C467O6496C478O6532C483O6530C489O6515C493O6552C496O6561C507O6600C512O6598C518O6580C522O6623C525O6632C536O6672C541O6670C547O6653C551O6694C554O6703C565O6747C570O6745C576O6726C580O6771C583O6780C594O6818C599O6816C605O6800C609O6839C612O6848C623O6886C628O6884C634O6868C638O6907C641O6916C652O6956C657O6954C663O6937C667O6978C670O6987C681O7027C686O7025C692O7008C696O7049C699O7058C710O7098C715O7096C721O7079C725O7120C728O7129C739O7173C744O7171C750O7152C754O7197C757O7206C768O7246C773O7244C779O7227C783O7268C786O7277C794O7297C798O7295C802O7325C805O7334C812O7352C816O8136C826O8157C832O8167C838O8185C844O8197C850O8234C857O8308C868O8336C879O8362C889O8151C893O9005C899O9032C904O9041C908O9005C913O9065C916O9095C926O9118C931O9170C945O9065C951O9427,,
tick,0x7efc3363549c,353799,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x287e8b1e178f,0x287e8b1e0919,0x8860f93d997,0x1c78303f1ba2,0x1590930,0x15c9fd9
code-creation,Eval,10,354098,0x287e8b1e4a06,5, node:internal/dns/utils:1:1,0x287e8b1e46c0,~
script-source,186,node:internal/dns/utils,'use strict';\n\nconst {\n  ArrayPrototypeForEach\x2C\n  ArrayPrototypeJoin\x2C\n  ArrayPrototypeMap\x2C\n  ArrayPrototypePush\x2C\n  FunctionPrototypeBind\x2C\n  NumberParseInt\x2C\n  StringPrototypeMatch\x2C\n  StringPrototypeReplace\x2C\n} = primordials;\n\nconst errors = require('internal/errors');\nconst { isIP } = require('internal/net');\nconst { getOptionValue } = require('internal/options');\nconst {\n  validateArray\x2C\n  validateInt32\x2C\n  validateOneOf\x2C\n  validateString\x2C\n} = require('internal/validators');\nconst {\n  ChannelWrap\x2C\n  strerror\x2C\n  AI_ADDRCONFIG\x2C\n  AI_ALL\x2C\n  AI_V4MAPPED\x2C\n} = internalBinding('cares_wrap');\nconst IANA_DNS_PORT = 53;\nconst IPv6RE = /^\\[([^[\\]]*)\\]/;\nconst addrSplitRE = /(^.+?)(?::(\\d+))?$/;\nconst {\n  ERR_DNS_SET_SERVERS_FAILED\x2C\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_INVALID_ARG_VALUE\x2C\n  ERR_INVALID_IP_ADDRESS\x2C\n} = errors.codes;\n\nfunction validateTimeout(options) {\n  const { timeout = -1 } = { ...options };\n  validateInt32(timeout\x2C 'options.timeout'\x2C -1\x2C 2 ** 31 - 1);\n  return timeout;\n}\n\n// Resolver instances correspond 1:1 to c-ares channels.\nclass Resolver {\n  constructor(options = undefined) {\n    const timeout = validateTimeout(options);\n    this._handle = new ChannelWrap(timeout);\n  }\n\n  cancel() {\n    this._handle.cancel();\n  }\n\n  getServers() {\n    return ArrayPrototypeMap(this._handle.getServers()\x2C (val) => {\n      if (!val[1] || val[1] === IANA_DNS_PORT)\n        return val[0];\n\n      const host = isIP(val[0]) === 6 ? `[${val[0]}]` : val[0];\n      return `${host}:${val[1]}`;\n    });\n  }\n\n  setServers(servers) {\n    validateArray(servers\x2C 'servers');\n\n    // Cache the original servers because in the event of an error while\n    // setting the servers\x2C c-ares won't have any servers available for\n    // resolution.\n    const orig = this._handle.getServers();\n    const newSet = [];\n\n    ArrayPrototypeForEach(servers\x2C (serv\x2C index) => {\n      validateString(serv\x2C `servers[${index}]`);\n      let ipVersion = isIP(serv);\n\n      if (ipVersion !== 0)\n        return ArrayPrototypePush(newSet\x2C [ipVersion\x2C serv\x2C IANA_DNS_PORT]);\n\n      const match = StringPrototypeMatch(serv\x2C IPv6RE);\n\n      // Check for an IPv6 in brackets.\n      if (match) {\n        ipVersion = isIP(match[1]);\n\n        if (ipVersion !== 0) {\n          const port = NumberParseInt(\n            StringPrototypeReplace(serv\x2C addrSplitRE\x2C '$2')) || IANA_DNS_PORT;\n          return ArrayPrototypePush(newSet\x2C [ipVersion\x2C match[1]\x2C port]);\n        }\n      }\n\n      // addr::port\n      const addrSplitMatch = StringPrototypeMatch(serv\x2C addrSplitRE);\n\n      if (addrSplitMatch) {\n        const hostIP = addrSplitMatch[1];\n        const port = addrSplitMatch[2] || IANA_DNS_PORT;\n\n        ipVersion = isIP(hostIP);\n\n        if (ipVersion !== 0) {\n          return ArrayPrototypePush(\n            newSet\x2C [ipVersion\x2C hostIP\x2C NumberParseInt(port)]);\n        }\n      }\n\n      throw new ERR_INVALID_IP_ADDRESS(serv);\n    });\n\n    const errorNumber = this._handle.setServers(newSet);\n\n    if (errorNumber !== 0) {\n      // Reset the servers to the old servers\x2C because ares probably unset them.\n      this._handle.setServers(ArrayPrototypeJoin(orig\x2C '\x2C'));\n      const err = strerror(errorNumber);\n      throw new ERR_DNS_SET_SERVERS_FAILED(err\x2C servers);\n    }\n  }\n\n  setLocalAddress(ipv4\x2C ipv6) {\n    validateString(ipv4\x2C 'ipv4');\n\n    if (typeof ipv6 !== 'string' && ipv6 !== undefined) {\n      throw new ERR_INVALID_ARG_TYPE('ipv6'\x2C ['String'\x2C 'undefined']\x2C ipv6);\n    }\n\n    this._handle.setLocalAddress(ipv4\x2C ipv6);\n  }\n}\n\nlet defaultResolver = new Resolver();\nconst resolverKeys = [\n  'getServers'\x2C\n  'resolve'\x2C\n  'resolve4'\x2C\n  'resolve6'\x2C\n  'resolveAny'\x2C\n  'resolveCaa'\x2C\n  'resolveCname'\x2C\n  'resolveMx'\x2C\n  'resolveNaptr'\x2C\n  'resolveNs'\x2C\n  'resolvePtr'\x2C\n  'resolveSoa'\x2C\n  'resolveSrv'\x2C\n  'resolveTxt'\x2C\n  'reverse'\x2C\n];\n\nfunction getDefaultResolver() {\n  return defaultResolver;\n}\n\nfunction setDefaultResolver(resolver) {\n  defaultResolver = resolver;\n}\n\nfunction bindDefaultResolver(target\x2C source) {\n  ArrayPrototypeForEach(resolverKeys\x2C (key) => {\n    target[key] = FunctionPrototypeBind(source[key]\x2C defaultResolver);\n  });\n}\n\nfunction validateHints(hints) {\n  if ((hints & ~(AI_ADDRCONFIG | AI_ALL | AI_V4MAPPED)) !== 0) {\n    throw new ERR_INVALID_ARG_VALUE('hints'\x2C hints);\n  }\n}\n\nlet invalidHostnameWarningEmitted = false;\n\nfunction emitInvalidHostnameWarning(hostname) {\n  if (invalidHostnameWarningEmitted) {\n    return;\n  }\n  invalidHostnameWarningEmitted = true;\n  process.emitWarning(\n    `The provided hostname "${hostname}" is not a valid ` +\n    'hostname\x2C and is supported in the dns module solely for compatibility.'\x2C\n    'DeprecationWarning'\x2C\n    'DEP0118'\n  );\n}\n\nlet dnsOrder = getOptionValue('--dns-result-order') || 'ipv4first';\n\nfunction getDefaultVerbatim() {\n  switch (dnsOrder) {\n    case 'verbatim':\n      return true;\n    case 'ipv4first':\n    default:\n      return false;\n  }\n}\n\nfunction setDefaultResultOrder(value) {\n  validateOneOf(value\x2C 'dnsOrder'\x2C ['verbatim'\x2C 'ipv4first']);\n  dnsOrder = value;\n}\n\nmodule.exports = {\n  bindDefaultResolver\x2C\n  getDefaultResolver\x2C\n  setDefaultResolver\x2C\n  validateHints\x2C\n  validateTimeout\x2C\n  Resolver\x2C\n  emitInvalidHostnameWarning\x2C\n  getDefaultVerbatim\x2C\n  setDefaultResultOrder\x2C\n};\n
code-source-info,0x287e8b1e4a06,186,0,5224,C0O0C4O5224,,
code-creation,Function,10,354337,0x287e8b1e535e,478, node:internal/dns/utils:1:1,0x287e8b1e4970,~
code-source-info,0x287e8b1e535e,186,0,5224,C0O0C137O25C143O50C149O72C155O93C161O115C167O140C173O158C179O182C185O239C188O239C193O284C196O284C201O275C207O336C210O336C215O317C220O446C223O446C228O375C234O392C240O409C246O426C252O559C255O559C260O488C266O503C272O515C278O532C284O542C290O612C292O612C294O631C298O631C300O669C304O669C306O815C311O701C317O731C323O755C329O780C380O3521C382O3521C387O3521C389O3558C393O3558C395O4299C396O4299C398O4674C401O4674C409O4674C411O5010C418O5031C424O5054C430O5076C436O5098C442O5115C448O5134C454O5146C460O5176C466O5198C472O5025C477O5223,,
tick,0x1221756,354411,1,0xb515a0,6,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x287e8b1e3217,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e178f,0x287e8b1e0919,0x8860f93d997,0x1c78303f1ba2,0x1590930,0x15c9fd9
code-creation,LazyCompile,10,354515,0x287e8b1e5f96,36,Resolver node:internal/dns/utils:48:14,0x287e8b1e4cb8,~
code-source-info,0x287e8b1e5f96,186,1072,1190,C10O1116C13O1116C18O1146C20O1165C25O1161C30O1159C35O1189,,
code-creation,LazyCompile,10,354555,0x287e8b1e67b6,43,validateTimeout node:internal/dns/utils:40:25,0x287e8b1e4a38,~
code-source-info,0x287e8b1e67b6,186,847,983,C0O886C5O869C14O904C35O904C40O966C42O981,,
code-creation,LazyCompile,10,354803,0x287e8b1e69ce,46,resolver node:dns:218:18,0x287e8b1e28c0,~
code-source-info,0x287e8b1e69ce,185,5710,6375,C0O5710C14O6297C24O6318C31O6342C38O6297C43O6360C45O6373,,
code-creation,LazyCompile,10,354923,0x287e8b1e76f6,5,getDefaultResolver node:internal/dns/utils:154:28,0x287e8b1e4a88,~
code-source-info,0x287e8b1e76f6,186,3823,3855,C0O3830C4O3853,,
code-creation,LazyCompile,10,354949,0x287e8b1e784e,39,bindDefaultResolver node:internal/dns/utils:162:29,0x287e8b1e4b28,~
code-source-info,0x287e8b1e784e,186,3958,4104,C0O3958C13O3979C24O4001C32O3979C38O4103,,
code-creation,LazyCompile,10,354972,0x287e8b1e7996,37, node:internal/dns/utils:163:39,0x287e8b1e7788,~
code-source-info,0x287e8b1e7996,186,4015,4100,C0O4030C7O4044C15O4072C23O4079C26O4044C31O4042C36O4099,,
code-creation,LazyCompile,10,355168,0x287e8b1e7d66,443,lookup node:dns:97:16,0x287e8b1e2780,~
code-source-info,0x287e8b1e7d66,185,2753,4375,C0O2799C2O2817C5O2833C7O2857C12O2857C16O2903C20O2923C28O2923C33O2968C39O3009C42O3033C46O3060C51O3060C55O3093C65O3170C69O3176C73O3206C77O3213C81O3240C87O3244C91O3279C99O3332C105O3341C109O3366C114O3366C120O3407C122O3424C126O3444C134O3458C142O3444C147O3491C151O3512C156O3512C160O3554C164O3571C167O3579C174O3588C180O3579C187O3628C190O3636C201O3674C216O3636C221O3700C222O3710C223O3740C228O3740C233O3758C235O3783C239O3800C242O3808C249O3826C263O3854C269O3872C285O3808C292O3910C295O3918C311O3918C316O3979C317O3989C318O4009C323O4009C329O4037C331O4050C335O4064C337O4075C341O4087C343O4100C347O4114C352O4131C360O4129C364O4176C369O4182C376O4204C379O4204C396O4182C402O4254C404O4269C407O4277C414O4296C426O4296C432O4277C438O4345C439O4355C440O4362C442O4373,,
code-creation,LazyCompile,10,355217,0x287e8b1e80fe,25,getDefaultVerbatim node:internal/dns/utils:191:28,0x287e8b1e4c18,~
code-source-info,0x287e8b1e80fe,186,4755,4882,C0O4762C21O4809C22O4821C23O4863C24O4876,,
code-creation,LazyCompile,10,355248,0x287e8b1e81e6,26,isIP node:internal/net:39:14,0x3f8cd5547140,~
code-source-info,0x287e8b1e81e6,118,1142,1215,C0O1150C3O1154C9O1165C11O1174C12O1177C15O1181C21O1192C23O1201C24O1204C25O1213,,
code-creation,LazyCompile,10,355266,0x287e8b1e8536,16,isIPv4 node:internal/net:31:16,0x3f8cd55470a0,~
code-source-info,0x287e8b1e8536,118,1012,1061,C0O1020C7O1047C10O1027C15O1059,,
tick,0xe39473,355476,0,0x0,3,0x11e9ce0,0x27ba8ebceb83,0x274d30f72740,0x1c78303d8ceb,0x158e77f
code-creation,LazyCompile,10,355507,0x287e8b1e8786,64,stopListeningIfSignal node:internal/process/signal:43:31,0x3fe299d3cff8,~
code-source-info,0x287e8b1e8786,88,936,1101,C0O960C5O972C10O972C16O985C21O1019C26O1019C33O1039C38O1057C43O1057C47O1070C52O1082C57O1088C63O1100,,
code-creation,LazyCompile,10,355579,0x287e8b1e88ce,70,doListen node:net:1496:40,0x287e8b1e16a0,~
code-source-info,0x287e8b1e88ce,117,40719,40966,C0O40748C4O40765C7O40770C15O40770C23O40809C35O40851C63O40851C69O40965,,
code-creation,LazyCompile,10,355633,0x287e8b1e8bc6,193,listenInCluster node:net:1353:25,0x1c78303fddc8,~
code-source-info,0x287e8b1e8bc6,117,35789,36988,C0O35789C38O35886C44O35914C52O35941C60O35951C69O35949C77O35974C84O35986C92O35999C94O36174C97O36181C120O36181C125O36243C126O36250C127O36278C134O36293C140O36312C146O36335C152O36356C158O36364C165O36434C172O36442C186O36442C192O36987,,
code-creation,Eval,10,355699,0x287e8b1e8f9e,5, node:cluster:1:1,0x287e8b1e8e48,~
script-source,187,node:cluster,// 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 childOrPrimary = 'NODE_UNIQUE_ID' in process.env ? 'child' : 'primary';\nmodule.exports = require(`internal/cluster/${childOrPrimary}`);\n
code-source-info,0x287e8b1e8f9e,187,0,1291,C0O0C4O1291,,
code-creation,Function,10,355763,0x287e8b1e9056,39, node:cluster:1:1,0x287e8b1e8f08,~
code-source-info,0x287e8b1e9056,187,0,1291,C0O1172C3O1200C7O1189C19O1227C24O1272C29O1244C33O1242C38O1290,,
code-creation,Eval,10,356116,0x287e8b1e9c0e,5, node:internal/cluster/primary:1:1,0x287e8b1e9878,~
script-source,188,node:internal/cluster/primary,'use strict';\n\nconst {\n  ArrayPrototypePush\x2C\n  ArrayPrototypeSlice\x2C\n  ArrayPrototypeSome\x2C\n  ObjectKeys\x2C\n  ObjectValues\x2C\n  RegExpPrototypeTest\x2C\n  SafeMap\x2C\n  StringPrototypeStartsWith\x2C\n} = primordials;\n\nconst assert = require('internal/assert');\nconst { fork } = require('child_process');\nconst path = require('path');\nconst EventEmitter = require('events');\nconst RoundRobinHandle = require('internal/cluster/round_robin_handle');\nconst SharedHandle = require('internal/cluster/shared_handle');\nconst Worker = require('internal/cluster/worker');\nconst { internal\x2C sendHelper } = require('internal/cluster/utils');\nconst cluster = new EventEmitter();\nconst intercom = new EventEmitter();\nconst SCHED_NONE = 1;\nconst SCHED_RR = 2;\nconst minPort = 1024;\nconst maxPort = 65535;\nconst { validatePort } = require('internal/validators');\n\nmodule.exports = cluster;\n\nconst handles = new SafeMap();\ncluster.isWorker = false;\ncluster.isMaster = true; // Deprecated alias. Must be same as isPrimary.\ncluster.isPrimary = true;\ncluster.Worker = Worker;\ncluster.workers = {};\ncluster.settings = {};\ncluster.SCHED_NONE = SCHED_NONE;  // Leave it to the operating system.\ncluster.SCHED_RR = SCHED_RR;      // Primary distributes connections.\n\nlet ids = 0;\nlet debugPortOffset = 1;\nlet initialized = false;\n\n// XXX(bnoordhuis) Fold cluster.schedulingPolicy into cluster.settings?\nlet schedulingPolicy = process.env.NODE_CLUSTER_SCHED_POLICY;\nif (schedulingPolicy === 'rr')\n  schedulingPolicy = SCHED_RR;\nelse if (schedulingPolicy === 'none')\n  schedulingPolicy = SCHED_NONE;\nelse if (process.platform === 'win32') {\n  // Round-robin doesn't perform well on\n  // Windows due to the way IOCP is wired up.\n  schedulingPolicy = SCHED_NONE;\n} else\n  schedulingPolicy = SCHED_RR;\n\ncluster.schedulingPolicy = schedulingPolicy;\n\ncluster.setupPrimary = function(options) {\n  const settings = {\n    args: ArrayPrototypeSlice(process.argv\x2C 2)\x2C\n    exec: process.argv[1]\x2C\n    execArgv: process.execArgv\x2C\n    silent: false\x2C\n    ...cluster.settings\x2C\n    ...options\n  };\n\n  // Tell V8 to write profile data for each process to a separate file.\n  // Without --logfile=v8-%p.log\x2C everything ends up in a single\x2C unusable\n  // file. (Unusable because what V8 logs are memory addresses and each\n  // process has its own memory mappings.)\n  if (ArrayPrototypeSome(settings.execArgv\x2C\n                         (s) => StringPrototypeStartsWith(s\x2C '--prof')) &&\n      !ArrayPrototypeSome(settings.execArgv\x2C\n                          (s) => StringPrototypeStartsWith(s\x2C '--logfile='))) {\n    settings.execArgv = [...settings.execArgv\x2C '--logfile=v8-%p.log'];\n  }\n\n  cluster.settings = settings;\n\n  if (initialized === true)\n    return process.nextTick(setupSettingsNT\x2C settings);\n\n  initialized = true;\n  schedulingPolicy = cluster.schedulingPolicy;  // Freeze policy.\n  assert(schedulingPolicy === SCHED_NONE || schedulingPolicy === SCHED_RR\x2C\n         `Bad cluster.schedulingPolicy: ${schedulingPolicy}`);\n\n  process.nextTick(setupSettingsNT\x2C settings);\n\n  process.on('internalMessage'\x2C (message) => {\n    if (message.cmd !== 'NODE_DEBUG_ENABLED')\n      return;\n\n    for (const worker of ObjectValues(cluster.workers)) {\n      if (worker.state === 'online' || worker.state === 'listening') {\n        process._debugProcess(worker.process.pid);\n      } else {\n        worker.once('online'\x2C function() {\n          process._debugProcess(this.process.pid);\n        });\n      }\n    }\n  });\n};\n\n// Deprecated alias must be same as setupPrimary\ncluster.setupMaster = cluster.setupPrimary;\n\nfunction setupSettingsNT(settings) {\n  cluster.emit('setup'\x2C settings);\n}\n\nfunction createWorkerProcess(id\x2C env) {\n  const workerEnv = { ...process.env\x2C ...env\x2C NODE_UNIQUE_ID: `${id}` };\n  const execArgv = [...cluster.settings.execArgv];\n  const debugArgRegex = /--inspect(?:-brk|-port)?|--debug-port/;\n  const nodeOptions = process.env.NODE_OPTIONS || '';\n\n  if (ArrayPrototypeSome(execArgv\x2C\n                         (arg) => RegExpPrototypeTest(debugArgRegex\x2C arg)) ||\n      RegExpPrototypeTest(debugArgRegex\x2C nodeOptions)) {\n    let inspectPort;\n    if ('inspectPort' in cluster.settings) {\n      if (typeof cluster.settings.inspectPort === 'function')\n        inspectPort = cluster.settings.inspectPort();\n      else\n        inspectPort = cluster.settings.inspectPort;\n\n      validatePort(inspectPort);\n    } else {\n      inspectPort = process.debugPort + debugPortOffset;\n      if (inspectPort > maxPort)\n        inspectPort = inspectPort - maxPort + minPort - 1;\n      debugPortOffset++;\n    }\n\n    ArrayPrototypePush(execArgv\x2C `--inspect-port=${inspectPort}`);\n  }\n\n  return fork(cluster.settings.exec\x2C cluster.settings.args\x2C {\n    cwd: cluster.settings.cwd\x2C\n    env: workerEnv\x2C\n    serialization: cluster.settings.serialization\x2C\n    silent: cluster.settings.silent\x2C\n    windowsHide: cluster.settings.windowsHide\x2C\n    execArgv: execArgv\x2C\n    stdio: cluster.settings.stdio\x2C\n    gid: cluster.settings.gid\x2C\n    uid: cluster.settings.uid\n  });\n}\n\nfunction removeWorker(worker) {\n  assert(worker);\n  delete cluster.workers[worker.id];\n\n  if (ObjectKeys(cluster.workers).length === 0) {\n    assert(handles.size === 0\x2C 'Resource leak detected.');\n    intercom.emit('disconnect');\n  }\n}\n\nfunction removeHandlesForWorker(worker) {\n  assert(worker);\n\n  handles.forEach((handle\x2C key) => {\n    if (handle.remove(worker))\n      handles.delete(key);\n  });\n}\n\ncluster.fork = function(env) {\n  cluster.setupPrimary();\n  const id = ++ids;\n  const workerProcess = createWorkerProcess(id\x2C env);\n  const worker = new Worker({\n    id: id\x2C\n    process: workerProcess\n  });\n\n  worker.on('message'\x2C function(message\x2C handle) {\n    cluster.emit('message'\x2C this\x2C message\x2C handle);\n  });\n\n  worker.process.once('exit'\x2C (exitCode\x2C signalCode) => {\n    /*\n     * Remove the worker from the workers list only\n     * if it has disconnected\x2C otherwise we might\n     * still want to access it.\n     */\n    if (!worker.isConnected()) {\n      removeHandlesForWorker(worker);\n      removeWorker(worker);\n    }\n\n    worker.exitedAfterDisconnect = !!worker.exitedAfterDisconnect;\n    worker.state = 'dead';\n    worker.emit('exit'\x2C exitCode\x2C signalCode);\n    cluster.emit('exit'\x2C worker\x2C exitCode\x2C signalCode);\n  });\n\n  worker.process.once('disconnect'\x2C () => {\n    /*\n     * Now is a good time to remove the handles\n     * associated with this worker because it is\n     * not connected to the primary anymore.\n     */\n    removeHandlesForWorker(worker);\n\n    /*\n     * Remove the worker from the workers list only\n     * if its process has exited. Otherwise\x2C we might\n     * still want to access it.\n     */\n    if (worker.isDead())\n      removeWorker(worker);\n\n    worker.exitedAfterDisconnect = !!worker.exitedAfterDisconnect;\n    worker.state = 'disconnected';\n    worker.emit('disconnect');\n    cluster.emit('disconnect'\x2C worker);\n  });\n\n  worker.process.on('internalMessage'\x2C internal(worker\x2C onmessage));\n  process.nextTick(emitForkNT\x2C worker);\n  cluster.workers[worker.id] = worker;\n  return worker;\n};\n\nfunction emitForkNT(worker) {\n  cluster.emit('fork'\x2C worker);\n}\n\ncluster.disconnect = function(cb) {\n  const workers = ObjectKeys(cluster.workers);\n\n  if (workers.length === 0) {\n    process.nextTick(() => intercom.emit('disconnect'));\n  } else {\n    for (const worker of ObjectValues(cluster.workers)) {\n      if (worker.isConnected()) {\n        worker.disconnect();\n      }\n    }\n  }\n\n  if (typeof cb === 'function')\n    intercom.once('disconnect'\x2C cb);\n};\n\nconst methodMessageMapping = {\n  close\x2C\n  exitedAfterDisconnect\x2C\n  listening\x2C\n  online\x2C\n  queryServer\x2C\n};\n\nfunction onmessage(message\x2C handle) {\n  const worker = this;\n\n  const fn = methodMessageMapping[message.act];\n\n  if (typeof fn === 'function')\n    fn(worker\x2C message);\n}\n\nfunction online(worker) {\n  worker.state = 'online';\n  worker.emit('online');\n  cluster.emit('online'\x2C worker);\n}\n\nfunction exitedAfterDisconnect(worker\x2C message) {\n  worker.exitedAfterDisconnect = true;\n  send(worker\x2C { ack: message.seq });\n}\n\nfunction queryServer(worker\x2C message) {\n  // Stop processing if worker already disconnecting\n  if (worker.exitedAfterDisconnect)\n    return;\n\n  const key = `${message.address}:${message.port}:${message.addressType}:` +\n              `${message.fd}:${message.index}`;\n  let handle = handles.get(key);\n\n  if (handle === undefined) {\n    let address = message.address;\n\n    // Find shortest path for unix sockets because of the ~100 byte limit\n    if (message.port < 0 && typeof address === 'string' &&\n        process.platform !== 'win32') {\n\n      address = path.relative(process.cwd()\x2C address);\n\n      if (message.address.length < address.length)\n        address = message.address;\n    }\n\n    // UDP is exempt from round-robin connection balancing for what should\n    // be obvious reasons: it's connectionless. There is nothing to send to\n    // the workers except raw datagrams and that's pointless.\n    if (schedulingPolicy !== SCHED_RR ||\n        message.addressType === 'udp4' ||\n        message.addressType === 'udp6') {\n      handle = new SharedHandle(key\x2C address\x2C message);\n    } else {\n      handle = new RoundRobinHandle(key\x2C address\x2C message);\n    }\n\n    handles.set(key\x2C handle);\n  }\n\n  if (!handle.data)\n    handle.data = message.data;\n\n  // Set custom server data\n  handle.add(worker\x2C (errno\x2C reply\x2C handle) => {\n    const { data } = handles.get(key);\n\n    if (errno)\n      handles.delete(key);  // Gives other workers a chance to retry.\n\n    send(worker\x2C {\n      errno\x2C\n      key\x2C\n      ack: message.seq\x2C\n      data\x2C\n      ...reply\n    }\x2C handle);\n  });\n}\n\nfunction listening(worker\x2C message) {\n  const info = {\n    addressType: message.addressType\x2C\n    address: message.address\x2C\n    port: message.port\x2C\n    fd: message.fd\n  };\n\n  worker.state = 'listening';\n  worker.emit('listening'\x2C info);\n  cluster.emit('listening'\x2C worker\x2C info);\n}\n\n// Server in worker is closing\x2C remove from list. The handle may have been\n// removed by a prior call to removeHandlesForWorker() so guard against that.\nfunction close(worker\x2C message) {\n  const key = message.key;\n  const handle = handles.get(key);\n\n  if (handle && handle.remove(worker))\n    handles.delete(key);\n}\n\nfunction send(worker\x2C message\x2C handle\x2C cb) {\n  return sendHelper(worker.process\x2C message\x2C handle\x2C cb);\n}\n\n// Extend generic Worker with methods specific to the primary process.\nWorker.prototype.disconnect = function() {\n  this.exitedAfterDisconnect = true;\n  send(this\x2C { act: 'disconnect' });\n  removeHandlesForWorker(this);\n  removeWorker(this);\n  return this;\n};\n\nWorker.prototype.destroy = function(signo) {\n  const proc = this.process;\n\n  signo = signo || 'SIGTERM';\n\n  if (this.isConnected()) {\n    this.once('disconnect'\x2C () => proc.kill(signo));\n    this.disconnect();\n    return;\n  }\n\n  proc.kill(signo);\n};\n
code-source-info,0x287e8b1e9c0e,188,0,10794,C0O0C4O10794,,
tick,0x7efc33635473,356622,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x287e8b1e9073,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e8c02,0x287e8b1e890d,0x274d30f590ea
code-creation,Function,10,356640,0x287e8b1ea5e6,640, node:internal/cluster/primary:1:1,0x287e8b1e9b78,~
code-source-info,0x287e8b1ea5e6,188,0,10794,C0O0C160O25C166O47C172O70C178O92C184O106C190O122C196O145C201O156C207O216C210O216C214O216C216O261C219O261C224O252C230O300C233O300C237O300C239O338C242O338C247O382C250O382C254O382C256O451C259O451C263O451C265O509C268O509C272O509C274O578C277O578C282O553C288O563C294O629C296O629C301O629C303O666C305O666C310O666C312O705C314O705C316O725C318O725C320O744C324O744C326O766C332O766C334O798C337O798C342O781C348O831C350O846C354O874C356O874C361O874C363O889C367O906C371O915C375O932C379O988C383O1006C387O1014C392O1029C396O1039C400O1055C404O1061C408O1078C412O1084C417O1103C421O1155C426O1172C430O1236C431O1236C433O1261C435O1261C437O1282C438O1282C440O1385C443O1393C448O1397C452O1385C454O1424C459O1445C464O1457C466O1474C470O1491C475O1512C480O1526C482O1543C486O1562C489O1574C496O1583C501O1687C503O1704C507O1727C509O1744C511O1757C516O1782C520O1803C527O1824C531O3495C537O3525C541O3515C545O5393C552O5406C556O7086C563O7105C567O7510C574O7514C580O7523C586O7548C592O7561C598O7571C604O7510C606O10354C609O10361C618O10382C622O10544C625O10551C634O10569C639O10793,,
code-creation,Eval,10,357290,0x287e8b1ec39e,5, node:child_process:1:1,0x287e8b1ebeb8,~
script-source,189,node:child_process,// 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  ArrayPrototypeFilter\x2C\n  ArrayPrototypeIncludes\x2C\n  ArrayPrototypeJoin\x2C\n  ArrayPrototypeLastIndexOf\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeSlice\x2C\n  ArrayPrototypeSort\x2C\n  ArrayPrototypeSplice\x2C\n  ArrayPrototypeUnshift\x2C\n  Error\x2C\n  NumberIsInteger\x2C\n  ObjectAssign\x2C\n  ObjectDefineProperty\x2C\n  ObjectPrototypeHasOwnProperty\x2C\n  RegExpPrototypeTest\x2C\n  SafeSet\x2C\n  StringPrototypeSlice\x2C\n  StringPrototypeToUpperCase\x2C\n} = primordials;\n\nconst {\n  promisify\x2C\n  convertToValidSignal\x2C\n  createDeferredPromise\x2C\n  getSystemErrorName\n} = require('internal/util');\nconst { isArrayBufferView } = require('internal/util/types');\nlet debug = require('internal/util/debuglog').debuglog(\n  'child_process'\x2C\n  (fn) => {\n    debug = fn;\n  }\n);\nconst { Buffer } = require('buffer');\nconst { Pipe\x2C constants: PipeConstants } = internalBinding('pipe_wrap');\n\nconst {\n  AbortError\x2C\n  codes: errorCodes\x2C\n} = require('internal/errors');\nconst {\n  ERR_INVALID_ARG_VALUE\x2C\n  ERR_CHILD_PROCESS_IPC_REQUIRED\x2C\n  ERR_CHILD_PROCESS_STDIO_MAXBUFFER\x2C\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_OUT_OF_RANGE\x2C\n} = errorCodes;\nconst { clearTimeout\x2C setTimeout } = require('timers');\nconst { getValidatedPath } = require('internal/fs/utils');\nconst {\n  isInt32\x2C\n  validateAbortSignal\x2C\n  validateBoolean\x2C\n  validateObject\x2C\n  validateString\x2C\n} = require('internal/validators');\nconst child_process = require('internal/child_process');\nconst {\n  getValidStdio\x2C\n  setupChannel\x2C\n  ChildProcess\x2C\n  stdioStringToArray\n} = child_process;\n\nconst MAX_BUFFER = 1024 * 1024;\n\n/**\n * Spawns a new Node.js process + fork.\n * @param {string} modulePath\n * @param {string[]} [args]\n * @param {{\n *   cwd?: string;\n *   detached?: boolean;\n *   env?: Object;\n *   execPath?: string;\n *   execArgv?: string[];\n *   gid?: number;\n *   serialization?: string;\n *   signal?: AbortSignal;\n *   killSignal?: string | number;\n *   silent?: boolean;\n *   stdio?: Array | string;\n *   uid?: number;\n *   windowsVerbatimArguments?: boolean;\n *   timeout?: number;\n *   }} [options]\n * @returns {ChildProcess}\n */\nfunction fork(modulePath /* \x2C args\x2C options */) {\n  validateString(modulePath\x2C 'modulePath');\n\n  // Get options and args arguments.\n  let execArgv;\n  let options = {};\n  let args = [];\n  let pos = 1;\n  if (pos < arguments.length && ArrayIsArray(arguments[pos])) {\n    args = arguments[pos++];\n  }\n\n  if (pos < arguments.length && arguments[pos] == null) {\n    pos++;\n  }\n\n  if (pos < arguments.length && arguments[pos] != null) {\n    if (typeof arguments[pos] !== 'object') {\n      throw new ERR_INVALID_ARG_VALUE(`arguments[${pos}]`\x2C arguments[pos]);\n    }\n\n    options = { ...arguments[pos++] };\n  }\n\n  // Prepare arguments for fork:\n  execArgv = options.execArgv || process.execArgv;\n\n  if (execArgv === process.execArgv && process._eval != null) {\n    const index = ArrayPrototypeLastIndexOf(execArgv\x2C process._eval);\n    if (index > 0) {\n      // Remove the -e switch to avoid fork bombing ourselves.\n      execArgv = ArrayPrototypeSlice(execArgv);\n      ArrayPrototypeSplice(execArgv\x2C index - 1\x2C 2);\n    }\n  }\n\n  args = [...execArgv\x2C modulePath\x2C ...args];\n\n  if (typeof options.stdio === 'string') {\n    options.stdio = stdioStringToArray(options.stdio\x2C 'ipc');\n  } else if (!ArrayIsArray(options.stdio)) {\n    // Use a separate fd=3 for the IPC channel. Inherit stdin\x2C stdout\x2C\n    // and stderr from the parent if silent isn't set.\n    options.stdio = stdioStringToArray(\n      options.silent ? 'pipe' : 'inherit'\x2C\n      'ipc');\n  } else if (!ArrayPrototypeIncludes(options.stdio\x2C 'ipc')) {\n    throw new ERR_CHILD_PROCESS_IPC_REQUIRED('options.stdio');\n  }\n\n  options.execPath = options.execPath || process.execPath;\n  options.shell = false;\n\n  return spawn(options.execPath\x2C args\x2C options);\n}\n\nfunction _forkChild(fd\x2C serializationMode) {\n  // set process.send()\n  const p = new Pipe(PipeConstants.IPC);\n  p.open(fd);\n  p.unref();\n  const control = setupChannel(process\x2C p\x2C serializationMode);\n  process.on('newListener'\x2C function onNewListener(name) {\n    if (name === 'message' || name === 'disconnect') control.refCounted();\n  });\n  process.on('removeListener'\x2C function onRemoveListener(name) {\n    if (name === 'message' || name === 'disconnect') control.unrefCounted();\n  });\n}\n\nfunction normalizeExecArgs(command\x2C options\x2C callback) {\n  if (typeof options === 'function') {\n    callback = options;\n    options = undefined;\n  }\n\n  // Make a shallow copy so we don't clobber the user's options object.\n  options = { ...options };\n  options.shell = typeof options.shell === 'string' ? options.shell : true;\n\n  return {\n    file: command\x2C\n    options: options\x2C\n    callback: callback\n  };\n}\n\n/**\n * Spawns a shell executing the given command.\n * @param {string} command\n * @param {{\n *   cmd?: string;\n *   env?: Object;\n *   encoding?: string;\n *   shell?: string;\n *   signal?: AbortSignal;\n *   timeout?: number;\n *   maxBuffer?: number;\n *   killSignal?: string | number;\n *   uid?: number;\n *   gid?: number;\n *   windowsHide?: boolean;\n *   }} [options]\n * @param {(\n *   error?: Error\x2C\n *   stdout?: string | Buffer\x2C\n *   stderr?: string | Buffer\n *   ) => any} [callback]\n * @returns {ChildProcess}\n */\nfunction exec(command\x2C options\x2C callback) {\n  const opts = normalizeExecArgs(command\x2C options\x2C callback);\n  return module.exports.execFile(opts.file\x2C\n                                 opts.options\x2C\n                                 opts.callback);\n}\n\nconst customPromiseExecFunction = (orig) => {\n  return (...args) => {\n    const { promise\x2C resolve\x2C reject } = createDeferredPromise();\n\n    promise.child = orig(...args\x2C (err\x2C stdout\x2C stderr) => {\n      if (err !== null) {\n        err.stdout = stdout;\n        err.stderr = stderr;\n        reject(err);\n      } else {\n        resolve({ stdout\x2C stderr });\n      }\n    });\n\n    return promise;\n  };\n};\n\nObjectDefineProperty(exec\x2C promisify.custom\x2C {\n  enumerable: false\x2C\n  value: customPromiseExecFunction(exec)\n});\n\n/**\n * Spawns the specified file as a shell.\n * @param {string} file\n * @param {string[]} [args]\n * @param {{\n *   cwd?: string;\n *   env?: Object;\n *   encoding?: string;\n *   timeout?: number;\n *   maxBuffer?: number;\n *   killSignal?: string | number;\n *   uid?: number;\n *   gid?: number;\n *   windowsHide?: boolean;\n *   windowsVerbatimArguments?: boolean;\n *   shell?: boolean | string;\n *   signal?: AbortSignal;\n *   }} [options]\n * @param {(\n *   error?: Error\x2C\n *   stdout?: string | Buffer\x2C\n *   stderr?: string | Buffer\n *   ) => any} [callback]\n * @returns {ChildProcess}\n */\nfunction execFile(file /* \x2C args\x2C options\x2C callback */) {\n  let args = [];\n  let callback;\n  let options;\n\n  // Parse the optional positional parameters.\n  let pos = 1;\n  if (pos < arguments.length && ArrayIsArray(arguments[pos])) {\n    args = arguments[pos++];\n  } else if (pos < arguments.length && arguments[pos] == null) {\n    pos++;\n  }\n\n  if (pos < arguments.length && typeof arguments[pos] === 'object') {\n    options = arguments[pos++];\n  } else if (pos < arguments.length && arguments[pos] == null) {\n    pos++;\n  }\n\n  if (pos < arguments.length && typeof arguments[pos] === 'function') {\n    callback = arguments[pos++];\n  }\n\n  if (!callback && pos < arguments.length && arguments[pos] != null) {\n    throw new ERR_INVALID_ARG_VALUE('args'\x2C arguments[pos]);\n  }\n\n  options = {\n    encoding: 'utf8'\x2C\n    timeout: 0\x2C\n    maxBuffer: MAX_BUFFER\x2C\n    killSignal: 'SIGTERM'\x2C\n    cwd: null\x2C\n    env: null\x2C\n    shell: false\x2C\n    ...options\n  };\n\n  // Validate the timeout\x2C if present.\n  validateTimeout(options.timeout);\n\n  // Validate maxBuffer\x2C if present.\n  validateMaxBuffer(options.maxBuffer);\n\n  options.killSignal = sanitizeKillSignal(options.killSignal);\n\n  const child = spawn(file\x2C args\x2C {\n    cwd: options.cwd\x2C\n    env: options.env\x2C\n    gid: options.gid\x2C\n    shell: options.shell\x2C\n    signal: options.signal\x2C\n    uid: options.uid\x2C\n    windowsHide: !!options.windowsHide\x2C\n    windowsVerbatimArguments: !!options.windowsVerbatimArguments\n  });\n\n  let encoding;\n  const _stdout = [];\n  const _stderr = [];\n  if (options.encoding !== 'buffer' && Buffer.isEncoding(options.encoding)) {\n    encoding = options.encoding;\n  } else {\n    encoding = null;\n  }\n  let stdoutLen = 0;\n  let stderrLen = 0;\n  let killed = false;\n  let exited = false;\n  let timeoutId;\n\n  let ex = null;\n\n  let cmd = file;\n\n  function exithandler(code\x2C signal) {\n    if (exited) return;\n    exited = true;\n\n    if (timeoutId) {\n      clearTimeout(timeoutId);\n      timeoutId = null;\n    }\n\n    if (!callback) return;\n\n    // merge chunks\n    let stdout;\n    let stderr;\n    if (encoding ||\n      (\n        child.stdout &&\n        child.stdout.readableEncoding\n      )) {\n      stdout = ArrayPrototypeJoin(_stdout\x2C '');\n    } else {\n      stdout = Buffer.concat(_stdout);\n    }\n    if (encoding ||\n      (\n        child.stderr &&\n        child.stderr.readableEncoding\n      )) {\n      stderr = ArrayPrototypeJoin(_stderr\x2C '');\n    } else {\n      stderr = Buffer.concat(_stderr);\n    }\n\n    if (!ex && code === 0 && signal === null) {\n      callback(null\x2C stdout\x2C stderr);\n      return;\n    }\n\n    if (args.length !== 0)\n      cmd += ` ${ArrayPrototypeJoin(args\x2C ' ')}`;\n\n    if (!ex) {\n      // eslint-disable-next-line no-restricted-syntax\n      ex = new Error('Command failed: ' + cmd + '\\n' + stderr);\n      ex.killed = child.killed || killed;\n      ex.code = code < 0 ? getSystemErrorName(code) : code;\n      ex.signal = signal;\n    }\n\n    ex.cmd = cmd;\n    callback(ex\x2C stdout\x2C stderr);\n  }\n\n  function errorhandler(e) {\n    ex = e;\n\n    if (child.stdout)\n      child.stdout.destroy();\n\n    if (child.stderr)\n      child.stderr.destroy();\n\n    exithandler();\n  }\n\n  function kill() {\n    if (child.stdout)\n      child.stdout.destroy();\n\n    if (child.stderr)\n      child.stderr.destroy();\n\n    killed = true;\n    try {\n      child.kill(options.killSignal);\n    } catch (e) {\n      ex = e;\n      exithandler();\n    }\n  }\n\n  if (options.timeout > 0) {\n    timeoutId = setTimeout(function delayedKill() {\n      kill();\n      timeoutId = null;\n    }\x2C options.timeout);\n  }\n\n  if (child.stdout) {\n    if (encoding)\n      child.stdout.setEncoding(encoding);\n\n    child.stdout.on('data'\x2C function onChildStdout(chunk) {\n      const encoding = child.stdout.readableEncoding;\n      const length = encoding ?\n        Buffer.byteLength(chunk\x2C encoding) :\n        chunk.length;\n      const slice = encoding ? StringPrototypeSlice :\n        (buf\x2C ...args) => buf.slice(...args);\n      stdoutLen += length;\n\n      if (stdoutLen > options.maxBuffer) {\n        const truncatedLen = options.maxBuffer - (stdoutLen - length);\n        ArrayPrototypePush(_stdout\x2C slice(chunk\x2C 0\x2C truncatedLen));\n\n        ex = new ERR_CHILD_PROCESS_STDIO_MAXBUFFER('stdout');\n        kill();\n      } else {\n        ArrayPrototypePush(_stdout\x2C chunk);\n      }\n    });\n  }\n\n  if (child.stderr) {\n    if (encoding)\n      child.stderr.setEncoding(encoding);\n\n    child.stderr.on('data'\x2C function onChildStderr(chunk) {\n      const encoding = child.stderr.readableEncoding;\n      const length = encoding ?\n        Buffer.byteLength(chunk\x2C encoding) :\n        chunk.length;\n      stderrLen += length;\n\n      if (stderrLen > options.maxBuffer) {\n        const truncatedLen = options.maxBuffer - (stderrLen - length);\n        ArrayPrototypePush(_stderr\x2C\n                           chunk.slice(0\x2C truncatedLen));\n\n        ex = new ERR_CHILD_PROCESS_STDIO_MAXBUFFER('stderr');\n        kill();\n      } else {\n        _stderr.push(chunk);\n      }\n    });\n  }\n\n  child.addListener('close'\x2C exithandler);\n  child.addListener('error'\x2C errorhandler);\n\n  return child;\n}\n\nObjectDefineProperty(execFile\x2C promisify.custom\x2C {\n  enumerable: false\x2C\n  value: customPromiseExecFunction(execFile)\n});\n\nfunction normalizeSpawnArguments(file\x2C args\x2C options) {\n  validateString(file\x2C 'file');\n\n  if (file.length === 0)\n    throw new ERR_INVALID_ARG_VALUE('file'\x2C file\x2C 'cannot be empty');\n\n  if (ArrayIsArray(args)) {\n    args = ArrayPrototypeSlice(args);\n  } else if (args == null) {\n    args = [];\n  } else if (typeof args !== 'object') {\n    throw new ERR_INVALID_ARG_TYPE('args'\x2C 'object'\x2C args);\n  } else {\n    options = args;\n    args = [];\n  }\n\n  if (options === undefined)\n    options = {};\n  else\n    validateObject(options\x2C 'options');\n\n  let cwd = options.cwd;\n\n  // Validate the cwd\x2C if present.\n  if (cwd != null) {\n    cwd = getValidatedPath(cwd\x2C 'options.cwd');\n  }\n\n  // Validate detached\x2C if present.\n  if (options.detached != null) {\n    validateBoolean(options.detached\x2C 'options.detached');\n  }\n\n  // Validate the uid\x2C if present.\n  if (options.uid != null && !isInt32(options.uid)) {\n    throw new ERR_INVALID_ARG_TYPE('options.uid'\x2C 'int32'\x2C options.uid);\n  }\n\n  // Validate the gid\x2C if present.\n  if (options.gid != null && !isInt32(options.gid)) {\n    throw new ERR_INVALID_ARG_TYPE('options.gid'\x2C 'int32'\x2C options.gid);\n  }\n\n  // Validate the shell\x2C if present.\n  if (options.shell != null &&\n      typeof options.shell !== 'boolean' &&\n      typeof options.shell !== 'string') {\n    throw new ERR_INVALID_ARG_TYPE('options.shell'\x2C\n                                   ['boolean'\x2C 'string']\x2C options.shell);\n  }\n\n  // Validate argv0\x2C if present.\n  if (options.argv0 != null) {\n    validateString(options.argv0\x2C 'options.argv0');\n  }\n\n  // Validate windowsHide\x2C if present.\n  if (options.windowsHide != null) {\n    validateBoolean(options.windowsHide\x2C 'options.windowsHide');\n  }\n\n  // Validate windowsVerbatimArguments\x2C if present.\n  let { windowsVerbatimArguments } = options;\n  if (windowsVerbatimArguments != null) {\n    validateBoolean(windowsVerbatimArguments\x2C\n                    'options.windowsVerbatimArguments');\n  }\n\n  if (options.shell) {\n    const command = ArrayPrototypeJoin([file\x2C ...args]\x2C ' ');\n    // Set the shell\x2C switches\x2C and commands.\n    if (process.platform === 'win32') {\n      if (typeof options.shell === 'string')\n        file = options.shell;\n      else\n        file = process.env.comspec || 'cmd.exe';\n      // '/d /s /c' is used only for cmd.exe.\n      if (RegExpPrototypeTest(/^(?:.*\\\\)?cmd(?:\\.exe)?$/i\x2C file)) {\n        args = ['/d'\x2C '/s'\x2C '/c'\x2C `"${command}"`];\n        windowsVerbatimArguments = true;\n      } else {\n        args = ['-c'\x2C command];\n      }\n    } else {\n      if (typeof options.shell === 'string')\n        file = options.shell;\n      else if (process.platform === 'android')\n        file = '/system/bin/sh';\n      else\n        file = '/bin/sh';\n      args = ['-c'\x2C command];\n    }\n  }\n\n  if (typeof options.argv0 === 'string') {\n    ArrayPrototypeUnshift(args\x2C options.argv0);\n  } else {\n    ArrayPrototypeUnshift(args\x2C file);\n  }\n\n  const env = options.env || process.env;\n  const envPairs = [];\n\n  // process.env.NODE_V8_COVERAGE always propagates\x2C making it possible to\n  // collect coverage for programs that spawn with white-listed environment.\n  if (process.env.NODE_V8_COVERAGE &&\n      !ObjectPrototypeHasOwnProperty(options.env || {}\x2C 'NODE_V8_COVERAGE')) {\n    env.NODE_V8_COVERAGE = process.env.NODE_V8_COVERAGE;\n  }\n\n  let envKeys = [];\n  // Prototype values are intentionally included.\n  for (const key in env) {\n    ArrayPrototypePush(envKeys\x2C key);\n  }\n\n  if (process.platform === 'win32') {\n    // On Windows env keys are case insensitive. Filter out duplicates\x2C\n    // keeping only the first one (in lexicographic order)\n    const sawKey = new SafeSet();\n    envKeys = ArrayPrototypeFilter(\n      ArrayPrototypeSort(envKeys)\x2C\n      (key) => {\n        const uppercaseKey = StringPrototypeToUpperCase(key);\n        if (sawKey.has(uppercaseKey)) {\n          return false;\n        }\n        sawKey.add(uppercaseKey);\n        return true;\n      }\n    );\n  }\n\n  for (const key of envKeys) {\n    const value = env[key];\n    if (value !== undefined) {\n      ArrayPrototypePush(envPairs\x2C `${key}=${value}`);\n    }\n  }\n\n  return {\n    // Make a shallow copy so we don't clobber the user's options object.\n    ...options\x2C\n    args\x2C\n    cwd\x2C\n    detached: !!options.detached\x2C\n    envPairs\x2C\n    file\x2C\n    windowsHide: !!options.windowsHide\x2C\n    windowsVerbatimArguments: !!windowsVerbatimArguments\x2C\n  };\n}\n\nfunction abortChildProcess(child\x2C killSignal) {\n  if (!child)\n    return;\n  try {\n    if (child.kill(killSignal)) {\n      child.emit('error'\x2C new AbortError());\n    }\n  } catch (err) {\n    child.emit('error'\x2C err);\n  }\n}\n\n/**\n * Spawns a new process using the given `file`.\n * @param {string} file\n * @param {string[]} [args]\n * @param {{\n *   cwd?: string;\n *   env?: Object;\n *   argv0?: string;\n *   stdio?: Array | string;\n *   detached?: boolean;\n *   uid?: number;\n *   gid?: number;\n *   serialization?: string;\n *   shell?: boolean | string;\n *   windowsVerbatimArguments?: boolean;\n *   windowsHide?: boolean;\n *   signal?: AbortSignal;\n *   timeout?: number;\n *   killSignal?: string | number;\n *   }} [options]\n * @returns {ChildProcess}\n */\nfunction spawn(file\x2C args\x2C options) {\n  options = normalizeSpawnArguments(file\x2C args\x2C options);\n  validateTimeout(options.timeout);\n  validateAbortSignal(options.signal\x2C 'options.signal');\n  const killSignal = sanitizeKillSignal(options.killSignal);\n  const child = new ChildProcess();\n\n  debug('spawn'\x2C options);\n  child.spawn(options);\n\n  if (options.timeout > 0) {\n    let timeoutId = setTimeout(() => {\n      if (timeoutId) {\n        try {\n          child.kill(killSignal);\n        } catch (err) {\n          child.emit('error'\x2C err);\n        }\n        timeoutId = null;\n      }\n    }\x2C options.timeout);\n\n    child.once('exit'\x2C () => {\n      if (timeoutId) {\n        clearTimeout(timeoutId);\n        timeoutId = null;\n      }\n    });\n  }\n\n  if (options.signal) {\n    const signal = options.signal;\n    if (signal.aborted) {\n      process.nextTick(onAbortListener);\n    } else {\n      signal.addEventListener('abort'\x2C onAbortListener\x2C { once: true });\n      child.once('exit'\x2C\n                 () => signal.removeEventListener('abort'\x2C onAbortListener));\n    }\n\n    function onAbortListener() {\n      abortChildProcess(child\x2C killSignal);\n    }\n  }\n\n  return child;\n}\n\n/**\n * Spawns a new process synchronously using the given `file`.\n * @param {string} file\n * @param {string[]} [args]\n * @param {{\n *   cwd?: string;\n *   input?: string | Buffer | TypedArray | DataView;\n *   argv0?: string;\n *   stdio?: string | Array;\n *   env?: Object;\n *   uid?: number;\n *   gid?: number;\n *   timeout?: number;\n *   killSignal?: string | number;\n *   maxBuffer?: number;\n *   encoding?: string;\n *   shell?: boolean | string;\n *   windowsVerbatimArguments?: boolean;\n *   windowsHide?: boolean;\n *   }} [options]\n * @returns {{\n *   pid: number;\n *   output: Array;\n *   stdout: Buffer | string;\n *   stderr: Buffer | string;\n *   status: number | null;\n *   signal: string | null;\n *   error: Error;\n *   }}\n */\nfunction spawnSync(file\x2C args\x2C options) {\n  options = {\n    maxBuffer: MAX_BUFFER\x2C\n    ...normalizeSpawnArguments(file\x2C args\x2C options)\n  };\n\n  debug('spawnSync'\x2C options);\n\n  // Validate the timeout\x2C if present.\n  validateTimeout(options.timeout);\n\n  // Validate maxBuffer\x2C if present.\n  validateMaxBuffer(options.maxBuffer);\n\n  // Validate and translate the kill signal\x2C if present.\n  options.killSignal = sanitizeKillSignal(options.killSignal);\n\n  options.stdio = getValidStdio(options.stdio || 'pipe'\x2C true).stdio;\n\n  if (options.input) {\n    const stdin = options.stdio[0] = { ...options.stdio[0] };\n    stdin.input = options.input;\n  }\n\n  // We may want to pass data in on any given fd\x2C ensure it is a valid buffer\n  for (let i = 0; i < options.stdio.length; i++) {\n    const input = options.stdio[i] && options.stdio[i].input;\n    if (input != null) {\n      const pipe = options.stdio[i] = { ...options.stdio[i] };\n      if (isArrayBufferView(input)) {\n        pipe.input = input;\n      } else if (typeof input === 'string') {\n        pipe.input = Buffer.from(input\x2C options.encoding);\n      } else {\n        throw new ERR_INVALID_ARG_TYPE(`options.stdio[${i}]`\x2C\n                                       ['Buffer'\x2C\n                                        'TypedArray'\x2C\n                                        'DataView'\x2C\n                                        'string']\x2C\n                                       input);\n      }\n    }\n  }\n\n  return child_process.spawnSync(options);\n}\n\n\nfunction checkExecSyncError(ret\x2C args\x2C cmd) {\n  let err;\n  if (ret.error) {\n    err = ret.error;\n  } else if (ret.status !== 0) {\n    let msg = 'Command failed: ';\n    msg += cmd || ArrayPrototypeJoin(args\x2C ' ');\n    if (ret.stderr && ret.stderr.length > 0)\n      msg += `\\n${ret.stderr.toString()}`;\n    // eslint-disable-next-line no-restricted-syntax\n    err = new Error(msg);\n  }\n  if (err) {\n    ObjectAssign(err\x2C ret);\n  }\n  return err;\n}\n\n/**\n * Spawns a file as a shell synchronously.\n * @param {string} command\n * @param {string[]} [args]\n * @param {{\n *   cwd?: string;\n *   input?: string | Buffer | TypedArray | DataView;\n *   stdio?: string | Array;\n *   env?: Object;\n *   uid?: number;\n *   gid?: number;\n *   timeout?: number;\n *   killSignal?: string | number;\n *   maxBuffer?: number;\n *   encoding?: string;\n *   windowsHide?: boolean;\n *   shell?: boolean | string;\n *   }} [options]\n * @returns {Buffer | string}\n */\nfunction execFileSync(command\x2C args\x2C options) {\n  options = normalizeSpawnArguments(command\x2C args\x2C options);\n\n  const inheritStderr = !options.stdio;\n  const ret = spawnSync(options.file\x2C\n                        ArrayPrototypeSlice(options.args\x2C 1)\x2C options);\n\n  if (inheritStderr && ret.stderr)\n    process.stderr.write(ret.stderr);\n\n  const err = checkExecSyncError(ret\x2C options.args\x2C undefined);\n\n  if (err)\n    throw err;\n\n  return ret.stdout;\n}\n\n/**\n * Spawns a shell executing the given `command` synchronously.\n * @param {string} command\n * @param {{\n *   cwd?: string;\n *   input?: string | Buffer | TypedArray | DataView;\n *   stdio?: string | Array;\n *   env?: Object;\n *   shell?: string;\n *   uid?: number;\n *   gid?: number;\n *   timeout?: number;\n *   killSignal?: string | number;\n *   maxBuffer?: number;\n *   encoding?: string;\n *   windowsHide?: boolean;\n *   }} [options]\n * @returns {Buffer | string}\n */\nfunction execSync(command\x2C options) {\n  const opts = normalizeExecArgs(command\x2C options\x2C null);\n  const inheritStderr = !opts.options.stdio;\n\n  const ret = spawnSync(opts.file\x2C opts.options);\n\n  if (inheritStderr && ret.stderr)\n    process.stderr.write(ret.stderr);\n\n  const err = checkExecSyncError(ret\x2C opts.args\x2C command);\n\n  if (err)\n    throw err;\n\n  return ret.stdout;\n}\n\n\nfunction validateTimeout(timeout) {\n  if (timeout != null && !(NumberIsInteger(timeout) && timeout >= 0)) {\n    throw new ERR_OUT_OF_RANGE('timeout'\x2C 'an unsigned integer'\x2C timeout);\n  }\n}\n\n\nfunction validateMaxBuffer(maxBuffer) {\n  if (maxBuffer != null && !(typeof maxBuffer === 'number' && maxBuffer >= 0)) {\n    throw new ERR_OUT_OF_RANGE('options.maxBuffer'\x2C\n                               'a positive number'\x2C\n                               maxBuffer);\n  }\n}\n\n\nfunction sanitizeKillSignal(killSignal) {\n  if (typeof killSignal === 'string' || typeof killSignal === 'number') {\n    return convertToValidSignal(killSignal);\n  } else if (killSignal != null) {\n    throw new ERR_INVALID_ARG_TYPE('options.killSignal'\x2C\n                                   ['string'\x2C 'number']\x2C\n                                   killSignal);\n  }\n}\n\nmodule.exports = {\n  _forkChild\x2C\n  ChildProcess\x2C\n  exec\x2C\n  execFile\x2C\n  execFileSync\x2C\n  execSync\x2C\n  fork\x2C\n  spawn\x2C\n  spawnSync\n};\n
code-source-info,0x287e8b1ec39e,189,0,24635,C0O0C4O24635,,
tick,0x7efc3363538d,358358,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x287e8b1ea6c1,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e9073,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e8c02,0x287e8b1e890d,0x274d30f590ea
code-creation,Function,10,358372,0x287e8b1ece0e,748, node:child_process:1:1,0x287e8b1ec308,~
code-source-info,0x287e8b1ece0e,189,0,24635,C0O0C235O1159C241O1175C247O1199C253O1225C259O1247C265O1276C271O1298C277O1321C283O1343C289O1367C295O1392C301O1401C307O1420C313O1436C318O1460C324O1493C330O1516C336O1527C342O1551C348O1692C351O1692C356O1607C361O1620C367O1644C373O1669C379O1748C382O1748C387O1726C393O1792C396O1792C401O1825C414O1826C420O1792C422O1909C425O1909C430O1898C436O1971C439O1971C444O1936C450O1953C456O2049C459O2049C464O2012C470O2033C475O2087C481O2112C487O2146C493O2183C499O2207C505O2278C508O2278C513O2249C519O2263C525O2326C528O2326C533O2305C539O2457C542O2457C547O2366C553O2377C559O2400C565O2419C571O2437C577O2511C580O2511C584O2511C586O2628C589O2556C595O2573C601O2589C607O2605C613O2663C619O2663C621O6605C626O7009C636O7049C647O6972C652O12818C662O12858C673O12777C678O24506C688O24527C694O24541C700O24557C706O24565C712O24577C718O24593C724O24605C730O24613C736O24622C742O24521C747O24634,,
tick,0xd115a5,358740,1,0xb515a0,2,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x287e8b1ed052,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1ea6c1,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e9073,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e8c02,0x287e8b1e890d,0x274d30f590ea
code-creation,Eval,10,359296,0x287e8b1f022e,5, node:internal/child_process:1:1,0x287e8b1efb30,~
script-source,190,node:internal/child_process,'use strict';\n\nconst {\n  ArrayIsArray\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeReduce\x2C\n  ArrayPrototypeSlice\x2C\n  FunctionPrototype\x2C\n  FunctionPrototypeCall\x2C\n  ObjectDefineProperty\x2C\n  ObjectSetPrototypeOf\x2C\n  ReflectApply\x2C\n  StringPrototypeSlice\x2C\n  Symbol\x2C\n  Uint8Array\x2C\n} = primordials;\n\nconst {\n  errnoException\x2C\n  codes: {\n    ERR_INVALID_ARG_TYPE\x2C\n    ERR_INVALID_ARG_VALUE\x2C\n    ERR_INVALID_HANDLE_TYPE\x2C\n    ERR_INVALID_SYNC_FORK_INPUT\x2C\n    ERR_IPC_CHANNEL_CLOSED\x2C\n    ERR_IPC_DISCONNECTED\x2C\n    ERR_IPC_ONE_PIPE\x2C\n    ERR_IPC_SYNC_FORK\x2C\n    ERR_MISSING_ARGS\n  }\n} = require('internal/errors');\nconst {\n  validateArray\x2C\n  validateObject\x2C\n  validateOneOf\x2C\n  validateString\x2C\n} = require('internal/validators');\nconst EventEmitter = require('events');\nconst net = require('net');\nconst dgram = require('dgram');\nconst inspect = require('internal/util/inspect').inspect;\nconst assert = require('internal/assert');\n\nconst { Process } = internalBinding('process_wrap');\nconst {\n  WriteWrap\x2C\n  kReadBytesOrError\x2C\n  kArrayBufferOffset\x2C\n  kLastWriteWasAsync\x2C\n  streamBaseState\n} = internalBinding('stream_wrap');\nconst { Pipe\x2C constants: PipeConstants } = internalBinding('pipe_wrap');\nconst { TCP } = internalBinding('tcp_wrap');\nconst { TTY } = internalBinding('tty_wrap');\nconst { UDP } = internalBinding('udp_wrap');\nconst SocketList = require('internal/socket_list');\nconst { owner_symbol } = require('internal/async_hooks').symbols;\nconst { convertToValidSignal\x2C deprecate } = require('internal/util');\nconst { isArrayBufferView } = require('internal/util/types');\nconst spawn_sync = internalBinding('spawn_sync');\nconst { kStateSymbol } = require('internal/dgram');\n\nconst {\n  UV_EACCES\x2C\n  UV_EAGAIN\x2C\n  UV_EINVAL\x2C\n  UV_EMFILE\x2C\n  UV_ENFILE\x2C\n  UV_ENOENT\x2C\n  UV_ENOSYS\x2C\n  UV_ESRCH\n} = internalBinding('uv');\n\nconst { SocketListSend\x2C SocketListReceive } = SocketList;\n\n// Lazy loaded for startup performance and to allow monkey patching of\n// internalBinding('http_parser').HTTPParser.\nlet freeParser;\nlet HTTPParser;\n\nconst MAX_HANDLE_RETRANSMISSIONS = 3;\nconst kChannelHandle = Symbol('kChannelHandle');\nconst kIsUsedAsStdio = Symbol('kIsUsedAsStdio');\n\n// This object contain function to convert TCP objects to native handle objects\n// and back again.\nconst handleConversion = {\n  'net.Native': {\n    simultaneousAccepts: true\x2C\n\n    send(message\x2C handle\x2C options) {\n      return handle;\n    }\x2C\n\n    got(message\x2C handle\x2C emit) {\n      emit(handle);\n    }\n  }\x2C\n\n  'net.Server': {\n    simultaneousAccepts: true\x2C\n\n    send(message\x2C server\x2C options) {\n      return server._handle;\n    }\x2C\n\n    got(message\x2C handle\x2C emit) {\n      const server = new net.Server();\n      server.listen(handle\x2C () => {\n        emit(server);\n      });\n    }\n  }\x2C\n\n  'net.Socket': {\n    send(message\x2C socket\x2C options) {\n      if (!socket._handle)\n        return;\n\n      // If the socket was created by net.Server\n      if (socket.server) {\n        // The worker should keep track of the socket\n        message.key = socket.server._connectionKey;\n\n        const firstTime = !this[kChannelHandle].sockets.send[message.key];\n        const socketList = getSocketList('send'\x2C this\x2C message.key);\n\n        // The server should no longer expose a .connection property\n        // and when asked to close it should query the socket status from\n        // the workers\n        if (firstTime) socket.server._setupWorker(socketList);\n\n        // Act like socket is detached\n        if (!options.keepOpen)\n          socket.server._connections--;\n      }\n\n      const handle = socket._handle;\n\n      // Remove handle from socket object\x2C it will be closed when the socket\n      // will be sent\n      if (!options.keepOpen) {\n        handle.onread = nop;\n        socket._handle = null;\n        socket.setTimeout(0);\n\n        if (freeParser === undefined)\n          freeParser = require('_http_common').freeParser;\n        if (HTTPParser === undefined)\n          HTTPParser = require('_http_common').HTTPParser;\n\n        // In case of an HTTP connection socket\x2C release the associated\n        // resources\n        if (socket.parser && socket.parser instanceof HTTPParser) {\n          freeParser(socket.parser\x2C null\x2C socket);\n          if (socket._httpMessage)\n            socket._httpMessage.detachSocket(socket);\n        }\n      }\n\n      return handle;\n    }\x2C\n\n    postSend(message\x2C handle\x2C options\x2C callback\x2C target) {\n      // Store the handle after successfully sending it\x2C so it can be closed\n      // when the NODE_HANDLE_ACK is received. If the handle could not be sent\x2C\n      // just close it.\n      if (handle && !options.keepOpen) {\n        if (target) {\n          // There can only be one _pendingMessage as passing handles are\n          // processed one at a time: handles are stored in _handleQueue while\n          // waiting for the NODE_HANDLE_ACK of the current passing handle.\n          assert(!target._pendingMessage);\n          target._pendingMessage =\n              { callback\x2C message\x2C handle\x2C options\x2C retransmissions: 0 };\n        } else {\n          handle.close();\n        }\n      }\n    }\x2C\n\n    got(message\x2C handle\x2C emit) {\n      const socket = new net.Socket({\n        handle: handle\x2C\n        readable: true\x2C\n        writable: true\n      });\n\n      // If the socket was created by net.Server we will track the socket\n      if (message.key) {\n\n        // Add socket to connections list\n        const socketList = getSocketList('got'\x2C this\x2C message.key);\n        socketList.add({\n          socket: socket\n        });\n      }\n\n      emit(socket);\n    }\n  }\x2C\n\n  'dgram.Native': {\n    simultaneousAccepts: false\x2C\n\n    send(message\x2C handle\x2C options) {\n      return handle;\n    }\x2C\n\n    got(message\x2C handle\x2C emit) {\n      emit(handle);\n    }\n  }\x2C\n\n  'dgram.Socket': {\n    simultaneousAccepts: false\x2C\n\n    send(message\x2C socket\x2C options) {\n      message.dgramType = socket.type;\n\n      return socket[kStateSymbol].handle;\n    }\x2C\n\n    got(message\x2C handle\x2C emit) {\n      const socket = new dgram.Socket(message.dgramType);\n\n      socket.bind(handle\x2C () => {\n        emit(socket);\n      });\n    }\n  }\n};\n\nfunction stdioStringToArray(stdio\x2C channel) {\n  const options = [];\n\n  switch (stdio) {\n    case 'ignore':\n    case 'overlapped':\n    case 'pipe': ArrayPrototypePush(options\x2C stdio\x2C stdio\x2C stdio); break;\n    case 'inherit': ArrayPrototypePush(options\x2C 0\x2C 1\x2C 2); break;\n    default:\n      throw new ERR_INVALID_ARG_VALUE('stdio'\x2C stdio);\n  }\n\n  if (channel) ArrayPrototypePush(options\x2C channel);\n\n  return options;\n}\n\nfunction ChildProcess() {\n  FunctionPrototypeCall(EventEmitter\x2C this);\n\n  this._closesNeeded = 1;\n  this._closesGot = 0;\n  this.connected = false;\n\n  this.signalCode = null;\n  this.exitCode = null;\n  this.killed = false;\n  this.spawnfile = null;\n\n  this._handle = new Process();\n  this._handle[owner_symbol] = this;\n\n  this._handle.onexit = (exitCode\x2C signalCode) => {\n    if (signalCode) {\n      this.signalCode = signalCode;\n    } else {\n      this.exitCode = exitCode;\n    }\n\n    if (this.stdin) {\n      this.stdin.destroy();\n    }\n\n    this._handle.close();\n    this._handle = null;\n\n    if (exitCode < 0) {\n      const syscall = this.spawnfile ? 'spawn ' + this.spawnfile : 'spawn';\n      const err = errnoException(exitCode\x2C syscall);\n\n      if (this.spawnfile)\n        err.path = this.spawnfile;\n\n      err.spawnargs = ArrayPrototypeSlice(this.spawnargs\x2C 1);\n      this.emit('error'\x2C err);\n    } else {\n      this.emit('exit'\x2C this.exitCode\x2C this.signalCode);\n    }\n\n    // If any of the stdio streams have not been touched\x2C\n    // then pull all the data through so that it can get the\n    // eof and emit a 'close' event.\n    // Do it on nextTick so that the user has one last chance\n    // to consume the output\x2C if for example they only want to\n    // start reading the data once the process exits.\n    process.nextTick(flushStdio\x2C this);\n\n    maybeClose(this);\n  };\n}\nObjectSetPrototypeOf(ChildProcess.prototype\x2C EventEmitter.prototype);\nObjectSetPrototypeOf(ChildProcess\x2C EventEmitter);\n\n\nfunction flushStdio(subprocess) {\n  const stdio = subprocess.stdio;\n\n  if (stdio == null) return;\n\n  for (let i = 0; i < stdio.length; i++) {\n    const stream = stdio[i];\n    // TODO(addaleax): This doesn't necessarily account for all the ways in\n    // which data can be read from a stream\x2C e.g. being consumed on the\n    // native layer directly as a StreamBase.\n    if (!stream || !stream.readable || stream[kIsUsedAsStdio]) {\n      continue;\n    }\n    stream.resume();\n  }\n}\n\n\nfunction createSocket(pipe\x2C readable) {\n  return net.Socket({ handle: pipe\x2C readable\x2C writable: !readable });\n}\n\n\nfunction getHandleWrapType(stream) {\n  if (stream instanceof Pipe) return 'pipe';\n  if (stream instanceof TTY) return 'tty';\n  if (stream instanceof TCP) return 'tcp';\n  if (stream instanceof UDP) return 'udp';\n\n  return false;\n}\n\nfunction closePendingHandle(target) {\n  target._pendingMessage.handle.close();\n  target._pendingMessage = null;\n}\n\n\nChildProcess.prototype.spawn = function(options) {\n  let i = 0;\n\n  validateObject(options\x2C 'options');\n\n  // If no `stdio` option was given - use default\n  let stdio = options.stdio || 'pipe';\n\n  stdio = getValidStdio(stdio\x2C false);\n\n  const ipc = stdio.ipc;\n  const ipcFd = stdio.ipcFd;\n  stdio = options.stdio = stdio.stdio;\n\n\n  validateOneOf(options.serialization\x2C 'options.serialization'\x2C\n                [undefined\x2C 'json'\x2C 'advanced']);\n  const serialization = options.serialization || 'json';\n\n  if (ipc !== undefined) {\n    // Let child process know about opened IPC channel\n    if (options.envPairs === undefined)\n      options.envPairs = [];\n    else if (!ArrayIsArray(options.envPairs)) {\n      throw new ERR_INVALID_ARG_TYPE('options.envPairs'\x2C\n                                     'Array'\x2C\n                                     options.envPairs);\n    }\n\n    ArrayPrototypePush(options.envPairs\x2C `NODE_CHANNEL_FD=${ipcFd}`);\n    ArrayPrototypePush(options.envPairs\x2C\n                       `NODE_CHANNEL_SERIALIZATION_MODE=${serialization}`);\n  }\n\n  validateString(options.file\x2C 'options.file');\n  this.spawnfile = options.file;\n\n  if (options.args === undefined) {\n    this.spawnargs = [];\n  } else {\n    validateArray(options.args\x2C 'options.args');\n    this.spawnargs = options.args;\n  }\n\n  const err = this._handle.spawn(options);\n\n  // Run-time errors should emit an error\x2C not throw an exception.\n  if (err === UV_EACCES ||\n      err === UV_EAGAIN ||\n      err === UV_EMFILE ||\n      err === UV_ENFILE ||\n      err === UV_ENOENT) {\n    process.nextTick(onErrorNT\x2C this\x2C err);\n\n    // There is no point in continuing when we've hit EMFILE or ENFILE\n    // because we won't be able to set up the stdio file descriptors.\n    if (err === UV_EMFILE || err === UV_ENFILE)\n      return err;\n  } else if (err) {\n    // Close all opened fds on error\n    for (i = 0; i < stdio.length; i++) {\n      const stream = stdio[i];\n      if (stream.type === 'pipe') {\n        stream.handle.close();\n      }\n    }\n\n    this._handle.close();\n    this._handle = null;\n    throw errnoException(err\x2C 'spawn');\n  } else {\n    process.nextTick(onSpawnNT\x2C this);\n  }\n\n  this.pid = this._handle.pid;\n\n  for (i = 0; i < stdio.length; i++) {\n    const stream = stdio[i];\n    if (stream.type === 'ignore') continue;\n\n    if (stream.ipc) {\n      this._closesNeeded++;\n      continue;\n    }\n\n    // The stream is already cloned and piped\x2C thus stop its readable side\x2C\n    // otherwise we might attempt to read from the stream when at the same time\n    // the child process does.\n    if (stream.type === 'wrap') {\n      stream.handle.reading = false;\n      stream.handle.readStop();\n      stream._stdio.pause();\n      stream._stdio.readableFlowing = false;\n      stream._stdio._readableState.reading = false;\n      stream._stdio[kIsUsedAsStdio] = true;\n      continue;\n    }\n\n    if (stream.handle) {\n      // When i === 0 - we're dealing with stdin\n      // (which is the only one writable pipe).\n      stream.socket = createSocket(this.pid !== 0 ?\n        stream.handle : null\x2C i > 0);\n\n      if (i > 0 && this.pid !== 0) {\n        this._closesNeeded++;\n        stream.socket.on('close'\x2C () => {\n          maybeClose(this);\n        });\n      }\n    }\n  }\n\n  this.stdin = stdio.length >= 1 && stdio[0].socket !== undefined ?\n    stdio[0].socket : null;\n  this.stdout = stdio.length >= 2 && stdio[1].socket !== undefined ?\n    stdio[1].socket : null;\n  this.stderr = stdio.length >= 3 && stdio[2].socket !== undefined ?\n    stdio[2].socket : null;\n\n  this.stdio = [];\n\n  for (i = 0; i < stdio.length; i++)\n    ArrayPrototypePush(this.stdio\x2C\n                       stdio[i].socket === undefined ? null : stdio[i].socket);\n\n  // Add .send() method and start listening for IPC data\n  if (ipc !== undefined) setupChannel(this\x2C ipc\x2C serialization);\n\n  return err;\n};\n\n\nfunction onErrorNT(self\x2C err) {\n  self._handle.onexit(err);\n}\n\n\nfunction onSpawnNT(self) {\n  self.emit('spawn');\n}\n\n\nChildProcess.prototype.kill = function(sig) {\n\n  const signal = sig === 0 ? sig :\n    convertToValidSignal(sig === undefined ? 'SIGTERM' : sig);\n\n  if (this._handle) {\n    const err = this._handle.kill(signal);\n    if (err === 0) {\n      /* Success. */\n      this.killed = true;\n      return true;\n    }\n    if (err === UV_ESRCH) {\n      /* Already dead. */\n    } else if (err === UV_EINVAL || err === UV_ENOSYS) {\n      /* The underlying platform doesn't support this signal. */\n      throw errnoException(err\x2C 'kill');\n    } else {\n      /* Other error\x2C almost certainly EPERM. */\n      this.emit('error'\x2C errnoException(err\x2C 'kill'));\n    }\n  }\n\n  /* Kill didn't succeed. */\n  return false;\n};\n\n\nChildProcess.prototype.ref = function() {\n  if (this._handle) this._handle.ref();\n};\n\n\nChildProcess.prototype.unref = function() {\n  if (this._handle) this._handle.unref();\n};\n\nclass Control extends EventEmitter {\n  #channel = null;\n  #refs = 0;\n  #refExplicitlySet = false;\n\n  constructor(channel) {\n    super();\n    this.#channel = channel;\n  }\n\n  // The methods keeping track of the counter are being used to track the\n  // listener count on the child process object as well as when writes are\n  // in progress. Once the user has explicitly requested a certain state\x2C these\n  // methods become no-ops in order to not interfere with the user's intentions.\n  refCounted() {\n    if (++this.#refs === 1 && !this.#refExplicitlySet) {\n      this.#channel.ref();\n    }\n  }\n\n  unrefCounted() {\n    if (--this.#refs === 0 && !this.#refExplicitlySet) {\n      this.#channel.unref();\n      this.emit('unref');\n    }\n  }\n\n  ref() {\n    this.#refExplicitlySet = true;\n    this.#channel.ref();\n  }\n\n  unref() {\n    this.#refExplicitlySet = true;\n    this.#channel.unref();\n  }\n\n  get fd() {\n    return this.#channel ? this.#channel.fd : undefined;\n  }\n}\n\nconst channelDeprecationMsg = '_channel is deprecated. ' +\n                              'Use ChildProcess.channel instead.';\n\nlet serialization;\nfunction setupChannel(target\x2C channel\x2C serializationMode) {\n  const control = new Control(channel);\n  target.channel = control;\n  target[kChannelHandle] = channel;\n\n  ObjectDefineProperty(target\x2C '_channel'\x2C {\n    get: deprecate(() => {\n      return target.channel;\n    }\x2C channelDeprecationMsg\x2C 'DEP0129')\x2C\n    set: deprecate((val) => {\n      target.channel = val;\n    }\x2C channelDeprecationMsg\x2C 'DEP0129')\x2C\n    configurable: true\x2C\n    enumerable: false\n  });\n\n  target._handleQueue = null;\n  target._pendingMessage = null;\n\n  if (serialization === undefined)\n    serialization = require('internal/child_process/serialization');\n  const {\n    initMessageChannel\x2C\n    parseChannelMessages\x2C\n    writeChannelMessage\n  } = serialization[serializationMode];\n\n  let pendingHandle = null;\n  initMessageChannel(channel);\n  channel.pendingHandle = null;\n  channel.onread = function(arrayBuffer) {\n    const recvHandle = channel.pendingHandle;\n    channel.pendingHandle = null;\n    if (arrayBuffer) {\n      const nread = streamBaseState[kReadBytesOrError];\n      const offset = streamBaseState[kArrayBufferOffset];\n      const pool = new Uint8Array(arrayBuffer\x2C offset\x2C nread);\n      if (recvHandle)\n        pendingHandle = recvHandle;\n\n      for (const message of parseChannelMessages(channel\x2C pool)) {\n        // There will be at most one NODE_HANDLE message in every chunk we\n        // read because SCM_RIGHTS messages don't get coalesced. Make sure\n        // that we deliver the handle with the right message however.\n        if (isInternal(message)) {\n          if (message.cmd === 'NODE_HANDLE') {\n            handleMessage(message\x2C pendingHandle\x2C true);\n            pendingHandle = null;\n          } else {\n            handleMessage(message\x2C undefined\x2C true);\n          }\n        } else {\n          handleMessage(message\x2C undefined\x2C false);\n        }\n      }\n    } else {\n      this.buffering = false;\n      target.disconnect();\n      channel.onread = nop;\n      channel.close();\n      target.channel = null;\n      maybeClose(target);\n    }\n  };\n\n  // Object where socket lists will live\n  channel.sockets = { got: {}\x2C send: {} };\n\n  // Handlers will go through this\n  target.on('internalMessage'\x2C function(message\x2C handle) {\n    // Once acknowledged - continue sending handles.\n    if (message.cmd === 'NODE_HANDLE_ACK' ||\n        message.cmd === 'NODE_HANDLE_NACK') {\n\n      if (target._pendingMessage) {\n        if (message.cmd === 'NODE_HANDLE_ACK') {\n          closePendingHandle(target);\n        } else if (target._pendingMessage.retransmissions++ ===\n                   MAX_HANDLE_RETRANSMISSIONS) {\n          closePendingHandle(target);\n          process.emitWarning('Handle did not reach the receiving process ' +\n                              'correctly'\x2C 'SentHandleNotReceivedWarning');\n        }\n      }\n\n      assert(ArrayIsArray(target._handleQueue));\n      const queue = target._handleQueue;\n      target._handleQueue = null;\n\n      if (target._pendingMessage) {\n        target._send(target._pendingMessage.message\x2C\n                     target._pendingMessage.handle\x2C\n                     target._pendingMessage.options\x2C\n                     target._pendingMessage.callback);\n      }\n\n      for (let i = 0; i < queue.length; i++) {\n        const args = queue[i];\n        target._send(args.message\x2C args.handle\x2C args.options\x2C args.callback);\n      }\n\n      // Process a pending disconnect (if any).\n      if (!target.connected && target.channel && !target._handleQueue)\n        target._disconnect();\n\n      return;\n    }\n\n    if (message.cmd !== 'NODE_HANDLE') return;\n\n    // It is possible that the handle is not received because of some error on\n    // ancillary data reception such as MSG_CTRUNC. In this case\x2C report the\n    // sender about it by sending a NODE_HANDLE_NACK message.\n    if (!handle)\n      return target._send({ cmd: 'NODE_HANDLE_NACK' }\x2C null\x2C true);\n\n    // Acknowledge handle receival. Don't emit error events (for example if\n    // the other side has disconnected) because this call to send() is not\n    // initiated by the user and it shouldn't be fatal to be unable to ACK\n    // a message.\n    target._send({ cmd: 'NODE_HANDLE_ACK' }\x2C null\x2C true);\n\n    const obj = handleConversion[message.type];\n\n    // Update simultaneous accepts on Windows\n    if (process.platform === 'win32') {\n      handle.setSimultaneousAccepts(false);\n    }\n\n    // Convert handle object\n    obj.got.call(this\x2C message\x2C handle\x2C (handle) => {\n      handleMessage(message.msg\x2C handle\x2C isInternal(message.msg));\n    });\n  });\n\n  target.send = function(message\x2C handle\x2C options\x2C callback) {\n    if (typeof handle === 'function') {\n      callback = handle;\n      handle = undefined;\n      options = undefined;\n    } else if (typeof options === 'function') {\n      callback = options;\n      options = undefined;\n    } else if (options !== undefined) {\n      validateObject(options\x2C 'options');\n    }\n\n    options = { swallowErrors: false\x2C ...options };\n\n    if (this.connected) {\n      return this._send(message\x2C handle\x2C options\x2C callback);\n    }\n    const ex = new ERR_IPC_CHANNEL_CLOSED();\n    if (typeof callback === 'function') {\n      process.nextTick(callback\x2C ex);\n    } else {\n      process.nextTick(() => this.emit('error'\x2C ex));\n    }\n    return false;\n  };\n\n  target._send = function(message\x2C handle\x2C options\x2C callback) {\n    assert(this.connected || this.channel);\n\n    if (message === undefined)\n      throw new ERR_MISSING_ARGS('message');\n\n    // Non-serializable messages should not reach the remote\n    // end point; as any failure in the stringification there\n    // will result in error message that is weakly consumable.\n    // So perform a final check on message prior to sending.\n    if (typeof message !== 'string' &&\n        typeof message !== 'object' &&\n        typeof message !== 'number' &&\n        typeof message !== 'boolean') {\n      throw new ERR_INVALID_ARG_TYPE(\n        'message'\x2C ['string'\x2C 'object'\x2C 'number'\x2C 'boolean']\x2C message);\n    }\n\n    // Support legacy function signature\n    if (typeof options === 'boolean') {\n      options = { swallowErrors: options };\n    }\n\n    let obj;\n\n    // Package messages with a handle object\n    if (handle) {\n      // This message will be handled by an internalMessage event handler\n      message = {\n        cmd: 'NODE_HANDLE'\x2C\n        type: null\x2C\n        msg: message\n      };\n\n      if (handle instanceof net.Socket) {\n        message.type = 'net.Socket';\n      } else if (handle instanceof net.Server) {\n        message.type = 'net.Server';\n      } else if (handle instanceof TCP || handle instanceof Pipe) {\n        message.type = 'net.Native';\n      } else if (handle instanceof dgram.Socket) {\n        message.type = 'dgram.Socket';\n      } else if (handle instanceof UDP) {\n        message.type = 'dgram.Native';\n      } else {\n        throw new ERR_INVALID_HANDLE_TYPE();\n      }\n\n      // Queue-up message and handle if we haven't received ACK yet.\n      if (this._handleQueue) {\n        ArrayPrototypePush(this._handleQueue\x2C {\n          callback: callback\x2C\n          handle: handle\x2C\n          options: options\x2C\n          message: message.msg\x2C\n        });\n        return this._handleQueue.length === 1;\n      }\n\n      obj = handleConversion[message.type];\n\n      // convert TCP object to native handle object\n      handle = ReflectApply(handleConversion[message.type].send\x2C\n                            target\x2C [message\x2C handle\x2C options]);\n\n      // If handle was sent twice\x2C or it is impossible to get native handle\n      // out of it - just send a text without the handle.\n      if (!handle)\n        message = message.msg;\n\n      // Update simultaneous accepts on Windows\n      if (obj.simultaneousAccepts && process.platform === 'win32') {\n        handle.setSimultaneousAccepts(true);\n      }\n    } else if (this._handleQueue &&\n               !(message && (message.cmd === 'NODE_HANDLE_ACK' ||\n                             message.cmd === 'NODE_HANDLE_NACK'))) {\n      // Queue request anyway to avoid out-of-order messages.\n      ArrayPrototypePush(this._handleQueue\x2C {\n        callback: callback\x2C\n        handle: null\x2C\n        options: options\x2C\n        message: message\x2C\n      });\n      return this._handleQueue.length === 1;\n    }\n\n    const req = new WriteWrap();\n\n    const err = writeChannelMessage(channel\x2C req\x2C message\x2C handle);\n    const wasAsyncWrite = streamBaseState[kLastWriteWasAsync];\n\n    if (err === 0) {\n      if (handle) {\n        if (!this._handleQueue)\n          this._handleQueue = [];\n        if (obj && obj.postSend)\n          obj.postSend(message\x2C handle\x2C options\x2C callback\x2C target);\n      }\n\n      if (wasAsyncWrite) {\n        req.oncomplete = () => {\n          control.unrefCounted();\n          if (typeof callback === 'function')\n            callback(null);\n        };\n        control.refCounted();\n      } else if (typeof callback === 'function') {\n        process.nextTick(callback\x2C null);\n      }\n    } else {\n      // Cleanup handle on error\n      if (obj && obj.postSend)\n        obj.postSend(message\x2C handle\x2C options\x2C callback);\n\n      if (!options.swallowErrors) {\n        const ex = errnoException(err\x2C 'write');\n        if (typeof callback === 'function') {\n          process.nextTick(callback\x2C ex);\n        } else {\n          process.nextTick(() => this.emit('error'\x2C ex));\n        }\n      }\n    }\n\n    /* If the primary is > 2 read() calls behind\x2C please stop sending. */\n    return channel.writeQueueSize < (65536 * 2);\n  };\n\n  // Connected will be set to false immediately when a disconnect() is\n  // requested\x2C even though the channel might still be alive internally to\n  // process queued messages. The three states are distinguished as follows:\n  // - disconnect() never requested: channel is not null and connected\n  //   is true\n  // - disconnect() requested\x2C messages in the queue: channel is not null\n  //   and connected is false\n  // - disconnect() requested\x2C channel actually disconnected: channel is\n  //   null and connected is false\n  target.connected = true;\n\n  target.disconnect = function() {\n    if (!this.connected) {\n      this.emit('error'\x2C new ERR_IPC_DISCONNECTED());\n      return;\n    }\n\n    // Do not allow any new messages to be written.\n    this.connected = false;\n\n    // If there are no queued messages\x2C disconnect immediately. Otherwise\x2C\n    // postpone the disconnect so that it happens internally after the\n    // queue is flushed.\n    if (!this._handleQueue)\n      this._disconnect();\n  };\n\n  target._disconnect = function() {\n    assert(this.channel);\n\n    // This marks the fact that the channel is actually disconnected.\n    this.channel = null;\n    this[kChannelHandle] = null;\n\n    if (this._pendingMessage)\n      closePendingHandle(this);\n\n    let fired = false;\n    function finish() {\n      if (fired) return;\n      fired = true;\n\n      channel.close();\n      target.emit('disconnect');\n    }\n\n    // If a message is being read\x2C then wait for it to complete.\n    if (channel.buffering) {\n      this.once('message'\x2C finish);\n      this.once('internalMessage'\x2C finish);\n\n      return;\n    }\n\n    process.nextTick(finish);\n  };\n\n  function emit(event\x2C message\x2C handle) {\n    target.emit(event\x2C message\x2C handle);\n  }\n\n  function handleMessage(message\x2C handle\x2C internal) {\n    if (!target.channel)\n      return;\n\n    const eventName = (internal ? 'internalMessage' : 'message');\n\n    process.nextTick(emit\x2C eventName\x2C message\x2C handle);\n  }\n\n  channel.readStart();\n  return control;\n}\n\nconst INTERNAL_PREFIX = 'NODE_';\nfunction isInternal(message) {\n  return (message !== null &&\n          typeof message === 'object' &&\n          typeof message.cmd === 'string' &&\n          message.cmd.length > INTERNAL_PREFIX.length &&\n          StringPrototypeSlice(message.cmd\x2C 0\x2C INTERNAL_PREFIX.length) ===\n            INTERNAL_PREFIX);\n}\n\nconst nop = FunctionPrototype;\n\nfunction getValidStdio(stdio\x2C sync) {\n  let ipc;\n  let ipcFd;\n\n  // Replace shortcut with an array\n  if (typeof stdio === 'string') {\n    stdio = stdioStringToArray(stdio);\n  } else if (!ArrayIsArray(stdio)) {\n    throw new ERR_INVALID_ARG_VALUE('stdio'\x2C stdio);\n  }\n\n  // At least 3 stdio will be created\n  // Don't concat() a new Array() because it would be sparse\x2C and\n  // stdio.reduce() would skip the sparse elements of stdio.\n  // See https://stackoverflow.com/a/5501711/3561\n  while (stdio.length < 3) ArrayPrototypePush(stdio\x2C undefined);\n\n  // Translate stdio into C++-readable form\n  // (i.e. PipeWraps or fds)\n  stdio = ArrayPrototypeReduce(stdio\x2C (acc\x2C stdio\x2C i) => {\n    function cleanup() {\n      for (let i = 0; i < acc.length; i++) {\n        if ((acc[i].type === 'pipe' || acc[i].type === 'ipc') && acc[i].handle)\n          acc[i].handle.close();\n      }\n    }\n\n    // Defaults\n    if (stdio == null) {\n      stdio = i < 3 ? 'pipe' : 'ignore';\n    }\n\n    if (stdio === 'ignore') {\n      ArrayPrototypePush(acc\x2C { type: 'ignore' });\n    } else if (stdio === 'pipe' || stdio === 'overlapped' ||\n               (typeof stdio === 'number' && stdio < 0)) {\n      const a = {\n        type: stdio === 'overlapped' ? 'overlapped' : 'pipe'\x2C\n        readable: i === 0\x2C\n        writable: i !== 0\n      };\n\n      if (!sync)\n        a.handle = new Pipe(PipeConstants.SOCKET);\n\n      ArrayPrototypePush(acc\x2C a);\n    } else if (stdio === 'ipc') {\n      if (sync || ipc !== undefined) {\n        // Cleanup previously created pipes\n        cleanup();\n        if (!sync)\n          throw new ERR_IPC_ONE_PIPE();\n        else\n          throw new ERR_IPC_SYNC_FORK();\n      }\n\n      ipc = new Pipe(PipeConstants.IPC);\n      ipcFd = i;\n\n      ArrayPrototypePush(acc\x2C {\n        type: 'pipe'\x2C\n        handle: ipc\x2C\n        ipc: true\n      });\n    } else if (stdio === 'inherit') {\n      ArrayPrototypePush(acc\x2C {\n        type: 'inherit'\x2C\n        fd: i\n      });\n    } else if (typeof stdio === 'number' || typeof stdio.fd === 'number') {\n      ArrayPrototypePush(acc\x2C {\n        type: 'fd'\x2C\n        fd: typeof stdio === 'number' ? stdio : stdio.fd\n      });\n    } else if (getHandleWrapType(stdio) || getHandleWrapType(stdio.handle) ||\n               getHandleWrapType(stdio._handle)) {\n      const handle = getHandleWrapType(stdio) ?\n        stdio :\n        getHandleWrapType(stdio.handle) ? stdio.handle : stdio._handle;\n\n      ArrayPrototypePush(acc\x2C {\n        type: 'wrap'\x2C\n        wrapType: getHandleWrapType(handle)\x2C\n        handle: handle\x2C\n        _stdio: stdio\n      });\n    } else if (isArrayBufferView(stdio) || typeof stdio === 'string') {\n      if (!sync) {\n        cleanup();\n        throw new ERR_INVALID_SYNC_FORK_INPUT(inspect(stdio));\n      }\n    } else {\n      // Cleanup\n      cleanup();\n      throw new ERR_INVALID_ARG_VALUE('stdio'\x2C stdio);\n    }\n\n    return acc;\n  }\x2C []);\n\n  return { stdio\x2C ipc\x2C ipcFd };\n}\n\n\nfunction getSocketList(type\x2C worker\x2C key) {\n  const sockets = worker[kChannelHandle].sockets[type];\n  let socketList = sockets[key];\n  if (!socketList) {\n    const Construct = type === 'send' ? SocketListSend : SocketListReceive;\n    socketList = sockets[key] = new Construct(worker\x2C key);\n  }\n  return socketList;\n}\n\n\nfunction maybeClose(subprocess) {\n  subprocess._closesGot++;\n\n  if (subprocess._closesGot === subprocess._closesNeeded) {\n    subprocess.emit('close'\x2C subprocess.exitCode\x2C subprocess.signalCode);\n  }\n}\n\nfunction spawnSync(options) {\n  const result = spawn_sync.spawn(options);\n\n  if (result.output && options.encoding && options.encoding !== 'buffer') {\n    for (let i = 0; i < result.output.length; i++) {\n      if (!result.output[i])\n        continue;\n      result.output[i] = result.output[i].toString(options.encoding);\n    }\n  }\n\n  result.stdout = result.output && result.output[1];\n  result.stderr = result.output && result.output[2];\n\n  if (result.error) {\n    result.error = errnoException(result.error\x2C 'spawnSync ' + options.file);\n    result.error.path = options.file;\n    result.error.spawnargs = ArrayPrototypeSlice(options.args\x2C 1);\n  }\n\n  return result;\n}\n\nmodule.exports = {\n  ChildProcess\x2C\n  kChannelHandle\x2C\n  setupChannel\x2C\n  getValidStdio\x2C\n  stdioStringToArray\x2C\n  spawnSync\n};\n
code-source-info,0x287e8b1f022e,190,0,30948,C0O0C4O30948,,
tick,0x7efc3373a5a0,360648,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x287e8b1ed052,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1ea6c1,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e9073,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e8c02,0x287e8b1e890d,0x274d30f590ea
code-creation,Function,10,360675,0x287e8b1f184e,1253, node:internal/child_process:1:1,0x287e8b1f0198,~
code-source-info,0x287e8b1f184e,190,0,30948,C0O0C293O25C299O41C305O63C311O87C317O110C322O131C328O156C334O180C339O204C345O220C351O244C356O254C362O564C368O564C373O294C384O325C390O351C396O378C402O407C408O440C414O468C420O494C426O516C432O539C438O674C444O674C449O602C455O619C461O637C467O654C473O727C479O727C483O727C485O758C491O758C495O758C497O788C503O788C507O788C509O822C515O822C520O854C524O822C526O879C532O879C536O879C538O928C541O928C546O916C552O1069C555O1069C560O971C566O984C572O1005C578O1027C584O1049C590O1144C593O1144C598O1109C604O1126C610O1190C613O1190C618O1182C624O1235C627O1235C632O1227C638O1280C641O1280C646O1272C652O1328C658O1328C663O1386C669O1386C674O1417C679O1369C685O1471C691O1471C696O1435C702O1457C708O1527C714O1527C719O1505C725O1578C728O1578C732O1578C734O1634C740O1634C745O1617C751O1776C754O1776C759O1672C765O1685C771O1698C777O1711C783O1724C789O1737C795O1750C801O1763C807O1808C813O1824C819O1980C820O1980C822O1996C823O1996C825O2044C827O2044C829O2070C832O2070C836O2070C838O2119C841O2119C845O2119C847O2270C852O2288C857O2326C865O2392C879O2469C884O2507C892O2581C906O2745C911O2751C919O4312C927O5065C941O5545C946O5584C954O5650C968O5729C973O5768C981O5895C997O2270C999O7893C1007O7917C1012O7859C1017O7929C1020O7929C1025O8936C1034O8952C1038O12897C1047O12912C1051O13596C1060O13610C1064O13683C1073O13699C1125O13782C1181O13760C1183O14756C1188O14783C1191O14756C1193O14857C1194O14857C1196O26358C1198O26358C1200O26691C1202O26691C1204O30825C1211O30846C1217O30862C1223O30880C1229O30896C1235O30913C1241O30935C1247O30840C1252O30947,,
code-creation,Function,10,360717,0x287e8b1f1fc6,35,<instance_members_initializer> node:internal/child_process:527:3,0x287e8b1f0f08,~
code-source-info,0x287e8b1f1fc6,190,13799,13856,C3O13810C16O13826C26O13851C34O13856,,
tick,0x1242995,360859,1,0xb515a0,6,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x287e8b1ed052,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1ea6c1,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e9073,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e8c02,0x287e8b1e890d,0x274d30f590ea
code-creation,Eval,10,361599,0x287e8b1f5a4e,5, node:dgram:1:1,0x287e8b1f54d8,~
script-source,191,node:dgram,// 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  ArrayPrototypePush\x2C\n  FunctionPrototypeBind\x2C\n  FunctionPrototypeCall\x2C\n  ObjectDefineProperty\x2C\n  ObjectSetPrototypeOf\x2C\n  ReflectApply\x2C\n} = primordials;\n\nconst errors = require('internal/errors');\nconst {\n  kStateSymbol\x2C\n  _createSocketHandle\x2C\n  newHandle\x2C\n} = require('internal/dgram');\nconst { guessHandleType } = internalBinding('util');\nconst {\n  ERR_INVALID_ARG_TYPE\x2C\n  ERR_MISSING_ARGS\x2C\n  ERR_SOCKET_ALREADY_BOUND\x2C\n  ERR_SOCKET_BAD_BUFFER_SIZE\x2C\n  ERR_SOCKET_BUFFER_SIZE\x2C\n  ERR_SOCKET_DGRAM_IS_CONNECTED\x2C\n  ERR_SOCKET_DGRAM_NOT_CONNECTED\x2C\n  ERR_SOCKET_DGRAM_NOT_RUNNING\x2C\n  ERR_INVALID_FD_TYPE\n} = errors.codes;\nconst {\n  isInt32\x2C\n  validateAbortSignal\x2C\n  validateString\x2C\n  validateNumber\x2C\n  validatePort\x2C\n} = require('internal/validators');\nconst { Buffer } = require('buffer');\nconst { deprecate } = require('internal/util');\nconst { isArrayBufferView } = require('internal/util/types');\nconst EventEmitter = require('events');\nconst {\n  defaultTriggerAsyncIdScope\x2C\n  symbols: { async_id_symbol\x2C owner_symbol }\n} = require('internal/async_hooks');\nconst { UV_UDP_REUSEADDR } = internalBinding('constants').os;\n\nconst {\n  constants: { UV_UDP_IPV6ONLY }\x2C\n  UDP\x2C\n  SendWrap\n} = internalBinding('udp_wrap');\n\nconst BIND_STATE_UNBOUND = 0;\nconst BIND_STATE_BINDING = 1;\nconst BIND_STATE_BOUND = 2;\n\nconst CONNECT_STATE_DISCONNECTED = 0;\nconst CONNECT_STATE_CONNECTING = 1;\nconst CONNECT_STATE_CONNECTED = 2;\n\nconst RECV_BUFFER = true;\nconst SEND_BUFFER = false;\n\n// Lazily loaded\nlet _cluster = null;\nfunction lazyLoadCluster() {\n  if (!_cluster) _cluster = require('cluster');\n  return _cluster;\n}\n\nconst errnoException = errors.errnoException;\nconst exceptionWithHostPort = errors.exceptionWithHostPort;\n\n\nfunction Socket(type\x2C listener) {\n  FunctionPrototypeCall(EventEmitter\x2C this);\n  let lookup;\n  let recvBufferSize;\n  let sendBufferSize;\n\n  let options;\n  if (type !== null && typeof type === 'object') {\n    options = type;\n    type = options.type;\n    lookup = options.lookup;\n    recvBufferSize = options.recvBufferSize;\n    sendBufferSize = options.sendBufferSize;\n  }\n\n  const handle = newHandle(type\x2C lookup);\n  handle[owner_symbol] = this;\n\n  this[async_id_symbol] = handle.getAsyncId();\n  this.type = type;\n\n  if (typeof listener === 'function')\n    this.on('message'\x2C listener);\n\n  this[kStateSymbol] = {\n    handle\x2C\n    receiving: false\x2C\n    bindState: BIND_STATE_UNBOUND\x2C\n    connectState: CONNECT_STATE_DISCONNECTED\x2C\n    queue: undefined\x2C\n    reuseAddr: options && options.reuseAddr\x2C // Use UV_UDP_REUSEADDR if true.\n    ipv6Only: options && options.ipv6Only\x2C\n    recvBufferSize\x2C\n    sendBufferSize\n  };\n\n  if (options?.signal !== undefined) {\n    const { signal } = options;\n    validateAbortSignal(signal\x2C 'options.signal');\n    const onAborted = () => {\n      this.close();\n    };\n    if (signal.aborted) {\n      onAborted();\n    } else {\n      signal.addEventListener('abort'\x2C onAborted);\n      this.once('close'\x2C () => signal.removeEventListener('abort'\x2C onAborted));\n    }\n  }\n}\nObjectSetPrototypeOf(Socket.prototype\x2C EventEmitter.prototype);\nObjectSetPrototypeOf(Socket\x2C EventEmitter);\n\n\nfunction createSocket(type\x2C listener) {\n  return new Socket(type\x2C listener);\n}\n\n\nfunction startListening(socket) {\n  const state = socket[kStateSymbol];\n\n  state.handle.onmessage = onMessage;\n  // Todo: handle errors\n  state.handle.recvStart();\n  state.receiving = true;\n  state.bindState = BIND_STATE_BOUND;\n\n  if (state.recvBufferSize)\n    bufferSize(socket\x2C state.recvBufferSize\x2C RECV_BUFFER);\n\n  if (state.sendBufferSize)\n    bufferSize(socket\x2C state.sendBufferSize\x2C SEND_BUFFER);\n\n  socket.emit('listening');\n}\n\nfunction replaceHandle(self\x2C newHandle) {\n  const state = self[kStateSymbol];\n  const oldHandle = state.handle;\n\n  // Set up the handle that we got from primary.\n  newHandle.lookup = oldHandle.lookup;\n  newHandle.bind = oldHandle.bind;\n  newHandle.send = oldHandle.send;\n  newHandle[owner_symbol] = self;\n\n  // Replace the existing handle by the handle we got from primary.\n  oldHandle.close();\n  state.handle = newHandle;\n  // Check if the udp handle was connected and set the state accordingly\n  if (isConnected(self))\n    state.connectState = CONNECT_STATE_CONNECTED;\n}\n\nfunction bufferSize(self\x2C size\x2C buffer) {\n  if (size >>> 0 !== size)\n    throw new ERR_SOCKET_BAD_BUFFER_SIZE();\n\n  const ctx = {};\n  const ret = self[kStateSymbol].handle.bufferSize(size\x2C buffer\x2C ctx);\n  if (ret === undefined) {\n    throw new ERR_SOCKET_BUFFER_SIZE(ctx);\n  }\n  return ret;\n}\n\n// Query primary process to get the server handle and utilize it.\nfunction bindServerHandle(self\x2C options\x2C errCb) {\n  const cluster = lazyLoadCluster();\n\n  const state = self[kStateSymbol];\n  cluster._getServer(self\x2C options\x2C (err\x2C handle) => {\n    if (err) {\n      errCb(err);\n      return;\n    }\n\n    if (!state.handle) {\n      // Handle has been closed in the mean time.\n      return handle.close();\n    }\n\n    replaceHandle(self\x2C handle);\n    startListening(self);\n  });\n}\n\nSocket.prototype.bind = function(port_\x2C address_ /* \x2C callback */) {\n  let port = port_;\n\n  healthCheck(this);\n  const state = this[kStateSymbol];\n\n  if (state.bindState !== BIND_STATE_UNBOUND)\n    throw new ERR_SOCKET_ALREADY_BOUND();\n\n  state.bindState = BIND_STATE_BINDING;\n\n  const cb = arguments.length && arguments[arguments.length - 1];\n  if (typeof cb === 'function') {\n    function removeListeners() {\n      this.removeListener('error'\x2C removeListeners);\n      this.removeListener('listening'\x2C onListening);\n    }\n\n    function onListening() {\n      FunctionPrototypeCall(removeListeners\x2C this);\n      FunctionPrototypeCall(cb\x2C this);\n    }\n\n    this.on('error'\x2C removeListeners);\n    this.on('listening'\x2C onListening);\n  }\n\n  if (port !== null &&\n      typeof port === 'object' &&\n      typeof port.recvStart === 'function') {\n    replaceHandle(this\x2C port);\n    startListening(this);\n    return this;\n  }\n\n  // Open an existing fd instead of creating a new one.\n  if (port !== null && typeof port === 'object' &&\n      isInt32(port.fd) && port.fd > 0) {\n    const fd = port.fd;\n    const exclusive = !!port.exclusive;\n    const state = this[kStateSymbol];\n\n    const cluster = lazyLoadCluster();\n\n    if (cluster.isWorker && !exclusive) {\n      bindServerHandle(this\x2C {\n        address: null\x2C\n        port: null\x2C\n        addressType: this.type\x2C\n        fd\x2C\n        flags: null\n      }\x2C (err) => {\n        // Callback to handle error.\n        const ex = errnoException(err\x2C 'open');\n        state.bindState = BIND_STATE_UNBOUND;\n        this.emit('error'\x2C ex);\n      });\n      return this;\n    }\n\n    const type = guessHandleType(fd);\n    if (type !== 'UDP')\n      throw new ERR_INVALID_FD_TYPE(type);\n    const err = state.handle.open(fd);\n\n    if (err)\n      throw errnoException(err\x2C 'open');\n\n    // Check if the udp handle was connected and set the state accordingly\n    if (isConnected(this))\n      state.connectState = CONNECT_STATE_CONNECTED;\n\n    startListening(this);\n    return this;\n  }\n\n  let address;\n  let exclusive;\n\n  if (port !== null && typeof port === 'object') {\n    address = port.address || '';\n    exclusive = !!port.exclusive;\n    port = port.port;\n  } else {\n    address = typeof address_ === 'function' ? '' : address_;\n    exclusive = false;\n  }\n\n  // Defaulting address for bind to all interfaces\n  if (!address) {\n    if (this.type === 'udp4')\n      address = '0.0.0.0';\n    else\n      address = '::';\n  }\n\n  // Resolve address first\n  state.handle.lookup(address\x2C (err\x2C ip) => {\n    if (err) {\n      state.bindState = BIND_STATE_UNBOUND;\n      this.emit('error'\x2C err);\n      return;\n    }\n\n    const cluster = lazyLoadCluster();\n\n    let flags = 0;\n    if (state.reuseAddr)\n      flags |= UV_UDP_REUSEADDR;\n    if (state.ipv6Only)\n      flags |= UV_UDP_IPV6ONLY;\n\n    if (cluster.isWorker && !exclusive) {\n      bindServerHandle(this\x2C {\n        address: ip\x2C\n        port: port\x2C\n        addressType: this.type\x2C\n        fd: -1\x2C\n        flags: flags\n      }\x2C (err) => {\n        // Callback to handle error.\n        const ex = exceptionWithHostPort(err\x2C 'bind'\x2C ip\x2C port);\n        state.bindState = BIND_STATE_UNBOUND;\n        this.emit('error'\x2C ex);\n      });\n    } else {\n      if (!state.handle)\n        return; // Handle has been closed in the mean time\n\n      const err = state.handle.bind(ip\x2C port || 0\x2C flags);\n      if (err) {\n        const ex = exceptionWithHostPort(err\x2C 'bind'\x2C ip\x2C port);\n        state.bindState = BIND_STATE_UNBOUND;\n        this.emit('error'\x2C ex);\n        // Todo: close?\n        return;\n      }\n\n      startListening(this);\n    }\n  });\n\n  return this;\n};\n\nSocket.prototype.connect = function(port\x2C address\x2C callback) {\n  port = validatePort(port\x2C 'Port'\x2C { allowZero: false });\n  if (typeof address === 'function') {\n    callback = address;\n    address = '';\n  } else if (address === undefined) {\n    address = '';\n  }\n\n  validateString(address\x2C 'address');\n\n  const state = this[kStateSymbol];\n\n  if (state.connectState !== CONNECT_STATE_DISCONNECTED)\n    throw new ERR_SOCKET_DGRAM_IS_CONNECTED();\n\n  state.connectState = CONNECT_STATE_CONNECTING;\n  if (state.bindState === BIND_STATE_UNBOUND)\n    this.bind({ port: 0\x2C exclusive: true }\x2C null);\n\n  if (state.bindState !== BIND_STATE_BOUND) {\n    enqueue(this\x2C FunctionPrototypeBind(_connect\x2C this\x2C\n                                        port\x2C address\x2C callback));\n    return;\n  }\n\n  ReflectApply(_connect\x2C this\x2C [port\x2C address\x2C callback]);\n};\n\n\nfunction _connect(port\x2C address\x2C callback) {\n  const state = this[kStateSymbol];\n  if (callback)\n    this.once('connect'\x2C callback);\n\n  const afterDns = (ex\x2C ip) => {\n    defaultTriggerAsyncIdScope(\n      this[async_id_symbol]\x2C\n      doConnect\x2C\n      ex\x2C this\x2C ip\x2C address\x2C port\x2C callback\n    );\n  };\n\n  state.handle.lookup(address\x2C afterDns);\n}\n\n\nfunction doConnect(ex\x2C self\x2C ip\x2C address\x2C port\x2C callback) {\n  const state = self[kStateSymbol];\n  if (!state.handle)\n    return;\n\n  if (!ex) {\n    const err = state.handle.connect(ip\x2C port);\n    if (err) {\n      ex = exceptionWithHostPort(err\x2C 'connect'\x2C address\x2C port);\n    }\n  }\n\n  if (ex) {\n    state.connectState = CONNECT_STATE_DISCONNECTED;\n    return process.nextTick(() => {\n      if (callback) {\n        self.removeListener('connect'\x2C callback);\n        callback(ex);\n      } else {\n        self.emit('error'\x2C ex);\n      }\n    });\n  }\n\n  state.connectState = CONNECT_STATE_CONNECTED;\n  process.nextTick(() => self.emit('connect'));\n}\n\n\nSocket.prototype.disconnect = function() {\n  const state = this[kStateSymbol];\n  if (state.connectState !== CONNECT_STATE_CONNECTED)\n    throw new ERR_SOCKET_DGRAM_NOT_CONNECTED();\n\n  const err = state.handle.disconnect();\n  if (err)\n    throw errnoException(err\x2C 'connect');\n  else\n    state.connectState = CONNECT_STATE_DISCONNECTED;\n};\n\n\n// Thin wrapper around `send`\x2C here for compatibility with dgram_legacy.js\nSocket.prototype.sendto = function(buffer\x2C\n                                   offset\x2C\n                                   length\x2C\n                                   port\x2C\n                                   address\x2C\n                                   callback) {\n  validateNumber(offset\x2C 'offset');\n  validateNumber(length\x2C 'length');\n  validateNumber(port\x2C 'port');\n  validateString(address\x2C 'address');\n\n  this.send(buffer\x2C offset\x2C length\x2C port\x2C address\x2C callback);\n};\n\n\nfunction sliceBuffer(buffer\x2C offset\x2C length) {\n  if (typeof buffer === 'string') {\n    buffer = Buffer.from(buffer);\n  } else if (!isArrayBufferView(buffer)) {\n    throw new ERR_INVALID_ARG_TYPE('buffer'\x2C\n                                   ['Buffer'\x2C\n                                    'TypedArray'\x2C\n                                    'DataView'\x2C\n                                    'string']\x2C\n                                   buffer);\n  }\n\n  offset = offset >>> 0;\n  length = length >>> 0;\n\n  return Buffer.from(buffer.buffer\x2C buffer.byteOffset + offset\x2C length);\n}\n\n\nfunction fixBufferList(list) {\n  const newlist = new Array(list.length);\n\n  for (let i = 0\x2C l = list.length; i < l; i++) {\n    const buf = list[i];\n    if (typeof buf === 'string')\n      newlist[i] = Buffer.from(buf);\n    else if (!isArrayBufferView(buf))\n      return null;\n    else\n      newlist[i] = Buffer.from(buf.buffer\x2C buf.byteOffset\x2C buf.byteLength);\n  }\n\n  return newlist;\n}\n\n\nfunction enqueue(self\x2C toEnqueue) {\n  const state = self[kStateSymbol];\n\n  // If the send queue hasn't been initialized yet\x2C do it\x2C and install an\n  // event handler that flushes the send queue after binding is done.\n  if (state.queue === undefined) {\n    state.queue = [];\n    self.once(EventEmitter.errorMonitor\x2C onListenError);\n    self.once('listening'\x2C onListenSuccess);\n  }\n  ArrayPrototypePush(state.queue\x2C toEnqueue);\n}\n\n\nfunction onListenSuccess() {\n  this.removeListener(EventEmitter.errorMonitor\x2C onListenError);\n  FunctionPrototypeCall(clearQueue\x2C this);\n}\n\n\nfunction onListenError(err) {\n  this.removeListener('listening'\x2C onListenSuccess);\n  this[kStateSymbol].queue = undefined;\n}\n\n\nfunction clearQueue() {\n  const state = this[kStateSymbol];\n  const queue = state.queue;\n  state.queue = undefined;\n\n  // Flush the send queue.\n  for (const queueEntry of queue)\n    queueEntry();\n}\n\nfunction isConnected(self) {\n  try {\n    self.remoteAddress();\n    return true;\n  } catch {\n    return false;\n  }\n}\n\n\n// valid combinations\n// For connectionless sockets\n// send(buffer\x2C offset\x2C length\x2C port\x2C address\x2C callback)\n// send(buffer\x2C offset\x2C length\x2C port\x2C address)\n// send(buffer\x2C offset\x2C length\x2C port\x2C callback)\n// send(buffer\x2C offset\x2C length\x2C port)\n// send(bufferOrList\x2C port\x2C address\x2C callback)\n// send(bufferOrList\x2C port\x2C address)\n// send(bufferOrList\x2C port\x2C callback)\n// send(bufferOrList\x2C port)\n// For connected sockets\n// send(buffer\x2C offset\x2C length\x2C callback)\n// send(buffer\x2C offset\x2C length)\n// send(bufferOrList\x2C callback)\n// send(bufferOrList)\nSocket.prototype.send = function(buffer\x2C\n                                 offset\x2C\n                                 length\x2C\n                                 port\x2C\n                                 address\x2C\n                                 callback) {\n\n  let list;\n  const state = this[kStateSymbol];\n  const connected = state.connectState === CONNECT_STATE_CONNECTED;\n  if (!connected) {\n    if (address || (port && typeof port !== 'function')) {\n      buffer = sliceBuffer(buffer\x2C offset\x2C length);\n    } else {\n      callback = port;\n      port = offset;\n      address = length;\n    }\n  } else {\n    if (typeof length === 'number') {\n      buffer = sliceBuffer(buffer\x2C offset\x2C length);\n      if (typeof port === 'function') {\n        callback = port;\n        port = null;\n      }\n    } else {\n      callback = offset;\n    }\n\n    if (port || address)\n      throw new ERR_SOCKET_DGRAM_IS_CONNECTED();\n  }\n\n  if (!ArrayIsArray(buffer)) {\n    if (typeof buffer === 'string') {\n      list = [ Buffer.from(buffer) ];\n    } else if (!isArrayBufferView(buffer)) {\n      throw new ERR_INVALID_ARG_TYPE('buffer'\x2C\n                                     ['Buffer'\x2C\n                                      'TypedArray'\x2C\n                                      'DataView'\x2C\n                                      'string']\x2C\n                                     buffer);\n    } else {\n      list = [ buffer ];\n    }\n  } else if (!(list = fixBufferList(buffer))) {\n    throw new ERR_INVALID_ARG_TYPE('buffer list arguments'\x2C\n                                   ['Buffer'\x2C\n                                    'TypedArray'\x2C\n                                    'DataView'\x2C\n                                    'string']\x2C\n                                   buffer);\n  }\n\n  if (!connected)\n    port = validatePort(port\x2C 'Port'\x2C { allowZero: false });\n\n  // Normalize callback so it's either a function or undefined but not anything\n  // else.\n  if (typeof callback !== 'function')\n    callback = undefined;\n\n  if (typeof address === 'function') {\n    callback = address;\n    address = undefined;\n  } else if (address && typeof address !== 'string') {\n    throw new ERR_INVALID_ARG_TYPE('address'\x2C ['string'\x2C 'falsy']\x2C address);\n  }\n\n  healthCheck(this);\n\n  if (state.bindState === BIND_STATE_UNBOUND)\n    this.bind({ port: 0\x2C exclusive: true }\x2C null);\n\n  if (list.length === 0)\n    ArrayPrototypePush(list\x2C Buffer.alloc(0));\n\n  // If the socket hasn't been bound yet\x2C push the outbound packet onto the\n  // send queue and send after binding is complete.\n  if (state.bindState !== BIND_STATE_BOUND) {\n    enqueue(this\x2C FunctionPrototypeBind(this.send\x2C this\x2C\n                                        list\x2C port\x2C address\x2C callback));\n    return;\n  }\n\n  const afterDns = (ex\x2C ip) => {\n    defaultTriggerAsyncIdScope(\n      this[async_id_symbol]\x2C\n      doSend\x2C\n      ex\x2C this\x2C ip\x2C list\x2C address\x2C port\x2C callback\n    );\n  };\n\n  if (!connected) {\n    state.handle.lookup(address\x2C afterDns);\n  } else {\n    afterDns(null\x2C null);\n  }\n};\n\nfunction doSend(ex\x2C self\x2C ip\x2C list\x2C address\x2C port\x2C callback) {\n  const state = self[kStateSymbol];\n\n  if (ex) {\n    if (typeof callback === 'function') {\n      process.nextTick(callback\x2C ex);\n      return;\n    }\n\n    process.nextTick(() => self.emit('error'\x2C ex));\n    return;\n  } else if (!state.handle) {\n    return;\n  }\n\n  const req = new SendWrap();\n  req.list = list;  // Keep reference alive.\n  req.address = address;\n  req.port = port;\n  if (callback) {\n    req.callback = callback;\n    req.oncomplete = afterSend;\n  }\n\n  let err;\n  if (port)\n    err = state.handle.send(req\x2C list\x2C list.length\x2C port\x2C ip\x2C !!callback);\n  else\n    err = state.handle.send(req\x2C list\x2C list.length\x2C !!callback);\n\n  if (err >= 1) {\n    // Synchronous finish. The return code is msg_length + 1 so that we can\n    // distinguish between synchronous success and asynchronous success.\n    if (callback)\n      process.nextTick(callback\x2C null\x2C err - 1);\n    return;\n  }\n\n  if (err && callback) {\n    // Don't emit as error\x2C dgram_legacy.js compatibility\n    const ex = exceptionWithHostPort(err\x2C 'send'\x2C address\x2C port);\n    process.nextTick(callback\x2C ex);\n  }\n}\n\nfunction afterSend(err\x2C sent) {\n  if (err) {\n    err = exceptionWithHostPort(err\x2C 'send'\x2C this.address\x2C this.port);\n  } else {\n    err = null;\n  }\n\n  this.callback(err\x2C sent);\n}\n\nSocket.prototype.close = function(callback) {\n  const state = this[kStateSymbol];\n  const queue = state.queue;\n\n  if (typeof callback === 'function')\n    this.on('close'\x2C callback);\n\n  if (queue !== undefined) {\n    ArrayPrototypePush(queue\x2C FunctionPrototypeBind(this.close\x2C this));\n    return this;\n  }\n\n  healthCheck(this);\n  stopReceiving(this);\n  state.handle.close();\n  state.handle = null;\n  defaultTriggerAsyncIdScope(this[async_id_symbol]\x2C\n                             process.nextTick\x2C\n                             socketCloseNT\x2C\n                             this);\n\n  return this;\n};\n\n\nfunction socketCloseNT(self) {\n  self.emit('close');\n}\n\n\nSocket.prototype.address = function() {\n  healthCheck(this);\n\n  const out = {};\n  const err = this[kStateSymbol].handle.getsockname(out);\n  if (err) {\n    throw errnoException(err\x2C 'getsockname');\n  }\n\n  return out;\n};\n\nSocket.prototype.remoteAddress = function() {\n  healthCheck(this);\n\n  const state = this[kStateSymbol];\n  if (state.connectState !== CONNECT_STATE_CONNECTED)\n    throw new ERR_SOCKET_DGRAM_NOT_CONNECTED();\n\n  const out = {};\n  const err = state.handle.getpeername(out);\n  if (err)\n    throw errnoException(err\x2C 'getpeername');\n\n  return out;\n};\n\n\nSocket.prototype.setBroadcast = function(arg) {\n  const err = this[kStateSymbol].handle.setBroadcast(arg ? 1 : 0);\n  if (err) {\n    throw errnoException(err\x2C 'setBroadcast');\n  }\n};\n\n\nSocket.prototype.setTTL = function(ttl) {\n  validateNumber(ttl\x2C 'ttl');\n\n  const err = this[kStateSymbol].handle.setTTL(ttl);\n  if (err) {\n    throw errnoException(err\x2C 'setTTL');\n  }\n\n  return ttl;\n};\n\n\nSocket.prototype.setMulticastTTL = function(ttl) {\n  validateNumber(ttl\x2C 'ttl');\n\n  const err = this[kStateSymbol].handle.setMulticastTTL(ttl);\n  if (err) {\n    throw errnoException(err\x2C 'setMulticastTTL');\n  }\n\n  return ttl;\n};\n\n\nSocket.prototype.setMulticastLoopback = function(arg) {\n  const err = this[kStateSymbol].handle.setMulticastLoopback(arg ? 1 : 0);\n  if (err) {\n    throw errnoException(err\x2C 'setMulticastLoopback');\n  }\n\n  return arg; // 0.4 compatibility\n};\n\n\nSocket.prototype.setMulticastInterface = function(interfaceAddress) {\n  healthCheck(this);\n  validateString(interfaceAddress\x2C 'interfaceAddress');\n\n  const err = this[kStateSymbol].handle.setMulticastInterface(interfaceAddress);\n  if (err) {\n    throw errnoException(err\x2C 'setMulticastInterface');\n  }\n};\n\nSocket.prototype.addMembership = function(multicastAddress\x2C\n                                          interfaceAddress) {\n  healthCheck(this);\n\n  if (!multicastAddress) {\n    throw new ERR_MISSING_ARGS('multicastAddress');\n  }\n\n  const { handle } = this[kStateSymbol];\n  const err = handle.addMembership(multicastAddress\x2C interfaceAddress);\n  if (err) {\n    throw errnoException(err\x2C 'addMembership');\n  }\n};\n\n\nSocket.prototype.dropMembership = function(multicastAddress\x2C\n                                           interfaceAddress) {\n  healthCheck(this);\n\n  if (!multicastAddress) {\n    throw new ERR_MISSING_ARGS('multicastAddress');\n  }\n\n  const { handle } = this[kStateSymbol];\n  const err = handle.dropMembership(multicastAddress\x2C interfaceAddress);\n  if (err) {\n    throw errnoException(err\x2C 'dropMembership');\n  }\n};\n\nSocket.prototype.addSourceSpecificMembership = function(sourceAddress\x2C\n                                                        groupAddress\x2C\n                                                        interfaceAddress) {\n  healthCheck(this);\n\n  validateString(sourceAddress\x2C 'sourceAddress');\n  validateString(groupAddress\x2C 'groupAddress');\n\n  const err =\n    this[kStateSymbol].handle.addSourceSpecificMembership(sourceAddress\x2C\n                                                          groupAddress\x2C\n                                                          interfaceAddress);\n  if (err) {\n    throw errnoException(err\x2C 'addSourceSpecificMembership');\n  }\n};\n\n\nSocket.prototype.dropSourceSpecificMembership = function(sourceAddress\x2C\n                                                         groupAddress\x2C\n                                                         interfaceAddress) {\n  healthCheck(this);\n\n  validateString(sourceAddress\x2C 'sourceAddress');\n  validateString(groupAddress\x2C 'groupAddress');\n\n  const err =\n    this[kStateSymbol].handle.dropSourceSpecificMembership(sourceAddress\x2C\n                                                           groupAddress\x2C\n                                                           interfaceAddress);\n  if (err) {\n    throw errnoException(err\x2C 'dropSourceSpecificMembership');\n  }\n};\n\n\nfunction healthCheck(socket) {\n  if (!socket[kStateSymbol].handle) {\n    // Error message from dgram_legacy.js.\n    throw new ERR_SOCKET_DGRAM_NOT_RUNNING();\n  }\n}\n\n\nfunction stopReceiving(socket) {\n  const state = socket[kStateSymbol];\n\n  if (!state.receiving)\n    return;\n\n  state.handle.recvStop();\n  state.receiving = false;\n}\n\n\nfunction onMessage(nread\x2C handle\x2C buf\x2C rinfo) {\n  const self = handle[owner_symbol];\n  if (nread < 0) {\n    return self.emit('error'\x2C errnoException(nread\x2C 'recvmsg'));\n  }\n  rinfo.size = buf.length; // compatibility\n  self.emit('message'\x2C buf\x2C rinfo);\n}\n\n\nSocket.prototype.ref = function() {\n  const handle = this[kStateSymbol].handle;\n\n  if (handle)\n    handle.ref();\n\n  return this;\n};\n\n\nSocket.prototype.unref = function() {\n  const handle = this[kStateSymbol].handle;\n\n  if (handle)\n    handle.unref();\n\n  return this;\n};\n\n\nSocket.prototype.setRecvBufferSize = function(size) {\n  bufferSize(this\x2C size\x2C RECV_BUFFER);\n};\n\n\nSocket.prototype.setSendBufferSize = function(size) {\n  bufferSize(this\x2C size\x2C SEND_BUFFER);\n};\n\n\nSocket.prototype.getRecvBufferSize = function() {\n  return bufferSize(this\x2C 0\x2C RECV_BUFFER);\n};\n\n\nSocket.prototype.getSendBufferSize = function() {\n  return bufferSize(this\x2C 0\x2C SEND_BUFFER);\n};\n\n\n// Deprecated private APIs.\nObjectDefineProperty(Socket.prototype\x2C '_handle'\x2C {\n  get: deprecate(function() {\n    return this[kStateSymbol].handle;\n  }\x2C 'Socket.prototype._handle is deprecated'\x2C 'DEP0112')\x2C\n  set: deprecate(function(val) {\n    this[kStateSymbol].handle = val;\n  }\x2C 'Socket.prototype._handle is deprecated'\x2C 'DEP0112')\n});\n\n\nObjectDefineProperty(Socket.prototype\x2C '_receiving'\x2C {\n  get: deprecate(function() {\n    return this[kStateSymbol].receiving;\n  }\x2C 'Socket.prototype._receiving is deprecated'\x2C 'DEP0112')\x2C\n  set: deprecate(function(val) {\n    this[kStateSymbol].receiving = val;\n  }\x2C 'Socket.prototype._receiving is deprecated'\x2C 'DEP0112')\n});\n\n\nObjectDefineProperty(Socket.prototype\x2C '_bindState'\x2C {\n  get: deprecate(function() {\n    return this[kStateSymbol].bindState;\n  }\x2C 'Socket.prototype._bindState is deprecated'\x2C 'DEP0112')\x2C\n  set: deprecate(function(val) {\n    this[kStateSymbol].bindState = val;\n  }\x2C 'Socket.prototype._bindState is deprecated'\x2C 'DEP0112')\n});\n\n\nObjectDefineProperty(Socket.prototype\x2C '_queue'\x2C {\n  get: deprecate(function() {\n    return this[kStateSymbol].queue;\n  }\x2C 'Socket.prototype._queue is deprecated'\x2C 'DEP0112')\x2C\n  set: deprecate(function(val) {\n    this[kStateSymbol].queue = val;\n  }\x2C 'Socket.prototype._queue is deprecated'\x2C 'DEP0112')\n});\n\n\nObjectDefineProperty(Socket.prototype\x2C '_reuseAddr'\x2C {\n  get: deprecate(function() {\n    return this[kStateSymbol].reuseAddr;\n  }\x2C 'Socket.prototype._reuseAddr is deprecated'\x2C 'DEP0112')\x2C\n  set: deprecate(function(val) {\n    this[kStateSymbol].reuseAddr = val;\n  }\x2C 'Socket.prototype._reuseAddr is deprecated'\x2C 'DEP0112')\n});\n\n\nSocket.prototype._healthCheck = deprecate(function() {\n  healthCheck(this);\n}\x2C 'Socket.prototype._healthCheck() is deprecated'\x2C 'DEP0112');\n\n\nSocket.prototype._stopReceiving = deprecate(function() {\n  stopReceiving(this);\n}\x2C 'Socket.prototype._stopReceiving() is deprecated'\x2C 'DEP0112');\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(UDP.prototype\x2C 'owner'\x2C {\n  get() { return this[owner_symbol]; }\x2C\n  set(v) { return this[owner_symbol] = v; }\n});\n\n\nmodule.exports = {\n  _createSocketHandle: deprecate(\n    _createSocketHandle\x2C\n    'dgram._createSocketHandle() is deprecated'\x2C\n    'DEP0112'\n  )\x2C\n  createSocket\x2C\n  Socket\n};\n
code-source-info,0x287e8b1f5a4e,191,0,27515,C0O0C4O27515,,
code-creation,Function,10,362811,0x287e8b1f79be,1498, node:dgram:1:1,0x287e8b1f59b8,~
code-source-info,0x287e8b1f79be,191,0,27515,C0O0C273O1159C279O1168C285O1184C291O1206C297O1231C303O1256C308O1280C313O1304C319O1351C325O1351C330O1443C336O1443C341O1389C347O1405C352O1428C358O1498C361O1498C366O1478C372O1791C377O1533C383O1557C389O1577C395O1605C401O1635C407O1661C413O1694C419O1728C425O1760C431O1896C437O1896C442O1808C448O1819C454O1842C460O1860C466O1878C472O1947C478O1947C483O1936C489O1988C495O1988C500O1974C505O2044C511O2044C516O2022C522O2097C528O2097C532O2097C534O2203C540O2203C545O2126C556O2167C562O2184C568O2265C571O2265C576O2293C581O2244C587O2363C590O2363C595O2363C600O2322C606O2343C611O2350C617O2420C618O2420C620O2450C622O2450C624O2478C626O2478C628O2517C629O2517C631O2553C633O2553C635O2588C637O2588C639O2612C640O2612C642O2638C643O2638C645O2678C646O2678C648O2813C652O2806C654O2866C658O2859C660O4187C663O4215C671O4239C676O4187C681O4251C687O4251C692O6160C695O6167C704O6182C708O9783C711O9790C720O9808C724O11618C727O11625C736O11646C740O12034C743O12041C752O12058C756O15025C759O15032C768O15047C772O19339C775O19346C784O19362C788O19993C791O20000C800O20018C804O20213C807O20220C816O20244C820O20560C823O20567C832O20590C836O20744C839O20751C848O20768C852O20948C855O20955C864O20981C868O21179C871O21186C880O21217C884O21423C887O21430C896O21462C900O21729C903O21736C912O21760C916O22140C919O22147C928O22172C932O22554C935O22561C944O22599C948O23212C951O23219C960O23258C964O24467C967O24474C976O24488C980O24601C983O24608C992O24624C996O24739C999O24746C1008O24774C1012O24837C1015O24844C1024O24872C1028O24935C1031O24942C1040O24970C1044O25033C1047O25040C1056O25068C1060O25159C1063O25187C1076O25218C1087O25218C1096O25345C1107O25345C1116O25159C1121O25472C1124O25500C1137O25534C1148O25534C1157O25667C1168O25667C1177O25472C1182O25800C1185O25828C1198O25862C1209O25862C1218O25995C1229O25995C1238O25800C1243O26128C1246O26156C1259O26186C1270O26186C1279O26311C1290O26311C1299O26128C1304O26436C1307O26464C1320O26498C1331O26498C1340O26631C1351O26631C1360O26436C1365O26764C1368O26771C1373O26796C1384O26796C1389O26794C1393O26906C1396O26913C1401O26940C1412O26940C1417O26938C1421O27229C1434O27253C1442O27293C1450O27204C1455O27341C1469O27383C1480O27489C1486O27505C1492O27356C1497O27514,,
tick,0x7efc336415e0,362965,1,0xb515a0,3,0xd44a10,0x13b40bab9d0c,0x13b40bab8ffd,0x287e8b1f1a45,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1ed052,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1ea6c1,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e9073,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e8c02,0x287e8b1e890d,0x274d30f590ea
code-creation,Function,4,363020,0x1413735ac20,62720,wasm-function[68],0x249ffe44,*
tick,0x7efc3373d97a,363038,0,0x0,0,0x11f2330,0x287e8b1f79bd,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1f1a45,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1ed052,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1ea6c1,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e9073,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e8c02,0x287e8b1e890d,0x274d30f590ea
code-creation,Eval,10,363187,0x287e8b1fae36,5, node:internal/dgram:1:1,0x287e8b1fac20,~
script-source,192,node:internal/dgram,'use strict';\n\nconst {\n  FunctionPrototypeBind\x2C\n  Symbol\x2C\n} = primordials;\n\nconst { codes } = require('internal/errors');\nconst { UDP } = internalBinding('udp_wrap');\nconst { guessHandleType } = internalBinding('util');\nconst {\n  isInt32\x2C\n  validateFunction\x2C\n} = require('internal/validators');\nconst { UV_EINVAL } = internalBinding('uv');\nconst {\n  ERR_SOCKET_BAD_TYPE\x2C\n} = codes;\nconst kStateSymbol = Symbol('state symbol');\nlet dns;  // Lazy load for startup performance.\n\n\nfunction lookup4(lookup\x2C address\x2C callback) {\n  return lookup(address || '127.0.0.1'\x2C 4\x2C callback);\n}\n\n\nfunction lookup6(lookup\x2C address\x2C callback) {\n  return lookup(address || '::1'\x2C 6\x2C callback);\n}\n\nfunction newHandle(type\x2C lookup) {\n  if (lookup === undefined) {\n    if (dns === undefined) {\n      dns = require('dns');\n    }\n\n    lookup = dns.lookup;\n  } else {\n    validateFunction(lookup\x2C 'lookup');\n  }\n\n  if (type === 'udp4') {\n    const handle = new UDP();\n\n    handle.lookup = FunctionPrototypeBind(lookup4\x2C handle\x2C lookup);\n    return handle;\n  }\n\n  if (type === 'udp6') {\n    const handle = new UDP();\n\n    handle.lookup = FunctionPrototypeBind(lookup6\x2C handle\x2C lookup);\n    handle.bind = handle.bind6;\n    handle.connect = handle.connect6;\n    handle.send = handle.send6;\n    return handle;\n  }\n\n  throw new ERR_SOCKET_BAD_TYPE();\n}\n\n\nfunction _createSocketHandle(address\x2C port\x2C addressType\x2C fd\x2C flags) {\n  const handle = newHandle(addressType);\n  let err;\n\n  if (isInt32(fd) && fd > 0) {\n    const type = guessHandleType(fd);\n    if (type !== 'UDP') {\n      err = UV_EINVAL;\n    } else {\n      err = handle.open(fd);\n    }\n  } else if (port || address) {\n    err = handle.bind(address\x2C port || 0\x2C flags);\n  }\n\n  if (err) {\n    handle.close();\n    return err;\n  }\n\n  return handle;\n}\n\n\nmodule.exports = {\n  kStateSymbol\x2C\n  _createSocketHandle\x2C\n  newHandle\n};\n
code-source-info,0x287e8b1fae36,192,0,1849,C0O0C4O1849,,
code-creation,Function,10,363285,0x287e8b1fb10e,196, node:internal/dgram:1:1,0x287e8b1fada0,~
code-source-info,0x287e8b1fb10e,192,0,1849,C0O0C56O25C62O50C67O94C73O94C78O84C83O138C86O138C91O130C97O195C100O195C105O175C111O263C117O263C122O230C128O241C134O317C137O317C142O303C148O350C154O403C157O403C162O431C163O431C165O1776C172O1797C178O1813C184O1836C190O1791C195O1848,,
code-creation,Eval,10,363714,0x287e8b1fe37e,5, node:internal/socket_list:1:1,0x287e8b1fe218,~
script-source,193,node:internal/socket_list,'use strict';\n\nconst { ERR_CHILD_CLOSED_BEFORE_REPLY } = require('internal/errors').codes;\n\nconst EventEmitter = require('events');\n\n// This object keeps track of the sockets that are sent\nclass SocketListSend extends EventEmitter {\n  constructor(child\x2C key) {\n    super();\n    this.key = key;\n    this.child = child;\n    child.once('exit'\x2C () => this.emit('exit'\x2C this));\n  }\n\n  _request(msg\x2C cmd\x2C swallowErrors\x2C callback) {\n    const self = this;\n\n    if (!this.child.connected) return onclose();\n    this.child._send(msg\x2C undefined\x2C swallowErrors);\n\n    function onclose() {\n      self.child.removeListener('internalMessage'\x2C onreply);\n      callback(new ERR_CHILD_CLOSED_BEFORE_REPLY());\n    }\n\n    function onreply(msg) {\n      if (!(msg.cmd === cmd && msg.key === self.key)) return;\n      self.child.removeListener('disconnect'\x2C onclose);\n      self.child.removeListener('internalMessage'\x2C onreply);\n\n      callback(null\x2C msg);\n    }\n\n    this.child.once('disconnect'\x2C onclose);\n    this.child.on('internalMessage'\x2C onreply);\n  }\n\n  close(callback) {\n    this._request({\n      cmd: 'NODE_SOCKET_NOTIFY_CLOSE'\x2C\n      key: this.key\n    }\x2C 'NODE_SOCKET_ALL_CLOSED'\x2C true\x2C callback);\n  }\n\n  getConnections(callback) {\n    this._request({\n      cmd: 'NODE_SOCKET_GET_COUNT'\x2C\n      key: this.key\n    }\x2C 'NODE_SOCKET_COUNT'\x2C false\x2C (err\x2C msg) => {\n      if (err) return callback(err);\n      callback(null\x2C msg.count);\n    });\n  }\n}\n\n\n// This object keeps track of the sockets that are received\nclass SocketListReceive extends EventEmitter {\n  constructor(child\x2C key) {\n    super();\n\n    this.connections = 0;\n    this.key = key;\n    this.child = child;\n\n    function onempty(self) {\n      if (!self.child.connected) return;\n\n      self.child._send({\n        cmd: 'NODE_SOCKET_ALL_CLOSED'\x2C\n        key: self.key\n      }\x2C undefined\x2C true);\n    }\n\n    this.child.on('internalMessage'\x2C (msg) => {\n      if (msg.key !== this.key) return;\n\n      if (msg.cmd === 'NODE_SOCKET_NOTIFY_CLOSE') {\n        // Already empty\n        if (this.connections === 0) return onempty(this);\n\n        // Wait for sockets to get closed\n        this.once('empty'\x2C onempty);\n      } else if (msg.cmd === 'NODE_SOCKET_GET_COUNT') {\n        if (!this.child.connected) return;\n        this.child._send({\n          cmd: 'NODE_SOCKET_COUNT'\x2C\n          key: this.key\x2C\n          count: this.connections\n        });\n      }\n    });\n  }\n\n  add(obj) {\n    this.connections++;\n\n    // Notify the previous owner of the socket about its state change\n    obj.socket.once('close'\x2C () => {\n      this.connections--;\n\n      if (this.connections === 0) this.emit('empty'\x2C this);\n    });\n  }\n}\n\nmodule.exports = { SocketListSend\x2C SocketListReceive };\n
code-source-info,0x287e8b1fe37e,193,0,2705,C0O0C4O2705,,
code-creation,Function,10,363842,0x287e8b1fe9ce,126, node:internal/socket_list:1:1,0x287e8b1fe2e8,~
code-source-info,0x287e8b1fe9ce,193,0,2705,C0O0C8O57C11O57C16O83C21O23C27O113C30O113C35O218C73O1525C101O2649C108O2668C114O2684C120O2664C125O2704,,
code-creation,LazyCompile,10,364088,0x287e8b1ff76e,14,customPromiseExecFunction node:child_process:231:35,0x287e8b1ec980,~
code-source-info,0x287e8b1ff76e,189,6605,6969,C0O6605C9O6619C13O6967,,
tick,0x7efc339d9d60,364132,0,0x0,3,0x11e9ce0,0x287e8b1ed08a,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1ea6c1,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e9073,0x13b40bab9d2d,0x13b40bab8ffd,0x287e8b1e8c02,0x287e8b1e890d,0x274d30f590ea
code-creation,Eval,10,364290,0x24c70ce918b6,5, node:internal/cluster/round_robin_handle:1:1,0x24c70ce916d0,~
script-source,194,node:internal/cluster/round_robin_handle,'use strict';\n\nconst {\n  ArrayIsArray\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeShift\x2C\n  Boolean\x2C\n  SafeMap\x2C\n} = primordials;\n\nconst assert = require('internal/assert');\nconst net = require('net');\nconst { sendHelper } = require('internal/cluster/utils');\nconst { constants } = internalBinding('tcp_wrap');\n\nmodule.exports = RoundRobinHandle;\n\nfunction RoundRobinHandle(key\x2C address\x2C { port\x2C fd\x2C flags }) {\n  this.key = key;\n  this.all = new SafeMap();\n  this.free = new SafeMap();\n  this.handles = [];\n  this.handle = null;\n  this.server = net.createServer(assert.fail);\n\n  if (fd >= 0)\n    this.server.listen({ fd });\n  else if (port >= 0) {\n    this.server.listen({\n      port\x2C\n      host: address\x2C\n      // Currently\x2C net module only supports `ipv6Only` option in `flags`.\n      ipv6Only: Boolean(flags & constants.UV_TCP_IPV6ONLY)\x2C\n    });\n  } else\n    this.server.listen(address);  // UNIX socket path.\n\n  this.server.once('listening'\x2C () => {\n    this.handle = this.server._handle;\n    this.handle.onconnection = (err\x2C handle) => this.distribute(err\x2C handle);\n    this.server._handle = null;\n    this.server = null;\n  });\n}\n\nRoundRobinHandle.prototype.add = function(worker\x2C send) {\n  assert(this.all.has(worker.id) === false);\n  this.all.set(worker.id\x2C worker);\n\n  const done = () => {\n    if (this.handle.getsockname) {\n      const out = {};\n      this.handle.getsockname(out);\n      // TODO(bnoordhuis) Check err.\n      send(null\x2C { sockname: out }\x2C null);\n    } else {\n      send(null\x2C null\x2C null);  // UNIX socket.\n    }\n\n    this.handoff(worker);  // In case there are connections pending.\n  };\n\n  if (this.server === null)\n    return done();\n\n  // Still busy binding.\n  this.server.once('listening'\x2C done);\n  this.server.once('error'\x2C (err) => {\n    send(err.errno\x2C null);\n  });\n};\n\nRoundRobinHandle.prototype.remove = function(worker) {\n  const existed = this.all.delete(worker.id);\n\n  if (!existed)\n    return false;\n\n  this.free.delete(worker.id);\n\n  if (this.all.size !== 0)\n    return false;\n\n  for (const handle of this.handles) {\n    handle.close();\n  }\n  this.handles = [];\n\n  this.handle.close();\n  this.handle = null;\n  return true;\n};\n\nRoundRobinHandle.prototype.distribute = function(err\x2C handle) {\n  ArrayPrototypePush(this.handles\x2C handle);\n  // eslint-disable-next-line node-core/no-array-destructuring\n  const [ workerEntry ] = this.free; // this.free is a SafeMap\n\n  if (ArrayIsArray(workerEntry)) {\n    const { 0: workerId\x2C 1: worker } = workerEntry;\n    this.free.delete(workerId);\n    this.handoff(worker);\n  }\n};\n\nRoundRobinHandle.prototype.handoff = function(worker) {\n  if (!this.all.has(worker.id)) {\n    return;  // Worker is closing (or has closed) the server.\n  }\n\n  const handle = ArrayPrototypeShift(this.handles);\n\n  if (handle === undefined) {\n    this.free.set(worker.id\x2C worker);  // Add to ready queue again.\n    return;\n  }\n\n  const message = { act: 'newconn'\x2C key: this.key };\n\n  sendHelper(worker.process\x2C message\x2C handle\x2C (reply) => {\n    if (reply.accepted)\n      handle.close();\n    else\n      this.distribute(0\x2C handle);  // Worker is shutting down. Send to another.\n\n    this.handoff(worker);\n  });\n};\n
code-source-info,0x24c70ce918b6,194,0,3155,C0O0C4O3155,,
code-creation,Function,10,364431,0x24c70ce91c6e,173, node:internal/cluster/round_robin_handle:1:1,0x24c70ce91820,~
code-source-info,0x24c70ce91c6e,194,0,3155,C0O0C37O25C43O41C49O63C55O86C61O97C67O139C70O139C74O139C76O179C79O179C83O179C85O218C88O218C93O203C99O275C102O275C107O261C113O305C115O320C119O1146C128O1160C132O1811C141O1828C145O2175C154O2196C158O2563C167O2581C172O3154,,
code-creation,Eval,10,364555,0x24c70ce92506,5, node:internal/cluster/utils:1:1,0x24c70ce92380,~
script-source,195,node:internal/cluster/utils,'use strict';\n\nconst {\n  ReflectApply\x2C\n  SafeMap\x2C\n} = primordials;\n\nmodule.exports = {\n  sendHelper\x2C\n  internal\n};\n\nconst callbacks = new SafeMap();\nlet seq = 0;\n\nfunction sendHelper(proc\x2C message\x2C handle\x2C cb) {\n  if (!proc.connected)\n    return false;\n\n  // Mark message as internal. See INTERNAL_PREFIX in lib/child_process.js\n  message = { cmd: 'NODE_CLUSTER'\x2C ...message\x2C seq };\n\n  if (typeof cb === 'function')\n    callbacks.set(seq\x2C cb);\n\n  seq += 1;\n  return proc.send(message\x2C handle);\n}\n\n// Returns an internalMessage listener that hands off normal messages\n// to the callback but intercepts and redirects ACK messages.\nfunction internal(worker\x2C cb) {\n  return function onInternalMessage(message\x2C handle) {\n    if (message.cmd !== 'NODE_CLUSTER')\n      return;\n\n    let fn = cb;\n\n    if (message.ack !== undefined) {\n      const callback = callbacks.get(message.ack);\n\n      if (callback !== undefined) {\n        fn = callback;\n        callbacks.delete(message.ack);\n      }\n    }\n\n    ReflectApply(fn\x2C worker\x2C arguments);\n  };\n}\n
code-source-info,0x24c70ce92506,195,0,1039,C0O0C4O1039,,
code-creation,Function,10,364611,0x24c70ce926d6,72, node:internal/cluster/utils:1:1,0x24c70ce92470,~
code-source-info,0x24c70ce926d6,195,0,1039,C0O0C24O25C30O41C35O68C42O89C48O103C54O83C58O134C60O134C65O134C67O159C68O159C71O1038,,
code-creation,Eval,10,364733,0x24c70ce92cee,5, node:internal/cluster/shared_handle:1:1,0x24c70ce92b58,~
script-source,196,node:internal/cluster/shared_handle,'use strict';\nconst { SafeMap } = primordials;\nconst assert = require('internal/assert');\nconst dgram = require('internal/dgram');\nconst net = require('net');\n\nmodule.exports = SharedHandle;\n\nfunction SharedHandle(key\x2C address\x2C { port\x2C addressType\x2C fd\x2C flags }) {\n  this.key = key;\n  this.workers = new SafeMap();\n  this.handle = null;\n  this.errno = 0;\n\n  let rval;\n  if (addressType === 'udp4' || addressType === 'udp6')\n    rval = dgram._createSocketHandle(address\x2C port\x2C addressType\x2C fd\x2C flags);\n  else\n    rval = net._createServerHandle(address\x2C port\x2C addressType\x2C fd\x2C flags);\n\n  if (typeof rval === 'number')\n    this.errno = rval;\n  else\n    this.handle = rval;\n}\n\nSharedHandle.prototype.add = function(worker\x2C send) {\n  assert(!this.workers.has(worker.id));\n  this.workers.set(worker.id\x2C worker);\n  send(this.errno\x2C null\x2C this.handle);\n};\n\nSharedHandle.prototype.remove = function(worker) {\n  if (!this.workers.has(worker.id))\n    return false;\n\n  this.workers.delete(worker.id);\n\n  if (this.workers.size !== 0)\n    return false;\n\n  this.handle.close();\n  this.handle = null;\n  return true;\n};\n
code-source-info,0x24c70ce92cee,196,0,1102,C0O0C4O1102,,
code-creation,Function,10,364792,0x24c70ce92f36,89, node:internal/cluster/shared_handle:1:1,0x24c70ce92c58,~
code-source-info,0x24c70ce92f36,196,0,1102,C0O0C22O22C28O62C31O62C35O62C37O104C40O104C44O104C46O143C49O143C53O143C55O160C57O175C61O685C70O699C74O861C83O878C88O1101,,
code-creation,Eval,10,364900,0x24c70ce9350e,5, node:internal/cluster/worker:1:1,0x24c70ce93388,~
script-source,197,node:internal/cluster/worker,'use strict';\n\nconst {\n  ObjectSetPrototypeOf\x2C\n  ReflectApply\x2C\n} = primordials;\n\nconst EventEmitter = require('events');\n\nmodule.exports = Worker;\n\n// Common Worker implementation shared between the cluster primary and workers.\nfunction Worker(options) {\n  if (!(this instanceof Worker))\n    return new Worker(options);\n\n  ReflectApply(EventEmitter\x2C this\x2C []);\n\n  if (options === null || typeof options !== 'object')\n    options = {};\n\n  this.exitedAfterDisconnect = undefined;\n\n  this.state = options.state || 'none';\n  this.id = options.id | 0;\n\n  if (options.process) {\n    this.process = options.process;\n    this.process.on('error'\x2C (code\x2C signal) =>\n      this.emit('error'\x2C code\x2C signal)\n    );\n    this.process.on('message'\x2C (message\x2C handle) =>\n      this.emit('message'\x2C message\x2C handle)\n    );\n  }\n}\n\nObjectSetPrototypeOf(Worker.prototype\x2C EventEmitter.prototype);\nObjectSetPrototypeOf(Worker\x2C EventEmitter);\n\nWorker.prototype.kill = function() {\n  ReflectApply(this.destroy\x2C this\x2C arguments);\n};\n\nWorker.prototype.send = function() {\n  return ReflectApply(this.process.send\x2C this.process\x2C arguments);\n};\n\nWorker.prototype.isDead = function() {\n  return this.process.exitCode != null || this.process.signalCode != null;\n};\n\nWorker.prototype.isConnected = function() {\n  return this.process.connected;\n};\n
code-source-info,0x24c70ce9350e,197,0,1315,C0O0C4O1315,,
code-creation,Function,10,364973,0x24c70ce93886,141, node:internal/cluster/worker:1:1,0x24c70ce93478,~
code-source-info,0x24c70ce93886,197,0,1315,C0O0C17O25C22O49C28O102C31O102C35O102C37O122C39O137C43O812C46O840C54O864C59O812C64O876C70O876C75O921C78O928C87O943C91O1009C94O1016C103O1031C107O1117C110O1124C119O1141C123O1235C126O1242C135O1264C140O1314,,
code-creation,LazyCompile,10,365191,0x24c70ce9424e,443,setupListenHandle node:net:1268:27,0x1c78303fdcd8,~
code-source-info,0x24c70ce9424e,117,33190,35515,C0O33243C23O33243C28O33460C34O33475C42O33475C48O33541C56O33541C60O33602C62O33690C72O33738C77O33764C92O33745C98O33811C102O33851C104O33872C110O33909C116O33949C122O33986C126O34022C130O34047C148O34054C154O34118C160O34170C177O34170C183O34232C186O34240C200O34240C205O34282C206O34289C207O34300C209O34313C213O34328C215O34333C221O34371C226O34352C230O34350C234O34388C241O34409C245O34432C252O34440C257O34454C261O34686C266O34694C273O34701C280O34694C286O34721C288O34747C305O34747C311O34811C316O34819C321O34819C325O34832C326O34845C330O34857C337O34889C339O34888C346O34946C360O34857C365O35077C366O35084C367O35162C369O35196C375O35202C381O35212C387O35218C390O35182C394O35306C400O35323C405O35323C409O35335C416O35367C418O35366C425O35422C436O35335C442O35514,,
tick,0x7efc336c02cf,365252,0,0x0,3,0x11e9ce0,0x287e8b1e8c3e,0x287e8b1e890d,0x274d30f590ea
code-creation,LazyCompile,10,365273,0x24c70ce945e6,10, node:net:39:63,0x1c78303fdf58,~
code-source-info,0x24c70ce945e6,117,1473,1498,C0O1485C2O1491C9O1497,,
code-creation,LazyCompile,10,365364,0x24c70ce94836,379,createServerHandle node:net:1210:28,0x1c78303fdc88,~
code-source-info,0x24c70ce94836,117,31737,33162,C0O31791C2O31867C4O31890C6O31899C13O31932C21O31956C26O31965C35O31963C45O32078C58O32115C66O32078C71O32131C77O32148C78O32173C83O32173C89O32187C91O32202C93O32213C94O32219C101O32227C106O32239C108O32219C114O32255C116O32264C123O32286C128O32300C135O32318C138O32332C145O32309C151O32345C157O32386C165O32409C170O32413C175O32386C180O32449C185O32454C191O32495C196O32495C203O32556C210O32573C213O32586C220O32565C226O32599C228O32620C234O32635C238O32643C240O32656C250O32673C255O32656C260O32696C264O32766C271O32772C283O32766C289O32811C291O32837C296O32837C300O32882C305O32908C308O32889C313O32933C316O32953C318O32969C323O32997C340O32997C348O33058C353O33058C360O33092C364O33114C369O33114C373O33127C375O33138C376O33146C378O33160,,
code-creation,LazyCompile,10,365507,0x24c70ce94c06,121,defaultTriggerAsyncIdScope node:internal/async_hooks:443:36,0x30ec9dbb9458,~
code-source-info,0x24c70ce94c06,24,15287,15745,C0O15287C11O15324C15O15375C22O15375C28O15393C29O15508C36O15524C38O15523C42O15551C49O15567C54O15591C61O15635C68O15635C86O15672C93O15688C98O15712C120O15744,,
code-creation,LazyCompile,10,365592,0x24c70ce94dee,21,emitListeningNT node:net:1346:25,0x1c78303fdd78,~
code-source-info,0x24c70ce94dee,117,35671,35762,C0O35724C6O35742C14O35742C20O35761,,
code-creation,LazyCompile,10,365633,0x24c70ce94f36,95,onceWrapper node:events:508:21,0x30ec9dbb2610,~
code-source-info,0x24c70ce94f36,13,14738,14982,C0O14738C2O14755C8O14773C13O14780C18O14800C23O14811C28O14780C34O14824C35O14835C39O14861C45O14868C50O14893C55O14902C60O14912C65O14902C70O14920C71O14937C76O14946C81O14957C86O14946C92O14976C94O14981,,
code-creation,LazyCompile,10,365679,0x24c70ce950e6,58, file:///var/www/quadcode.com/build/index.js:221:37,0x1c78303f1568,~
code-source-info,0x24c70ce950e6,114,6263,6337,C0O6272C4O6280C12O6300C19O6307C26O6314C34O6319C38O6327C43O6325C51O6280C57O6336,,
code-creation,LazyCompile,10,365714,0x24c70ce9522e,38,log node:internal/console/constructor:362:6,0xaad66747940,~
code-source-info,0x24c70ce9522e,30,11201,11285,C0O11201C3O11217C5O11222C7O11221C13O11239C18O11256C20O11255C24O11273C30O11238C37O11284,,
code-creation,LazyCompile,10,365742,0x24c70ce95376,50,value node:internal/console/constructor:324:20,0xaad667476e8,~
code-source-info,0x24c70ce95376,30,9768,9940,C0O9796C2O9801C4O9800C8O9826C13O9820C19O9842C24O9842C29O9883C36O9903C44O9890C49O9934,,
code-creation,LazyCompile,10,365763,0x24c70ce9549e,27,get node:internal/console/constructor:206:14,0xaad667473b8,~
code-source-info,0x24c70ce9549e,30,5955,6047,C0O5972C6O5985C9O6001C16O5992C22O6021C26O6035,,
code-creation,LazyCompile,10,365796,0x24c70ce9562e,97,getStdout node:internal/bootstrap/switches/is_main_thread:120:19,0x3fe299d3c4e8,~
code-source-info,0x24c70ce9562e,87,3286,3599,C0O3293C6O3305C10O3319C11O3322C17O3331C24O3329C30O3363C37O3384C40O3391C44O3382C48O3466C55O3482C59O3500C64O3511C70O3524C73O3532C86O3532C92O3583C96O3597,,
code-creation,LazyCompile,10,366011,0x24c70ce9587e,19,_getMaxListeners node:events:274:26,0x30ec9dbb2218,~
code-source-info,0x24c70ce9587e,13,7772,7896,C0O7792C6O7825C9O7845C13O7865C14O7880C18O7894,,
code-creation,RegExp,3,366111,0x7efc24047200,888,^xterm-256
tick,0x7efc337b732f,366376,1,0xbe1990,6,0xd44a10,0x274d30f71df2,0x274d30f710fb,0x274d30f70dd3,0x274d30f70b39,0x274d30f7099c,0x274d30f70652,0x274d30f7031d,0x274d30f6fce1,0x24c70ce9524c,0xc13800,0x24c70ce95119,0x24c70ce94f77,0x27ba8ebceb83,0x24c70ce94dfc,0x274d30f590c1
scavenge,begin,0,442124,1745847819848
new,MemoryChunk,0x2d62980000,262144
new,MemoryChunk,0x74aa2480000,262144
new,MemoryChunk,0x27c312900000,262144
new,MemoryChunk,0xf8ce8cc0000,262144
new,MemoryChunk,0x95b31d80000,262144
tick,0x7efc337b40bd,367698,0,0x0,1
scavenge,end,0,446632,1745847819850
tick,0x7efc336d14b6,7649268,0,0x0,8
code-creation,LazyCompile,10,7649501,0x24c70ce95af6,173,onconnection node:net:1529:22,0x1c78303fdeb8,~
code-source-info,0x24c70ce95af6,117,41464,42104,C0O41503C3O41524C5O41531C7O41530C11O41549C19O41549C23O41575C27O41595C37O41609C43O41609C49O41595C55O41645C56O41652C57O41669C63O41692C68O41713C72O41705C77O41748C82O41748C86O41761C87O41768C88O41791C98O41816C102O41854C110O41893C120O41791C126O41957C132O41974C136O41980C138O41994C142O42004C144O42019C148O42030C153O42030C157O42075C165O42075C172O42103,,
code-creation,LazyCompile,10,7649879,0x24c70ce95e06,71,Socket.read node:net:624:33,0x1c78303fe798,~
code-source-info,0x24c70ce95e06,117,16315,16493,C0O16323C2O16332C4O16331C9O16350C15O16369C21O16392C26O16400C32O16415C35O16415C39O16441C44O16455C49O16462C54O16472C59O16477C64O16477C70O16491,,
code-creation,LazyCompile,10,7650087,0x24c70ce9611e,582,Readable.read node:internal/streams/readable:391:35,0x456580d0a68,~
code-source-info,0x24c70ce9611e,51,12633,16960,C0O12641C8O12641C13O12788C17O12815C24O12833C29O12838C35O12864C43O12868C50O12916C55O12948C58O13040C62O13032C67O13059C70O13081C74O13079C78O13112C79O13118C84O13129C85O13151C89O13333C90O13339C95O13360C101O13390C107O13404C112O13426C117O13442C121O13433C126O13472C132O13479C137O13500C143O13514C151O13548C156O13562C161O13514C166O13584C172O13591C177O13606C183O13619C186O13619C192O13653C195O13653C199O13677C200O13689C201O13697C204O13701C211O13790C212O13796C217O13811C223O13834C229O13841C234O13854C237O13854C241O13877C242O13889C243O15019C248O15035C256O15035C261O15156C267O15163C272O15178C279O15185C283O15197C287O15189C292O15218C294O15237C302O15237C307O15508C313O15523C319O15540C325O15559C331O15583C337O15602C339O15622C347O15622C354O15680C358O15698C366O15698C370O15720C371O15734C375O15746C376O15757C380O15852C386O15859C391O15872C392O15891C396O15942C401O15954C406O15942C411O15975C412O15986C416O16158C422O16173C425O16177C432O16217C434O16224C435O16230C440O16239C443O16245C451O16276C453O16291C457O16342C462O16358C466O16349C469O16334C473O16377C478O16399C485O16415C488O16412C492O16432C498O16463C503O16481C508O16481C514O16509C515O16533C519O16564C525O16571C530O16714C536O16727C537O16746C541O16834C543O16844C548O16859C554O16872C557O16872C561O16898C565O16925C573O16925C579O16947C581O16958,,
tick,0x7efc3363549c,7650243,0,0x0,3,0x11e9ce0,0x24c70ce95e46,0x274d30f60e3b,0x24c70ce95b6e
code-creation,LazyCompile,10,7650279,0x24c70ce965b6,10, node:internal/streams/readable:49:66,0x456580cfd08,~
code-source-info,0x24c70ce965b6,51,1731,1756,C0O1743C2O1749C9O1755,,
code-creation,LazyCompile,10,7650340,0x24c70ce966be,108,howMuchToRead node:internal/streams/readable:374:23,0x456580d0a18,~
code-source-info,0x24c70ce966be,51,12156,12528,C0O12171C1O12177C6O12192C12O12199C17O12214C23O12226C24O12235C25O12248C31O12264C33O12273C34O12276C39O12280C45O12351C51O12368C57O12395C62O12402C67O12402C72O12409C76O12417C77O12435C81O12442C82O12464C86O12455C91O12476C93O12485C94O12501C100O12515C107O12526,,
code-creation,LazyCompile,10,7650420,0x24c70ce9693e,111,Socket._read node:net:581:34,0x1c78303fe578,~
code-source-info,0x24c70ce9693e,117,15267,15488,C0O15267C13O15275C23O15275C27O15294C30O15303C39O15323C45O15338C55O15338C59O15378C62O15383C75O15383C83O15430C86O15440C91O15448C97O15463C105O15463C110O15487,,
code-creation,LazyCompile,10,7650474,0x24c70ce96b46,65,tryReadStart node:net:571:22,0x1c78303fd8c8,~
code-source-info,0x24c70ce96b46,117,14942,15167,C0O14996C8O14996C12O15040C18O15056C22O15085C27O15093C32O15093C37O15108C39O15128C46O15136C52O15136C58O15128C64O15166,,
code-creation,LazyCompile,10,7650540,0x24c70ce96c6e,2,DTRACE_NET_SERVER_CONNECTION node:internal/dtrace:10:34,0x3f8cd554a8d8,~
code-source-info,0x24c70ce96c6e,119,265,273,C1O272,,
code-creation,LazyCompile,10,7650580,0x24c70ce96e06,31,connectionListener node:_http_server:436:28,0x3f8cd5563f98,~
code-source-info,0x24c70ce96e06,126,15007,15124,C0O15020C7O15052C10O15052C24O15020C30O15123,,
code-creation,LazyCompile,10,7650616,0x24c70ce96f16,44,getOrSetAsyncId node:internal/async_hooks:417:25,0x30ec9dbb9338,~
code-source-info,0x24c70ce96f16,24,14518,14684,C0O14531C7O14573C10O14535C17O14597C19O14611C21O14610C24O14628C25O14636C27O14650C33O14669C37O14667C43O14682,,
code-creation,LazyCompile,10,7650947,0x24c70ce9739e,693,connectionListenerInternal node:_http_server:442:36,0x3f8cd5563fe8,~
code-source-info,0x24c70ce9739e,126,15161,18992,C0O15182C8O15182C12O15344C14O15358C18O15540C24O15565C32O15603C37O15621C42O15603C47O15640C58O15640C64O15690C69O15698C74O15698C79O15733C87O15772C90O15772C95O15793C100O15974C107O15990C110O16001C117O16018C128O16014C134O16085C147O16109C151O16119C157O16133C160O16158C168O15974C173O16186C175O16200C179O16212C181O16226C185O16317C193O16384C197O16400C200O16375C204O16427C209O16855C212O16883C231O16883C236O16868C240O16968C243O16994C262O16994C267O16980C271O17077C274O17107C287O17107C292O17091C296O17178C299O17208C312O17208C317O17192C321O17286C329O17303C334O17286C340O17321C351O17321C357O17358C365O17374C370O17358C376O17391C384O17409C389O17391C395O17428C403O17446C408O17428C414O17458C417O17495C433O17495C438O17476C442O17651C453O17651C459O17690C470O17690C476O17781C482O17793C486O17791C490O17832C496O17853C500O17851C504O17901C510O17926C514O17924C518O17978C520O17997C524O18102C530O18120C535O18128C541O18158C546O18166C552O18183C553O18200C557O18219C563O18237C567O18256C572O18271C577O18256C582O18287C584O18294C590O18328C609O18328C614O18306C618O18404C620O18411C626O18445C639O18445C644O18423C648O18630C650O18637C656O18678C669O18678C674O18654C678O18929C681O18929C686O18967C687O18982C692O18991,,
code-creation,LazyCompile,10,7651057,0x24c70ce978be,10, node:_http_server:85:64,0x3f8cd55647e0,~
code-source-info,0x24c70ce978be,126,2528,2553,C0O2540C2O2546C9O2552,,
code-creation,LazyCompile,10,7651109,0x24c70ce979be,56,alloc node:internal/freelist:15:8,0x3f8cd55582f0,~
code-source-info,0x24c70ce979be,122,203,317,C0O203C2O224C7O229C13O236C18O253C23O258C28O258C36O272C39O290C50O272C55O313,,
tick,0x165b099,7651217,0,0x0,0,0x24c70ce979be,0x24c70ce973e8,0x24c70ce94c4a,0x24c70ce96e1e,0x27ba8ebceb83,0x24c70ce95b9b
code-creation,LazyCompile,10,7651260,0x24c70ce97b16,65,parsersCb node:_http_common:170:65,0x3f8cd55561b8,~
code-source-info,0x24c70ce97b16,121,5430,5700,C0O5452C5O5452C11O5473C14O5473C18O5497C20O5504C25O5516C29O5537C31O5544C36O5564C40O5593C42O5600C47O5609C51O5627C53O5634C58O5654C62O5684C64O5698,,
code-creation,LazyCompile,10,7651333,0x24c70ce985a6,77,cleanParser node:_http_common:236:21,0x3f8cd5556078,~
code-source-info,0x24c70ce985a6,121,7357,7681,C0O7370C2O7386C6O7394C8O7406C12O7414C13O7428C17O7438C18O7454C22O7464C23O7480C27O7490C29O7514C31O7512C35O7534C37O7541C41O7558C45O7568C47O7575C51O7587C55O7597C57O7604C61O7616C65O7626C66O7643C70O7654C71O7672C76O7680,,
code-creation,LazyCompile,10,7651427,0x24c70ce987a6,43,isLenient node:_http_common:258:19,0x3f8cd5556118,~
code-source-info,0x24c70ce987a6,121,7924,8091,C0O7931C8O7958C12O7979C16O7993C22O8005C25O8013C33O8013C38O8063C42O8089,,
code-creation,LazyCompile,10,7651463,0x24c70ce988d6,14,HTTPServerAsyncResource node:_http_server:173:14,0x3f8cd5564830,~
code-source-info,0x24c70ce988d6,126,6698,6766,C0O6719C2O6729C6O6741C8O6753C13O6765,,
code-creation,LazyCompile,10,7651556,0x24c70ce98a5e,70,Socket.resume node:net:615:35,0x1c78303fe710,~
code-source-info,0x24c70ce98a5e,117,16103,16279,C0O16110C2O16119C4O16118C9O16137C15O16156C21O16179C26O16187C32O16202C35O16202C39O16228C44O16242C49O16249C54O16259C59O16266C64O16266C69O16277,,
code-creation,LazyCompile,10,7651592,0x24c70ce98bde,53,Readable.resume node:internal/streams/readable:959:37,0x456580d1098,~
code-source-info,0x24c70ce98bde,51,30699,31016,C0O30725C5O30754C11O30769C19O30769C23O30926C28O30917C32O30949C35O30949C40O30976C42O30982C46O30991C50O31002C52O31014,,
code-creation,LazyCompile,10,7651624,0x24c70ce98d1e,35,resume node:internal/streams/readable:973:16,0x456580d1120,~
code-source-info,0x24c70ce98d1e,51,31034,31169,C0O31065C6O31088C7O31110C11O31122C14O31130C28O31130C34O31168,,
code-creation,LazyCompile,10,7651690,0x24c70ce98ede,14,generateSocketListenerWrapper node:_http_server:975:39,0x3f8cd5564768,~
code-source-info,0x24c70ce98ede,126,31456,31972,C0O31456C9O31477C13O31970,,
code-creation,LazyCompile,10,7651748,0x24c70ce9905e,80,setRequestTimeout node:_http_server:761:27,0x3f8cd5564498,~
code-source-info,0x24c70ce9905e,126,25423,25729,C0O25482C2O25499C4O25498C9O25530C15O25555C21O25570C26O25584C34O25584C38O25623C40O25630C45O25655C51O25691C59O25655C65O25714C70O25715C74O25647C79O25728,,
code-creation,LazyCompile,10,7651808,0x24c70ce991ee,87,resume_ node:internal/streams/readable:980:17,0x456580d1170,~
code-source-info,0x24c70ce991ee,51,31187,31422,C0O31207C8O31229C13O31207C18O31252C24O31274C31O31274C36O31290C37O31312C41O31330C49O31330C54O31348C57O31348C61O31374C67O31392C73O31412C80O31412C86O31421,,
code-creation,LazyCompile,10,7651841,0x24c70ce99376,60,onSocketResume node:_http_server:940:24,0x3f8cd5564678,~
code-source-info,0x24c70ce99376,126,30520,31019,C0O30858C6O30878C11O30878C15O30891C16O30898C17O30915C23O30932C28O30940C34O30960C40O30976C44O30993C49O31001C54O31001C59O31018,,
code-creation,LazyCompile,10,7651868,0x24c70ce994de,45,flow node:internal/streams/readable:1004:14,0x456580d1248,~
code-source-info,0x24c70ce994de,51,31734,31868,C0O31768C5O31786C13O31806C18O31786C23O31831C29O31849C34O31849C40O31818C44O31867,,
code-creation,LazyCompile,10,7652060,0x24c70ce9980e,269,parserOnHeadersComplete node:_http_common:77:33,0x3f8cd5555e48,~
code-source-info,0x24c70ce9980e,121,2931,4481,C0O3120C3O3136C8O3158C12O3208C18O3222C20O3238C24O3251C28O3293C34O3303C36O3315C40O3398C44O3416C50O3466C57O3473C59O3472C66O3528C69O3565C71O3583C77O3581C84O3620C86O3646C90O3664C92O3690C96O3708C98O3734C108O3750C112O3729C116O3768C118O3781C122O3790C124O3807C128O3821C132O3839C140O3839C144O3887C146O3896C149O3924C156O3931C158O3930C161O3913C165O3962C172O3969C176O3986C180O4022C185O4109C191O4124C196O4133C201O4155C206O4137C212O4184C217O4184C223O4216C229O4273C231O4291C236O4298C239O4289C245O4342C247O4362C251O4380C253O4403C257O4441C262O4441C268O4479,,
code-creation,LazyCompile,10,7652162,0x24c70ce99c16,177,IncomingMessage node:_http_incoming:51:25,0x3f8cd5558d58,~
code-source-info,0x24c70ce99c16,123,1797,2719,C0O1814C2O1832C6O1850C11O1896C24O1932C29O1941C34O1941C40O1976C46O2003C50O2014C52O2026C56O2039C57O2061C61O2071C62O2093C66O2103C67O2120C71O2130C72O2144C76O2155C78O2160C82O2170C86O2180C88O2185C92O2200C96O2207C98O2223C102O2231C104O2236C108O2247C112O2257C114O2262C118O2278C122O2285C124O2302C128O2311C129O2324C133O2336C134O2349C138O2387C140O2396C144O2404C145O2416C149O2455C150O2471C154O2481C155O2500C159O2510C161O2522C165O2535C166O2551C170O2696C171O2709C176O2718,,
code-creation,LazyCompile,10,7652200,0x24c70ce9aa7e,10,get node:internal/streams/readable:1188:18,0x456580d1580,~
code-source-info,0x24c70ce9aa7e,51,36099,36157,C0O36122C5O36137C9O36151,,
tick,0xe8a8c8,7652289,0,0x0,0,0xf48b80,0x1c78303eb3a7,0x1c78303eb233,0x274d30f64490,0x274d30f61828,0x24c70ce99c38,0x24c70ce99855
code-creation,LazyCompile,10,7652342,0x24c70ce9ac16,10, node:_http_common:43:64,0x3f8cd5556168,~
code-source-info,0x24c70ce9ac16,121,1673,1698,C0O1685C2O1691C9O1697,,
code-creation,LazyCompile,10,7652399,0x24c70ce9ad36,125,_addHeaderLines node:_http_incoming:199:25,0x3f8cd5558da8,~
code-source-info,0x24c70ce9ad36,123,5910,6345,C0O5927C4O5950C10O5968C12O5987C18O6005C20O6022C24O6039C26O6044C31O6060C35O6071C37O6083C39O6082C45O6114C47O6130C51O6147C53O6152C58O6167C62O6178C64O6190C66O6189C70O6212C74O6243C76O6248C78O6248C83O6276C90O6298C96O6313C99O6310C109O6276C114O6255C120O6230C124O6344,,
code-creation,LazyCompile,10,7652526,0x24c70ce9b15e,582,parserOnIncoming node:_http_server:851:26,0x3f8cd55645d8,~
code-source-info,0x24c70ce9b15e,126,27923,30313,C0O27967C12O27967C17O28021C23O28054C30O28061C38O28103C46O28103C53O28128C56O28048C60O28145C66O28160C68O28169C69O28183C74O28192C79O28192C84O28385C90O28418C95O28445C101O28464C106O28487C110O28477C115O28518C116O28533C120O28717C125O28717C129O28751C131O28762C133O28761C139O28751C145O28818C149O28809C153O28838C156O28878C169O28878C174O28857C178O28960C180O28980C184O28995C189O28995C194O29039C199O29065C205O29087C210O29109C222O29134C228O29155C234O29166C240O29180C244O29109C249O29213C255O29294C260O29303C265O29303C272O29333C277O29333C282O29480C293O29514C315O29514C321O29480C327O29602C332O29610C338O29645C345O29662C350O29675C357O29692C362O29706C369O29730C372O29754C377O29762C382O29710C389O29779C390O29800C394O29826C402O29826C409O29857C414O29879C431O29879C438O29939C443O29939C447O29971C464O29971C471O30028C479O30028C486O30062C491O30082C508O30082C515O30141C525O30141C530O30167C535O30167C541O30199C552O30199C558O30243C575O30243C580O30276C581O30285,,
code-creation,LazyCompile,10,7652570,0x24c70ce9b5ce,36,resetSocketTimeout node:_http_server:932:28,0x3f8cd5564628,~
code-source-info,0x24c70ce9b5ce,126,30342,30495,C0O30381C6O30406C7O30413C8O30424C13O30442C24O30424C29O30459C30O30485C35O30494,,
code-creation,LazyCompile,10,7652595,0x24c70ce9b6f6,16,get node:internal/streams/writable:833:8,0x456580dd838,~
code-source-info,0x24c70ce9b6f6,56,23896,23977,C0O23919C6O23942C11O23957C15O23971,,
code-creation,LazyCompile,10,7652641,0x24c70ce9b946,159,ServerResponse node:_http_server:179:24,0x3f8cd5563e08,~
code-source-info,0x24c70ce9b946,126,6793,7354,C0O6803C5O6819C10O6819C15O6842C22O6849C27O6861C28O6875C32O6887C34O6896C38O6905C39O6919C43O6929C44O6943C48O6954C49O6976C53O6996C60O7013C65O7024C72O7041C77O7052C79O7087C84O7107C87O7187C92O7195C97O7087C102O7085C106O7204C107O7225C111O7241C119O7245C125O7272C127O7277C138O7333C143O7333C153O7304C158O7353,,
code-creation,LazyCompile,10,7652747,0x24c70ce9bd76,167,OutgoingMessage node:_http_outgoing:97:25,0x3f8cd555bae0,~
code-source-info,0x24c70ce9bd76,124,3249,4442,C0O3256C5O3263C10O3263C15O3430C17O3446C21O3749C22O3765C26O3773C27O3787C31O3797C32O3812C36O3824C37O3835C41O3846C42O3867C46O3878C47O3899C51O3909C52O3932C56O3942C57O3975C61O3985C62O3999C66O4010C67O4034C71O4045C72O4066C76O4077C77O4093C81O4105C82O4125C86O4135C87O4149C91O4159C93O4173C97O4181C99O4186C103O4198C107O4210C108O4224C112O4235C113O4252C117O4263C119O4268C123O4277C127O4284C128O4297C132O4309C133O4321C137O4331C138O4344C142O4354C144O4359C148O4372C152O4383C153O4406C157O4414C159O4436C161O4434C166O4441,,
code-creation,LazyCompile,10,7652881,0x24c70ce9dfc6,24,hasObserver node:internal/perf/observe:336:21,0x456580f49c0,~
script-source,66,node:internal/perf/observe,'use strict';\n\nconst {\n  ArrayFrom\x2C\n  ArrayIsArray\x2C\n  ArrayPrototypeFilter\x2C\n  ArrayPrototypeIncludes\x2C\n  ArrayPrototypePush\x2C\n  ArrayPrototypeSlice\x2C\n  ArrayPrototypeSort\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} = 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} = 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\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    for (const pending of kPending)\n      pending[kDispatch]();\n    kPending.clear();\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      }\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) {\n    name = `${name}`;\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    } = { ...options };\n    if (entryTypes === undefined && type === undefined)\n      throw new ERR_MISSING_ARGS('options.entryTypes'\x2C 'options.type');\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 new ERR_INVALID_ARG_VALUE('options.entryTypes'\x2C entryTypes);\n        break;\n      case kTypeMultiple:\n        if (type !== undefined)\n          throw new ERR_INVALID_ARG_VALUE('options.type'\x2C type);\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    }\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 new PerformanceObserverEntryList(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]() { this[kCallback](this.takeRecords()\x2C this); }\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\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\nmodule.exports = {\n  PerformanceObserver\x2C\n  enqueue\x2C\n  hasObserver\x2C\n};\n
code-source-info,0x24c70ce9dfc6,66,8219,8318,C0O8251C3O8251C8O8276C15O8297C20O8312C23O8316,,
code-creation,LazyCompile,10,7653314,0x24c70ce9ebd6,43,getObserverType node:internal/perf/observe:101:25,0x456580f42f8,~
code-source-info,0x24c70ce9ebd6,66,1988,2192,C0O1999C26O2030C30O2068C31O2087C35O2128C36O2146C40O2186C42O2191,,
tick,0x159bcb7,7653361,0,0x0,0,0x24c70ce9b1f3,0x24c70ce99914
code-creation,LazyCompile,10,7653390,0x24c70ce9ecd6,2,DTRACE_HTTP_SERVER_REQUEST node:internal/dtrace:8:32,0x3f8cd554a7b8,~
code-source-info,0x24c70ce9ecd6,119,180,188,C1O187,,
code-creation,LazyCompile,10,7653413,0x24c70ce9edae,2,get hasSubscribers node:diagnostics_channel:82:21,0x3f8cd5568b38,~
code-source-info,0x24c70ce9edae,127,1935,1961,C0O1944C1O1957,,
code-creation,LazyCompile,10,7653446,0x24c70ce9eeae,69,assignSocket node:_http_server:240:62,0x3f8cd55648d0,~
code-source-info,0x24c70ce9eeae,126,8914,9105,C0O8927C5O8942C11O8927C15O8959C17O8979C21O8996C32O8996C38O9034C40O9046C44O9063C52O9063C58O9094C63O9094C68O9104,,
code-creation,LazyCompile,10,7653503,0x24c70ce9f04e,159,socketListenerWrap node:_http_server:976:37,0x24c70ce98e28,~
code-source-info,0x24c70ce9f04e,126,31511,31969,C0O31538C7O31542C12O31549C19O31558C23O31575C37O31575C43O31667C49O31683C53O31693C56O31697C61O31704C66O31714C70O31691C74O31724C78O31743C81O31747C86O31754C91O31764C95O31741C99O31783C103O31806C106O31810C111O31817C116O31827C120O31804C124O31850C126O31861C127O31873C129O31880C136O31897C141O31919C146O31934C151O31919C156O31954C158O31965,,
code-creation,LazyCompile,10,7653558,0x24c70ce9f266,79,_flush node:_http_outgoing:930:51,0x3f8cd555cb68,~
code-source-info,0x24c70ce9f266,124,26947,27362,C0O26974C5O26985C7O27006C13O27105C18O27105C24O27141C30O27240C35O27240C41O27262C47O27278C49O27277C54O27299C56O27304C60O27316C64O27336C72O27336C78O27361,,
code-creation,LazyCompile,10,7653596,0x24c70ce9f3f6,48,get node:internal/streams/writable:783:8,0x456580dd608,~
code-source-info,0x24c70ce9f3f6,56,22665,23054,C0O22691C5O22950C9O22966C15O22975C21O22991C28O23007C35O23029C42O23042C47O23048,,
code-creation,LazyCompile,10,7653661,0x24c70ce9f576,170,_flushOutput node:_http_outgoing:947:63,0x3f8cd555cbb8,~
code-source-info,0x24c70ce9f576,124,27427,28049,C0O27451C2O27452C4O27451C9O27468C11O27473C19O27481C23O27496C28O27496C32O27440C35O27537C40O27548C45O27558C46O27575C51O27585C52O27602C53O27630C58O27651C63O27651C67O27665C69O27787C71O27792C73O27792C78O27856C80O27866C84O27827C89O27833C94O27843C99O27888C116O27888C122O27809C127O27774C130O27934C135O27934C139O27947C141O27963C145O27976C150O27997C154O27991C157O27976C162O28012C163O28028C167O28036C169O28047,,
code-creation,LazyCompile,10,7653724,0x24c70ce9f79e,97,get node:_http_incoming:108:16,0x3f8cd5558ff8,~
code-source-info,0x24c70ce9f79e,123,3083,3372,C0O3092C2O3102C4O3101C9O3121C11O3126C15O3136C19O3166C24O3196C26O3201C28O3200C32O3232C34O3237C36O3244C38O3243C41O3237C46O3283C53O3304C56O3301C62O3316C65O3313C75O3283C80O3262C86O3219C89O3346C91O3358C93O3357C96O3368,,
code-creation,LazyCompile,10,7653806,0x24c70ce9f9b6,172,_addHeaderLine node:_http_incoming:337:24,0x3f8cd5558e48,~
code-source-info,0x24c70ce9f9b6,123,11595,12270,C0O11620C3O11628C9O11668C16O11668C22O11707C23O11716C30O11730C35O11743C43O11751C50O11816C52O11831C59O11861C61O11866C66O11882C86O11903C92O11873C98O11931C100O11943C106O11967C108O11976C113O12050C119O12092C124O12107C129O12107C136O12139C145O12161C151O12158C157O12184C159O12192C164O12244C166O12256C171O12269,,
code-creation,LazyCompile,10,7654011,0x24c70cea06be,796,matchKnownFields node:_http_incoming:231:26,0x3f8cd5558df8,~
code-source-info,0x24c70cea06be,123,7092,10961,C0O7130C105O7158C107O7168C114O7187C119O7198C121O7211C122O7218C124O7243C126O7253C133O7273C138O7285C140O7299C141O7306C143O7316C150O7336C155O7348C157O7362C158O7369C160O7379C167O7399C172O7411C174O7425C175O7432C177O7442C184O7462C189O7474C191O7494C192O7501C194O7511C201O7531C206O7543C208O7563C209O7570C211O7595C213O7605C220O7627C225O7641C227O7657C228O7664C230O7674C237O7696C242O7710C244O7732C245O7739C247O7749C254O7771C259O7785C261O7807C262O7814C264O7824C271O7846C276O7860C278O7882C279O7889C281O7899C288O7921C293O7935C295O7957C296O7964C298O7989C300O7999C307O8022C312O8037C314O8054C315O8061C317O8071C324O8094C329O8109C331O8126C332O8133C334O8143C341O8166C346O8181C348O8204C349O8211C351O8236C353O8246C360O8270C365O8294C367O8312C368O8319C370O8329C377O8353C382O8377C384O8401C385O8408C387O8434C389O8444C396O8470C401O8496C403O8516C404O8523C406O8533C413O8559C418O8585C420O8601C421O8608C423O8618C430O8644C435O8670C437O8696C438O8703C440O8729C442O8739C449O8766C454O8793C456O8814C457O8821C459O8847C461O8857C468O8885C473O8913C475O8935C476O8942C478O8952C485O8980C490O9008C492O9030C493O9037C495O9063C497O9073C504O9102C509O9131C511O9154C512O9161C514O9171C521O9200C526O9229C528O9252C529O9259C531O9269C538O9298C543O9327C545O9356C546O9363C548O9373C555O9402C560O9431C562O9460C563O9467C565O9493C567O9503C574O9533C579O9563C581O9587C582O9594C584O9620C586O9630C593O9661C598O9692C600O9723C601O9730C603O9740C610O9771C615O9802C617O9833C618O9840C620O9850C627O9881C632O9912C634O9943C635O9950C637O9976C639O9986C646O10018C651O10050C653O10082C654O10089C656O10099C663O10131C668O10163C670O10195C671O10202C673O10228C675O10238C682O10271C687O10304C689O10331C690O10338C692O10348C699O10381C704O10414C706O10447C707O10454C709O10464C716O10497C721O10530C723O10563C724O10570C726O10596C728O10606C735O10641C740O10676C742O10705C743O10712C745O10722C752O10757C757O10792C759O10821C760O10828C762O10841C766O10863C771O10879C774O10887C775O10894C780O10918C783O10918C790O10901C795O10959,,
code-creation,LazyCompile,10,7654231,0x24c70cea0e7e,25,Polka.attach file:///var/www/quadcode.com/build/index.js:146:17,0x8860f93c3c8,~
code-source-info,0x24c70cea0e7e,114,4180,4230,C0O4194C8O4212C19O4194C24O4230,,
code-creation,LazyCompile,10,7654334,0x24c70cea1096,184,setImmediate node:timers:278:22,0x456580e49e8,~
script-source,60,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,0x24c70cea1096,60,7396,7916,C0O7396C2O7429C7O7429C11O7464C13O7467C15O7493C43O7539C45O7564C54O7572C63O7585C65O7610C74O7618C83O7624C92O7637C94O7663C103O7671C112O7677C121O7683C128O7701C131O7722C135O7710C140O7821C142O7828C148O7844C151O7833C155O7731C160O7696C163O7863C165O7877C178O7884C183O7914,,
tick,0x7efc33641641,7655016,0,0x0,3,0x11e9ce0,0x24c70cea0e91,0x27ba8ebceb83,0x24c70ce9b39d,0x24c70ce99914
code-creation,LazyCompile,10,7655122,0x24c70cea1ede,93,Immediate node:internal/timers:600:14,0x456580ef7a8,~
script-source,62,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,0x24c70cea1ede,62,17293,17604,C0O17316C1O17331C5O17343C6O17358C10O17370C12O17388C16O17404C18O17415C22O17427C23O17443C27O17456C29O17461C33O17469C37O17483C43O17483C48O17531C53O17531C57O17542C64O17556C72O17563C76O17572C81O17587C86O17587C92O17603,,
tick,0x7efc336353b7,7656319,0,0x0,3,0x11febe0,0x24c70cea1148,0x24c70cea0e91,0x27ba8ebceb83,0x24c70ce9b39d,0x24c70ce99914
code-creation,LazyCompile,10,7656375,0x24c70cea35ae,76,initAsyncResource node:internal/timers:157:27,0x456580eebe8,~
code-source-info,0x24c70cea35ae,62,5425,5677,C0O5462C2O5471C7O5490C10O5490C14O5488C21O5533C23O5542C28O5569C31O5569C35O5567C42O5599C47O5603C52O5625C69O5625C75O5676,,
code-creation,LazyCompile,10,7656426,0x24c70cea371e,67,ref node:internal/timers:616:6,0x456580ef7f8,~
code-source-info,0x24c70cea371e,62,17611,17781,C0O17620C2O17629C4O17628C9O17637C14O17656C16O17661C20O17669C24O17683C31O17701C43O17711C48O17714C53O17729C60O17729C64O17765C66O17777,,
code-creation,LazyCompile,10,7656471,0x24c70cea388e,41,ImmediateList.append node:internal/timers:269:42,0x456580ef0a8,~
code-source-info,0x24c70cea388e,62,8454,8613,C0O8474C6O8500C13O8515C17O8549C21O8542C27O8570C29O8580C33O8594C35O8604C40O8612,,
code-creation,LazyCompile,10,7656545,0x24c70cea3ab6,107,addCatch node:events:218:18,0x30ec9dbb2128,~
code-source-info,0x24c70cea3ab6,13,6191,6733,C0O6191C17O6223C24O6233C26O6232C31O6250C32O6257C36O6381C41O6392C45O6437C52O6451C63O6437C81O6703C86O6708C97O6708C106O6732,,
code-creation,LazyCompile,10,7656614,0x24c70cea3ca6,82,parserOnMessageComplete node:_http_common:147:33,0x3f8cd5555ee8,~
code-source-info,0x24c70cea3ca6,121,4908,5363,C0O4930C3O4960C8O4973C10O5000C11O5016C15O5085C20O5111C26O5134C31O5167C36O5134C42O5182C44O5198C48O5210C50O5222C54O5272C61O5272C66O5336C71O5353C76O5336C81O5362,,
tick,0x7efc33a64810,7656659,0,0x0,3
code-creation,LazyCompile,10,7656667,0x24c70cea3e06,20,Readable.push node:internal/streams/readable:225:35,0x456580d06f8,~
code-source-info,0x24c70cea3e06,51,7592,7670,C0O7614C14O7621C19O7668,,
code-creation,LazyCompile,10,7656803,0x24c70cea4046,510,readableAddChunk node:internal/streams/readable:234:26,0x456580d0808,~
code-source-info,0x24c70cea4046,51,7879,10124,C0O7921C8O7921C13O7978C18O8001C20O8019C26O8037C32O8076C36O8105C42O8138C49O8147C54O8171C58O8195C64O8356C69O8371C74O8371C81O8392C86O8408C91O8393C100O8446C105O8461C110O8461C118O8494C124O8538C126O8559C128O8548C133O8575C139O8601C144O8612C149O8612C156O8642C161O8657C166O8657C173O8691C179O8717C184O8744C202O8750C208O8850C212O8865C217O8865C224O8903C228O8929C229O8943C233O8956C236O8956C243O9002C251O9017C253O9032C259O9039C264O9051C268O9085C274O9105C281O9132C284O9128C290O9105C297O9190C311O9190C318O9249C324O9264C331O9291C334O9287C340O9264C347O9342C353O9361C359O9378C360O9391C361O9411C362O9425C366O9450C374O9462C376O9496C381O9504C386O9504C393O9536C399O9556C405O9563C410O9580C424O9580C431O9642C434O9642C441O9695C455O9695C462O9757C466O9780C467O9794C471O9807C474O9807C479O10050C486O10070C491O10085C495O10077C500O10108C506O10115C509O10122,,
code-creation,LazyCompile,10,7656888,0x24c70cea447e,132,onEofChunk node:internal/streams/readable:528:20,0x456580d0af0,~
code-source-info,0x24c70cea447e,51,16982,17783,C0O17002C8O17002C12O17035C18O17042C19O17049C20O17062C26O17097C31O17105C36O17105C41O17116C43O17135C49O17157C54O17164C59O17164C64O17183C69O17205C82O17228C89O17196C93O17248C94O17260C98O17281C104O17464C107O17464C113O17560C114O17579C118O17592C119O17614C123O17755C126O17755C131O17782,,
code-creation,LazyCompile,10,7656942,0x24c70cea466e,81,emitReadable node:internal/streams/readable:558:22,0x456580d0b40,~
code-source-info,0x24c70cea466e,51,18005,18311,C0O18039C5O18057C13O18085C18O18105C23O18057C28O18125C29O18144C33O18166C39O18189C47O18217C52O18189C57O18231C58O18253C62O18265C65O18273C73O18273C80O18310,,
code-creation,LazyCompile,10,7657013,0x24c70cea47fe,27,readStart node:_http_incoming:40:19,0x3f8cd5558cb8,~
code-source-info,0x24c70cea47fe,123,1557,1642,C0O1570C4O1592C10O1610C16O1631C21O1631C26O1641,,
code-creation,LazyCompile,10,7657048,0x24c70cea492e,41,get node:internal/streams/readable:1169:8,0x456580d14e0,~
code-source-info,0x24c70cea492e,51,35503,35889,C0O35529C5O35788C9O35804C15O35813C21O35829C28O35845C35O35872C40O35883,,
code-creation,LazyCompile,10,7657097,0x24c70cea4a86,49,onParserExecute node:_http_server:632:25,0x3f8cd5564308,~
code-source-info,0x24c70cea4a86,126,21347,21822,C0O21685C5O21685C9O21702C17O21702C22O21751C42O21751C48O21821,,
code-creation,LazyCompile,10,7657221,0x24c70cea4dc6,537,onParserExecuteCommon node:_http_server:689:31,0x3f8cd55643f8,~
code-source-info,0x24c70cea4dc6,126,23087,25055,C0O23131C12O23131C17O23177C19O23196C21O23185C26O23209C40O23209C45O23243C50O23259C52O23271C57O23271C61O23257C65O23295C73O23295C78O23326C81O23340C86O23340C94O23379C100O23398C105O23407C111O23467C116O23481C124O23520C129O23481C134O23534C138O23559C143O23559C149O23591C157O23620C162O23591C168O23640C176O23668C181O23640C187O23687C195O23717C200O23687C206O23738C214O23768C219O23738C225O23789C236O23789C242O23840C253O23840C259O23888C262O23888C267O23926C272O23926C276O23940C290O23940C295O23977C298O24019C305O24026C317O24069C319O24083C324O24107C329O24107C336O24132C341O24145C349O24145C354O24219C359O24232C364O24219C371O24248C372O24271C376O24352C379O24352C383O24392C403O24392C410O24508C415O24508C421O24545C427O24564C432O24573C439O24580C444O24597C452O24597C456O24641C461O24641C467O24795C469O24802C475O24845C488O24845C493O24819C497O24896C503O24914C509O25000C517O25000C521O25034C526O25041C531O25041C536O25054,,
code-creation,LazyCompile,10,7657316,0x24c70cea52d6,117,emitReadable_ node:internal/streams/readable:569:23,0x456580d0b90,~
code-source-info,0x24c70cea52d6,51,18335,18967,C0O18369C5O18387C13O18416C18O18433C23O18447C28O18387C33O18468C39O18488C45O18506C51O18522C57O18543C65O18543C70O18565C71O18587C75O18878C85O18900C92O18919C97O18935C101O18926C104O18865C108O18952C111O18952C116O18966,,
code-creation,LazyCompile,10,7657449,0x24c70cea55be,388,processImmediate node:internal/timers:421:28,0x456580ef678,~
code-source-info,0x24c70cea55be,62,12482,14258,C0O12505C5O12522C13O12544C21O12563C24O12605C29O12738C31O12752C33O12748C38O12778C40O12802C46O12789C50O12816C61O12830C66O12847C70O12867C72O12915C74O12943C78O12961C82O12997C85O12997C90O13032C92O13317C98O13339C103O13389C108O13361C112O13408C114O13433C115O13454C119O13469C130O13483C138O13490C142O13500C146O13514C148O13513C153O13531C164O13545C172O13555C176O13565C180O13575C184O13583C188O13598C191O13648C195O13658C197O13657C201O13682C212O13712C214O13711C224O13682C232O13794C237O13809C239O13840C244O13840C250O13889C261O13889C277O13938C279O13961C283O13978C290O13982C295O14013C302O14013C306O14044C311O14090C316O14066C331O14116C338O14116C342O12926C348O14147C350O14161C352O14157C357O14185C363O14207C367O14219C378O14233C382O14250C387O14257,,
code-creation,LazyCompile,10,7657586,0x24c70cea5b26,349,handler file:///var/www/quadcode.com/build/index.js:188:9,0x1c78303f1518,~
code-source-info,0x24c70cea5b26,114,5268,6012,C0O5268C33O5300C36O5305C44O5305C50O5329C55O5351C58O5356C66O5365C76O5381C80O5356C87O5392C90O5414C94O5407C97O5400C101O5424C107O5446C116O5465C120O5440C124O5472C127O5489C134O5482C138O5504C141O5522C145O5515C149O5532C152O5549C156O5543C160O5569C167O5576C172O5588C183O5588C192O5604C197O5635C200O5635C215O5626C228O5626C232O5655C235O5659C240O5666C248O5694C256O5700C261O5671C265O5669C287O5617C290O5770C291O5770C293O5781C298O5790C306O5802C311O5790C316O5777C318O5818C321O5822C325O5818C327O5843C331O5843C333O5912C341O5918C344O5998C348O6011,,
code-creation,LazyCompile,10,7657681,0x24c70cea5f16,180,parse file:///var/www/quadcode.com/build/index.js:105:15,0x1c78303f11a8,~
code-source-info,0x24c70cea5f16,114,3068,3524,C0O3091C5O3097C8O3114C9O3121C10O3139C15O3152C17O3169C24O3173C29O3182C31O3194C32O3210C35O3222C38O3226C40O3243C47O3250C52O3273C63O3273C70O3293C72O3301C77O3327C82O3327C88O3361C95O3361C102O3394C109O3401C114O3412C117O3423C122O3436C130O3436C136O3423C142O3465C149O3491C155O3501C161O3509C167O3516C173O3487C179O3522,,
tick,0x7efc3373a900,7657738,0,0x0,3,0x11e9ce0,0x24c70cea5b52,0x24c70cea56c3
code-creation,LazyCompile,10,7657846,0x24c70cea61e6,467,find file:///var/www/quadcode.com/build/index.js:63:6,0x1c78303f1388,~
code-source-info,0x24c70cea61e6,114,1752,2834,C0O1781C2O1789C6O1810C8O1815C10O1818C12O1821C14O1835C19O1857C22O1868C24O1881C27O1902C31O1896C36O1920C38O1929C42O1945C47O1952C53O1959C58O1972C65O1979C72O1993C74O2007C81O2014C86O2039C92O2044C97O2076C102O2084C107O2084C113O2100C115O2122C117O2149C123O2186C138O2173C151O2212C159O2218C162O2203C169O2168C172O2232C177O2241C184O2248C189O2273C194O2284C199O2273C207O2306C212O2315C218O2323C222O2306C229O2348C234O2353C240O2360C245O2386C250O2394C255O2394C261O2410C263O2432C265O2452C267O2465C272O2470C276O2459C281O2490C288O2494C294O2499C297O2506C300O2498C304O2447C307O2522C312O2531C319O2538C324O2563C329O2574C334O2563C342O2596C347O2605C353O2613C357O2596C364O2638C369O2646C374O2646C381O2668C386O2677C393O2684C398O2709C403O2720C408O2709C416O2742C421O2751C427O2759C431O2742C436O1911C441O1887C447O2803C454O2812C460O2820C466O2831,,
code-creation,LazyCompile,10,7657998,0x24c70cea65ae,54,next file:///var/www/quadcode.com/build/index.js:207:20,0x24c70cea59c8,~
code-source-info,0x24c70cea65ae,114,5929,5996,C0O5936C7O5947C24O5947C33O5978C36O5978C40O5984C48O5990C53O5996,,
code-creation,LazyCompile,10,7658037,0x24c70cea673e,115,loop file:///var/www/quadcode.com/build/index.js:206:14,0x24c70cea5978,~
code-source-info,0x24c70cea673e,114,5843,5908,C6O5843C14O5868C17O5859C25O5872C30O5876C32O5874C39O5884C54O5889C62O5887C75O5892C90O5908,,
code-creation,LazyCompile,10,7658079,0x24c70cea6946,33, file:///var/www/quadcode.com/build/handler.js:1271:9,0x8860f93c108,~
code-source-info,0x24c70cea6946,129,34666,34949,C0O34666C23O34929C28O34936C32O34946,,
code-creation,LazyCompile,10,7658112,0x24c70cea6aee,67,handle file:///var/www/quadcode.com/build/handler.js:1276:18,0x24c70cea6890,~
code-source-info,0x24c70cea6aee,129,34795,34925,C0O34795C9O34804C17O34821C21O34810C26O34835C33O34850C47O34859C52O34853C57O34885C58O34902C63O34909C66O34916,,
code-creation,LazyCompile,10,7658218,0x24c70cea6dfe,392, file:///var/www/quadcode.com/build/handler.js:639:18,0x2c04857b31f0,~
code-source-info,0x24c70cea6dfe,129,18156,19056,C0O18189C5O18212C10O18212C15O18224C20O18251C25O18258C34O18287C40O18304C48O18304C55O18328C62O18339C68O18328C73O18349C84O18377C89O18377C96O18394C103O18405C109O18394C114O18421C121O18429C127O18421C132O18491C140O18491C148O18504C156O18523C160O18534C168O18532C180O18612C185O18612C194O18639C205O18667C208O18649C218O18679C223O18686C226O18679C232O18706C234O18717C238O18731C245O18740C248O18740C253O18761C254O18765C260O18783C265O18790C270O18817C275O18824C279O18808C284O18843C294O18843C299O18873C304O18873C308O18879C309O18887C317O18900C321O18916C332O18916C338O18961C343O18992C354O18961C359O19002C364O19022C369O19032C374O19044C385O19002C391O19055,,
code-creation,LazyCompile,10,7658296,0x24c70cea71d6,180,parse$1 file:///var/www/quadcode.com/build/handler.js:41:17,0x3f8cd5572658,~
code-source-info,0x24c70cea71d6,129,971,1427,C0O994C5O1000C8O1017C9O1024C10O1042C15O1055C17O1072C24O1076C29O1085C31O1097C32O1113C35O1125C38O1129C40O1146C47O1153C52O1176C63O1176C70O1196C72O1204C77O1230C82O1230C88O1264C95O1264C102O1297C109O1304C114O1315C117O1326C122O1339C130O1339C136O1326C142O1368C149O1394C155O1404C161O1412C167O1419C173O1390C179O1425,,
code-creation,LazyCompile,10,7658411,0x24c70cea7466,46,viaCache file:///var/www/quadcode.com/build/handler.js:504:18,0x3f8cd5572798,~
code-source-info,0x24c70cea7466,129,14522,14662,C0O14551C2O14554C4O14564C7O14564C13O14602C17O14596C22O14619C24O14639C27O14635C31O14628C33O14645C35O14657C36O14611C41O14587C45O14661,,
code-creation,LazyCompile,10,7658477,0x24c70cea75de,138,toAssume file:///var/www/quadcode.com/build/handler.js:488:18,0x3f8cd5572748,~
code-source-info,0x24c70cea75de,129,14212,14503,C0O14234C2O14237C4O14248C8O14255C12O14269C17O14269C25O14285C30O14307C37O14307C45O14339C48O14347C58O14381C62O14373C67O14398C69O14407C79O14422C91O14436C95O14449C102O14458C106O14449C111O14470C118O14479C122O14470C127O14390C132O14364C135O14490C137O14501,,
code-creation,LazyCompile,10,7658555,0x24c70cea7b66,16, file:///var/www/quadcode.com/build/handler.js:1278:34,0x24c70cea6a30,~
code-source-info,0x24c70cea7b66,129,34864,34883,C0O34870C7O34879C11O34870C15O34883,,
code-creation,LazyCompile,10,7658619,0x24c70cea7cfe,201, file:///var/www/quadcode.com/build/handler.js:1178:9,0x8860f93bf20,~
code-source-info,0x24c70cea7cfe,129,32489,33003,C0O32547C5O32547C10O32519C15O32529C20O32537C28O32573C32O32584C40O32582C43O32658C49O32674C54O32674C61O32694C75O32701C80O32725C81O32806C89O32806C97O32813C102O32832C112O32832C122O32856C126O32865C132O32881C137O32881C144O32901C148O32912C150O32924C157O32939C174O32956C178O32939C185O32967C190O32968C196O32989C200O33002,,
tick,0xf831c2,7658872,0,0x0,3,0x11e9ce0,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea7dc2,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea6eec,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
code-creation,LazyCompile,10,7658898,0x24c70cea81d6,313,ssr file:///var/www/quadcode.com/build/handler.js:1203:13,0x3f8cd5572fd8,~
code-source-info,0x24c70cea81d6,129,33062,34528,C4O33062C27O33125C32O33144C46O33182C58O33207C63O33192C73O33229C81O33252C87O33160C99O33154C130O33152C140O33293C143O33314C156O33308C160O33335C168O33335C173O33366C184O33373C185O33379C194O33407C197O33414C202O33422C207O33446C214O33448C224O33476C232O33414C249O33401C272O33379C288O34527,,
code-creation,LazyCompile,10,7658966,0x24c70cea849e,43,get_origin file:///var/www/quadcode.com/build/handler.js:1292:20,0x3f8cd5572e98,~
code-source-info,0x24c70cea849e,129,35048,35206,C0O35078C8O35106C10O35105C18O35150C20O35158C22O35157C26O35173C38O35197C42O35204,,
code-creation,LazyCompile,10,7659022,0x24c70cea86f6,145,getRequest file:///var/www/quadcode.com/build/handler.js:1048:26,0x3f8cd5572cb0,~
code-source-info,0x24c70cea86f6,129,29291,29555,C6O29291C14O29294C19O29303C24O29309C58O29329C62O29363C66O29353C75O29428C83O29494C94O29512C105O29336C120O29553,,
code-creation,LazyCompile,10,7659119,0x24c70cea8b26,249,get_raw_body file:///var/www/quadcode.com/build/handler.js:953:22,0x3f8cd5572c20,~
code-source-info,0x24c70cea8b26,129,27540,29104,C0O27540C21O27576C24O27580C29O27597C35O27619C36O27631C37O27660C41O27668C46O27660C50O27660C52O27720C55O27732C62O27749C74O27758C80O27784C91O27835C96O27848C97O27860C98O27879C100O27879C102O27897C106O27922C110O27940C112O27947C116O27975C121O27986C126O28010C141O28066C154O28099C165O28016C170O28010C171O28139C174O28147C180O28179C184O28179C190O28212C195O28212C199O28224C201O28240C202O28257C203O28257C205O28277C206O28277C208O28286C217O28316C225O28998C233O29032C243O28293C248O29102,,
code-creation,LazyCompile,10,7659279,0x24c70cea8e66,121,promiseRejectHandler node:internal/process/promises:97:30,0x30ec9dbbe538,~
code-source-info,0x24c70cea8e66,26,2708,3248,C0O2736C6O2785C9O2811C15O2809C21O2847C23O2872C35O2966C44O3054C53O3154C62O2907C65O2907C70O2950C72O3005C75O3005C79O3038C81O3090C93O3090C98O3138C100O3189C112O3189C117O3236C120O3247,,
code-creation,LazyCompile,10,7659333,0x24c70cea90a6,91,getUnhandledRejectionsMode node:internal/process/promises:79:36,0x30ec9dbbe4e8,~
code-source-info,0x24c70cea90a6,26,2179,2677,C0O2213C6O2213C11O2194C16O2244C19O2252C61O2319C65O2353C66O2377C70O2415C71O2441C75O2475C76O2500C80O2533C81O2573C85O2618C86O2638C90O2671,,
code-creation,LazyCompile,10,7659410,0x24c70cea9366,164,unhandledRejection node:internal/process/promises:125:28,0x30ec9dbbe5d8,~
code-source-info,0x24c70cea9366,26,3529,4326,C0O3529C14O3567C21O3579C26O3579C30O3567C32O3624C39O3636C44O3636C48O3624C50O3673C52O3673C54O3698C59O4028C66O4051C71O4055C78O4070C86O4089C95O4089C112O4143C122O4155C126O4051C132O4237C143O4256C146O4237C151O4296C158O4296C163O4325,,
code-creation,LazyCompile,10,7659451,0x24c70cea9576,13,executionAsyncId node:internal/async_hooks:559:26,0x30ec9dbb9970,~
code-source-info,0x24c70cea9576,24,18459,18510,C0O18466C7O18489C9O18488C12O18508,,
code-creation,LazyCompile,10,7659472,0x24c70cea9676,13,triggerAsyncId node:internal/async_hooks:563:24,0x30ec9dbb99c0,~
code-source-info,0x24c70cea9676,24,18535,18584,C0O18542C7O18565C9O18564C12O18582,,
code-creation,LazyCompile,10,7659568,0x24c70cea98c6,177,handledRejection node:internal/process/promises:154:26,0x30ec9dbbe628,~
code-source-info,0x24c70cea98c6,26,4353,5159,C0O4387C5O4410C10O4410C16O4426C18O4463C23O4486C28O4492C33O4523C39O4547C44O4715C57O4825C67O4758C73O4715C79O4840C81O4853C85O4895C87O4906C91O4919C98O4938C108O4964C114O4973C118O4919C123O4991C128O4991C132O5026C133O5033C134O5046C139O5073C145O5078C152O5087C155O5110C161O5117C166O5128C171O5128C176O5158,,
code-creation,LazyCompile,10,7659734,0x24c70cea9c06,442,end node:_http_outgoing:830:45,0x3f8cd555cac8,~
code-source-info,0x24c70cea9c06,124,24315,26020,C0O24347C6O24386C9O24408C12O24426C17O24452C23O24494C26O24519C29O24543C33O24569C39O24587C44O24619C47O24615C64O24696C71O24587C76O24719C78O24731C79O24752C85O24773C90O24780C95O24780C99O24799C115O24799C122O24860C128O24876C134O24930C140O24963C148O24963C156O25010C158O25023C166O25019C172O25010C176O25078C178O25090C179O25110C185O25134C191O25155C196O25162C201O25162C205O25181C206O25201C210O25215C215O25215C219O25241C225O25286C233O25286C239O25330C242O25339C249O25339C256O25374C262O25391C268O25419C276O25440C280O25433C286O25449C299O25419C306O25526C323O25526C328O25571C334O25631C339O25638C346O25660C350O25674C355O25681C360O25681C364O25697C366O25702C370O25711C374O25719C375O25733C379O25845C387O25845C391O25888C396O25899C402O25906C407O25926C413O25947C418O25954C425O25967C430O25988C435O25988C439O26006C441O26018,,
code-creation,LazyCompile,10,7659787,0x24c70cea9fa6,17,Writable.cork node:internal/streams/writable:337:35,0x456580dced8,~
code-source-info,0x24c70cea9fa6,56,10864,10902,C0O10876C11O10897C16O10901,,
code-creation,LazyCompile,10,7659925,0x24c70ceaa256,469,write_ node:_http_outgoing:727:16,0x3f8cd555bd60,~
code-source-info,0x24c70ceaa256,124,21667,23202,C0O21713C6O21753C12O21776C14O21783C18O21809C23O21815C28O21809C29O21854C35O21891C40O21904C45O21904C54O21942C59O21946C65O21985C72O22008C90O22014C95O22008C96O22110C98O22125C104O22141C109O22147C117O22198C123O22215C133O22221C139O22263C143O22287C149O22306C161O22306C168O22354C171O22362C176O22362C182O22397C183O22410C184O22427C190O22442C194O22463C196O22482C200O22503C205O22503C209O22538C215O22554C225O22607C229O22554C233O22651C236O22659C241O22659C246O22683C247O22695C248O22703C252O22723C258O22738C263O22745C269O22771C274O22778C279O22778C283O22790C286O22798C294O22829C299O22798C305O22849C307O22864C313O22889C319O22896C324O22913C331O22919C337O22919C351O22913C356O22978C363O22984C373O22978C378O23015C394O23015C399O23059C406O23065C417O23059C425O23117C442O23117C448O23158C458O23179C462O23158C466O23189C468O23200,,
tick,0xf8e28a,7659982,0,0x0,3,0x11e9ce0,0x24c70cea9c79,0x24c70cea827e,0x158e6c7
code-creation,LazyCompile,10,7660019,0x24c70ceaa686,158,byteLength node:buffer:727:20,0x73467ca6818,~
code-source-info,0x24c70ceaa686,18,21733,22371,C0O21733C2O21756C8O21794C13O21798C21O21827C24O21827C30O21875C34O21886C35O21898C53O21904C58O21898C59O22023C64O22062C71O22069C78O22085C83O22089C87O22102C90O22124C95O22135C96O22144C97O22148C101O22167C111O22192C114O22192C118O22216C119O22232C122O22232C127O22260C129O22287C139O22312C142O22312C146O22336C147O22350C152O22350C157O22369,,
code-creation,LazyCompile,10,7660064,0x24c70ceaa86e,17,_implicitHeader node:_http_server:265:68,0x3f8cd5564a10,~
code-source-info,0x24c70ceaa86e,126,9718,9759,C0O9730C5O9745C10O9730C16O9758,,
code-creation,LazyCompile,10,7660178,0x24c70ceaaa4e,436,writeHead node:_http_server:270:19,0x3f8cd5563ea8,~
code-source-info,0x24c70ceaaa4e,126,9828,12408,C0O9885C3O9900C10O9919C12O9934C21O9954C26O9967C33O9973C38O9967C39O10035C45O10127C47O10146C53O10221C59O10242C61O10263C66O10275C76O10261C80O10306C85O10326C87O10342C91O10363C93O10374C95O10383C97O10382C102O10476C104O10483C109O10487C115O10522C119O10529C124O10533C129O10550C142O10556C147O10550C148O10627C150O10638C154O10632C159O10664C161O10674C164O10671C168O10688C170O10700C177O10719C180O10716C184O10700C190O10648C196O10614C201O10745C205O10775C210O10775C215O10921C217O10933C221O10926C226O10956C228O10964C232O10977C234O10989C241O11005C245O10989C251O10942C256O10908C259O11029C263O11057C269O11074C279O11080C284O11074C285O11163C287O11178C289O11177C295O11238C300O11260C305O11292C310O11264C316O11312C326O11318C331O11312C332O11379C337O11391C348O11410C359O11426C366O11437C370O11452C379O11474C386O11503C395O11524C400O12090C401O12104C405O12272C411O12298C417O12314C418O12335C422O12356C427O12356C433O12394C435O12406,,
code-creation,LazyCompile,10,7660244,0x24c70ceaadee,16,checkInvalidHeaderChar node:_http_common:232:32,0x3f8cd5556028,~
code-source-info,0x24c70ceaadee,121,7274,7335,C0O7284C7O7311C10O7291C15O7333,,
code-creation,LazyCompile,10,7660484,0x24c70ceab286,820,_storeHeader node:_http_outgoing:373:22,0x3f8cd555bb80,~
code-source-info,0x24c70ceab286,124,11068,15405,C0O11238C7O11366C14O11384C18O11403C20O11424C22O11423C25O11415C30O11464C44O11457C57O11457C58O11497C60O11504C64O11519C69O11551C76O11561C90O11519C99O11446C104O11593C109O11597C115O11640C123O11650C127O11670C131O11650C137O11699C139O11714C143O11704C148O11753C150O11760C154O11775C158O11807C165O11817C179O11775C184O11723C189O11686C194O11874C198O11881C203O11885C208O11904C221O11910C226O11904C227O11989C229O12004C233O11994C238O12032C243O12069C246O12066C253O12085C256O12082C270O12032C275O12014C281O11976C286O12153C300O12146C313O12146C314O12172C320O12176C327O12233C333O12272C350O12233C359O12135C362O12323C367O12370C373O12389C379O12401C384O12422C388O12422C391O12420C397O12434C399O12432C409O13021C415O13046C424O13057C429O13104C438O13115C443O13131C448O13142C455O13153C461O13200C465O13131C469O13241C470O13262C474O13275C475O13296C479O13343C485O13369C486O13380C490O13392C491O13413C497O13442C503O13493C509O13527C515O13543C521O13579C526O13591C528O13624C533O13661C535O13659C545O13682C551O13708C557O13760C562O13775C566O13793C573O13760C578O13810C583O13843C590O13860C605O13895C606O13906C610O13920C615O13952C617O13950C627O13982C633O14000C639O14020C645O14111C646O14132C652O14162C658O14199C659O14210C665O14240C671O14272C677O14318C685O14355C688O14391C692O14384C698O14408C700O14406C712O14435C718O14455C723O14496C725O14494C735O14508C736O14529C742O14748C750O14748C754O15099C760O15115C765O15133C771O15148C776O15154C781O15148C782O15193C784O15217C786O15215C789O15206C793O15225C794O15242C798O15380C804O15393C813O15393C819O15404,,
code-creation,LazyCompile,10,7660577,0x24c70ceab96e,17,utcDate node:internal/http:21:17,0x3f8cd5560800,~
code-source-info,0x24c70ceab96e,125,362,413,C0O369C6O384C9O384C12O395C16O411,,
code-creation,LazyCompile,10,7660608,0x24c70ceabc56,62,cache node:internal/http:26:15,0x3f8cd5560850,~
code-source-info,0x24c70ceabc56,125,429,572,C0O446C5O446C11O460C16O471C23O469C29O502C44O537C47O537C51O535C55O502C61O571,,
tick,0x1acf940,7661111,0,0x0,0,0x158f259,0x24c70ceabc85,0x24c70ceab977,0x24c70ceab40a,0x24c70ceaabf9,0x24c70ceaa878,0x24c70ceaa323,0x24c70cea9c79,0x24c70cea827e,0x158e6c7
tick,0x19e1c00,7662612,0,0x0,0,0x158f259,0x24c70ceabc85,0x24c70ceab977,0x24c70ceab40a,0x24c70ceaabf9,0x24c70ceaa878,0x24c70ceaa323,0x24c70cea9c79,0x24c70cea827e,0x158e6c7
tick,0x1b9528d,7663421,0,0x0,0,0x158f259,0x24c70ceabc85,0x24c70ceab977,0x24c70ceab40a,0x24c70ceaabf9,0x24c70ceaa878,0x24c70ceaa323,0x24c70cea9c79,0x24c70cea827e,0x158e6c7
code-creation,LazyCompile,10,7663974,0x24c70ceabdb6,48,setUnrefTimeout node:internal/timers:372:25,0x456580ef398,~
code-source-info,0x24c70ceabdb6,62,11046,11268,C0O11113C5O11113C9O11158C26O11158C32O11215C35O11235C40O11215C45O11253C47O11266,,
code-creation,LazyCompile,10,7664077,0x24c70ceac09e,180,Timeout node:internal/timers:167:17,0x456580eec38,~
code-source-info,0x24c70ceac09e,62,5778,6759,C0O5825C7O5868C9O5880C16O5897C18O5894C23O5917C25O5929C27O5927C32O5950C35O5958C42O5973C52O5999C58O6055C65O5958C71O6182C75O6251C77O6269C81O6280C83O6295C87O6305C89O6320C93O6330C94O6346C98O6478C99O6494C103O6504C105O6520C109O6534C111O6550C115O6560C120O6575C127O6573C131O6602C132O6618C136O6630C140O6647C143O6647C146O6664C148O6669C153O6677C157O6690C159O6695C163O6710C167O6722C173O6722C179O6758,,
code-creation,LazyCompile,10,7664210,0x24c70ceac446,159,insert node:internal/timers:350:16,0x456580ef348,~
code-source-info,0x24c70ceac446,62,10384,11020,C12O10406C15O10406C23O10498C28O10506C33O10526C35O10542C39O10645C46O10657C50O10668C52O10698C60O10698C65O10785C67O10791C71O10804C87O10833C93O10824C97O10868C102O10883C107O10883C112O10902C119O10917C124O10935C129O10935C133O10963C135O10974C141O10997C146O10999C151O10999C158O11019,,
tick,0x7efc336c02cf,7664265,0,0x0,3,0x11e9ce0,0x24c70ceabdde,0x24c70ceabc8d,0x24c70ceab977,0x24c70ceab40a,0x24c70ceaabf9,0x24c70ceaa878,0x24c70ceaa323,0x24c70cea9c79,0x24c70cea827e,0x158e6c7
code-creation,LazyCompile,10,7664309,0x24c70ceac62e,10, node:internal/timers:123:65,0x456580ee678,~
code-source-info,0x24c70ceac62e,62,4431,4456,C0O4443C2O4449C9O4455,,
code-creation,LazyCompile,10,7664359,0x24c70ceac766,55,TimersList node:internal/timers:241:20,0x456580eef20,~
code-source-info,0x24c70ceac766,62,7573,7854,C0O7593C2O7608C6O7671C8O7686C12O7745C14O7757C18O7769C30O7790C38O7777C42O7796C44O7807C48O7818C49O7845C54O7853,,
code-creation,LazyCompile,10,7664454,0x24c70ceac90e,67,insert node:internal/priority_queue:34:9,0x456580f0838,~
script-source,63,node:internal/priority_queue,'use strict';\n\nconst {\n  Array\x2C\n  Symbol\x2C\n} = primordials;\n\nconst kCompare = Symbol('compare');\nconst kHeap = Symbol('heap');\nconst kSetPosition = Symbol('setPosition');\nconst kSize = Symbol('size');\n\n// The PriorityQueue is a basic implementation of a binary heap that accepts\n// a custom sorting function via its constructor. This function is passed\n// the two nodes to compare\x2C similar to the native Array#sort. Crucially\n// this enables priority queues that are based on a comparison of more than\n// just a single criteria.\n\nmodule.exports = class PriorityQueue {\n  constructor(comparator\x2C setPosition) {\n    if (comparator !== undefined)\n      this[kCompare] = comparator;\n    if (setPosition !== undefined)\n      this[kSetPosition] = setPosition;\n\n    this[kHeap] = new Array(64);\n    this[kSize] = 0;\n  }\n\n  [kCompare](a\x2C b) {\n    return a - b;\n  }\n\n  insert(value) {\n    const heap = this[kHeap];\n    const pos = ++this[kSize];\n    heap[pos] = value;\n\n    if (heap.length === pos)\n      heap.length *= 2;\n\n    this.percolateUp(pos);\n  }\n\n  peek() {\n    return this[kHeap][1];\n  }\n\n  percolateDown(pos) {\n    const compare = this[kCompare];\n    const setPosition = this[kSetPosition];\n    const heap = this[kHeap];\n    const size = this[kSize];\n    const item = heap[pos];\n\n    while (pos * 2 <= size) {\n      let childIndex = pos * 2 + 1;\n      if (childIndex > size || compare(heap[pos * 2]\x2C heap[childIndex]) < 0)\n        childIndex = pos * 2;\n      const child = heap[childIndex];\n      if (compare(item\x2C child) <= 0)\n        break;\n      if (setPosition !== undefined)\n        setPosition(child\x2C pos);\n      heap[pos] = child;\n      pos = childIndex;\n    }\n    heap[pos] = item;\n    if (setPosition !== undefined)\n      setPosition(item\x2C pos);\n  }\n\n  percolateUp(pos) {\n    const heap = this[kHeap];\n    const compare = this[kCompare];\n    const setPosition = this[kSetPosition];\n    const item = heap[pos];\n\n    while (pos > 1) {\n      const parent = heap[pos / 2 | 0];\n      if (compare(parent\x2C item) <= 0)\n        break;\n      heap[pos] = parent;\n      if (setPosition !== undefined)\n        setPosition(parent\x2C pos);\n      pos = pos / 2 | 0;\n    }\n    heap[pos] = item;\n    if (setPosition !== undefined)\n      setPosition(item\x2C pos);\n  }\n\n  removeAt(pos) {\n    const heap = this[kHeap];\n    const size = --this[kSize];\n    heap[pos] = heap[size + 1];\n    heap[size + 1] = undefined;\n\n    if (size > 0 && pos <= size) {\n      if (pos > 1 && this[kCompare](heap[pos / 2 | 0]\x2C heap[pos]) > 0)\n        this.percolateUp(pos);\n      else\n        this.percolateDown(pos);\n    }\n  }\n\n  shift() {\n    const heap = this[kHeap];\n    const value = heap[1];\n    if (value === undefined)\n      return;\n\n    this.removeAt(1);\n\n    return value;\n  }\n};\n
code-source-info,0x24c70ceac90e,63,865,1044,C0O892C2O897C4O896C8O921C10O928C19O933C26O940C28O950C32O973C39O980C44O995C51O1007C55O1023C60O1023C66O1043,,
code-creation,LazyCompile,10,7664760,0x24c70ceace36,108,percolateUp node:internal/priority_queue:73:14,0x456580f0948,~
code-source-info,0x24c70ceace36,63,1774,2254,C0O1799C2O1804C4O1803C8O1832C10O1837C12O1836C16O1872C18O1877C20O1876C24O1909C26O1913C30O1936C32O1936C37O1964C39O1973C42O1977C45O1968C49O1993C56O2015C61O2029C63O2042C65O2052C69O2068C73O2107C78O2139C80O2149C83O2153C88O1925C91O2168C93O2178C97O2190C101O2227C107O2253,,
code-creation,LazyCompile,10,7664803,0x24c70ceacfde,8,setPosition node:internal/timers:411:21,0x456580ef4d0,~
code-source-info,0x24c70ceacfde,62,12092,12143,C0O12108C2O12135C7O12142,,
code-creation,LazyCompile,10,7664850,0x24c70cead0d6,52,append node:internal/linkedlist:29:16,0x456580e52b0,~
script-source,61,node:internal/linkedlist,'use strict';\n\nfunction init(list) {\n  list._idleNext = list;\n  list._idlePrev = list;\n}\n\n// Show the most idle item.\nfunction peek(list) {\n  if (list._idlePrev === list) return null;\n  return list._idlePrev;\n}\n\n// Remove an item from its list.\nfunction remove(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  item._idleNext = null;\n  item._idlePrev = null;\n}\n\n// Remove an item from its list and place at the end.\nfunction append(list\x2C item) {\n  if (item._idleNext || item._idlePrev) {\n    remove(item);\n  }\n\n  // Items are linked  with _idleNext -> (older) and _idlePrev -> (newer).\n  // Note: This linkage (next being older) may seem counter-intuitive at first.\n  item._idleNext = list._idleNext;\n  item._idlePrev = list;\n\n  // The list _idleNext points to tail (newest) and _idlePrev to head (oldest).\n  list._idleNext._idlePrev = item;\n  list._idleNext = item;\n}\n\nfunction isEmpty(list) {\n  return list._idleNext === list;\n}\n\nmodule.exports = {\n  init\x2C\n  peek\x2C\n  remove\x2C\n  append\x2C\n  isEmpty\n};\n
code-source-info,0x24c70cead0d6,61,543,980,C0O569C6O587C12O604C15O604C19O802C23O795C27O815C29O830C33O926C40O946C44O956C46O971C51O979,,
code-creation,LazyCompile,10,7664949,0x24c70cead3de,50,remove node:internal/linkedlist:15:16,0x456580e5260,~
code-source-info,0x24c70cead3de,61,260,472,C0O280C6O302C11O329C15O322C19O356C25O378C30O405C34O398C38O423C39O438C43O448C44O463C49O471,,
code-creation,LazyCompile,10,7665049,0x24c70cead5ae,134,_send node:_http_outgoing:318:49,0x3f8cd555c520,~
code-source-info,0x24c70cead5ae,124,9364,10097,C0O9605C6O9624C14O9674C21O9697C28O9714C30O9745C37O9753C44O9800C49O9820C54O9831C66O9855C70O9831C75O9930C80O9956C87O9946C91O9975C96O9997C101O9975C106O10016C107O10033C111O10059C128O10059C133O10095,,
code-creation,LazyCompile,10,7665118,0x24c70cead81e,175,_writeRaw node:_http_outgoing:343:19,0x3f8cd555bb30,~
code-source-info,0x24c70cead81e,124,10168,10989,C0O10217C5O10227C7O10244C13O10385C14O10398C15O10406C21O10448C24O10473C27O10497C31O10514C38O10527C43O10544C49O10631C54O10642C60O10663C65O10663C70O10738C87O10738C92O10770C93O10827C98O10838C110O10845C116O10851C122O10861C126O10838C131O10876C136O10900C143O10892C147O10915C152O10935C157O10915C162O10958C169O10971C171O10969C174O10987,,
code-creation,LazyCompile,10,7665217,0x24c70ceada46,10, node:_http_outgoing:76:64,0x3f8cd555be50,~
code-source-info,0x24c70ceada46,124,2673,2698,C0O2685C2O2691C9O2697,,
code-creation,LazyCompile,10,7665264,0x24c70ceadb26,30,isEncoding node:buffer:528:40,0x73467ca4f70,~
code-source-info,0x24c70ceadb26,18,14754,14886,C0O14769C6O14817C12O14824C20O14842C23O14842C28O14870C29O14884,,
code-creation,LazyCompile,10,7665336,0x24c70ceadc3e,30,normalizeEncoding node:internal/util:141:27,0x30ec9dba9748,~
code-source-info,0x24c70ceadc3e,12,3649,3754,C0O3659C7O3682C14O3700C19O3713C21O3727C22O3730C25O3737C29O3752,,
tick,0x7efc3364c1e7,7665368,0,0x0,2,0x11e9ce0,0x24c70ceadb3d,0x274d30f70539,0x274d30f7031d,0x24c70cead875,0x24c70cead62e,0x24c70cea9d49,0x24c70cea827e,0x158e6c7
code-creation,LazyCompile,10,7665456,0x24c70ceadf5e,487,slowCases node:internal/util:146:19,0x30ec9dba97c0,~
code-source-info,0x24c70ceadf5e,12,3774,5507,C0O3796C56O3824C58O3832C63O3844C65O3858C66O3865C68O3873C75O3891C80O3903C82O3920C83O3927C87O3942C92O3942C98O3963C100O3971C105O3983C107O3997C108O4004C110O4012C115O4024C117O4041C118O4048C120O4073C122O4081C129O4098C136O4124C138O4130C143O4130C150O4144C155O4163C157O4176C158O4183C160O4208C162O4216C167O4229C169O4244C170O4251C172O4259C177O4272C179O4289C180O4296C182O4304C187O4317C189O4331C190O4338C192O4346C197O4359C199O4374C200O4381C202O4389C207O4402C209O4419C210O4426C214O4441C219O4441C225O4462C227O4470C232O4483C234O4497C235O4504C237O4512C242O4525C244O4540C245O4547C247O4555C252O4568C254O4585C255O4592C257O4617C259O4625C264O4639C266O4655C267O4662C269O4670C276O4690C281O4704C283O4720C284O4727C286O4735C291O4749C293O4765C294O4772C296O4780C303O4800C308O4814C310O4830C311O4837C315O4852C320O4852C326O4873C328O4881C333O4895C335O4911C336O4918C338O4926C345O4946C350O4960C352O4976C353O4983C355O5008C357O5016C364O5037C371O5067C373O5073C378O5073C385O5087C390O5110C392O5127C393O5134C395O5159C397O5167C404O5189C411O5218C413O5224C418O5224C425O5238C430O5262C432O5279C433O5286C435O5311C437O5319C444O5342C451O5374C453O5380C458O5380C465O5394C470O5419C472O5438C473O5445C475O5471C477O5479C482O5487C484O5501C486O5506,,
code-creation,LazyCompile,10,7665569,0x24c70ceae376,37,Writable.uncork node:internal/streams/writable:341:37,0x456580dcf60,~
code-source-info,0x24c70ceae376,56,10941,11088,C0O10967C5O10996C11O11010C17O11022C21O11042C27O11057C30O11057C36O11087,,
code-creation,LazyCompile,10,7665694,0x24c70ceae5be,402,clearBuffer node:internal/streams/writable:529:21,0x456580dd290,~
code-source-info,0x24c70ceae5be,56,16266,17740,C0O16266C11O16296C17O16318C23O16350C29O16376C35O16395C36O16402C37O16418C43O16428C48O16443C53O16490C56O16499C63O16506C67O16526C69O16553C70O16560C71O16576C73O16576C75O16594C76O16617C80O16627C82O16646C87O16660C93O16675C100O16709C106O16691C110O16742C122O16752C127O17019C137O17032C150O17057C159O17057C165O17121C169O17113C173O17138C180O17173C201O17138C206O17209C211O17209C217O17293C222O17301C226O17263C231O17270C236O17280C241O17312C251O17322C254O17326C258O17352C266O17375C271O17389C296O17389C301O17485C307O17478C311O17467C316O17495C322O17244C325O17510C331O17529C335O17516C340O17545C345O17545C351O17576C358O17582C363O17597C366O17606C376O17606C382O17626C383O17646C389O17670C391O17690C395O17707C396O17730C401O17739,,
code-creation,LazyCompile,10,7665771,0x24c70ceae9de,109,doWrite node:internal/streams/writable:398:17,0x456580dd0b0,~
code-source-info,0x24c70ceae9de,56,12677,13039,C0O12731C2O12746C6O12755C8O12769C12O12777C13O12791C17O12801C18O12812C22O12832C28O12853C35O12865C43O12861C49O12853C56O12904C60O12927C65O12948C70O12927C78O12976C83O13006C97O12976C102O13018C103O13029C108O13038,,
code-creation,LazyCompile,10,7665798,0x24c70ceaeb76,26,Socket._writev node:net:786:36,0x1c78303fed88,~
code-source-info,0x24c70ceaeb76,117,20125,20185,C0O20147C19O20147C25O20184,,
code-creation,LazyCompile,10,7665860,0x24c70ceaecce,200,writevGeneric node:internal/stream_base_commons:122:23,0x3fe299d2df38,~
code-source-info,0x24c70ceaecce,83,2957,3574,C0O2990C5O3011C7O3010C11O2990C17O3052C22O3070C24O3080C28O3102C31O3134C33O3146C37O3139C42O3165C44O3179C48O3183C52O3173C56O3155C61O3121C66O3205C71O3229C75O3236C81O3214C87O3260C89O3272C93O3265C98O3307C100O3311C104O3322C106O3331C110O3344C114O3336C118O3357C120O3366C123O3370C127O3383C131O3375C135O3281C140O3247C143O3421C148O3428C162O3428C168O3483C169O3491C174O3498C176O3510C180O3523C192O3523C197O3561C199O3572,,
code-creation,LazyCompile,10,7666276,0x24c70ceaef8e,58,_finish node:_http_server:204:52,0x3f8cd5564880,~
code-source-info,0x24c70ceaef8e,126,7537,7686,C0O7544C5O7577C10O7544C14O7588C21O7608C23O7607C27O7588C31O7639C36O7655C41O7665C46O7673C51O7673C57O7685,,
code-creation,LazyCompile,10,7666312,0x24c70ceaf0ae,2,DTRACE_HTTP_SERVER_RESPONSE node:internal/dtrace:9:33,0x3f8cd554a848,~
code-source-info,0x24c70ceaf0ae,119,222,230,C1O229,,
code-creation,LazyCompile,10,7666359,0x24c70ceaf1c6,132,emitStatistics node:internal/http:36:24,0x3f8cd55608f0,~
code-source-info,0x24c70ceaf1c6,125,648,1003,C0O665C8O670C19O713C20O720C21O752C26O778C29O786C34O786C40O821C52O895C55O899C64O917C67O921C77O906C82O936C85O940C94O953C97O957C107O947C115O821C121O986C126O986C131O1002,,
code-creation,LazyCompile,10,7666410,0x24c70ceaf38e,29,_finish node:_http_outgoing:905:53,0x3f8cd555cb18,~
code-source-info,0x24c70ceaf38e,124,26076,26131,C0O26083C5O26095C10O26083C14O26111C22O26111C28O26130,,
tick,0x1173c88,7666428,0,0x0,2,0x11e9ce0,0x24c70ceaefc1,0x24c70cea9db9,0x24c70cea827e,0x158e6c7
code-creation,LazyCompile,10,7666482,0x24c70ceaf69e,50,callback node:internal/streams/writable:550:44,0x24c70ceae470,~
code-source-info,0x24c70ceaf69e,56,16758,16867,C0O16788C5O16793C7O16795C10O16804C14O16793C19O16827C26O16835C30O16839C35O16839C40O16814C45O16775C49O16866,,
code-creation,LazyCompile,10,7666502,0x24c70ceaf7ae,2,nop node:_http_outgoing:85:13,0x3f8cd555bea0,~
code-source-info,0x24c70ceaf7ae,124,2826,2834,C1O2833,,
code-creation,LazyCompile,10,7666523,0x24c70ceaf88e,38,onFinish node:_http_outgoing:825:18,0x3f8cd555be00,~
code-source-info,0x24c70ceaf88e,124,24166,24269,C0O24179C4O24200C10O24217C15O24224C21O24235C22O24242C23O24252C31O24252C37O24268,,
code-creation,LazyCompile,10,7666599,0x24c70ceafac6,294,resOnFinish node:_http_server:787:21,0x3f8cd5564538,~
code-source-info,0x24c70ceafac6,126,25988,27630,C0O26026C5O26054C11O26076C16O26100C28O26125C34O26146C40O26157C46O26171C50O26100C55O26360C60O26373C65O26382C71O26389C76O26404C82O26412C88O26416C92O26360C96O26435C101O26444C106O26444C110O26636C116O26655C121O26670C127O26695C132O26695C136O27017C139O27017C143O27050C148O27050C153O27074C156O27074C160O27096C163O27104C171O27104C177O27143C183O27174C191O27217C196O27217C202O27258C207O27258C213O27290C218O27299C224O27306C229O27330C235O27364C243O27406C248O27424C253O27406C258O27449C259O27475C265O27558C270O27567C275O27567C280O27580C282O27597C287O27597C293O27629,,
code-creation,LazyCompile,10,7666641,0x24c70ceafd9e,35,_dump node:_http_incoming:364:49,0x3f8cd5559308,~
code-source-info,0x24c70ceafd9e,123,12407,12634,C0O12424C6O12439C7O12452C11O12582C19O12582C24O12619C29O12619C34O12633,,
code-creation,LazyCompile,10,7666760,0x24c70ceafee6,60,Readable.removeAllListeners node:internal/streams/readable:918:49,0x456580d0f68,~
code-source-info,0x24c70ceafee6,51,29348,29934,C0O29348C2O29369C7O29376C12O29386C17O29405C22O29405C29O29488C31O29495C40O29865C43O29873C51O29873C57O29921C59O29932,,
code-creation,LazyCompile,10,7666850,0x24c70ceb00a6,363,removeAllListeners node:events:621:32,0x30ec9dbb27e8,~
code-source-info,0x24c70ceb00a6,13,17793,19092,C0O17793C2O17828C7O17843C9O17877C11O17889C12O17967C18O18021C24O18028C29O18047C31O18062C36O18062C40O18060C44O18092C45O18110C51O18130C53O18140C58O18174C65O18185C70O18198C75O18217C77O18232C82O18232C86O18230C92O18279C94O18293C96O18318C98O18330C99O18421C105O18428C110O18463C115O18463C144O18456C172O18456C175O18499C177O18507C182O18529C184O18554C189O18554C194O18445C258O18602C266O18602C271O18648C273O18663C278O18663C282O18661C286O18691C287O18709C291O18722C293O18734C294O18768C296O18774C300O18789C304O18841C309O18841C317O18887C321O18971C325O18978C329O18985C330O18985C335O19013C342O19043C346O19013C352O18992C357O18948C360O19074C362O19086,,
code-creation,LazyCompile,10,7666945,0x24c70ceb0506,61,clearRequestTimeout node:_http_server:773:29,0x3f8cd55644e8,~
code-source-info,0x24c70ceb0506,126,25759,25966,C0O25769C4O25785C9O25804C11O25813C13O25812C18O25837C19O25844C20O25852C28O25852C32O25893C39O25910C41O25909C45O25893C49O25931C51O25935C55O25952C60O25965,,
code-creation,LazyCompile,10,7666976,0x24c70ceb066e,49,detachSocket node:_http_server:249:62,0x3f8cd5564920,~
code-source-info,0x24c70ceb066e,126,9169,9330,C0O9182C5O9196C12O9209C16O9182C20O9229C31O9229C37O9279C38O9299C42O9309C43O9321C48O9329,,
code-creation,LazyCompile,10,7667025,0x24c70ceb07a6,47,spliceOne node:internal/util:370:19,0x30ec9dba9cd0,~
code-source-info,0x24c70ceb07a6,12,10332,10441,C0O10367C2O10363C6O10374C10O10367C15O10395C17O10420C20O10413C23O10407C27O10387C33O10350C36O10433C41O10433C46O10440,,
code-creation,LazyCompile,10,7667064,0x24c70ceb090e,70,clearIncoming node:_http_server:748:23,0x3f8cd5564448,~
code-source-info,0x24c70ceb090e,126,25079,25395,C0O25089C8O25129C14O25143C19O25150C24O25235C26O25256C33O25265C38O25288C44O25311C45O25327C51O25358C62O25358C69O25394,,
code-creation,LazyCompile,10,7667088,0x24c70ceb0a6e,19,get node:internal/streams/readable:1256:8,0x456580d1a98,~
code-source-info,0x24c70ceb0a6e,51,37467,37552,C0O37490C6O37512C11O37527C18O37546,,
code-creation,LazyCompile,10,7667158,0x24c70ceb0bb6,53,Socket.destroySoon node:net:641:40,0x1c78303fe820,~
code-source-info,0x24c70ceb0bb6,117,16681,16820,C0O16697C6O16716C11O16716C15O16735C21O16762C26O16762C32O16789C40O16809C45O16789C52O16819,,
code-creation,LazyCompile,10,7667189,0x24c70ceb0d16,54,Socket.end node:net:593:32,0x1c78303fe600,~
code-source-info,0x24c70ceb0d16,117,15523,15702,C0O15554C5O15561C10O15568C15O15578C20O15582C37O15582C42O15657C47O15657C51O15688C53O15700,,
code-creation,LazyCompile,10,7667262,0x24c70ceb0ebe,242,Writable.end node:internal/streams/writable:594:34,0x456580dd368,~
code-source-info,0x24c70ceb0ebe,56,18011,19339,C0O18056C5O18075C11O18114C14O18130C17O18148C22O18174C28O18216C31O18235C34O18263C36O18271C44O18332C56O18332C62O18367C64O18386C66O18375C71O18401C76O18462C82O18476C84O18489C88O18503C93O18503C97O18520C103O18572C109O18590C115O18922C116O18935C120O18947C131O18947C136O18983C137O18995C143O19022C149O19038C159O19044C167O19103C173O19120C183O19126C189O19166C195O19202C199O19219C205O19237C208O19245C213O19245C221O19283C223O19289C225O19288C229O19302C234O19302C239O19325C241O19337,,
code-creation,LazyCompile,10,7667308,0x24c70ceb113e,61,prefinish node:internal/streams/writable:715:19,0x456580dd478,~
code-source-info,0x24c70ceb113e,56,20966,21253,C0O20997C6O21019C12O21056C20O21088C26O21107C27O21125C31O21139C34O21139C41O21184C42O21202C46O21223C54O21223C60O21252,,
code-creation,LazyCompile,10,7667390,0x24c70ceb1486,152,callFinal node:internal/streams/writable:662:19,0x456580dd428,~
code-source-info,0x24c70ceb1486,56,19672,20946,C0O19672C22O19705C23O19705C25O20457C29O20468C33O20478C42O20493C49O20525C52O20532C60O20532C66O20554C69O20602C74O20614C78O20661C83O20677C99O20661C117O20888C135O20888C142O20925C146O20936C151O20945,,
code-creation,LazyCompile,10,7667447,0x24c70ceb17fe,203,Socket._final node:net:412:35,0x1c78303fe048,~
code-source-info,0x24c70ceb17fe,117,11058,11666,C0O11058C13O11146C16O11155C22O11170C32O11170C36O11210C39O11222C52O11222C58O11261C59O11269C62O11279C68O11292C71O11299C74O11304C75O11308C85O11308C89O11368C96O11368C102O11390C106O11405C110O11424C113O11442C117O11435C121O11453C123O11466C127O11486C130O11491C135O11499C140O11499C146O11517C148O11525C157O11542C159O11538C164O11582C167O11589C170O11594C171O11602C172O11610C177O11621C184O11631C190O11631C196O11628C200O11664C202O11665,,
tick,0xfb5f50,7667494,0,0x0,3,0x11e9ce0,0x24c70ceb14c2,0x24c70ceb1160,0x274d30f7352a,0x24c70ceb0f41,0x24c70ceb0d3b,0x24c70ceb0bc1,0x24c70ceafb8a,0x27ba8ebceb83,0x24c70ceaf8ad,0x24c70ceaf6c1,0x274d30f73111,0x274d30f72f86,0x274d30f590c1
code-creation,LazyCompile,10,7667509,0x24c70ceb1a66,12,get node:net:533:6,0x1c78303fe390,~
code-source-info,0x24c70ceb1a66,117,14193,14246,C0O14215C7O14231C11O14242,,
code-creation,LazyCompile,10,7667568,0x24c70ceb1b76,2,DTRACE_NET_STREAM_END node:internal/dtrace:11:27,0x3f8cd554a968,~
code-source-info,0x24c70ceb1b76,119,301,309,C1O308,,
code-creation,LazyCompile,10,7667589,0x24c70ceb1c4e,19,get node:internal/streams/writable:801:8,0x456580dd6a8,~
code-source-info,0x24c70ceb1c4e,56,23230,23313,C0O23253C6O23275C11O23290C18O23307,,
code-creation,LazyCompile,10,7667678,0x24c70ceb1f7e,58,endReadable node:internal/streams/readable:1314:21,0x456580d1c28,~
code-source-info,0x24c70ceb1f7e,51,38768,38969,C0O38802C5O38821C13O38848C18O38821C23O38874C29O38892C30O38904C34O38916C37O38924C51O38924C57O38968,,
code-creation,LazyCompile,10,7667763,0x24c70ceb2146,25,emitCloseNT node:_http_server:842:21,0x3f8cd5564588,~
code-source-info,0x24c70ceb2146,126,27652,27732,C0O27663C1O27678C5O27688C6O27701C10O27716C18O27716C24O27731,,
code-creation,LazyCompile,10,7667825,0x24c70ceb22d6,160,endReadableNT node:internal/streams/readable:1324:23,0x456580d1c78,~
code-source-info,0x24c70ceb22d6,51,38993,39903,C0O39013C8O39042C13O39060C18O39013C23O39131C29O39154C35O39183C41O39203C47O39210C52O39223C53O39240C57O39259C65O39259C70O39288C76O39307C82O39321C87O39340C90O39348C104O39348C111O39409C117O39575C122O39617C125O39645C131O39784C137O39803C143O39812C147O39839C149O39873C154O39873C159O39902,,
code-creation,LazyCompile,10,7667901,0x24c70ceb264e,322,arrayClone node:events:751:20,0x30ec9dbb2ae0,~
code-source-info,0x24c70ceb264e,13,21217,21671,C0O21356C42O21378C50O21389C62O21397C71O21402C72O21415C80O21426C92O21434C104O21442C113O21447C114O21460C122O21471C134O21479C146O21487C158O21495C167O21500C168O21513C176O21524C188O21532C200O21540C212O21548C224O21556C233O21561C234O21574C242O21585C254O21593C266O21601C278O21609C290O21617C302O21625C311O21630C312O21637C317O21644C321O21669,,
code-creation,LazyCompile,10,7668014,0x24c70ceb2986,153,destroy node:internal/streams/destroy:32:17,0x456580c2f88,~
code-source-info,0x24c70ceb2986,46,672,1455,C0O672C13O701C18O734C23O823C28O834C32O846C40O861C42O868C48O886C54O924C57O924C60O941C62O953C63O1109C77O1109C82O1135C86O1148C87O1160C91O1174C95O1187C96O1199C100O1277C106O1301C115O1306C123O1301C131O1409C145O1409C150O1441C152O1453,,
code-creation,LazyCompile,10,7668061,0x24c70ceb2b7e,42,checkError node:internal/streams/destroy:16:20,0x456580c2cd0,~
code-source-info,0x24c70ceb2b7e,46,254,546,C0O270C4O376C8O433C12O445C18O462C20O472C24O489C28O501C34O518C36O528C41O545,,
code-creation,LazyCompile,10,7668126,0x24c70ceb2e6e,119,_destroy node:internal/streams/destroy:70:18,0x456580c2ff0,~
code-source-info,0x24c70ceb2e6e,46,1474,2404,C0O1474C22O1507C23O1507C28O2004C31O2009C38O2018C45O2009C52O2047C55O2095C60O2107C64O2154C69O2170C85O2154C103O2383C111O2383C118O2403,,
code-creation,LazyCompile,10,7668181,0x24c70ceb316e,177,_destroy node:_http_incoming:176:55,0x3f8cd55592b8,~
code-source-info,0x24c70ceb316e,123,5158,5822,C0O5158C17O5172C20O5182C29O5205C35O5221C39O5234C43O5246C46O5251C54O5251C59O5576C62O5585C71O5601C76O5608C85O5626C98O5641C103O5646C108O5653C118O5653C123O5687C135O5701C145O5687C150O5687C156O5793C170O5793C176O5821,,
code-creation,LazyCompile,10,7668214,0x24c70ceb337e,31,onError node:_http_incoming:374:17,0x3f8cd5558e98,~
code-source-info,0x24c70ceb337e,123,12653,12884,C0O12811C8O12811C15O12834C20O12847C25O12868C30O12883,,
code-creation,LazyCompile,10,7668252,0x24c70ceb34ae,142,onDestroy node:internal/streams/destroy:73:21,0x24c70ceb2cd8,~
code-source-info,0x24c70ceb34ae,46,1535,1976,C0O1547C6O1567C7O1574C8O1585C12O1592C18O1615C21O1620C26O1650C29O1655C34O1676C48O1676C53O1704C57O1719C58O1728C62O1746C66O1761C67O1770C71O1789C77O1827C80O1827C84O1847C88O1864C93O1872C109O1872C116O1930C121O1938C134O1938C141O1975,,
code-creation,LazyCompile,10,7668319,0x24c70ceb36e6,61,emitCloseNT node:internal/streams/destroy:126:21,0x456580c3090,~
code-source-info,0x24c70ceb36e6,46,2515,2755,C0O2541C5O2574C10O2593C12O2606C13O2621C17O2635C21O2648C22O2663C26O2678C30O2690C38O2705C40O2712C46O2735C54O2735C60O2754,,
code-creation,LazyCompile,10,7668463,0x24c70ceb38fe,405,onStreamRead node:internal/stream_base_commons:167:22,0x3fe299d2e068,~
code-source-info,0x24c70ceb38fe,83,4109,6213,C0O4141C7O4157C9O4156C13O4195C16O4218C18O4223C20O4222C24O4241C26O4248C28O4247C32O4261C36O4268C37O4278C42O4293C48O4314C50O4327C52O4355C54O4362C56O4361C60O4376C62O4397C64O4414C66O4413C70O4424C78O4441C83O4474C85O4481C87O4480C91O4500C93O4547C97O4565C102O4569C108O4602C110O4609C118O4618C124O4677C131O4693C133O4692C137O4732C153O4732C159O4798C164O4798C170O4819C174O4840C175O4855C179O4882C185O4922C190O4922C195O4942C197O4968C204O4976C211O4976C217O4968C222O5025C224O5036C225O5044C226O5054C231O5067C232O5074C233O5082C235O5096C237O5092C242O5238C249O5246C256O5246C262O5238C267O5282C268O5289C269O5351C274O5366C280O5384C282O5395C284O5394C289O5417C291O5424C293O5423C297O5438C303O5457C305O5468C307O5467C312O5497C322O5514C324O5513C328O5497C334O5752C340O5789C345O5789C350O5807C352O5962C359O5970C366O5970C372O5962C377O6008C378O6015C379O6176C386O6176C391O6199C398O6199C404O6212,,
code-creation,LazyCompile,10,7668511,0x24c70ceb3c86,5,get node:net:565:16,0x1c78303fe4f0,~
code-source-info,0x24c70ceb3c86,117,14877,14914,C0O14898C4O14910,,
tick,0x7efc336c02cf,7668556,0,0x0,3,0x11e9ce0,0x24c70ceb391a
code-creation,LazyCompile,10,7668614,0x24c70ceb40c6,14,onReadableStreamEnd node:net:634:29,0x1c78303fd918,~
code-source-info,0x24c70ceb40c6,117,16568,16639,C0O16585C6O16606C8O16617C13O16638,,
code-creation,LazyCompile,10,7668659,0x24c70ceb420e,132,socketOnEnd node:_http_server:600:21,0x3f8cd5564218,~
code-source-info,0x24c70ceb420e,126,20373,20875,C0O20428C5O20428C10O20441C12O20460C14O20449C19O20473C27O20473C31O20576C34O20590C39O20590C47O20630C53O20662C58O20662C64O20688C69O20697C75O20717C80O20732C85O20741C89O20748C92O20725C97O20759C103O20787C109O20814C115O20833C121O20863C126O20863C131O20874,,
code-creation,LazyCompile,10,7668783,0x24c70ceb46ae,47,afterShutdown node:net:436:23,0x1c78303fd828,~
code-source-info,0x24c70ceb46ae,117,11691,11844,C0O11716C7O11723C9O11722C13O11741C21O11782C26O11806C31O11741C36O11831C41O11831C46O11843,,
code-creation,LazyCompile,10,7668843,0x24c70ceb4836,230,onFinish node:internal/streams/writable:665:20,0x24c70ceb12e0,~
code-source-info,0x24c70ceb4836,56,19732,20453,C0O19744C6O19764C26O19794C29O19794C33O19764C38O19826C39O19833C40O19844C44O19851C50O19864C59O19879C63O19887C67O19930C74O19936C76O19935C80O19949C87O19949C93O19979C95O20004C99O19984C104O20027C106O20044C110O20047C115O20013C120O19966C123O20068C136O20102C144O20068C151O20120C159O20124C165O20151C169O20169C173O20183C176O20190C184O20190C189O20378C198O20393C202O20403C207O20411C223O20411C229O20452,,
code-creation,LazyCompile,10,7668934,0x24c70ceb4b76,127,finish node:internal/streams/writable:741:16,0x456580dd518,~
code-source-info,0x24c70ceb4b76,56,21584,22295,C0O21604C6O21619C10O21625C11O21640C15O21677C17O21683C19O21682C23O21696C30O21696C36O21722C38O21747C42O21727C47O21766C49O21783C53O21786C57O21756C62O21709C65O21804C73O21804C78O21833C84O21993C89O22033C92O22059C98O22189C104O22210C110O22219C114O22241C116O22273C121O22273C126O22294,,
code-creation,LazyCompile,10,7669028,0x24c70ceb4eee,375,Socket._destroy node:net:652:37,0x1c78303fe8b0,~
code-source-info,0x24c70ceb4eee,117,16860,17806,C0O16860C9O16880C19O16880C23O16901C27O16917C31O16942C34O16950C38O16981C49O16996C51O16995C55O16981C59O16966C64O16929C67O17015C77O17015C81O17033C84O17042C97O17057C107O17078C111O17066C116O17092C126O17092C130O17139C138O17139C140O17248C149O17253C157O17272C162O17280C166O17265C170O17295C179O17300C187O17322C192O17330C196O17315C200O17349C205O17354C210O17362C220O17362C225O17454C230O17459C239O17476C241O17474C245O17486C251O17499C255O17511C261O17526C265O17538C273O17568C277O17587C282O17595C295O17595C301O17631C304O17640C310O17655C320O17655C324O17680C327O17685C338O17705C342O17713C345O17722C350O17730C356O17759C359O17764C364O17772C369O17772C374O17805,,
code-creation,LazyCompile,10,7669078,0x24c70ceb5256,63,clearTimeout node:timers:184:22,0x456580e47a0,~
code-source-info,0x24c70ceb5256,60,5184,5529,C0O5196C4O5215C10O5233C11O5250C15O5262C18O5262C22O5283C23O5290C24O5297C36O5385C43O5400C47O5413C49O5454C50O5479C54O5493C57O5493C62O5528,,
code-creation,LazyCompile,10,7669173,0x24c70ceb54fe,85,Server._emitCloseIfDrained node:net:1644:48,0x1c78303ff3d8,~
code-source-info,0x24c70ceb54fe,117,43952,44330,C0O43959C8O43959C12O44008C18O44024C24O44044C32O44106C39O44120C44O44044C49O44139C50O44146C51O44154C58O44186C60O44185C67O44241C78O44154C84O44329,,
code-creation,LazyCompile,10,7669232,0x24c70ceb5686,40, node:net:670:24,0x24c70ceb4d80,~
code-source-info,0x24c70ceb5686,117,17368,17447,C0O17382C10O17382C14O17409C19O17414C29O17428C32O17414C39O17446,,
code-creation,LazyCompile,10,7669269,0x24c70ceb57e6,46,socketOnClose node:_http_server:586:23,0x3f8cd5564178,~
code-source-info,0x24c70ceb57e6,126,20039,20166,C0O20059C8O20059C12O20091C17O20109C27O20091C32O20134C35O20154C40O20134C45O20165,,
code-creation,LazyCompile,10,7669305,0x24c70ceb592e,92,freeParser node:_http_common:192:20,0x3f8cd5555f88,~
code-source-info,0x24c70ceb592e,121,6102,6687,C0O6128C4O6157C10O6181C15O6181C19O6198C22O6198C26O6223C31O6235C36O6235C43O6248C48O6389C56O6389C63O6582C68O6582C72O6602C76O6617C77O6628C81O6642C85O6660C86O6674C91O6686,,
code-creation,LazyCompile,10,7669339,0x24c70ceb5abe,38,free node:internal/freelist:21:7,0x3f8cd5558340,~
code-source-info,0x24c70ceb5abe,122,325,445,C0O346C5O351C10O365C14O358C19O383C24O388C29O388C34O405C35O417C36O428C37O441,,
code-creation,LazyCompile,10,7669375,0x24c70ceb5c06,44,abortIncoming node:_http_server:592:23,0x3f8cd55641c8,~
code-source-info,0x24c70ceb5c06,126,20190,20351,C0O20221C6O20256C11O20256C16O20273C23O20281C29O20281C34O20273C39O20205C43O20350,,
tick,0x7efc336d14b6,8242093,0,0x0,8
tick,0xee3a80,8242800,0,0x0,1
tick,0xee7f41,8243902,0,0x0,1
tick,0xe7041a,8244957,0,0x0,1
tick,0xee8010,8246047,0,0x0,1
tick,0xed268e,8247148,0,0x0,1
tick,0x7efc336d14b6,8248190,0,0x0,8
tick,0xee7ee6,8249247,0,0x0,1
tick,0xee3a80,8250334,0,0x0,1
tick,0x10c34dc,8251415,0,0x0,1
tick,0xed2638,8252478,0,0x0,1
tick,0xeeccee,8253572,0,0x0,1
tick,0xeeccea,8254628,0,0x0,1
tick,0xee3a80,8255714,0,0x0,1
markcompact,begin,0,540718,1745847827738
tick,0x7efc336c600b,8256799,0,0x0,1
new,MemoryChunk,0x12d2a1980000,262144
new,MemoryChunk,0x9d4defc0000,262144
tick,0x7efc337b3374,8260071,0,0x0,1
new,MemoryChunk,0x120628300000,262144
tick,0x7efc337b40bd,8261204,0,0x0,1
delete,MemoryChunk,0xf8ce8cc0000
delete,MemoryChunk,0x2d62980000
delete,MemoryChunk,0x74aa2480000
delete,MemoryChunk,0x95b31d80000
markcompact,end,0,550477,1745847827743
delete,MemoryChunk,0x11a213300000
delete,MemoryChunk,0x1760b9dc0000
delete,MemoryChunk,0x2b1a6c740000
delete,MemoryChunk,0x326a02400000
delete,MemoryChunk,0x199994f80000
delete,MemoryChunk,0x114898080000
delete,MemoryChunk,0x19cfc2f80000
delete,MemoryChunk,0x121deb500000
delete,MemoryChunk,0x31e719400000
delete,MemoryChunk,0x18f1d6c80000
delete,MemoryChunk,0x14888c40000
delete,MemoryChunk,0x245b1480000
delete,MemoryChunk,0x30365e500000
delete,MemoryChunk,0x394c92d80000
delete,MemoryChunk,0x13b659f00000
delete,MemoryChunk,0x386df3e80000
delete,MemoryChunk,0x6034afc0000
delete,MemoryChunk,0xcdef9b80000
delete,MemoryChunk,0x1e348100000
delete,MemoryChunk,0xb8e18100000
delete,MemoryChunk,0x202ec5f80000
delete,MemoryChunk,0x89c1fa00000
delete,MemoryChunk,0x56b7a300000
delete,MemoryChunk,0x286a71bc0000
delete,MemoryChunk,0x173fd9080000
delete,MemoryChunk,0x1f7ebecc0000
delete,MemoryChunk,0x31f39f740000
delete,MemoryChunk,0x2e5212b80000
tick,0x7efc336cabcb,8262269,0,0x0,1
tick,0x7efc336d14b6,8522780,0,0x0,8
tick,0x7efc336d14b6,8522808,0,0x0,8
code-creation,LazyCompile,10,8523013,0x1206283105b6,140,processTimers node:internal/timers:485:25,0x456580ef6e8,~
code-source-info,0x1206283105b6,62,14285,14737,C0O14297C10O14297C15O14339C23O14350C31O14371C33O14405C35O14428C42O14445C47O14445C52O14428C54O14470C61O14477C66O14512C75O14505C83O14528C91O14544C100O14550C108O14564C110O14563C112O14575C113O14590C117O14621C120O14621C125O14656C127O14688C130O14688C135O14416C138O14724C139O14733,,
code-creation,LazyCompile,10,8523114,0x120628310776,14,peek node:internal/priority_queue:45:7,0x456580f0888,~
code-source-info,0x120628310776,63,1052,1087,C0O1061C2O1073C4O1072C10O1079C13O1083,,
code-creation,LazyCompile,10,8523343,0x120628310a46,599,listOnTimeout node:internal/timers:505:25,0x456580ef758,~
code-source-info,0x120628310a46,62,14763,17201,C0O14800C5O14812C15O14812C20O14879C22O14894C24O14918C31O14922C36O14922C42O14918C44O14967C48O14959C52O15137C54O15146C59O15165C63O15179C66O15193C73O15204C79O15217C83O15179C88O15177C92O15231C108O15252C118O15239C122O15264C129O15279C137O15279C142O15305C158O15305C163O15368C164O15375C165O15391C169O15423C172O15423C177O15458C179O15546C186O15548C191O15548C196O15586C200O15592C202O15591C206O15628C212O15661C218O15685C219O15702C223O15721C227O15731C229O15730C234O15752C247O15760C255O15775C262O15779C267O15812C274O15812C278O15852C280O15877C291O15903C293O15902C303O15877C308O15948C310O15971C316O15988C323O15996C330O16051C335O16071C337O16111C342O16111C348O16148C355O16167C366O16148C382O16219C383O16229C389O16246C396O16259C401O16306C405O16298C409O16325C414O16345C425O16325C432O16393C438O16413C444O16433C450O16457C451O16474C455O16493C459O16503C461O16502C466O16524C479O16532C487O16547C494O16551C499O16584C506O16584C521O16631C528O16631C532O14905C538O16872C548O16872C553O17092C557O17105C562O17117C565O17101C570O17134C579O17154C581O17168C588O17183C593O17183C598O17200,,
code-creation,LazyCompile,10,8523471,0x120628310ea6,19,peek node:internal/linkedlist:9:14,0x456580e51f8,~
code-source-info,0x120628310ea6,61,131,210,C0O151C7O161C12O171C13O183C14O198C18O208,,
code-creation,LazyCompile,10,8523532,0x120628310fa6,12,resetCache node:internal/http:32:20,0x3f8cd55608a0,~
code-source-info,0x120628310fa6,125,593,623,C0O600C4O609C11O622,,
code-creation,LazyCompile,10,8523624,0x120628311096,34,shift node:internal/priority_queue:107:8,0x456580f0a20,~
code-source-info,0x120628311096,63,2600,2750,C0O2622C2O2627C4O2626C8O2653C10O2657C14O2666C16O2697C17O2704C18O2715C26O2715C31O2733C33O2746,,
code-creation,LazyCompile,10,8523693,0x1206283111ee,132,removeAt node:internal/priority_queue:93:11,0x456580f09b8,~
code-source-info,0x1206283111ee,63,2266,2591,C0O2291C2O2296C4O2295C8O2321C10O2328C19O2333C26O2340C28O2362C31O2356C34O2350C38O2372C40O2382C45O2387C49O2405C50O2414C57O2425C62O2442C64O2450C71O2462C73O2461C79O2481C82O2485C85O2476C91O2495C95O2471C103O2502C108O2520C113O2520C120O2562C125O2562C131O2590,,
tick,0x7efc336d14b6,8858086,0,0x0,8
tick,0x165bda9,8859270,0,0x0,0,0x24c70cea10a5,0x24c70cea0e91,0x27ba8ebceb83,0x24c70ce9b39d,0x24c70ce99914
code-creation,RegExp,3,8859479,0x7efc240475e0,940,^(?=$|/)
code-creation,RegExp,3,8860030,0x7efc24047a00,780,[^\\t\\x20-\\x7e\\x80-\\xff]
tick,0x7efc336c66dd,8860596,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,8862175,0,0x0,8
tick,0xec571e,8862424,0,0x0,6
tick,0xecfc6c,8863523,0,0x0,1
tick,0xed3ecc,8864581,0,0x0,1
tick,0xed3ecc,8865637,0,0x0,1
tick,0xeee4a7,8866714,0,0x0,1
tick,0x7efc337b732f,8867779,0,0x0,1
tick,0xee7ee1,8868859,0,0x0,1
tick,0xee7f57,8869937,0,0x0,1
tick,0xee802f,8870997,0,0x0,1
tick,0xee7f32,8872093,0,0x0,1
tick,0xeeccea,8873133,0,0x0,1
tick,0xeeccea,8874203,0,0x0,1
tick,0xee7f08,8875285,0,0x0,1
tick,0xe703f1,8876371,0,0x0,1
tick,0xee7ff3,8877447,0,0x0,1
tick,0xee7f1b,8878511,0,0x0,1
markcompact,begin,0,576166,1745847828361
tick,0xece433,8879573,0,0x0,1
tick,0x7efc337b3376,8880647,0,0x0,1
markcompact,end,0,577999,1745847828362
delete,MemoryChunk,0x31e719400000
delete,MemoryChunk,0x121deb500000
delete,MemoryChunk,0x19cfc2f80000
delete,MemoryChunk,0x114898080000
delete,MemoryChunk,0x11a213300000
delete,MemoryChunk,0x89c1fa00000
delete,MemoryChunk,0x1e348100000
delete,MemoryChunk,0x31f39f740000
delete,MemoryChunk,0x3f431e380000
delete,MemoryChunk,0x2de4d8cc0000
delete,MemoryChunk,0xfc77b780000
delete,MemoryChunk,0x1994bd100000
tick,0x7efc336d14b6,9519937,0,0x0,8
tick,0x7efc336d14b6,10327594,0,0x0,8
tick,0x11c340f,10328672,0,0x0,0,0x1205de0,0x16231c8,0x24c70cea6e57,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
tick,0x7efc336ca95d,10329744,1,0xaa3ba0,6,0xd44a10,0x24c70ceb4fca,0x24c70ceb2e9b,0x24c70ceb2a17,0x24c70ce94f77,0x27ba8ebceb83,0x24c70ceb4bbf,0x274d30f590d2
tick,0x7efc336d14b6,10519109,0,0x0,8
tick,0x7efc336d14b6,10783875,0,0x0,8
tick,0x10a9182,10784358,0,0x0,0,0xf48b80,0x24c70ce99c25,0x24c70ce99855
code-creation,RegExp,3,10784818,0x7efc24047d80,1080,(br|brotli)
tick,0x7efc336c66dd,10785499,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,10854067,0,0x0,8
tick,0x1557f0a,10854861,0,0x0,0,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
tick,0x7efc336d14b6,10991880,0,0x0,8
tick,0x1a51a17,10992308,0,0x0,8
tick,0x7efc336d14b6,11135337,0,0x0,8
tick,0x159bc80,11135419,0,0x0,0,0x24c70ce95b58
tick,0xd0320c,11136490,0,0x0,6
tick,0x7efc336d14b6,11305342,0,0x0,8
tick,0x7efc336c66dd,11306373,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,11499884,0,0x0,8
tick,0xd1f2de,11500620,0,0x0,0,0x11f3750,0x24c70cea875f,0x24c70cea822d,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea7dc2,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea6eec,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
tick,0x7efc336d14b6,11519410,0,0x0,8
tick,0x7efc336d14b6,13431019,0,0x0,8
tick,0x7efc336d2d50,13431055,0,0x0,8
tick,0x107e1c4,13432106,0,0x0,0,0xf4b5c0,0x24c70ceaa86e,0x24c70ceaa323,0x24c70cea9c79,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,13520028,0,0x0,8
tick,0x7efc336d14b6,14268423,0,0x0,8
tick,0x156685e,14268617,0,0x0,0,0x274d30f6938e,0x274d30f60de9,0x24c70ce95b6e
tick,0x155823a,14269718,0,0x0,0,0x274d30f59746,0x274d30f595ca,0x274d30f5907c
tick,0x7efc336d14b6,14520227,0,0x0,8
tick,0x7efc336d14b6,14674819,0,0x0,8
tick,0x7efc336c66dd,14675953,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,14924825,0,0x0,8
tick,0x11fc560,14925112,0,0x0,0,0x11fc560,0x27ba8ebce3e1,0x27ba8ebcc0fc,0x274d30f69103,0x24c70ce974fd,0x24c70ce94c4a,0x24c70ce96e1e,0x27ba8ebceb83,0x24c70ce95b9b
tick,0x155ac11,14926195,0,0x0,0,0x24c70ceb4bbf,0x274d30f590d2
tick,0x7efc336d14b6,15053187,0,0x0,8
tick,0x15964a5,15053386,0,0x0,0,0x274d30f68e2a,0x274d30f60c9f,0x24c70ce95b6e
tick,0x1562013,15054479,0,0x0,0,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,15242102,0,0x0,8
tick,0x156a62e,15242818,0,0x0,0,0x24c70ce9b1bd,0x24c70ce99914
tick,0xa76230,15243858,0,0x0,8
tick,0x7efc336d14b6,15427604,0,0x0,8
tick,0x7efc336d2d50,15427639,0,0x0,8
tick,0x7efc336c66dd,15428770,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,15519311,0,0x0,8
tick,0x7efc336d14b6,15597646,0,0x0,8
tick,0x7efc3364c0e0,15597921,0,0x0,0,0xf4b5c0,0x274d30f6675c,0x274d30f6116a,0x274d30f60c83,0x24c70ce95b6e
tick,0x7efc336c66dd,15599060,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,15760553,0,0x0,8
tick,0x1a4e335,15761061,0,0x0,8
tick,0x1659a4f,15762145,0,0x0,0,0x274d30f701d6,0x274d30f6fffe,0x24c70ceb0be3,0x24c70ceafb8a,0x27ba8ebceb83,0x24c70ceaf8ad,0x24c70ceaf6c1,0x274d30f73111,0x274d30f72f86,0x274d30f590c1
tick,0x7efc336d14b6,15918329,0,0x0,8
tick,0xf46d70,15918626,0,0x0,0,0xf4b5c0,0x274d30f64c51,0x274d30f617b5,0x274d30f6115a,0x274d30f60c83,0x24c70ce95b6e
tick,0x7efc336c66dd,15919781,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,16071704,0,0x0,8
tick,0x16539e5,16072023,0,0x0,0,0x24c70ce97523,0x24c70ce94c4a,0x24c70ce96e1e,0x27ba8ebceb83,0x24c70ce95b9b
tick,0x7efc336d14b6,16226479,0,0x0,8
tick,0x7efc336d14b6,16393304,0,0x0,8
tick,0x15c5040,16394109,0,0x0,0,0x24c70cea93e4,0x24c70cea8ea7,0x15c9ed9,0x24c70cea8782,0x24c70cea822d,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea7dc2,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea6eec,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
tick,0x7efc336d14b6,16518956,0,0x0,8
tick,0x7efc336d14b6,16556103,0,0x0,8
tick,0x7efc336c66dd,16557130,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,16739102,0,0x0,8
tick,0xa46681,16739154,0,0x0,6
tick,0x7efc336c66dd,16740408,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,16914805,0,0x0,8
tick,0xd277c0,16915552,0,0x0,2,0x11f3750,0x24c70cea875f,0x24c70cea822d,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea7dc2,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea6eec,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
tick,0x7efc336d14b6,17072207,0,0x0,8
tick,0xd43293,17072809,1,0xbee060,6,0xd44a10,0x24c70cea375a,0x24c70cea1f13,0x24c70cea1148,0x24c70cea0e91,0x27ba8ebceb83,0x24c70ce9b39d,0x24c70ce99914
tick,0x7efc336d14b6,17236321,0,0x0,8
tick,0x164b65c,17236534,0,0x0,0,0x24c70ce979be,0x24c70ce973e8,0x24c70ce94c4a,0x24c70ce96e1e,0x27ba8ebceb83,0x24c70ce95b9b
tick,0x7efc336d14b6,17518928,0,0x0,8
tick,0x7efc336d14b6,18986095,0,0x0,8
tick,0x191e25c,18986948,0,0x0,0,0x158f259,0x24c70ceabc85,0x24c70ceab977,0x24c70ceab40a,0x24c70ceaabf9,0x24c70ceaa878,0x24c70ceaa323,0x24c70cea9c79,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,19519253,0,0x0,8
tick,0x1595967,19519310,0,0x0,0,0x120628310780,0x1206283105e5
tick,0x7efc336d14b6,21508309,0,0x0,8
tick,0x7efc336d14b6,21518815,0,0x0,8
tick,0x7efc336d14b6,26984521,0,0x0,8
tick,0x1646760,26985333,0,0x0,0,0x24c70ceac462,0x24c70ceabdde,0x24c70ceabc8d,0x24c70ceab977,0x24c70ceab40a,0x24c70ceaabf9,0x24c70ceaa878,0x24c70ceaa323,0x24c70cea9c79,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,27520296,0,0x0,8
tick,0x7efc336d14b6,28776113,0,0x0,8
tick,0x7efc336d14b6,29518715,0,0x0,8
tick,0xfe2a11,29518814,0,0x0,0,0xd49c20,0x274d30f72ce4,0x274d30f72af8,0x120628310c56,0x120628310638
tick,0x7efc336d14b6,58251838,0,0x0,8
tick,0x15a07b7,58251957,0,0x0,0,0x274d30f60c4d,0x24c70ce95b6e
tick,0x7efc336c66dd,58253122,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,58518916,0,0x0,8
tick,0x7efc336d14b6,58518996,0,0x0,8
tick,0x7efc336d14b6,77978853,0,0x0,8
tick,0x164b68b,77979806,0,0x0,0,0x274d30f71fe4,0x24c70ceaed8e,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
code-creation,LazyCompile,10,77979960,0x1206283281be,176,setStreamTimeout node:internal/stream_base_commons:245:26,0x3fe299d2e0b8,~
code-source-info,0x1206283281be,83,6240,7001,C0O6271C6O6286C8O6298C9O6302C11O6315C15O6375C23O6383C30O6554C37O6572C39O6571C43O6554C47O6587C48O6597C53O6610C57O6646C62O6646C66O6685C74O6685C82O6743C84O6748C89O6760C92O6781C97O6792C102O6792C108O6760C113O6758C117O6816C119O6825C121O6824C126O6836C128O6841C130O6840C136O6851C138O6850C142O6864C146O6873C150O6909C155O6909C159O6948C167O6948C173O6987C175O6999,,
code-creation,LazyCompile,10,77980066,0x1206283284ee,114,getTimerDuration node:internal/timers:383:26,0x456580ef408,~
code-source-info,0x1206283284ee,62,11360,11863,C0O11378C5O11378C10O11409C11O11419C18O11427C21O11427C27O11456C43O11462C48O11456C49O11582C51O11594C53O11592C58O11613C61O11621C68O11636C81O11750C93O11687C100O11621C106O11821C110O11840C111O11848C113O11861,,
code-creation,LazyCompile,10,77980130,0x12062832869e,56,compareTimersLists node:internal/timers:400:28,0x456580ef458,~
code-source-info,0x12062832869e,62,11892,12070,C0O11924C5O11935C9O11931C13O11945C14O11960C19O11979C24O11986C28O11982C33O11996C35O12006C36O12017C41O12024C45O12020C50O12034C52O12043C53O12050C55O12068,,
code-creation,LazyCompile,10,77980298,0x12062832895e,28,Timeout.refresh node:internal/timers:210:37,0x456580eed18,~
code-source-info,0x12062832895e,62,7082,7172,C0O7089C2O7098C4O7097C9O7111C12O7111C18O7136C21O7136C25O7158C27O7170,,
code-creation,LazyCompile,10,77980328,0x120628328a6e,12,unrefActive node:internal/timers:317:21,0x456580ef2a8,~
code-source-info,0x120628328a6e,62,9590,9630,C0O9601C5O9601C11O9629,,
code-creation,LazyCompile,10,77980376,0x120628328b86,126,insertGuarded node:internal/timers:325:23,0x456580ef2f8,~
code-source-info,0x120628328b86,62,9873,10367,C0O9917C5O9933C6O9943C15O9975C16O9982C17O9986C29O9986C34O10042C39O10056C43O10081C45O10080C50O10105C51O10121C55O10134C61O10134C66O10177C70O10200C74O10217C77O10217C82O10241C84O10261C86O10260C90O10251C95O10276C99O10293C102O10293C107O10323C110O10323C113O10344C115O10349C120O10357C125O10366,,
code-creation,LazyCompile,10,77980684,0x12062832906e,200,unenroll node:timers:78:18,0x456580e4628,~
code-source-info,0x12062832906e,60,2349,3516,C0O2369C6O2385C7O2392C8O2396C9O2412C13O2423C15O2432C17O2431C22O2452C29O2480C31O2479C36O2565C41O2569C48O2597C50O2596C55O2633C62O2650C64O2649C68O2633C72O2672C77O2674C82O2674C87O3044C89O3053C91O3052C96O3128C101O3143C106O3128C111O3175C118O3187C122O3200C126O3226C129O3228C134O3228C141O3251C149O3251C153O3288C158O3303C163O3317C168O3303C173O3347C178O3372C184O3391C189O3391C192O3491C194O3509C199O3515,,
tick,0x7efc336d14b6,78519461,0,0x0,8
tick,0x106c651,78519507,0,0x0,5
code-creation,LazyCompile,10,78519680,0x1206283293e6,160,percolateDown node:internal/priority_queue:49:16,0x456580f08d8,~
code-source-info,0x1206283293e6,63,1104,1759,C0O1132C2O1137C4O1136C8O1172C10O1177C12O1176C16O1209C18O1214C20O1213C24O1239C26O1244C28O1243C32O1269C34O1273C38O1300C40O1296C46O1300C51O1334C53O1338C56O1342C60O1353C62O1368C69O1395C72O1390C78O1405C82O1378C89O1419C94O1432C96O1449C100O1474C102O1478C106O1502C113O1523C118O1537C120O1550C124O1589C129O1620C131O1630C135O1645C140O1285C143O1673C145O1683C149O1695C153O1732C159O1758,,
tick,0x10dcc00,78520539,0,0x0,6
tick,0x7efc336d14b6,82983338,0,0x0,8
tick,0x7efc336d14b6,171569277,0,0x0,8
tick,0xebc988,171569323,0,0x0,5
tick,0x7efc336d14b6,171574270,0,0x0,8
code-creation,LazyCompile,10,171574595,0x120628329ba6,45,prepareError node:_http_common:250:22,0x3f8cd55560c8,~
code-source-info,0x120628329ba6,121,7704,7876,C0O7733C5O7749C7O7769C12O7769C16O7747C20O7806C28O7831C31O7865C39O7843C44O7875,,
tick,0x1257f00,171574657,0,0x0,3,0x11e9ce0,0x24c70cea4dee,0x24c70cea4ab0
code-creation,LazyCompile,10,171574776,0x120628329d9e,145,socketOnError node:_http_server:662:23,0x3f8cd55643a8,~
code-source-info,0x120628329d9e,126,22442,23055,C0O22482C11O22482C17O22529C27O22541C30O22529C36O22561C41O22568C55O22568C62O22613C68O22630C74O22643C79O22662C81O22689C102O22743C107O22801C109O22859C114O22904C116O22938C121O22979C123O23006C128O23006C133O23038C138O23038C144O23054,,
code-creation,LazyCompile,10,171574913,0x12062832a006,360,bytesWritten node:net:802:50,0x1c78303feee8,~
code-source-info,0x12062832a006,117,20646,21554,C0O20670C5O20708C10O20746C15O20794C20O20813C22O20838C23O20855C24O20876C48O20870C76O20870C79O20910C87O20927C89O20916C100O20945C106O20951C114O20966C118O20973C124O20987C130O20997C136O20973C146O20859C212O21015C217O21019C223O21119C225O21131C229O21124C234O21166C236O21170C240O21191C248O21222C250O21211C255O21253C268O21280C270O21289C273O21296C278O21313C283O21326C288O21296C301O21140C306O21106C311O21352C315O21415C321O21465C334O21488C336O21497C339O21504C344O21504C357O21539C359O21552,,
code-creation,LazyCompile,10,171574949,0x12062832a2fe,25,_bytesDispatched node:net:798:58,0x1c78303fee98,~
code-source-info,0x12062832a2fe,117,20514,20593,C0O20533C6O20548C11O20556C19O20576C21O20575C24O20591,,
code-creation,LazyCompile,10,171574977,0x12062832a40e,21,get node:internal/streams/writable:813:8,0x456580dd748,~
code-source-info,0x12062832a40e,56,23470,23549,C0O23493C6O23516C11O23531C16O23531C20O23543,,
code-creation,LazyCompile,10,171574999,0x12062832a526,21,getBuffer node:internal/streams/writable:209:55,0x456580dcbe0,~
code-source-info,0x12062832a526,56,7173,7244,C0O7180C5O7212C10O7227C15O7187C20O7242,,
code-creation,LazyCompile,10,171575259,0x12062832a816,343,prepareStackTrace node:internal/errors:90:27,0x30ec9dba2dd8,~
code-source-info,0x12062832a816,11,2163,3651,C0O2305C5O2328C10O2328C17O2356C22O2375C27O2375C33O2391C38O2410C43O2416C48O2436C53O2452C54O2479C55O2484C61O2487C66O2489C74O2510C78O2528C83O2566C86O2528C93O2612C97O2619C101O2626C102O2626C107O2656C109O2661C115O2664C120O2666C128O2691C132O2701C137O2731C140O2701C147O2762C156O2795C163O2762C168O2809C170O2633C175O2593C178O2994C185O3003C187O3001C192O3030C199O3058C202O3030C207O3114C221O3114C227O3174C229O3197C231O3193C236O3210C238O3232C239O3340C241O3355C248O3372C253O3411C265O3426C280O3442C291O3468C296O3482C301O3529C307O3536C312O3549C314O3568C315O3575C327O3608C333O3608C342O3649,,
code-creation,LazyCompile,10,171575328,0x12062832ab1e,70,maybeOverridePrepareStackTrace node:internal/errors:135:40,0x30ec9dba3c58,~
code-source-info,0x12062832ab1e,11,3693,4400,C0O3921C7O3926C18O3986C23O3992C28O3992C34O4024C35O4247C40O4275C48O4315C53O4339C58O4339C64O4371C65O4379C69O4398,,
code-creation,LazyCompile,10,171575498,0x12062832ad4e,2,nop node:internal/streams/writable:73:13,0x456580dc540,~
code-source-info,0x12062832ad4e,56,2409,2414,C1O2413,,
code-creation,LazyCompile,10,171575566,0x12062832ae96,181,errorBuffer node:internal/streams/writable:508:21,0x456580dd240,~
code-source-info,0x12062832ae96,56,15677,16180,C0O15699C6O15714C7O15721C8O15748C13O15773C18O15782C22O15765C27O15835C34O15843C38O15809C43O15816C48O15870C58O15893C63O15905C70O15921C73O15918C77O15930C79O15943C87O15939C93O15930C97O15792C102O15729C105O16008C107O16014C109O16013C113O16027C120O16027C126O16053C128O16078C132O16058C137O16097C139O16114C145O16122C153O16118C159O16117C164O16087C169O16040C172O16159C175O16159C180O16179,,
code-creation,LazyCompile,10,171575620,0x12062832b086,17,emitErrorCloseNT node:internal/streams/destroy:121:26,0x456580c3040,~
code-source-info,0x12062832b086,46,2431,2493,C0O2447C3O2447C8O2473C11O2473C16O2492,,
code-creation,LazyCompile,10,171575656,0x12062832b19e,64,emitErrorNT node:internal/streams/destroy:142:21,0x456580c30e0,~
code-source-info,0x12062832b19e,46,2777,3044,C0O2808C5O2841C10O2860C12O2872C20O2890C22O2897C28O2918C29O2925C30O2933C34O2946C35O2961C39O2975C43O2988C44O3003C48O3023C56O3023C63O3043,,
code-creation,LazyCompile,10,171575715,0x12062832b2ee,2,noop node:_http_server:649:14,0x3f8cd5564b40,~
code-source-info,0x12062832b2ee,126,21984,21992,C1O21991,,
tick,0xd11273,171575741,0,0x0,2,0x11e9ce0,0x27ba8ebceb83,0x12062832b1d6,0x12062832b089,0x274d30f590d2
tick,0x7efc336d14b6,171776005,0,0x0,8
tick,0x7efc336d14b6,171776974,0,0x0,8
tick,0x7efc336d14b6,171896347,0,0x0,8
tick,0x164bdb5,171896542,0,0x0,0,0x1c78303eb401,0x1c78303eb233,0x274d30f64490,0x274d30f61828,0x274d30f6115a,0x274d30f60c83,0x24c70ce95b6e
scavenge,begin,1,603559,1745847991379
tick,0x7efc337b3376,171897709,0,0x0,1
scavenge,end,1,603814,1745847991379
delete,MemoryChunk,0x1760b9dc0000
delete,MemoryChunk,0x2b1a6c740000
delete,MemoryChunk,0x326a02400000
delete,MemoryChunk,0x199994f80000
tick,0x7efc336d14b6,172016872,0,0x0,8
tick,0x7efc336d14b6,172018302,0,0x0,8
tick,0x7efc336d14b6,627591297,0,0x0,8
tick,0xf3e0b0,627592807,0,0x0,0,0xf4b5c0,0x1c78303eb3b0,0x1c78303eb233,0x274d30f64490,0x274d30f61828,0x24c70ce99c38,0x24c70ce99855
tick,0x7efc336d14b6,628520664,0,0x0,8
tick,0x7efc336d14b6,808603451,0,0x0,8
tick,0x1658740,808603542,0,0x0,0,0x274d30f60bbe,0x24c70ce95b6e
tick,0x1646bc7,808604605,0,0x0,0,0x274d30f72ae6,0x274d30f59148
tick,0x7efc336d14b6,809519861,0,0x0,8
tick,0x10c227b,809519956,0,0x0,5
tick,0x7efc336d14b6,1112905626,0,0x0,8
tick,0x7efc336c66dd,1112906738,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,1113519548,0,0x0,8
tick,0x7efc336d14b6,1212666658,0,0x0,8
tick,0x155fa46,1212666743,0,0x0,0,0x24c70ce95b6e
tick,0x7efc336d1d1e,1212667976,0,0x0,8
tick,0x7efc336d14b6,1213519102,0,0x0,8
tick,0x7efc336d14b6,1248612026,0,0x0,8
tick,0x7efc336d14b6,1248612070,0,0x0,8
tick,0x7efc336d299b,1248613204,0,0x0,8
tick,0x7efc336d14b6,1249519201,0,0x0,8
tick,0x7efc336d14b6,1250560621,0,0x0,8
tick,0x7efc336d14b6,1251520727,0,0x0,8
tick,0x7efc336d14b6,1289599267,0,0x0,8
tick,0x1120366,1289599296,0,0x0,2,0x11f3750,0x24c70cea875f,0x24c70cea822d,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea7dc2,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea6eec,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
tick,0x7efc336d14b6,1290519222,0,0x0,8
tick,0xce9324,1290519256,0,0x0,5
tick,0x7efc336d14b6,1291875709,0,0x0,8
tick,0x164d0f2,1291876650,0,0x0,0,0x24c70ceaaba6,0x24c70ceaa878,0x24c70ceaa323,0x24c70cea9c79,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,1292489275,0,0x0,8
tick,0x7efc336d14b6,1292518839,0,0x0,8
tick,0x7efc336d14b6,1292784189,0,0x0,8
tick,0x155cfb2,1292784479,0,0x0,0,0x24c70ce9741e,0x24c70ce94c4a,0x24c70ce96e1e,0x27ba8ebceb83,0x24c70ce95b9b
tick,0x7efc336d299b,1292785553,0,0x0,8
tick,0x7efc336d14b6,1292954596,0,0x0,8
tick,0x7efc336d1d1e,1292955000,0,0x0,8
tick,0x7efc336d14b6,1293101367,0,0x0,8
tick,0x159dbd7,1293101467,0,0x0,0,0x274d30f60c09,0x24c70ce95b6e
tick,0x107df21,1293102546,0,0x0,0,0x11ff0a0,0x36d16acb81b9,0x24c70ce98d3a,0x24c70ce98c01,0x24c70ceafdbb,0x24c70ceafb4a,0x27ba8ebceb83,0x24c70ceaf8ad,0x24c70ceaf6c1,0x274d30f73111,0x274d30f72f86,0x274d30f590c1
tick,0x7efc336d14b6,1293268784,0,0x0,8
tick,0xb005b0,1293269126,0,0x0,6
tick,0x7efc336d14b6,1293419916,0,0x0,8
tick,0x165a780,1293420995,0,0x0,0,0x24c70ceb4eee,0x24c70ceb2e9b,0x24c70ceb2a17,0x24c70ce94f77,0x27ba8ebceb83,0x24c70ceb4bbf,0x274d30f590d2
tick,0x7efc336d14b6,1293519225,0,0x0,8
tick,0xe39483,1293519254,0,0x0,6
tick,0x7efc336d14b6,1293601421,0,0x0,8
tick,0x15ffad1,1293601789,0,0x0,0,0x274d30f6177e,0x24c70ce99c38,0x24c70ce99855
tick,0x7efc336d14b6,1293768919,0,0x0,8
tick,0x11ff11c,1293769236,0,0x0,0,0x11ff0a0,0x36d16acb81c3,0x24c70ce98d3a,0x24c70ce98c01,0x24c70ce98a9e,0x274d30f6913b,0x24c70ce974ec,0x24c70ce94c4a,0x24c70ce96e1e,0x27ba8ebceb83,0x24c70ce95b9b
tick,0x7efc336d14b6,1294117903,0,0x0,8
tick,0x165466a,1294118761,0,0x0,0,0x24c70ceaf38e,0x24c70ceaefc1,0x24c70cea9db9,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,1294283908,0,0x0,8
tick,0x1598640,1294284559,0,0x0,0,0x24c70cea7481,0x24c70cea6eb7,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
tick,0x7efc336d14b6,1294452098,0,0x0,8
tick,0x1111daf,1294452898,0,0x0,0,0x11ff0a0,0x36d16acb81ac,0x24c70cea46b7,0x24c70cea44e9,0x24c70cea4132,0x24c70cea3e14,0x24c70cea3ce3
tick,0x7efc336d14b6,1294519924,0,0x0,8
tick,0x7efc336d14b6,1295142473,0,0x0,8
tick,0xa3ecb0,1295143697,0,0x0,6
tick,0x7efc336d14b6,1295502417,0,0x0,8
tick,0xfb8920,1295502446,0,0x0,5
tick,0x1651ed9,1295503685,0,0x0,0,0x274d30f73996,0x274d30f5916b
tick,0x7efc336d14b6,1295519960,0,0x0,8
tick,0x7efc336d14b6,1295852032,0,0x0,8
tick,0x164cba0,1295852492,0,0x0,0,0x24c70ce99c44,0x24c70ce99855
tick,0x7efc336d14b6,1296016768,0,0x0,8
tick,0xa86dc2,1296017082,0,0x0,6
tick,0x7efc336d14b6,1296206045,0,0x0,8
tick,0x7efc336d14b6,1296206076,0,0x0,8
tick,0x1025f00,1296207118,0,0x0,0,0xd49c20,0x274d30f72ce4,0x274d30f72af8,0x24c70cea5710
tick,0x7efc336d14b6,1296519222,0,0x0,8
tick,0x7efc336d14b6,1296585083,0,0x0,8
tick,0x1659060,1296586196,0,0x0,0,0x36d16acb809d,0x24c70ceb1fb1,0x24c70ce9620b,0x24c70ce95e46,0x24c70ce99500,0x24c70cea5345,0x24c70cea44fc,0x24c70cea4132,0x24c70cea3e14,0x24c70ceb3a80
tick,0x7efc336d14b6,1296768976,0,0x0,8
tick,0x7efc336d14b6,1296769419,0,0x0,8
tick,0x164b6cb,1296770494,0,0x0,0,0x24c70ceb4fb2,0x24c70ceb2e9b,0x24c70ceb2a17,0x24c70ce94f77,0x27ba8ebceb83,0x24c70ceb4bbf,0x274d30f590d2
tick,0x7efc336d14b6,1297457562,0,0x0,8
tick,0x1646be0,1297457629,0,0x0,0,0x274d30f60be1,0x24c70ce95b6e
tick,0x1562110,1297458893,0,0x0,0,0x24c70ceb1fb1,0x24c70ce9620b,0x24c70ce95e46,0x24c70ce99500,0x24c70cea5345,0x24c70cea44fc,0x24c70cea4132,0x24c70cea3e14,0x24c70ceb3a80
tick,0x7efc336d14b6,1297519121,0,0x0,8
tick,0x7efc336d14b6,1297618531,0,0x0,8
tick,0x15930ca,1297618774,0,0x0,0,0x274d30f69109,0x274d30f60de0,0x24c70ce95b6e
tick,0x1111f03,1297619897,0,0x0,0,0x11ff0a0,0x36d16acb81ac,0x274d30f72353,0x274d30f7201c,0x24c70ceaed8e,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,1297785536,0,0x0,8
tick,0x156e447,1297785765,0,0x0,0,0x24c70ce94c3c,0x24c70ce96e1e,0x27ba8ebceb83,0x24c70ce95b9b
tick,0x7efc336d14b6,1297935447,0,0x0,8
tick,0x7efc336c66dd,1297936367,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,1298519098,0,0x0,8
tick,0x7efc336d14b6,1303168354,0,0x0,8
tick,0x15cbac4,1303169057,0,0x0,0,0x24c70cea40c6,0x24c70cea3e14,0x24c70cea3ce3
tick,0x7efc336d14b6,1303519234,0,0x0,8
tick,0x7efc336d14b6,1304757132,0,0x0,8
tick,0x163d9c1,1304757761,0,0x0,0,0x24c70cea6e2e,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
scavenge,begin,7,533422,1745849124240
scavenge,end,7,533586,1745849124240
delete,MemoryChunk,0x1e348100000
delete,MemoryChunk,0x31e719400000
delete,MemoryChunk,0x121deb500000
delete,MemoryChunk,0x19cfc2f80000
tick,0x7efc336d299b,1304758915,0,0x0,8
tick,0x7efc336d14b6,1304864485,0,0x0,8
tick,0xeb10b7,1304865326,0,0x0,2,0x11f3750,0x24c70cea875f,0x24c70cea822d,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea7dc2,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea6eec,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
tick,0x7efc336d14b6,1305330116,0,0x0,8
tick,0x7efc336d14b6,1305469855,0,0x0,8
tick,0x1646be0,1305470704,0,0x0,0,0x24c70ce9dfc6,0x24c70ceaf1ce,0x24c70ceaefa9,0x24c70cea9db9,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,1305519151,0,0x0,8
tick,0x7efc336d14b6,1305612030,0,0x0,8
tick,0x164c311,1305612943,0,0x0,0,0x274d30f59732,0x274d30f595ca,0x274d30f5907c
tick,0x7efc336d14b6,1305645299,0,0x0,8
tick,0x7efc336c66dd,1305646287,1,0xbde250,6,0xd44a10,0x24c70ceaed70,0x274d30f70db8,0x24c70ceaeb89,0x24c70ceaea24,0x24c70ceae687,0x24c70ceae394,0x24c70cea9d6e,0x24c70cea827e,0x158e6c7
tick,0x7efc336d14b6,1305752371,0,0x0,8
tick,0x1659a67,1305752433,0,0x0,0,0x24c70ce95b09
tick,0x164c350,1305753523,0,0x0,0,0x24c70ceb34f1,0x24c70ceb4ff7,0x24c70ceb2e9b,0x24c70ceb2a17,0x24c70ce94f77,0x27ba8ebceb83,0x24c70ceb4bbf,0x274d30f590d2
tick,0x7efc336d14b6,1305826748,0,0x0,8
tick,0x159c3bb,1305826996,0,0x0,0,0x274d30f68707,0x274d30f66729,0x274d30f6116a,0x274d30f60c83,0x24c70ce95b6e
code-creation,LazyCompile,10,1305827725,0x1206283338be,113,setHeader node:_http_outgoing:571:57,0x3f8cd555c610,~
code-source-info,0x1206283338be,124,17567,17909,C0O17594C6O17609C16O17615C21O17609C22O17655C27O17655C31O17683C36O17683C41O17734C43O17739C45O17738C49O17755C51O17781C53O17786C58O17811C63O17811C68O17799C72O17834C74O17842C77O17842C91O17879C100O17885C106O17876C110O17895C112O17907,,
code-creation,LazyCompile,10,1305827817,0x120628333a7e,42, node:_http_outgoing:555:44,0x3f8cd555c570,~
code-source-info,0x120628333a7e,124,17043,17189,C0O17057C8O17090C12O17099C15O17099C21O17129C34O17135C39O17129C41O17188,,
code-creation,LazyCompile,10,1305827844,0x120628333b9e,16,checkIsHttpToken node:_http_common:221:26,0x3f8cd5555fd8,~
code-source-info,0x120628333b9e,121,6924,6981,C0O6934C7O6961C10O6941C15O6979,,
code-creation,LazyCompile,10,1305827939,0x120628333e36,68, node:_http_outgoing:561:45,0x3f8cd555c5c0,~
code-source-info,0x120628333e36,124,17237,17507,C0O17258C4O17289C17O17295C22O17289C23O17349C28O17353C34O17390C42O17390C47O17450C60O17456C65O17450C67O17506,,
code-creation,LazyCompile,10,1305828019,0x12062833400e,69,fs$1.existsSync.sirv.setHeaders file:///var/www/quadcode.com/build/handler.js:1163:6,0x2c04857b28b0,~
code-source-info,0x12062833400e,129,32005,32267,C0O32105C8O32120C14O32129C29O32105C36O32158C45O32169C50O32190C61O32190C68O32266,,
tick,0x10aa652,1305828068,0,0x0,0,0xf47690,0x12062833400e,0x24c70cea6f60,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
code-creation,LazyCompile,10,1305828175,0x12062833431e,534,send file:///var/www/quadcode.com/build/handler.js:530:14,0x3f8cd5572888,~
code-source-info,0x12062833431e,129,15206,16117,C0O15251C5O15256C7O15266C9O15271C15O15315C26O15308C39O15308C40O15338C45O15338C51O15356C53O15365C55O15378C62O15299C65O15404C73O15404C79O15398C81O15435C83O15459C87O15479C92O15487C98O15498C103O15529C108O15537C113O15543C124O15543C131O15564C139O15565C145O15525C167O15517C206O15520C309O15589C316O15600C326O15625C330O15630C334O15598C341O15649C348O15662C360O15660C367O15704C371O15695C376O15727C380O15732C384O15763C388O15754C393O15778C404O15822C413O15778C419O15834C423O15849C427O15870C432O15870C436O15876C437O15884C442O15920C455O15929C466O15942C474O15909C478O15952C480O15985C483O15993C486O15978C490O16001C492O16026C496O16046C501O16046C507O16073C510O16076C515O16076C522O16104C527O16105C533O16116,,
code-creation,LazyCompile,10,1305828257,0x12062833473e,46,getHeader node:_http_outgoing:587:57,0x3f8cd555c660,~
code-source-info,0x12062833473e,124,17969,18173,C0O17980C8O17980C13O18029C15O18034C17O18033C21O18050C23O18076C24O18083C25O18101C27O18109C30O18109C34O18108C38O18146C42O18167C45O18171,,
code-creation,RegExp,3,1305828375,0x7efc24048220,1028,^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$
code-creation,LazyCompile,10,1305828488,0x120628334ab6,132,processHeader node:_http_outgoing:498:23,0x3f8cd555bbd0,~
code-source-info,0x120628334ab6,124,15429,15926,C0O15469C4O15487C9O15487C13O15514C18O15518C24O15555C31O15562C39O15570C45O15721C47O15734C51O15726C56O15755C61O15790C77O15755C82O15743C87O15708C90O15812C91O15819C92O15830C100O15838C107O15877C125O15877C131O15925,,
code-creation,LazyCompile,10,1305828525,0x120628334c76,67,storeHeader node:_http_outgoing:514:21,0x3f8cd555bc20,~
code-source-info,0x120628334c76,124,15948,16125,C0O15988C4O16006C9O16006C14O16041C21O16061C27O16068C33O16078C35O16076C41O16054C45O16086C60O16086C66O16124,,
code-creation,LazyCompile,10,1305828586,0x120628334e8e,194,matchHeader node:_http_outgoing:521:21,0x3f8cd555bc70,~
code-source-info,0x120628334e8e,124,16147,16998,C0O16189C7O16196C12O16209C19O16216C24O16226C25O16233C26O16236C31O16244C37O16281C91O16327C92O16344C96O16358C97O16382C101O16397C108O16421C111O16401C118O16452C119O16463C125O16490C126O16511C130O16525C132O16568C133O16577C137O16591C138O16607C142O16622C149O16646C152O16626C159O16677C160O16698C164O16712C166O16752C167O16766C171O16780C172O16801C176O16816C178O16885C179O16898C183O16912C185O16948C186O16971C190O16986C193O16997,,
code-creation,LazyCompile,10,1305828681,0x12062833509e,25,createReadStream node:fs:2819:26,0x3fe299d18368,~
code-source-info,0x12062833509e,76,75686,75766,C0O75706C3O75706C6O75727C19O75734C24O75764,,
code-creation,LazyCompile,10,1305828821,0x12062833536e,519,ReadStream node:internal/fs/streams:148:20,0x3f8cd5579f48,~
code-source-info,0x12062833536e,130,4327,6063,C0O4347C2O4358C7O4386C18O4393C23O4423C24O4486C31O4507C34O4518C36O4507C42O4496C48O4547C54O4580C60O4602C64O4630C70O4663C71O4683C75O4699C77O4704C80O4719C91O4725C93O4709C97O4732C104O4754C106O4753C110O4759C118O4732C123O4787C130O4809C132O4808C136O4814C144O4787C149O4842C156O4864C158O4863C162O4869C170O4842C175O4930C187O4975C191O4920C195O5056C197O5068C200O5068C204O5066C208O5114C221O5150C225O5104C229O5179C244O5216C248O5169C252O5225C255O5225C260O5274C264O5264C268O5302C272O5292C276O5309C277O5318C281O5333C282O5348C286O5355C287O5367C291O5378C293O5383C297O5400C301O5421C307O5448C312O5469C322O5448C327O5510C331O5503C335O5593C342O5611C344O5621C347O5641C352O5621C356O5619C362O5661C367O5679C372O5661C376O5702C382O5738C385O5736C391O5766C396O5774C399O5770C404O5790C409O5811C419O5790C424O5841C430O5869C435O5882C439O5875C444O5895C455O5972C470O5993C477O5901C482O5895C483O6021C490O6034C502O6051C512O6021C518O6062,,
code-creation,LazyCompile,10,1305828884,0x120628336736,47,copyObject node:internal/fs/utils:208:20,0x3fe299d1fd80,~
code-source-info,0x120628336736,77,4582,4691,C0O4610C2O4634C15O4627C28O4627C29O4646C31O4666C34O4658C41O4616C44O4675C46O4689,,
code-creation,LazyCompile,10,1305828970,0x1206283369a6,209,importFd node:internal/fs/streams:122:18,0x3f8cd5579ef8,~
code-source-info,0x1206283369a6,130,3269,4306,C0O3291C1O3301C5O3323C12O3360C20O3621C24O3611C30O3655C38O3688C45O3702C47O3691C52O3800C58O3877C68O3883C73O3877C74O3943C76O3950C79O3969C83O3959C87O3999C92O4002C96O3989C100O4012C102O4019C107O4026C112O4054C114O4053C118O4026C122O4024C126O4071C128O4078C130O4077C136O4087C138O4086C142O4092C146O4110C151O4113C161O4125C164O4154C169O4125C175O4113C183O4188C196O4296C201O4194C206O4188C208O4305,,
tick,0x1173eb2,1305829147,0,0x0,2,0x11e9ce0,0x12062833452d,0x24c70cea6f7f,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
code-creation,LazyCompile,10,1305829316,0x120628337416,529,Readable.pipe node:internal/streams/readable:649:35,0x456580d0d08,~
code-source-info,0x120628337416,51,21662,26135,C0O21662C75O21695C77O21695C79O21722C83O21717C85O21741C88O21751C93O21757C100O21764C105O21777C108O21788C114O21813C118O21835C122O21849C129O21879C135O21902C151O21929C168O21875C173O21873C177O21975C180O21981C185O21987C193O21987C198O22001C211O22038C216O22044C224O22001C229O22080C234O22103C240O22107C254O22152C258O22140C272O22193C276O22181C281O22218C290O22244C293O22254C299O22270C304O22278C309O22278C316O22306C319O22310C327O22310C333O22333C336O22338C347O22338C353O22660C354O22660C356O22688C357O22688C359O24594C362O24598C373O24598C379O25388C395O25388C400O25583C403O25588C414O25588C420O25722C423O25727C434O25727C440O25871C443O25876C454O25876C460O25954C463O25963C469O25981C474O25997C477O26007C483O26024C486O26024C491O26048C494O26059C500O26074C510O26074C514O26100C517O26104C522O26104C526O26121C528O26133,,
code-creation,LazyCompile,10,1305829459,0x1206283379ce,139,prependListener node:internal/streams/legacy:96:25,0x456580c5b88,~
code-source-info,0x1206283379ce,50,2103,2886,C0O2260C8O2311C13O2311C19O2338C20O2667C26O2687C33O2694C38O2715C43O2715C51O2737C56O2762C63O2769C67O2741C73O2791C80O2798C84O2806C89O2806C96O2838C101O2846C110O2856C117O2868C124O2875C133O2853C138O2885,,
code-creation,LazyCompile,10,1305829489,0x120628337b76,20,prependListener node:events:504:29,0x30ec9dbb25a0,~
code-source-info,0x120628337b76,13,14636,14715,C0O14661C14O14668C19O14709,,
code-creation,LazyCompile,10,1305829524,0x120628337cae,22,get node:_http_outgoing:692:16,0x3f8cd555c9a0,~
code-source-info,0x120628337cae,124,20732,20806,C0O20754C7O20773C16O20790C18O20789C21O20802,,
code-creation,LazyCompile,10,1305829647,0x120628337f6e,108,constructNT node:internal/streams/destroy:250:21,0x456580c3240,~
code-source-info,0x120628337f6e,46,5036,6035,C0O5036C18O5062C19O5062C24O5636C27O5643C35O5643C41O5672C44O5720C49O5732C53O5779C58O5795C74O5779C92O6012C100O6012C107O6034,,
code-creation,LazyCompile,10,1305829746,0x1206283382fe,176,_construct node:internal/fs/streams:42:20,0x3f8cd5579e30,~
code-source-info,0x1206283382fe,130,1019,1903,C0O1019C12O1049C14O1049C16O1057C19O1075C27O1098C30O1098C33O1114C34O1121C35O1129C38O1140C47O1149C49O1145C57O1171C66O1180C68O1176C80O1266C85O1273C89O1266C91O1283C100O1295C104O1614C109O1621C114O1621C122O1644C129O1651C131O1650C135O1656C143O1668C151O1681C159O1695C169O1656C175O1902,,
code-creation,LazyCompile,10,1305829823,0x1206283385ae,158,open node:fs:542:14,0x3fe299d16280,~
code-source-info,0x1206283385ae,76,13628,14192,C0O13628C2O13662C7O13669C13O13709C20O13716C25O13727C28O13749C32O13766C40O13789C46O13827C49O13848C57O13877C73O13884C80O13946C85O13946C90O13970C93O13981C99O14020C104O14020C110O14043C112O14058C116O14073C121O14081C128O14086C131O14097C136O14097C151O14081C157O14191,,
code-creation,LazyCompile,10,1305829869,0x1206283387fe,32,makeCallback node:fs:182:22,0x3fe299d15ba8,~
code-source-info,0x1206283387fe,76,4768,4853,C0O4768C13O4777C23O4777C27O4802C31O4851,,
code-creation,LazyCompile,10,1305830000,0x1206283389de,25, node:fs:185:10,0x120628338740,~
code-source-info,0x1206283389de,76,4809,4850,C0O4809C3O4822C19O4822C24O4850,,
code-creation,LazyCompile,10,1305830034,0x120628338afe,79, node:internal/fs/streams:66:62,0x1206283381f0,~
code-source-info,0x120628338afe,130,1701,1895,C0O1721C4O1739C7O1739C13O1776C20O1786C24O1800C27O1800C30O1820C35O1827C45O1840C48O1847C53O1827C59O1860C64O1867C72O1867C78O1894,,
code-creation,LazyCompile,10,1305830086,0x120628338c96,168,onConstruct node:internal/streams/destroy:253:23,0x120628337dd8,~
code-source-info,0x120628338c96,46,5092,5607,C0O5104C6O5124C24O5158C27O5154C33O5124C38O5190C39O5197C40O5208C44O5215C50O5238C53O5245C58O5275C61O5282C66O5312C71O5325C75O5340C76O5354C80O5372C84O5387C85O5401C89O5426C95O5445C98O5452C107O5457C110O5452C118O5484C122O5501C135O5501C142O5555C147O5563C160O5563C167O5606,,
code-creation,LazyCompile,10,1305830136,0x120628338e76,17,emitConstructNT node:internal/streams/destroy:300:25,0x456580c3290,~
code-source-info,0x120628338e76,46,6061,6100,C0O6081C7O6086C10O6081C16O6099,,
code-creation,LazyCompile,10,1305830200,0x120628338fb6,37, node:internal/streams/readable:204:31,0x274d30f61650,~
code-source-info,0x120628338fb6,51,6984,7093,C0O6996C3O7005C8O7020C14O7042C25O7067C30O7042C36O7092,,
tick,0x7efc3373de89,1305830227,0,0x0,3,0x11e9ce0,0x24c70ce94f77,0x27ba8ebceb83,0x120628338e80,0x274d30f590c1
code-creation,LazyCompile,10,1305830243,0x1206283390de,41,maybeReadMore node:internal/streams/readable:597:23,0x456580d0be0,~
code-source-info,0x1206283390de,51,19339,19494,C0O19370C6O19391C12O19410C13O19428C17O19440C20O19448C34O19448C40O19493,,
code-creation,LazyCompile,10,1305830299,0x12062833925e,93,maybeReadMore_ node:internal/streams/readable:604:24,0x456580d0c30,~
code-source-info,0x12062833925e,51,19519,21288,C0O20954C6O20972C12O20997C17O21012C21O21004C26O21046C32O21063C38O21070C43O21103C48O21115C56O21115C60O21157C67O21157C72O21188C76O21178C81O21247C83O20940C86O21260C87O21278C92O21287,,
code-creation,LazyCompile,10,1305830371,0x1206283394ee,200,ReadStream._read node:internal/fs/streams:232:38,0x3f8cd557a128,~
code-source-info,0x1206283394ee,130,6593,7716,C0O6593C9O6601C12O6610C22O6634C28O6647C36O6658C40O6651C43O6662C47O6634C58O6676C64O6689C72O6700C76O6693C79O6710C83O6676C90O6722C91O6728C96O6740C99O6745C106O6745C111O6761C112O6768C113O6788C120O6795C125O6795C131O6818C138O6823C142O6840C146O6850C153O6855C155O6854C159O6865C167O6875C177O6895C193O6865C199O7715,,
code-creation,LazyCompile,10,1305830493,0x1206283398d6,371,read node:fs:600:14,0x3fe299d16350,~
code-source-info,0x1206283398d6,76,15121,16639,C0O15121C20O15174C27O15179C33O15216C40O15223C45O15294C47O15316C54O15323C59O15412C61O15421C65O15568C68O15592C70O15601C72O15631C85O15640C88O15647C98O15647C105O15667C114O15685C123O15701C129O15719C135O15753C145O15753C149O15779C157O15790C161O15788C163O15818C168O15844C173O15871C188O15871C193O15916C200O15932C201O15943C206O15956C211O15971C221O15971C226O16038C227O16046C230O16057C236O16068C241O16081C259O16087C264O16081C265O16209C275O16257C286O16209C291O16273C296O16299C300O16317C310O16317C315O16529C322O16529C328O16552C330O16567C334O16581C341O16589C364O16589C370O16638,,
code-creation,LazyCompile,10,1305830536,0x120628339c56,52, node:internal/fs/utils:685:40,0x3fe299d20988,~
code-source-info,0x120628339c56,77,18614,18735,C14O18643C22O18647C29O18671C30O18680C31O18688C44O18688C49O18723C51O18733,,
code-creation,LazyCompile,10,1305830568,0x120628339dd6,51, node:internal/validators:182:40,0x73467c9a000,~
code-source-info,0x120628339dd6,17,5379,5609,C14O5412C19O5417C25O5450C30O5481C43O5456C48O5450C50O5608,,
code-creation,LazyCompile,10,1305830589,0x120628339efe,12,maybeCallback node:fs:173:23,0x3fe299d15b58,~
code-source-info,0x120628339efe,76,4498,4544,C0O4507C5O4507C9O4532C11O4542,,
code-creation,LazyCompile,10,1305830630,0x12062833a036,151, node:internal/validators:72:3,0x73467c99c78,~
code-source-info,0x12062833a036,17,1809,2190,C12O1829C25O1859C32O1892C38O1929C54O1935C59O1929C60O1988C65O1993C71O2023C87O2029C92O2023C93O2082C95O2092C102O2107C107O2120C117O2159C130O2172C143O2126C148O2120C150O2189,,
code-creation,LazyCompile,10,1305830675,0x12062833a24e,103, node:internal/fs/utils:635:3,0x3fe299d20848,~
code-source-info,0x12062833a24e,77,17238,17617,C0O17278C1O17289C6O17302C22O17308C27O17302C28O17366C29O17377C34O17390C50O17396C55O17390C56O17454C58O17465C64O17474C69O17498C82O17587C95O17504C100O17498C102O17616,,
code-creation,LazyCompile,10,1305830719,0x12062833a566,151, node:internal/fs/utils:860:42,0x3fe299d20c58,~
code-source-info,0x12062833a566,77,23139,23697,C0O23163C6O23203C14O23203C21O23251C27O23291C32O23314C35O23309C37O23306C47O23340C53O23347C56O23334C61O23362C77O23445C80O23440C98O23465C104O23472C117O23368C122O23362C125O23545C143O23551C148O23545C150O23696,,
code-creation,LazyCompile,10,1305830803,0x12062833a6fe,22,wrapper node:fs:655:19,0x120628339730,~
code-source-info,0x12062833a6fe,76,16376,16513,C0O16471C8O16485C15O16471C21O16512,,
code-creation,LazyCompile,10,1305830880,0x12062833a856,204, node:internal/fs/streams:246:41,0x1206283393e0,~
code-source-info,0x12062833a856,130,6900,7712,C0O6932C7O6937C11O6954C15O7032C18O7041C24O7062C27O7067C36O7072C39O7067C45O7094C46O7101C47O7117C51O7135C61O7135C68O7174C69O7188C74O7203C77O7212C83O7243C93O7255C96O7252C100O7285C110O7303C113O7300C117O7345C121O7337C126O7526C133O7533C138O7533C144O7575C162O7575C167O7613C172O7643C175O7648C180O7648C187O7682C190O7687C197O7687C203O7711,,
code-creation,LazyCompile,10,1305830930,0x12062833aa86,18,get node:internal/streams/readable:1235:8,0x456580d19f8,~
code-source-info,0x12062833aa86,51,36985,37116,C0O37005C6O37045C7O37058C8O37085C13O37100C17O37110,,
code-creation,LazyCompile,10,1305830983,0x12062833ac46,24,copy node:buffer:773:16,0x73467ca6908,~
code-source-info,0x12062833ac46,18,22826,22946,C0O22878C18O22885C23O22942,,
code-creation,LazyCompile,10,1305831089,0x12062833ae16,302,_copy node:buffer:199:15,0x73467ca4800,~
code-source-info,0x12062833ae16,18,5302,6553,C0O5360C5O5365C11O5391C29O5397C34O5391C35O5469C40O5474C46O5500C64O5506C69O5500C70O5579C74O5616C79O5648C84O5662C91O5693C92O5709C97O5720C113O5726C118O5720C119O5791C123O5828C128O5860C133O5874C140O5905C141O5921C146O5932C162O5938C167O5932C168O6003C172O6057C180O6080C185O6092C192O6121C193O6135C198O6146C214O6152C219O6146C220O6239C224O6229C231O6261C236O6279C237O6288C238O6317C242O6308C247O6331C258O6417C272O6337C277O6331C278O6479C296O6486C301O6551,,
code-creation,LazyCompile,10,1305831170,0x12062833b0ee,64,toInteger node:buffer:189:19,0x73467ca47b0,~
code-source-info,0x12062833b0ee,18,5086,5286,C0O5106C2O5110C6O5116C11O5121C19O5150C21O5147C28O5187C30O5184C35O5217C37O5228C42O5233C53O5245C56O5245C60O5259C61O5266C63O5284,,
code-creation,LazyCompile,10,1305831222,0x12062833b26e,135,_copyActual node:buffer:241:21,0x73467ca4850,~
code-source-info,0x12062833b26e,18,6575,7086,C0O6633C2O6647C6O6670C13O6677C16O6661C21O6729C25O6720C31O6736C36O6763C38O6773C42O6815C49O6822C53O6839C55O6846C60O6863C65O6882C66O6898C71O6926C75O6917C80O6938C85O6969C90O6984C97O6995C106O6947C113O7018C127O7018C132O7074C134O7084,,
tick,0xf3f86d,1305831280,0,0x0,0,0xf4b5c0,0x24c70cea4053,0x24c70cea3e14,0x12062833a90a,0x12062833a70d
code-creation,LazyCompile,10,1305831324,0x12062833b4c6,174,addChunk node:internal/streams/readable:302:18,0x456580d0858,~
code-source-info,0x12062833b4c6,51,10143,10826,C0O10192C6O10209C12O10216C17O10232C23O10253C31O10253C38O10275C43O10390C49O10421C54O10439C59O10439C65O10467C66O10491C70O10516C78O10516C86O10583C91O10605C104O10628C111O10596C115O10640C119O10668C124O10675C129O10675C136O10712C141O10719C146O10719C151O10747C157O10767C160O10767C164O10795C167O10795C173O10825,,
code-creation,LazyCompile,10,1305831365,0x12062833b6f6,57,ondata node:internal/streams/readable:747:18,0x1206283370c8,~
code-source-info,0x12062833b6f6,51,24635,24780,C0O24649C10O24649C14O24682C17O24687C22O24687C28O24705C38O24705C43O24735C44O24743C49O24762C52O24762C56O24779,,
code-creation,LazyCompile,10,1305831398,0x12062833b82e,50,write node:_http_outgoing:698:49,0x3f8cd555ca28,~
code-source-info,0x12062833b82e,124,20896,21135,C0O20928C6O20970C9O20995C12O21031C29O21031C35O21081C37O21095C39O21100C43O21112C47O21122C49O21133,,
code-creation,LazyCompile,10,1305831434,0x12062833b9a6,19,get node:internal/streams/writable:839:8,0x456580dd888,~
code-source-info,0x12062833b9a6,56,24011,24088,C0O24034C6O24056C11O24071C18O24082,,
code-creation,LazyCompile,10,1305831505,0x12062833bb1e,24,updateOutgoingData node:_http_server:552:28,0x3f8cd5564088,~
code-source-info,0x12062833bb1e,126,19095,19184,C0O19122C7O19144C10O19141C14O19153C17O19153C23O19183,,
code-creation,LazyCompile,10,1305831551,0x12062833bc86,104,socketOnDrain node:_http_server:557:23,0x3f8cd55640d8,~
code-source-info,0x12062833bc86,126,19208,19640,C0O19252C5O19274C9O19265C13O19367C21O19379C23O19396C24O19411C28O19435C34O19456C39O19463C44O19463C48O19484C53O19484C57O19520C62O19536C64O19552C72O19568C74O19567C79O19587C81O19591C85O19603C89O19620C97O19620C103O19639,,
code-creation,LazyCompile,10,1305831643,0x12062833bef6,11,connectionCorkNT node:_http_outgoing:793:26,0x3f8cd555bdb0,~
code-source-info,0x12062833bef6,124,23230,23257,C0O23246C5O23246C10O23256,,
code-creation,LazyCompile,10,1305831968,0x12062833c03e,28,onend node:internal/streams/readable:686:17,0x120628336fd8,~
code-source-info,0x12062833c03e,51,22608,22652,C0O22617C10O22617C14O22637C17O22642C22O22642C27O22651,,
code-creation,LazyCompile,10,1305832105,0x12062833c32e,80,ReadStream._destroy node:internal/fs/streams:280:41,0x3f8cd557a1b0,~
code-source-info,0x12062833c32e,130,7759,8312,C0O7759C17O8181C24O8190C26O8189C31O8214C34O8219C43O8224C51O8219C59O8285C73O8285C79O8311,,
code-creation,LazyCompile,10,1305832143,0x12062833c546,85,close node:internal/fs/streams:108:15,0x3f8cd5579ea8,~
code-source-info,0x12062833c546,130,3011,3250,C0O3011C17O3033C20O3045C26O3103C32O3103C38O3127C45O3134C47O3133C51O3139C59O3152C69O3139C75O3227C79O3237C84O3249,,
code-creation,LazyCompile,10,1305832181,0x12062833c6ee,74,close node:fs:508:15,0x3fe299d161c0,~
code-source-info,0x12062833c6ee,76,12897,13136,C14O12939C19O12944C24O12966C26O12979C31O13009C34O13020C39O13059C44O13059C50O13082C52O13097C56O13111C61O13119C66O13119C73O13135,,
tick,0x116c86f,1305832352,0,0x0,2,0x11e9ce0,0x24c70ce94f77,0x27ba8ebcebcb,0x24c70ceaf8ad,0x274d30f73111,0x274d30f72f86,0x274d30f590c1
code-creation,LazyCompile,10,1305832372,0x12062833c8d6,42,onfinish node:internal/streams/readable:782:20,0x1206283371b8,~
code-source-info,0x12062833c8d6,51,25631,25719,C0O25640C10O25640C14O25663C17O25668C28O25668C34O25706C37O25706C41O25718,,
code-creation,LazyCompile,10,1305832413,0x12062833c9fe,34,unpipe node:internal/streams/readable:789:18,0x120628337208,~
code-source-info,0x12062833c9fe,51,25771,25822,C0O25780C10O25780C14O25801C19O25805C27O25805C33O25821,,
code-creation,LazyCompile,10,1305832479,0x12062833cbde,197,Readable.unpipe node:internal/streams/readable:835:37,0x456580d0de0,~
code-source-info,0x12062833cbde,51,26851,27544,C0O26881C5O26918C10O27006C15O27012C21O27019C26O27030C28O27042C29O27046C33O27102C38O27113C40O27125C44O27140C49O27140C53O27167C55O27180C59O27172C64O27199C66O27204C70O27208C86O27208C91O27189C96O27154C99O27257C101O27269C102O27323C107O27351C112O27323C118O27367C120O27377C125O27389C127O27401C128O27411C133O27417C141O27417C147O27447C152O27453C158O27460C163O27476C168O27476C172O27493C189O27493C194O27530C196O27542,,
code-creation,LazyCompile,10,1305832530,0x12062833ce5e,92,Readable.pause node:internal/streams/readable:993:36,0x456580d11c0,~
code-source-info,0x12062833ce5e,51,31459,31718,C0O31466C8O31502C13O31517C18O31466C23O31538C28O31553C34O31561C39O31578C47O31578C51O31603C57O31626C61O31644C69O31644C74O31670C81O31685C85O31694C89O31704C91O31716,,
code-creation,LazyCompile,10,1305832569,0x12062833cfee,51,onunpipe node:internal/streams/readable:676:20,0x120628336f88,~
code-source-info,0x12062833cfee,51,22381,22590,C0O22410C10O22410C14O22433C16O22450C18O22446C23O22463C27O22492C33O22503C38O22524C39O22546C43O22562C46O22562C50O22589,,
code-creation,LazyCompile,10,1305832617,0x12062833d19e,248,cleanup node:internal/streams/readable:694:19,0x120628337028,~
code-source-info,0x12062833d19e,51,22713,23589,C0O22722C10O22722C14O22799C17O22804C28O22804C34O22842C37O22847C48O22847C54O22887C60O22908C63O22913C73O22937C76O22913C82O22957C85O22962C96O22962C102O23000C105O23005C116O23005C122O23045C127O23049C138O23049C144O23083C149O23087C160O23087C166O23122C171O23126C182O23126C188O23163C192O23173C198O23462C206O23477C209O23483C218O23519C227O23542C232O23557C238O23575C243O23575C247O23588,,
code-creation,LazyCompile,10,1305832856,0x12062833d41e,24, node:internal/fs/streams:114:34,0x12062833c478,~
code-source-info,0x12062833d41e,130,3156,3220,C0O3172C4O3186C8O3200C13O3203C18O3200C23O3219,,
tick,0x7efc336d14b6,1305898999,0,0x0,8
tick,0x159c3a9,1305899424,0,0x0,0,0x1c78303eb3ba,0x1c78303eb233,0x274d30f64490,0x274d30f61828,0x24c70ce99c38,0x24c70ce99855
tick,0x7efc336d14b6,1306041234,0,0x0,8
tick,0x10c1d94,1306041458,0,0x0,0,0xd44a10,0x274d30f68f39,0x274d30f60ca4,0x24c70ce95b6e
tick,0x155822e,1306042580,0,0x0,0,0x24c70ce9920d,0x274d30f590d2
tick,0x7efc336d14b6,1306328425,0,0x0,8
tick,0x1658740,1306328530,0,0x0,0,0x274d30f60bbe,0x24c70ce95b6e
tick,0xe2951d,1306329636,0,0x0,5
tick,0x7efc336d14b6,1306519038,0,0x0,8
tick,0xff0180,1306519119,0,0x0,0,0x11fe390,0x120628310c89,0x120628310638
tick,0x7efc336d14b6,1307264543,0,0x0,8
tick,0x164b796,1307266011,0,0x0,0,0x24c70cea44dc,0x24c70cea4132,0x24c70cea3e14,0x24c70ceb3a80
tick,0x7efc336d14b6,1307518482,0,0x0,8
tick,0x7efc336d14b6,1308200977,0,0x0,8
tick,0xe80e40,1308201005,0,0x0,5
tick,0x10e8fc0,1308202113,0,0x0,3,0x11e9ce0,0x24c70cea5613
code-creation,LazyCompile,10,1308202134,0x12062833e436,54,runNextTicks node:internal/process/task_queues:59:22,0x30ec9dbbb2e0,~
code-source-info,0x12062833e436,25,1285,1460,C0O1292C3O1297C10O1320C13O1320C18O1346C23O1346C26O1365C29O1370C36O1393C39O1393C44O1419C45O1426C46O1430C49O1430C53O1459,,
code-creation,LazyCompile,10,1308202207,0x12062833e576,19,hasTickScheduled node:internal/process/task_queues:48:26,0x30ec9dbbacf8,~
code-source-info,0x12062833e576,25,1024,1074,C0O1031C7O1047C9O1046C15O1066C18O1072,,
code-creation,LazyCompile,10,1308202238,0x12062833e67e,19,hasRejectionToWarn node:internal/process/promises:75:28,0x30ec9dbbe498,~
code-source-info,0x12062833e67e,26,2090,2142,C0O2097C7O2113C9O2112C15O2134C18O2140,,
tick,0xe8c670,1308203212,0,0x0,5
tick,0x7efc336d14b6,1308319161,0,0x0,8
tick,0x1554e66,1308319193,0,0x0,8
tick,0x156200d,1308320256,0,0x0,0,0x24c70cead613,0x24c70ceaa410,0x12062833b84b,0x12062833b70c,0x27ba8ebceb83,0x12062833b514,0x24c70cea420d,0x24c70cea3e14,0x12062833a90a,0x12062833a70d
tick,0x7efc336d14b6,1308520022,0,0x0,8
tick,0xce5b93,1308520060,0,0x0,5
tick,0x7efc336d14b6,1360833730,0,0x0,8
tick,0x1562140,1360834706,0,0x0,0,0x36d16acb809d,0x24c70ceb1fb1,0x24c70ce9620b,0x24c70ce99500,0x24c70ce99227,0x274d30f590d2
tick,0x7efc336d14b6,1361519279,0,0x0,8
tick,0x7efc336d14b6,1442285270,0,0x0,8
tick,0x10aa683,1442285367,0,0x0,0,0xf420b0,0x274d30f60c66,0x24c70ce95b6e
tick,0x7efc336d14b6,1442383545,0,0x0,8
tick,0x7efc336d14b6,1442519120,0,0x0,8
tick,0x7efc336d14b6,1447286809,0,0x0,8
tick,0x7efc336d14b6,1457325363,0,0x0,8
tick,0xbddcf0,1457325597,1,0xbddcf0,6,0xd44a10,0x24c70ce96b66,0x24c70ce969a7,0x24c70ce962b4,0x24c70ce95e46,0x274d30f60e3b,0x24c70ce95b6e
tick,0xcef774,1457326683,0,0x0,8
tick,0x7efc336d14b6,1457519987,0,0x0,8
tick,0x7efc336d14b6,1475258264,0,0x0,8
tick,0x164b606,1475259797,0,0x0,0,0x274d30f70fbb,0x24c70ceb391e
tick,0x7efc336d14b6,1475520351,0,0x0,8
tick,0x7efc336d14b6,1487294346,0,0x0,8
tick,0x1562084,1487294376,0,0x0,0,0x274d30f59148
tick,0x7efc336d14b6,1487518782,0,0x0,8
tick,0x7efc336d14b6,1489264450,0,0x0,8
tick,0x124b410,1489265197,0,0x0,0,0x11f3750,0x24c70cea875f,0x24c70cea822d,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea7dc2,0x24c70cea6b22,0x24c70cea7b71,0x24c70cea6eec,0x24c70cea6b22,0x24c70cea6962,0x24c70cea6789,0x24c70cea65d2,0x24c70cea5c7e,0x24c70cea56c3
tick,0x7efc336d14b6,1489519822,0,0x0,8
tick,0x15964a5,1489519957,0,0x0,0,0x12062831109a,0x120628310c97,0x120628310638
tick,0x7efc336d14b6,1518555987,0,0x0,8
tick,0x7efc336d14b6,1519519324,0,0x0,8
tick,0x7efc336d14b6,1519519419,0,0x0,8
tick,0x7efc336d14b6,1548243215,0,0x0,8
tick,0x7efc336d14b6,1548246705,0,0x0,8
tick,0x7efc336d14b6,1548397697,0,0x0,8
tick,0xce6bf0,1548397810,0,0x0,0,0xf420b0,0x274d30f60c66,0x24c70ce95b6e
tick,0x7efc336d14b6,1561655786,0,0x0,8
tick,0x7efc336d14b6,1562519956,0,0x0,8