{"result":[{"scriptId":"3","url":"node:internal/per_context/primordials","functions":[{"functionName":"SafeIterator","ranges":[{"startOffset":9212,"endOffset":9283,"count":191}],"isBlockCoverage":false},{"functionName":"next","ranges":[{"startOffset":9288,"endOffset":9337,"count":553}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9342,"endOffset":9387,"count":184}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":10952,"endOffset":11019,"count":184}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15089,"endOffset":15542,"count":26}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15124,"endOffset":15541,"count":26}],"isBlockCoverage":false},{"functionName":"onFulfilled","ranges":[{"startOffset":15256,"endOffset":15333,"count":82}],"isBlockCoverage":false}]},{"scriptId":"5","url":"node:internal/per_context/messageport","functions":[{"functionName":"","ranges":[{"startOffset":407,"endOffset":993,"count":1}],"isBlockCoverage":false}]},{"scriptId":"6","url":"node:internal/bootstrap/realm","functions":[{"functionName":"internalBinding","ranges":[{"startOffset":6034,"endOffset":6296,"count":103}],"isBlockCoverage":false},{"functionName":"getOwn","ranges":[{"startOffset":6562,"endOffset":6716,"count":362}],"isBlockCoverage":false},{"functionName":"allowRequireByUsers","ranges":[{"startOffset":8483,"endOffset":8844,"count":1}],"isBlockCoverage":false},{"functionName":"canBeRequiredByUsers","ranges":[{"startOffset":9529,"endOffset":9604,"count":412}],"isBlockCoverage":false},{"functionName":"canBeRequiredWithoutScheme","ranges":[{"startOffset":9615,"endOffset":9709,"count":412}],"isBlockCoverage":false},{"functionName":"normalizeRequirableId","ranges":[{"startOffset":9720,"endOffset":10065,"count":562}],"isBlockCoverage":false},{"functionName":"getAllBuiltinModuleIds","ranges":[{"startOffset":10414,"endOffset":10636,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":10587,"endOffset":10605,"count":5}],"isBlockCoverage":false},{"functionName":"compileForPublicLoader","ranges":[{"startOffset":10708,"endOffset":11371,"count":144}],"isBlockCoverage":false},{"functionName":"getESMFacade","ranges":[{"startOffset":11375,"endOffset":12009,"count":10}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11746,"endOffset":11849,"count":10}],"isBlockCoverage":false},{"functionName":"syncExports","ranges":[{"startOffset":12305,"endOffset":12649,"count":10}],"isBlockCoverage":false},{"functionName":"compileForInternalLoader","ranges":[{"startOffset":12653,"endOffset":13475,"count":1110}],"isBlockCoverage":false},{"functionName":"requireBuiltin","ranges":[{"startOffset":13670,"endOffset":14035,"count":517}],"isBlockCoverage":false}]},{"scriptId":"7","url":"node:internal/errors","functions":[{"functionName":"setInternalPrepareStackTrace","ranges":[{"startOffset":2813,"endOffset":2904,"count":3}],"isBlockCoverage":false},{"functionName":"prepareStackTraceCallback","ranges":[{"startOffset":3730,"endOffset":4861,"count":2}],"isBlockCoverage":false},{"functionName":"ErrorPrepareStackTrace","ranges":[{"startOffset":4947,"endOffset":5046,"count":2}],"isBlockCoverage":false},{"functionName":"hideStackFrames","ranges":[{"startOffset":14720,"endOffset":15017,"count":7}],"isBlockCoverage":false},{"functionName":"wrappedFn","ranges":[{"startOffset":14753,"endOffset":14959,"count":1098}],"isBlockCoverage":false},{"functionName":"lazyUv","ranges":[{"startOffset":17182,"endOffset":17262,"count":2}],"isBlockCoverage":false},{"functionName":"uvErrmapGet","ranges":[{"startOffset":17319,"endOffset":17471,"count":2}],"isBlockCoverage":false},{"functionName":"ExceptionWithHostPort","ranges":[{"startOffset":20674,"endOffset":21480,"count":2}],"isBlockCoverage":false}]},{"scriptId":"8","url":"node:internal/assert","functions":[{"functionName":"assert","ranges":[{"startOffset":128,"endOffset":278,"count":411}],"isBlockCoverage":false}]},{"scriptId":"9","url":"node:internal/bootstrap/node","functions":[{"functionName":"get","ranges":[{"startOffset":3814,"endOffset":3864,"count":177}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":3870,"endOffset":3928,"count":1}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":4140,"endOffset":4536,"count":2}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8678,"endOffset":8840,"count":1}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":8942,"endOffset":9138,"count":1}],"isBlockCoverage":false},{"functionName":"get require_module","ranges":[{"startOffset":9858,"endOffset":9944,"count":2}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":13213,"endOffset":13271,"count":50}],"isBlockCoverage":false},{"functionName":"setSourceMapsEnabled","ranges":[{"startOffset":13312,"endOffset":13684,"count":2}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":14731,"endOffset":14767,"count":312}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":15637,"endOffset":15672,"count":57}],"isBlockCoverage":false}]},{"scriptId":"10","url":"node:internal/timers","functions":[{"functionName":"","ranges":[{"startOffset":4379,"endOffset":4404,"count":1}],"isBlockCoverage":false},{"functionName":"initAsyncResource","ranges":[{"startOffset":5884,"endOffset":6225,"count":415}],"isBlockCoverage":false},{"functionName":"Timeout","ranges":[{"startOffset":6396,"endOffset":7895,"count":1}],"isBlockCoverage":false},{"functionName":"TimersList","ranges":[{"startOffset":8637,"endOffset":8943,"count":1}],"isBlockCoverage":false},{"functionName":"append","ranges":[{"startOffset":9518,"endOffset":9699,"count":415}],"isBlockCoverage":false},{"functionName":"incRefCount","ranges":[{"startOffset":10320,"endOffset":10486,"count":1}],"isBlockCoverage":false},{"functionName":"decRefCount","ranges":[{"startOffset":10488,"endOffset":10655,"count":1}],"isBlockCoverage":false},{"functionName":"insert","ranges":[{"startOffset":11790,"endOffset":12529,"count":1}],"isBlockCoverage":false},{"functionName":"setPosition","ranges":[{"startOffset":13542,"endOffset":13613,"count":1}],"isBlockCoverage":false},{"functionName":"processImmediate","ranges":[{"startOffset":13927,"endOffset":15975,"count":237}],"isBlockCoverage":false},{"functionName":"processTimers","ranges":[{"startOffset":15980,"endOffset":16470,"count":1}],"isBlockCoverage":false},{"functionName":"Immediate","ranges":[{"startOffset":19366,"endOffset":19688,"count":415}],"isBlockCoverage":false},{"functionName":"ref","ranges":[{"startOffset":19692,"endOffset":19958,"count":415}],"isBlockCoverage":false}]},{"scriptId":"11","url":"node:internal/async_hooks","functions":[{"functionName":"newAsyncId","ranges":[{"startOffset":14827,"endOffset":14897,"count":412}],"isBlockCoverage":false},{"functionName":"getDefaultTriggerAsyncId","ranges":[{"startOffset":15272,"endOffset":15562,"count":451}],"isBlockCoverage":false},{"functionName":"defaultTriggerAsyncIdScope","ranges":[{"startOffset":15878,"endOffset":16371,"count":2}],"isBlockCoverage":false},{"functionName":"hasHooks","ranges":[{"startOffset":16373,"endOffset":16436,"count":419}],"isBlockCoverage":false},{"functionName":"enabledHooksExist","ranges":[{"startOffset":16438,"endOffset":16497,"count":412}],"isBlockCoverage":false},{"functionName":"initHooksExist","ranges":[{"startOffset":16499,"endOffset":16554,"count":412}],"isBlockCoverage":false},{"functionName":"emitBeforeScript","ranges":[{"startOffset":17205,"endOffset":17419,"count":411}],"isBlockCoverage":false},{"functionName":"emitAfterScript","ranges":[{"startOffset":17422,"endOffset":17542,"count":411}],"isBlockCoverage":false},{"functionName":"emitDestroyScript","ranges":[{"startOffset":17545,"endOffset":17757,"count":417}],"isBlockCoverage":false},{"functionName":"pushAsyncContext","ranges":[{"startOffset":17889,"endOffset":18459,"count":413}],"isBlockCoverage":false},{"functionName":"popAsyncContext","ranges":[{"startOffset":18524,"endOffset":19135,"count":412}],"isBlockCoverage":false}]},{"scriptId":"12","url":"node:internal/validators","functions":[{"functionName":"isInt32","ranges":[{"startOffset":1165,"endOffset":1224,"count":411}],"isBlockCoverage":false},{"functionName":"parseFileMode","ranges":[{"startOffset":1959,"endOffset":2270,"count":19}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2516,"endOffset":2897,"count":16}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3141,"endOffset":3604,"count":6}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3835,"endOffset":4267,"count":23}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4459,"endOffset":4571,"count":404}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4813,"endOffset":5259,"count":81}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5976,"endOffset":6090,"count":27}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6672,"endOffset":7691,"count":233}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11291,"endOffset":11521,"count":15}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11626,"endOffset":11938,"count":48}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12770,"endOffset":12987,"count":18}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13187,"endOffset":13303,"count":411}],"isBlockCoverage":false}]},{"scriptId":"13","url":"node:internal/util","functions":[{"functionName":"getDeprecationWarningEmitter","ranges":[{"startOffset":2764,"endOffset":3522,"count":22}],"isBlockCoverage":false},{"functionName":"shouldEmitWarning","ranges":[{"startOffset":2863,"endOffset":2873,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2910,"endOffset":3519,"count":48}],"isBlockCoverage":false},{"functionName":"isPendingDeprecation","ranges":[{"startOffset":3524,"endOffset":3652,"count":48}],"isBlockCoverage":false},{"functionName":"deprecate","ranges":[{"startOffset":4686,"endOffset":5989,"count":21}],"isBlockCoverage":false},{"functionName":"deprecated","ranges":[{"startOffset":5074,"endOffset":5302,"count":0}],"isBlockCoverage":false},{"functionName":"assertCrypto","ranges":[{"startOffset":6525,"endOffset":6599,"count":1}],"isBlockCoverage":false},{"functionName":"normalizeEncoding","ranges":[{"startOffset":7032,"endOffset":7163,"count":451}],"isBlockCoverage":false},{"functionName":"cachedResult","ranges":[{"startOffset":9940,"endOffset":10096,"count":3}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9991,"endOffset":10093,"count":0}],"isBlockCoverage":false},{"functionName":"getCWDURL","ranges":[{"startOffset":12440,"endOffset":12950,"count":1}],"isBlockCoverage":false},{"functionName":"getSystemErrorName","ranges":[{"startOffset":13033,"endOffset":13162,"count":2}],"isBlockCoverage":false},{"functionName":"promisify","ranges":[{"startOffset":13397,"endOffset":15452,"count":9}],"isBlockCoverage":false},{"functionName":"fn","ranges":[{"startOffset":14137,"endOffset":14850,"count":0}],"isBlockCoverage":false},{"functionName":"defineReplaceableLazyAttribute","ranges":[{"startOffset":18866,"endOffset":19766,"count":1}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":19078,"endOffset":19314,"count":10}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":19419,"endOffset":19490,"count":0}],"isBlockCoverage":false},{"functionName":"exposeLazyInterfaces","ranges":[{"startOffset":19768,"endOffset":19868,"count":1}],"isBlockCoverage":false},{"functionName":"setOwnProperty","ranges":[{"startOffset":21063,"endOffset":21253,"count":411}],"isBlockCoverage":false},{"functionName":"getLazy","ranges":[{"startOffset":23120,"endOffset":23332,"count":4}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":23201,"endOffset":23329,"count":413}],"isBlockCoverage":false},{"functionName":"setupCoverageHooks","ranges":[{"startOffset":23457,"endOffset":24134,"count":1}],"isBlockCoverage":false},{"functionName":"guessHandleType","ranges":[{"startOffset":25524,"endOffset":25621,"count":4}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":25647,"endOffset":25756,"count":20}],"isBlockCoverage":false},{"functionName":"WeakReference","ranges":[{"startOffset":25760,"endOffset":25827,"count":20}],"isBlockCoverage":false},{"functionName":"assignFunctionName","ranges":[{"startOffset":26681,"endOffset":27221,"count":4}],"isBlockCoverage":false}]},{"scriptId":"14","url":"node:internal/options","functions":[{"functionName":"getCLIOptionsFromBinding","ranges":[{"startOffset":722,"endOffset":809,"count":411}],"isBlockCoverage":false},{"functionName":"getCLIOptionsInfoFromBinding","ranges":[{"startOffset":811,"endOffset":896,"count":1}],"isBlockCoverage":false},{"functionName":"getEmbedderOptions","ranges":[{"startOffset":990,"endOffset":1085,"count":4}],"isBlockCoverage":false},{"functionName":"refreshOptions","ranges":[{"startOffset":4095,"endOffset":4151,"count":1}],"isBlockCoverage":false},{"functionName":"getOptionValue","ranges":[{"startOffset":4153,"endOffset":4241,"count":411}],"isBlockCoverage":false}]},{"scriptId":"15","url":"node:internal/util/types","functions":[{"functionName":"isUint8Array","ranges":[{"startOffset":236,"endOffset":342,"count":411}],"isBlockCoverage":false},{"functionName":"isBigInt64Array","ranges":[{"startOffset":1344,"endOffset":1456,"count":15}],"isBlockCoverage":false}]},{"scriptId":"16","url":"node:internal/linkedlist","functions":[{"functionName":"remove","ranges":[{"startOffset":260,"endOffset":487,"count":2}],"isBlockCoverage":false},{"functionName":"append","ranges":[{"startOffset":543,"endOffset":995,"count":1}],"isBlockCoverage":false},{"functionName":"isEmpty","ranges":[{"startOffset":997,"endOffset":1057,"count":1}],"isBlockCoverage":false}]},{"scriptId":"17","url":"node:internal/priority_queue","functions":[{"functionName":"insert","ranges":[{"startOffset":666,"endOffset":795,"count":1}],"isBlockCoverage":false},{"functionName":"peek","ranges":[{"startOffset":799,"endOffset":837,"count":1}],"isBlockCoverage":false},{"functionName":"percolateUp","ranges":[{"startOffset":1691,"endOffset":2249,"count":1}],"isBlockCoverage":false},{"functionName":"removeAt","ranges":[{"startOffset":2253,"endOffset":2593,"count":1}],"isBlockCoverage":false}]},{"scriptId":"18","url":"node:internal/util/inspect","functions":[{"functionName":"stylizeNoColor","ranges":[{"startOffset":17957,"endOffset":18003,"count":1}],"isBlockCoverage":false},{"functionName":"formatNumber","ranges":[{"startOffset":63284,"endOffset":64271,"count":1}],"isBlockCoverage":false},{"functionName":"format","ranges":[{"startOffset":83746,"endOffset":83827,"count":1}],"isBlockCoverage":false},{"functionName":"formatWithOptions","ranges":[{"startOffset":83829,"endOffset":84021,"count":189}],"isBlockCoverage":false},{"functionName":"formatNumberNoColor","ranges":[{"startOffset":84023,"endOffset":84205,"count":1}],"isBlockCoverage":false},{"functionName":"formatWithOptionsInternal","ranges":[{"startOffset":84391,"endOffset":88415,"count":125}],"isBlockCoverage":false}]},{"scriptId":"19","url":"node:internal/util/debuglog","functions":[{"functionName":"initializeDebugEnv","ranges":[{"startOffset":832,"endOffset":1305,"count":1}],"isBlockCoverage":false},{"functionName":"testEnabled","ranges":[{"startOffset":1199,"endOffset":1256,"count":0}],"isBlockCoverage":false},{"functionName":"testEnabled","ranges":[{"startOffset":1287,"endOffset":1298,"count":12}],"isBlockCoverage":false},{"functionName":"emitWarningIfNeeded","ranges":[{"startOffset":1379,"endOffset":1718,"count":1}],"isBlockCoverage":false},{"functionName":"noop","ranges":[{"startOffset":1733,"endOffset":1741,"count":421}],"isBlockCoverage":false},{"functionName":"debuglogImpl","ranges":[{"startOffset":1862,"endOffset":2420,"count":11}],"isBlockCoverage":false},{"functionName":"debug","ranges":[{"startOffset":2045,"endOffset":2338,"count":0}],"isBlockCoverage":false},{"functionName":"debuglog","ranges":[{"startOffset":2640,"endOffset":3993,"count":13}],"isBlockCoverage":false},{"functionName":"init","ranges":[{"startOffset":2671,"endOffset":2767,"count":11}],"isBlockCoverage":false},{"functionName":"debug","ranges":[{"startOffset":2782,"endOffset":3373,"count":11}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3061,"endOffset":3104,"count":0}],"isBlockCoverage":false},{"functionName":"test","ranges":[{"startOffset":3403,"endOffset":3472,"count":0}],"isBlockCoverage":false},{"functionName":"logger","ranges":[{"startOffset":3491,"endOffset":3816,"count":11}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3887,"endOffset":3921,"count":0}],"isBlockCoverage":false},{"functionName":"ensureTimerFlagsAreUpdated","ranges":[{"startOffset":9994,"endOffset":10147,"count":413}],"isBlockCoverage":false},{"functionName":"internalStartTimer","ranges":[{"startOffset":10187,"endOffset":10496,"count":906}],"isBlockCoverage":false},{"functionName":"internalEndTimer","ranges":[{"startOffset":10534,"endOffset":10862,"count":575}],"isBlockCoverage":false},{"functionName":"init","ranges":[{"startOffset":11250,"endOffset":11748,"count":1}],"isBlockCoverage":false},{"functionName":"startTimer","ranges":[{"startOffset":11807,"endOffset":11957,"count":1}],"isBlockCoverage":false}]},{"scriptId":"21","url":"node:internal/async_context_frame","functions":[{"functionName":"current","ranges":[{"startOffset":1230,"endOffset":1242,"count":411}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":1252,"endOffset":1265,"count":411}],"isBlockCoverage":false},{"functionName":"exchange","ranges":[{"startOffset":1275,"endOffset":1293,"count":411}],"isBlockCoverage":false}]},{"scriptId":"22","url":"node:events","functions":[{"functionName":"EventEmitter","ranges":[{"startOffset":5787,"endOffset":5856,"count":8}],"isBlockCoverage":false},{"functionName":"checkListener","ranges":[{"startOffset":7353,"endOffset":7431,"count":407}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7539,"endOffset":7587,"count":21}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9229,"endOffset":9877,"count":8}],"isBlockCoverage":false},{"functionName":"setMaxListeners","ranges":[{"startOffset":11250,"endOffset":11365,"count":4}],"isBlockCoverage":false},{"functionName":"_getMaxListeners","ranges":[{"startOffset":11368,"endOffset":11517,"count":14}],"isBlockCoverage":false},{"functionName":"emit","ranges":[{"startOffset":12674,"endOffset":14966,"count":731}],"isBlockCoverage":false},{"functionName":"_addListener","ranges":[{"startOffset":14969,"endOffset":16885,"count":202}],"isBlockCoverage":false},{"functionName":"addListener","ranges":[{"startOffset":17063,"endOffset":17155,"count":200}],"isBlockCoverage":false},{"functionName":"prependListener","ranges":[{"startOffset":17442,"endOffset":17545,"count":2}],"isBlockCoverage":false},{"functionName":"onceWrapper","ranges":[{"startOffset":17548,"endOffset":17812,"count":3}],"isBlockCoverage":false},{"functionName":"_onceWrap","ranges":[{"startOffset":17814,"endOffset":18055,"count":11}],"isBlockCoverage":false},{"functionName":"once","ranges":[{"startOffset":18246,"endOffset":18372,"count":11}],"isBlockCoverage":false},{"functionName":"removeListener","ranges":[{"startOffset":18982,"endOffset":20299,"count":194}],"isBlockCoverage":false},{"functionName":"_listeners","ranges":[{"startOffset":22019,"endOffset":22414,"count":62}],"isBlockCoverage":false},{"functionName":"listeners","ranges":[{"startOffset":22604,"endOffset":22671,"count":62}],"isBlockCoverage":false},{"functionName":"listenerCount","ranges":[{"startOffset":23168,"endOffset":23873,"count":344}],"isBlockCoverage":false},{"functionName":"arrayClone","ranges":[{"startOffset":24140,"endOffset":24613,"count":355}],"isBlockCoverage":false}]},{"scriptId":"24","url":"node:buffer","functions":[{"functionName":"createPool","ranges":[{"startOffset":4175,"endOffset":4363,"count":13}],"isBlockCoverage":false},{"functionName":"alignPool","ranges":[{"startOffset":4379,"endOffset":4501,"count":69}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8737,"endOffset":8765,"count":1}],"isBlockCoverage":false},{"functionName":"from","ranges":[{"startOffset":9145,"endOffset":10110,"count":119}],"isBlockCoverage":false},{"functionName":"allocUnsafe","ranges":[{"startOffset":12465,"endOffset":12567,"count":16}],"isBlockCoverage":false},{"functionName":"allocUnsafeSlow","ranges":[{"startOffset":12867,"endOffset":12983,"count":59}],"isBlockCoverage":false},{"functionName":"allocate","ranges":[{"startOffset":13304,"endOffset":13636,"count":16}],"isBlockCoverage":false},{"functionName":"fromStringFast","ranges":[{"startOffset":13638,"endOffset":14290,"count":119}],"isBlockCoverage":false},{"functionName":"createFromString","ranges":[{"startOffset":14292,"endOffset":14537,"count":59}],"isBlockCoverage":false},{"functionName":"fromString","ranges":[{"startOffset":14539,"endOffset":14899,"count":119}],"isBlockCoverage":false},{"functionName":"isBuffer","ranges":[{"startOffset":16306,"endOffset":16360,"count":5}],"isBlockCoverage":false},{"functionName":"isEncoding","ranges":[{"startOffset":16728,"endOffset":16879,"count":403}],"isBlockCoverage":false},{"functionName":"base64ByteLength","ranges":[{"startOffset":18101,"endOffset":18369,"count":61}],"isBlockCoverage":false},{"functionName":"byteLength","ranges":[{"startOffset":19986,"endOffset":20037,"count":61}],"isBlockCoverage":false},{"functionName":"getEncodingOps","ranges":[{"startOffset":21154,"endOffset":22978,"count":188}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":24605,"endOffset":25222,"count":118}],"isBlockCoverage":false}]},{"scriptId":"25","url":"node:internal/buffer","functions":[{"functionName":"utf8Write","ranges":[{"startOffset":26921,"endOffset":27268,"count":48}],"isBlockCoverage":false},{"functionName":"markAsUntransferable","ranges":[{"startOffset":31907,"endOffset":32156,"count":13}],"isBlockCoverage":false},{"functionName":"createUnsafeBuffer","ranges":[{"startOffset":32466,"endOffset":32752,"count":78}],"isBlockCoverage":false}]},{"scriptId":"26","url":"node:internal/worker/js_transferable","functions":[{"functionName":"markTransferMode","ranges":[{"startOffset":2696,"endOffset":3094,"count":828}],"isBlockCoverage":false}]},{"scriptId":"27","url":"node:internal/webidl","functions":[{"functionName":"DOMString","ranges":[{"startOffset":5190,"endOffset":5320,"count":18}],"isBlockCoverage":false},{"functionName":"createEnumConverter","ranges":[{"startOffset":5933,"endOffset":6294,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6021,"endOffset":6291,"count":0}],"isBlockCoverage":false},{"functionName":"createDictionaryConverter","ranges":[{"startOffset":7158,"endOffset":8837,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7465,"endOffset":7564,"count":5}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7577,"endOffset":8834,"count":0}],"isBlockCoverage":false},{"functionName":"createSequenceConverter","ranges":[{"startOffset":8886,"endOffset":9722,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8941,"endOffset":9719,"count":0}],"isBlockCoverage":false},{"functionName":"createInterfaceConverter","ranges":[{"startOffset":9772,"endOffset":10195,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9826,"endOffset":10192,"count":0}],"isBlockCoverage":false}]},{"scriptId":"28","url":"node:internal/process/per_thread","functions":[{"functionName":"buildAllowedFlags","ranges":[{"startOffset":11243,"endOffset":15397,"count":1}],"isBlockCoverage":false},{"functionName":"isAccepted","ranges":[{"startOffset":11879,"endOffset":12283,"count":33}],"isBlockCoverage":false},{"functionName":"trimLeadingDashes","ranges":[{"startOffset":12791,"endOffset":12853,"count":271}],"isBlockCoverage":false},{"functionName":"NodeEnvironmentFlagsSet","ranges":[{"startOffset":13163,"endOffset":13239,"count":1}],"isBlockCoverage":false},{"functionName":"add","ranges":[{"startOffset":13245,"endOffset":13314,"count":0}],"isBlockCoverage":false},{"functionName":"delete","ranges":[{"startOffset":13320,"endOffset":13393,"count":0}],"isBlockCoverage":false},{"functionName":"clear","ranges":[{"startOffset":13399,"endOffset":13451,"count":0}],"isBlockCoverage":false},{"functionName":"has","ranges":[{"startOffset":13457,"endOffset":14272,"count":1}],"isBlockCoverage":false},{"functionName":"entries","ranges":[{"startOffset":14278,"endOffset":14443,"count":0}],"isBlockCoverage":false},{"functionName":"forEach","ranges":[{"startOffset":14449,"endOffset":14633,"count":0}],"isBlockCoverage":false},{"functionName":"get size","ranges":[{"startOffset":14639,"endOffset":14700,"count":0}],"isBlockCoverage":false},{"functionName":"values","ranges":[{"startOffset":14706,"endOffset":14869,"count":0}],"isBlockCoverage":false},{"functionName":"toggleTraceCategoryState","ranges":[{"startOffset":15587,"endOffset":15870,"count":1}],"isBlockCoverage":false}]},{"scriptId":"29","url":"node:diagnostics_channel","functions":[{"functionName":"set","ranges":[{"startOffset":1130,"endOffset":1247,"count":20}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1251,"endOffset":1299,"count":20}],"isBlockCoverage":false},{"functionName":"Channel","ranges":[{"startOffset":4320,"endOffset":4461,"count":20}],"isBlockCoverage":false},{"functionName":"get hasSubscribers","ranges":[{"startOffset":4929,"endOffset":4973,"count":413}],"isBlockCoverage":false},{"functionName":"channel","ranges":[{"startOffset":5120,"endOffset":5386,"count":20}],"isBlockCoverage":false},{"functionName":"tracingChannelFrom","ranges":[{"startOffset":5944,"endOffset":6469,"count":15}],"isBlockCoverage":false},{"functionName":"TracingChannel","ranges":[{"startOffset":6496,"endOffset":6769,"count":3}],"isBlockCoverage":false},{"functionName":"get hasSubscribers","ranges":[{"startOffset":6773,"endOffset":6988,"count":411}],"isBlockCoverage":false},{"functionName":"tracePromise","ranges":[{"startOffset":7996,"endOffset":9182,"count":3}],"isBlockCoverage":false},{"functionName":"reject","ranges":[{"startOffset":8199,"endOffset":8458,"count":0}],"isBlockCoverage":false},{"functionName":"resolve","ranges":[{"startOffset":8464,"endOffset":8689,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8727,"endOffset":9176,"count":0}],"isBlockCoverage":false},{"functionName":"tracingChannel","ranges":[{"startOffset":10283,"endOffset":10371,"count":3}],"isBlockCoverage":false}]},{"scriptId":"30","url":"node:internal/process/task_queues","functions":[{"functionName":"hasTickScheduled","ranges":[{"startOffset":1115,"endOffset":1190,"count":4}],"isBlockCoverage":false},{"functionName":"setHasTickScheduled","ranges":[{"startOffset":1192,"endOffset":1278,"count":352}],"isBlockCoverage":false},{"functionName":"runNextTicks","ranges":[{"startOffset":1380,"endOffset":1576,"count":2}],"isBlockCoverage":false},{"functionName":"processTicksAndRejections","ranges":[{"startOffset":1578,"endOffset":2667,"count":177}],"isBlockCoverage":false},{"functionName":"nextTick","ranges":[{"startOffset":2811,"endOffset":3741,"count":177}],"isBlockCoverage":false}]},{"scriptId":"31","url":"node:internal/process/promises","functions":[{"functionName":"","ranges":[{"startOffset":1335,"endOffset":1447,"count":4}],"isBlockCoverage":false},{"functionName":"setHasRejectionToWarn","ranges":[{"startOffset":4165,"endOffset":4255,"count":179}],"isBlockCoverage":false},{"functionName":"hasRejectionToWarn","ranges":[{"startOffset":4287,"endOffset":4366,"count":4}],"isBlockCoverage":false},{"functionName":"promiseRejectHandler","ranges":[{"startOffset":4664,"endOffset":5347,"count":4}],"isBlockCoverage":false},{"functionName":"unhandledRejection","ranges":[{"startOffset":6776,"endOffset":7037,"count":2}],"isBlockCoverage":false},{"functionName":"handledRejection","ranges":[{"startOffset":7075,"endOffset":7656,"count":2}],"isBlockCoverage":false},{"functionName":"getUnhandledRejectionsMode","ranges":[{"startOffset":11428,"endOffset":11979,"count":1}],"isBlockCoverage":false},{"functionName":"processPromiseRejections","ranges":[{"startOffset":12152,"endOffset":13663,"count":177}],"isBlockCoverage":false}]},{"scriptId":"32","url":"node:internal/fixed_queue","functions":[{"functionName":"isEmpty","ranges":[{"startOffset":3130,"endOffset":3182,"count":412}],"isBlockCoverage":false},{"functionName":"isFull","ranges":[{"startOffset":3186,"endOffset":3253,"count":177}],"isBlockCoverage":false},{"functionName":"push","ranges":[{"startOffset":3257,"endOffset":3344,"count":177}],"isBlockCoverage":false},{"functionName":"shift","ranges":[{"startOffset":3348,"endOffset":3563,"count":354}],"isBlockCoverage":false},{"functionName":"isEmpty","ranges":[{"startOffset":3731,"endOffset":3778,"count":354}],"isBlockCoverage":false},{"functionName":"push","ranges":[{"startOffset":3782,"endOffset":4072,"count":177}],"isBlockCoverage":false},{"functionName":"shift","ranges":[{"startOffset":4076,"endOffset":4482,"count":354}],"isBlockCoverage":false}]},{"scriptId":"34","url":"node:timers","functions":[{"functionName":"","ranges":[{"startOffset":1806,"endOffset":1831,"count":1}],"isBlockCoverage":false},{"functionName":"unenroll","ranges":[{"startOffset":2106,"endOffset":3159,"count":1}],"isBlockCoverage":false},{"functionName":"setTimeout","ranges":[{"startOffset":3358,"endOffset":3601,"count":1}],"isBlockCoverage":false},{"functionName":"clearTimeout","ranges":[{"startOffset":3896,"endOffset":4254,"count":160}],"isBlockCoverage":false},{"functionName":"setImmediate","ranges":[{"startOffset":5686,"endOffset":5838,"count":415}],"isBlockCoverage":false}]},{"scriptId":"35","url":"node:internal/process/execution","functions":[{"functionName":"tryGetCwd","ranges":[{"startOffset":1182,"endOffset":1512,"count":1}],"isBlockCoverage":false}]},{"scriptId":"36","url":"node:path","functions":[{"functionName":"isPosixPathSeparator","ranges":[{"startOffset":2121,"endOffset":2198,"count":825}],"isBlockCoverage":false},{"functionName":"normalizeString","ranges":[{"startOffset":2933,"endOffset":4873,"count":36}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":39200,"endOffset":39219,"count":13}],"isBlockCoverage":false},{"functionName":"resolve","ranges":[{"startOffset":39344,"endOffset":40673,"count":672}],"isBlockCoverage":false},{"functionName":"normalize","ranges":[{"startOffset":40739,"endOffset":41352,"count":412}],"isBlockCoverage":false},{"functionName":"isAbsolute","ranges":[{"startOffset":41419,"endOffset":41575,"count":591}],"isBlockCoverage":false},{"functionName":"join","ranges":[{"startOffset":41644,"endOffset":42008,"count":80}],"isBlockCoverage":false},{"functionName":"relative","ranges":[{"startOffset":42098,"endOffset":44458,"count":3}],"isBlockCoverage":false},{"functionName":"toNamespacedPath","ranges":[{"startOffset":44524,"endOffset":44600,"count":424}],"isBlockCoverage":false},{"functionName":"dirname","ranges":[{"startOffset":44666,"endOffset":45342,"count":175}],"isBlockCoverage":false},{"functionName":"basename","ranges":[{"startOffset":45438,"endOffset":47868,"count":148}],"isBlockCoverage":false},{"functionName":"extname","ranges":[{"startOffset":47934,"endOffset":49577,"count":116}],"isBlockCoverage":false},{"functionName":"parse","ranges":[{"startOffset":49804,"endOffset":52276,"count":2}],"isBlockCoverage":false}]},{"scriptId":"37","url":"node:internal/url","functions":[{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":3976,"endOffset":4379,"count":413}],"isBlockCoverage":false},{"functionName":"get hasSearch","ranges":[{"startOffset":4453,"endOffset":4528,"count":381}],"isBlockCoverage":false},{"functionName":"get hasHash","ranges":[{"startOffset":4532,"endOffset":4603,"count":381}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":4757,"endOffset":4783,"count":412}],"isBlockCoverage":false},{"functionName":"URLSearchParamsIterator","ranges":[{"startOffset":4854,"endOffset":4956,"count":412}],"isBlockCoverage":false},{"functionName":"next","ranges":[{"startOffset":4960,"endOffset":5668,"count":479}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":7333,"endOffset":7393,"count":412}],"isBlockCoverage":false},{"functionName":"getURLSearchParamsList","ranges":[{"startOffset":7517,"endOffset":7543,"count":413}],"isBlockCoverage":false},{"functionName":"URLSearchParams","ranges":[{"startOffset":7998,"endOffset":12135,"count":415}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":14866,"endOffset":15319,"count":414}],"isBlockCoverage":false},{"functionName":"entries","ranges":[{"startOffset":19102,"endOffset":19309,"count":413}],"isBlockCoverage":false},{"functionName":"isURL","ranges":[{"startOffset":21951,"endOffset":22076,"count":630}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":22567,"endOffset":22636,"count":413}],"isBlockCoverage":false},{"functionName":"URL","ranges":[{"startOffset":23180,"endOffset":24085,"count":413}],"isBlockCoverage":false},{"functionName":"parse","ranges":[{"startOffset":24096,"endOffset":24338,"count":268}],"isBlockCoverage":false},{"functionName":"#getSearchFromContext","ranges":[{"startOffset":25066,"endOffset":25400,"count":38}],"isBlockCoverage":false},{"functionName":"#ensureSearchParamsUpdated","ranges":[{"startOffset":25519,"endOffset":25958,"count":426}],"isBlockCoverage":false},{"functionName":"#updateContext","ranges":[{"startOffset":26206,"endOffset":27851,"count":413}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":27855,"endOffset":28040,"count":220}],"isBlockCoverage":false},{"functionName":"get href","ranges":[{"startOffset":28044,"endOffset":28229,"count":411}],"isBlockCoverage":false},{"functionName":"get protocol","ranges":[{"startOffset":29343,"endOffset":29447,"count":412}],"isBlockCoverage":false},{"functionName":"get hostname","ranges":[{"startOffset":31044,"endOffset":31326,"count":134}],"isBlockCoverage":false},{"functionName":"get pathname","ranges":[{"startOffset":31788,"endOffset":32080,"count":343}],"isBlockCoverage":false},{"functionName":"get search","ranges":[{"startOffset":32261,"endOffset":32458,"count":38}],"isBlockCoverage":false},{"functionName":"set search","ranges":[{"startOffset":32462,"endOffset":32666,"count":38}],"isBlockCoverage":false},{"functionName":"get hash","ranges":[{"startOffset":33046,"endOffset":33261,"count":38}],"isBlockCoverage":false},{"functionName":"set hash","ranges":[{"startOffset":33265,"endOffset":33430,"count":38}],"isBlockCoverage":false},{"functionName":"getPathFromURLPosix","ranges":[{"startOffset":47293,"endOffset":47956,"count":13}],"isBlockCoverage":false},{"functionName":"fileURLToPath","ranges":[{"startOffset":49100,"endOffset":49512,"count":134}],"isBlockCoverage":false},{"functionName":"pathToFileURL","ranges":[{"startOffset":50226,"endOffset":52077,"count":336}],"isBlockCoverage":false},{"functionName":"toPathIfFileURL","ranges":[{"startOffset":52079,"endOffset":52216,"count":505}],"isBlockCoverage":false}]},{"scriptId":"45","url":"node:internal/source_map/source_map_cache","functions":[{"functionName":"","ranges":[{"startOffset":885,"endOffset":1013,"count":1}],"isBlockCoverage":false},{"functionName":"getSourceMapsSupport","ranges":[{"startOffset":1883,"endOffset":1978,"count":136}],"isBlockCoverage":false},{"functionName":"setSourceMapsSupport","ranges":[{"startOffset":2182,"endOffset":2951,"count":3}],"isBlockCoverage":false},{"functionName":"maybeCacheSourceMap","ranges":[{"startOffset":5496,"endOffset":7016,"count":86}],"isBlockCoverage":false},{"functionName":"dataFromUrl","ranges":[{"startOffset":8316,"endOffset":8737,"count":86}],"isBlockCoverage":false},{"functionName":"lineLengths","ranges":[{"startOffset":8927,"endOffset":9723,"count":34}],"isBlockCoverage":false},{"functionName":"sourceMapFromFile","ranges":[{"startOffset":9875,"endOffset":10122,"count":17}],"isBlockCoverage":false},{"functionName":"sourceMapFromDataUrl","ranges":[{"startOffset":10216,"endOffset":10994,"count":69}],"isBlockCoverage":false},{"functionName":"sourcesToAbsolute","ranges":[{"startOffset":11266,"endOffset":11670,"count":86}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11344,"endOffset":11527,"count":86}],"isBlockCoverage":false},{"functionName":"findSourceMap","ranges":[{"startOffset":12832,"endOffset":13860,"count":2}],"isBlockCoverage":false}]},{"scriptId":"46","url":"node:fs","functions":[{"functionName":"lazyLoadUtf8Stream","ranges":[{"startOffset":4202,"endOffset":4298,"count":1}],"isBlockCoverage":false},{"functionName":"isFileType","ranges":[{"startOffset":4986,"endOffset":5246,"count":421}],"isBlockCoverage":false},{"functionName":"existsSync","ranges":[{"startOffset":6808,"endOffset":7214,"count":16}],"isBlockCoverage":false},{"functionName":"tryStatSync","ranges":[{"startOffset":9761,"endOffset":9963,"count":15}],"isBlockCoverage":false},{"functionName":"tryCreateBuffer","ranges":[{"startOffset":9965,"endOffset":10276,"count":15}],"isBlockCoverage":false},{"functionName":"tryReadSync","ranges":[{"startOffset":10278,"endOffset":10533,"count":15}],"isBlockCoverage":false},{"functionName":"readFileSync","ranges":[{"startOffset":10757,"endOffset":12367,"count":414}],"isBlockCoverage":false},{"functionName":"closeSync","ranges":[{"startOffset":12885,"endOffset":12932,"count":15}],"isBlockCoverage":false},{"functionName":"openSync","ranges":[{"startOffset":13850,"endOffset":14012,"count":15}],"isBlockCoverage":false},{"functionName":"readSync","ranges":[{"startOffset":17579,"endOffset":18604,"count":15}],"isBlockCoverage":false},{"functionName":"rmSync","ranges":[{"startOffset":30520,"endOffset":30713,"count":4}],"isBlockCoverage":false},{"functionName":"mkdirSync","ranges":[{"startOffset":33608,"endOffset":34206,"count":6}],"isBlockCoverage":false},{"functionName":"readdirSync","ranges":[{"startOffset":39453,"endOffset":39932,"count":6}],"isBlockCoverage":false},{"functionName":"statSync","ranges":[{"startOffset":43824,"endOffset":44120,"count":45}],"isBlockCoverage":false},{"functionName":"writeFileSync","ranges":[{"startOffset":61995,"endOffset":63232,"count":4}],"isBlockCoverage":false},{"functionName":"appendFileSync","ranges":[{"startOffset":64272,"endOffset":64651,"count":4}],"isBlockCoverage":false},{"functionName":"splitRoot","ranges":[{"startOffset":69421,"endOffset":69631,"count":238}],"isBlockCoverage":false},{"functionName":"encodeRealpathResult","ranges":[{"startOffset":69636,"endOffset":69923,"count":341}],"isBlockCoverage":false},{"functionName":"nextPart","ranges":[{"startOffset":70329,"endOffset":70404,"count":411}],"isBlockCoverage":false},{"functionName":"realpathSync","ranges":[{"startOffset":70578,"endOffset":74269,"count":93}],"isBlockCoverage":false},{"functionName":"mkdtempSync","ranges":[{"startOffset":79833,"endOffset":80044,"count":3}],"isBlockCoverage":false},{"functionName":"lazyLoadStreams","ranges":[{"startOffset":83048,"endOffset":83239,"count":4}],"isBlockCoverage":false},{"functionName":"get ReadStream","ranges":[{"startOffset":86143,"endOffset":86211,"count":1}],"isBlockCoverage":false},{"functionName":"get WriteStream","ranges":[{"startOffset":86268,"endOffset":86338,"count":1}],"isBlockCoverage":false},{"functionName":"get FileReadStream","ranges":[{"startOffset":86530,"endOffset":86606,"count":1}],"isBlockCoverage":false},{"functionName":"get FileWriteStream","ranges":[{"startOffset":86671,"endOffset":86749,"count":1}],"isBlockCoverage":false},{"functionName":"get Utf8Stream","ranges":[{"startOffset":86816,"endOffset":86887,"count":1}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":88152,"endOffset":88248,"count":3}],"isBlockCoverage":false}]},{"scriptId":"48","url":"node:internal/encoding","functions":[{"functionName":"validateEncoder","ranges":[{"startOffset":1595,"endOffset":1720,"count":1}],"isBlockCoverage":false},{"functionName":"validateDecoder","ranges":[{"startOffset":1722,"endOffset":1847,"count":15}],"isBlockCoverage":false},{"functionName":"getEncodingFromLabel","ranges":[{"startOffset":9643,"endOffset":9822,"count":4}],"isBlockCoverage":false},{"functionName":"TextEncoder","ranges":[{"startOffset":9846,"endOffset":9892,"count":1}],"isBlockCoverage":false},{"functionName":"encode","ranges":[{"startOffset":9967,"endOffset":10059,"count":1}],"isBlockCoverage":false},{"functionName":"TextDecoder","ranges":[{"startOffset":11925,"endOffset":13100,"count":4}],"isBlockCoverage":false},{"functionName":"decode","ranges":[{"startOffset":13776,"endOffset":16506,"count":15}],"isBlockCoverage":false}]},{"scriptId":"51","url":"node:internal/fs/utils","functions":[{"functionName":"assertEncoding","ranges":[{"startOffset":3512,"endOffset":3712,"count":544}],"isBlockCoverage":false},{"functionName":"copyObject","ranges":[{"startOffset":4637,"endOffset":4765,"count":4}],"isBlockCoverage":false},{"functionName":"getOptions","ranges":[{"startOffset":7320,"endOffset":7946,"count":890}],"isBlockCoverage":false},{"functionName":"StatsBase","ranges":[{"startOffset":9278,"endOffset":9585,"count":15}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9621,"endOffset":9678,"count":2}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9710,"endOffset":9767,"count":13}],"isBlockCoverage":false},{"functionName":"msFromTimeSpec","ranges":[{"startOffset":10372,"endOffset":10454,"count":60}],"isBlockCoverage":false},{"functionName":"Stats","ranges":[{"startOffset":13213,"endOffset":13603,"count":15}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13800,"endOffset":14030,"count":15}],"isBlockCoverage":false},{"functionName":"getStatsFromBinding","ranges":[{"startOffset":14148,"endOffset":15227,"count":15}],"isBlockCoverage":false},{"functionName":"stringToFlags","ranges":[{"startOffset":15629,"endOffset":16885,"count":418}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":17711,"endOffset":18174,"count":15}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":18761,"endOffset":19473,"count":500}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19518,"endOffset":19653,"count":412}],"isBlockCoverage":false},{"functionName":"warnOnNonPortableTemplate","ranges":[{"startOffset":20279,"endOffset":20879,"count":3}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":23032,"endOffset":23706,"count":4}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":24292,"endOffset":24761,"count":4}],"isBlockCoverage":false}]},{"scriptId":"52","url":"node:internal/process/permission","functions":[{"functionName":"availableFlags","ranges":[{"startOffset":883,"endOffset":1104,"count":1}],"isBlockCoverage":false}]},{"scriptId":"53","url":"node:internal/modules/helpers","functions":[{"functionName":"","ranges":[{"startOffset":1344,"endOffset":1369,"count":1}],"isBlockCoverage":false},{"functionName":"toRealPath","ranges":[{"startOffset":1859,"endOffset":1991,"count":411}],"isBlockCoverage":false},{"functionName":"initializeCjsConditions","ranges":[{"startOffset":2175,"endOffset":2751,"count":1}],"isBlockCoverage":false},{"functionName":"getCjsConditions","ranges":[{"startOffset":2844,"endOffset":2971,"count":411}],"isBlockCoverage":false},{"functionName":"loadBuiltinModule","ranges":[{"startOffset":3291,"endOffset":3657,"count":144}],"isBlockCoverage":false},{"functionName":"lazyModule","ranges":[{"startOffset":3771,"endOffset":3864,"count":325}],"isBlockCoverage":false},{"functionName":"makeRequireFunction","ranges":[{"startOffset":4066,"endOffset":5190,"count":325}],"isBlockCoverage":false},{"functionName":"require","ranges":[{"startOffset":4261,"endOffset":4319,"count":573}],"isBlockCoverage":false},{"functionName":"resolve","ranges":[{"startOffset":4523,"endOffset":4669,"count":0}],"isBlockCoverage":false},{"functionName":"paths","ranges":[{"startOffset":4837,"endOffset":4959,"count":0}],"isBlockCoverage":false},{"functionName":"stripBOM","ranges":[{"startOffset":5423,"endOffset":5578,"count":2}],"isBlockCoverage":false},{"functionName":"normalizeReferrerURL","ranges":[{"startOffset":8059,"endOffset":8558,"count":172}],"isBlockCoverage":false},{"functionName":"urlToFilename","ranges":[{"startOffset":8913,"endOffset":9510,"count":2}],"isBlockCoverage":false},{"functionName":"lazyTypes","ranges":[{"startOffset":10792,"endOffset":10908,"count":29}],"isBlockCoverage":false},{"functionName":"assertBufferSource","ranges":[{"startOffset":11410,"endOffset":11831,"count":29}],"isBlockCoverage":false},{"functionName":"stringify","ranges":[{"startOffset":12076,"endOffset":12343,"count":16}],"isBlockCoverage":false},{"functionName":"hasStartedUserCJSExecution","ranges":[{"startOffset":14795,"endOffset":14869,"count":1}],"isBlockCoverage":false},{"functionName":"setHasStartedUserCJSExecution","ranges":[{"startOffset":14873,"endOffset":14950,"count":324}],"isBlockCoverage":false},{"functionName":"hasStartedUserESMExecution","ranges":[{"startOffset":14954,"endOffset":15028,"count":1}],"isBlockCoverage":false},{"functionName":"setHasStartedUserESMExecution","ranges":[{"startOffset":15032,"endOffset":15109,"count":3}],"isBlockCoverage":false}]},{"scriptId":"56","url":"node:internal/console/constructor","functions":[{"functionName":"lazyUtilColors","ranges":[{"startOffset":1959,"endOffset":2059,"count":189}],"isBlockCoverage":false},{"functionName":"value","ranges":[{"startOffset":6143,"endOffset":6722,"count":1}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6352,"endOffset":6416,"count":411}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":6428,"endOffset":6458,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6588,"endOffset":6652,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":6664,"endOffset":6694,"count":0}],"isBlockCoverage":false},{"functionName":"value","ranges":[{"startOffset":8364,"endOffset":9827,"count":189}],"isBlockCoverage":false},{"functionName":"value","ranges":[{"startOffset":9922,"endOffset":10440,"count":189}],"isBlockCoverage":false},{"functionName":"value","ranges":[{"startOffset":10533,"endOffset":10961,"count":189}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11640,"endOffset":12458,"count":189}],"isBlockCoverage":false},{"functionName":"log","ranges":[{"startOffset":12723,"endOffset":12875,"count":189}],"isBlockCoverage":false},{"functionName":"initializeGlobalConsole","ranges":[{"startOffset":20685,"endOffset":21675,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21570,"endOffset":21671,"count":0}],"isBlockCoverage":false}]},{"scriptId":"58","url":"node:internal/event_target","functions":[{"functionName":"isEvent","ranges":[{"startOffset":2282,"endOffset":2354,"count":244}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":2372,"endOffset":2514,"count":122}],"isBlockCoverage":false},{"functionName":"Event","ranges":[{"startOffset":2672,"endOffset":3188,"count":122}],"isBlockCoverage":false},{"functionName":"get type","ranges":[{"startOffset":5193,"endOffset":5300,"count":122}],"isBlockCoverage":false},{"functionName":"get defaultPrevented","ranges":[{"startOffset":5492,"endOffset":5642,"count":122}],"isBlockCoverage":false},{"functionName":"Listener","ranges":[{"startOffset":11230,"endOffset":12694,"count":18}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12521,"endOffset":12651,"count":0}],"isBlockCoverage":false},{"functionName":"get once","ranges":[{"startOffset":12698,"endOffset":12758,"count":1}],"isBlockCoverage":false},{"functionName":"get passive","ranges":[{"startOffset":12830,"endOffset":12896,"count":2}],"isBlockCoverage":false},{"functionName":"get isNodeStyleListener","ranges":[{"startOffset":12899,"endOffset":12979,"count":2}],"isBlockCoverage":false},{"functionName":"get weak","ranges":[{"startOffset":12982,"endOffset":13042,"count":19}],"isBlockCoverage":false},{"functionName":"get removed","ranges":[{"startOffset":13142,"endOffset":13208,"count":1}],"isBlockCoverage":false},{"functionName":"set removed","ranges":[{"startOffset":13211,"endOffset":13328,"count":18}],"isBlockCoverage":false},{"functionName":"initEventTarget","ranges":[{"startOffset":13764,"endOffset":13983,"count":9}],"isBlockCoverage":false},{"functionName":"EventTarget","ranges":[{"startOffset":14226,"endOffset":14272,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":14276,"endOffset":15132,"count":18}],"isBlockCoverage":false},{"functionName":"addEventListener","ranges":[{"startOffset":15575,"endOffset":18556,"count":18}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":16627,"endOffset":16705,"count":0}],"isBlockCoverage":false},{"functionName":"dispatchEvent","ranges":[{"startOffset":20246,"endOffset":20706,"count":122}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":20710,"endOffset":23225,"count":123}],"isBlockCoverage":false},{"functionName":"createEvent","ranges":[{"startOffset":20778,"endOffset":20978,"count":0}],"isBlockCoverage":false},{"functionName":"iterationCondition","ranges":[{"startOffset":21361,"endOffset":21526,"count":2}],"isBlockCoverage":false},{"functionName":"initNodeEventTarget","ranges":[{"startOffset":23951,"endOffset":24014,"count":7}],"isBlockCoverage":false},{"functionName":"on","ranges":[{"startOffset":25956,"endOffset":26161,"count":18}],"isBlockCoverage":false},{"functionName":"validateEventListener","ranges":[{"startOffset":28026,"endOffset":28398,"count":18}],"isBlockCoverage":false},{"functionName":"validateEventListenerOptions","ranges":[{"startOffset":28400,"endOffset":28958,"count":18}],"isBlockCoverage":false},{"functionName":"isEventTarget","ranges":[{"startOffset":29263,"endOffset":29339,"count":140}],"isBlockCoverage":false},{"functionName":"isNodeEventTarget","ranges":[{"startOffset":29341,"endOffset":29425,"count":18}],"isBlockCoverage":false},{"functionName":"addCatch","ranges":[{"startOffset":29427,"endOffset":29741,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":29573,"endOffset":29733,"count":0}],"isBlockCoverage":false},{"functionName":"defineEventHandler","ranges":[{"startOffset":30237,"endOffset":31711,"count":6}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":30397,"endOffset":30537,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":30636,"endOffset":31478,"count":0}],"isBlockCoverage":false}]},{"scriptId":"59","url":"node:util","functions":[{"functionName":"lazyAbortController","ranges":[{"startOffset":2757,"endOffset":2877,"count":3}],"isBlockCoverage":false},{"functionName":"inherits","ranges":[{"startOffset":6450,"endOffset":7088,"count":15}],"isBlockCoverage":false},{"functionName":"getSystemErrorName","ranges":[{"startOffset":10002,"endOffset":10218,"count":2}],"isBlockCoverage":false},{"functionName":"deprecate","ranges":[{"startOffset":14442,"endOffset":14576,"count":1}],"isBlockCoverage":false},{"functionName":"get transferableAbortSignal","ranges":[{"startOffset":15693,"endOffset":15786,"count":1}],"isBlockCoverage":false},{"functionName":"get transferableAbortController","ranges":[{"startOffset":15790,"endOffset":15891,"count":1}],"isBlockCoverage":false},{"functionName":"get aborted","ranges":[{"startOffset":15895,"endOffset":15956,"count":1}],"isBlockCoverage":false}]},{"scriptId":"63","url":"node:internal/bootstrap/switches/is_main_thread","functions":[{"functionName":"createWritableStdioStream","ranges":[{"startOffset":1428,"endOffset":3030,"count":2}],"isBlockCoverage":false},{"functionName":"write","ranges":[{"startOffset":2845,"endOffset":2892,"count":0}],"isBlockCoverage":false},{"functionName":"addCleanup","ranges":[{"startOffset":3643,"endOffset":3734,"count":2}],"isBlockCoverage":false},{"functionName":"getStdout","ranges":[{"startOffset":3736,"endOffset":4428,"count":12}],"isBlockCoverage":false},{"functionName":"cleanupStdout","ranges":[{"startOffset":4094,"endOffset":4272,"count":0}],"isBlockCoverage":false},{"functionName":"getStderr","ranges":[{"startOffset":4430,"endOffset":5121,"count":20}],"isBlockCoverage":false},{"functionName":"cleanupStderr","ranges":[{"startOffset":4787,"endOffset":4965,"count":0}],"isBlockCoverage":false}]},{"scriptId":"64","url":"node:internal/v8/startup_snapshot","functions":[{"functionName":"isBuildingSnapshot","ranges":[{"startOffset":433,"endOffset":504,"count":8}],"isBlockCoverage":false},{"functionName":"throwIfBuildingSnapshot","ranges":[{"startOffset":627,"endOffset":758,"count":1}],"isBlockCoverage":false},{"functionName":"runDeserializeCallbacks","ranges":[{"startOffset":831,"endOffset":1004,"count":1}],"isBlockCoverage":false}]},{"scriptId":"65","url":"node:internal/process/signal","functions":[{"functionName":"isSignal","ranges":[{"startOffset":238,"endOffset":334,"count":4}],"isBlockCoverage":false},{"functionName":"startListeningIfSignal","ranges":[{"startOffset":398,"endOffset":908,"count":4}],"isBlockCoverage":false}]},{"scriptId":"66","url":"node:url","functions":[{"functionName":"pathToFileURL","ranges":[{"startOffset":32485,"endOffset":32599,"count":48}],"isBlockCoverage":false}]},{"scriptId":"67","url":"node:internal/modules/cjs/loader","functions":[{"functionName":"","ranges":[{"startOffset":5438,"endOffset":5481,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6206,"endOffset":6265,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6354,"endOffset":6392,"count":1}],"isBlockCoverage":false},{"functionName":"wrapModuleLoad","ranges":[{"startOffset":6648,"endOffset":7335,"count":575}],"isBlockCoverage":false},{"functionName":"stat","ranges":[{"startOffset":7494,"endOffset":8053,"count":614}],"isBlockCoverage":false},{"functionName":"updateChildren","ranges":[{"startOffset":8563,"endOffset":8765,"count":537}],"isBlockCoverage":false},{"functionName":"reportModuleToWatchMode","ranges":[{"startOffset":8901,"endOffset":9057,"count":413}],"isBlockCoverage":false},{"functionName":"reportModuleNotFoundToWatchMode","ranges":[{"startOffset":9260,"endOffset":9499,"count":349}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9446,"endOffset":9488,"count":0}],"isBlockCoverage":false},{"functionName":"Module","ranges":[{"startOffset":9609,"endOffset":9913,"count":327}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11922,"endOffset":11947,"count":1}],"isBlockCoverage":false},{"functionName":"initializeCJS","ranges":[{"startOffset":12686,"endOffset":13285,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12943,"endOffset":12967,"count":73}],"isBlockCoverage":false},{"functionName":"_readPackage","ranges":[{"startOffset":13532,"endOffset":13614,"count":192}],"isBlockCoverage":false},{"functionName":"tryPackage","ranges":[{"startOffset":14240,"endOffset":15438,"count":73}],"isBlockCoverage":false},{"functionName":"tryFile","ranges":[{"startOffset":15830,"endOffset":16093,"count":480}],"isBlockCoverage":false},{"functionName":"tryExtensions","ranges":[{"startOffset":16385,"endOffset":16605,"count":157}],"isBlockCoverage":false},{"functionName":"findLongestRegisteredExtension","ranges":[{"startOffset":16810,"endOffset":17286,"count":326}],"isBlockCoverage":false},{"functionName":"trySelfParentPath","ranges":[{"startOffset":17441,"endOffset":17734,"count":824}],"isBlockCoverage":false},{"functionName":"trySelf","ranges":[{"startOffset":18000,"endOffset":18914,"count":824}],"isBlockCoverage":false},{"functionName":"resolveExports","ranges":[{"startOffset":19366,"endOffset":20188,"count":455}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":20481,"endOffset":24100,"count":685}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":26227,"endOffset":27415,"count":11}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":27578,"endOffset":28865,"count":824}],"isBlockCoverage":false},{"functionName":"getExportsForCircularRequire","ranges":[{"startOffset":30361,"endOffset":31365,"count":4}],"isBlockCoverage":false},{"functionName":"resolveForCJSWithHooks","ranges":[{"startOffset":31695,"endOffset":34856,"count":637}],"isBlockCoverage":false},{"functionName":"defaultResolveImpl","ranges":[{"startOffset":31853,"endOffset":32559,"count":575}],"isBlockCoverage":false},{"functionName":"defaultResolve","ranges":[{"startOffset":33148,"endOffset":34217,"count":0}],"isBlockCoverage":false},{"functionName":"defaultLoadImpl","ranges":[{"startOffset":35261,"endOffset":35791,"count":11}],"isBlockCoverage":false},{"functionName":"loadBuiltinWithHooks","ranges":[{"startOffset":37209,"endOffset":38223,"count":134}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":38989,"endOffset":44507,"count":907}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":45072,"endOffset":48098,"count":894}],"isBlockCoverage":false},{"functionName":"finalizeEsmResolution","ranges":[{"startOffset":48561,"endOffset":49058,"count":25}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":49926,"endOffset":50633,"count":326}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50855,"endOffset":51156,"count":880}],"isBlockCoverage":false},{"functionName":"wrapSafe","ranges":[{"startOffset":56979,"endOffset":59004,"count":324}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":59473,"endOffset":61205,"count":324}],"isBlockCoverage":false},{"functionName":"loadSource","ranges":[{"startOffset":61630,"endOffset":62695,"count":12}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":64684,"endOffset":66271,"count":10}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":66453,"endOffset":66715,"count":2}],"isBlockCoverage":false},{"functionName":"createRequireFromPath","ranges":[{"startOffset":67222,"endOffset":67846,"count":1}],"isBlockCoverage":false},{"functionName":"createRequire","ranges":[{"startOffset":68298,"endOffset":69111,"count":1}],"isBlockCoverage":false},{"functionName":"isRelative","ranges":[{"startOffset":69261,"endOffset":69602,"count":742}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":69722,"endOffset":70687,"count":1}],"isBlockCoverage":false}]},{"scriptId":"69","url":"node:internal/modules/package_json_reader","functions":[{"functionName":"deserializePackageJSON","ranges":[{"startOffset":1133,"endOffset":2579,"count":396}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1877,"endOffset":2103,"count":210}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2272,"endOffset":2498,"count":178}],"isBlockCoverage":false},{"functionName":"requiresJSONParse","ranges":[{"startOffset":2830,"endOffset":2904,"count":388}],"isBlockCoverage":false},{"functionName":"read","ranges":[{"startOffset":3139,"endOffset":3685,"count":200}],"isBlockCoverage":false},{"functionName":"getNearestParentPackageJSON","ranges":[{"startOffset":4761,"endOffset":5493,"count":823}],"isBlockCoverage":false},{"functionName":"getPackageScopeConfig","ranges":[{"startOffset":5721,"endOffset":6241,"count":15}],"isBlockCoverage":false},{"functionName":"parsePackageName","ranges":[{"startOffset":6719,"endOffset":7777,"count":8}],"isBlockCoverage":false},{"functionName":"getPackageJSONURL","ranges":[{"startOffset":7779,"endOffset":9096,"count":8}],"isBlockCoverage":false}]},{"scriptId":"70","url":"node:internal/modules/esm/utils","functions":[{"functionName":"getDefaultConditions","ranges":[{"startOffset":1170,"endOffset":1276,"count":45}],"isBlockCoverage":false},{"functionName":"getDefaultConditionsSet","ranges":[{"startOffset":1429,"endOffset":1544,"count":44}],"isBlockCoverage":false},{"functionName":"initializeDefaultConditions","ranges":[{"startOffset":1713,"endOffset":2218,"count":1}],"isBlockCoverage":false},{"functionName":"getConditionsSet","ranges":[{"startOffset":2288,"endOffset":2647,"count":44}],"isBlockCoverage":false},{"functionName":"defaultInitializeImportMetaForModule","ranges":[{"startOffset":5932,"endOffset":6182,"count":2}],"isBlockCoverage":false},{"functionName":"initializeImportMetaObject","ranges":[{"startOffset":6496,"endOffset":6951,"count":2}],"isBlockCoverage":false},{"functionName":"defaultImportModuleDynamicallyForModule","ranges":[{"startOffset":7414,"endOffset":7683,"count":1}],"isBlockCoverage":false},{"functionName":"importModuleDynamicallyCallback","ranges":[{"startOffset":9140,"endOffset":10699,"count":1}],"isBlockCoverage":false},{"functionName":"initializeESM","ranges":[{"startOffset":10902,"endOffset":11314,"count":1}],"isBlockCoverage":false},{"functionName":"shouldSpawnLoaderHookWorker","ranges":[{"startOffset":11457,"endOffset":11538,"count":1}],"isBlockCoverage":false},{"functionName":"compileSourceTextModule","ranges":[{"startOffset":12077,"endOffset":12643,"count":14}],"isBlockCoverage":false}]},{"scriptId":"72","url":"node:internal/modules/run_main","functions":[{"functionName":"resolveMainPath","ranges":[{"startOffset":749,"endOffset":1347,"count":1}],"isBlockCoverage":false},{"functionName":"shouldUseESMLoader","ranges":[{"startOffset":1530,"endOffset":2844,"count":1}],"isBlockCoverage":false},{"functionName":"asyncRunEntryPointWithESMLoader","ranges":[{"startOffset":2919,"endOffset":3672,"count":3}],"isBlockCoverage":false},{"functionName":"runEntryPointWithESMLoader","ranges":[{"startOffset":4056,"endOffset":4469,"count":1}],"isBlockCoverage":false},{"functionName":"executeUserEntryPoint","ranges":[{"startOffset":5151,"endOffset":6277,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6019,"endOffset":6269,"count":1}],"isBlockCoverage":false}]},{"scriptId":"73","url":"node:internal/dns/utils","functions":[{"functionName":"initializeDns","ranges":[{"startOffset":5863,"endOffset":6320,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6260,"endOffset":6316,"count":0}],"isBlockCoverage":false}]},{"scriptId":"75","url":"node:internal/process/pre_execution","functions":[{"functionName":"prepareMainThreadExecution","ranges":[{"startOffset":853,"endOffset":1134,"count":1}],"isBlockCoverage":false},{"functionName":"prepareExecution","ranges":[{"startOffset":2844,"endOffset":5151,"count":1}],"isBlockCoverage":false},{"functionName":"setupVmModules","ranges":[{"startOffset":5153,"endOffset":5652,"count":1}],"isBlockCoverage":false},{"functionName":"setupHttpProxy","ranges":[{"startOffset":5654,"endOffset":6628,"count":1}],"isBlockCoverage":false},{"functionName":"initializeModuleLoaders","ranges":[{"startOffset":6630,"endOffset":7949,"count":1}],"isBlockCoverage":false},{"functionName":"refreshRuntimeOptions","ranges":[{"startOffset":7951,"endOffset":8007,"count":1}],"isBlockCoverage":false},{"functionName":"patchProcessObject","ranges":[{"startOffset":8457,"endOffset":10794,"count":1}],"isBlockCoverage":false},{"functionName":"addReadOnlyProcessAlias","ranges":[{"startOffset":10796,"endOffset":11077,"count":13}],"isBlockCoverage":false},{"functionName":"setupWarningHandler","ranges":[{"startOffset":11079,"endOffset":11599,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11483,"endOffset":11585,"count":0}],"isBlockCoverage":false},{"functionName":"setupWebsocket","ranges":[{"startOffset":11640,"endOffset":11795,"count":1}],"isBlockCoverage":false},{"functionName":"setupEventsource","ranges":[{"startOffset":11863,"endOffset":11988,"count":1}],"isBlockCoverage":false},{"functionName":"setupNavigator","ranges":[{"startOffset":12092,"endOffset":12493,"count":1}],"isBlockCoverage":false},{"functionName":"setupSQLite","ranges":[{"startOffset":12495,"endOffset":12702,"count":1}],"isBlockCoverage":false},{"functionName":"initializeConfigFileSupport","ranges":[{"startOffset":12704,"endOffset":12925,"count":1}],"isBlockCoverage":false},{"functionName":"setupQuic","ranges":[{"startOffset":12927,"endOffset":13126,"count":1}],"isBlockCoverage":false},{"functionName":"setupWebStorage","ranges":[{"startOffset":13128,"endOffset":13533,"count":1}],"isBlockCoverage":false},{"functionName":"setupCodeCoverage","ranges":[{"startOffset":13535,"endOffset":14056,"count":1}],"isBlockCoverage":false},{"functionName":"setupStacktracePrinterOnSigint","ranges":[{"startOffset":14058,"endOffset":14224,"count":1}],"isBlockCoverage":false},{"functionName":"initializeReport","ranges":[{"startOffset":14226,"endOffset":14475,"count":1}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":14371,"endOffset":14466,"count":0}],"isBlockCoverage":false},{"functionName":"setupDebugEnv","ranges":[{"startOffset":14477,"endOffset":14708,"count":1}],"isBlockCoverage":false},{"functionName":"initializeReportSignalHandlers","ranges":[{"startOffset":14770,"endOffset":14958,"count":1}],"isBlockCoverage":false},{"functionName":"initializeHeapSnapshotSignalHandlers","ranges":[{"startOffset":14960,"endOffset":15694,"count":1}],"isBlockCoverage":false},{"functionName":"doWriteHeapSnapshot","ranges":[{"startOffset":15268,"endOffset":15422,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15614,"endOffset":15686,"count":0}],"isBlockCoverage":false},{"functionName":"setupTraceCategoryState","ranges":[{"startOffset":15696,"endOffset":15955,"count":1}],"isBlockCoverage":false},{"functionName":"setupInspectorHooks","ranges":[{"startOffset":15957,"endOffset":16539,"count":1}],"isBlockCoverage":false},{"functionName":"setupNetworkInspection","ranges":[{"startOffset":16541,"endOffset":16854,"count":1}],"isBlockCoverage":false},{"functionName":"initializeDeprecations","ranges":[{"startOffset":17049,"endOffset":18951,"count":1}],"isBlockCoverage":false},{"functionName":"setupChildProcessIpcChannel","ranges":[{"startOffset":18953,"endOffset":19470,"count":1}],"isBlockCoverage":false},{"functionName":"initializeClusterIPC","ranges":[{"startOffset":19472,"endOffset":19742,"count":1}],"isBlockCoverage":false},{"functionName":"initializePermission","ranges":[{"startOffset":19744,"endOffset":21540,"count":1}],"isBlockCoverage":false},{"functionName":"binding","ranges":[{"startOffset":19873,"endOffset":19960,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21385,"endOffset":21532,"count":7}],"isBlockCoverage":false},{"functionName":"initializeSourceMapsHandlers","ranges":[{"startOffset":21542,"endOffset":22048,"count":1}],"isBlockCoverage":false},{"functionName":"initializeFrozenIntrinsics","ranges":[{"startOffset":22050,"endOffset":22237,"count":1}],"isBlockCoverage":false},{"functionName":"loadPreloadModules","ranges":[{"startOffset":22344,"endOffset":22692,"count":1}],"isBlockCoverage":false},{"functionName":"markBootstrapComplete","ranges":[{"startOffset":22694,"endOffset":22788,"count":1}],"isBlockCoverage":false}]},{"scriptId":"76","url":"node:internal/bootstrap/switches/does_own_process_state","functions":[{"functionName":"","ranges":[{"startOffset":3373,"endOffset":3408,"count":1}],"isBlockCoverage":false},{"functionName":"wrappedCwd","ranges":[{"startOffset":3731,"endOffset":3834,"count":30}],"isBlockCoverage":false}]},{"scriptId":"77","url":"node:internal/main/run_main_module","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1232,"count":1}],"isBlockCoverage":false}]},{"scriptId":"78","url":"node:internal/modules/esm/loader","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":39155,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1930,"endOffset":1955,"count":0}],"isBlockCoverage":false},{"functionName":"newResolveCache","ranges":[{"startOffset":2347,"endOffset":2477,"count":1}],"isBlockCoverage":true},{"functionName":"newLoadCache","ranges":[{"startOffset":2631,"endOffset":2752,"count":1}],"isBlockCoverage":true},{"functionName":"lazyLoadTranslators","ranges":[{"startOffset":2772,"endOffset":2893,"count":27}],"isBlockCoverage":true},{"functionName":"getTranslators","ranges":[{"startOffset":3055,"endOffset":3128,"count":27}],"isBlockCoverage":true},{"functionName":"getRaceMessage","ranges":[{"startOffset":3546,"endOffset":4172,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":5379,"endOffset":6901,"count":1}],"isBlockCoverage":false},{"functionName":"ModuleLoader","ranges":[{"startOffset":6906,"endOffset":6990,"count":1}],"isBlockCoverage":true},{"functionName":"#setAsyncLoaderHooks","ranges":[{"startOffset":7601,"endOffset":7990,"count":2},{"startOffset":7715,"endOffset":7986,"count":1}],"isBlockCoverage":true},{"functionName":"createModuleWrap","ranges":[{"startOffset":8255,"endOffset":8378,"count":0}],"isBlockCoverage":false},{"functionName":"executeModuleJob","ranges":[{"startOffset":8614,"endOffset":9219,"count":0}],"isBlockCoverage":false},{"functionName":"eval","ranges":[{"startOffset":9464,"endOffset":9695,"count":0}],"isBlockCoverage":false},{"functionName":"importSyncForRequire","ranges":[{"startOffset":10267,"endOffset":14777,"count":0}],"isBlockCoverage":false},{"functionName":"#checkCachedJobForRequireESM","ranges":[{"startOffset":15122,"endOffset":16108,"count":0}],"isBlockCoverage":false},{"functionName":"loadAndTranslateForImportInRequiredESM","ranges":[{"startOffset":16581,"endOffset":17752,"count":0}],"isBlockCoverage":false},{"functionName":"#translate","ranges":[{"startOffset":18230,"endOffset":18874,"count":26},{"startOffset":18457,"endOffset":18527,"count":0},{"startOffset":18748,"endOffset":18777,"count":24},{"startOffset":18778,"endOffset":18810,"count":24},{"startOffset":18812,"endOffset":18851,"count":2}],"isBlockCoverage":true},{"functionName":"loadAndTranslateForRequireInImportedCJS","ranges":[{"startOffset":19308,"endOffset":20339,"count":0}],"isBlockCoverage":false},{"functionName":"loadAndTranslate","ranges":[{"startOffset":20790,"endOffset":21244,"count":26},{"startOffset":21137,"endOffset":21204,"count":0}],"isBlockCoverage":true},{"functionName":"afterLoad","ranges":[{"startOffset":20914,"endOffset":21102,"count":26}],"isBlockCoverage":true},{"functionName":"#getOrCreateModuleJobAfterResolve","ranges":[{"startOffset":21981,"endOffset":24182,"count":85},{"startOffset":22155,"endOffset":22170,"count":0},{"startOffset":22172,"endOffset":22310,"count":0},{"startOffset":22581,"endOffset":22798,"count":59},{"startOffset":22631,"endOffset":22723,"count":0},{"startOffset":22798,"endOffset":22946,"count":26},{"startOffset":22946,"endOffset":23054,"count":0},{"startOffset":23054,"endOffset":23309,"count":26},{"startOffset":23102,"endOffset":23218,"count":0},{"startOffset":23309,"endOffset":23396,"count":26},{"startOffset":23397,"endOffset":23440,"count":26},{"startOffset":23442,"endOffset":23776,"count":26},{"startOffset":23776,"endOffset":23791,"count":0},{"startOffset":23792,"endOffset":23803,"count":26},{"startOffset":23883,"endOffset":23917,"count":1}],"isBlockCoverage":true},{"functionName":"getOrCreateModuleJob","ranges":[{"startOffset":24629,"endOffset":25333,"count":85},{"startOffset":24794,"endOffset":24961,"count":0},{"startOffset":25220,"endOffset":25290,"count":0}],"isBlockCoverage":true},{"functionName":"afterResolve","ranges":[{"startOffset":25057,"endOffset":25184,"count":85}],"isBlockCoverage":true},{"functionName":"import","ranges":[{"startOffset":25884,"endOffset":26717,"count":3}],"isBlockCoverage":true},{"functionName":"onImport.tracePromise.__proto__","ranges":[{"startOffset":26020,"endOffset":26640,"count":3},{"startOffset":26239,"endOffset":26393,"count":0},{"startOffset":26428,"endOffset":26538,"count":0}],"isBlockCoverage":true},{"functionName":"module","ranges":[{"startOffset":26348,"endOffset":26356,"count":0}],"isBlockCoverage":false},{"functionName":"register","ranges":[{"startOffset":26797,"endOffset":27483,"count":1}],"isBlockCoverage":true},{"functionName":"#resolve","ranges":[{"startOffset":27903,"endOffset":28331,"count":85},{"startOffset":27975,"endOffset":28277,"count":0}],"isBlockCoverage":true},{"functionName":"#cachedDefaultResolve","ranges":[{"startOffset":28673,"endOffset":29207,"count":84},{"startOffset":28957,"endOffset":28991,"count":0}],"isBlockCoverage":true},{"functionName":"#resolveAndMaybeBlockOnLoaderThread","ranges":[{"startOffset":29660,"endOffset":29938,"count":85},{"startOffset":29748,"endOffset":29761,"count":1},{"startOffset":29763,"endOffset":29875,"count":1},{"startOffset":29875,"endOffset":29937,"count":84}],"isBlockCoverage":true},{"functionName":"resolveSync","ranges":[{"startOffset":30495,"endOffset":31192,"count":85},{"startOffset":30623,"endOffset":30638,"count":0},{"startOffset":30674,"endOffset":30961,"count":0}],"isBlockCoverage":true},{"functionName":"load","ranges":[{"startOffset":31559,"endOffset":31824,"count":26},{"startOffset":31621,"endOffset":31779,"count":0}],"isBlockCoverage":true},{"functionName":"#loadAndMaybeBlockOnLoaderThread","ranges":[{"startOffset":32182,"endOffset":32464,"count":26},{"startOffset":32261,"endOffset":32271,"count":1},{"startOffset":32273,"endOffset":32340,"count":1},{"startOffset":32340,"endOffset":32463,"count":25}],"isBlockCoverage":true},{"functionName":"#loadSync","ranges":[{"startOffset":32924,"endOffset":33506,"count":26},{"startOffset":32980,"endOffset":33438,"count":0}],"isBlockCoverage":true},{"functionName":"validateLoadResult","ranges":[{"startOffset":33510,"endOffset":33661,"count":26},{"startOffset":33568,"endOffset":33657,"count":0}],"isBlockCoverage":true},{"functionName":"importMetaInitialize","ranges":[{"startOffset":33665,"endOffset":34004,"count":2},{"startOffset":33735,"endOffset":33821,"count":0}],"isBlockCoverage":true},{"functionName":"waitForAsyncLoaderHookInitialization","ranges":[{"startOffset":34133,"endOffset":34240,"count":0}],"isBlockCoverage":false},{"functionName":"createModuleLoader","ranges":[{"startOffset":34809,"endOffset":36574,"count":1},{"startOffset":35235,"endOffset":36522,"count":0}],"isBlockCoverage":true},{"functionName":"readableURIEncode","ranges":[{"startOffset":35310,"endOffset":35805,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":36125,"endOffset":36213,"count":0}],"isBlockCoverage":false},{"functionName":"getOrInitializeCascadedLoader","ranges":[{"startOffset":37217,"endOffset":37361,"count":5}],"isBlockCoverage":true},{"functionName":"isCascadedLoaderInitialized","ranges":[{"startOffset":37363,"endOffset":37444,"count":0}],"isBlockCoverage":false},{"functionName":"register","ranges":[{"startOffset":38688,"endOffset":39033,"count":1},{"startOffset":38969,"endOffset":38979,"count":0}],"isBlockCoverage":true}]},{"scriptId":"79","url":"node:internal/modules/esm/assert","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3838,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1301,"endOffset":1342,"count":5}],"isBlockCoverage":true},{"functionName":"validateAttributes","ranges":[{"startOffset":1716,"endOffset":3103,"count":25},{"startOffset":1912,"endOffset":2044,"count":0},{"startOffset":2116,"endOffset":2261,"count":0},{"startOffset":2529,"endOffset":2589,"count":0},{"startOffset":2595,"endOffset":2704,"count":0},{"startOffset":2710,"endOffset":3097,"count":0}],"isBlockCoverage":true},{"functionName":"handleInvalidType","ranges":[{"startOffset":3337,"endOffset":3765,"count":0}],"isBlockCoverage":false}]},{"scriptId":"80","url":"node:internal/modules/esm/module_map","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4026,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":284,"endOffset":309,"count":1}],"isBlockCoverage":true},{"functionName":"serializeKey","ranges":[{"startOffset":1149,"endOffset":1761,"count":84},{"startOffset":1558,"endOffset":1760,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1677,"endOffset":1743,"count":0}],"isBlockCoverage":false},{"functionName":"#getModuleCachedImports","ranges":[{"startOffset":1765,"endOffset":1981,"count":168},{"startOffset":1879,"endOffset":1951,"count":11}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":2156,"endOffset":2258,"count":84}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":2427,"endOffset":2556,"count":84}],"isBlockCoverage":true},{"functionName":"has","ranges":[{"startOffset":2666,"endOffset":2770,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2904,"endOffset":3050,"count":85},{"startOffset":3037,"endOffset":3045,"count":59}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":3053,"endOffset":3666,"count":52},{"startOffset":3287,"endOffset":3323,"count":0},{"startOffset":3325,"endOffset":3395,"count":0},{"startOffset":3482,"endOffset":3488,"count":0},{"startOffset":3560,"endOffset":3582,"count":26}],"isBlockCoverage":true},{"functionName":"has","ranges":[{"startOffset":3669,"endOffset":3829,"count":0}],"isBlockCoverage":false},{"functionName":"delete","ranges":[{"startOffset":3832,"endOffset":3971,"count":26}],"isBlockCoverage":true}]},{"scriptId":"81","url":"node:internal/modules/esm/translators","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":24510,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1245,"endOffset":1270,"count":1}],"isBlockCoverage":true},{"functionName":"getSource","ranges":[{"startOffset":1883,"endOffset":2011,"count":0}],"isBlockCoverage":false},{"functionName":"errPath","ranges":[{"startOffset":2286,"endOffset":2431,"count":0}],"isBlockCoverage":false},{"functionName":"moduleStrategy","ranges":[{"startOffset":2513,"endOffset":3008,"count":14},{"startOffset":2894,"endOffset":2906,"count":0}],"isBlockCoverage":true},{"functionName":"loadCJSModule","ranges":[{"startOffset":3840,"endOffset":7348,"count":0}],"isBlockCoverage":false},{"functionName":"createCJSModuleWrap","ranges":[{"startOffset":7942,"endOffset":9769,"count":2},{"startOffset":8376,"endOffset":8409,"count":0},{"startOffset":8785,"endOffset":8841,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8897,"endOffset":9757,"count":2},{"startOffset":9188,"endOffset":9231,"count":0},{"startOffset":9274,"endOffset":9666,"count":12},{"startOffset":9412,"endOffset":9439,"count":0},{"startOffset":9563,"endOffset":9619,"count":0}],"isBlockCoverage":true},{"functionName":"createCJSNoSourceModuleWrap","ranges":[{"startOffset":10049,"endOffset":11257,"count":0}],"isBlockCoverage":false},{"functionName":"requireCommonJS","ranges":[{"startOffset":11292,"endOffset":11447,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11609,"endOffset":11714,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11887,"endOffset":12089,"count":0}],"isBlockCoverage":false},{"functionName":"loadCJSModuleWithModuleLoad","ranges":[{"startOffset":12159,"endOffset":12511,"count":2}],"isBlockCoverage":true},{"functionName":"commonjsStrategy","ranges":[{"startOffset":12697,"endOffset":13765,"count":2},{"startOffset":13372,"endOffset":13406,"count":1},{"startOffset":13483,"endOffset":13498,"count":0},{"startOffset":13640,"endOffset":13688,"count":0}],"isBlockCoverage":true},{"functionName":"cjsEmplaceModuleCacheEntry","ranges":[{"startOffset":14002,"endOffset":14442,"count":2},{"startOffset":14187,"endOffset":14211,"count":0}],"isBlockCoverage":true},{"functionName":"cjsPreparseModuleExports","ranges":[{"startOffset":14714,"endOffset":16332,"count":2},{"startOffset":14879,"endOffset":14948,"count":0},{"startOffset":14978,"endOffset":15055,"count":0},{"startOffset":15442,"endOffset":16295,"count":0}],"isBlockCoverage":true},{"functionName":"builtinStrategy","ranges":[{"startOffset":16456,"endOffset":16898,"count":10},{"startOffset":16771,"endOffset":16823,"count":0}],"isBlockCoverage":true},{"functionName":"jsonStrategy","ranges":[{"startOffset":16962,"endOffset":19212,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19569,"endOffset":23034,"count":0}],"isBlockCoverage":false},{"functionName":"translateAddon","ranges":[{"startOffset":23095,"endOffset":23583,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":23679,"endOffset":24049,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":24139,"endOffset":24507,"count":0}],"isBlockCoverage":false}]},{"scriptId":"82","url":"node:internal/modules/esm/resolve","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":39202,"count":1}],"isBlockCoverage":false},{"functionName":"emitTrailingSlashPatternDeprecation","ranges":[{"startOffset":2507,"endOffset":3140,"count":0}],"isBlockCoverage":false},{"functionName":"emitInvalidSegmentDeprecation","ranges":[{"startOffset":3653,"endOffset":4395,"count":0}],"isBlockCoverage":false},{"functionName":"emitLegacyIndexDeprecation","ranges":[{"startOffset":4912,"endOffset":5993,"count":3},{"startOffset":5011,"endOffset":5028,"count":0},{"startOffset":5120,"endOffset":5991,"count":0}],"isBlockCoverage":true},{"functionName":"legacyMainResolve","ranges":[{"startOffset":7126,"endOffset":7844,"count":3},{"startOffset":7327,"endOffset":7338,"count":0},{"startOffset":7564,"endOffset":7571,"count":0},{"startOffset":7572,"endOffset":7576,"count":0}],"isBlockCoverage":true},{"functionName":"finalizeResolution","ranges":[{"startOffset":8628,"endOffset":10351,"count":38},{"startOffset":8764,"endOffset":9015,"count":0},{"startOffset":9077,"endOffset":9204,"count":0},{"startOffset":9318,"endOffset":9350,"count":0},{"startOffset":9419,"endOffset":9609,"count":0},{"startOffset":9632,"endOffset":10010,"count":0},{"startOffset":10256,"endOffset":10261,"count":0}],"isBlockCoverage":true},{"functionName":"importNotDefined","ranges":[{"startOffset":10765,"endOffset":10976,"count":0}],"isBlockCoverage":false},{"functionName":"exportsNotFound","ranges":[{"startOffset":11372,"endOffset":11567,"count":0}],"isBlockCoverage":false},{"functionName":"throwInvalidSubpath","ranges":[{"startOffset":12205,"endOffset":12588,"count":0}],"isBlockCoverage":false},{"functionName":"invalidPackageTarget","ranges":[{"startOffset":13044,"endOffset":13422,"count":0}],"isBlockCoverage":false},{"functionName":"resolvePackageTargetString","ranges":[{"startOffset":14734,"endOffset":17473,"count":30},{"startOffset":14903,"endOffset":14914,"count":0},{"startOffset":14915,"endOffset":14951,"count":0},{"startOffset":14953,"endOffset":15037,"count":0},{"startOffset":15087,"endOffset":15630,"count":0},{"startOffset":15722,"endOffset":16332,"count":0},{"startOffset":16551,"endOffset":16635,"count":0},{"startOffset":16679,"endOffset":17472,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15405,"endOffset":15418,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15931,"endOffset":15944,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":16077,"endOffset":16090,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":16814,"endOffset":16827,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":17054,"endOffset":17067,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":17407,"endOffset":17420,"count":0}],"isBlockCoverage":false},{"functionName":"isArrayIndex","ranges":[{"startOffset":17665,"endOffset":17809,"count":91},{"startOffset":17761,"endOffset":17806,"count":0}],"isBlockCoverage":true},{"functionName":"resolvePackageTarget","ranges":[{"startOffset":18604,"endOffset":20822,"count":82},{"startOffset":18797,"endOffset":18951,"count":30},{"startOffset":18951,"endOffset":20705,"count":52},{"startOffset":18983,"endOffset":19797,"count":7},{"startOffset":19014,"endOffset":19040,"count":0},{"startOffset":19360,"endOffset":19508,"count":0},{"startOffset":19548,"endOffset":19575,"count":0},{"startOffset":19610,"endOffset":19667,"count":0},{"startOffset":19701,"endOffset":19797,"count":0},{"startOffset":19797,"endOffset":20705,"count":45},{"startOffset":19950,"endOffset":20178,"count":91},{"startOffset":20008,"endOffset":20172,"count":0},{"startOffset":20221,"endOffset":20630,"count":86},{"startOffset":20278,"endOffset":20300,"count":69},{"startOffset":20302,"endOffset":20624,"count":45},{"startOffset":20573,"endOffset":20586,"count":0},{"startOffset":20630,"endOffset":20705,"count":0},{"startOffset":20705,"endOffset":20821,"count":0}],"isBlockCoverage":true},{"functionName":"isConditionalExportsMainSugar","ranges":[{"startOffset":21128,"endOffset":22071,"count":30},{"startOffset":21260,"endOffset":21276,"count":0},{"startOffset":21332,"endOffset":21349,"count":0},{"startOffset":21489,"endOffset":22040,"count":72},{"startOffset":21599,"endOffset":21656,"count":30},{"startOffset":21656,"endOffset":22036,"count":42},{"startOffset":21712,"endOffset":22036,"count":0}],"isBlockCoverage":true},{"functionName":"packageExportsResolve","ranges":[{"startOffset":22568,"endOffset":25139,"count":30},{"startOffset":22772,"endOffset":22809,"count":8},{"startOffset":23211,"endOffset":23285,"count":0},{"startOffset":23316,"endOffset":25138,"count":0}],"isBlockCoverage":true},{"functionName":"patternKeyCompare","ranges":[{"startOffset":25515,"endOffset":26070,"count":0}],"isBlockCoverage":false},{"functionName":"packageImportsResolve","ranges":[{"startOffset":26557,"endOffset":28985,"count":0}],"isBlockCoverage":false},{"functionName":"packageResolve","ranges":[{"startOffset":29310,"endOffset":30105,"count":14},{"startOffset":29474,"endOffset":29520,"count":6},{"startOffset":29520,"endOffset":29813,"count":8},{"startOffset":29813,"endOffset":29924,"count":5},{"startOffset":29924,"endOffset":30052,"count":3},{"startOffset":30052,"endOffset":30104,"count":0}],"isBlockCoverage":true},{"functionName":"isBareSpecifier","ranges":[{"startOffset":30238,"endOffset":30348,"count":0}],"isBlockCoverage":false},{"functionName":"isRelativeSpecifier","ranges":[{"startOffset":30489,"endOffset":30768,"count":128},{"startOffset":30559,"endOffset":30750,"count":60},{"startOffset":30617,"endOffset":30633,"count":42},{"startOffset":30633,"endOffset":30746,"count":18},{"startOffset":30750,"endOffset":30767,"count":68}],"isBlockCoverage":true},{"functionName":"shouldBeTreatedAsRelativeOrAbsolutePath","ranges":[{"startOffset":30939,"endOffset":31130,"count":128},{"startOffset":31025,"endOffset":31042,"count":0},{"startOffset":31071,"endOffset":31087,"count":0}],"isBlockCoverage":true},{"functionName":"moduleResolve","ranges":[{"startOffset":31511,"endOffset":32845,"count":44},{"startOffset":31702,"endOffset":31721,"count":0},{"startOffset":31936,"endOffset":32160,"count":30},{"startOffset":31997,"endOffset":32156,"count":0},{"startOffset":32160,"endOffset":32716,"count":14},{"startOffset":32216,"endOffset":32288,"count":0},{"startOffset":32355,"endOffset":32384,"count":0},{"startOffset":32409,"endOffset":32464,"count":0},{"startOffset":32466,"endOffset":32644,"count":0},{"startOffset":32754,"endOffset":32780,"count":6},{"startOffset":32780,"endOffset":32844,"count":38}],"isBlockCoverage":true},{"functionName":"resolveAsCommonJS","ranges":[{"startOffset":33045,"endOffset":34871,"count":0}],"isBlockCoverage":false},{"functionName":"throwIfInvalidParentURL","ranges":[{"startOffset":35030,"endOffset":35303,"count":84},{"startOffset":35107,"endOffset":35158,"count":0},{"startOffset":35195,"endOffset":35215,"count":0},{"startOffset":35217,"endOffset":35301,"count":0}],"isBlockCoverage":true},{"functionName":"defaultResolve","ranges":[{"startOffset":35851,"endOffset":38016,"count":84},{"startOffset":36156,"endOffset":36212,"count":30},{"startOffset":36212,"endOffset":36257,"count":54},{"startOffset":36281,"endOffset":36481,"count":70},{"startOffset":36418,"endOffset":36477,"count":0},{"startOffset":36504,"endOffset":36514,"count":0},{"startOffset":36544,"endOffset":36591,"count":40},{"startOffset":36591,"endOffset":36650,"count":44},{"startOffset":36650,"endOffset":37157,"count":0},{"startOffset":37157,"endOffset":37313,"count":44},{"startOffset":37313,"endOffset":37335,"count":0},{"startOffset":37336,"endOffset":37354,"count":44},{"startOffset":37367,"endOffset":37790,"count":0},{"startOffset":37790,"endOffset":38015,"count":44}],"isBlockCoverage":true},{"functionName":"decorateErrorWithCommonJSHints","ranges":[{"startOffset":38279,"endOffset":38892,"count":0}],"isBlockCoverage":false}]},{"scriptId":"83","url":"node:internal/modules/esm/get_format","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7578,"count":1}],"isBlockCoverage":false},{"functionName":"node:","ranges":[{"startOffset":854,"endOffset":885,"count":6}],"isBlockCoverage":true},{"functionName":"detectModuleFormat","ranges":[{"startOffset":1089,"endOffset":1330,"count":7},{"startOffset":1147,"endOffset":1191,"count":6},{"startOffset":1176,"endOffset":1188,"count":0},{"startOffset":1191,"endOffset":1213,"count":1},{"startOffset":1213,"endOffset":1235,"count":0},{"startOffset":1235,"endOffset":1304,"count":1},{"startOffset":1304,"endOffset":1314,"count":0},{"startOffset":1315,"endOffset":1327,"count":1}],"isBlockCoverage":true},{"functionName":"getDataProtocolModuleFormat","ranges":[{"startOffset":1391,"endOffset":1607,"count":0}],"isBlockCoverage":false},{"functionName":"extname","ranges":[{"startOffset":1882,"endOffset":2241,"count":42},{"startOffset":1982,"endOffset":2226,"count":161},{"startOffset":2044,"endOffset":2079,"count":0},{"startOffset":2087,"endOffset":2216,"count":42},{"startOffset":2175,"endOffset":2179,"count":0},{"startOffset":2226,"endOffset":2240,"count":0}],"isBlockCoverage":true},{"functionName":"underNodeModules","ranges":[{"startOffset":2493,"endOffset":2714,"count":0}],"isBlockCoverage":false},{"functionName":"warnTypelessPackageJsonFile","ranges":[{"startOffset":2757,"endOffset":3384,"count":0}],"isBlockCoverage":false},{"functionName":"getFileProtocolModuleFormat","ranges":[{"startOffset":3525,"endOffset":6720,"count":42},{"startOffset":3694,"endOffset":4572,"count":7},{"startOffset":3827,"endOffset":3860,"count":0},{"startOffset":4265,"endOffset":4284,"count":0},{"startOffset":4286,"endOffset":4549,"count":0},{"startOffset":4572,"endOffset":4593,"count":35},{"startOffset":4593,"endOffset":4627,"count":0},{"startOffset":4629,"endOffset":5901,"count":0},{"startOffset":5901,"endOffset":5921,"count":35},{"startOffset":5921,"endOffset":6428,"count":0},{"startOffset":6428,"endOffset":6504,"count":35},{"startOffset":6504,"endOffset":6719,"count":0}],"isBlockCoverage":true},{"functionName":"defaultGetFormatWithoutErrors","ranges":[{"startOffset":6865,"endOffset":7100,"count":47},{"startOffset":7019,"endOffset":7041,"count":0}],"isBlockCoverage":true},{"functionName":"defaultGetFormat","ranges":[{"startOffset":7245,"endOffset":7468,"count":1},{"startOffset":7386,"endOffset":7408,"count":0}],"isBlockCoverage":true}]},{"scriptId":"84","url":"node:internal/modules/esm/formats","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1846,"count":1}],"isBlockCoverage":false},{"functionName":"mimeToFormat","ranges":[{"startOffset":862,"endOffset":1173,"count":0}],"isBlockCoverage":false},{"functionName":"getFormatOfExtensionlessFile","ranges":[{"startOffset":1494,"endOffset":1752,"count":0}],"isBlockCoverage":false}]},{"scriptId":"85","url":"node:internal/modules/esm/load","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5944,"count":1}],"isBlockCoverage":false},{"functionName":"getSourceSync","ranges":[{"startOffset":802,"endOffset":1363,"count":15},{"startOffset":982,"endOffset":1310,"count":0}],"isBlockCoverage":true},{"functionName":"defaultLoad","ranges":[{"startOffset":1484,"endOffset":2964,"count":0}],"isBlockCoverage":false},{"functionName":"defaultLoadSync","ranges":[{"startOffset":3477,"endOffset":4647,"count":25},{"startOffset":3818,"endOffset":3868,"count":10},{"startOffset":3868,"endOffset":4480,"count":15},{"startOffset":3898,"endOffset":4010,"count":0}],"isBlockCoverage":true},{"functionName":"throwIfUnsupportedURLScheme","ranges":[{"startOffset":4788,"endOffset":5239,"count":25},{"startOffset":4990,"endOffset":5017,"count":10},{"startOffset":5018,"endOffset":5045,"count":10},{"startOffset":5046,"endOffset":5118,"count":0},{"startOffset":5123,"endOffset":5237,"count":0}],"isBlockCoverage":true},{"functionName":"throwUnknownModuleFormat","ranges":[{"startOffset":5602,"endOffset":5840,"count":0}],"isBlockCoverage":false}]},{"scriptId":"86","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/loader.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":729,"count":1}],"isBlockCoverage":true}]},{"scriptId":"87","url":"node:internal/modules/esm/module_job","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":21215,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":485,"endOffset":510,"count":1}],"isBlockCoverage":true},{"functionName":"findCommonJSGlobalLikeNotDefinedError","ranges":[{"startOffset":1562,"endOffset":1693,"count":0}],"isBlockCoverage":false},{"functionName":"explainCommonJSGlobalLikeNotDefinedError","ranges":[{"startOffset":1819,"endOffset":3583,"count":0}],"isBlockCoverage":false},{"functionName":"ModuleJobBase","ranges":[{"startOffset":3610,"endOffset":3901,"count":26}],"isBlockCoverage":true},{"functionName":"syncLink","ranges":[{"startOffset":4078,"endOffset":5600,"count":26},{"startOffset":4618,"endOffset":5288,"count":82}],"isBlockCoverage":true},{"functionName":"ensurePhase","ranges":[{"startOffset":5787,"endOffset":6034,"count":59},{"startOffset":5849,"endOffset":6030,"count":0}],"isBlockCoverage":true},{"functionName":"ModuleJob","ranges":[{"startOffset":6880,"endOffset":7910,"count":26},{"startOffset":7227,"endOffset":7284,"count":0},{"startOffset":7681,"endOffset":7750,"count":0}],"isBlockCoverage":true},{"functionName":"link","ranges":[{"startOffset":8055,"endOffset":8216,"count":26},{"startOffset":8123,"endOffset":8173,"count":0}],"isBlockCoverage":true},{"functionName":"#asyncLink","ranges":[{"startOffset":8345,"endOffset":10181,"count":0}],"isBlockCoverage":false},{"functionName":"#instantiate","ranges":[{"startOffset":10185,"endOffset":10336,"count":3}],"isBlockCoverage":true},{"functionName":"#asyncInstantiate","ranges":[{"startOffset":10340,"endOffset":13835,"count":3},{"startOffset":11030,"endOffset":11207,"count":0},{"startOffset":11264,"endOffset":13588,"count":0},{"startOffset":13635,"endOffset":13831,"count":26}],"isBlockCoverage":true},{"functionName":"addJobsToDependencyGraph","ranges":[{"startOffset":10547,"endOffset":10929,"count":85},{"startOffset":10681,"endOffset":10706,"count":59},{"startOffset":10706,"endOffset":10798,"count":26},{"startOffset":10798,"endOffset":10823,"count":0},{"startOffset":10823,"endOffset":10841,"count":26}],"isBlockCoverage":true},{"functionName":"runSync","ranges":[{"startOffset":13839,"endOffset":15986,"count":0}],"isBlockCoverage":false},{"functionName":"run","ranges":[{"startOffset":15990,"endOffset":16595,"count":3},{"startOffset":16165,"endOffset":16239,"count":1},{"startOffset":16408,"endOffset":16538,"count":0}],"isBlockCoverage":true},{"functionName":"ModuleJobSync","ranges":[{"startOffset":17804,"endOffset":18241,"count":0}],"isBlockCoverage":false},{"functionName":"link","ranges":[{"startOffset":18361,"endOffset":18484,"count":0}],"isBlockCoverage":false},{"functionName":"get modulePromise","ranges":[{"startOffset":18488,"endOffset":18553,"count":0}],"isBlockCoverage":false},{"functionName":"run","ranges":[{"startOffset":18557,"endOffset":19748,"count":0}],"isBlockCoverage":false},{"functionName":"runSync","ranges":[{"startOffset":19752,"endOffset":21093,"count":0}],"isBlockCoverage":false}]},{"scriptId":"88","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/get-pipe-path-BHW2eJdv.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":368,"count":1}],"isBlockCoverage":true},{"functionName":"e","ranges":[{"startOffset":34,"endOffset":78,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":262,"endOffset":327,"count":1},{"startOffset":304,"endOffset":324,"count":0}],"isBlockCoverage":true}]},{"scriptId":"89","url":"node:module","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1121,"count":1}],"isBlockCoverage":false}]},{"scriptId":"90","url":"node:internal/source_map/source_map","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12150,"count":1}],"isBlockCoverage":false},{"functionName":"StringCharIterator","ranges":[{"startOffset":4032,"endOffset":4108,"count":0}],"isBlockCoverage":false},{"functionName":"next","ranges":[{"startOffset":4147,"endOffset":4225,"count":0}],"isBlockCoverage":false},{"functionName":"peek","ranges":[{"startOffset":4264,"endOffset":4340,"count":0}],"isBlockCoverage":false},{"functionName":"hasNext","ranges":[{"startOffset":4380,"endOffset":4444,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":4615,"endOffset":6191,"count":0}],"isBlockCoverage":false},{"functionName":"findEntry","ranges":[{"startOffset":6439,"endOffset":7303,"count":0}],"isBlockCoverage":false},{"functionName":"findOrigin","ranges":[{"startOffset":7572,"endOffset":8247,"count":0}],"isBlockCoverage":false},{"functionName":"#parseMap","ranges":[{"startOffset":8278,"endOffset":10093,"count":0}],"isBlockCoverage":false},{"functionName":"isSeparator","ranges":[{"startOffset":10151,"endOffset":10220,"count":0}],"isBlockCoverage":false},{"functionName":"decodeVLQ","ranges":[{"startOffset":10311,"endOffset":11244,"count":0}],"isBlockCoverage":false},{"functionName":"cloneSourceMapV3","ranges":[{"startOffset":11312,"endOffset":11624,"count":0}],"isBlockCoverage":false},{"functionName":"compareSourceMapEntry","ranges":[{"startOffset":11821,"endOffset":12100,"count":0}],"isBlockCoverage":false}]},{"scriptId":"91","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/temporary-directory-CwHp0_NW.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":151,"count":1},{"startOffset":80,"endOffset":102,"count":0}],"isBlockCoverage":true}]},{"scriptId":"92","url":"node:os","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8250,"count":1}],"isBlockCoverage":false},{"functionName":"getCheckedFunction","ranges":[{"startOffset":2043,"endOffset":2289,"count":4}],"isBlockCoverage":true},{"functionName":"checkError","ranges":[{"startOffset":2102,"endOffset":2285,"count":0}],"isBlockCoverage":false},{"functionName":"getOSRelease","ranges":[{"startOffset":2671,"endOffset":2684,"count":0}],"isBlockCoverage":false},{"functionName":"getOSType","ranges":[{"startOffset":2733,"endOffset":2743,"count":1}],"isBlockCoverage":true},{"functionName":"getOSVersion","ranges":[{"startOffset":2795,"endOffset":2808,"count":0}],"isBlockCoverage":false},{"functionName":"getMachine","ranges":[{"startOffset":2858,"endOffset":2871,"count":0}],"isBlockCoverage":false},{"functionName":"getAvailableParallelism.<computed>","ranges":[{"startOffset":2919,"endOffset":2950,"count":0}],"isBlockCoverage":false},{"functionName":"getFreeMem.<computed>","ranges":[{"startOffset":2984,"endOffset":3002,"count":0}],"isBlockCoverage":false},{"functionName":"getHostname.<computed>","ranges":[{"startOffset":3037,"endOffset":3056,"count":0}],"isBlockCoverage":false},{"functionName":"getOSVersion.<computed>","ranges":[{"startOffset":3092,"endOffset":3112,"count":0}],"isBlockCoverage":false},{"functionName":"getOSType.<computed>","ranges":[{"startOffset":3145,"endOffset":3162,"count":0}],"isBlockCoverage":false},{"functionName":"getOSRelease.<computed>","ranges":[{"startOffset":3198,"endOffset":3218,"count":0}],"isBlockCoverage":false},{"functionName":"getMachine.<computed>","ranges":[{"startOffset":3252,"endOffset":3270,"count":0}],"isBlockCoverage":false},{"functionName":"getHomeDirectory.<computed>","ranges":[{"startOffset":3310,"endOffset":3334,"count":0}],"isBlockCoverage":false},{"functionName":"getTotalMem.<computed>","ranges":[{"startOffset":3369,"endOffset":3388,"count":0}],"isBlockCoverage":false},{"functionName":"getUptime.<computed>","ranges":[{"startOffset":3421,"endOffset":3438,"count":0}],"isBlockCoverage":false},{"functionName":"loadavg","ranges":[{"startOffset":3576,"endOffset":3676,"count":0}],"isBlockCoverage":false},{"functionName":"cpus","ranges":[{"startOffset":3956,"endOffset":4385,"count":0}],"isBlockCoverage":false},{"functionName":"arch","ranges":[{"startOffset":4416,"endOffset":4458,"count":0}],"isBlockCoverage":false},{"functionName":"arch.<computed>","ranges":[{"startOffset":4485,"endOffset":4503,"count":0}],"isBlockCoverage":false},{"functionName":"platform","ranges":[{"startOffset":4535,"endOffset":4585,"count":0}],"isBlockCoverage":false},{"functionName":"platform.<computed>","ranges":[{"startOffset":4616,"endOffset":4638,"count":0}],"isBlockCoverage":false},{"functionName":"tmpdir","ranges":[{"startOffset":4670,"endOffset":5052,"count":7},{"startOffset":4707,"endOffset":5016,"count":0},{"startOffset":5040,"endOffset":5049,"count":0}],"isBlockCoverage":true},{"functionName":"tmpdir.<computed>","ranges":[{"startOffset":5081,"endOffset":5095,"count":0}],"isBlockCoverage":false},{"functionName":"endianness","ranges":[{"startOffset":5132,"endOffset":5179,"count":0}],"isBlockCoverage":false},{"functionName":"endianness.<computed>","ranges":[{"startOffset":5212,"endOffset":5229,"count":0}],"isBlockCoverage":false},{"functionName":"networkInterfaces","ranges":[{"startOffset":5441,"endOffset":6134,"count":0}],"isBlockCoverage":false},{"functionName":"setPriority","ranges":[{"startOffset":6218,"endOffset":6507,"count":0}],"isBlockCoverage":false},{"functionName":"getPriority","ranges":[{"startOffset":6563,"endOffset":6818,"count":0}],"isBlockCoverage":false},{"functionName":"userInfo","ranges":[{"startOffset":7121,"endOffset":7347,"count":0}],"isBlockCoverage":false}]},{"scriptId":"93","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/esm/index.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7014,"count":1},{"startOffset":2452,"endOffset":2471,"count":0},{"startOffset":3563,"endOffset":3695,"count":0},{"startOffset":6770,"endOffset":6932,"count":0}],"isBlockCoverage":true},{"functionName":"c","ranges":[{"startOffset":34,"endOffset":78,"count":14}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":962,"endOffset":1321,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1341,"endOffset":1417,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1450,"endOffset":1699,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1724,"endOffset":1940,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1965,"endOffset":2005,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2029,"endOffset":2202,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2250,"endOffset":2410,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2480,"endOffset":3549,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3578,"endOffset":3686,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3705,"endOffset":4113,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4148,"endOffset":4422,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4449,"endOffset":5000,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5020,"endOffset":5660,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5686,"endOffset":6040,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6078,"endOffset":6753,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6785,"endOffset":6920,"count":0}],"isBlockCoverage":false}]},{"scriptId":"94","url":"node:worker_threads","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1005,"count":1}],"isBlockCoverage":false}]},{"scriptId":"95","url":"node:internal/worker","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":19911,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2631,"endOffset":2656,"count":1}],"isBlockCoverage":true},{"functionName":"process.chdir","ranges":[{"startOffset":2960,"endOffset":3039,"count":0}],"isBlockCoverage":false},{"functionName":"setEnvironmentData","ranges":[{"startOffset":3044,"endOffset":3191,"count":0}],"isBlockCoverage":false},{"functionName":"getEnvironmentData","ranges":[{"startOffset":3193,"endOffset":3264,"count":0}],"isBlockCoverage":false},{"functionName":"assignEnvironmentData","ranges":[{"startOffset":3266,"endOffset":3416,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":3445,"endOffset":3492,"count":0}],"isBlockCoverage":false},{"functionName":"CPUProfileHandle","ranges":[{"startOffset":3497,"endOffset":3572,"count":0}],"isBlockCoverage":false},{"functionName":"stop","ranges":[{"startOffset":3576,"endOffset":3994,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3999,"endOffset":4056,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":4088,"endOffset":4121,"count":0}],"isBlockCoverage":false},{"functionName":"HeapProfileHandle","ranges":[{"startOffset":4126,"endOffset":4178,"count":0}],"isBlockCoverage":false},{"functionName":"stop","ranges":[{"startOffset":4182,"endOffset":4593,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4598,"endOffset":4655,"count":0}],"isBlockCoverage":false},{"functionName":"Worker","ranges":[{"startOffset":4697,"endOffset":10414,"count":1},{"startOffset":5017,"endOffset":5069,"count":0},{"startOffset":5107,"endOffset":5219,"count":0},{"startOffset":5328,"endOffset":6333,"count":0},{"startOffset":6388,"endOffset":6411,"count":0},{"startOffset":6413,"endOffset":6589,"count":0},{"startOffset":6652,"endOffset":6848,"count":0},{"startOffset":6903,"endOffset":7010,"count":0},{"startOffset":7264,"endOffset":7269,"count":0},{"startOffset":7468,"endOffset":7475,"count":0},{"startOffset":7606,"endOffset":7690,"count":0},{"startOffset":7733,"endOffset":7866,"count":0},{"startOffset":8314,"endOffset":8368,"count":0},{"startOffset":9134,"endOffset":9240,"count":0},{"startOffset":9656,"endOffset":9684,"count":0},{"startOffset":10334,"endOffset":10410,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6521,"endOffset":6573,"count":0}],"isBlockCoverage":false},{"functionName":"Worker.<computed>.onexit","ranges":[{"startOffset":7894,"endOffset":7994,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8071,"endOffset":8103,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9341,"endOffset":9434,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9388,"endOffset":9426,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":10252,"endOffset":10286,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10418,"endOffset":11092,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11096,"endOffset":11192,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11196,"endOffset":11365,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11369,"endOffset":12344,"count":1},{"startOffset":11535,"endOffset":11627,"count":0},{"startOffset":11634,"endOffset":11719,"count":0},{"startOffset":11726,"endOffset":12092,"count":0},{"startOffset":12099,"endOffset":12269,"count":0},{"startOffset":12275,"endOffset":12343,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12348,"endOffset":12816,"count":0}],"isBlockCoverage":false},{"functionName":"postMessage","ranges":[{"startOffset":12820,"endOffset":12965,"count":3},{"startOffset":12879,"endOffset":12886,"count":0}],"isBlockCoverage":true},{"functionName":"terminate","ranges":[{"startOffset":12969,"endOffset":13803,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13807,"endOffset":13869,"count":0}],"isBlockCoverage":false},{"functionName":"ref","ranges":[{"startOffset":13873,"endOffset":13979,"count":0}],"isBlockCoverage":false},{"functionName":"unref","ranges":[{"startOffset":13983,"endOffset":14095,"count":1},{"startOffset":14025,"endOffset":14032,"count":0}],"isBlockCoverage":true},{"functionName":"get threadId","ranges":[{"startOffset":14099,"endOffset":14198,"count":2},{"startOffset":14148,"endOffset":14158,"count":0}],"isBlockCoverage":true},{"functionName":"get threadName","ranges":[{"startOffset":14202,"endOffset":14307,"count":0}],"isBlockCoverage":false},{"functionName":"get stdin","ranges":[{"startOffset":14311,"endOffset":14369,"count":0}],"isBlockCoverage":false},{"functionName":"get stdout","ranges":[{"startOffset":14373,"endOffset":14433,"count":0}],"isBlockCoverage":false},{"functionName":"get stderr","ranges":[{"startOffset":14437,"endOffset":14497,"count":0}],"isBlockCoverage":false},{"functionName":"get resourceLimits","ranges":[{"startOffset":14501,"endOffset":14637,"count":0}],"isBlockCoverage":false},{"functionName":"getHeapSnapshot","ranges":[{"startOffset":14641,"endOffset":15148,"count":0}],"isBlockCoverage":false},{"functionName":"getHeapStatistics","ranges":[{"startOffset":15152,"endOffset":15418,"count":0}],"isBlockCoverage":false},{"functionName":"cpuUsage","ranges":[{"startOffset":15422,"endOffset":16338,"count":0}],"isBlockCoverage":false},{"functionName":"startCpuProfile","ranges":[{"startOffset":16419,"endOffset":16779,"count":0}],"isBlockCoverage":false},{"functionName":"startHeapProfile","ranges":[{"startOffset":16783,"endOffset":17138,"count":0}],"isBlockCoverage":false},{"functionName":"InternalWorker","ranges":[{"startOffset":17331,"endOffset":17410,"count":1}],"isBlockCoverage":true},{"functionName":"receiveMessageSync","ranges":[{"startOffset":17414,"endOffset":17492,"count":5}],"isBlockCoverage":true},{"functionName":"pipeWithoutWarning","ranges":[{"startOffset":17496,"endOffset":17818,"count":2}],"isBlockCoverage":true},{"functionName":"parseResourceLimits","ranges":[{"startOffset":17892,"endOffset":18506,"count":1},{"startOffset":18029,"endOffset":18044,"count":0},{"startOffset":18057,"endOffset":18505,"count":0}],"isBlockCoverage":true},{"functionName":"makeResourceLimits","ranges":[{"startOffset":18508,"endOffset":18795,"count":0}],"isBlockCoverage":false},{"functionName":"eventLoopUtilization","ranges":[{"startOffset":18797,"endOffset":19600,"count":0}],"isBlockCoverage":false}]},{"scriptId":"96","url":"node:internal/perf/event_loop_utilization","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1527,"count":1}],"isBlockCoverage":false},{"functionName":"eventLoopUtilization","ranges":[{"startOffset":153,"endOffset":446,"count":0}],"isBlockCoverage":false},{"functionName":"internalEventLoopUtilization","ranges":[{"startOffset":448,"endOffset":1447,"count":0}],"isBlockCoverage":false}]},{"scriptId":"97","url":"node:internal/worker/io","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":14151,"count":1}],"isBlockCoverage":false},{"functionName":"lazyMessageEvent","ranges":[{"startOffset":2368,"endOffset":2546,"count":0}],"isBlockCoverage":false},{"functionName":"hasRef","ranges":[{"startOffset":3854,"endOffset":3944,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4144,"endOffset":4462,"count":0}],"isBlockCoverage":false},{"functionName":"oninit","ranges":[{"startOffset":4602,"endOffset":4745,"count":7}],"isBlockCoverage":true},{"functionName":"MessagePortCloseEvent","ranges":[{"startOffset":5047,"endOffset":5086,"count":3}],"isBlockCoverage":true},{"functionName":"onclose","ranges":[{"startOffset":5159,"endOffset":5232,"count":3}],"isBlockCoverage":true},{"functionName":"close","ranges":[{"startOffset":5413,"endOffset":5554,"count":0}],"isBlockCoverage":false},{"functionName":"inspect","ranges":[{"startOffset":5687,"endOffset":6315,"count":0}],"isBlockCoverage":false},{"functionName":"setupPortReferencing","ranges":[{"startOffset":6322,"endOffset":7685,"count":8}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6683,"endOffset":6778,"count":2},{"startOffset":6728,"endOffset":6774,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6817,"endOffset":6915,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7017,"endOffset":7162,"count":4},{"startOffset":7077,"endOffset":7099,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7273,"endOffset":7420,"count":0}],"isBlockCoverage":false},{"functionName":"newListener","ranges":[{"startOffset":7426,"endOffset":7567,"count":3}],"isBlockCoverage":true},{"functionName":"removeListener","ranges":[{"startOffset":7571,"endOffset":7683,"count":0}],"isBlockCoverage":false},{"functionName":"ReadableWorkerStdio","ranges":[{"startOffset":7735,"endOffset":8084,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7913,"endOffset":8078,"count":0}],"isBlockCoverage":false},{"functionName":"_read","ranges":[{"startOffset":8088,"endOffset":8394,"count":2},{"startOffset":8158,"endOffset":8276,"count":0}],"isBlockCoverage":true},{"functionName":"WritableWorkerStdio","ranges":[{"startOffset":8445,"endOffset":8595,"count":0}],"isBlockCoverage":false},{"functionName":"_writev","ranges":[{"startOffset":8599,"endOffset":9253,"count":0}],"isBlockCoverage":false},{"functionName":"_final","ranges":[{"startOffset":9257,"endOffset":9437,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9441,"endOffset":9665,"count":0}],"isBlockCoverage":false},{"functionName":"createWorkerStdio","ranges":[{"startOffset":9669,"endOffset":9939,"count":0}],"isBlockCoverage":false},{"functionName":"receiveMessageOnPort","ranges":[{"startOffset":9941,"endOffset":10121,"count":5},{"startOffset":10080,"endOffset":10097,"count":1},{"startOffset":10097,"endOffset":10120,"count":4}],"isBlockCoverage":true},{"functionName":"onMessageEvent","ranges":[{"startOffset":10123,"endOffset":10218,"count":0}],"isBlockCoverage":false},{"functionName":"isBroadcastChannel","ranges":[{"startOffset":10220,"endOffset":10306,"count":0}],"isBlockCoverage":false},{"functionName":"BroadcastChannel","ranges":[{"startOffset":10393,"endOffset":10907,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":10911,"endOffset":11324,"count":0}],"isBlockCoverage":false},{"functionName":"get name","ranges":[{"startOffset":11360,"endOffset":11489,"count":0}],"isBlockCoverage":false},{"functionName":"close","ranges":[{"startOffset":11526,"endOffset":11924,"count":0}],"isBlockCoverage":false},{"functionName":"postMessage","ranges":[{"startOffset":11992,"endOffset":12423,"count":0}],"isBlockCoverage":false},{"functionName":"ref","ranges":[{"startOffset":12706,"endOffset":12873,"count":0}],"isBlockCoverage":false},{"functionName":"unref","ranges":[{"startOffset":13158,"endOffset":13329,"count":0}],"isBlockCoverage":false},{"functionName":"markAsUncloneable","ranges":[{"startOffset":13610,"endOffset":13793,"count":0}],"isBlockCoverage":false}]},{"scriptId":"98","url":"node:stream","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5099,"count":1}],"isBlockCoverage":false},{"functionName":"fn","ranges":[{"startOffset":2556,"endOffset":2716,"count":0}],"isBlockCoverage":false},{"functionName":"fn","ranges":[{"startOffset":3218,"endOffset":3356,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4404,"endOffset":4436,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4534,"endOffset":4575,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4668,"endOffset":4709,"count":0}],"isBlockCoverage":false},{"functionName":"_uint8ArrayToBuffer","ranges":[{"startOffset":4890,"endOffset":5097,"count":0}],"isBlockCoverage":false}]},{"scriptId":"99","url":"node:internal/streams/operators","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8832,"count":1}],"isBlockCoverage":false},{"functionName":"map","ranges":[{"startOffset":721,"endOffset":3732,"count":0}],"isBlockCoverage":false},{"functionName":"some","ranges":[{"startOffset":3734,"endOffset":3882,"count":0}],"isBlockCoverage":false},{"functionName":"every","ranges":[{"startOffset":3884,"endOffset":4120,"count":0}],"isBlockCoverage":false},{"functionName":"find","ranges":[{"startOffset":4122,"endOffset":4264,"count":0}],"isBlockCoverage":false},{"functionName":"forEach","ranges":[{"startOffset":4266,"endOffset":4544,"count":0}],"isBlockCoverage":false},{"functionName":"filter","ranges":[{"startOffset":4546,"endOffset":4781,"count":0}],"isBlockCoverage":false},{"functionName":"ReduceAwareErrMissingArgs","ranges":[{"startOffset":4997,"endOffset":5111,"count":0}],"isBlockCoverage":false},{"functionName":"reduce","ranges":[{"startOffset":5115,"endOffset":6460,"count":0}],"isBlockCoverage":false},{"functionName":"toArray","ranges":[{"startOffset":6462,"endOffset":6891,"count":0}],"isBlockCoverage":false},{"functionName":"flatMap","ranges":[{"startOffset":6893,"endOffset":7087,"count":0}],"isBlockCoverage":false},{"functionName":"toIntegerOrInfinity","ranges":[{"startOffset":7089,"endOffset":7411,"count":0}],"isBlockCoverage":false},{"functionName":"drop","ranges":[{"startOffset":7413,"endOffset":7961,"count":0}],"isBlockCoverage":false},{"functionName":"take","ranges":[{"startOffset":7963,"endOffset":8633,"count":0}],"isBlockCoverage":false}]},{"scriptId":"100","url":"node:internal/abort_controller","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":16475,"count":1}],"isBlockCoverage":false},{"functionName":"lazyMessageChannel","ranges":[{"startOffset":1723,"endOffset":1856,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2000,"endOffset":2249,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2363,"endOffset":2776,"count":0}],"isBlockCoverage":false},{"functionName":"customInspect","ranges":[{"startOffset":3131,"endOffset":3390,"count":0}],"isBlockCoverage":false},{"functionName":"validateThisAbortSignal","ranges":[{"startOffset":3392,"endOffset":3517,"count":0}],"isBlockCoverage":false},{"functionName":"setWeakAbortSignalTimeout","ranges":[{"startOffset":4099,"endOffset":4499,"count":0}],"isBlockCoverage":false},{"functionName":"AbortSignal","ranges":[{"startOffset":4759,"endOffset":5270,"count":0}],"isBlockCoverage":false},{"functionName":"get aborted","ranges":[{"startOffset":5307,"endOffset":5390,"count":0}],"isBlockCoverage":false},{"functionName":"get reason","ranges":[{"startOffset":5423,"endOffset":5502,"count":0}],"isBlockCoverage":false},{"functionName":"throwIfAborted","ranges":[{"startOffset":5506,"endOffset":5622,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5626,"endOffset":5755,"count":0}],"isBlockCoverage":false},{"functionName":"abort","ranges":[{"startOffset":5833,"endOffset":5993,"count":0}],"isBlockCoverage":false},{"functionName":"timeout","ranges":[{"startOffset":6071,"endOffset":6351,"count":0}],"isBlockCoverage":false},{"functionName":"any","ranges":[{"startOffset":6438,"endOffset":9063,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9067,"endOffset":9835,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9839,"endOffset":10193,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":10197,"endOffset":10804,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":10808,"endOffset":11060,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11064,"endOffset":11512,"count":0}],"isBlockCoverage":false},{"functionName":"ClonedAbortSignal","ranges":[{"startOffset":11693,"endOffset":11793,"count":0}],"isBlockCoverage":false},{"functionName":"ClonedAbortSignal.<computed>","ranges":[{"startOffset":11838,"endOffset":11846,"count":0}],"isBlockCoverage":false},{"functionName":"abortSignal","ranges":[{"startOffset":12216,"endOffset":14011,"count":0}],"isBlockCoverage":false},{"functionName":"runAbort","ranges":[{"startOffset":14065,"endOffset":14193,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":14221,"endOffset":14228,"count":0}],"isBlockCoverage":false},{"functionName":"get signal","ranges":[{"startOffset":14270,"endOffset":14370,"count":0}],"isBlockCoverage":false},{"functionName":"abort","ranges":[{"startOffset":14413,"endOffset":14572,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":14576,"endOffset":14703,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":14714,"endOffset":14894,"count":0}],"isBlockCoverage":false},{"functionName":"transferableAbortSignal","ranges":[{"startOffset":15044,"endOffset":15255,"count":0}],"isBlockCoverage":false},{"functionName":"transferableAbortController","ranges":[{"startOffset":15357,"endOffset":15446,"count":0}],"isBlockCoverage":false},{"functionName":"aborted","ranges":[{"startOffset":15540,"endOffset":16026,"count":0}],"isBlockCoverage":false}]},{"scriptId":"101","url":"node:internal/streams/end-of-stream","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8882,"count":1}],"isBlockCoverage":false},{"functionName":"isRequest","ranges":[{"startOffset":916,"endOffset":1011,"count":0}],"isBlockCoverage":false},{"functionName":"nop","ranges":[{"startOffset":1025,"endOffset":1033,"count":0}],"isBlockCoverage":false},{"functionName":"bindAsyncResource","ranges":[{"startOffset":1036,"endOffset":1268,"count":0}],"isBlockCoverage":false},{"functionName":"eos","ranges":[{"startOffset":1270,"endOffset":7468,"count":0}],"isBlockCoverage":false},{"functionName":"eosWeb","ranges":[{"startOffset":7470,"endOffset":8379,"count":0}],"isBlockCoverage":false},{"functionName":"finished","ranges":[{"startOffset":8381,"endOffset":8839,"count":0}],"isBlockCoverage":false}]},{"scriptId":"102","url":"node:internal/streams/compose","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5515,"count":1}],"isBlockCoverage":false},{"functionName":"compose","ranges":[{"startOffset":596,"endOffset":5513,"count":0}],"isBlockCoverage":false}]},{"scriptId":"103","url":"node:internal/streams/pipeline","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12689,"count":1}],"isBlockCoverage":false},{"functionName":"destroyer","ranges":[{"startOffset":1093,"endOffset":1522,"count":0}],"isBlockCoverage":false},{"functionName":"popCallback","ranges":[{"startOffset":1524,"endOffset":1852,"count":0}],"isBlockCoverage":false},{"functionName":"makeAsyncIterable","ranges":[{"startOffset":1854,"endOffset":2140,"count":0}],"isBlockCoverage":false},{"functionName":"fromReadable","ranges":[{"startOffset":2142,"endOffset":2292,"count":0}],"isBlockCoverage":false},{"functionName":"pumpToNode","ranges":[{"startOffset":2294,"endOffset":3338,"count":0}],"isBlockCoverage":false},{"functionName":"pumpToWeb","ranges":[{"startOffset":3340,"endOffset":3938,"count":0}],"isBlockCoverage":false},{"functionName":"pipeline","ranges":[{"startOffset":3940,"endOffset":4033,"count":0}],"isBlockCoverage":false},{"functionName":"pipelineImpl","ranges":[{"startOffset":4035,"endOffset":10810,"count":0}],"isBlockCoverage":false},{"functionName":"pipe","ranges":[{"startOffset":10812,"endOffset":12642,"count":0}],"isBlockCoverage":false}]},{"scriptId":"104","url":"node:internal/streams/destroy","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7355,"count":1}],"isBlockCoverage":false},{"functionName":"checkError","ranges":[{"startOffset":488,"endOffset":799,"count":4},{"startOffset":707,"endOffset":737,"count":2},{"startOffset":763,"endOffset":793,"count":2}],"isBlockCoverage":true},{"functionName":"destroy","ranges":[{"startOffset":909,"endOffset":1786,"count":2},{"startOffset":1078,"endOffset":1082,"count":0},{"startOffset":1183,"endOffset":1260,"count":0},{"startOffset":1621,"endOffset":1728,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1647,"endOffset":1722,"count":0}],"isBlockCoverage":false},{"functionName":"_destroy","ranges":[{"startOffset":1788,"endOffset":2412,"count":2},{"startOffset":2348,"endOffset":2355,"count":0},{"startOffset":2373,"endOffset":2410,"count":0}],"isBlockCoverage":true},{"functionName":"onDestroy","ranges":[{"startOffset":1848,"endOffset":2317,"count":2},{"startOffset":1890,"endOffset":1911,"count":0},{"startOffset":2160,"endOffset":2182,"count":0},{"startOffset":2257,"endOffset":2313,"count":0}],"isBlockCoverage":true},{"functionName":"emitErrorCloseNT","ranges":[{"startOffset":2414,"endOffset":2501,"count":2}],"isBlockCoverage":true},{"functionName":"emitCloseNT","ranges":[{"startOffset":2503,"endOffset":2823,"count":2},{"startOffset":2792,"endOffset":2821,"count":0}],"isBlockCoverage":true},{"functionName":"emitErrorNT","ranges":[{"startOffset":2825,"endOffset":3172,"count":2},{"startOffset":3030,"endOffset":3047,"count":0}],"isBlockCoverage":true},{"functionName":"undestroy","ranges":[{"startOffset":3174,"endOffset":3864,"count":6}],"isBlockCoverage":true},{"functionName":"errorOrDestroy","ranges":[{"startOffset":3866,"endOffset":5005,"count":0}],"isBlockCoverage":false},{"functionName":"construct","ranges":[{"startOffset":5007,"endOffset":5423,"count":0}],"isBlockCoverage":false},{"functionName":"constructNT","ranges":[{"startOffset":5425,"endOffset":6164,"count":0}],"isBlockCoverage":false},{"functionName":"isRequest","ranges":[{"startOffset":6166,"endOffset":6262,"count":0}],"isBlockCoverage":false},{"functionName":"emitCloseLegacy","ranges":[{"startOffset":6264,"endOffset":6324,"count":0}],"isBlockCoverage":false},{"functionName":"emitErrorCloseLegacy","ranges":[{"startOffset":6326,"endOffset":6446,"count":0}],"isBlockCoverage":false},{"functionName":"destroyer","ranges":[{"startOffset":6481,"endOffset":7263,"count":0}],"isBlockCoverage":false}]},{"scriptId":"105","url":"node:internal/streams/duplex","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6547,"count":1}],"isBlockCoverage":false},{"functionName":"Duplex","ranges":[{"startOffset":2315,"endOffset":4278,"count":4},{"startOffset":2379,"endOffset":2406,"count":0},{"startOffset":3093,"endOffset":3229,"count":2},{"startOffset":3267,"endOffset":3442,"count":0},{"startOffset":3494,"endOffset":3520,"count":0},{"startOffset":3573,"endOffset":3601,"count":0},{"startOffset":3655,"endOffset":3685,"count":0},{"startOffset":3740,"endOffset":3772,"count":0},{"startOffset":3825,"endOffset":3853,"count":0},{"startOffset":3910,"endOffset":3946,"count":0},{"startOffset":3978,"endOffset":4015,"count":0},{"startOffset":4019,"endOffset":4061,"count":0},{"startOffset":4125,"endOffset":4276,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4159,"endOffset":4270,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":5426,"endOffset":5638,"count":4},{"startOffset":5524,"endOffset":5555,"count":0},{"startOffset":5599,"endOffset":5631,"count":0}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":5644,"endOffset":5905,"count":0}],"isBlockCoverage":false},{"functionName":"lazyWebStreams","ranges":[{"startOffset":5979,"endOffset":6143,"count":0}],"isBlockCoverage":false},{"functionName":"Duplex.fromWeb","ranges":[{"startOffset":6162,"endOffset":6280,"count":0}],"isBlockCoverage":false},{"functionName":"Duplex.toWeb","ranges":[{"startOffset":6298,"endOffset":6405,"count":0}],"isBlockCoverage":false},{"functionName":"Duplex.from","ranges":[{"startOffset":6438,"endOffset":6545,"count":0}],"isBlockCoverage":false}]},{"scriptId":"106","url":"node:internal/streams/legacy","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3328,"count":1}],"isBlockCoverage":false},{"functionName":"Stream","ranges":[{"startOffset":130,"endOffset":178,"count":6}],"isBlockCoverage":true},{"functionName":"Stream.pipe","ranges":[{"startOffset":292,"endOffset":2171,"count":0}],"isBlockCoverage":false},{"functionName":"eventNames","ranges":[{"startOffset":2204,"endOffset":2470,"count":0}],"isBlockCoverage":false},{"functionName":"prependListener","ranges":[{"startOffset":2473,"endOffset":3280,"count":2},{"startOffset":2732,"endOffset":3095,"count":0},{"startOffset":3101,"endOffset":3278,"count":0}],"isBlockCoverage":true}]},{"scriptId":"107","url":"node:internal/streams/readable","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":51947,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1874,"endOffset":1899,"count":1}],"isBlockCoverage":true},{"functionName":"nop","ranges":[{"startOffset":2887,"endOffset":2895,"count":0}],"isBlockCoverage":false},{"functionName":"makeBitMapDescriptor","ranges":[{"startOffset":3791,"endOffset":4013,"count":19}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":3866,"endOffset":3910,"count":8}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":3916,"endOffset":4005,"count":52},{"startOffset":3946,"endOffset":3966,"count":14},{"startOffset":3966,"endOffset":3999,"count":38}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":6187,"endOffset":6275,"count":4},{"startOffset":6240,"endOffset":6261,"count":2},{"startOffset":6262,"endOffset":6268,"count":2}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":6281,"endOffset":6447,"count":8},{"startOffset":6311,"endOffset":6391,"count":2},{"startOffset":6391,"endOffset":6441,"count":6}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":6524,"endOffset":6624,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":6630,"endOffset":6860,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6929,"endOffset":7017,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":7023,"endOffset":7189,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7259,"endOffset":7349,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":7355,"endOffset":7524,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7593,"endOffset":7696,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":7702,"endOffset":7969,"count":0}],"isBlockCoverage":false},{"functionName":"ReadableState","ranges":[{"startOffset":7982,"endOffset":9948,"count":6},{"startOffset":8354,"endOffset":8366,"count":4},{"startOffset":8372,"endOffset":8400,"count":0},{"startOffset":8417,"endOffset":8447,"count":4},{"startOffset":8453,"endOffset":8481,"count":0},{"startOffset":8656,"endOffset":8728,"count":4},{"startOffset":8729,"endOffset":8765,"count":2},{"startOffset":8924,"endOffset":8954,"count":4},{"startOffset":8956,"endOffset":8984,"count":4},{"startOffset":9073,"endOffset":9105,"count":4},{"startOffset":9107,"endOffset":9137,"count":0},{"startOffset":9367,"endOffset":9384,"count":4},{"startOffset":9416,"endOffset":9445,"count":0},{"startOffset":9446,"endOffset":9476,"count":0},{"startOffset":9525,"endOffset":9684,"count":0},{"startOffset":9835,"endOffset":9845,"count":4},{"startOffset":9847,"endOffset":9946,"count":0}],"isBlockCoverage":true},{"functionName":"onConstructed","ranges":[{"startOffset":9992,"endOffset":10109,"count":0}],"isBlockCoverage":false},{"functionName":"Readable","ranges":[{"startOffset":10112,"endOffset":11146,"count":2},{"startOffset":10180,"endOffset":10209,"count":0},{"startOffset":10647,"endOffset":10978,"count":0},{"startOffset":11042,"endOffset":11144,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11076,"endOffset":11138,"count":0}],"isBlockCoverage":false},{"functionName":"Readable._destroy","ranges":[{"startOffset":11283,"endOffset":11315,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.<computed>","ranges":[{"startOffset":11366,"endOffset":11404,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.<computed>","ranges":[{"startOffset":11448,"endOffset":11709,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.push","ranges":[{"startOffset":11938,"endOffset":12207,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.unshift","ranges":[{"startOffset":12303,"endOffset":12570,"count":0}],"isBlockCoverage":false},{"functionName":"readableAddChunkUnshiftByteMode","ranges":[{"startOffset":12574,"endOffset":13630,"count":0}],"isBlockCoverage":false},{"functionName":"readableAddChunkUnshiftObjectMode","ranges":[{"startOffset":13632,"endOffset":13872,"count":0}],"isBlockCoverage":false},{"functionName":"readableAddChunkUnshiftValue","ranges":[{"startOffset":13874,"endOffset":14207,"count":0}],"isBlockCoverage":false},{"functionName":"readableAddChunkPushByteMode","ranges":[{"startOffset":14209,"endOffset":15591,"count":0}],"isBlockCoverage":false},{"functionName":"readableAddChunkPushObjectMode","ranges":[{"startOffset":15593,"endOffset":16190,"count":0}],"isBlockCoverage":false},{"functionName":"canPushMore","ranges":[{"startOffset":16192,"endOffset":16522,"count":0}],"isBlockCoverage":false},{"functionName":"addChunk","ranges":[{"startOffset":16524,"endOffset":17468,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.isPaused","ranges":[{"startOffset":17500,"endOffset":17655,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.setEncoding","ranges":[{"startOffset":17719,"endOffset":18289,"count":0}],"isBlockCoverage":false},{"functionName":"computeNewHighWaterMark","ranges":[{"startOffset":18350,"endOffset":18701,"count":0}],"isBlockCoverage":false},{"functionName":"howMuchToRead","ranges":[{"startOffset":18814,"endOffset":19295,"count":4},{"startOffset":18862,"endOffset":18919,"count":2},{"startOffset":18925,"endOffset":18982,"count":2},{"startOffset":18982,"endOffset":18991,"count":0},{"startOffset":18991,"endOffset":19194,"count":2},{"startOffset":19119,"endOffset":19165,"count":0},{"startOffset":19194,"endOffset":19288,"count":0},{"startOffset":19289,"endOffset":19292,"count":0}],"isBlockCoverage":true},{"functionName":"Readable.read","ranges":[{"startOffset":19392,"endOffset":24067,"count":4},{"startOffset":19576,"endOffset":19661,"count":2},{"startOffset":19625,"endOffset":19661,"count":0},{"startOffset":19826,"endOffset":19875,"count":0},{"startOffset":19896,"endOffset":19931,"count":2},{"startOffset":20117,"endOffset":20163,"count":2},{"startOffset":20164,"endOffset":20316,"count":0},{"startOffset":20318,"endOffset":20495,"count":0},{"startOffset":20639,"endOffset":20714,"count":0},{"startOffset":22009,"endOffset":22050,"count":0},{"startOffset":22437,"endOffset":23139,"count":2},{"startOffset":22824,"endOffset":22876,"count":0},{"startOffset":23103,"endOffset":23135,"count":0},{"startOffset":23169,"endOffset":23194,"count":0},{"startOffset":23314,"endOffset":23317,"count":0},{"startOffset":23333,"endOffset":23515,"count":0},{"startOffset":23838,"endOffset":23871,"count":2},{"startOffset":23879,"endOffset":23897,"count":0},{"startOffset":23922,"endOffset":23980,"count":0},{"startOffset":23982,"endOffset":24050,"count":0}],"isBlockCoverage":true},{"functionName":"onEofChunk","ranges":[{"startOffset":24070,"endOffset":25024,"count":0}],"isBlockCoverage":false},{"functionName":"emitReadable","ranges":[{"startOffset":25225,"endOffset":25556,"count":0}],"isBlockCoverage":false},{"functionName":"emitReadable_","ranges":[{"startOffset":25558,"endOffset":26230,"count":0}],"isBlockCoverage":false},{"functionName":"maybeReadMore","ranges":[{"startOffset":26580,"endOffset":26798,"count":0}],"isBlockCoverage":false},{"functionName":"maybeReadMore_","ranges":[{"startOffset":26800,"endOffset":28629,"count":0}],"isBlockCoverage":false},{"functionName":"Readable._read","ranges":[{"startOffset":28900,"endOffset":28966,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.pipe","ranges":[{"startOffset":28995,"endOffset":33581,"count":2},{"startOffset":29112,"endOffset":29336,"count":0},{"startOffset":29456,"endOffset":29481,"count":0},{"startOffset":29524,"endOffset":29564,"count":1},{"startOffset":29589,"endOffset":29596,"count":0},{"startOffset":29654,"endOffset":29678,"count":0},{"startOffset":33452,"endOffset":33470,"count":0},{"startOffset":33514,"endOffset":33563,"count":0}],"isBlockCoverage":true},{"functionName":"onunpipe","ranges":[{"startOffset":29748,"endOffset":29974,"count":0}],"isBlockCoverage":false},{"functionName":"onend","ranges":[{"startOffset":29978,"endOffset":30036,"count":0}],"isBlockCoverage":false},{"functionName":"cleanup","ranges":[{"startOffset":30081,"endOffset":30973,"count":0}],"isBlockCoverage":false},{"functionName":"pause","ranges":[{"startOffset":30977,"endOffset":31979,"count":0}],"isBlockCoverage":false},{"functionName":"ondata","ranges":[{"startOffset":32009,"endOffset":32245,"count":0}],"isBlockCoverage":false},{"functionName":"onerror","ranges":[{"startOffset":32367,"endOffset":32778,"count":0}],"isBlockCoverage":false},{"functionName":"onclose","ranges":[{"startOffset":32958,"endOffset":33041,"count":0}],"isBlockCoverage":false},{"functionName":"onfinish","ranges":[{"startOffset":33075,"endOffset":33180,"count":0}],"isBlockCoverage":false},{"functionName":"unpipe","ranges":[{"startOffset":33217,"endOffset":33283,"count":0}],"isBlockCoverage":false},{"functionName":"pipeOnDrain","ranges":[{"startOffset":33584,"endOffset":34261,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.unpipe","ranges":[{"startOffset":34292,"endOffset":34993,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.on","ranges":[{"startOffset":35119,"endOffset":36128,"count":20},{"startOffset":35251,"endOffset":35680,"count":2},{"startOffset":35480,"endOffset":35500,"count":0},{"startOffset":35680,"endOffset":36111,"count":18},{"startOffset":35709,"endOffset":36111,"count":0}],"isBlockCoverage":true},{"functionName":"Readable.removeListener","ranges":[{"startOffset":36223,"endOffset":36930,"count":189},{"startOffset":36423,"endOffset":36809,"count":0},{"startOffset":36833,"endOffset":36868,"count":0},{"startOffset":36870,"endOffset":36913,"count":0}],"isBlockCoverage":true},{"functionName":"Readable.removeAllListeners","ranges":[{"startOffset":37033,"endOffset":37627,"count":0}],"isBlockCoverage":false},{"functionName":"updateReadableListening","ranges":[{"startOffset":37630,"endOffset":38332,"count":0}],"isBlockCoverage":false},{"functionName":"nReadingNextTick","ranges":[{"startOffset":38334,"endOffset":38422,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.resume","ranges":[{"startOffset":38576,"endOffset":39081,"count":2},{"startOffset":38928,"endOffset":38975,"count":0}],"isBlockCoverage":true},{"functionName":"resume","ranges":[{"startOffset":39084,"endOffset":39257,"count":2}],"isBlockCoverage":true},{"functionName":"resume_","ranges":[{"startOffset":39259,"endOffset":39573,"count":2},{"startOffset":39556,"endOffset":39571,"count":0}],"isBlockCoverage":true},{"functionName":"Readable.pause","ranges":[{"startOffset":39602,"endOffset":39914,"count":0}],"isBlockCoverage":false},{"functionName":"flow","ranges":[{"startOffset":39917,"endOffset":40068,"count":2},{"startOffset":40065,"endOffset":40066,"count":0}],"isBlockCoverage":true},{"functionName":"Readable.wrap","ranges":[{"startOffset":40252,"endOffset":41273,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.<computed>","ranges":[{"startOffset":41318,"endOffset":41370,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.iterator","ranges":[{"startOffset":41403,"endOffset":41546,"count":0}],"isBlockCoverage":false},{"functionName":"streamToAsyncIterator","ranges":[{"startOffset":41549,"endOffset":41798,"count":0}],"isBlockCoverage":false},{"functionName":"createAsyncIterator","ranges":[{"startOffset":41800,"endOffset":42876,"count":0}],"isBlockCoverage":false},{"functionName":"compose","ranges":[{"startOffset":42925,"endOffset":43425,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":43645,"endOffset":44034,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":44040,"endOffset":44170,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":44252,"endOffset":44316,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":44398,"endOffset":44606,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":44694,"endOffset":44760,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":44841,"endOffset":44901,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":44983,"endOffset":45043,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":45054,"endOffset":45163,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":45239,"endOffset":45293,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":45373,"endOffset":45461,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":45539,"endOffset":45624,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":45693,"endOffset":45777,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":45822,"endOffset":45906,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":45977,"endOffset":46064,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":46070,"endOffset":46359,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":46434,"endOffset":46522,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":46663,"endOffset":46708,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":46788,"endOffset":46846,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":46852,"endOffset":47013,"count":0}],"isBlockCoverage":false},{"functionName":"fromList","ranges":[{"startOffset":47319,"endOffset":49772,"count":0}],"isBlockCoverage":false},{"functionName":"endReadable","ranges":[{"startOffset":49774,"endOffset":50000,"count":0}],"isBlockCoverage":false},{"functionName":"endReadableNT","ranges":[{"startOffset":50002,"endOffset":50895,"count":0}],"isBlockCoverage":false},{"functionName":"endWritableNT","ranges":[{"startOffset":50897,"endOffset":51057,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.from","ranges":[{"startOffset":51075,"endOffset":51144,"count":0}],"isBlockCoverage":false},{"functionName":"lazyWebStreams","ranges":[{"startOffset":51209,"endOffset":51373,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.fromWeb","ranges":[{"startOffset":51394,"endOffset":51528,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.toWeb","ranges":[{"startOffset":51548,"endOffset":51682,"count":0}],"isBlockCoverage":false},{"functionName":"Readable.wrap","ranges":[{"startOffset":51701,"endOffset":51945,"count":0}],"isBlockCoverage":false}]},{"scriptId":"108","url":"node:internal/streams/add-abort-signal","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1725,"count":1}],"isBlockCoverage":false},{"functionName":"validateAbortSignal","ranges":[{"startOffset":554,"endOffset":713,"count":0}],"isBlockCoverage":false},{"functionName":"addAbortSignal","ranges":[{"startOffset":748,"endOffset":1059,"count":0}],"isBlockCoverage":false},{"functionName":"module.exports.addAbortSignalNoValidate","ranges":[{"startOffset":1104,"endOffset":1723,"count":0}],"isBlockCoverage":false}]},{"scriptId":"109","url":"node:internal/streams/state","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1440,"count":1}],"isBlockCoverage":false},{"functionName":"highWaterMarkFrom","ranges":[{"startOffset":395,"endOffset":562,"count":8},{"startOffset":493,"endOffset":516,"count":0},{"startOffset":553,"endOffset":559,"count":0}],"isBlockCoverage":true},{"functionName":"getDefaultHighWaterMark","ranges":[{"startOffset":564,"endOffset":694,"count":10},{"startOffset":631,"endOffset":663,"count":0}],"isBlockCoverage":true},{"functionName":"setDefaultHighWaterMark","ranges":[{"startOffset":696,"endOffset":907,"count":0}],"isBlockCoverage":false},{"functionName":"getHighWaterMark","ranges":[{"startOffset":909,"endOffset":1342,"count":8},{"startOffset":1056,"endOffset":1268,"count":0}],"isBlockCoverage":true}]},{"scriptId":"110","url":"node:string_decoder","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4518,"count":1}],"isBlockCoverage":false},{"functionName":"StringDecoder","ranges":[{"startOffset":1929,"endOffset":2215,"count":0}],"isBlockCoverage":false},{"functionName":"write","ranges":[{"startOffset":2538,"endOffset":2923,"count":0}],"isBlockCoverage":false},{"functionName":"end","ranges":[{"startOffset":3200,"endOffset":3385,"count":0}],"isBlockCoverage":false},{"functionName":"text","ranges":[{"startOffset":3596,"endOffset":3753,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3891,"endOffset":4104,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4196,"endOffset":4259,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4352,"endOffset":4467,"count":0}],"isBlockCoverage":false}]},{"scriptId":"111","url":"node:internal/streams/from","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4321,"count":1}],"isBlockCoverage":false},{"functionName":"from","ranges":[{"startOffset":241,"endOffset":4296,"count":0}],"isBlockCoverage":false}]},{"scriptId":"112","url":"node:internal/streams/writable","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":33563,"count":1}],"isBlockCoverage":false},{"functionName":"nop","ranges":[{"startOffset":2745,"endOffset":2762,"count":0}],"isBlockCoverage":false},{"functionName":"makeBitMapDescriptor","ranges":[{"startOffset":3818,"endOffset":4040,"count":20}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":3893,"endOffset":3937,"count":4}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":3943,"endOffset":4032,"count":60},{"startOffset":3973,"endOffset":3993,"count":6},{"startOffset":3993,"endOffset":4026,"count":54}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":7004,"endOffset":7082,"count":4},{"startOffset":7051,"endOffset":7072,"count":2},{"startOffset":7073,"endOffset":7079,"count":2}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":7088,"endOffset":7254,"count":8},{"startOffset":7118,"endOffset":7198,"count":2},{"startOffset":7198,"endOffset":7248,"count":6}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":7324,"endOffset":7424,"count":18},{"startOffset":7375,"endOffset":7409,"count":0}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":7430,"endOffset":7703,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7780,"endOffset":7880,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":7886,"endOffset":8116,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8257,"endOffset":8334,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":8340,"endOffset":8504,"count":378},{"startOffset":8405,"endOffset":8498,"count":189}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":8691,"endOffset":8791,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":8797,"endOffset":8994,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":9064,"endOffset":9142,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":9148,"endOffset":9315,"count":0}],"isBlockCoverage":false},{"functionName":"WritableState","ranges":[{"startOffset":9328,"endOffset":11610,"count":4},{"startOffset":9596,"endOffset":9624,"count":0},{"startOffset":9677,"endOffset":9705,"count":0},{"startOffset":9996,"endOffset":10032,"count":0},{"startOffset":10086,"endOffset":10117,"count":0},{"startOffset":10375,"endOffset":10405,"count":0},{"startOffset":10662,"endOffset":10668,"count":0},{"startOffset":10700,"endOffset":10729,"count":0},{"startOffset":10730,"endOffset":10760,"count":0},{"startOffset":10809,"endOffset":11018,"count":0}],"isBlockCoverage":true},{"functionName":"resetBuffer","ranges":[{"startOffset":11612,"endOffset":11776,"count":4}],"isBlockCoverage":true},{"functionName":"getBuffer","ranges":[{"startOffset":11814,"endOffset":11943,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":12039,"endOffset":12150,"count":0}],"isBlockCoverage":false},{"functionName":"onConstructed","ranges":[{"startOffset":12199,"endOffset":12385,"count":0}],"isBlockCoverage":false},{"functionName":"Writable","ranges":[{"startOffset":12388,"endOffset":13494,"count":0}],"isBlockCoverage":false},{"functionName":"value","ranges":[{"startOffset":13576,"endOffset":13780,"count":0}],"isBlockCoverage":false},{"functionName":"Writable.pipe","ranges":[{"startOffset":13881,"endOffset":13949,"count":0}],"isBlockCoverage":false},{"functionName":"_write","ranges":[{"startOffset":13952,"endOffset":15350,"count":189},{"startOffset":14085,"endOffset":14104,"count":0},{"startOffset":14128,"endOffset":14173,"count":0},{"startOffset":14312,"endOffset":14335,"count":0},{"startOffset":14342,"endOffset":14462,"count":0},{"startOffset":14551,"endOffset":14635,"count":0},{"startOffset":14641,"endOffset":14961,"count":0},{"startOffset":15017,"endOffset":15066,"count":0},{"startOffset":15112,"endOffset":15162,"count":0},{"startOffset":15175,"endOffset":15266,"count":0}],"isBlockCoverage":true},{"functionName":"Writable.write","ranges":[{"startOffset":15379,"endOffset":15570,"count":189}],"isBlockCoverage":true},{"functionName":"Writable.cork","ranges":[{"startOffset":15599,"endOffset":15697,"count":0}],"isBlockCoverage":false},{"functionName":"Writable.uncork","ranges":[{"startOffset":15728,"endOffset":15966,"count":0}],"isBlockCoverage":false},{"functionName":"setDefaultEncoding","ranges":[{"startOffset":16009,"endOffset":16334,"count":0}],"isBlockCoverage":false},{"functionName":"writeOrBuffer","ranges":[{"startOffset":16524,"endOffset":17728,"count":189},{"startOffset":16641,"endOffset":16644,"count":0},{"startOffset":16775,"endOffset":17182,"count":0},{"startOffset":17472,"endOffset":17493,"count":0},{"startOffset":17508,"endOffset":17546,"count":0}],"isBlockCoverage":true},{"functionName":"doWrite","ranges":[{"startOffset":17730,"endOffset":18167,"count":0}],"isBlockCoverage":false},{"functionName":"onwriteError","ranges":[{"startOffset":18169,"endOffset":18554,"count":0}],"isBlockCoverage":false},{"functionName":"onwrite","ranges":[{"startOffset":18556,"endOffset":21162,"count":189},{"startOffset":18673,"endOffset":18747,"count":0},{"startOffset":18864,"endOffset":18869,"count":0},{"startOffset":19012,"endOffset":19626,"count":0},{"startOffset":19677,"endOffset":19718,"count":0},{"startOffset":19795,"endOffset":19816,"count":0},{"startOffset":20180,"endOffset":20531,"count":0},{"startOffset":20585,"endOffset":20646,"count":17},{"startOffset":20648,"endOffset":20706,"count":17},{"startOffset":20706,"endOffset":21097,"count":172},{"startOffset":20954,"endOffset":21097,"count":0},{"startOffset":21103,"endOffset":21156,"count":0}],"isBlockCoverage":true},{"functionName":"afterWriteTick","ranges":[{"startOffset":21164,"endOffset":21351,"count":172}],"isBlockCoverage":true},{"functionName":"afterWrite","ranges":[{"startOffset":21353,"endOffset":21861,"count":172},{"startOffset":21531,"endOffset":21552,"count":0},{"startOffset":21571,"endOffset":21636,"count":0},{"startOffset":21660,"endOffset":21702,"count":189},{"startOffset":21746,"endOffset":21775,"count":0},{"startOffset":21816,"endOffset":21859,"count":0}],"isBlockCoverage":true},{"functionName":"errorBuffer","ranges":[{"startOffset":21933,"endOffset":22484,"count":0}],"isBlockCoverage":false},{"functionName":"clearBuffer","ranges":[{"startOffset":22550,"endOffset":24220,"count":0}],"isBlockCoverage":false},{"functionName":"Writable._write","ranges":[{"startOffset":24250,"endOffset":24419,"count":0}],"isBlockCoverage":false},{"functionName":"Writable.end","ranges":[{"startOffset":24483,"endOffset":26123,"count":0}],"isBlockCoverage":false},{"functionName":"needFinish","ranges":[{"startOffset":26126,"endOffset":26555,"count":0}],"isBlockCoverage":false},{"functionName":"onFinish","ranges":[{"startOffset":26557,"endOffset":27189,"count":0}],"isBlockCoverage":false},{"functionName":"prefinish","ranges":[{"startOffset":27191,"endOffset":27715,"count":0}],"isBlockCoverage":false},{"functionName":"finishMaybe","ranges":[{"startOffset":27717,"endOffset":28216,"count":0}],"isBlockCoverage":false},{"functionName":"finish","ranges":[{"startOffset":28218,"endOffset":28861,"count":0}],"isBlockCoverage":false},{"functionName":"callFinishedCallbacks","ranges":[{"startOffset":28863,"endOffset":29181,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":29265,"endOffset":29368,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":29416,"endOffset":29522,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":29528,"endOffset":29778,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":29825,"endOffset":30228,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":30234,"endOffset":30368,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":30423,"endOffset":30541,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":30598,"endOffset":30718,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":30771,"endOffset":30866,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":30918,"endOffset":31034,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":31090,"endOffset":31243,"count":2},{"startOffset":31229,"endOffset":31236,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":31303,"endOffset":31392,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":31445,"endOffset":31538,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":31591,"endOffset":31673,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":31742,"endOffset":31839,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":31898,"endOffset":32155,"count":0}],"isBlockCoverage":false},{"functionName":"Writable.destroy","ranges":[{"startOffset":32233,"endOffset":32513,"count":2},{"startOffset":32378,"endOffset":32415,"count":0},{"startOffset":32417,"endOffset":32464,"count":0}],"isBlockCoverage":true},{"functionName":"Writable._destroy","ranges":[{"startOffset":32601,"endOffset":32633,"count":0}],"isBlockCoverage":false},{"functionName":"Writable.<computed>","ranges":[{"startOffset":32684,"endOffset":32722,"count":0}],"isBlockCoverage":false},{"functionName":"lazyWebStreams","ranges":[{"startOffset":32787,"endOffset":32951,"count":0}],"isBlockCoverage":false},{"functionName":"Writable.fromWeb","ranges":[{"startOffset":32972,"endOffset":33106,"count":0}],"isBlockCoverage":false},{"functionName":"Writable.toWeb","ranges":[{"startOffset":33126,"endOffset":33233,"count":0}],"isBlockCoverage":false},{"functionName":"Writable.<computed>","ranges":[{"startOffset":33277,"endOffset":33561,"count":0}],"isBlockCoverage":false}]},{"scriptId":"113","url":"node:stream/promises","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":917,"count":1}],"isBlockCoverage":false},{"functionName":"pipeline","ranges":[{"startOffset":318,"endOffset":869,"count":0}],"isBlockCoverage":false}]},{"scriptId":"114","url":"node:internal/streams/transform","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7123,"count":1}],"isBlockCoverage":false},{"functionName":"Transform","ranges":[{"startOffset":3920,"endOffset":5500,"count":0}],"isBlockCoverage":true},{"functionName":"final","ranges":[{"startOffset":5502,"endOffset":5946,"count":0}],"isBlockCoverage":false},{"functionName":"prefinish","ranges":[{"startOffset":5948,"endOffset":6029,"count":0}],"isBlockCoverage":false},{"functionName":"Transform._transform","ranges":[{"startOffset":6101,"endOffset":6196,"count":0}],"isBlockCoverage":false},{"functionName":"Transform._write","ranges":[{"startOffset":6228,"endOffset":6965,"count":0}],"isBlockCoverage":false},{"functionName":"Transform._read","ranges":[{"startOffset":6996,"endOffset":7121,"count":0}],"isBlockCoverage":false}]},{"scriptId":"115","url":"node:internal/streams/passthrough","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1762,"count":1}],"isBlockCoverage":false},{"functionName":"PassThrough","ranges":[{"startOffset":1529,"endOffset":1671,"count":0}],"isBlockCoverage":false},{"functionName":"PassThrough._transform","ranges":[{"startOffset":1708,"endOffset":1760,"count":0}],"isBlockCoverage":false}]},{"scriptId":"116","url":"node:internal/streams/duplexpair","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1373,"count":1}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":255,"endOffset":272,"count":0}],"isBlockCoverage":false},{"functionName":"DuplexSide","ranges":[{"startOffset":277,"endOffset":379,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":383,"endOffset":613,"count":0}],"isBlockCoverage":false},{"functionName":"_read","ranges":[{"startOffset":617,"endOffset":742,"count":0}],"isBlockCoverage":false},{"functionName":"_write","ranges":[{"startOffset":746,"endOffset":1035,"count":0}],"isBlockCoverage":false},{"functionName":"_final","ranges":[{"startOffset":1039,"endOffset":1134,"count":0}],"isBlockCoverage":false},{"functionName":"duplexPair","ranges":[{"startOffset":1138,"endOffset":1343,"count":0}],"isBlockCoverage":false}]},{"scriptId":"117","url":"node:internal/worker/messaging","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6680,"count":1}],"isBlockCoverage":false},{"functionName":"handleMessageFromThread","ranges":[{"startOffset":1568,"endOffset":2603,"count":1},{"startOffset":2162,"endOffset":2316,"count":0},{"startOffset":2321,"endOffset":2597,"count":0}],"isBlockCoverage":true},{"functionName":"handleMessageFromMainThread","ranges":[{"startOffset":2605,"endOffset":2827,"count":0}],"isBlockCoverage":false},{"functionName":"sendMessageToWorker","ranges":[{"startOffset":2829,"endOffset":3626,"count":0}],"isBlockCoverage":false},{"functionName":"receiveMessageFromWorker","ranges":[{"startOffset":3628,"endOffset":4186,"count":0}],"isBlockCoverage":false},{"functionName":"createMainThreadPort","ranges":[{"startOffset":4188,"endOffset":4737,"count":1},{"startOffset":4613,"endOffset":4701,"count":0}],"isBlockCoverage":true},{"functionName":"destroyMainThreadPort","ranges":[{"startOffset":4739,"endOffset":5033,"count":0}],"isBlockCoverage":false},{"functionName":"setupMainThreadPort","ranges":[{"startOffset":5035,"endOffset":5228,"count":0}],"isBlockCoverage":false},{"functionName":"postMessageToThread","ranges":[{"startOffset":5230,"endOffset":6561,"count":0}],"isBlockCoverage":false}]},{"scriptId":"118","url":"node:internal/error_serdes","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6023,"count":1}],"isBlockCoverage":false},{"functionName":"TryGetAllProperties","ranges":[{"startOffset":1067,"endOffset":2210,"count":0}],"isBlockCoverage":false},{"functionName":"GetConstructors","ranges":[{"startOffset":2212,"endOffset":2648,"count":0}],"isBlockCoverage":false},{"functionName":"GetName","ranges":[{"startOffset":2650,"endOffset":2763,"count":0}],"isBlockCoverage":false},{"functionName":"inspect","ranges":[{"startOffset":2790,"endOffset":2926,"count":0}],"isBlockCoverage":false},{"functionName":"serializeError","ranges":[{"startOffset":2943,"endOffset":4399,"count":0}],"isBlockCoverage":false},{"functionName":"fromBuffer","ranges":[{"startOffset":4401,"endOffset":4622,"count":0}],"isBlockCoverage":false},{"functionName":"deserializeError","ranges":[{"startOffset":4641,"endOffset":5966,"count":0}],"isBlockCoverage":false}]},{"scriptId":"119","url":"node:internal/locks","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8340,"count":1}],"isBlockCoverage":false},{"functionName":"defaultValue","ranges":[{"startOffset":1044,"endOffset":1061,"count":0}],"isBlockCoverage":false},{"functionName":"converter","ranges":[{"startOffset":1111,"endOffset":1129,"count":0}],"isBlockCoverage":false},{"functionName":"defaultValue","ranges":[{"startOffset":1149,"endOffset":1160,"count":0}],"isBlockCoverage":false},{"functionName":"converter","ranges":[{"startOffset":1204,"endOffset":1222,"count":0}],"isBlockCoverage":false},{"functionName":"defaultValue","ranges":[{"startOffset":1242,"endOffset":1253,"count":0}],"isBlockCoverage":false},{"functionName":"Lock","ranges":[{"startOffset":1387,"endOffset":1570,"count":0}],"isBlockCoverage":false},{"functionName":"get name","ranges":[{"startOffset":1574,"endOffset":1694,"count":0}],"isBlockCoverage":false},{"functionName":"get mode","ranges":[{"startOffset":1698,"endOffset":1818,"count":0}],"isBlockCoverage":false},{"functionName":"createLock","ranges":[{"startOffset":2125,"endOffset":2266,"count":0}],"isBlockCoverage":false},{"functionName":"convertLockError","ranges":[{"startOffset":2324,"endOffset":2504,"count":0}],"isBlockCoverage":false},{"functionName":"LockManager","ranges":[{"startOffset":2581,"endOffset":2711,"count":1},{"startOffset":2657,"endOffset":2707,"count":0}],"isBlockCoverage":true},{"functionName":"request","ranges":[{"startOffset":3591,"endOffset":7592,"count":0}],"isBlockCoverage":false},{"functionName":"query","ranges":[{"startOffset":7843,"endOffset":7982,"count":0}],"isBlockCoverage":false}]},{"scriptId":"120","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/node-features-_8ZFwP_x.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":526,"count":1}],"isBlockCoverage":true},{"functionName":"o","ranges":[{"startOffset":34,"endOffset":78,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":89,"endOffset":182,"count":2},{"startOffset":124,"endOffset":171,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":261,"endOffset":367,"count":2},{"startOffset":299,"endOffset":358,"count":5},{"startOffset":330,"endOffset":343,"count":3},{"startOffset":344,"endOffset":357,"count":2},{"startOffset":358,"endOffset":366,"count":0}],"isBlockCoverage":true}]},{"scriptId":"121","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/register-B7jrtLTO.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1472,"count":1}],"isBlockCoverage":true},{"functionName":"o","ranges":[{"startOffset":34,"endOffset":78,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":261,"endOffset":513,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":555,"endOffset":1443,"count":1},{"startOffset":574,"endOffset":724,"count":0},{"startOffset":997,"endOffset":1008,"count":0},{"startOffset":1019,"endOffset":1029,"count":0},{"startOffset":1059,"endOffset":1069,"count":0},{"startOffset":1073,"endOffset":1107,"count":0},{"startOffset":1109,"endOffset":1140,"count":0},{"startOffset":1387,"endOffset":1440,"count":0}],"isBlockCoverage":true},{"functionName":"m._resolveFilename","ranges":[{"startOffset":778,"endOffset":800,"count":883}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1076,"endOffset":1106,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1151,"endOffset":1364,"count":0}],"isBlockCoverage":false}]},{"scriptId":"122","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/register-CFH5oNdT.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7496,"count":1},{"startOffset":1903,"endOffset":1936,"count":0}],"isBlockCoverage":true},{"functionName":"o","ranges":[{"startOffset":34,"endOffset":78,"count":23}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":593,"endOffset":758,"count":883},{"startOffset":646,"endOffset":757,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":786,"endOffset":864,"count":883},{"startOffset":811,"endOffset":861,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":891,"endOffset":948,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":966,"endOffset":1017,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1040,"endOffset":1064,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1084,"endOffset":1140,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1395,"endOffset":1551,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1572,"endOffset":1619,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1709,"endOffset":1742,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1771,"endOffset":1850,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1947,"endOffset":2105,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1950,"endOffset":2105,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2250,"endOffset":2512,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2529,"endOffset":3357,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3383,"endOffset":3656,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3900,"endOffset":4161,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4185,"endOffset":4453,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4480,"endOffset":4982,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5064,"endOffset":5146,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5170,"endOffset":5623,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5646,"endOffset":5788,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5812,"endOffset":6215,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6245,"endOffset":6510,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6534,"endOffset":7334,"count":0}],"isBlockCoverage":false}]},{"scriptId":"123","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/get-tsconfig/dist/index.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":23782,"count":1}],"isBlockCoverage":true},{"functionName":"i","ranges":[{"startOffset":35,"endOffset":80,"count":33}],"isBlockCoverage":true},{"functionName":"h","ranges":[{"startOffset":268,"endOffset":336,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":359,"endOffset":522,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":383,"endOffset":521,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":594,"endOffset":699,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":735,"endOffset":780,"count":0}],"isBlockCoverage":false},{"functionName":"Ue","ranges":[{"startOffset":806,"endOffset":4112,"count":0}],"isBlockCoverage":false},{"functionName":"O","ranges":[{"startOffset":4134,"endOffset":4169,"count":0}],"isBlockCoverage":false},{"functionName":"J","ranges":[{"startOffset":4189,"endOffset":4225,"count":0}],"isBlockCoverage":false},{"functionName":"N","ranges":[{"startOffset":4244,"endOffset":4278,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4301,"endOffset":5711,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5752,"endOffset":5772,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5811,"endOffset":5835,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5862,"endOffset":5887,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5914,"endOffset":5940,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5967,"endOffset":5991,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6018,"endOffset":6043,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6070,"endOffset":6096,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6105,"endOffset":6151,"count":1}],"isBlockCoverage":true},{"functionName":"Ne","ranges":[{"startOffset":6164,"endOffset":6691,"count":0}],"isBlockCoverage":false},{"functionName":"Pe","ranges":[{"startOffset":6707,"endOffset":9593,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9615,"endOffset":9944,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9967,"endOffset":10592,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10627,"endOffset":11384,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11410,"endOffset":11435,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11499,"endOffset":11554,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11573,"endOffset":11896,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11969,"endOffset":12938,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12966,"endOffset":12991,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13046,"endOffset":13112,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13142,"endOffset":13253,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13276,"endOffset":13748,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13803,"endOffset":15224,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15247,"endOffset":15312,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15421,"endOffset":19110,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19144,"endOffset":19621,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19644,"endOffset":19771,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19801,"endOffset":19865,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19890,"endOffset":19973,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19995,"endOffset":20050,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":20074,"endOffset":20469,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":20489,"endOffset":21085,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21141,"endOffset":21186,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21203,"endOffset":21312,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21343,"endOffset":21505,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21542,"endOffset":21628,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21668,"endOffset":21847,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21967,"endOffset":22115,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22147,"endOffset":22247,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22278,"endOffset":22332,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22526,"endOffset":23662,"count":0}],"isBlockCoverage":false}]},{"scriptId":"124","url":"node:internal/fs/streams","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":15565,"count":1}],"isBlockCoverage":false},{"functionName":"_construct","ranges":[{"startOffset":1136,"endOffset":2039,"count":0}],"isBlockCoverage":false},{"functionName":"FileHandleOperations","ranges":[{"startOffset":2132,"endOffset":3222,"count":0}],"isBlockCoverage":false},{"functionName":"close","ranges":[{"startOffset":3225,"endOffset":3466,"count":0}],"isBlockCoverage":false},{"functionName":"_close","ranges":[{"startOffset":3468,"endOffset":3590,"count":0}],"isBlockCoverage":false},{"functionName":"importFd","ranges":[{"startOffset":3592,"endOffset":4597,"count":0}],"isBlockCoverage":false},{"functionName":"ReadStream","ranges":[{"startOffset":4599,"endOffset":6349,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6538,"endOffset":6649,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":6653,"endOffset":6766,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6802,"endOffset":6827,"count":0}],"isBlockCoverage":false},{"functionName":"ReadStream._read","ranges":[{"startOffset":7003,"endOffset":8134,"count":0}],"isBlockCoverage":false},{"functionName":"ReadStream._destroy","ranges":[{"startOffset":8169,"endOffset":8730,"count":0}],"isBlockCoverage":false},{"functionName":"ReadStream.close","ranges":[{"startOffset":8762,"endOffset":8848,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8928,"endOffset":8962,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream","ranges":[{"startOffset":8991,"endOffset":10996,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":11188,"endOffset":11300,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":11304,"endOffset":11418,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11455,"endOffset":11480,"count":0}],"isBlockCoverage":false},{"functionName":"writeAll","ranges":[{"startOffset":11631,"endOffset":12424,"count":0}],"isBlockCoverage":false},{"functionName":"writevAll","ranges":[{"startOffset":12426,"endOffset":13243,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream._write","ranges":[{"startOffset":13276,"endOffset":13660,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream._writev","ranges":[{"startOffset":13695,"endOffset":14257,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream._destroy","ranges":[{"startOffset":14293,"endOffset":14854,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream.close","ranges":[{"startOffset":14887,"endOffset":15269,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":15451,"endOffset":15485,"count":0}],"isBlockCoverage":false}]},{"scriptId":"125","url":"node:internal/fs/promises","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":34739,"count":1}],"isBlockCoverage":false},{"functionName":"lazyLoadCpPromises","ranges":[{"startOffset":3148,"endOffset":3240,"count":0}],"isBlockCoverage":false},{"functionName":"lazyFsStreams","ranges":[{"startOffset":3302,"endOffset":3385,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3414,"endOffset":3464,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3503,"endOffset":3571,"count":0}],"isBlockCoverage":false},{"functionName":"handleErrorFromBinding","ranges":[{"startOffset":3858,"endOffset":3988,"count":2}],"isBlockCoverage":true},{"functionName":"FileHandle","ranges":[{"startOffset":4110,"endOffset":4328,"count":0}],"isBlockCoverage":false},{"functionName":"getAsyncId","ranges":[{"startOffset":4332,"endOffset":4389,"count":0}],"isBlockCoverage":false},{"functionName":"get fd","ranges":[{"startOffset":4393,"endOffset":4429,"count":0}],"isBlockCoverage":false},{"functionName":"appendFile","ranges":[{"startOffset":4433,"endOffset":4515,"count":0}],"isBlockCoverage":false},{"functionName":"chmod","ranges":[{"startOffset":4519,"endOffset":4575,"count":0}],"isBlockCoverage":false},{"functionName":"chown","ranges":[{"startOffset":4579,"endOffset":4643,"count":0}],"isBlockCoverage":false},{"functionName":"datasync","ranges":[{"startOffset":4647,"endOffset":4699,"count":0}],"isBlockCoverage":false},{"functionName":"sync","ranges":[{"startOffset":4703,"endOffset":4747,"count":0}],"isBlockCoverage":false},{"functionName":"read","ranges":[{"startOffset":4751,"endOffset":4860,"count":0}],"isBlockCoverage":false},{"functionName":"readv","ranges":[{"startOffset":4864,"endOffset":4945,"count":0}],"isBlockCoverage":false},{"functionName":"readFile","ranges":[{"startOffset":4949,"endOffset":5016,"count":0}],"isBlockCoverage":false},{"functionName":"readLines","ranges":[{"startOffset":5020,"endOffset":5163,"count":0}],"isBlockCoverage":false},{"functionName":"stat","ranges":[{"startOffset":5167,"endOffset":5227,"count":0}],"isBlockCoverage":false},{"functionName":"truncate","ranges":[{"startOffset":5231,"endOffset":5295,"count":0}],"isBlockCoverage":false},{"functionName":"utimes","ranges":[{"startOffset":5299,"endOffset":5373,"count":0}],"isBlockCoverage":false},{"functionName":"write","ranges":[{"startOffset":5377,"endOffset":5488,"count":0}],"isBlockCoverage":false},{"functionName":"writev","ranges":[{"startOffset":5492,"endOffset":5575,"count":0}],"isBlockCoverage":false},{"functionName":"writeFile","ranges":[{"startOffset":5579,"endOffset":5660,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":5664,"endOffset":6464,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6469,"endOffset":6527,"count":0}],"isBlockCoverage":false},{"functionName":"readableWebStream","ranges":[{"startOffset":6729,"endOffset":8366,"count":0}],"isBlockCoverage":false},{"functionName":"createReadStream","ranges":[{"startOffset":8664,"endOffset":8815,"count":0}],"isBlockCoverage":false},{"functionName":"createWriteStream","ranges":[{"startOffset":9119,"endOffset":9273,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9277,"endOffset":9741,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9745,"endOffset":9798,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9802,"endOffset":9889,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9893,"endOffset":9926,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9930,"endOffset":10147,"count":0}],"isBlockCoverage":false},{"functionName":"handleFdClose","ranges":[{"startOffset":10151,"endOffset":10522,"count":0}],"isBlockCoverage":false},{"functionName":"handleFdSync","ranges":[{"startOffset":10524,"endOffset":10807,"count":0}],"isBlockCoverage":false},{"functionName":"fsCall","ranges":[{"startOffset":10809,"endOffset":11293,"count":0}],"isBlockCoverage":false},{"functionName":"checkAborted","ranges":[{"startOffset":11295,"endOffset":11414,"count":0}],"isBlockCoverage":false},{"functionName":"writeFileHandle","ranges":[{"startOffset":11416,"endOffset":12558,"count":0}],"isBlockCoverage":false},{"functionName":"readFileHandle","ranges":[{"startOffset":12560,"endOffset":14961,"count":0}],"isBlockCoverage":false},{"functionName":"access","ranges":[{"startOffset":15114,"endOffset":15307,"count":2}],"isBlockCoverage":true},{"functionName":"cp","ranges":[{"startOffset":15309,"endOffset":15520,"count":0}],"isBlockCoverage":false},{"functionName":"copyFile","ranges":[{"startOffset":15522,"endOffset":15786,"count":0}],"isBlockCoverage":false},{"functionName":"open","ranges":[{"startOffset":15906,"endOffset":16238,"count":0}],"isBlockCoverage":false},{"functionName":"read","ranges":[{"startOffset":16240,"endOffset":17736,"count":0}],"isBlockCoverage":false},{"functionName":"readv","ranges":[{"startOffset":17738,"endOffset":18102,"count":0}],"isBlockCoverage":false},{"functionName":"write","ranges":[{"startOffset":18104,"endOffset":19462,"count":0}],"isBlockCoverage":false},{"functionName":"writev","ranges":[{"startOffset":19464,"endOffset":19929,"count":0}],"isBlockCoverage":false},{"functionName":"rename","ranges":[{"startOffset":19931,"endOffset":20211,"count":0}],"isBlockCoverage":false},{"functionName":"truncate","ranges":[{"startOffset":20213,"endOffset":20346,"count":0}],"isBlockCoverage":false},{"functionName":"ftruncate","ranges":[{"startOffset":20348,"endOffset":20587,"count":0}],"isBlockCoverage":false},{"functionName":"rm","ranges":[{"startOffset":20589,"endOffset":20762,"count":0}],"isBlockCoverage":false},{"functionName":"rmdir","ranges":[{"startOffset":20764,"endOffset":21184,"count":0}],"isBlockCoverage":false},{"functionName":"fdatasync","ranges":[{"startOffset":21186,"endOffset":21355,"count":0}],"isBlockCoverage":false},{"functionName":"fsync","ranges":[{"startOffset":21357,"endOffset":21518,"count":0}],"isBlockCoverage":false},{"functionName":"mkdir","ranges":[{"startOffset":21520,"endOffset":22033,"count":0}],"isBlockCoverage":false},{"functionName":"readdirRecursive","ranges":[{"startOffset":22035,"endOffset":23999,"count":0}],"isBlockCoverage":false},{"functionName":"readdir","ranges":[{"startOffset":24001,"endOffset":24592,"count":0}],"isBlockCoverage":false},{"functionName":"readlink","ranges":[{"startOffset":24594,"endOffset":24858,"count":0}],"isBlockCoverage":false},{"functionName":"symlink","ranges":[{"startOffset":24860,"endOffset":25998,"count":0}],"isBlockCoverage":false},{"functionName":"fstat","ranges":[{"startOffset":26000,"endOffset":26252,"count":0}],"isBlockCoverage":false},{"functionName":"lstat","ranges":[{"startOffset":26254,"endOffset":26809,"count":0}],"isBlockCoverage":false},{"functionName":"stat","ranges":[{"startOffset":26811,"endOffset":27072,"count":0}],"isBlockCoverage":false},{"functionName":"statfs","ranges":[{"startOffset":27074,"endOffset":27340,"count":0}],"isBlockCoverage":false},{"functionName":"link","ranges":[{"startOffset":27342,"endOffset":27643,"count":0}],"isBlockCoverage":false},{"functionName":"unlink","ranges":[{"startOffset":27645,"endOffset":27819,"count":0}],"isBlockCoverage":false},{"functionName":"fchmod","ranges":[{"startOffset":27821,"endOffset":28163,"count":0}],"isBlockCoverage":false},{"functionName":"chmod","ranges":[{"startOffset":28165,"endOffset":28402,"count":0}],"isBlockCoverage":false},{"functionName":"lchmod","ranges":[{"startOffset":28404,"endOffset":28632,"count":0}],"isBlockCoverage":false},{"functionName":"lchown","ranges":[{"startOffset":28634,"endOffset":28937,"count":0}],"isBlockCoverage":false},{"functionName":"fchown","ranges":[{"startOffset":28939,"endOffset":29345,"count":0}],"isBlockCoverage":false},{"functionName":"chown","ranges":[{"startOffset":29347,"endOffset":29648,"count":0}],"isBlockCoverage":false},{"functionName":"utimes","ranges":[{"startOffset":29650,"endOffset":29932,"count":0}],"isBlockCoverage":false},{"functionName":"futimes","ranges":[{"startOffset":29934,"endOffset":30213,"count":0}],"isBlockCoverage":false},{"functionName":"lutimes","ranges":[{"startOffset":30215,"endOffset":30484,"count":0}],"isBlockCoverage":false},{"functionName":"realpath","ranges":[{"startOffset":30486,"endOffset":30724,"count":0}],"isBlockCoverage":false},{"functionName":"mkdtemp","ranges":[{"startOffset":30726,"endOffset":31034,"count":0}],"isBlockCoverage":false},{"functionName":"mkdtempDisposable","ranges":[{"startOffset":31036,"endOffset":31782,"count":0}],"isBlockCoverage":false},{"functionName":"writeFile","ranges":[{"startOffset":31784,"endOffset":32658,"count":0}],"isBlockCoverage":false},{"functionName":"isCustomIterable","ranges":[{"startOffset":32660,"endOffset":32774,"count":0}],"isBlockCoverage":false},{"functionName":"appendFile","ranges":[{"startOffset":32776,"endOffset":33003,"count":0}],"isBlockCoverage":false},{"functionName":"readFile","ranges":[{"startOffset":33005,"endOffset":33349,"count":0}],"isBlockCoverage":false},{"functionName":"_watch","ranges":[{"startOffset":33351,"endOffset":34012,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":34039,"endOffset":34077,"count":0}],"isBlockCoverage":false},{"functionName":"glob","ranges":[{"startOffset":34080,"endOffset":34193,"count":0}],"isBlockCoverage":false}]},{"scriptId":"126","url":"node:internal/fs/dir","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8190,"count":1}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":764,"endOffset":925,"count":0}],"isBlockCoverage":false},{"functionName":"Dir","ranges":[{"startOffset":930,"endOffset":1651,"count":0}],"isBlockCoverage":false},{"functionName":"get path","ranges":[{"startOffset":1655,"endOffset":1761,"count":0}],"isBlockCoverage":false},{"functionName":"#processHandlerQueue","ranges":[{"startOffset":1765,"endOffset":2397,"count":0}],"isBlockCoverage":false},{"functionName":"read","ranges":[{"startOffset":2401,"endOffset":2515,"count":0}],"isBlockCoverage":false},{"functionName":"#readImpl","ranges":[{"startOffset":2519,"endOffset":4167,"count":0}],"isBlockCoverage":false},{"functionName":"processReadResult","ranges":[{"startOffset":4171,"endOffset":4421,"count":0}],"isBlockCoverage":false},{"functionName":"readSyncRecursive","ranges":[{"startOffset":4425,"endOffset":4726,"count":0}],"isBlockCoverage":false},{"functionName":"readSync","ranges":[{"startOffset":4730,"endOffset":5554,"count":0}],"isBlockCoverage":false},{"functionName":"close","ranges":[{"startOffset":5558,"endOffset":6332,"count":0}],"isBlockCoverage":false},{"functionName":"closeSync","ranges":[{"startOffset":6336,"endOffset":6718,"count":0}],"isBlockCoverage":false},{"functionName":"entries","ranges":[{"startOffset":6722,"endOffset":6977,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6981,"endOffset":7056,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7060,"endOffset":7160,"count":0}],"isBlockCoverage":false},{"functionName":"opendir","ranges":[{"startOffset":7363,"endOffset":7914,"count":0}],"isBlockCoverage":false},{"functionName":"opendirSync","ranges":[{"startOffset":7916,"endOffset":8133,"count":0}],"isBlockCoverage":false}]},{"scriptId":"127","url":"node:internal/fs/watchers","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":14409,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1725,"endOffset":1771,"count":0}],"isBlockCoverage":false},{"functionName":"createIgnoreMatcher","ranges":[{"startOffset":2010,"endOffset":3163,"count":0}],"isBlockCoverage":false},{"functionName":"emitStop","ranges":[{"startOffset":3165,"endOffset":3213,"count":0}],"isBlockCoverage":false},{"functionName":"StatWatcher","ranges":[{"startOffset":3215,"endOffset":3445,"count":0}],"isBlockCoverage":false},{"functionName":"onchange","ranges":[{"startOffset":3565,"endOffset":3922,"count":0}],"isBlockCoverage":false},{"functionName":"StatWatcher.<computed>","ranges":[{"startOffset":4310,"endOffset":5148,"count":0}],"isBlockCoverage":false},{"functionName":"StatWatcher.start","ranges":[{"startOffset":5369,"endOffset":5377,"count":0}],"isBlockCoverage":false},{"functionName":"StatWatcher.stop","ranges":[{"startOffset":5623,"endOffset":5904,"count":0}],"isBlockCoverage":false},{"functionName":"StatWatcher.<computed>","ranges":[{"startOffset":5993,"endOffset":6420,"count":0}],"isBlockCoverage":false},{"functionName":"StatWatcher.ref","ranges":[{"startOffset":6451,"endOffset":6733,"count":0}],"isBlockCoverage":false},{"functionName":"StatWatcher.unref","ranges":[{"startOffset":6766,"endOffset":7016,"count":0}],"isBlockCoverage":false},{"functionName":"FSWatcher","ranges":[{"startOffset":7020,"endOffset":8185,"count":0}],"isBlockCoverage":false},{"functionName":"FSWatcher.<computed>","ranges":[{"startOffset":8722,"endOffset":9838,"count":0}],"isBlockCoverage":false},{"functionName":"FSWatcher.start","ranges":[{"startOffset":10055,"endOffset":10063,"count":0}],"isBlockCoverage":false},{"functionName":"FSWatcher.close","ranges":[{"startOffset":10186,"endOffset":10523,"count":0}],"isBlockCoverage":false},{"functionName":"FSWatcher.ref","ranges":[{"startOffset":10552,"endOffset":10621,"count":0}],"isBlockCoverage":false},{"functionName":"FSWatcher.unref","ranges":[{"startOffset":10652,"endOffset":10723,"count":0}],"isBlockCoverage":false},{"functionName":"emitCloseNT","ranges":[{"startOffset":10726,"endOffset":10778,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":11002,"endOffset":11038,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":11042,"endOffset":11083,"count":0}],"isBlockCoverage":false},{"functionName":"watch","ranges":[{"startOffset":11119,"endOffset":14254,"count":0}],"isBlockCoverage":false}]},{"scriptId":"128","url":"node:internal/fs/recursive_watch","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7607,"count":1}],"isBlockCoverage":false},{"functionName":"lazyLoadFsSync","ranges":[{"startOffset":759,"endOffset":845,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":917,"endOffset":1119,"count":0}],"isBlockCoverage":false},{"functionName":"FSWatcher","ranges":[{"startOffset":1124,"endOffset":2074,"count":0}],"isBlockCoverage":false},{"functionName":"close","ranges":[{"startOffset":2078,"endOffset":2372,"count":0}],"isBlockCoverage":false},{"functionName":"#unwatchFiles","ranges":[{"startOffset":2376,"endOffset":2684,"count":0}],"isBlockCoverage":false},{"functionName":"#watchFolder","ranges":[{"startOffset":2688,"endOffset":3788,"count":0}],"isBlockCoverage":false},{"functionName":"#watchFile","ranges":[{"startOffset":3792,"endOffset":5599,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5603,"endOffset":6102,"count":0}],"isBlockCoverage":false},{"functionName":"ref","ranges":[{"startOffset":6106,"endOffset":6230,"count":0}],"isBlockCoverage":false},{"functionName":"unref","ranges":[{"startOffset":6234,"endOffset":6362,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6366,"endOffset":7551,"count":0}],"isBlockCoverage":false}]},{"scriptId":"129","url":"node:internal/readline/interface","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":47331,"count":1}],"isBlockCoverage":false},{"functionName":"InterfaceConstructor","ranges":[{"startOffset":4891,"endOffset":10245,"count":0}],"isBlockCoverage":false},{"functionName":"get columns","ranges":[{"startOffset":10433,"endOffset":10531,"count":0}],"isBlockCoverage":false},{"functionName":"setPrompt","ranges":[{"startOffset":10640,"endOffset":10691,"count":0}],"isBlockCoverage":false},{"functionName":"getPrompt","ranges":[{"startOffset":10785,"endOffset":10828,"count":0}],"isBlockCoverage":false},{"functionName":"setupHistoryManager","ranges":[{"startOffset":10832,"endOffset":11869,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11873,"endOffset":12064,"count":0}],"isBlockCoverage":false},{"functionName":"prompt","ranges":[{"startOffset":12203,"endOffset":12457,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12461,"endOffset":12768,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12772,"endOffset":12883,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12887,"endOffset":13129,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13133,"endOffset":13220,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13224,"endOffset":13392,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13396,"endOffset":13593,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13597,"endOffset":13708,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13712,"endOffset":15114,"count":0}],"isBlockCoverage":false},{"functionName":"close","ranges":[{"startOffset":15198,"endOffset":15369,"count":0}],"isBlockCoverage":false},{"functionName":"pause","ranges":[{"startOffset":15450,"endOffset":15659,"count":0}],"isBlockCoverage":false},{"functionName":"resume","ranges":[{"startOffset":15751,"endOffset":15965,"count":0}],"isBlockCoverage":false},{"functionName":"write","ranges":[{"startOffset":16236,"endOffset":16473,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":16477,"endOffset":18211,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":18215,"endOffset":19327,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19331,"endOffset":19730,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19734,"endOffset":21953,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21957,"endOffset":22418,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22422,"endOffset":22680,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22684,"endOffset":23166,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":23170,"endOffset":23651,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":23655,"endOffset":24415,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":24419,"endOffset":24846,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":24850,"endOffset":25132,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":25136,"endOffset":25398,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":25402,"endOffset":25662,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":25666,"endOffset":25821,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":25825,"endOffset":26504,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":26508,"endOffset":26659,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":26663,"endOffset":26821,"count":0}],"isBlockCoverage":false},{"functionName":"clearLine","ranges":[{"startOffset":26825,"endOffset":26978,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":26982,"endOffset":27168,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":27826,"endOffset":31442,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":31446,"endOffset":31633,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":31637,"endOffset":31949,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":31953,"endOffset":32265,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":32269,"endOffset":33343,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":33347,"endOffset":33692,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":34127,"endOffset":34431,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":34435,"endOffset":34761,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":34765,"endOffset":35077,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":35152,"endOffset":36239,"count":0}],"isBlockCoverage":false},{"functionName":"getCursorPos","ranges":[{"startOffset":36416,"endOffset":36580,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":36699,"endOffset":37256,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":37293,"endOffset":45960,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":46131,"endOffset":46511,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":46585,"endOffset":46615,"count":0}],"isBlockCoverage":false}]},{"scriptId":"130","url":"node:internal/readline/utils","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12782,"count":1}],"isBlockCoverage":false},{"functionName":"CSI","ranges":[{"startOffset":390,"endOffset":584,"count":4},{"startOffset":549,"endOffset":564,"count":0}],"isBlockCoverage":true},{"functionName":"charLengthLeft","ranges":[{"startOffset":963,"endOffset":1225,"count":0}],"isBlockCoverage":false},{"functionName":"charLengthAt","ranges":[{"startOffset":1227,"endOffset":1489,"count":0}],"isBlockCoverage":false},{"functionName":"emitKeys","ranges":[{"startOffset":2218,"endOffset":11845,"count":0}],"isBlockCoverage":false},{"functionName":"commonPrefix","ranges":[{"startOffset":11875,"endOffset":12271,"count":0}],"isBlockCoverage":false},{"functionName":"reverseString","ranges":[{"startOffset":12273,"endOffset":12652,"count":0}],"isBlockCoverage":false}]},{"scriptId":"131","url":"node:internal/readline/callbacks","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2754,"count":1}],"isBlockCoverage":false},{"functionName":"cursorTo","ranges":[{"startOffset":460,"endOffset":1146,"count":0}],"isBlockCoverage":false},{"functionName":"moveCursor","ranges":[{"startOffset":1210,"endOffset":1722,"count":0}],"isBlockCoverage":false},{"functionName":"clearLine","ranges":[{"startOffset":1869,"endOffset":2272,"count":0}],"isBlockCoverage":false},{"functionName":"clearScreenDown","ranges":[{"startOffset":2349,"endOffset":2672,"count":0}],"isBlockCoverage":false}]},{"scriptId":"132","url":"node:internal/repl/history","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12779,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":504,"endOffset":529,"count":0}],"isBlockCoverage":false},{"functionName":"ReplHistory","ranges":[{"startOffset":1998,"endOffset":2527,"count":0}],"isBlockCoverage":false},{"functionName":"initialize","ranges":[{"startOffset":2531,"endOffset":3855,"count":0}],"isBlockCoverage":false},{"functionName":"addHistory","ranges":[{"startOffset":3859,"endOffset":5731,"count":0}],"isBlockCoverage":false},{"functionName":"canNavigateToNext","ranges":[{"startOffset":5735,"endOffset":5819,"count":0}],"isBlockCoverage":false},{"functionName":"navigateToNext","ranges":[{"startOffset":5823,"endOffset":6345,"count":0}],"isBlockCoverage":false},{"functionName":"canNavigateToPrevious","ranges":[{"startOffset":6349,"endOffset":6458,"count":0}],"isBlockCoverage":false},{"functionName":"navigateToPrevious","ranges":[{"startOffset":6462,"endOffset":7035,"count":0}],"isBlockCoverage":false},{"functionName":"get size","ranges":[{"startOffset":7039,"endOffset":7073,"count":0}],"isBlockCoverage":false},{"functionName":"get isFlushing","ranges":[{"startOffset":7076,"endOffset":7122,"count":0}],"isBlockCoverage":false},{"functionName":"get history","ranges":[{"startOffset":7125,"endOffset":7165,"count":0}],"isBlockCoverage":false},{"functionName":"set history","ranges":[{"startOffset":7168,"endOffset":7214,"count":0}],"isBlockCoverage":false},{"functionName":"get index","ranges":[{"startOffset":7217,"endOffset":7253,"count":0}],"isBlockCoverage":false},{"functionName":"set index","ranges":[{"startOffset":7256,"endOffset":7298,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7337,"endOffset":7536,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7547,"endOffset":8115,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8126,"endOffset":8363,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8367,"endOffset":8664,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8668,"endOffset":8808,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8812,"endOffset":9050,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9054,"endOffset":10362,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":10366,"endOffset":10956,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":10960,"endOffset":11153,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11157,"endOffset":11841,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11845,"endOffset":12229,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12233,"endOffset":12738,"count":0}],"isBlockCoverage":false}]},{"scriptId":"133","url":"node:internal/streams/fast-utf8-stream","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":24626,"count":1}],"isBlockCoverage":false},{"functionName":"sleep","ranges":[{"startOffset":978,"endOffset":1498,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":2034,"endOffset":2623,"count":0}],"isBlockCoverage":false},{"functionName":"Utf8Stream","ranges":[{"startOffset":4178,"endOffset":8545,"count":0}],"isBlockCoverage":false},{"functionName":"write","ranges":[{"startOffset":8618,"endOffset":8665,"count":0}],"isBlockCoverage":false},{"functionName":"flush","ranges":[{"startOffset":8818,"endOffset":8868,"count":0}],"isBlockCoverage":false},{"functionName":"flushSync","ranges":[{"startOffset":8872,"endOffset":8913,"count":0}],"isBlockCoverage":false},{"functionName":"reopen","ranges":[{"startOffset":8957,"endOffset":9746,"count":0}],"isBlockCoverage":false},{"functionName":"end","ranges":[{"startOffset":9750,"endOffset":10198,"count":0}],"isBlockCoverage":false},{"functionName":"destroy","ranges":[{"startOffset":10202,"endOffset":10289,"count":0}],"isBlockCoverage":false},{"functionName":"get mode","ranges":[{"startOffset":10317,"endOffset":10350,"count":0}],"isBlockCoverage":false},{"functionName":"get file","ranges":[{"startOffset":10388,"endOffset":10421,"count":0}],"isBlockCoverage":false},{"functionName":"get fd","ranges":[{"startOffset":10449,"endOffset":10478,"count":0}],"isBlockCoverage":false},{"functionName":"get minLength","ranges":[{"startOffset":10506,"endOffset":10549,"count":0}],"isBlockCoverage":false},{"functionName":"get maxLength","ranges":[{"startOffset":10577,"endOffset":10620,"count":0}],"isBlockCoverage":false},{"functionName":"get writing","ranges":[{"startOffset":10649,"endOffset":10688,"count":0}],"isBlockCoverage":false},{"functionName":"get sync","ranges":[{"startOffset":10717,"endOffset":10750,"count":0}],"isBlockCoverage":false},{"functionName":"get fsync","ranges":[{"startOffset":10779,"endOffset":10814,"count":0}],"isBlockCoverage":false},{"functionName":"get append","ranges":[{"startOffset":10843,"endOffset":10880,"count":0}],"isBlockCoverage":false},{"functionName":"get periodicFlush","ranges":[{"startOffset":10908,"endOffset":10959,"count":0}],"isBlockCoverage":false},{"functionName":"get contentMode","ranges":[{"startOffset":10996,"endOffset":11106,"count":0}],"isBlockCoverage":false},{"functionName":"get mkdir","ranges":[{"startOffset":11135,"endOffset":11170,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11174,"endOffset":11211,"count":0}],"isBlockCoverage":false},{"functionName":"#release","ranges":[{"startOffset":11215,"endOffset":13523,"count":0}],"isBlockCoverage":false},{"functionName":"#openFile","ranges":[{"startOffset":13527,"endOffset":15449,"count":0}],"isBlockCoverage":false},{"functionName":"#emitDrain","ranges":[{"startOffset":15453,"endOffset":15623,"count":0}],"isBlockCoverage":false},{"functionName":"#actualClose","ranges":[{"startOffset":15627,"endOffset":16446,"count":0}],"isBlockCoverage":false},{"functionName":"#actualWriteBuffer","ranges":[{"startOffset":16450,"endOffset":17155,"count":0}],"isBlockCoverage":false},{"functionName":"#actualWriteUtf8","ranges":[{"startOffset":17159,"endOffset":17585,"count":0}],"isBlockCoverage":false},{"functionName":"#flushBufferSync","ranges":[{"startOffset":17589,"endOffset":18628,"count":0}],"isBlockCoverage":false},{"functionName":"#flushSyncUtf8","ranges":[{"startOffset":18632,"endOffset":19789,"count":0}],"isBlockCoverage":false},{"functionName":"#callFlushCallbackOnDrain","ranges":[{"startOffset":19793,"endOffset":20670,"count":0}],"isBlockCoverage":false},{"functionName":"#flushBuffer","ranges":[{"startOffset":20674,"endOffset":21238,"count":0}],"isBlockCoverage":false},{"functionName":"#flushUtf8","ranges":[{"startOffset":21242,"endOffset":21763,"count":0}],"isBlockCoverage":false},{"functionName":"#writeBuffer","ranges":[{"startOffset":21767,"endOffset":22746,"count":0}],"isBlockCoverage":false},{"functionName":"#writeUtf8","ranges":[{"startOffset":22750,"endOffset":23457,"count":0}],"isBlockCoverage":false},{"functionName":"releaseWritingBuf","ranges":[{"startOffset":23845,"endOffset":24417,"count":0}],"isBlockCoverage":false},{"functionName":"mergeBuf","ranges":[{"startOffset":24419,"endOffset":24595,"count":0}],"isBlockCoverage":false}]},{"scriptId":"134","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/resolve-pkg-maps/dist/index.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2080,"count":1}],"isBlockCoverage":true},{"functionName":"A","ranges":[{"startOffset":8,"endOffset":39,"count":0}],"isBlockCoverage":false},{"functionName":"a","ranges":[{"startOffset":42,"endOffset":98,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":287,"endOffset":331,"count":1}],"isBlockCoverage":true},{"functionName":"f","ranges":[{"startOffset":348,"endOffset":830,"count":0}],"isBlockCoverage":false},{"functionName":"m","ranges":[{"startOffset":839,"endOffset":918,"count":0}],"isBlockCoverage":false},{"functionName":"d","ranges":[{"startOffset":919,"endOffset":1195,"count":0}],"isBlockCoverage":false},{"functionName":"p","ranges":[{"startOffset":1203,"endOffset":1380,"count":0}],"isBlockCoverage":false},{"functionName":"v","ranges":[{"startOffset":1393,"endOffset":1831,"count":0}],"isBlockCoverage":false},{"functionName":"T","ranges":[{"startOffset":1834,"endOffset":2030,"count":0}],"isBlockCoverage":false}]},{"scriptId":"135","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/index-7AaEi15b.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":52247,"count":1},{"startOffset":593,"endOffset":635,"count":64},{"startOffset":682,"endOffset":866,"count":0},{"startOffset":19030,"endOffset":19130,"count":0},{"startOffset":41055,"endOffset":41063,"count":0},{"startOffset":50855,"endOffset":50859,"count":0}],"isBlockCoverage":true},{"functionName":"f","ranges":[{"startOffset":35,"endOffset":80,"count":97}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":381,"endOffset":429,"count":0}],"isBlockCoverage":false},{"functionName":"decode","ranges":[{"startOffset":702,"endOffset":778,"count":0}],"isBlockCoverage":false},{"functionName":"decode","ranges":[{"startOffset":781,"endOffset":865,"count":0}],"isBlockCoverage":false},{"functionName":"Qt","ranges":[{"startOffset":867,"endOffset":1226,"count":0}],"isBlockCoverage":false},{"functionName":"Zt","ranges":[{"startOffset":1241,"endOffset":1308,"count":0}],"isBlockCoverage":false},{"functionName":"K","ranges":[{"startOffset":1324,"endOffset":1485,"count":0}],"isBlockCoverage":false},{"functionName":"je","ranges":[{"startOffset":1506,"endOffset":1561,"count":0}],"isBlockCoverage":false},{"functionName":"Vt","ranges":[{"startOffset":1580,"endOffset":1606,"count":0}],"isBlockCoverage":false},{"functionName":"en","ranges":[{"startOffset":1619,"endOffset":1653,"count":0}],"isBlockCoverage":false},{"functionName":"De","ranges":[{"startOffset":1678,"endOffset":2149,"count":0}],"isBlockCoverage":false},{"functionName":"Y","ranges":[{"startOffset":2164,"endOffset":2305,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":2335,"endOffset":2359,"count":1}],"isBlockCoverage":true},{"functionName":"ae","ranges":[{"startOffset":2359,"endOffset":2418,"count":0}],"isBlockCoverage":false},{"functionName":"add","ranges":[{"startOffset":2418,"endOffset":2452,"count":0}],"isBlockCoverage":false},{"functionName":"has","ranges":[{"startOffset":2452,"endOffset":2495,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":2505,"endOffset":2528,"count":1}],"isBlockCoverage":true},{"functionName":"ee","ranges":[{"startOffset":2528,"endOffset":2697,"count":0}],"isBlockCoverage":false},{"functionName":"appendLeft","ranges":[{"startOffset":2697,"endOffset":2725,"count":0}],"isBlockCoverage":false},{"functionName":"appendRight","ranges":[{"startOffset":2725,"endOffset":2764,"count":0}],"isBlockCoverage":false},{"functionName":"clone","ranges":[{"startOffset":2764,"endOffset":2940,"count":0}],"isBlockCoverage":false},{"functionName":"contains","ranges":[{"startOffset":2940,"endOffset":2984,"count":0}],"isBlockCoverage":false},{"functionName":"eachNext","ranges":[{"startOffset":2984,"endOffset":3029,"count":0}],"isBlockCoverage":false},{"functionName":"eachPrevious","ranges":[{"startOffset":3029,"endOffset":3082,"count":0}],"isBlockCoverage":false},{"functionName":"edit","ranges":[{"startOffset":3082,"endOffset":3186,"count":0}],"isBlockCoverage":false},{"functionName":"prependLeft","ranges":[{"startOffset":3186,"endOffset":3225,"count":0}],"isBlockCoverage":false},{"functionName":"prependRight","ranges":[{"startOffset":3225,"endOffset":3265,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":3265,"endOffset":3376,"count":0}],"isBlockCoverage":false},{"functionName":"split","ranges":[{"startOffset":3376,"endOffset":3688,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":3688,"endOffset":3741,"count":0}],"isBlockCoverage":false},{"functionName":"trimEnd","ranges":[{"startOffset":3741,"endOffset":4080,"count":0}],"isBlockCoverage":false},{"functionName":"trimStart","ranges":[{"startOffset":4080,"endOffset":4435,"count":0}],"isBlockCoverage":false},{"functionName":"tn","ranges":[{"startOffset":4436,"endOffset":4735,"count":1},{"startOffset":4566,"endOffset":4734,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4515,"endOffset":4566,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4593,"endOffset":4637,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4638,"endOffset":4734,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":4778,"endOffset":4805,"count":1}],"isBlockCoverage":true},{"functionName":"rn","ranges":[{"startOffset":4805,"endOffset":5043,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":5043,"endOffset":5082,"count":0}],"isBlockCoverage":false},{"functionName":"toUrl","ranges":[{"startOffset":5082,"endOffset":5162,"count":0}],"isBlockCoverage":false},{"functionName":"sn","ranges":[{"startOffset":5164,"endOffset":5452,"count":0}],"isBlockCoverage":false},{"functionName":"on","ranges":[{"startOffset":5472,"endOffset":5655,"count":0}],"isBlockCoverage":false},{"functionName":"cn","ranges":[{"startOffset":5714,"endOffset":5767,"count":0}],"isBlockCoverage":false},{"functionName":"Te","ranges":[{"startOffset":5784,"endOffset":6022,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":6064,"endOffset":6090,"count":1}],"isBlockCoverage":true},{"functionName":"ln","ranges":[{"startOffset":6090,"endOffset":6253,"count":0}],"isBlockCoverage":false},{"functionName":"addEdit","ranges":[{"startOffset":6253,"endOffset":6784,"count":0}],"isBlockCoverage":false},{"functionName":"addUneditedChunk","ranges":[{"startOffset":6784,"endOffset":7277,"count":0}],"isBlockCoverage":false},{"functionName":"advance","ranges":[{"startOffset":7277,"endOffset":7518,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":7586,"endOffset":7615,"count":1}],"isBlockCoverage":true},{"functionName":"_e","ranges":[{"startOffset":7615,"endOffset":8259,"count":0}],"isBlockCoverage":false},{"functionName":"addSourcemapLocation","ranges":[{"startOffset":8259,"endOffset":8314,"count":0}],"isBlockCoverage":false},{"functionName":"append","ranges":[{"startOffset":8314,"endOffset":8426,"count":0}],"isBlockCoverage":false},{"functionName":"appendLeft","ranges":[{"startOffset":8426,"endOffset":8602,"count":0}],"isBlockCoverage":false},{"functionName":"appendRight","ranges":[{"startOffset":8602,"endOffset":8782,"count":0}],"isBlockCoverage":false},{"functionName":"clone","ranges":[{"startOffset":8782,"endOffset":9227,"count":0}],"isBlockCoverage":false},{"functionName":"generateDecodedMap","ranges":[{"startOffset":9227,"endOffset":9861,"count":0}],"isBlockCoverage":false},{"functionName":"generateMap","ranges":[{"startOffset":9861,"endOffset":9918,"count":0}],"isBlockCoverage":false},{"functionName":"_ensureindentStr","ranges":[{"startOffset":9918,"endOffset":9997,"count":0}],"isBlockCoverage":false},{"functionName":"_getRawIndentString","ranges":[{"startOffset":9997,"endOffset":10065,"count":0}],"isBlockCoverage":false},{"functionName":"getIndentString","ranges":[{"startOffset":10065,"endOffset":10155,"count":0}],"isBlockCoverage":false},{"functionName":"indent","ranges":[{"startOffset":10155,"endOffset":10918,"count":0}],"isBlockCoverage":false},{"functionName":"insert","ranges":[{"startOffset":10918,"endOffset":11026,"count":0}],"isBlockCoverage":false},{"functionName":"insertLeft","ranges":[{"startOffset":11026,"endOffset":11201,"count":0}],"isBlockCoverage":false},{"functionName":"insertRight","ranges":[{"startOffset":11201,"endOffset":11384,"count":0}],"isBlockCoverage":false},{"functionName":"move","ranges":[{"startOffset":11384,"endOffset":11913,"count":0}],"isBlockCoverage":false},{"functionName":"overwrite","ranges":[{"startOffset":11913,"endOffset":11998,"count":0}],"isBlockCoverage":false},{"functionName":"update","ranges":[{"startOffset":11998,"endOffset":13016,"count":0}],"isBlockCoverage":false},{"functionName":"prepend","ranges":[{"startOffset":13016,"endOffset":13139,"count":0}],"isBlockCoverage":false},{"functionName":"prependLeft","ranges":[{"startOffset":13139,"endOffset":13327,"count":0}],"isBlockCoverage":false},{"functionName":"prependRight","ranges":[{"startOffset":13327,"endOffset":13519,"count":0}],"isBlockCoverage":false},{"functionName":"remove","ranges":[{"startOffset":13519,"endOffset":13894,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":13894,"endOffset":14245,"count":0}],"isBlockCoverage":false},{"functionName":"lastChar","ranges":[{"startOffset":14245,"endOffset":14579,"count":0}],"isBlockCoverage":false},{"functionName":"lastLine","ranges":[{"startOffset":14579,"endOffset":15099,"count":0}],"isBlockCoverage":false},{"functionName":"slice","ranges":[{"startOffset":15099,"endOffset":15762,"count":0}],"isBlockCoverage":false},{"functionName":"snip","ranges":[{"startOffset":15762,"endOffset":15846,"count":0}],"isBlockCoverage":false},{"functionName":"_split","ranges":[{"startOffset":15846,"endOffset":16042,"count":0}],"isBlockCoverage":false},{"functionName":"_splitChunk","ranges":[{"startOffset":16042,"endOffset":16382,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":16382,"endOffset":16481,"count":0}],"isBlockCoverage":false},{"functionName":"isEmpty","ranges":[{"startOffset":16481,"endOffset":16652,"count":0}],"isBlockCoverage":false},{"functionName":"length","ranges":[{"startOffset":16652,"endOffset":16765,"count":0}],"isBlockCoverage":false},{"functionName":"trimLines","ranges":[{"startOffset":16765,"endOffset":16806,"count":0}],"isBlockCoverage":false},{"functionName":"trim","ranges":[{"startOffset":16806,"endOffset":16850,"count":0}],"isBlockCoverage":false},{"functionName":"trimEndAborted","ranges":[{"startOffset":16850,"endOffset":17209,"count":0}],"isBlockCoverage":false},{"functionName":"trimEnd","ranges":[{"startOffset":17209,"endOffset":17255,"count":0}],"isBlockCoverage":false},{"functionName":"trimStartAborted","ranges":[{"startOffset":17255,"endOffset":17618,"count":0}],"isBlockCoverage":false},{"functionName":"trimStart","ranges":[{"startOffset":17618,"endOffset":17668,"count":0}],"isBlockCoverage":false},{"functionName":"hasChanged","ranges":[{"startOffset":17668,"endOffset":17720,"count":0}],"isBlockCoverage":false},{"functionName":"_replaceRegexp","ranges":[{"startOffset":17720,"endOffset":18302,"count":0}],"isBlockCoverage":false},{"functionName":"_replaceString","ranges":[{"startOffset":18302,"endOffset":18411,"count":0}],"isBlockCoverage":false},{"functionName":"replace","ranges":[{"startOffset":18411,"endOffset":18500,"count":0}],"isBlockCoverage":false},{"functionName":"_replaceAllString","ranges":[{"startOffset":18500,"endOffset":18662,"count":0}],"isBlockCoverage":false},{"functionName":"replaceAll","ranges":[{"startOffset":18662,"endOffset":18877,"count":0}],"isBlockCoverage":false},{"functionName":"Fe","ranges":[{"startOffset":18958,"endOffset":19030,"count":0}],"isBlockCoverage":false},{"functionName":"Fe","ranges":[{"startOffset":19031,"endOffset":19130,"count":0}],"isBlockCoverage":false},{"functionName":"fn","ranges":[{"startOffset":19258,"endOffset":37428,"count":0}],"isBlockCoverage":false},{"functionName":"ye","ranges":[{"startOffset":37442,"endOffset":37641,"count":0}],"isBlockCoverage":false},{"functionName":"dn","ranges":[{"startOffset":37651,"endOffset":38415,"count":0}],"isBlockCoverage":false},{"functionName":"Ce","ranges":[{"startOffset":38425,"endOffset":38688,"count":0}],"isBlockCoverage":false},{"functionName":"Be","ranges":[{"startOffset":38698,"endOffset":38735,"count":0}],"isBlockCoverage":false},{"functionName":"D","ranges":[{"startOffset":38745,"endOffset":38876,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":38917,"endOffset":38999,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":39014,"endOffset":39039,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":39057,"endOffset":39154,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":39175,"endOffset":39260,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":39296,"endOffset":39605,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":39637,"endOffset":39707,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":39729,"endOffset":39735,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":39749,"endOffset":39779,"count":1}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":39812,"endOffset":39839,"count":1}],"isBlockCoverage":true},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":39839,"endOffset":39911,"count":1}],"isBlockCoverage":true},{"functionName":"wn","ranges":[{"startOffset":39912,"endOffset":40181,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40037,"endOffset":40105,"count":128}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40120,"endOffset":40179,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":40181,"endOffset":40475,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":40475,"endOffset":40620,"count":0}],"isBlockCoverage":false},{"functionName":"expireDiskCache","ranges":[{"startOffset":40620,"endOffset":40762,"count":1},{"startOffset":40682,"endOffset":40761,"count":128},{"startOffset":40692,"endOffset":40761,"count":0}],"isBlockCoverage":true},{"functionName":"removeOldCacheDirectory","ranges":[{"startOffset":40762,"endOffset":41018,"count":1},{"startOffset":40858,"endOffset":41009,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40851,"endOffset":40857,"count":0}],"isBlockCoverage":false},{"functionName":"Cn","ranges":[{"startOffset":41244,"endOffset":41277,"count":0}],"isBlockCoverage":false},{"functionName":"Sn","ranges":[{"startOffset":41299,"endOffset":41340,"count":0}],"isBlockCoverage":false},{"functionName":"He","ranges":[{"startOffset":41368,"endOffset":41408,"count":0}],"isBlockCoverage":false},{"functionName":"xn","ranges":[{"startOffset":41431,"endOffset":41475,"count":0}],"isBlockCoverage":false},{"functionName":"Xe","ranges":[{"startOffset":41493,"endOffset":41531,"count":0}],"isBlockCoverage":false},{"functionName":"se","ranges":[{"startOffset":41550,"endOffset":41651,"count":0}],"isBlockCoverage":false},{"functionName":"vn","ranges":[{"startOffset":41676,"endOffset":41783,"count":0}],"isBlockCoverage":false},{"functionName":"Ke","ranges":[{"startOffset":41804,"endOffset":41898,"count":0}],"isBlockCoverage":false},{"functionName":"Ye","ranges":[{"startOffset":41914,"endOffset":42232,"count":0}],"isBlockCoverage":false},{"functionName":"_n","ranges":[{"startOffset":42249,"endOffset":42343,"count":0}],"isBlockCoverage":false},{"functionName":"En","ranges":[{"startOffset":42369,"endOffset":42451,"count":0}],"isBlockCoverage":false},{"functionName":"Qe","ranges":[{"startOffset":42470,"endOffset":42771,"count":0}],"isBlockCoverage":false},{"functionName":"Ln","ranges":[{"startOffset":42793,"endOffset":43278,"count":0}],"isBlockCoverage":false},{"functionName":"Ze","ranges":[{"startOffset":43296,"endOffset":43358,"count":0}],"isBlockCoverage":false},{"functionName":"On","ranges":[{"startOffset":43374,"endOffset":43453,"count":0}],"isBlockCoverage":false},{"functionName":"Rn","ranges":[{"startOffset":43485,"endOffset":43620,"count":0}],"isBlockCoverage":false},{"functionName":"Ve","ranges":[{"startOffset":43638,"endOffset":43720,"count":0}],"isBlockCoverage":false},{"functionName":"An","ranges":[{"startOffset":43752,"endOffset":43833,"count":0}],"isBlockCoverage":false},{"functionName":"Nn","ranges":[{"startOffset":43850,"endOffset":43902,"count":0}],"isBlockCoverage":false},{"functionName":"In","ranges":[{"startOffset":43923,"endOffset":43957,"count":0}],"isBlockCoverage":false},{"functionName":"Mn","ranges":[{"startOffset":43990,"endOffset":44111,"count":0}],"isBlockCoverage":false},{"functionName":"$n","ranges":[{"startOffset":44132,"endOffset":44199,"count":0}],"isBlockCoverage":false},{"functionName":"Un","ranges":[{"startOffset":44218,"endOffset":44278,"count":0}],"isBlockCoverage":false},{"functionName":"jn","ranges":[{"startOffset":44300,"endOffset":44517,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":44555,"endOffset":44581,"count":1}],"isBlockCoverage":true},{"functionName":"et","ranges":[{"startOffset":44581,"endOffset":45173,"count":0}],"isBlockCoverage":false},{"functionName":"vr","ranges":[{"startOffset":45174,"endOffset":45198,"count":0}],"isBlockCoverage":false},{"functionName":"tt","ranges":[{"startOffset":45213,"endOffset":45284,"count":0}],"isBlockCoverage":false},{"functionName":"Dn","ranges":[{"startOffset":45308,"endOffset":45432,"count":0}],"isBlockCoverage":false},{"functionName":"Tn","ranges":[{"startOffset":45453,"endOffset":45545,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":45583,"endOffset":45609,"count":1}],"isBlockCoverage":true},{"functionName":"ve","ranges":[{"startOffset":45609,"endOffset":45668,"count":0}],"isBlockCoverage":false},{"functionName":"_r","ranges":[{"startOffset":45669,"endOffset":45693,"count":0}],"isBlockCoverage":false},{"functionName":"nt","ranges":[{"startOffset":45708,"endOffset":45746,"count":0}],"isBlockCoverage":false},{"functionName":"V","ranges":[{"startOffset":45758,"endOffset":45869,"count":0}],"isBlockCoverage":false},{"functionName":"Fn","ranges":[{"startOffset":45880,"endOffset":46041,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":46102,"endOffset":46130,"count":1}],"isBlockCoverage":true},{"functionName":"qn","ranges":[{"startOffset":46130,"endOffset":46304,"count":0}],"isBlockCoverage":false},{"functionName":"Er","ranges":[{"startOffset":46305,"endOffset":46329,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":46353,"endOffset":46392,"count":0}],"isBlockCoverage":false},{"functionName":"Hn","ranges":[{"startOffset":46412,"endOffset":46485,"count":0}],"isBlockCoverage":false},{"functionName":"Xn","ranges":[{"startOffset":46510,"endOffset":46636,"count":0}],"isBlockCoverage":false},{"functionName":"it","ranges":[{"startOffset":46654,"endOffset":46896,"count":0}],"isBlockCoverage":false},{"functionName":"Kn","ranges":[{"startOffset":46917,"endOffset":47014,"count":0}],"isBlockCoverage":false},{"functionName":"Yn","ranges":[{"startOffset":47035,"endOffset":47299,"count":0}],"isBlockCoverage":false},{"functionName":"Qn","ranges":[{"startOffset":47326,"endOffset":47391,"count":0}],"isBlockCoverage":false},{"functionName":"Zn","ranges":[{"startOffset":47407,"endOffset":47505,"count":0}],"isBlockCoverage":false},{"functionName":"st","ranges":[{"startOffset":47528,"endOffset":47593,"count":0}],"isBlockCoverage":false},{"functionName":"Vn","ranges":[{"startOffset":47608,"endOffset":47713,"count":0}],"isBlockCoverage":false},{"functionName":"er","ranges":[{"startOffset":47743,"endOffset":47794,"count":0}],"isBlockCoverage":false},{"functionName":"tr","ranges":[{"startOffset":47817,"endOffset":47959,"count":0}],"isBlockCoverage":false},{"functionName":"at","ranges":[{"startOffset":48017,"endOffset":48101,"count":1}],"isBlockCoverage":true},{"functionName":"ct","ranges":[{"startOffset":48123,"endOffset":48198,"count":0}],"isBlockCoverage":false},{"functionName":"ut","ranges":[{"startOffset":48213,"endOffset":48256,"count":0}],"isBlockCoverage":false},{"functionName":"rr","ranges":[{"startOffset":48274,"endOffset":48318,"count":0}],"isBlockCoverage":false},{"functionName":"ir","ranges":[{"startOffset":48341,"endOffset":48745,"count":0}],"isBlockCoverage":false},{"functionName":"lt","ranges":[{"startOffset":48767,"endOffset":48964,"count":0}],"isBlockCoverage":false},{"functionName":"sr","ranges":[{"startOffset":48992,"endOffset":49037,"count":0}],"isBlockCoverage":false},{"functionName":"or","ranges":[{"startOffset":49053,"endOffset":49388,"count":0}],"isBlockCoverage":false},{"functionName":"ht","ranges":[{"startOffset":49415,"endOffset":49769,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":49792,"endOffset":49819,"count":1}],"isBlockCoverage":true},{"functionName":"ar","ranges":[{"startOffset":49819,"endOffset":50096,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":50096,"endOffset":50135,"count":0}],"isBlockCoverage":false},{"functionName":"ft","ranges":[{"startOffset":50136,"endOffset":50236,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50265,"endOffset":50408,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50439,"endOffset":50593,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50772,"endOffset":50785,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50899,"endOffset":51227,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":51249,"endOffset":51319,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":51347,"endOffset":51890,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":51913,"endOffset":52184,"count":0}],"isBlockCoverage":false}]},{"scriptId":"136","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/esbuild/lib/main.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":97186,"count":1},{"startOffset":5563,"endOffset":5894,"count":0},{"startOffset":5942,"endOffset":6270,"count":0},{"startOffset":82218,"endOffset":82229,"count":0},{"startOffset":82358,"endOffset":82372,"count":0},{"startOffset":82390,"endOffset":82404,"count":0},{"startOffset":82409,"endOffset":82443,"count":0},{"startOffset":82513,"endOffset":82521,"count":0},{"startOffset":82568,"endOffset":82587,"count":0},{"startOffset":96853,"endOffset":96884,"count":0},{"startOffset":96982,"endOffset":97184,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":300,"endOffset":411,"count":1},{"startOffset":347,"endOffset":409,"count":13}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":431,"endOffset":777,"count":1},{"startOffset":500,"endOffset":529,"count":0},{"startOffset":584,"endOffset":758,"count":13}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":669,"endOffset":684,"count":60}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":793,"endOffset":1302,"count":0}],"isBlockCoverage":false},{"functionName":"__toCommonJS","ranges":[{"startOffset":1323,"endOffset":1394,"count":1}],"isBlockCoverage":true},{"functionName":"analyzeMetafile","ranges":[{"startOffset":1483,"endOffset":1504,"count":1}],"isBlockCoverage":true},{"functionName":"analyzeMetafileSync","ranges":[{"startOffset":1529,"endOffset":1554,"count":1}],"isBlockCoverage":true},{"functionName":"build","ranges":[{"startOffset":1565,"endOffset":1576,"count":1}],"isBlockCoverage":true},{"functionName":"buildSync","ranges":[{"startOffset":1591,"endOffset":1606,"count":1}],"isBlockCoverage":true},{"functionName":"context","ranges":[{"startOffset":1619,"endOffset":1632,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1645,"endOffset":1663,"count":0}],"isBlockCoverage":false},{"functionName":"formatMessages","ranges":[{"startOffset":1683,"endOffset":1703,"count":1}],"isBlockCoverage":true},{"functionName":"formatMessagesSync","ranges":[{"startOffset":1727,"endOffset":1751,"count":1}],"isBlockCoverage":true},{"functionName":"initialize","ranges":[{"startOffset":1767,"endOffset":1783,"count":1}],"isBlockCoverage":true},{"functionName":"stop","ranges":[{"startOffset":1793,"endOffset":1803,"count":1}],"isBlockCoverage":true},{"functionName":"transform","ranges":[{"startOffset":1818,"endOffset":1833,"count":1}],"isBlockCoverage":true},{"functionName":"transformSync","ranges":[{"startOffset":1852,"endOffset":1871,"count":1}],"isBlockCoverage":true},{"functionName":"version","ranges":[{"startOffset":1884,"endOffset":1897,"count":49}],"isBlockCoverage":true},{"functionName":"encodePacket","ranges":[{"startOffset":1980,"endOffset":3020,"count":0}],"isBlockCoverage":false},{"functionName":"decodePacket","ranges":[{"startOffset":3021,"endOffset":4018,"count":0}],"isBlockCoverage":false},{"functionName":"ByteBuffer","ranges":[{"startOffset":4046,"endOffset":4147,"count":0}],"isBlockCoverage":false},{"functionName":"_write","ranges":[{"startOffset":4150,"endOffset":4382,"count":0}],"isBlockCoverage":false},{"functionName":"write8","ranges":[{"startOffset":4385,"endOffset":4467,"count":0}],"isBlockCoverage":false},{"functionName":"write32","ranges":[{"startOffset":4470,"endOffset":4567,"count":0}],"isBlockCoverage":false},{"functionName":"write","ranges":[{"startOffset":4570,"endOffset":4724,"count":0}],"isBlockCoverage":false},{"functionName":"_read","ranges":[{"startOffset":4727,"endOffset":4890,"count":0}],"isBlockCoverage":false},{"functionName":"read8","ranges":[{"startOffset":4893,"endOffset":4942,"count":0}],"isBlockCoverage":false},{"functionName":"read32","ranges":[{"startOffset":4945,"endOffset":5009,"count":0}],"isBlockCoverage":false},{"functionName":"read","ranges":[{"startOffset":5012,"endOffset":5207,"count":0}],"isBlockCoverage":false},{"functionName":"encodeUTF8","ranges":[{"startOffset":5429,"endOffset":5459,"count":1}],"isBlockCoverage":true},{"functionName":"decodeUTF8","ranges":[{"startOffset":5476,"endOffset":5508,"count":0}],"isBlockCoverage":false},{"functionName":"encodeUTF8","ranges":[{"startOffset":5621,"endOffset":5648,"count":0}],"isBlockCoverage":false},{"functionName":"decodeUTF8","ranges":[{"startOffset":5665,"endOffset":5800,"count":0}],"isBlockCoverage":false},{"functionName":"readUInt32LE","ranges":[{"startOffset":6271,"endOffset":6421,"count":0}],"isBlockCoverage":false},{"functionName":"writeUInt32LE","ranges":[{"startOffset":6422,"endOffset":6600,"count":0}],"isBlockCoverage":false},{"functionName":"throwSyntaxError","ranges":[{"startOffset":6682,"endOffset":7296,"count":0}],"isBlockCoverage":false},{"functionName":"JSON_parse","ranges":[{"startOffset":7297,"endOffset":14928,"count":0}],"isBlockCoverage":false},{"functionName":"validateAndJoinStringArray","ranges":[{"startOffset":15061,"endOffset":15339,"count":0}],"isBlockCoverage":false},{"functionName":"canBeAnything","ranges":[{"startOffset":15360,"endOffset":15370,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeBoolean","ranges":[{"startOffset":15392,"endOffset":15450,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeString","ranges":[{"startOffset":15471,"endOffset":15527,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeRegExp","ranges":[{"startOffset":15548,"endOffset":15609,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeInteger","ranges":[{"startOffset":15631,"endOffset":15714,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeValidPortNumber","ranges":[{"startOffset":15744,"endOffset":15868,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeFunction","ranges":[{"startOffset":15891,"endOffset":15951,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeArray","ranges":[{"startOffset":15971,"endOffset":16022,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeArrayOfStrings","ranges":[{"startOffset":16051,"endOffset":16158,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeObject","ranges":[{"startOffset":16179,"endOffset":16279,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeEntryPoints","ranges":[{"startOffset":16305,"endOffset":16392,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeWebAssemblyModule","ranges":[{"startOffset":16424,"endOffset":16502,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeObjectOrNull","ranges":[{"startOffset":16529,"endOffset":16619,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeStringOrBoolean","ranges":[{"startOffset":16649,"endOffset":16748,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeStringOrObject","ranges":[{"startOffset":16777,"endOffset":16918,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeStringOrArrayOfStrings","ranges":[{"startOffset":16955,"endOffset":17103,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeStringOrUint8Array","ranges":[{"startOffset":17136,"endOffset":17239,"count":0}],"isBlockCoverage":false},{"functionName":"mustBeStringOrURL","ranges":[{"startOffset":17265,"endOffset":17354,"count":0}],"isBlockCoverage":false},{"functionName":"getFlag","ranges":[{"startOffset":17356,"endOffset":17619,"count":0}],"isBlockCoverage":false},{"functionName":"checkForInvalidFlags","ranges":[{"startOffset":17620,"endOffset":17803,"count":0}],"isBlockCoverage":false},{"functionName":"validateInitializeOptions","ranges":[{"startOffset":17804,"endOffset":18236,"count":0}],"isBlockCoverage":false},{"functionName":"validateMangleCache","ranges":[{"startOffset":18237,"endOffset":18700,"count":0}],"isBlockCoverage":false},{"functionName":"pushLogFlags","ranges":[{"startOffset":18701,"endOffset":19179,"count":0}],"isBlockCoverage":false},{"functionName":"validateStringValue","ranges":[{"startOffset":19180,"endOffset":19421,"count":0}],"isBlockCoverage":false},{"functionName":"pushCommonFlags","ranges":[{"startOffset":19422,"endOffset":24829,"count":0}],"isBlockCoverage":false},{"functionName":"flagsForBuildOptions","ranges":[{"startOffset":24830,"endOffset":32243,"count":0}],"isBlockCoverage":false},{"functionName":"flagsForTransformOptions","ranges":[{"startOffset":32244,"endOffset":33344,"count":0}],"isBlockCoverage":false},{"functionName":"createChannel","ranges":[{"startOffset":33345,"endOffset":42770,"count":0}],"isBlockCoverage":false},{"functionName":"buildOrContextImpl","ranges":[{"startOffset":42771,"endOffset":52146,"count":0}],"isBlockCoverage":false},{"functionName":"handlePlugins","ranges":[{"startOffset":52167,"endOffset":66548,"count":0}],"isBlockCoverage":false},{"functionName":"createObjectStash","ranges":[{"startOffset":66550,"endOffset":66879,"count":0}],"isBlockCoverage":false},{"functionName":"extractCallerV8","ranges":[{"startOffset":66880,"endOffset":67292,"count":0}],"isBlockCoverage":false},{"functionName":"extractErrorMessageV8","ranges":[{"startOffset":67293,"endOffset":67695,"count":0}],"isBlockCoverage":false},{"functionName":"parseStackLinesV8","ranges":[{"startOffset":67696,"endOffset":69192,"count":0}],"isBlockCoverage":false},{"functionName":"failureErrorWithLog","ranges":[{"startOffset":69193,"endOffset":70092,"count":0}],"isBlockCoverage":false},{"functionName":"replaceDetailsInMessages","ranges":[{"startOffset":70093,"endOffset":70255,"count":0}],"isBlockCoverage":false},{"functionName":"sanitizeLocation","ranges":[{"startOffset":70256,"endOffset":71413,"count":0}],"isBlockCoverage":false},{"functionName":"sanitizeMessages","ranges":[{"startOffset":71414,"endOffset":72876,"count":0}],"isBlockCoverage":false},{"functionName":"sanitizeStringArray","ranges":[{"startOffset":72877,"endOffset":73127,"count":0}],"isBlockCoverage":false},{"functionName":"sanitizeStringMap","ranges":[{"startOffset":73128,"endOffset":73447,"count":0}],"isBlockCoverage":false},{"functionName":"convertOutputFiles","ranges":[{"startOffset":73448,"endOffset":73786,"count":0}],"isBlockCoverage":false},{"functionName":"jsRegExpToGoRegExp","ranges":[{"startOffset":73787,"endOffset":73933,"count":0}],"isBlockCoverage":false},{"functionName":"parseJSON","ranges":[{"startOffset":73934,"endOffset":74086,"count":0}],"isBlockCoverage":false},{"functionName":"isValidBinaryPath","ranges":[{"startOffset":74298,"endOffset":74336,"count":0}],"isBlockCoverage":false},{"functionName":"pkgAndSubpathForCurrentPlatform","ranges":[{"startOffset":75700,"endOffset":76396,"count":0}],"isBlockCoverage":false},{"functionName":"pkgForSomeOtherPlatform","ranges":[{"startOffset":76397,"endOffset":77098,"count":0}],"isBlockCoverage":false},{"functionName":"downloadedBinPath","ranges":[{"startOffset":77099,"endOffset":77309,"count":0}],"isBlockCoverage":false},{"functionName":"generateBinPath","ranges":[{"startOffset":77310,"endOffset":81884,"count":0}],"isBlockCoverage":false},{"functionName":"esbuildCommandAndArgs","ranges":[{"startOffset":82631,"endOffset":83700,"count":0}],"isBlockCoverage":false},{"functionName":"isTTY","ranges":[{"startOffset":83714,"endOffset":83733,"count":0}],"isBlockCoverage":false},{"functionName":"readFile","ranges":[{"startOffset":83752,"endOffset":84008,"count":0}],"isBlockCoverage":false},{"functionName":"writeFile","ranges":[{"startOffset":84012,"endOffset":84209,"count":0}],"isBlockCoverage":false},{"functionName":"readFile","ranges":[{"startOffset":84231,"endOffset":84536,"count":0}],"isBlockCoverage":false},{"functionName":"writeFile","ranges":[{"startOffset":84540,"endOffset":84768,"count":0}],"isBlockCoverage":false},{"functionName":"build","ranges":[{"startOffset":84808,"endOffset":84860,"count":0}],"isBlockCoverage":false},{"functionName":"context","ranges":[{"startOffset":84876,"endOffset":84940,"count":0}],"isBlockCoverage":false},{"functionName":"transform","ranges":[{"startOffset":84958,"endOffset":85028,"count":0}],"isBlockCoverage":false},{"functionName":"formatMessages","ranges":[{"startOffset":85051,"endOffset":85132,"count":0}],"isBlockCoverage":false},{"functionName":"analyzeMetafile","ranges":[{"startOffset":85156,"endOffset":85238,"count":0}],"isBlockCoverage":false},{"functionName":"buildSync","ranges":[{"startOffset":85256,"endOffset":85738,"count":0}],"isBlockCoverage":false},{"functionName":"transformSync","ranges":[{"startOffset":85760,"endOffset":86286,"count":0}],"isBlockCoverage":false},{"functionName":"formatMessagesSync","ranges":[{"startOffset":86313,"endOffset":86812,"count":0}],"isBlockCoverage":false},{"functionName":"analyzeMetafileSync","ranges":[{"startOffset":86840,"endOffset":87410,"count":0}],"isBlockCoverage":false},{"functionName":"stop","ranges":[{"startOffset":87423,"endOffset":87549,"count":0}],"isBlockCoverage":false},{"functionName":"initialize","ranges":[{"startOffset":87601,"endOffset":88118,"count":0}],"isBlockCoverage":false},{"functionName":"ensureServiceIsRunning","ranges":[{"startOffset":88219,"endOffset":90880,"count":0}],"isBlockCoverage":false},{"functionName":"runServiceSync","ranges":[{"startOffset":90903,"endOffset":91806,"count":0}],"isBlockCoverage":false},{"functionName":"randomFileName","ranges":[{"startOffset":91829,"endOffset":91926,"count":0}],"isBlockCoverage":false},{"functionName":"startWorkerThreadService","ranges":[{"startOffset":91991,"endOffset":94836,"count":0}],"isBlockCoverage":false},{"functionName":"startSyncServiceWorker","ranges":[{"startOffset":94867,"endOffset":96823,"count":0}],"isBlockCoverage":false}]},{"scriptId":"137","url":"node:crypto","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8687,"count":1}],"isBlockCoverage":false},{"functionName":"lazyWebCrypto","ranges":[{"startOffset":3215,"endOffset":3317,"count":2}],"isBlockCoverage":true},{"functionName":"lazyOwnsProcessState","ranges":[{"startOffset":3341,"endOffset":3471,"count":0}],"isBlockCoverage":false},{"functionName":"createHash","ranges":[{"startOffset":3613,"endOffset":3695,"count":48}],"isBlockCoverage":true},{"functionName":"createCipheriv","ranges":[{"startOffset":3697,"endOffset":3799,"count":0}],"isBlockCoverage":false},{"functionName":"createDecipheriv","ranges":[{"startOffset":3801,"endOffset":3907,"count":0}],"isBlockCoverage":false},{"functionName":"createDiffieHellman","ranges":[{"startOffset":3909,"endOffset":4065,"count":0}],"isBlockCoverage":false},{"functionName":"createDiffieHellmanGroup","ranges":[{"startOffset":4067,"endOffset":4149,"count":0}],"isBlockCoverage":false},{"functionName":"createECDH","ranges":[{"startOffset":4151,"endOffset":4207,"count":0}],"isBlockCoverage":false},{"functionName":"createHmac","ranges":[{"startOffset":4209,"endOffset":4291,"count":0}],"isBlockCoverage":false},{"functionName":"createSign","ranges":[{"startOffset":4293,"endOffset":4375,"count":0}],"isBlockCoverage":false},{"functionName":"createVerify","ranges":[{"startOffset":4377,"endOffset":4463,"count":0}],"isBlockCoverage":false},{"functionName":"getFips","ranges":[{"startOffset":5686,"endOffset":5771,"count":0}],"isBlockCoverage":false},{"functionName":"setFips","ranges":[{"startOffset":5773,"endOffset":6057,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":6059,"endOffset":6150,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6228,"endOffset":6482,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":6486,"endOffset":6675,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomBytesAlias","ranges":[{"startOffset":6724,"endOffset":7557,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":6822,"endOffset":7312,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":7318,"endOffset":7549,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8060,"endOffset":8100,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":8212,"endOffset":8259,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":8385,"endOffset":8406,"count":1}],"isBlockCoverage":true}]},{"scriptId":"138","url":"node:internal/crypto/random","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":16357,"count":1}],"isBlockCoverage":false},{"functionName":"assertOffset","ranges":[{"startOffset":1310,"endOffset":1676,"count":0}],"isBlockCoverage":false},{"functionName":"assertSize","ranges":[{"startOffset":1678,"endOffset":2139,"count":0}],"isBlockCoverage":false},{"functionName":"randomBytes","ranges":[{"startOffset":2141,"endOffset":2730,"count":0}],"isBlockCoverage":false},{"functionName":"randomFillSync","ranges":[{"startOffset":2732,"endOffset":3400,"count":0}],"isBlockCoverage":false},{"functionName":"randomFill","ranges":[{"startOffset":3402,"endOffset":4448,"count":0}],"isBlockCoverage":false},{"functionName":"randomInt","ranges":[{"startOffset":4998,"endOffset":7238,"count":0}],"isBlockCoverage":false},{"functionName":"asyncRefillRandomIntCache","ranges":[{"startOffset":7240,"endOffset":8116,"count":0}],"isBlockCoverage":false},{"functionName":"onJobDone","ranges":[{"startOffset":8119,"endOffset":8281,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":8513,"endOffset":9159,"count":0}],"isBlockCoverage":false},{"functionName":"getHexBytes","ranges":[{"startOffset":9524,"endOffset":9823,"count":0}],"isBlockCoverage":false},{"functionName":"serializeUUID","ranges":[{"startOffset":9825,"endOffset":10551,"count":0}],"isBlockCoverage":false},{"functionName":"getBufferedUUID","ranges":[{"startOffset":10553,"endOffset":10856,"count":0}],"isBlockCoverage":false},{"functionName":"getUnbufferedUUID","ranges":[{"startOffset":10858,"endOffset":11096,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":11098,"endOffset":11418,"count":0}],"isBlockCoverage":false},{"functionName":"createRandomPrimeJob","ranges":[{"startOffset":11420,"endOffset":12653,"count":0}],"isBlockCoverage":false},{"functionName":"generatePrime","ranges":[{"startOffset":12655,"endOffset":13111,"count":0}],"isBlockCoverage":false},{"functionName":"generatePrimeSync","ranges":[{"startOffset":13113,"endOffset":13371,"count":0}],"isBlockCoverage":false},{"functionName":"numberToHexCharCode","ranges":[{"startOffset":13629,"endOffset":13673,"count":0}],"isBlockCoverage":false},{"functionName":"arrayBufferToUnsignedBigInt","ranges":[{"startOffset":13749,"endOffset":14176,"count":0}],"isBlockCoverage":false},{"functionName":"unsignedBigIntToBuffer","ranges":[{"startOffset":14178,"endOffset":14475,"count":0}],"isBlockCoverage":false},{"functionName":"checkPrime","ranges":[{"startOffset":14477,"endOffset":15370,"count":0}],"isBlockCoverage":false},{"functionName":"checkPrimeSync","ranges":[{"startOffset":15372,"endOffset":16170,"count":0}],"isBlockCoverage":false}]},{"scriptId":"139","url":"node:internal/crypto/argon2","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6579,"count":1}],"isBlockCoverage":false},{"functionName":"argon2","ranges":[{"startOffset":1213,"endOffset":1866,"count":0}],"isBlockCoverage":false},{"functionName":"argon2Sync","ranges":[{"startOffset":2336,"endOffset":2815,"count":0}],"isBlockCoverage":false},{"functionName":"check","ranges":[{"startOffset":3285,"endOffset":5305,"count":0}],"isBlockCoverage":false},{"functionName":"validateArgon2DeriveBitsLength","ranges":[{"startOffset":5348,"endOffset":5720,"count":0}],"isBlockCoverage":false},{"functionName":"argon2DeriveBits","ranges":[{"startOffset":5722,"endOffset":6477,"count":0}],"isBlockCoverage":false}]},{"scriptId":"140","url":"node:internal/crypto/util","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":21852,"count":1}],"isBlockCoverage":false},{"functionName":"toBuf","ranges":[{"startOffset":2142,"endOffset":2321,"count":0}],"isBlockCoverage":false},{"functionName":"getHashCache","ranges":[{"startOffset":2339,"endOffset":2608,"count":96},{"startOffset":2397,"endOffset":2585,"count":1},{"startOffset":2466,"endOffset":2581,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2540,"endOffset":2573,"count":0}],"isBlockCoverage":false},{"functionName":"getCachedHashId","ranges":[{"startOffset":2610,"endOffset":2738,"count":48},{"startOffset":2722,"endOffset":2726,"count":1},{"startOffset":2727,"endOffset":2735,"count":47}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2772,"endOffset":2815,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2849,"endOffset":2891,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2925,"endOffset":2967,"count":0}],"isBlockCoverage":false},{"functionName":"setEngine","ranges":[{"startOffset":2971,"endOffset":3378,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3425,"endOffset":3910,"count":0}],"isBlockCoverage":false},{"functionName":"createSupportedAlgorithms","ranges":[{"startOffset":11006,"endOffset":11994,"count":1},{"startOffset":11162,"endOffset":11974,"count":38},{"startOffset":11300,"endOffset":11348,"count":21},{"startOffset":11350,"endOffset":11373,"count":0},{"startOffset":11446,"endOffset":11970,"count":150},{"startOffset":11617,"endOffset":11900,"count":77},{"startOffset":11900,"endOffset":11964,"count":73}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":11694,"endOffset":11824,"count":0}],"isBlockCoverage":false},{"functionName":"validateMaxBufferLength","ranges":[{"startOffset":13225,"endOffset":13438,"count":0}],"isBlockCoverage":false},{"functionName":"normalizeAlgorithm","ranges":[{"startOffset":13664,"endOffset":16099,"count":0}],"isBlockCoverage":false},{"functionName":"getDataViewOrTypedArrayBuffer","ranges":[{"startOffset":16101,"endOffset":16240,"count":0}],"isBlockCoverage":false},{"functionName":"getDataViewOrTypedArrayByteOffset","ranges":[{"startOffset":16242,"endOffset":16393,"count":0}],"isBlockCoverage":false},{"functionName":"getDataViewOrTypedArrayByteLength","ranges":[{"startOffset":16395,"endOffset":16546,"count":0}],"isBlockCoverage":false},{"functionName":"hasAnyNotIn","ranges":[{"startOffset":16548,"endOffset":16687,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":16732,"endOffset":17022,"count":0}],"isBlockCoverage":false},{"functionName":"onDone","ranges":[{"startOffset":17026,"endOffset":17258,"count":0}],"isBlockCoverage":false},{"functionName":"jobPromise","ranges":[{"startOffset":17260,"endOffset":17530,"count":0}],"isBlockCoverage":false},{"functionName":"bigIntArrayToUnsignedInt","ranges":[{"startOffset":18066,"endOffset":18346,"count":0}],"isBlockCoverage":false},{"functionName":"bigIntArrayToUnsignedBigInt","ranges":[{"startOffset":18348,"endOffset":18584,"count":0}],"isBlockCoverage":false},{"functionName":"getStringOption","ranges":[{"startOffset":18586,"endOffset":18751,"count":0}],"isBlockCoverage":false},{"functionName":"getUsagesUnion","ranges":[{"startOffset":18753,"endOffset":18965,"count":0}],"isBlockCoverage":false},{"functionName":"getBlockSize","ranges":[{"startOffset":18967,"endOffset":19501,"count":0}],"isBlockCoverage":false},{"functionName":"getDigestSizeInBytes","ranges":[{"startOffset":19503,"endOffset":19821,"count":0}],"isBlockCoverage":false},{"functionName":"validateKeyOps","ranges":[{"startOffset":19960,"endOffset":20926,"count":0}],"isBlockCoverage":false},{"functionName":"secureHeapUsed","ranges":[{"startOffset":20928,"endOffset":21311,"count":0}],"isBlockCoverage":false}]},{"scriptId":"141","url":"node:internal/crypto/hashnames","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2814,"count":1}],"isBlockCoverage":false},{"functionName":"normalizeHashName","ranges":[{"startOffset":2324,"endOffset":2426,"count":0}],"isBlockCoverage":false}]},{"scriptId":"142","url":"node:internal/crypto/pbkdf2","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3046,"count":1}],"isBlockCoverage":false},{"functionName":"pbkdf2","ranges":[{"startOffset":519,"endOffset":1183,"count":0}],"isBlockCoverage":false},{"functionName":"pbkdf2Sync","ranges":[{"startOffset":1185,"endOffset":1590,"count":0}],"isBlockCoverage":false},{"functionName":"check","ranges":[{"startOffset":1592,"endOffset":2063,"count":0}],"isBlockCoverage":false},{"functionName":"validatePbkdf2DeriveBitsLength","ranges":[{"startOffset":2106,"endOffset":2369,"count":0}],"isBlockCoverage":false},{"functionName":"pbkdf2DeriveBits","ranges":[{"startOffset":2371,"endOffset":2944,"count":0}],"isBlockCoverage":false}]},{"scriptId":"143","url":"node:internal/crypto/scrypt","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3352,"count":1}],"isBlockCoverage":false},{"functionName":"scrypt","ranges":[{"startOffset":619,"endOffset":1285,"count":0}],"isBlockCoverage":false},{"functionName":"scryptSync","ranges":[{"startOffset":1287,"endOffset":1693,"count":0}],"isBlockCoverage":false},{"functionName":"check","ranges":[{"startOffset":1695,"endOffset":3304,"count":0}],"isBlockCoverage":false}]},{"scriptId":"144","url":"node:internal/crypto/hkdf","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3499,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":831,"endOffset":1382,"count":0}],"isBlockCoverage":false},{"functionName":"prepareKey","ranges":[{"startOffset":1386,"endOffset":1814,"count":0}],"isBlockCoverage":false},{"functionName":"hkdf","ranges":[{"startOffset":1816,"endOffset":2282,"count":0}],"isBlockCoverage":false},{"functionName":"hkdfSync","ranges":[{"startOffset":2284,"endOffset":2622,"count":0}],"isBlockCoverage":false},{"functionName":"validateHkdfDeriveBitsLength","ranges":[{"startOffset":2661,"endOffset":2921,"count":0}],"isBlockCoverage":false},{"functionName":"hkdfDeriveBits","ranges":[{"startOffset":2923,"endOffset":3405,"count":0}],"isBlockCoverage":false}]},{"scriptId":"145","url":"node:internal/crypto/keys","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":28749,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2504,"endOffset":10500,"count":1}],"isBlockCoverage":true},{"functionName":"KeyObject","ranges":[{"startOffset":2614,"endOffset":3156,"count":0}],"isBlockCoverage":false},{"functionName":"get type","ranges":[{"startOffset":3162,"endOffset":3209,"count":0}],"isBlockCoverage":false},{"functionName":"from","ranges":[{"startOffset":3222,"endOffset":3363,"count":0}],"isBlockCoverage":false},{"functionName":"equals","ranges":[{"startOffset":3369,"endOffset":3653,"count":0}],"isBlockCoverage":false},{"functionName":"SecretKeyObject","ranges":[{"startOffset":3886,"endOffset":3944,"count":0}],"isBlockCoverage":false},{"functionName":"get symmetricKeySize","ranges":[{"startOffset":3950,"endOffset":4030,"count":0}],"isBlockCoverage":false},{"functionName":"export","ranges":[{"startOffset":4036,"endOffset":4384,"count":0}],"isBlockCoverage":false},{"functionName":"toCryptoKey","ranges":[{"startOffset":4390,"endOffset":6329,"count":0}],"isBlockCoverage":false},{"functionName":"normalizeKeyDetails","ranges":[{"startOffset":6462,"endOffset":6731,"count":0}],"isBlockCoverage":false},{"functionName":"get asymmetricKeyType","ranges":[{"startOffset":6785,"endOffset":6896,"count":0}],"isBlockCoverage":false},{"functionName":"get asymmetricKeyDetails","ranges":[{"startOffset":6902,"endOffset":7229,"count":0}],"isBlockCoverage":false},{"functionName":"toCryptoKey","ranges":[{"startOffset":7235,"endOffset":9356,"count":0}],"isBlockCoverage":false},{"functionName":"PublicKeyObject","ranges":[{"startOffset":9420,"endOffset":9478,"count":0}],"isBlockCoverage":false},{"functionName":"export","ranges":[{"startOffset":9484,"endOffset":9775,"count":0}],"isBlockCoverage":false},{"functionName":"PrivateKeyObject","ranges":[{"startOffset":9840,"endOffset":9899,"count":0}],"isBlockCoverage":false},{"functionName":"export","ranges":[{"startOffset":9905,"endOffset":10419,"count":0}],"isBlockCoverage":false},{"functionName":"parseKeyFormat","ranges":[{"startOffset":10504,"endOffset":10889,"count":0}],"isBlockCoverage":false},{"functionName":"parseKeyType","ranges":[{"startOffset":10891,"endOffset":11743,"count":0}],"isBlockCoverage":false},{"functionName":"option","ranges":[{"startOffset":11745,"endOffset":11866,"count":0}],"isBlockCoverage":false},{"functionName":"parseKeyFormatAndType","ranges":[{"startOffset":11868,"endOffset":12568,"count":0}],"isBlockCoverage":false},{"functionName":"isStringOrBuffer","ranges":[{"startOffset":12570,"endOffset":12707,"count":0}],"isBlockCoverage":false},{"functionName":"parseKeyEncoding","ranges":[{"startOffset":12709,"endOffset":14067,"count":0}],"isBlockCoverage":false},{"functionName":"parsePublicKeyEncoding","ranges":[{"startOffset":14266,"endOffset":14402,"count":0}],"isBlockCoverage":false},{"functionName":"parsePrivateKeyEncoding","ranges":[{"startOffset":14602,"endOffset":14718,"count":0}],"isBlockCoverage":false},{"functionName":"getKeyObjectHandle","ranges":[{"startOffset":14720,"endOffset":15298,"count":0}],"isBlockCoverage":false},{"functionName":"getKeyTypes","ranges":[{"startOffset":15300,"endOffset":15805,"count":0}],"isBlockCoverage":false},{"functionName":"mlDsaPubLen","ranges":[{"startOffset":15807,"endOffset":15962,"count":0}],"isBlockCoverage":false},{"functionName":"getKeyObjectHandleFromJwk","ranges":[{"startOffset":15964,"endOffset":19450,"count":0}],"isBlockCoverage":false},{"functionName":"prepareAsymmetricKey","ranges":[{"startOffset":19452,"endOffset":20995,"count":0}],"isBlockCoverage":false},{"functionName":"preparePrivateKey","ranges":[{"startOffset":20997,"endOffset":21085,"count":0}],"isBlockCoverage":false},{"functionName":"preparePublicOrPrivateKey","ranges":[{"startOffset":21087,"endOffset":21182,"count":0}],"isBlockCoverage":false},{"functionName":"prepareSecretKey","ranges":[{"startOffset":21184,"endOffset":21892,"count":0}],"isBlockCoverage":false},{"functionName":"createSecretKey","ranges":[{"startOffset":21894,"endOffset":22098,"count":0}],"isBlockCoverage":false},{"functionName":"createPublicKey","ranges":[{"startOffset":22100,"endOffset":22437,"count":0}],"isBlockCoverage":false},{"functionName":"createPrivateKey","ranges":[{"startOffset":22439,"endOffset":22780,"count":0}],"isBlockCoverage":false},{"functionName":"isKeyObject","ranges":[{"startOffset":22782,"endOffset":22897,"count":0}],"isBlockCoverage":false},{"functionName":"CryptoKey","ranges":[{"startOffset":23320,"endOffset":23380,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":23384,"endOffset":23747,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":23751,"endOffset":23807,"count":0}],"isBlockCoverage":false},{"functionName":"get type","ranges":[{"startOffset":23811,"endOffset":23939,"count":0}],"isBlockCoverage":false},{"functionName":"get extractable","ranges":[{"startOffset":23943,"endOffset":24082,"count":0}],"isBlockCoverage":false},{"functionName":"get algorithm","ranges":[{"startOffset":24086,"endOffset":24503,"count":0}],"isBlockCoverage":false},{"functionName":"get usages","ranges":[{"startOffset":24507,"endOffset":24705,"count":0}],"isBlockCoverage":false},{"functionName":"defineCryptoKeyProperties","ranges":[{"startOffset":25158,"endOffset":26061,"count":0}],"isBlockCoverage":false},{"functionName":"InternalCryptoKey","ranges":[{"startOffset":26357,"endOffset":26723,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":26727,"endOffset":27088,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":27092,"endOffset":27239,"count":0}],"isBlockCoverage":false},{"functionName":"isCryptoKey","ranges":[{"startOffset":27368,"endOffset":27452,"count":0}],"isBlockCoverage":false},{"functionName":"importGenericSecretKey","ranges":[{"startOffset":27454,"endOffset":28216,"count":0}],"isBlockCoverage":false}]},{"scriptId":"146","url":"node:internal/crypto/keygen","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11789,"count":1}],"isBlockCoverage":false},{"functionName":"isJwk","ranges":[{"startOffset":1621,"endOffset":1691,"count":0}],"isBlockCoverage":false},{"functionName":"wrapKey","ranges":[{"startOffset":1693,"endOffset":1847,"count":0}],"isBlockCoverage":false},{"functionName":"generateKeyPair","ranges":[{"startOffset":1849,"endOffset":2485,"count":0}],"isBlockCoverage":false},{"functionName":"generateKeyPairSync","ranges":[{"startOffset":2631,"endOffset":2748,"count":0}],"isBlockCoverage":false},{"functionName":"handleError","ranges":[{"startOffset":2750,"endOffset":3128,"count":0}],"isBlockCoverage":false},{"functionName":"parseKeyEncoding","ranges":[{"startOffset":3130,"endOffset":4380,"count":0}],"isBlockCoverage":false},{"functionName":"createJob","ranges":[{"startOffset":5366,"endOffset":10308,"count":0}],"isBlockCoverage":false},{"functionName":"generateKeyJob","ranges":[{"startOffset":10339,"endOffset":10877,"count":0}],"isBlockCoverage":false},{"functionName":"handleGenerateKeyError","ranges":[{"startOffset":10879,"endOffset":11081,"count":0}],"isBlockCoverage":false},{"functionName":"generateKey","ranges":[{"startOffset":11083,"endOffset":11553,"count":0}],"isBlockCoverage":false},{"functionName":"generateKeySync","ranges":[{"startOffset":11555,"endOffset":11689,"count":0}],"isBlockCoverage":false}]},{"scriptId":"147","url":"node:internal/crypto/diffiehellman","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":10393,"count":1}],"isBlockCoverage":false},{"functionName":"DiffieHellman","ranges":[{"startOffset":1365,"endOffset":3169,"count":0}],"isBlockCoverage":false},{"functionName":"DiffieHellmanGroup","ranges":[{"startOffset":3172,"endOffset":3498,"count":0}],"isBlockCoverage":false},{"functionName":"dhGenerateKeys","ranges":[{"startOffset":3609,"endOffset":3724,"count":0}],"isBlockCoverage":false},{"functionName":"dhComputeSecret","ranges":[{"startOffset":3838,"endOffset":4096,"count":0}],"isBlockCoverage":false},{"functionName":"dhGetPrime","ranges":[{"startOffset":4195,"endOffset":4304,"count":0}],"isBlockCoverage":false},{"functionName":"dhGetGenerator","ranges":[{"startOffset":4415,"endOffset":4540,"count":0}],"isBlockCoverage":false},{"functionName":"dhGetPublicKey","ranges":[{"startOffset":4651,"endOffset":4764,"count":0}],"isBlockCoverage":false},{"functionName":"dhGetPrivateKey","ranges":[{"startOffset":4878,"endOffset":4993,"count":0}],"isBlockCoverage":false},{"functionName":"setPublicKey","ranges":[{"startOffset":5035,"endOffset":5177,"count":0}],"isBlockCoverage":false},{"functionName":"setPrivateKey","ranges":[{"startOffset":5221,"endOffset":5365,"count":0}],"isBlockCoverage":false},{"functionName":"ECDH","ranges":[{"startOffset":5369,"endOffset":5523,"count":0}],"isBlockCoverage":false},{"functionName":"generateKeys","ranges":[{"startOffset":5834,"endOffset":5956,"count":0}],"isBlockCoverage":false},{"functionName":"getPublicKey","ranges":[{"startOffset":5989,"endOffset":6140,"count":0}],"isBlockCoverage":false},{"functionName":"convertKey","ranges":[{"startOffset":6161,"endOffset":6427,"count":0}],"isBlockCoverage":false},{"functionName":"encode","ranges":[{"startOffset":6430,"endOffset":6565,"count":0}],"isBlockCoverage":false},{"functionName":"getFormat","ranges":[{"startOffset":6567,"endOffset":6890,"count":0}],"isBlockCoverage":false},{"functionName":"diffieHellman","ranges":[{"startOffset":6964,"endOffset":8519,"count":0}],"isBlockCoverage":false},{"functionName":"ecdhDeriveBits","ranges":[{"startOffset":8649,"endOffset":10287,"count":0}],"isBlockCoverage":false}]},{"scriptId":"148","url":"node:internal/crypto/cipher","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8577,"count":1}],"isBlockCoverage":false},{"functionName":"rsaFunctionFor","ranges":[{"startOffset":1242,"endOffset":1990,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1310,"endOffset":1987,"count":0}],"isBlockCoverage":false},{"functionName":"getDecoder","ranges":[{"startOffset":2491,"endOffset":2846,"count":0}],"isBlockCoverage":false},{"functionName":"getUIntOption","ranges":[{"startOffset":2848,"endOffset":3082,"count":0}],"isBlockCoverage":false},{"functionName":"createCipherBase","ranges":[{"startOffset":3084,"endOffset":3386,"count":0}],"isBlockCoverage":false},{"functionName":"createCipherWithIV","ranges":[{"startOffset":3388,"endOffset":3736,"count":0}],"isBlockCoverage":false},{"functionName":"_transform","ranges":[{"startOffset":3979,"endOffset":4095,"count":0}],"isBlockCoverage":false},{"functionName":"_flush","ranges":[{"startOffset":4098,"endOffset":4236,"count":0}],"isBlockCoverage":false},{"functionName":"update","ranges":[{"startOffset":4239,"endOffset":4755,"count":0}],"isBlockCoverage":false},{"functionName":"final","ranges":[{"startOffset":4758,"endOffset":5002,"count":0}],"isBlockCoverage":false},{"functionName":"setAutoPadding","ranges":[{"startOffset":5005,"endOffset":5152,"count":0}],"isBlockCoverage":false},{"functionName":"getAuthTag","ranges":[{"startOffset":5155,"endOffset":5315,"count":0}],"isBlockCoverage":false},{"functionName":"setAuthTag","ranges":[{"startOffset":5318,"endOffset":5530,"count":0}],"isBlockCoverage":false},{"functionName":"setAAD","ranges":[{"startOffset":5532,"endOffset":5874,"count":0}],"isBlockCoverage":false},{"functionName":"Cipheriv","ranges":[{"startOffset":6122,"endOffset":6339,"count":0}],"isBlockCoverage":false},{"functionName":"addCipherPrototypeFunctions","ranges":[{"startOffset":6341,"endOffset":6813,"count":2},{"startOffset":6652,"endOffset":6770,"count":1}],"isBlockCoverage":true},{"functionName":"Decipheriv","ranges":[{"startOffset":7217,"endOffset":7441,"count":0}],"isBlockCoverage":false},{"functionName":"getCipherInfo","ranges":[{"startOffset":7603,"endOffset":8440,"count":0}],"isBlockCoverage":false}]},{"scriptId":"149","url":"node:internal/streams/lazy_transform","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1386,"count":1}],"isBlockCoverage":false},{"functionName":"LazyTransform","ranges":[{"startOffset":401,"endOffset":463,"count":48}],"isBlockCoverage":true},{"functionName":"makeGetter","ranges":[{"startOffset":595,"endOffset":769,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":632,"endOffset":766,"count":0}],"isBlockCoverage":false},{"functionName":"makeSetter","ranges":[{"startOffset":771,"endOffset":990,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":808,"endOffset":987,"count":0}],"isBlockCoverage":false}]},{"scriptId":"150","url":"node:internal/crypto/sig","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7664,"count":1}],"isBlockCoverage":false},{"functionName":"Sign","ranges":[{"startOffset":910,"endOffset":1176,"count":0}],"isBlockCoverage":false},{"functionName":"_write","ranges":[{"startOffset":1299,"endOffset":1391,"count":0}],"isBlockCoverage":false},{"functionName":"update","ranges":[{"startOffset":1418,"endOffset":1731,"count":0}],"isBlockCoverage":false},{"functionName":"getPadding","ranges":[{"startOffset":1734,"endOffset":1809,"count":0}],"isBlockCoverage":false},{"functionName":"getSaltLength","ranges":[{"startOffset":1811,"endOffset":2069,"count":0}],"isBlockCoverage":false},{"functionName":"getDSASignatureEncoding","ranges":[{"startOffset":2071,"endOffset":2423,"count":0}],"isBlockCoverage":false},{"functionName":"getContext","ranges":[{"startOffset":2425,"endOffset":2717,"count":0}],"isBlockCoverage":false},{"functionName":"getIntOption","ranges":[{"startOffset":2719,"endOffset":2964,"count":0}],"isBlockCoverage":false},{"functionName":"sign","ranges":[{"startOffset":2988,"endOffset":3604,"count":0}],"isBlockCoverage":false},{"functionName":"signOneShot","ranges":[{"startOffset":3607,"endOffset":4931,"count":0}],"isBlockCoverage":false},{"functionName":"Verify","ranges":[{"startOffset":4933,"endOffset":5207,"count":0}],"isBlockCoverage":false},{"functionName":"verify","ranges":[{"startOffset":5435,"endOffset":6018,"count":0}],"isBlockCoverage":false},{"functionName":"verifyOneShot","ranges":[{"startOffset":6021,"endOffset":7590,"count":0}],"isBlockCoverage":false}]},{"scriptId":"151","url":"node:internal/crypto/hash","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7444,"count":1}],"isBlockCoverage":false},{"functionName":"normalizeAlgorithm","ranges":[{"startOffset":1262,"endOffset":1375,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1571,"endOffset":1759,"count":48},{"startOffset":1634,"endOffset":1754,"count":0}],"isBlockCoverage":true},{"functionName":"Hash","ranges":[{"startOffset":1765,"endOffset":2587,"count":48},{"startOffset":1824,"endOffset":1860,"count":0},{"startOffset":2010,"endOffset":2029,"count":0},{"startOffset":2030,"endOffset":2056,"count":0},{"startOffset":2102,"endOffset":2149,"count":0},{"startOffset":2281,"endOffset":2285,"count":0}],"isBlockCoverage":true},{"functionName":"copy","ranges":[{"startOffset":2718,"endOffset":2886,"count":0}],"isBlockCoverage":false},{"functionName":"_transform","ranges":[{"startOffset":2917,"endOffset":3022,"count":0}],"isBlockCoverage":false},{"functionName":"_flush","ranges":[{"startOffset":3049,"endOffset":3129,"count":0}],"isBlockCoverage":false},{"functionName":"update","ranges":[{"startOffset":3156,"endOffset":3620,"count":48},{"startOffset":3249,"endOffset":3287,"count":0},{"startOffset":3364,"endOffset":3510,"count":0},{"startOffset":3561,"endOffset":3603,"count":0}],"isBlockCoverage":true},{"functionName":"digest","ranges":[{"startOffset":3648,"endOffset":3969,"count":48},{"startOffset":3741,"endOffset":3779,"count":0}],"isBlockCoverage":true},{"functionName":"Hmac","ranges":[{"startOffset":3972,"endOffset":4379,"count":0}],"isBlockCoverage":false},{"functionName":"digest","ranges":[{"startOffset":4560,"endOffset":4992,"count":0}],"isBlockCoverage":false},{"functionName":"asyncDigest","ranges":[{"startOffset":5147,"endOffset":5867,"count":0}],"isBlockCoverage":false},{"functionName":"hash","ranges":[{"startOffset":5869,"endOffset":7381,"count":0}],"isBlockCoverage":false}]},{"scriptId":"152","url":"node:internal/crypto/x509","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11135,"count":1}],"isBlockCoverage":false},{"functionName":"isX509Certificate","ranges":[{"startOffset":1157,"endOffset":1240,"count":0}],"isBlockCoverage":false},{"functionName":"getFlags","ranges":[{"startOffset":1242,"endOffset":2487,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":2523,"endOffset":2555,"count":0}],"isBlockCoverage":false},{"functionName":"InternalX509Certificate","ranges":[{"startOffset":2560,"endOffset":2654,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":2684,"endOffset":2716,"count":0}],"isBlockCoverage":false},{"functionName":"X509Certificate","ranges":[{"startOffset":2721,"endOffset":3071,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3075,"endOffset":3885,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3889,"endOffset":4054,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4058,"endOffset":4118,"count":0}],"isBlockCoverage":false},{"functionName":"get subject","ranges":[{"startOffset":4122,"endOffset":4338,"count":0}],"isBlockCoverage":false},{"functionName":"get subjectAltName","ranges":[{"startOffset":4342,"endOffset":4586,"count":0}],"isBlockCoverage":false},{"functionName":"get issuer","ranges":[{"startOffset":4590,"endOffset":4802,"count":0}],"isBlockCoverage":false},{"functionName":"get issuerCertificate","ranges":[{"startOffset":4806,"endOffset":5155,"count":0}],"isBlockCoverage":false},{"functionName":"get infoAccess","ranges":[{"startOffset":5159,"endOffset":5387,"count":0}],"isBlockCoverage":false},{"functionName":"get validFrom","ranges":[{"startOffset":5391,"endOffset":5615,"count":0}],"isBlockCoverage":false},{"functionName":"get validTo","ranges":[{"startOffset":5619,"endOffset":5835,"count":0}],"isBlockCoverage":false},{"functionName":"get validFromDate","ranges":[{"startOffset":5839,"endOffset":6079,"count":0}],"isBlockCoverage":false},{"functionName":"get validToDate","ranges":[{"startOffset":6083,"endOffset":6315,"count":0}],"isBlockCoverage":false},{"functionName":"get fingerprint","ranges":[{"startOffset":6319,"endOffset":6551,"count":0}],"isBlockCoverage":false},{"functionName":"get fingerprint256","ranges":[{"startOffset":6555,"endOffset":6799,"count":0}],"isBlockCoverage":false},{"functionName":"get fingerprint512","ranges":[{"startOffset":6803,"endOffset":7047,"count":0}],"isBlockCoverage":false},{"functionName":"get keyUsage","ranges":[{"startOffset":7051,"endOffset":7271,"count":0}],"isBlockCoverage":false},{"functionName":"get serialNumber","ranges":[{"startOffset":7275,"endOffset":7511,"count":0}],"isBlockCoverage":false},{"functionName":"get signatureAlgorithm","ranges":[{"startOffset":7515,"endOffset":7775,"count":0}],"isBlockCoverage":false},{"functionName":"get signatureAlgorithmOid","ranges":[{"startOffset":7779,"endOffset":8051,"count":0}],"isBlockCoverage":false},{"functionName":"get raw","ranges":[{"startOffset":8055,"endOffset":8255,"count":0}],"isBlockCoverage":false},{"functionName":"get publicKey","ranges":[{"startOffset":8259,"endOffset":8504,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":8508,"endOffset":8709,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":8834,"endOffset":8870,"count":0}],"isBlockCoverage":false},{"functionName":"get ca","ranges":[{"startOffset":8874,"endOffset":9075,"count":0}],"isBlockCoverage":false},{"functionName":"checkHost","ranges":[{"startOffset":9079,"endOffset":9204,"count":0}],"isBlockCoverage":false},{"functionName":"checkEmail","ranges":[{"startOffset":9208,"endOffset":9339,"count":0}],"isBlockCoverage":false},{"functionName":"checkIP","ranges":[{"startOffset":9343,"endOffset":9833,"count":0}],"isBlockCoverage":false},{"functionName":"checkIssued","ranges":[{"startOffset":9837,"endOffset":10043,"count":0}],"isBlockCoverage":false},{"functionName":"checkPrivateKey","ranges":[{"startOffset":10047,"endOffset":10310,"count":0}],"isBlockCoverage":false},{"functionName":"verify","ranges":[{"startOffset":10314,"endOffset":10558,"count":0}],"isBlockCoverage":false},{"functionName":"toLegacyObject","ranges":[{"startOffset":10562,"endOffset":10887,"count":0}],"isBlockCoverage":false}]},{"scriptId":"153","url":"node:internal/crypto/certificate","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1546,"count":1}],"isBlockCoverage":false},{"functionName":"verifySpkac","ranges":[{"startOffset":385,"endOffset":505,"count":0}],"isBlockCoverage":false},{"functionName":"exportPublicKey","ranges":[{"startOffset":507,"endOffset":635,"count":0}],"isBlockCoverage":false},{"functionName":"exportChallenge","ranges":[{"startOffset":637,"endOffset":765,"count":0}],"isBlockCoverage":false},{"functionName":"Certificate","ranges":[{"startOffset":1122,"endOffset":1216,"count":0}],"isBlockCoverage":false}]},{"scriptId":"154","url":"node:internal/crypto/kem","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2360,"count":1}],"isBlockCoverage":false},{"functionName":"encapsulate","ranges":[{"startOffset":507,"endOffset":1434,"count":0}],"isBlockCoverage":false},{"functionName":"decapsulate","ranges":[{"startOffset":1436,"endOffset":2306,"count":0}],"isBlockCoverage":false}]},{"scriptId":"155","url":"node:internal/crypto/webcrypto","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":52983,"count":1}],"isBlockCoverage":false},{"functionName":"digest","ranges":[{"startOffset":1278,"endOffset":1900,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1902,"endOffset":2012,"count":0}],"isBlockCoverage":false},{"functionName":"generateKey","ranges":[{"startOffset":2014,"endOffset":5549,"count":0}],"isBlockCoverage":false},{"functionName":"deriveBits","ranges":[{"startOffset":5551,"endOffset":7356,"count":0}],"isBlockCoverage":false},{"functionName":"getKeyLength","ranges":[{"startOffset":7358,"endOffset":8264,"count":0}],"isBlockCoverage":false},{"functionName":"deriveKey","ranges":[{"startOffset":8266,"endOffset":10697,"count":0}],"isBlockCoverage":false},{"functionName":"exportKeySpki","ranges":[{"startOffset":10699,"endOffset":11974,"count":0}],"isBlockCoverage":false},{"functionName":"exportKeyPkcs8","ranges":[{"startOffset":11976,"endOffset":13257,"count":0}],"isBlockCoverage":false},{"functionName":"exportKeyRawPublic","ranges":[{"startOffset":13259,"endOffset":14569,"count":0}],"isBlockCoverage":false},{"functionName":"exportKeyRawSeed","ranges":[{"startOffset":14571,"endOffset":15226,"count":0}],"isBlockCoverage":false},{"functionName":"exportKeyRawSecret","ranges":[{"startOffset":15228,"endOffset":15920,"count":0}],"isBlockCoverage":false},{"functionName":"exportKeyJWK","ranges":[{"startOffset":15922,"endOffset":17908,"count":0}],"isBlockCoverage":false},{"functionName":"exportKey","ranges":[{"startOffset":17910,"endOffset":19923,"count":0}],"isBlockCoverage":false},{"functionName":"aliasKeyFormat","ranges":[{"startOffset":19925,"endOffset":20084,"count":0}],"isBlockCoverage":false},{"functionName":"importKeySync","ranges":[{"startOffset":20086,"endOffset":23214,"count":0}],"isBlockCoverage":false},{"functionName":"importKey","ranges":[{"startOffset":23216,"endOffset":24319,"count":0}],"isBlockCoverage":false},{"functionName":"wrapKey","ranges":[{"startOffset":24412,"endOffset":25960,"count":0}],"isBlockCoverage":false},{"functionName":"unwrapKey","ranges":[{"startOffset":26055,"endOffset":28102,"count":0}],"isBlockCoverage":false},{"functionName":"signVerify","ranges":[{"startOffset":28104,"endOffset":29636,"count":0}],"isBlockCoverage":false},{"functionName":"sign","ranges":[{"startOffset":29638,"endOffset":30270,"count":0}],"isBlockCoverage":false},{"functionName":"verify","ranges":[{"startOffset":30272,"endOffset":31035,"count":0}],"isBlockCoverage":false},{"functionName":"cipherOrWrap","ranges":[{"startOffset":31037,"endOffset":32658,"count":0}],"isBlockCoverage":false},{"functionName":"encrypt","ranges":[{"startOffset":32660,"endOffset":33417,"count":0}],"isBlockCoverage":false},{"functionName":"decrypt","ranges":[{"startOffset":33419,"endOffset":34176,"count":0}],"isBlockCoverage":false},{"functionName":"getPublicKey","ranges":[{"startOffset":34272,"endOffset":35155,"count":0}],"isBlockCoverage":false},{"functionName":"encapsulateBits","ranges":[{"startOffset":35157,"endOffset":36597,"count":0}],"isBlockCoverage":false},{"functionName":"encapsulateKey","ranges":[{"startOffset":36599,"endOffset":38866,"count":0}],"isBlockCoverage":false},{"functionName":"decapsulateBits","ranges":[{"startOffset":38868,"endOffset":40439,"count":0}],"isBlockCoverage":false},{"functionName":"decapsulateKey","ranges":[{"startOffset":40441,"endOffset":42706,"count":0}],"isBlockCoverage":false},{"functionName":"SubtleCrypto","ranges":[{"startOffset":42862,"endOffset":42922,"count":0}],"isBlockCoverage":true},{"functionName":"supports","ranges":[{"startOffset":43025,"endOffset":47212,"count":0}],"isBlockCoverage":false},{"functionName":"check","ranges":[{"startOffset":47216,"endOffset":49051,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":49085,"endOffset":49098,"count":1}],"isBlockCoverage":true},{"functionName":"Crypto","ranges":[{"startOffset":49137,"endOffset":49197,"count":0}],"isBlockCoverage":true},{"functionName":"get subtle","ranges":[{"startOffset":49201,"endOffset":49301,"count":1},{"startOffset":49241,"endOffset":49278,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":49336,"endOffset":49349,"count":1}],"isBlockCoverage":true},{"functionName":"getRandomValues","ranges":[{"startOffset":49365,"endOffset":49698,"count":0}],"isBlockCoverage":false}]},{"scriptId":"156","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/client-BQVF1NaW.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":500,"count":1}],"isBlockCoverage":true},{"functionName":"o","ranges":[{"startOffset":34,"endOffset":78,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":157,"endOffset":406,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":173,"endOffset":405,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":224,"endOffset":369,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":384,"endOffset":393,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":455,"endOffset":468,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":469,"endOffset":475,"count":0}],"isBlockCoverage":false}]},{"scriptId":"157","url":"node:net","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":70232,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1684,"endOffset":1709,"count":1}],"isBlockCoverage":true},{"functionName":"noop","ranges":[{"startOffset":4225,"endOffset":4233,"count":0}],"isBlockCoverage":false},{"functionName":"getFlags","ranges":[{"startOffset":4706,"endOffset":4935,"count":0}],"isBlockCoverage":false},{"functionName":"createHandle","ranges":[{"startOffset":4937,"endOffset":5320,"count":2},{"startOffset":5104,"endOffset":5126,"count":0},{"startOffset":5161,"endOffset":5319,"count":0}],"isBlockCoverage":true},{"functionName":"getNewAsyncId","ranges":[{"startOffset":5323,"endOffset":5461,"count":4},{"startOffset":5418,"endOffset":5436,"count":0}],"isBlockCoverage":true},{"functionName":"isPipeName","ranges":[{"startOffset":5464,"endOffset":5547,"count":2}],"isBlockCoverage":true},{"functionName":"createServer","ranges":[{"startOffset":5748,"endOffset":5852,"count":0}],"isBlockCoverage":false},{"functionName":"connect","ranges":[{"startOffset":6075,"endOffset":6366,"count":2},{"startOffset":6281,"endOffset":6326,"count":0}],"isBlockCoverage":true},{"functionName":"getDefaultAutoSelectFamily","ranges":[{"startOffset":6368,"endOffset":6443,"count":0}],"isBlockCoverage":false},{"functionName":"setDefaultAutoSelectFamily","ranges":[{"startOffset":6445,"endOffset":6561,"count":0}],"isBlockCoverage":false},{"functionName":"getDefaultAutoSelectFamilyAttemptTimeout","ranges":[{"startOffset":6563,"endOffset":6666,"count":0}],"isBlockCoverage":false},{"functionName":"setDefaultAutoSelectFamilyAttemptTimeout","ranges":[{"startOffset":6668,"endOffset":6855,"count":0}],"isBlockCoverage":false},{"functionName":"normalizeArgs","ranges":[{"startOffset":7349,"endOffset":8075,"count":2},{"startOffset":7417,"endOffset":7498,"count":0},{"startOffset":7575,"endOffset":7591,"count":0},{"startOffset":7593,"endOffset":7646,"count":0},{"startOffset":7729,"endOffset":7894,"count":0},{"startOffset":7968,"endOffset":7990,"count":0}],"isBlockCoverage":true},{"functionName":"initSocketHandle","ranges":[{"startOffset":8147,"endOffset":8750,"count":6},{"startOffset":8314,"endOffset":8748,"count":4},{"startOffset":8503,"endOffset":8744,"count":0}],"isBlockCoverage":true},{"functionName":"closeSocketHandle","ranges":[{"startOffset":8752,"endOffset":9092,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8871,"endOffset":9084,"count":2},{"startOffset":8973,"endOffset":9078,"count":0}],"isBlockCoverage":true},{"functionName":"Socket","ranges":[{"startOffset":9344,"endOffset":14202,"count":4},{"startOffset":9404,"endOffset":9431,"count":0},{"startOffset":9459,"endOffset":9588,"count":0},{"startOffset":9658,"endOffset":9906,"count":0},{"startOffset":9959,"endOffset":10155,"count":0},{"startOffset":10717,"endOffset":10743,"count":0},{"startOffset":11149,"endOffset":11257,"count":0},{"startOffset":11293,"endOffset":12505,"count":2},{"startOffset":11785,"endOffset":11823,"count":0},{"startOffset":11899,"endOffset":11910,"count":1},{"startOffset":11968,"endOffset":12501,"count":0},{"startOffset":12592,"endOffset":12669,"count":0},{"startOffset":12670,"endOffset":12716,"count":0},{"startOffset":12718,"endOffset":12933,"count":0},{"startOffset":13437,"endOffset":13466,"count":2},{"startOffset":13468,"endOffset":13733,"count":0},{"startOffset":13757,"endOffset":13809,"count":0},{"startOffset":13986,"endOffset":14200,"count":0}],"isBlockCoverage":true},{"functionName":"_unrefTimer","ranges":[{"startOffset":14375,"endOffset":14505,"count":191},{"startOffset":14477,"endOffset":14499,"count":0}],"isBlockCoverage":true},{"functionName":"Socket._final","ranges":[{"startOffset":14625,"endOffset":15248,"count":0}],"isBlockCoverage":false},{"functionName":"afterShutdown","ranges":[{"startOffset":15251,"endOffset":15397,"count":0}],"isBlockCoverage":false},{"functionName":"writeAfterFIN","ranges":[{"startOffset":15604,"endOffset":16112,"count":0}],"isBlockCoverage":false},{"functionName":"Socket._onTimeout","ranges":[{"startOffset":16194,"endOffset":16698,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.setNoDelay","ranges":[{"startOffset":16732,"endOffset":17109,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.setKeepAlive","ranges":[{"startOffset":17145,"endOffset":17751,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.address","ranges":[{"startOffset":17782,"endOffset":17826,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":17912,"endOffset":17956,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":18036,"endOffset":18092,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":18203,"endOffset":18518,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":18607,"endOffset":18687,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":18775,"endOffset":18820,"count":0}],"isBlockCoverage":false},{"functionName":"tryReadStart","ranges":[{"startOffset":18828,"endOffset":19078,"count":0}],"isBlockCoverage":false},{"functionName":"Socket._read","ranges":[{"startOffset":19170,"endOffset":19489,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.end","ranges":[{"startOffset":19516,"endOffset":19672,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.resetAndDestroy","ranges":[{"startOffset":19710,"endOffset":20060,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.pause","ranges":[{"startOffset":20088,"endOffset":20405,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.resume","ranges":[{"startOffset":20435,"endOffset":20619,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.read","ranges":[{"startOffset":20647,"endOffset":20833,"count":0}],"isBlockCoverage":false},{"functionName":"onReadableStreamEnd","ranges":[{"startOffset":20880,"endOffset":20979,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.destroySoon","ranges":[{"startOffset":21013,"endOffset":21160,"count":0}],"isBlockCoverage":false},{"functionName":"Socket._destroy","ranges":[{"startOffset":21192,"endOffset":22706,"count":2},{"startOffset":21496,"endOffset":21503,"count":0},{"startOffset":21715,"endOffset":21960,"count":0},{"startOffset":22001,"endOffset":22237,"count":0},{"startOffset":22456,"endOffset":22527,"count":0},{"startOffset":22549,"endOffset":22704,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21790,"endOffset":21875,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22181,"endOffset":22229,"count":0}],"isBlockCoverage":false},{"functionName":"Socket._reset","ranges":[{"startOffset":22735,"endOffset":22834,"count":0}],"isBlockCoverage":false},{"functionName":"Socket._getpeername","ranges":[{"startOffset":22869,"endOffset":23166,"count":0}],"isBlockCoverage":false},{"functionName":"protoGetter","ranges":[{"startOffset":23169,"endOffset":23351,"count":9}],"isBlockCoverage":true},{"functionName":"bytesRead","ranges":[{"startOffset":23378,"endOffset":23469,"count":0}],"isBlockCoverage":false},{"functionName":"remoteAddress","ranges":[{"startOffset":23502,"endOffset":23568,"count":0}],"isBlockCoverage":false},{"functionName":"remoteFamily","ranges":[{"startOffset":23600,"endOffset":23664,"count":0}],"isBlockCoverage":false},{"functionName":"remotePort","ranges":[{"startOffset":23694,"endOffset":23754,"count":0}],"isBlockCoverage":false},{"functionName":"Socket._getsockname","ranges":[{"startOffset":23791,"endOffset":24067,"count":0}],"isBlockCoverage":false},{"functionName":"localAddress","ranges":[{"startOffset":24099,"endOffset":24164,"count":0}],"isBlockCoverage":false},{"functionName":"localPort","ranges":[{"startOffset":24194,"endOffset":24253,"count":0}],"isBlockCoverage":false},{"functionName":"localFamily","ranges":[{"startOffset":24284,"endOffset":24347,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.<computed>","ranges":[{"startOffset":24388,"endOffset":24435,"count":0}],"isBlockCoverage":false},{"functionName":"Socket._writeGeneric","ranges":[{"startOffset":24471,"endOffset":25383,"count":189},{"startOffset":24693,"endOffset":25037,"count":0},{"startOffset":25118,"endOffset":25174,"count":0},{"startOffset":25228,"endOffset":25264,"count":0},{"startOffset":25343,"endOffset":25381,"count":0}],"isBlockCoverage":true},{"functionName":"connect","ranges":[{"startOffset":24788,"endOffset":24902,"count":0}],"isBlockCoverage":false},{"functionName":"onClose","ranges":[{"startOffset":24909,"endOffset":24988,"count":0}],"isBlockCoverage":false},{"functionName":"Socket._writev","ranges":[{"startOffset":25414,"endOffset":25482,"count":0}],"isBlockCoverage":false},{"functionName":"Socket._write","ranges":[{"startOffset":25512,"endOffset":25593,"count":189}],"isBlockCoverage":true},{"functionName":"_bytesDispatched","ranges":[{"startOffset":25786,"endOffset":25890,"count":0}],"isBlockCoverage":false},{"functionName":"bytesWritten","ranges":[{"startOffset":25922,"endOffset":26851,"count":0}],"isBlockCoverage":false},{"functionName":"checkBindError","ranges":[{"startOffset":26856,"endOffset":27655,"count":0}],"isBlockCoverage":false},{"functionName":"internalConnect","ranges":[{"startOffset":27658,"endOffset":29955,"count":2},{"startOffset":27913,"endOffset":28555,"count":0},{"startOffset":28764,"endOffset":29302,"count":0},{"startOffset":29474,"endOffset":29757,"count":0},{"startOffset":29808,"endOffset":29829,"count":0},{"startOffset":29831,"endOffset":29953,"count":0}],"isBlockCoverage":true},{"functionName":"emitErrorAndDestroy","ranges":[{"startOffset":30198,"endOffset":30262,"count":0}],"isBlockCoverage":false},{"functionName":"internalConnectMultiple","ranges":[{"startOffset":30265,"endOffset":33545,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.connect","ranges":[{"startOffset":33574,"endOffset":35272,"count":2},{"startOffset":33983,"endOffset":34032,"count":0},{"startOffset":34140,"endOffset":34210,"count":0},{"startOffset":34360,"endOffset":34372,"count":0},{"startOffset":34374,"endOffset":34396,"count":0},{"startOffset":34510,"endOffset":34566,"count":0},{"startOffset":34617,"endOffset":34653,"count":0},{"startOffset":34677,"endOffset":34761,"count":0},{"startOffset":34930,"endOffset":34966,"count":0},{"startOffset":35207,"endOffset":35255,"count":0}],"isBlockCoverage":true},{"functionName":"reinitializeHandle","ranges":[{"startOffset":35315,"endOffset":35469,"count":0}],"isBlockCoverage":false},{"functionName":"socketToDnsFamily","ranges":[{"startOffset":35472,"endOffset":35618,"count":0}],"isBlockCoverage":false},{"functionName":"lookupAndConnect","ranges":[{"startOffset":35620,"endOffset":39611,"count":0}],"isBlockCoverage":false},{"functionName":"lookupAndConnectMultiple","ranges":[{"startOffset":39613,"endOffset":43669,"count":0}],"isBlockCoverage":false},{"functionName":"connectErrorNT","ranges":[{"startOffset":43671,"endOffset":43730,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.ref","ranges":[{"startOffset":43756,"endOffset":43943,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.unref","ranges":[{"startOffset":43972,"endOffset":44165,"count":2},{"startOffset":44006,"endOffset":44066,"count":0}],"isBlockCoverage":true},{"functionName":"afterConnect","ranges":[{"startOffset":44169,"endOffset":45857,"count":2},{"startOffset":44339,"endOffset":44356,"count":0},{"startOffset":44484,"endOffset":45251,"count":0},{"startOffset":45301,"endOffset":45317,"count":0},{"startOffset":45319,"endOffset":45382,"count":0},{"startOffset":45657,"endOffset":45742,"count":0}],"isBlockCoverage":true},{"functionName":"addClientAbortSignalOption","ranges":[{"startOffset":45859,"endOffset":46269,"count":0}],"isBlockCoverage":false},{"functionName":"createConnectionError","ranges":[{"startOffset":46271,"endOffset":46792,"count":0}],"isBlockCoverage":false},{"functionName":"afterConnectMultiple","ranges":[{"startOffset":46794,"endOffset":48112,"count":0}],"isBlockCoverage":false},{"functionName":"internalConnectMultipleTimeout","ranges":[{"startOffset":48114,"endOffset":48610,"count":0}],"isBlockCoverage":false},{"functionName":"addServerAbortSignalOption","ranges":[{"startOffset":48612,"endOffset":49042,"count":0}],"isBlockCoverage":false},{"functionName":"Server","ranges":[{"startOffset":49044,"endOffset":50878,"count":0}],"isBlockCoverage":false},{"functionName":"toNumber","ranges":[{"startOffset":50989,"endOffset":51054,"count":2},{"startOffset":51040,"endOffset":51043,"count":0}],"isBlockCoverage":true},{"functionName":"createServerHandle","ranges":[{"startOffset":51122,"endOffset":52610,"count":0}],"isBlockCoverage":false},{"functionName":"setupListenHandle","ranges":[{"startOffset":52612,"endOffset":55306,"count":0}],"isBlockCoverage":false},{"functionName":"emitErrorNT","ranges":[{"startOffset":55373,"endOffset":55435,"count":0}],"isBlockCoverage":false},{"functionName":"emitListeningNT","ranges":[{"startOffset":55438,"endOffset":55553,"count":0}],"isBlockCoverage":false},{"functionName":"listenInCluster","ranges":[{"startOffset":55556,"endOffset":57138,"count":0}],"isBlockCoverage":false},{"functionName":"Server.listen","ranges":[{"startOffset":57167,"endOffset":61594,"count":0}],"isBlockCoverage":false},{"functionName":"isIpv6LinkLocal","ranges":[{"startOffset":61597,"endOffset":62235,"count":0}],"isBlockCoverage":false},{"functionName":"filterOnlyValidAddress","ranges":[{"startOffset":62237,"endOffset":62522,"count":0}],"isBlockCoverage":false},{"functionName":"lookupAndListen","ranges":[{"startOffset":62524,"endOffset":63145,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":63227,"endOffset":63270,"count":0}],"isBlockCoverage":false},{"functionName":"Server.address","ranges":[{"startOffset":63346,"endOffset":63624,"count":0}],"isBlockCoverage":false},{"functionName":"onconnection","ranges":[{"startOffset":63627,"endOffset":65887,"count":0}],"isBlockCoverage":false},{"functionName":"Server.getConnections","ranges":[{"startOffset":66036,"endOffset":66789,"count":0}],"isBlockCoverage":false},{"functionName":"Server.close","ranges":[{"startOffset":66818,"endOffset":67708,"count":0}],"isBlockCoverage":false},{"functionName":"Server.<computed>","ranges":[{"startOffset":67750,"endOffset":67869,"count":0}],"isBlockCoverage":false},{"functionName":"Server._emitCloseIfDrained","ranges":[{"startOffset":67911,"endOffset":68297,"count":0}],"isBlockCoverage":false},{"functionName":"emitCloseNT","ranges":[{"startOffset":68301,"endOffset":68384,"count":0}],"isBlockCoverage":false},{"functionName":"Server.<computed>","ranges":[{"startOffset":68443,"endOffset":68605,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":68827,"endOffset":68863,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":68867,"endOffset":68908,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":68988,"endOffset":69019,"count":239}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":69023,"endOffset":69059,"count":6}],"isBlockCoverage":true},{"functionName":"Server._setupWorker","ranges":[{"startOffset":69098,"endOffset":69339,"count":0}],"isBlockCoverage":false},{"functionName":"Server.ref","ranges":[{"startOffset":69365,"endOffset":69463,"count":0}],"isBlockCoverage":false},{"functionName":"Server.unref","ranges":[{"startOffset":69491,"endOffset":69590,"count":0}],"isBlockCoverage":false},{"functionName":"get BlockList","ranges":[{"startOffset":69690,"endOffset":69792,"count":1}],"isBlockCoverage":true},{"functionName":"get SocketAddress","ranges":[{"startOffset":69796,"endOffset":69918,"count":1}],"isBlockCoverage":true}]},{"scriptId":"158","url":"node:internal/stream_base_commons","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7070,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1057,"endOffset":1082,"count":0}],"isBlockCoverage":false},{"functionName":"handleWriteReq","ranges":[{"startOffset":1201,"endOffset":2056,"count":189},{"startOffset":1301,"endOffset":1468,"count":0},{"startOffset":1473,"endOffset":1487,"count":0},{"startOffset":1492,"endOffset":1556,"count":0},{"startOffset":1644,"endOffset":1706,"count":0},{"startOffset":1711,"endOffset":1723,"count":0},{"startOffset":1728,"endOffset":1741,"count":0},{"startOffset":1746,"endOffset":1761,"count":0},{"startOffset":1766,"endOffset":1830,"count":0},{"startOffset":1835,"endOffset":2050,"count":0}],"isBlockCoverage":true},{"functionName":"onWriteComplete","ranges":[{"startOffset":2058,"endOffset":2647,"count":0}],"isBlockCoverage":false},{"functionName":"createWriteWrap","ranges":[{"startOffset":2649,"endOffset":2887,"count":189}],"isBlockCoverage":true},{"functionName":"writevGeneric","ranges":[{"startOffset":2889,"endOffset":3528,"count":0}],"isBlockCoverage":false},{"functionName":"writeGeneric","ranges":[{"startOffset":3530,"endOffset":3735,"count":189}],"isBlockCoverage":true},{"functionName":"afterWriteDispatched","ranges":[{"startOffset":3737,"endOffset":4044,"count":189},{"startOffset":3904,"endOffset":3959,"count":0}],"isBlockCoverage":true},{"functionName":"onStreamRead","ranges":[{"startOffset":4046,"endOffset":5985,"count":0}],"isBlockCoverage":false},{"functionName":"setStreamTimeout","ranges":[{"startOffset":5987,"endOffset":6863,"count":0}],"isBlockCoverage":false}]},{"scriptId":"159","url":"node:internal/perf/observe","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":16758,"count":1}],"isBlockCoverage":false},{"functionName":"queuePending","ranges":[{"startOffset":2608,"endOffset":2869,"count":0}],"isBlockCoverage":false},{"functionName":"getObserverType","ranges":[{"startOffset":2871,"endOffset":3211,"count":0}],"isBlockCoverage":false},{"functionName":"maybeDecrementObserverCounts","ranges":[{"startOffset":3213,"endOffset":3634,"count":0}],"isBlockCoverage":false},{"functionName":"maybeIncrementObserverCount","ranges":[{"startOffset":3636,"endOffset":3978,"count":0}],"isBlockCoverage":false},{"functionName":"performanceObserverSorter","ranges":[{"startOffset":4055,"endOffset":4122,"count":0}],"isBlockCoverage":false},{"functionName":"PerformanceObserverEntryList","ranges":[{"startOffset":4164,"endOffset":4392,"count":0}],"isBlockCoverage":false},{"functionName":"getEntries","ranges":[{"startOffset":4396,"endOffset":4539,"count":0}],"isBlockCoverage":false},{"functionName":"getEntriesByType","ranges":[{"startOffset":4543,"endOffset":4851,"count":0}],"isBlockCoverage":false},{"functionName":"getEntriesByName","ranges":[{"startOffset":4855,"endOffset":5352,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5356,"endOffset":5604,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":5986,"endOffset":6051,"count":0}],"isBlockCoverage":false},{"functionName":"PerformanceObserver","ranges":[{"startOffset":6056,"endOffset":6158,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":6162,"endOffset":8433,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":8437,"endOffset":8644,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":8648,"endOffset":8738,"count":0}],"isBlockCoverage":false},{"functionName":"get supportedEntryTypes","ranges":[{"startOffset":8749,"endOffset":8813,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8817,"endOffset":9020,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9024,"endOffset":9169,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9173,"endOffset":9555,"count":0}],"isBlockCoverage":false},{"functionName":"enqueue","ranges":[{"startOffset":10039,"endOffset":10241,"count":0}],"isBlockCoverage":false},{"functionName":"bufferUserTiming","ranges":[{"startOffset":10302,"endOffset":11328,"count":0}],"isBlockCoverage":false},{"functionName":"bufferResourceTiming","ranges":[{"startOffset":11616,"endOffset":12880,"count":0}],"isBlockCoverage":false},{"functionName":"setResourceTimingBufferSize","ranges":[{"startOffset":12968,"endOffset":13240,"count":0}],"isBlockCoverage":false},{"functionName":"setDispatchBufferFull","ranges":[{"startOffset":13242,"endOffset":13307,"count":1}],"isBlockCoverage":true},{"functionName":"clearEntriesFromBuffer","ranges":[{"startOffset":13309,"endOffset":13909,"count":0}],"isBlockCoverage":false},{"functionName":"filterBufferMapByNameAndType","ranges":[{"startOffset":13911,"endOffset":14765,"count":0}],"isBlockCoverage":false},{"functionName":"observerCallback","ranges":[{"startOffset":14767,"endOffset":15883,"count":0}],"isBlockCoverage":false},{"functionName":"hasObserver","ranges":[{"startOffset":15920,"endOffset":16039,"count":0}],"isBlockCoverage":false},{"functionName":"startPerf","ranges":[{"startOffset":16042,"endOffset":16152,"count":0}],"isBlockCoverage":false},{"functionName":"stopPerf","ranges":[{"startOffset":16154,"endOffset":16469,"count":0}],"isBlockCoverage":false}]},{"scriptId":"160","url":"node:internal/perf/performance_entry","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3304,"count":1}],"isBlockCoverage":false},{"functionName":"isPerformanceEntry","ranges":[{"startOffset":679,"endOffset":752,"count":0}],"isBlockCoverage":false},{"functionName":"PerformanceEntry","ranges":[{"startOffset":781,"endOffset":1136,"count":0}],"isBlockCoverage":false},{"functionName":"get name","ranges":[{"startOffset":1140,"endOffset":1244,"count":0}],"isBlockCoverage":false},{"functionName":"get entryType","ranges":[{"startOffset":1248,"endOffset":1367,"count":0}],"isBlockCoverage":false},{"functionName":"get startTime","ranges":[{"startOffset":1371,"endOffset":1490,"count":0}],"isBlockCoverage":false},{"functionName":"get duration","ranges":[{"startOffset":1494,"endOffset":1610,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1614,"endOffset":1858,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":1862,"endOffset":2088,"count":0}],"isBlockCoverage":false},{"functionName":"createPerformanceEntry","ranges":[{"startOffset":2310,"endOffset":2446,"count":0}],"isBlockCoverage":false},{"functionName":"get detail","ranges":[{"startOffset":2563,"endOffset":2677,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":2681,"endOffset":2936,"count":0}],"isBlockCoverage":false},{"functionName":"createPerformanceNodeEntry","ranges":[{"startOffset":2940,"endOffset":3144,"count":0}],"isBlockCoverage":false}]},{"scriptId":"161","url":"node:internal/blocklist","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8317,"count":1}],"isBlockCoverage":false},{"functionName":"BlockList","ranges":[{"startOffset":815,"endOffset":958,"count":0}],"isBlockCoverage":false},{"functionName":"isBlockList","ranges":[{"startOffset":1075,"endOffset":1142,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1146,"endOffset":1400,"count":0}],"isBlockCoverage":false},{"functionName":"addAddress","ranges":[{"startOffset":1404,"endOffset":1725,"count":0}],"isBlockCoverage":false},{"functionName":"addRange","ranges":[{"startOffset":1729,"endOffset":2407,"count":0}],"isBlockCoverage":false},{"functionName":"addSubnet","ranges":[{"startOffset":2411,"endOffset":2956,"count":0}],"isBlockCoverage":false},{"functionName":"check","ranges":[{"startOffset":2960,"endOffset":3425,"count":0}],"isBlockCoverage":false},{"functionName":"#parseIPInfo","ranges":[{"startOffset":4075,"endOffset":6755,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":6760,"endOffset":6797,"count":0}],"isBlockCoverage":false},{"functionName":"fromJSON","ranges":[{"startOffset":6801,"endOffset":7595,"count":0}],"isBlockCoverage":false},{"functionName":"get rules","ranges":[{"startOffset":7600,"endOffset":7654,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7657,"endOffset":7814,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7818,"endOffset":7918,"count":0}],"isBlockCoverage":false},{"functionName":"InternalBlockList","ranges":[{"startOffset":7950,"endOffset":8109,"count":0}],"isBlockCoverage":false}]},{"scriptId":"162","url":"node:internal/socketaddress","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4472,"count":1}],"isBlockCoverage":false},{"functionName":"isSocketAddress","ranges":[{"startOffset":769,"endOffset":840,"count":0}],"isBlockCoverage":false},{"functionName":"SocketAddress","ranges":[{"startOffset":844,"endOffset":1850,"count":0}],"isBlockCoverage":false},{"functionName":"get address","ranges":[{"startOffset":1854,"endOffset":1907,"count":0}],"isBlockCoverage":false},{"functionName":"get port","ranges":[{"startOffset":1911,"endOffset":1958,"count":0}],"isBlockCoverage":false},{"functionName":"get family","ranges":[{"startOffset":1962,"endOffset":2043,"count":0}],"isBlockCoverage":false},{"functionName":"get flowlabel","ranges":[{"startOffset":2047,"endOffset":2155,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2159,"endOffset":2398,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2402,"endOffset":2567,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2571,"endOffset":2777,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":2781,"endOffset":2927,"count":0}],"isBlockCoverage":false},{"functionName":"parse","ranges":[{"startOffset":3153,"endOffset":3942,"count":0}],"isBlockCoverage":false},{"functionName":"InternalSocketAddress","ranges":[{"startOffset":3978,"endOffset":4227,"count":0}],"isBlockCoverage":false}]},{"scriptId":"163","url":"node:internal/util/parse_args/parse_args","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":13575,"count":1}],"isBlockCoverage":false},{"functionName":"getMainArgs","ranges":[{"startOffset":1165,"endOffset":1441,"count":0}],"isBlockCoverage":false},{"functionName":"checkOptionLikeValue","ranges":[{"startOffset":1586,"endOffset":2190,"count":0}],"isBlockCoverage":false},{"functionName":"checkOptionUsage","ranges":[{"startOffset":2370,"endOffset":3612,"count":0}],"isBlockCoverage":false},{"functionName":"storeOption","ranges":[{"startOffset":3946,"endOffset":5085,"count":0}],"isBlockCoverage":false},{"functionName":"storeDefaultOption","ranges":[{"startOffset":5410,"endOffset":5579,"count":0}],"isBlockCoverage":false},{"functionName":"argsToTokens","ranges":[{"startOffset":5874,"endOffset":9854,"count":0}],"isBlockCoverage":false},{"functionName":"parseArgs","ranges":[{"startOffset":9874,"endOffset":13537,"count":0}],"isBlockCoverage":false}]},{"scriptId":"164","url":"node:internal/util/parse_args/utils","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6563,"count":1}],"isBlockCoverage":false},{"functionName":"objectGetOwn","ranges":[{"startOffset":721,"endOffset":810,"count":0}],"isBlockCoverage":false},{"functionName":"optionsGetOwn","ranges":[{"startOffset":921,"endOffset":1067,"count":0}],"isBlockCoverage":false},{"functionName":"isOptionValue","ranges":[{"startOffset":1369,"endOffset":1594,"count":0}],"isBlockCoverage":false},{"functionName":"isOptionLikeValue","ranges":[{"startOffset":1833,"endOffset":1976,"count":0}],"isBlockCoverage":false},{"functionName":"isLoneShortOption","ranges":[{"startOffset":2072,"endOffset":2224,"count":0}],"isBlockCoverage":false},{"functionName":"isLoneLongOption","ranges":[{"startOffset":2508,"endOffset":2656,"count":0}],"isBlockCoverage":false},{"functionName":"isLongOptionAndValue","ranges":[{"startOffset":2889,"endOffset":3040,"count":0}],"isBlockCoverage":false},{"functionName":"isShortOptionGroup","ranges":[{"startOffset":3968,"endOffset":4353,"count":0}],"isBlockCoverage":false},{"functionName":"isShortOptionAndValue","ranges":[{"startOffset":4698,"endOffset":5127,"count":0}],"isBlockCoverage":false},{"functionName":"findLongOptionForShort","ranges":[{"startOffset":5486,"endOffset":5788,"count":0}],"isBlockCoverage":false},{"functionName":"useDefaultValueOption","ranges":[{"startOffset":6135,"endOffset":6305,"count":0}],"isBlockCoverage":false}]},{"scriptId":"165","url":"node:internal/util/diff","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1097,"count":1}],"isBlockCoverage":false},{"functionName":"validateInput","ranges":[{"startOffset":224,"endOffset":379,"count":0}],"isBlockCoverage":false},{"functionName":"diff","ranges":[{"startOffset":845,"endOffset":1065,"count":0}],"isBlockCoverage":false}]},{"scriptId":"166","url":"node:internal/assert/myers_diff","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5361,"count":1}],"isBlockCoverage":false},{"functionName":"areLinesEqual","ranges":[{"startOffset":326,"endOffset":561,"count":0}],"isBlockCoverage":false},{"functionName":"myersDiff","ranges":[{"startOffset":563,"endOffset":1851,"count":0}],"isBlockCoverage":false},{"functionName":"backtrack","ranges":[{"startOffset":1853,"endOffset":3182,"count":0}],"isBlockCoverage":false},{"functionName":"printSimpleMyersDiff","ranges":[{"startOffset":3184,"endOffset":3630,"count":0}],"isBlockCoverage":false},{"functionName":"printMyersDiff","ranges":[{"startOffset":3632,"endOffset":5289,"count":0}],"isBlockCoverage":false}]},{"scriptId":"167","url":"node:internal/util/colors","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1321,"count":1}],"isBlockCoverage":false},{"functionName":"lazyInternalTTY","ranges":[{"startOffset":32,"endOffset":127,"count":0}],"isBlockCoverage":false},{"functionName":"shouldColorize","ranges":[{"startOffset":257,"endOffset":517,"count":190},{"startOffset":329,"endOffset":388,"count":0},{"startOffset":414,"endOffset":512,"count":0}],"isBlockCoverage":true},{"functionName":"refresh","ranges":[{"startOffset":521,"endOffset":1289,"count":1},{"startOffset":588,"endOffset":971,"count":0}],"isBlockCoverage":true}]},{"scriptId":"168","url":"node:internal/util/trace_sigint","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":636,"count":1}],"isBlockCoverage":false},{"functionName":"getSigintWatchdog","ranges":[{"startOffset":170,"endOffset":360,"count":0}],"isBlockCoverage":false},{"functionName":"setTraceSigInt","ranges":[{"startOffset":362,"endOffset":593,"count":0}],"isBlockCoverage":false}]},{"scriptId":"169","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/index-gbaejti9.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1058,"count":1},{"startOffset":111,"endOffset":116,"count":0},{"startOffset":134,"endOffset":141,"count":0},{"startOffset":166,"endOffset":169,"count":0},{"startOffset":325,"endOffset":330,"count":0},{"startOffset":356,"endOffset":361,"count":0},{"startOffset":372,"endOffset":377,"count":0},{"startOffset":398,"endOffset":514,"count":0},{"startOffset":539,"endOffset":664,"count":0}],"isBlockCoverage":true},{"functionName":"g","ranges":[{"startOffset":34,"endOffset":78,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":487,"endOffset":508,"count":0}],"isBlockCoverage":false},{"functionName":"e","ranges":[{"startOffset":698,"endOffset":856,"count":9}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":795,"endOffset":855,"count":3},{"startOffset":807,"endOffset":850,"count":0}],"isBlockCoverage":true}]},{"scriptId":"170","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/require-DQxpCAr4.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":465,"count":1}],"isBlockCoverage":true},{"functionName":"a","ranges":[{"startOffset":34,"endOffset":78,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":188,"endOffset":255,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":274,"endOffset":345,"count":0}],"isBlockCoverage":false}]},{"scriptId":"171","url":"node:fs/promises","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":73,"count":1}],"isBlockCoverage":false}]},{"scriptId":"172","url":"node:internal/modules/esm/initialize_import_meta","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2372,"count":1}],"isBlockCoverage":false},{"functionName":"createImportMetaResolve","ranges":[{"startOffset":735,"endOffset":1563,"count":2}],"isBlockCoverage":true},{"functionName":"resolve","ranges":[{"startOffset":1023,"endOffset":1560,"count":0}],"isBlockCoverage":false},{"functionName":"initializeImportMeta","ranges":[{"startOffset":1883,"endOffset":2324,"count":2}],"isBlockCoverage":true}]},{"scriptId":"173","url":"node:child_process","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":28508,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1957,"endOffset":1986,"count":0}],"isBlockCoverage":false},{"functionName":"fork","ranges":[{"startOffset":3492,"endOffset":5149,"count":0}],"isBlockCoverage":false},{"functionName":"_forkChild","ranges":[{"startOffset":5151,"endOffset":5640,"count":0}],"isBlockCoverage":false},{"functionName":"normalizeExecArgs","ranges":[{"startOffset":5642,"endOffset":6156,"count":0}],"isBlockCoverage":false},{"functionName":"exec","ranges":[{"startOffset":6693,"endOffset":6940,"count":0}],"isBlockCoverage":false},{"functionName":"customPromiseExecFunction","ranges":[{"startOffset":6976,"endOffset":7375,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7027,"endOffset":7371,"count":0}],"isBlockCoverage":false},{"functionName":"normalizeExecFileArgs","ranges":[{"startOffset":7512,"endOffset":8355,"count":0}],"isBlockCoverage":false},{"functionName":"execFile","ranges":[{"startOffset":8968,"endOffset":13657,"count":0}],"isBlockCoverage":false},{"functionName":"copyProcessEnvToEnv","ranges":[{"startOffset":13801,"endOffset":14001,"count":0}],"isBlockCoverage":false},{"functionName":"getPermissionModelFlagsToCopy","ranges":[{"startOffset":14036,"endOffset":14254,"count":0}],"isBlockCoverage":false},{"functionName":"copyPermissionModelFlagsToEnv","ranges":[{"startOffset":14256,"endOffset":14737,"count":0}],"isBlockCoverage":false},{"functionName":"normalizeSpawnArguments","ranges":[{"startOffset":14774,"endOffset":20626,"count":0}],"isBlockCoverage":false},{"functionName":"abortChildProcess","ranges":[{"startOffset":20628,"endOffset":20884,"count":0}],"isBlockCoverage":false},{"functionName":"spawn","ranges":[{"startOffset":21439,"endOffset":22663,"count":0}],"isBlockCoverage":false},{"functionName":"spawnSync","ranges":[{"startOffset":23423,"endOffset":24912,"count":0}],"isBlockCoverage":false},{"functionName":"checkExecSyncError","ranges":[{"startOffset":24915,"endOffset":25301,"count":0}],"isBlockCoverage":false},{"functionName":"execFileSync","ranges":[{"startOffset":25814,"endOffset":26278,"count":0}],"isBlockCoverage":false},{"functionName":"execSync","ranges":[{"startOffset":26776,"endOffset":27152,"count":0}],"isBlockCoverage":false},{"functionName":"validateArgumentNullCheck","ranges":[{"startOffset":27155,"endOffset":27378,"count":0}],"isBlockCoverage":false},{"functionName":"validateArgumentsNullCheck","ranges":[{"startOffset":27381,"endOffset":27543,"count":0}],"isBlockCoverage":false},{"functionName":"validateTimeout","ranges":[{"startOffset":27546,"endOffset":27734,"count":0}],"isBlockCoverage":false},{"functionName":"validateMaxBuffer","ranges":[{"startOffset":27737,"endOffset":28010,"count":0}],"isBlockCoverage":false},{"functionName":"sanitizeKillSignal","ranges":[{"startOffset":28013,"endOffset":28376,"count":0}],"isBlockCoverage":false}]},{"scriptId":"174","url":"node:internal/child_process","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":31670,"count":1}],"isBlockCoverage":false},{"functionName":"send","ranges":[{"startOffset":2500,"endOffset":2559,"count":0}],"isBlockCoverage":false},{"functionName":"got","ranges":[{"startOffset":2566,"endOffset":2620,"count":0}],"isBlockCoverage":false},{"functionName":"send","ranges":[{"startOffset":2682,"endOffset":2749,"count":0}],"isBlockCoverage":false},{"functionName":"got","ranges":[{"startOffset":2756,"endOffset":2897,"count":0}],"isBlockCoverage":false},{"functionName":"send","ranges":[{"startOffset":2927,"endOffset":4481,"count":0}],"isBlockCoverage":false},{"functionName":"postSend","ranges":[{"startOffset":4488,"endOffset":5234,"count":0}],"isBlockCoverage":false},{"functionName":"got","ranges":[{"startOffset":5241,"endOffset":5698,"count":0}],"isBlockCoverage":false},{"functionName":"send","ranges":[{"startOffset":5763,"endOffset":5822,"count":0}],"isBlockCoverage":false},{"functionName":"got","ranges":[{"startOffset":5829,"endOffset":5883,"count":0}],"isBlockCoverage":false},{"functionName":"send","ranges":[{"startOffset":5948,"endOffset":6068,"count":0}],"isBlockCoverage":false},{"functionName":"got","ranges":[{"startOffset":6075,"endOffset":6234,"count":0}],"isBlockCoverage":false},{"functionName":"stdioStringToArray","ranges":[{"startOffset":6245,"endOffset":6660,"count":0}],"isBlockCoverage":false},{"functionName":"ChildProcess","ranges":[{"startOffset":6662,"endOffset":8155,"count":0}],"isBlockCoverage":false},{"functionName":"flushStdio","ranges":[{"startOffset":8278,"endOffset":8756,"count":0}],"isBlockCoverage":false},{"functionName":"createSocket","ranges":[{"startOffset":8759,"endOffset":8849,"count":0}],"isBlockCoverage":false},{"functionName":"getHandleWrapType","ranges":[{"startOffset":8852,"endOffset":9081,"count":0}],"isBlockCoverage":false},{"functionName":"closePendingHandle","ranges":[{"startOffset":9083,"endOffset":9196,"count":0}],"isBlockCoverage":false},{"functionName":"spawn","ranges":[{"startOffset":9230,"endOffset":12807,"count":0}],"isBlockCoverage":false},{"functionName":"onErrorNT","ranges":[{"startOffset":12811,"endOffset":12872,"count":0}],"isBlockCoverage":false},{"functionName":"onSpawnNT","ranges":[{"startOffset":12875,"endOffset":12925,"count":0}],"isBlockCoverage":false},{"functionName":"kill","ranges":[{"startOffset":12958,"endOffset":13636,"count":0}],"isBlockCoverage":false},{"functionName":"ChildProcess.<computed>","ranges":[{"startOffset":13679,"endOffset":13736,"count":0}],"isBlockCoverage":false},{"functionName":"ref","ranges":[{"startOffset":13769,"endOffset":13827,"count":0}],"isBlockCoverage":false},{"functionName":"unref","ranges":[{"startOffset":13862,"endOffset":13924,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":13966,"endOffset":14023,"count":0}],"isBlockCoverage":false},{"functionName":"Control","ranges":[{"startOffset":14028,"endOffset":14129,"count":0}],"isBlockCoverage":false},{"functionName":"refCounted","ranges":[{"startOffset":14443,"endOffset":14551,"count":0}],"isBlockCoverage":false},{"functionName":"unrefCounted","ranges":[{"startOffset":14555,"endOffset":14667,"count":0}],"isBlockCoverage":false},{"functionName":"ref","ranges":[{"startOffset":14671,"endOffset":14742,"count":0}],"isBlockCoverage":false},{"functionName":"unref","ranges":[{"startOffset":14746,"endOffset":14821,"count":0}],"isBlockCoverage":false},{"functionName":"get fd","ranges":[{"startOffset":14825,"endOffset":14896,"count":0}],"isBlockCoverage":false},{"functionName":"setupChannel","ranges":[{"startOffset":15046,"endOffset":27105,"count":0}],"isBlockCoverage":false},{"functionName":"isInternal","ranges":[{"startOffset":27140,"endOffset":27450,"count":0}],"isBlockCoverage":false},{"functionName":"getValidStdio","ranges":[{"startOffset":27484,"endOffset":30378,"count":0}],"isBlockCoverage":false},{"functionName":"getSocketList","ranges":[{"startOffset":30381,"endOffset":30697,"count":0}],"isBlockCoverage":false},{"functionName":"maybeClose","ranges":[{"startOffset":30700,"endOffset":30901,"count":0}],"isBlockCoverage":false},{"functionName":"spawnSync","ranges":[{"startOffset":30903,"endOffset":31544,"count":0}],"isBlockCoverage":false}]},{"scriptId":"175","url":"node:dgram","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":30111,"count":1}],"isBlockCoverage":false},{"functionName":"lazyLoadCluster","ranges":[{"startOffset":3079,"endOffset":3151,"count":0}],"isBlockCoverage":false},{"functionName":"lazyLoadBlockList","ranges":[{"startOffset":3175,"endOffset":3272,"count":0}],"isBlockCoverage":false},{"functionName":"Socket","ranges":[{"startOffset":3274,"endOffset":5564,"count":0}],"isBlockCoverage":false},{"functionName":"createSocket","ranges":[{"startOffset":5675,"endOffset":5753,"count":0}],"isBlockCoverage":false},{"functionName":"startListening","ranges":[{"startOffset":5756,"endOffset":6199,"count":0}],"isBlockCoverage":false},{"functionName":"replaceHandle","ranges":[{"startOffset":6201,"endOffset":6766,"count":0}],"isBlockCoverage":false},{"functionName":"bufferSize","ranges":[{"startOffset":6768,"endOffset":7060,"count":0}],"isBlockCoverage":false},{"functionName":"bindServerHandle","ranges":[{"startOffset":7128,"endOffset":7624,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.bind","ranges":[{"startOffset":7650,"endOffset":11195,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.connect","ranges":[{"startOffset":11225,"endOffset":12028,"count":0}],"isBlockCoverage":false},{"functionName":"_connect","ranges":[{"startOffset":12032,"endOffset":12378,"count":0}],"isBlockCoverage":false},{"functionName":"doConnect","ranges":[{"startOffset":12381,"endOffset":13128,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.disconnect","ranges":[{"startOffset":13161,"endOffset":13472,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.sendto","ranges":[{"startOffset":13577,"endOffset":14018,"count":0}],"isBlockCoverage":false},{"functionName":"sliceBuffer","ranges":[{"startOffset":14022,"endOffset":14782,"count":0}],"isBlockCoverage":false},{"functionName":"fixBufferList","ranges":[{"startOffset":14785,"endOffset":15228,"count":0}],"isBlockCoverage":false},{"functionName":"enqueue","ranges":[{"startOffset":15231,"endOffset":15658,"count":0}],"isBlockCoverage":false},{"functionName":"onListenSuccess","ranges":[{"startOffset":15661,"endOffset":15799,"count":0}],"isBlockCoverage":false},{"functionName":"onListenError","ranges":[{"startOffset":15802,"endOffset":15926,"count":0}],"isBlockCoverage":false},{"functionName":"clearQueue","ranges":[{"startOffset":15929,"endOffset":16126,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.send","ranges":[{"startOffset":16697,"endOffset":19591,"count":0}],"isBlockCoverage":false},{"functionName":"doSend","ranges":[{"startOffset":19594,"endOffset":20902,"count":0}],"isBlockCoverage":false},{"functionName":"afterSend","ranges":[{"startOffset":20904,"endOffset":21085,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.close","ranges":[{"startOffset":21112,"endOffset":21680,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.<computed>","ranges":[{"startOffset":21722,"endOffset":21854,"count":0}],"isBlockCoverage":false},{"functionName":"socketCloseNT","ranges":[{"startOffset":21858,"endOffset":21912,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.address","ranges":[{"startOffset":21942,"endOffset":22136,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.remoteAddress","ranges":[{"startOffset":22172,"endOffset":22486,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.setBroadcast","ranges":[{"startOffset":22522,"endOffset":22674,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.setTTL","ranges":[{"startOffset":22704,"endOffset":22882,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.setMulticastTTL","ranges":[{"startOffset":22921,"endOffset":23117,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.setMulticastLoopback","ranges":[{"startOffset":23161,"endOffset":23365,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.setMulticastInterface","ranges":[{"startOffset":23410,"endOffset":23676,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.addMembership","ranges":[{"startOffset":23712,"endOffset":24090,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.dropMembership","ranges":[{"startOffset":24128,"endOffset":24509,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.addSourceSpecificMembership","ranges":[{"startOffset":24559,"endOffset":25170,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.dropSourceSpecificMembership","ranges":[{"startOffset":25222,"endOffset":25839,"count":0}],"isBlockCoverage":false},{"functionName":"healthCheck","ranges":[{"startOffset":25843,"endOffset":26006,"count":0}],"isBlockCoverage":false},{"functionName":"stopReceiving","ranges":[{"startOffset":26009,"endOffset":26173,"count":0}],"isBlockCoverage":false},{"functionName":"onMessage","ranges":[{"startOffset":26176,"endOffset":26603,"count":0}],"isBlockCoverage":false},{"functionName":"onError","ranges":[{"startOffset":26606,"endOffset":26721,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.ref","ranges":[{"startOffset":26747,"endOffset":26854,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.unref","ranges":[{"startOffset":26883,"endOffset":26992,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.setRecvBufferSize","ranges":[{"startOffset":27033,"endOffset":27090,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.setSendBufferSize","ranges":[{"startOffset":27131,"endOffset":27188,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.getRecvBufferSize","ranges":[{"startOffset":27229,"endOffset":27286,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.getSendBufferSize","ranges":[{"startOffset":27327,"endOffset":27384,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.getSendQueueSize","ranges":[{"startOffset":27423,"endOffset":27492,"count":0}],"isBlockCoverage":false},{"functionName":"Socket.getSendQueueCount","ranges":[{"startOffset":27532,"endOffset":27602,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":27721,"endOffset":27775,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":27848,"endOffset":27904,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":28057,"endOffset":28114,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":28190,"endOffset":28249,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":28405,"endOffset":28462,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":28538,"endOffset":28597,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":28749,"endOffset":28802,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":28874,"endOffset":28929,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":29081,"endOffset":29138,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":29214,"endOffset":29273,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":29380,"endOffset":29415,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":29524,"endOffset":29561,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":29846,"endOffset":29882,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":29886,"endOffset":29927,"count":0}],"isBlockCoverage":false}]},{"scriptId":"176","url":"node:internal/dgram","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1837,"count":1}],"isBlockCoverage":false},{"functionName":"lookup4","ranges":[{"startOffset":464,"endOffset":565,"count":0}],"isBlockCoverage":false},{"functionName":"lookup6","ranges":[{"startOffset":568,"endOffset":663,"count":0}],"isBlockCoverage":false},{"functionName":"newHandle","ranges":[{"startOffset":665,"endOffset":1309,"count":0}],"isBlockCoverage":false},{"functionName":"_createSocketHandle","ranges":[{"startOffset":1312,"endOffset":1760,"count":0}],"isBlockCoverage":false}]},{"scriptId":"177","url":"node:internal/socket_list","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2709,"count":1}],"isBlockCoverage":false},{"functionName":"SocketListSend","ranges":[{"startOffset":235,"endOffset":376,"count":0}],"isBlockCoverage":false},{"functionName":"_request","ranges":[{"startOffset":380,"endOffset":1035,"count":0}],"isBlockCoverage":false},{"functionName":"close","ranges":[{"startOffset":1039,"endOffset":1190,"count":0}],"isBlockCoverage":false},{"functionName":"getConnections","ranges":[{"startOffset":1194,"endOffset":1430,"count":0}],"isBlockCoverage":false},{"functionName":"SocketListReceive","ranges":[{"startOffset":1544,"endOffset":2404,"count":0}],"isBlockCoverage":false},{"functionName":"add","ranges":[{"startOffset":2408,"endOffset":2649,"count":0}],"isBlockCoverage":false}]},{"scriptId":"178","url":"node:tty","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5045,"count":1}],"isBlockCoverage":false},{"functionName":"isatty","ranges":[{"startOffset":1540,"endOffset":1646,"count":21}],"isBlockCoverage":true},{"functionName":"ReadStream","ranges":[{"startOffset":1648,"endOffset":2117,"count":0}],"isBlockCoverage":false},{"functionName":"ReadStream.setRawMode","ranges":[{"startOffset":2266,"endOffset":2480,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream","ranges":[{"startOffset":2483,"endOffset":3449,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream._refreshSize","ranges":[{"startOffset":3740,"endOffset":4167,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream.cursorTo","ranges":[{"startOffset":4223,"endOffset":4363,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream.moveCursor","ranges":[{"startOffset":4400,"endOffset":4546,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream.clearLine","ranges":[{"startOffset":4582,"endOffset":4721,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream.clearScreenDown","ranges":[{"startOffset":4763,"endOffset":4898,"count":0}],"isBlockCoverage":false},{"functionName":"WriteStream.getWindowSize","ranges":[{"startOffset":4938,"endOffset":4988,"count":0}],"isBlockCoverage":false}]},{"scriptId":"179","url":"node:internal/tty","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7150,"count":1}],"isBlockCoverage":false},{"functionName":"warnOnDeactivatedColors","ranges":[{"startOffset":2918,"endOffset":3428,"count":0}],"isBlockCoverage":false},{"functionName":"getColorDepth","ranges":[{"startOffset":3586,"endOffset":6821,"count":0}],"isBlockCoverage":false},{"functionName":"hasColors","ranges":[{"startOffset":6823,"endOffset":7096,"count":0}],"isBlockCoverage":false}]},{"scriptId":"180","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/lexer-DQCqS3nf.mjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":13456,"count":1},{"startOffset":13300,"endOffset":13344,"count":0}],"isBlockCoverage":true},{"functionName":"k","ranges":[{"startOffset":34,"endOffset":78,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":86,"endOffset":269,"count":1}],"isBlockCoverage":true},{"functionName":"F","ranges":[{"startOffset":341,"endOffset":1217,"count":0}],"isBlockCoverage":false},{"functionName":"r","ranges":[{"startOffset":1230,"endOffset":1331,"count":0}],"isBlockCoverage":false},{"functionName":"c","ranges":[{"startOffset":1340,"endOffset":1414,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13325,"endOffset":13343,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13382,"endOffset":13402,"count":1}],"isBlockCoverage":true}]},{"scriptId":"181","url":"node:internal/source_map/prepare_stack_trace","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7355,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":279,"endOffset":304,"count":0}],"isBlockCoverage":false},{"functionName":"prepareStackTraceWithSourceMaps","ranges":[{"startOffset":753,"endOffset":2224,"count":2},{"startOffset":858,"endOffset":932,"count":0},{"startOffset":1020,"endOffset":1049,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1160,"endOffset":2172,"count":2},{"startOffset":1417,"endOffset":1471,"count":0},{"startOffset":1515,"endOffset":1538,"count":0},{"startOffset":1927,"endOffset":2083,"count":0},{"startOffset":2090,"endOffset":2127,"count":0}],"isBlockCoverage":true},{"functionName":"serializeJSStackFrame","ranges":[{"startOffset":2731,"endOffset":4194,"count":0}],"isBlockCoverage":false},{"functionName":"getOriginalSymbolName","ranges":[{"startOffset":4344,"endOffset":5034,"count":0}],"isBlockCoverage":false},{"functionName":"getErrorSource","ranges":[{"startOffset":5617,"endOffset":6517,"count":0}],"isBlockCoverage":false},{"functionName":"getSourceMapErrorSource","ranges":[{"startOffset":6862,"endOffset":7242,"count":0}],"isBlockCoverage":false}]},{"scriptId":"182","url":"node:internal/modules/esm/hooks","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":28552,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1459,"endOffset":1484,"count":1}],"isBlockCoverage":true},{"functionName":"emitImportAssertionWarning","ranges":[{"startOffset":1558,"endOffset":1787,"count":0}],"isBlockCoverage":false},{"functionName":"defineImportAssertionAlias","ranges":[{"startOffset":1789,"endOffset":2158,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":4287,"endOffset":5138,"count":0}],"isBlockCoverage":false},{"functionName":"register","ranges":[{"startOffset":5400,"endOffset":5811,"count":0}],"isBlockCoverage":false},{"functionName":"addCustomLoader","ranges":[{"startOffset":6199,"endOffset":6727,"count":0}],"isBlockCoverage":false},{"functionName":"resolve","ranges":[{"startOffset":7339,"endOffset":10589,"count":0}],"isBlockCoverage":false},{"functionName":"load","ranges":[{"startOffset":11083,"endOffset":14210,"count":0}],"isBlockCoverage":false},{"functionName":"waitForLoaderHookInitialization","ranges":[{"startOffset":14214,"endOffset":14266,"count":0}],"isBlockCoverage":false},{"functionName":"importMetaInitialize","ranges":[{"startOffset":14270,"endOffset":14500,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":15173,"endOffset":21142,"count":1}],"isBlockCoverage":false},{"functionName":"AsyncLoaderHookWorker","ranges":[{"startOffset":15718,"endOffset":16307,"count":1}],"isBlockCoverage":true},{"functionName":"waitForWorker","ranges":[{"startOffset":16311,"endOffset":16937,"count":3},{"startOffset":16353,"endOffset":16933,"count":1},{"startOffset":16657,"endOffset":16668,"count":0},{"startOffset":16717,"endOffset":16775,"count":0}],"isBlockCoverage":true},{"functionName":"makeAsyncRequest","ranges":[{"startOffset":17197,"endOffset":19166,"count":0}],"isBlockCoverage":false},{"functionName":"makeSyncRequest","ranges":[{"startOffset":19416,"endOffset":20496,"count":3},{"startOffset":19703,"endOffset":20142,"count":4},{"startOffset":20222,"endOffset":20354,"count":0},{"startOffset":20400,"endOffset":20450,"count":0}],"isBlockCoverage":true},{"functionName":"#unwrapMessage","ranges":[{"startOffset":20500,"endOffset":21038,"count":4},{"startOffset":20579,"endOffset":20622,"count":0},{"startOffset":20698,"endOffset":21002,"count":0}],"isBlockCoverage":true},{"functionName":"status.status","ranges":[{"startOffset":20606,"endOffset":20614,"count":0}],"isBlockCoverage":false},{"functionName":"importMetaInitialize","ranges":[{"startOffset":21147,"endOffset":21252,"count":0}],"isBlockCoverage":false},{"functionName":"pluckHooks","ranges":[{"startOffset":21589,"endOffset":22150,"count":0}],"isBlockCoverage":false},{"functionName":"nextHookFactory","ranges":[{"startOffset":23178,"endOffset":24855,"count":0}],"isBlockCoverage":false},{"functionName":"getAsyncLoaderHookWorker","ranges":[{"startOffset":25285,"endOffset":25413,"count":1}],"isBlockCoverage":true},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":25660,"endOffset":25728,"count":1}],"isBlockCoverage":false},{"functionName":"AsyncLoaderHooksProxiedToLoaderHookWorker","ranges":[{"startOffset":25823,"endOffset":25874,"count":1}],"isBlockCoverage":true},{"functionName":"register","ranges":[{"startOffset":26497,"endOffset":26746,"count":1}],"isBlockCoverage":true},{"functionName":"resolve","ranges":[{"startOffset":27132,"endOffset":27314,"count":0}],"isBlockCoverage":false},{"functionName":"resolveSync","ranges":[{"startOffset":27318,"endOffset":27601,"count":1}],"isBlockCoverage":true},{"functionName":"load","ranges":[{"startOffset":27885,"endOffset":27993,"count":0}],"isBlockCoverage":false},{"functionName":"loadSync","ranges":[{"startOffset":27996,"endOffset":28107,"count":1}],"isBlockCoverage":true},{"functionName":"importMetaInitialize","ranges":[{"startOffset":28111,"endOffset":28231,"count":0}],"isBlockCoverage":false},{"functionName":"waitForLoaderHookInitialization","ranges":[{"startOffset":28235,"endOffset":28317,"count":0}],"isBlockCoverage":false}]},{"scriptId":"183","url":"node:internal/modules/esm/shared_constants","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":633,"count":1}],"isBlockCoverage":false}]},{"scriptId":"184","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/cjs/index.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":484,"count":1}],"isBlockCoverage":true}]},{"scriptId":"185","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/register-D46fvsV_.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8003,"count":1},{"startOffset":1889,"endOffset":1938,"count":0}],"isBlockCoverage":true},{"functionName":"o","ranges":[{"startOffset":47,"endOffset":91,"count":565}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":391,"endOffset":556,"count":1079},{"startOffset":444,"endOffset":555,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":584,"endOffset":662,"count":540},{"startOffset":609,"endOffset":659,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":688,"endOffset":745,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":763,"endOffset":814,"count":1773},{"startOffset":776,"endOffset":814,"count":1148},{"startOffset":789,"endOffset":801,"count":249},{"startOffset":801,"endOffset":813,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":837,"endOffset":861,"count":1773},{"startOffset":844,"endOffset":861,"count":626}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":880,"endOffset":935,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1259,"endOffset":1537,"count":1},{"startOffset":1279,"endOffset":1338,"count":0},{"startOffset":1365,"endOffset":1372,"count":0},{"startOffset":1378,"endOffset":1384,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1558,"endOffset":1605,"count":479},{"startOffset":1583,"endOffset":1602,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1695,"endOffset":1728,"count":48},{"startOffset":1724,"endOffset":1728,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1757,"endOffset":1836,"count":48}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1949,"endOffset":2129,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1952,"endOffset":2129,"count":2681},{"startOffset":1968,"endOffset":1973,"count":0},{"startOffset":1981,"endOffset":2128,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2041,"endOffset":2089,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2298,"endOffset":2560,"count":5},{"startOffset":2356,"endOffset":2361,"count":1},{"startOffset":2361,"endOffset":2368,"count":0},{"startOffset":2372,"endOffset":2388,"count":1},{"startOffset":2438,"endOffset":2450,"count":1},{"startOffset":2450,"endOffset":2465,"count":4},{"startOffset":2476,"endOffset":2486,"count":4},{"startOffset":2486,"endOffset":2505,"count":1},{"startOffset":2501,"endOffset":2504,"count":0},{"startOffset":2520,"endOffset":2534,"count":4},{"startOffset":2534,"endOffset":2557,"count":1},{"startOffset":2553,"endOffset":2556,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2577,"endOffset":3476,"count":1},{"startOffset":3289,"endOffset":3342,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2608,"endOffset":3243,"count":314},{"startOffset":2634,"endOffset":2648,"count":0},{"startOffset":2729,"endOffset":2743,"count":0},{"startOffset":2808,"endOffset":2831,"count":0},{"startOffset":2846,"endOffset":2889,"count":0},{"startOffset":2957,"endOffset":2961,"count":268},{"startOffset":2962,"endOffset":2976,"count":0},{"startOffset":3029,"endOffset":3091,"count":6},{"startOffset":3069,"endOffset":3090,"count":0},{"startOffset":3091,"endOffset":3200,"count":308},{"startOffset":3100,"endOffset":3112,"count":262},{"startOffset":3113,"endOffset":3200,"count":48},{"startOffset":3192,"endOffset":3199,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2906,"endOffset":2922,"count":1478}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2934,"endOffset":2950,"count":412}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3393,"endOffset":3475,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3502,"endOffset":3775,"count":540}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3505,"endOffset":3775,"count":550},{"startOffset":3520,"endOffset":3549,"count":549},{"startOffset":3550,"endOffset":3560,"count":1},{"startOffset":3571,"endOffset":3656,"count":1},{"startOffset":3648,"endOffset":3655,"count":0},{"startOffset":3656,"endOffset":3672,"count":549},{"startOffset":3672,"endOffset":3774,"count":11}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4019,"endOffset":4280,"count":111},{"startOffset":4050,"endOffset":4061,"count":0},{"startOffset":4103,"endOffset":4160,"count":21},{"startOffset":4237,"endOffset":4240,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4149,"endOffset":4157,"count":84}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4267,"endOffset":4275,"count":555}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4304,"endOffset":4600,"count":413},{"startOffset":4426,"endOffset":4444,"count":302},{"startOffset":4445,"endOffset":4452,"count":302},{"startOffset":4452,"endOffset":4599,"count":111},{"startOffset":4487,"endOffset":4599,"count":367},{"startOffset":4503,"endOffset":4599,"count":300},{"startOffset":4553,"endOffset":4590,"count":0},{"startOffset":4591,"endOffset":4598,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4627,"endOffset":5129,"count":540}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4634,"endOffset":5129,"count":561},{"startOffset":4712,"endOffset":4744,"count":391},{"startOffset":4735,"endOffset":4743,"count":67},{"startOffset":4744,"endOffset":4760,"count":494},{"startOffset":4760,"endOffset":5128,"count":22},{"startOffset":4821,"endOffset":5089,"count":0},{"startOffset":5111,"endOffset":5119,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5211,"endOffset":5293,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5317,"endOffset":5770,"count":540},{"startOffset":5378,"endOffset":5388,"count":539},{"startOffset":5389,"endOffset":5648,"count":539},{"startOffset":5423,"endOffset":5541,"count":0},{"startOffset":5622,"endOffset":5647,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5662,"endOffset":5768,"count":539},{"startOffset":5685,"endOffset":5707,"count":484},{"startOffset":5707,"endOffset":5754,"count":479},{"startOffset":5738,"endOffset":5753,"count":0},{"startOffset":5754,"endOffset":5765,"count":479}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5793,"endOffset":6003,"count":540},{"startOffset":5821,"endOffset":5845,"count":0},{"startOffset":5881,"endOffset":5908,"count":170},{"startOffset":5909,"endOffset":5991,"count":11},{"startOffset":5967,"endOffset":5990,"count":10}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6027,"endOffset":6430,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6036,"endOffset":6430,"count":540},{"startOffset":6067,"endOffset":6086,"count":0},{"startOffset":6150,"endOffset":6169,"count":0},{"startOffset":6202,"endOffset":6212,"count":539},{"startOffset":6212,"endOffset":6215,"count":1},{"startOffset":6289,"endOffset":6319,"count":539},{"startOffset":6401,"endOffset":6411,"count":538},{"startOffset":6411,"endOffset":6414,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6239,"endOffset":6253,"count":861}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6460,"endOffset":6739,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6763,"endOffset":7571,"count":1},{"startOffset":6920,"endOffset":6931,"count":0},{"startOffset":6982,"endOffset":6993,"count":0},{"startOffset":7128,"endOffset":7139,"count":0},{"startOffset":7140,"endOffset":7562,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6999,"endOffset":7109,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7151,"endOffset":7311,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7351,"endOffset":7517,"count":0}],"isBlockCoverage":false}]},{"scriptId":"186","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/get-pipe-path-BoR10qr8.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":435,"count":1},{"startOffset":208,"endOffset":231,"count":0}],"isBlockCoverage":true},{"functionName":"t","ranges":[{"startOffset":47,"endOffset":91,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":286,"endOffset":358,"count":1},{"startOffset":335,"endOffset":355,"count":0}],"isBlockCoverage":true}]},{"scriptId":"187","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/temporary-directory-B83uKxJF.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":166,"count":1},{"startOffset":93,"endOffset":115,"count":0}],"isBlockCoverage":true}]},{"scriptId":"188","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/get-tsconfig/dist/index.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":23794,"count":1}],"isBlockCoverage":true},{"functionName":"o","ranges":[{"startOffset":48,"endOffset":93,"count":69}],"isBlockCoverage":true},{"functionName":"h","ranges":[{"startOffset":253,"endOffset":321,"count":13},{"startOffset":297,"endOffset":299,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":344,"endOffset":507,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":368,"endOffset":506,"count":2},{"startOffset":422,"endOffset":429,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":579,"endOffset":684,"count":1},{"startOffset":642,"endOffset":683,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":720,"endOffset":765,"count":2},{"startOffset":753,"endOffset":764,"count":1}],"isBlockCoverage":true},{"functionName":"Ue","ranges":[{"startOffset":791,"endOffset":4097,"count":1},{"startOffset":3794,"endOffset":3796,"count":0}],"isBlockCoverage":true},{"functionName":"_","ranges":[{"startOffset":870,"endOffset":1072,"count":0}],"isBlockCoverage":false},{"functionName":"p","ranges":[{"startOffset":1093,"endOffset":1129,"count":0}],"isBlockCoverage":false},{"functionName":"D","ranges":[{"startOffset":1148,"endOffset":1648,"count":0}],"isBlockCoverage":false},{"functionName":"L","ranges":[{"startOffset":1666,"endOffset":2224,"count":19},{"startOffset":1699,"endOffset":2215,"count":216},{"startOffset":1708,"endOffset":1739,"count":0},{"startOffset":1773,"endOffset":1804,"count":19},{"startOffset":1804,"endOffset":1814,"count":197},{"startOffset":1814,"endOffset":2148,"count":0},{"startOffset":2148,"endOffset":2162,"count":197},{"startOffset":2163,"endOffset":2211,"count":0},{"startOffset":2211,"endOffset":2215,"count":197}],"isBlockCoverage":true},{"functionName":"T","ranges":[{"startOffset":2242,"endOffset":3469,"count":96},{"startOffset":2284,"endOffset":2300,"count":1},{"startOffset":2300,"endOffset":2330,"count":95},{"startOffset":2330,"endOffset":2406,"count":26},{"startOffset":2334,"endOffset":2382,"count":64},{"startOffset":2406,"endOffset":2414,"count":69},{"startOffset":2414,"endOffset":2507,"count":16},{"startOffset":2457,"endOffset":2493,"count":0},{"startOffset":2507,"endOffset":2517,"count":53},{"startOffset":2517,"endOffset":2565,"count":3},{"startOffset":2565,"endOffset":2611,"count":2},{"startOffset":2611,"endOffset":2634,"count":12},{"startOffset":2634,"endOffset":2657,"count":9},{"startOffset":2657,"endOffset":2687,"count":19},{"startOffset":2687,"endOffset":3262,"count":0},{"startOffset":3262,"endOffset":3467,"count":3},{"startOffset":3278,"endOffset":3284,"count":15},{"startOffset":3286,"endOffset":3308,"count":12},{"startOffset":3369,"endOffset":3413,"count":0},{"startOffset":3414,"endOffset":3467,"count":0}],"isBlockCoverage":true},{"functionName":"F","ranges":[{"startOffset":3485,"endOffset":3616,"count":15},{"startOffset":3513,"endOffset":3522,"count":0},{"startOffset":3532,"endOffset":3582,"count":0},{"startOffset":3582,"endOffset":3606,"count":3},{"startOffset":3607,"endOffset":3615,"count":12}],"isBlockCoverage":true},{"functionName":"B","ranges":[{"startOffset":3649,"endOffset":3706,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3767,"endOffset":3772,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3810,"endOffset":3815,"count":105}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3844,"endOffset":3849,"count":19}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3884,"endOffset":3889,"count":32}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3925,"endOffset":3932,"count":32}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3971,"endOffset":3976,"count":32}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4023,"endOffset":4030,"count":32}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4073,"endOffset":4078,"count":96}],"isBlockCoverage":true},{"functionName":"O","ranges":[{"startOffset":4119,"endOffset":4154,"count":174},{"startOffset":4146,"endOffset":4153,"count":110}],"isBlockCoverage":true},{"functionName":"M","ranges":[{"startOffset":4174,"endOffset":4210,"count":84},{"startOffset":4201,"endOffset":4209,"count":68}],"isBlockCoverage":true},{"functionName":"P","ranges":[{"startOffset":4229,"endOffset":4263,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4286,"endOffset":5696,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5737,"endOffset":5757,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5796,"endOffset":5820,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5847,"endOffset":5872,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5899,"endOffset":5925,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5952,"endOffset":5976,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6003,"endOffset":6028,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6055,"endOffset":6081,"count":200}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6090,"endOffset":6136,"count":1}],"isBlockCoverage":true},{"functionName":"Pe","ranges":[{"startOffset":6149,"endOffset":6676,"count":1}],"isBlockCoverage":true},{"functionName":"u","ranges":[{"startOffset":6208,"endOffset":6268,"count":15},{"startOffset":6238,"endOffset":6248,"count":3},{"startOffset":6248,"endOffset":6267,"count":12}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6312,"endOffset":6354,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6391,"endOffset":6399,"count":12}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6434,"endOffset":6449,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6480,"endOffset":6522,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6552,"endOffset":6567,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6609,"endOffset":6655,"count":0}],"isBlockCoverage":false},{"functionName":"Ne","ranges":[{"startOffset":6692,"endOffset":9578,"count":1},{"startOffset":9483,"endOffset":9522,"count":0},{"startOffset":9545,"endOffset":9557,"count":0},{"startOffset":9561,"endOffset":9577,"count":0}],"isBlockCoverage":true},{"functionName":"u","ranges":[{"startOffset":6751,"endOffset":6882,"count":1},{"startOffset":6773,"endOffset":6874,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6774,"endOffset":6874,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6875,"endOffset":6881,"count":0}],"isBlockCoverage":false},{"functionName":"a","ranges":[{"startOffset":6902,"endOffset":7034,"count":2},{"startOffset":6924,"endOffset":7033,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6925,"endOffset":7026,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7027,"endOffset":7033,"count":21}],"isBlockCoverage":true},{"functionName":"r","ranges":[{"startOffset":7055,"endOffset":7201,"count":2},{"startOffset":7193,"endOffset":7200,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7078,"endOffset":7193,"count":22}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7179,"endOffset":7192,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7194,"endOffset":7200,"count":0}],"isBlockCoverage":false},{"functionName":"g","ranges":[{"startOffset":7230,"endOffset":7390,"count":2},{"startOffset":7382,"endOffset":7389,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7253,"endOffset":7382,"count":5},{"startOffset":7261,"endOffset":7265,"count":0},{"startOffset":7374,"endOffset":7381,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7355,"endOffset":7368,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7383,"endOffset":7389,"count":0}],"isBlockCoverage":false},{"functionName":"v","ranges":[{"startOffset":7410,"endOffset":7552,"count":2},{"startOffset":7544,"endOffset":7551,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7433,"endOffset":7544,"count":5},{"startOffset":7441,"endOffset":7446,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7545,"endOffset":7551,"count":0}],"isBlockCoverage":false},{"functionName":"b","ranges":[{"startOffset":7801,"endOffset":8086,"count":54},{"startOffset":7821,"endOffset":8085,"count":96},{"startOffset":7865,"endOffset":7981,"count":0},{"startOffset":7992,"endOffset":8045,"count":0},{"startOffset":8045,"endOffset":8053,"count":26},{"startOffset":8053,"endOffset":8067,"count":42},{"startOffset":8067,"endOffset":8083,"count":54}],"isBlockCoverage":true},{"functionName":"k","ranges":[{"startOffset":8102,"endOffset":8260,"count":0}],"isBlockCoverage":false},{"functionName":"R","ranges":[{"startOffset":8279,"endOffset":8357,"count":19},{"startOffset":8327,"endOffset":8332,"count":7},{"startOffset":8332,"endOffset":8349,"count":12}],"isBlockCoverage":true},{"functionName":"J","ranges":[{"startOffset":8376,"endOffset":8582,"count":3},{"startOffset":8410,"endOffset":8513,"count":0},{"startOffset":8532,"endOffset":8567,"count":0}],"isBlockCoverage":true},{"functionName":"W","ranges":[{"startOffset":8602,"endOffset":8741,"count":12},{"startOffset":8639,"endOffset":8658,"count":0},{"startOffset":8698,"endOffset":8713,"count":0},{"startOffset":8714,"endOffset":8728,"count":0}],"isBlockCoverage":true},{"functionName":"V","ranges":[{"startOffset":8762,"endOffset":9000,"count":3},{"startOffset":8813,"endOffset":8832,"count":12},{"startOffset":8834,"endOffset":8953,"count":12},{"startOffset":8855,"endOffset":8910,"count":9},{"startOffset":8860,"endOffset":8872,"count":0},{"startOffset":8900,"endOffset":8903,"count":0},{"startOffset":8904,"endOffset":8909,"count":0},{"startOffset":8910,"endOffset":8929,"count":3},{"startOffset":8916,"endOffset":8928,"count":0},{"startOffset":8932,"endOffset":8947,"count":0},{"startOffset":8980,"endOffset":8992,"count":0}],"isBlockCoverage":true},{"functionName":"z","ranges":[{"startOffset":9019,"endOffset":9308,"count":2},{"startOffset":9117,"endOffset":9172,"count":0},{"startOffset":9178,"endOffset":9190,"count":0},{"startOffset":9209,"endOffset":9225,"count":0},{"startOffset":9229,"endOffset":9244,"count":0},{"startOffset":9288,"endOffset":9300,"count":0}],"isBlockCoverage":true},{"functionName":"U","ranges":[{"startOffset":9326,"endOffset":9437,"count":15},{"startOffset":9360,"endOffset":9378,"count":2},{"startOffset":9378,"endOffset":9396,"count":3},{"startOffset":9396,"endOffset":9417,"count":7},{"startOffset":9417,"endOffset":9435,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9600,"endOffset":9929,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9952,"endOffset":10577,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10612,"endOffset":11369,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11395,"endOffset":11420,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11484,"endOffset":11539,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11558,"endOffset":11896,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":11969,"endOffset":12938,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12966,"endOffset":12991,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13046,"endOffset":13112,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13142,"endOffset":13253,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13276,"endOffset":13748,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13803,"endOffset":15224,"count":1},{"startOffset":13840,"endOffset":13844,"count":0},{"startOffset":13845,"endOffset":13908,"count":0},{"startOffset":13930,"endOffset":13989,"count":0},{"startOffset":14078,"endOffset":14088,"count":0},{"startOffset":14102,"endOffset":14382,"count":0},{"startOffset":14472,"endOffset":14551,"count":2},{"startOffset":14490,"endOffset":14508,"count":1},{"startOffset":14509,"endOffset":14550,"count":1},{"startOffset":14569,"endOffset":14689,"count":2},{"startOffset":14582,"endOffset":14688,"count":1},{"startOffset":14609,"endOffset":14654,"count":0},{"startOffset":14690,"endOffset":14716,"count":0},{"startOffset":14728,"endOffset":14758,"count":0},{"startOffset":14766,"endOffset":14816,"count":0},{"startOffset":14832,"endOffset":15215,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14629,"endOffset":14636,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":14789,"endOffset":14814,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":14926,"endOffset":14946,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15000,"endOffset":15020,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15247,"endOffset":15312,"count":4},{"startOffset":15274,"endOffset":15311,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15421,"endOffset":19110,"count":1},{"startOffset":15736,"endOffset":15760,"count":9},{"startOffset":15749,"endOffset":15760,"count":8},{"startOffset":15775,"endOffset":15866,"count":0},{"startOffset":15918,"endOffset":15929,"count":0},{"startOffset":15953,"endOffset":16061,"count":0},{"startOffset":16128,"endOffset":16198,"count":0},{"startOffset":16220,"endOffset":16238,"count":0},{"startOffset":16282,"endOffset":16353,"count":0},{"startOffset":16411,"endOffset":16422,"count":0},{"startOffset":16535,"endOffset":16599,"count":0},{"startOffset":16612,"endOffset":16693,"count":0},{"startOffset":16768,"endOffset":16901,"count":0},{"startOffset":16960,"endOffset":17020,"count":0},{"startOffset":17033,"endOffset":17136,"count":0},{"startOffset":17149,"endOffset":17252,"count":0},{"startOffset":17265,"endOffset":17424,"count":0},{"startOffset":17439,"endOffset":17600,"count":0},{"startOffset":17658,"endOffset":17815,"count":0},{"startOffset":17829,"endOffset":17893,"count":0},{"startOffset":18047,"endOffset":18194,"count":0},{"startOffset":18208,"endOffset":18345,"count":0},{"startOffset":18351,"endOffset":18380,"count":0},{"startOffset":18398,"endOffset":18451,"count":0},{"startOffset":18476,"endOffset":18543,"count":0},{"startOffset":18553,"endOffset":18590,"count":0},{"startOffset":18608,"endOffset":18689,"count":0},{"startOffset":18712,"endOffset":18825,"count":0},{"startOffset":18843,"endOffset":18904,"count":0},{"startOffset":18938,"endOffset":19015,"count":0},{"startOffset":19021,"endOffset":19060,"count":0},{"startOffset":19070,"endOffset":19109,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19040,"endOffset":19058,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19144,"endOffset":19621,"count":1},{"startOffset":19252,"endOffset":19305,"count":6},{"startOffset":19271,"endOffset":19304,"count":2},{"startOffset":19293,"endOffset":19301,"count":0},{"startOffset":19344,"endOffset":19414,"count":2},{"startOffset":19359,"endOffset":19413,"count":0},{"startOffset":19543,"endOffset":19612,"count":3},{"startOffset":19558,"endOffset":19611,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19373,"endOffset":19411,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":19480,"endOffset":19517,"count":1},{"startOffset":19512,"endOffset":19514,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19572,"endOffset":19609,"count":1},{"startOffset":19604,"endOffset":19606,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19644,"endOffset":19771,"count":1},{"startOffset":19719,"endOffset":19731,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19801,"endOffset":19865,"count":2},{"startOffset":19833,"endOffset":19845,"count":0},{"startOffset":19846,"endOffset":19864,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19890,"endOffset":19973,"count":1},{"startOffset":19913,"endOffset":19964,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19995,"endOffset":20050,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":20074,"endOffset":20469,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20105,"endOffset":20468,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20209,"endOffset":20465,"count":1},{"startOffset":20300,"endOffset":20330,"count":0},{"startOffset":20331,"endOffset":20443,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20489,"endOffset":21085,"count":1},{"startOffset":20533,"endOffset":20545,"count":0},{"startOffset":20577,"endOffset":20581,"count":0},{"startOffset":20582,"endOffset":20594,"count":0},{"startOffset":20608,"endOffset":20614,"count":0},{"startOffset":20646,"endOffset":20654,"count":0},{"startOffset":20669,"endOffset":20672,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20680,"endOffset":21084,"count":11},{"startOffset":20697,"endOffset":20706,"count":1},{"startOffset":20706,"endOffset":20820,"count":10},{"startOffset":20752,"endOffset":20782,"count":0},{"startOffset":20808,"endOffset":20819,"count":0},{"startOffset":20820,"endOffset":20848,"count":10},{"startOffset":20848,"endOffset":20924,"count":0},{"startOffset":20924,"endOffset":20959,"count":10},{"startOffset":20955,"endOffset":20958,"count":0},{"startOffset":20959,"endOffset":21083,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21060,"endOffset":21082,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21141,"endOffset":21186,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21203,"endOffset":21312,"count":1},{"startOffset":21244,"endOffset":21303,"count":43},{"startOffset":21284,"endOffset":21300,"count":6},{"startOffset":21300,"endOffset":21302,"count":37}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21343,"endOffset":21505,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21542,"endOffset":21628,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21668,"endOffset":21847,"count":1},{"startOffset":21699,"endOffset":21701,"count":0},{"startOffset":21732,"endOffset":21749,"count":0},{"startOffset":21817,"endOffset":21829,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21967,"endOffset":22115,"count":1},{"startOffset":22043,"endOffset":22097,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22147,"endOffset":22247,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22278,"endOffset":22332,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22526,"endOffset":23662,"count":1},{"startOffset":22572,"endOffset":22674,"count":0},{"startOffset":22694,"endOffset":22748,"count":0},{"startOffset":22750,"endOffset":22760,"count":0},{"startOffset":22899,"endOffset":22908,"count":0},{"startOffset":22920,"endOffset":22923,"count":0},{"startOffset":22932,"endOffset":22939,"count":0},{"startOffset":23115,"endOffset":23117,"count":0},{"startOffset":23441,"endOffset":23448,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22836,"endOffset":22864,"count":2},{"startOffset":22854,"endOffset":22856,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22945,"endOffset":23107,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23133,"endOffset":23440,"count":1},{"startOffset":23158,"endOffset":23172,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23264,"endOffset":23340,"count":1},{"startOffset":23337,"endOffset":23339,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23366,"endOffset":23408,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":23456,"endOffset":23661,"count":48},{"startOffset":23480,"endOffset":23525,"count":0},{"startOffset":23530,"endOffset":23540,"count":0},{"startOffset":23548,"endOffset":23563,"count":0},{"startOffset":23564,"endOffset":23573,"count":0},{"startOffset":23603,"endOffset":23625,"count":46},{"startOffset":23626,"endOffset":23651,"count":30},{"startOffset":23652,"endOffset":23660,"count":30}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23586,"endOffset":23602,"count":60}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23612,"endOffset":23624,"count":46}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23638,"endOffset":23650,"count":30}],"isBlockCoverage":true}]},{"scriptId":"189","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/resolve-pkg-maps/dist/index.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2150,"count":1}],"isBlockCoverage":true},{"functionName":"d","ranges":[{"startOffset":76,"endOffset":107,"count":0}],"isBlockCoverage":false},{"functionName":"s","ranges":[{"startOffset":110,"endOffset":166,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":355,"endOffset":399,"count":1}],"isBlockCoverage":true},{"functionName":"f","ranges":[{"startOffset":416,"endOffset":898,"count":0}],"isBlockCoverage":false},{"functionName":"v","ranges":[{"startOffset":907,"endOffset":986,"count":0}],"isBlockCoverage":false},{"functionName":"A","ranges":[{"startOffset":987,"endOffset":1263,"count":0}],"isBlockCoverage":false},{"functionName":"p","ranges":[{"startOffset":1271,"endOffset":1448,"count":0}],"isBlockCoverage":false},{"functionName":"m","ranges":[{"startOffset":1461,"endOffset":1899,"count":0}],"isBlockCoverage":false},{"functionName":"T","ranges":[{"startOffset":1902,"endOffset":2098,"count":0}],"isBlockCoverage":false}]},{"scriptId":"190","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/index-gckBtVBf.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":52353,"count":1},{"startOffset":507,"endOffset":549,"count":64},{"startOffset":596,"endOffset":780,"count":0},{"startOffset":18944,"endOffset":19044,"count":0},{"startOffset":41020,"endOffset":41028,"count":0},{"startOffset":50820,"endOffset":50824,"count":0}],"isBlockCoverage":true},{"functionName":"f","ranges":[{"startOffset":48,"endOffset":93,"count":150}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":295,"endOffset":343,"count":48}],"isBlockCoverage":true},{"functionName":"decode","ranges":[{"startOffset":616,"endOffset":692,"count":0}],"isBlockCoverage":false},{"functionName":"decode","ranges":[{"startOffset":695,"endOffset":779,"count":0}],"isBlockCoverage":false},{"functionName":"Xt","ranges":[{"startOffset":781,"endOffset":1140,"count":0}],"isBlockCoverage":false},{"functionName":"Kt","ranges":[{"startOffset":1155,"endOffset":1222,"count":0}],"isBlockCoverage":false},{"functionName":"K","ranges":[{"startOffset":1238,"endOffset":1399,"count":0}],"isBlockCoverage":false},{"functionName":"De","ranges":[{"startOffset":1420,"endOffset":1475,"count":0}],"isBlockCoverage":false},{"functionName":"Yt","ranges":[{"startOffset":1494,"endOffset":1520,"count":0}],"isBlockCoverage":false},{"functionName":"Qt","ranges":[{"startOffset":1533,"endOffset":1567,"count":0}],"isBlockCoverage":false},{"functionName":"Te","ranges":[{"startOffset":1592,"endOffset":2063,"count":0}],"isBlockCoverage":false},{"functionName":"Y","ranges":[{"startOffset":2078,"endOffset":2219,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":2249,"endOffset":2273,"count":1}],"isBlockCoverage":true},{"functionName":"ce","ranges":[{"startOffset":2273,"endOffset":2332,"count":0}],"isBlockCoverage":false},{"functionName":"add","ranges":[{"startOffset":2332,"endOffset":2366,"count":0}],"isBlockCoverage":false},{"functionName":"has","ranges":[{"startOffset":2366,"endOffset":2409,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":2419,"endOffset":2442,"count":1}],"isBlockCoverage":true},{"functionName":"ee","ranges":[{"startOffset":2442,"endOffset":2611,"count":0}],"isBlockCoverage":false},{"functionName":"appendLeft","ranges":[{"startOffset":2611,"endOffset":2639,"count":0}],"isBlockCoverage":false},{"functionName":"appendRight","ranges":[{"startOffset":2639,"endOffset":2678,"count":0}],"isBlockCoverage":false},{"functionName":"clone","ranges":[{"startOffset":2678,"endOffset":2854,"count":0}],"isBlockCoverage":false},{"functionName":"contains","ranges":[{"startOffset":2854,"endOffset":2898,"count":0}],"isBlockCoverage":false},{"functionName":"eachNext","ranges":[{"startOffset":2898,"endOffset":2943,"count":0}],"isBlockCoverage":false},{"functionName":"eachPrevious","ranges":[{"startOffset":2943,"endOffset":2996,"count":0}],"isBlockCoverage":false},{"functionName":"edit","ranges":[{"startOffset":2996,"endOffset":3100,"count":0}],"isBlockCoverage":false},{"functionName":"prependLeft","ranges":[{"startOffset":3100,"endOffset":3139,"count":0}],"isBlockCoverage":false},{"functionName":"prependRight","ranges":[{"startOffset":3139,"endOffset":3179,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":3179,"endOffset":3290,"count":0}],"isBlockCoverage":false},{"functionName":"split","ranges":[{"startOffset":3290,"endOffset":3602,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":3602,"endOffset":3655,"count":0}],"isBlockCoverage":false},{"functionName":"trimEnd","ranges":[{"startOffset":3655,"endOffset":3994,"count":0}],"isBlockCoverage":false},{"functionName":"trimStart","ranges":[{"startOffset":3994,"endOffset":4349,"count":0}],"isBlockCoverage":false},{"functionName":"Zt","ranges":[{"startOffset":4350,"endOffset":4649,"count":1},{"startOffset":4480,"endOffset":4648,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4429,"endOffset":4480,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4507,"endOffset":4551,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4552,"endOffset":4648,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":4692,"endOffset":4719,"count":1}],"isBlockCoverage":true},{"functionName":"er","ranges":[{"startOffset":4719,"endOffset":4957,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":4957,"endOffset":4996,"count":0}],"isBlockCoverage":false},{"functionName":"toUrl","ranges":[{"startOffset":4996,"endOffset":5076,"count":0}],"isBlockCoverage":false},{"functionName":"tr","ranges":[{"startOffset":5078,"endOffset":5366,"count":0}],"isBlockCoverage":false},{"functionName":"rr","ranges":[{"startOffset":5386,"endOffset":5569,"count":0}],"isBlockCoverage":false},{"functionName":"ir","ranges":[{"startOffset":5628,"endOffset":5681,"count":0}],"isBlockCoverage":false},{"functionName":"Fe","ranges":[{"startOffset":5698,"endOffset":5936,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":5978,"endOffset":6004,"count":1}],"isBlockCoverage":true},{"functionName":"or","ranges":[{"startOffset":6004,"endOffset":6167,"count":0}],"isBlockCoverage":false},{"functionName":"addEdit","ranges":[{"startOffset":6167,"endOffset":6698,"count":0}],"isBlockCoverage":false},{"functionName":"addUneditedChunk","ranges":[{"startOffset":6698,"endOffset":7191,"count":0}],"isBlockCoverage":false},{"functionName":"advance","ranges":[{"startOffset":7191,"endOffset":7432,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":7500,"endOffset":7529,"count":1}],"isBlockCoverage":true},{"functionName":"Ee","ranges":[{"startOffset":7529,"endOffset":8173,"count":0}],"isBlockCoverage":false},{"functionName":"addSourcemapLocation","ranges":[{"startOffset":8173,"endOffset":8228,"count":0}],"isBlockCoverage":false},{"functionName":"append","ranges":[{"startOffset":8228,"endOffset":8340,"count":0}],"isBlockCoverage":false},{"functionName":"appendLeft","ranges":[{"startOffset":8340,"endOffset":8516,"count":0}],"isBlockCoverage":false},{"functionName":"appendRight","ranges":[{"startOffset":8516,"endOffset":8696,"count":0}],"isBlockCoverage":false},{"functionName":"clone","ranges":[{"startOffset":8696,"endOffset":9141,"count":0}],"isBlockCoverage":false},{"functionName":"generateDecodedMap","ranges":[{"startOffset":9141,"endOffset":9775,"count":0}],"isBlockCoverage":false},{"functionName":"generateMap","ranges":[{"startOffset":9775,"endOffset":9832,"count":0}],"isBlockCoverage":false},{"functionName":"_ensureindentStr","ranges":[{"startOffset":9832,"endOffset":9911,"count":0}],"isBlockCoverage":false},{"functionName":"_getRawIndentString","ranges":[{"startOffset":9911,"endOffset":9979,"count":0}],"isBlockCoverage":false},{"functionName":"getIndentString","ranges":[{"startOffset":9979,"endOffset":10069,"count":0}],"isBlockCoverage":false},{"functionName":"indent","ranges":[{"startOffset":10069,"endOffset":10832,"count":0}],"isBlockCoverage":false},{"functionName":"insert","ranges":[{"startOffset":10832,"endOffset":10940,"count":0}],"isBlockCoverage":false},{"functionName":"insertLeft","ranges":[{"startOffset":10940,"endOffset":11115,"count":0}],"isBlockCoverage":false},{"functionName":"insertRight","ranges":[{"startOffset":11115,"endOffset":11298,"count":0}],"isBlockCoverage":false},{"functionName":"move","ranges":[{"startOffset":11298,"endOffset":11827,"count":0}],"isBlockCoverage":false},{"functionName":"overwrite","ranges":[{"startOffset":11827,"endOffset":11912,"count":0}],"isBlockCoverage":false},{"functionName":"update","ranges":[{"startOffset":11912,"endOffset":12930,"count":0}],"isBlockCoverage":false},{"functionName":"prepend","ranges":[{"startOffset":12930,"endOffset":13053,"count":0}],"isBlockCoverage":false},{"functionName":"prependLeft","ranges":[{"startOffset":13053,"endOffset":13241,"count":0}],"isBlockCoverage":false},{"functionName":"prependRight","ranges":[{"startOffset":13241,"endOffset":13433,"count":0}],"isBlockCoverage":false},{"functionName":"remove","ranges":[{"startOffset":13433,"endOffset":13808,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":13808,"endOffset":14159,"count":0}],"isBlockCoverage":false},{"functionName":"lastChar","ranges":[{"startOffset":14159,"endOffset":14493,"count":0}],"isBlockCoverage":false},{"functionName":"lastLine","ranges":[{"startOffset":14493,"endOffset":15013,"count":0}],"isBlockCoverage":false},{"functionName":"slice","ranges":[{"startOffset":15013,"endOffset":15676,"count":0}],"isBlockCoverage":false},{"functionName":"snip","ranges":[{"startOffset":15676,"endOffset":15760,"count":0}],"isBlockCoverage":false},{"functionName":"_split","ranges":[{"startOffset":15760,"endOffset":15956,"count":0}],"isBlockCoverage":false},{"functionName":"_splitChunk","ranges":[{"startOffset":15956,"endOffset":16296,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":16296,"endOffset":16395,"count":0}],"isBlockCoverage":false},{"functionName":"isEmpty","ranges":[{"startOffset":16395,"endOffset":16566,"count":0}],"isBlockCoverage":false},{"functionName":"length","ranges":[{"startOffset":16566,"endOffset":16679,"count":0}],"isBlockCoverage":false},{"functionName":"trimLines","ranges":[{"startOffset":16679,"endOffset":16720,"count":0}],"isBlockCoverage":false},{"functionName":"trim","ranges":[{"startOffset":16720,"endOffset":16764,"count":0}],"isBlockCoverage":false},{"functionName":"trimEndAborted","ranges":[{"startOffset":16764,"endOffset":17123,"count":0}],"isBlockCoverage":false},{"functionName":"trimEnd","ranges":[{"startOffset":17123,"endOffset":17169,"count":0}],"isBlockCoverage":false},{"functionName":"trimStartAborted","ranges":[{"startOffset":17169,"endOffset":17532,"count":0}],"isBlockCoverage":false},{"functionName":"trimStart","ranges":[{"startOffset":17532,"endOffset":17582,"count":0}],"isBlockCoverage":false},{"functionName":"hasChanged","ranges":[{"startOffset":17582,"endOffset":17634,"count":0}],"isBlockCoverage":false},{"functionName":"_replaceRegexp","ranges":[{"startOffset":17634,"endOffset":18216,"count":0}],"isBlockCoverage":false},{"functionName":"_replaceString","ranges":[{"startOffset":18216,"endOffset":18325,"count":0}],"isBlockCoverage":false},{"functionName":"replace","ranges":[{"startOffset":18325,"endOffset":18414,"count":0}],"isBlockCoverage":false},{"functionName":"_replaceAllString","ranges":[{"startOffset":18414,"endOffset":18576,"count":0}],"isBlockCoverage":false},{"functionName":"replaceAll","ranges":[{"startOffset":18576,"endOffset":18791,"count":0}],"isBlockCoverage":false},{"functionName":"Pe","ranges":[{"startOffset":18872,"endOffset":18944,"count":262},{"startOffset":18921,"endOffset":18943,"count":1730037}],"isBlockCoverage":true},{"functionName":"Pe","ranges":[{"startOffset":18945,"endOffset":19044,"count":0}],"isBlockCoverage":false},{"functionName":"cr","ranges":[{"startOffset":19172,"endOffset":37342,"count":261},{"startOffset":19240,"endOffset":36795,"count":1},{"startOffset":19251,"endOffset":19256,"count":0},{"startOffset":36756,"endOffset":36761,"count":0},{"startOffset":36870,"endOffset":36885,"count":0},{"startOffset":36915,"endOffset":37091,"count":1},{"startOffset":36997,"endOffset":37046,"count":0},{"startOffset":37104,"endOffset":37313,"count":10},{"startOffset":37173,"endOffset":37189,"count":9},{"startOffset":37189,"endOffset":37192,"count":1},{"startOffset":37235,"endOffset":37245,"count":0},{"startOffset":37265,"endOffset":37272,"count":1},{"startOffset":37272,"endOffset":37310,"count":9},{"startOffset":37287,"endOffset":37297,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19314,"endOffset":36740,"count":1}],"isBlockCoverage":true},{"functionName":"N","ranges":[{"startOffset":19451,"endOffset":22969,"count":261},{"startOffset":19673,"endOffset":20150,"count":334},{"startOffset":19706,"endOffset":19718,"count":0},{"startOffset":19741,"endOffset":19748,"count":0},{"startOffset":19748,"endOffset":19794,"count":39},{"startOffset":19794,"endOffset":19898,"count":1},{"startOffset":19882,"endOffset":19898,"count":0},{"startOffset":19898,"endOffset":19952,"count":1},{"startOffset":19935,"endOffset":19940,"count":0},{"startOffset":19952,"endOffset":19972,"count":1},{"startOffset":19972,"endOffset":20068,"count":32},{"startOffset":20000,"endOffset":20022,"count":0},{"startOffset":20045,"endOffset":20067,"count":0},{"startOffset":20068,"endOffset":20090,"count":260},{"startOffset":20091,"endOffset":20110,"count":73},{"startOffset":20110,"endOffset":20129,"count":2},{"startOffset":20158,"endOffset":20183,"count":1},{"startOffset":20183,"endOffset":20254,"count":260},{"startOffset":20217,"endOffset":20254,"count":0},{"startOffset":20281,"endOffset":22817,"count":993361},{"startOffset":20322,"endOffset":20334,"count":261},{"startOffset":20334,"endOffset":22768,"count":993100},{"startOffset":20357,"endOffset":20364,"count":4009},{"startOffset":20364,"endOffset":20396,"count":41093},{"startOffset":20396,"endOffset":20410,"count":320116},{"startOffset":20410,"endOffset":20477,"count":57529},{"startOffset":20431,"endOffset":20439,"count":7660},{"startOffset":20439,"endOffset":20460,"count":639},{"startOffset":20460,"endOffset":20465,"count":502},{"startOffset":20477,"endOffset":20531,"count":31856},{"startOffset":20493,"endOffset":20514,"count":5913},{"startOffset":20514,"endOffset":20519,"count":5},{"startOffset":20531,"endOffset":20609,"count":19404},{"startOffset":20546,"endOffset":20566,"count":5810},{"startOffset":20566,"endOffset":20585,"count":60},{"startOffset":20585,"endOffset":20597,"count":48},{"startOffset":20609,"endOffset":20725,"count":17489},{"startOffset":20725,"endOffset":20989,"count":17490},{"startOffset":20761,"endOffset":20775,"count":0},{"startOffset":20829,"endOffset":20977,"count":1},{"startOffset":20989,"endOffset":21265,"count":7441},{"startOffset":21053,"endOffset":21075,"count":14},{"startOffset":21076,"endOffset":21138,"count":0},{"startOffset":21202,"endOffset":21204,"count":48},{"startOffset":21204,"endOffset":21206,"count":7393},{"startOffset":21265,"endOffset":21397,"count":7838},{"startOffset":21302,"endOffset":21316,"count":0},{"startOffset":21379,"endOffset":21385,"count":397},{"startOffset":21397,"endOffset":21423,"count":11289},{"startOffset":21423,"endOffset":21449,"count":2868},{"startOffset":21449,"endOffset":22640,"count":4610},{"startOffset":21477,"endOffset":21499,"count":2345},{"startOffset":21499,"endOffset":21522,"count":1998},{"startOffset":21522,"endOffset":22639,"count":267},{"startOffset":21572,"endOffset":21653,"count":32},{"startOffset":21585,"endOffset":21647,"count":4},{"startOffset":21647,"endOffset":21652,"count":28},{"startOffset":21653,"endOffset":21874,"count":235},{"startOffset":21676,"endOffset":21858,"count":0},{"startOffset":21893,"endOffset":21912,"count":28},{"startOffset":21931,"endOffset":22602,"count":32},{"startOffset":21992,"endOffset":22014,"count":0},{"startOffset":22018,"endOffset":22078,"count":0},{"startOffset":22116,"endOffset":22187,"count":0},{"startOffset":22188,"endOffset":22194,"count":0},{"startOffset":22208,"endOffset":22601,"count":25},{"startOffset":22227,"endOffset":22277,"count":0},{"startOffset":22302,"endOffset":22352,"count":0},{"startOffset":22353,"endOffset":22381,"count":0},{"startOffset":22392,"endOffset":22444,"count":118},{"startOffset":22409,"endOffset":22415,"count":0},{"startOffset":22473,"endOffset":22579,"count":9},{"startOffset":22493,"endOffset":22499,"count":0},{"startOffset":22550,"endOffset":22578,"count":0},{"startOffset":22602,"endOffset":22639,"count":242},{"startOffset":22640,"endOffset":22755,"count":279},{"startOffset":22755,"endOffset":22767,"count":494891},{"startOffset":22768,"endOffset":22787,"count":993100},{"startOffset":22787,"endOffset":22806,"count":668641},{"startOffset":22830,"endOffset":22845,"count":0},{"startOffset":22863,"endOffset":22878,"count":0},{"startOffset":22907,"endOffset":22909,"count":0}],"isBlockCoverage":true},{"functionName":"U","ranges":[{"startOffset":22978,"endOffset":25384,"count":503},{"startOffset":23124,"endOffset":23136,"count":501},{"startOffset":23136,"endOffset":23143,"count":2},{"startOffset":23161,"endOffset":25374,"count":2},{"startOffset":23185,"endOffset":23576,"count":1},{"startOffset":23230,"endOffset":23459,"count":9},{"startOffset":23240,"endOffset":23271,"count":0},{"startOffset":23323,"endOffset":23353,"count":8},{"startOffset":23369,"endOffset":23381,"count":1},{"startOffset":23381,"endOffset":23411,"count":8},{"startOffset":23411,"endOffset":23423,"count":0},{"startOffset":23423,"endOffset":23446,"count":8},{"startOffset":23446,"endOffset":23458,"count":0},{"startOffset":23472,"endOffset":23485,"count":0},{"startOffset":23503,"endOffset":23516,"count":0},{"startOffset":23570,"endOffset":23576,"count":0},{"startOffset":23576,"endOffset":23628,"count":0},{"startOffset":23628,"endOffset":25183,"count":1},{"startOffset":23716,"endOffset":23811,"count":0},{"startOffset":23832,"endOffset":23978,"count":0},{"startOffset":24067,"endOffset":24123,"count":0},{"startOffset":24153,"endOffset":24183,"count":0},{"startOffset":24197,"endOffset":24210,"count":0},{"startOffset":24233,"endOffset":24280,"count":0},{"startOffset":24281,"endOffset":24322,"count":0},{"startOffset":24352,"endOffset":24624,"count":0},{"startOffset":24625,"endOffset":24883,"count":0},{"startOffset":24915,"endOffset":25152,"count":0},{"startOffset":25156,"endOffset":25183,"count":0},{"startOffset":25184,"endOffset":25232,"count":1},{"startOffset":25232,"endOffset":25252,"count":0},{"startOffset":25253,"endOffset":25363,"count":0},{"startOffset":25363,"endOffset":25374,"count":1}],"isBlockCoverage":true},{"functionName":"P","ranges":[{"startOffset":25393,"endOffset":27473,"count":5},{"startOffset":25532,"endOffset":25599,"count":0},{"startOffset":25615,"endOffset":25894,"count":0},{"startOffset":25913,"endOffset":25942,"count":0},{"startOffset":25979,"endOffset":26682,"count":1},{"startOffset":26107,"endOffset":26115,"count":0},{"startOffset":26160,"endOffset":26185,"count":0},{"startOffset":26272,"endOffset":26314,"count":0},{"startOffset":26351,"endOffset":26680,"count":0},{"startOffset":26682,"endOffset":27041,"count":0},{"startOffset":27041,"endOffset":27170,"count":4},{"startOffset":27055,"endOffset":27078,"count":0},{"startOffset":27096,"endOffset":27138,"count":0},{"startOffset":27190,"endOffset":27239,"count":4},{"startOffset":27233,"endOffset":27238,"count":0},{"startOffset":27256,"endOffset":27463,"count":0}],"isBlockCoverage":true},{"functionName":"J","ranges":[{"startOffset":27482,"endOffset":28610,"count":0}],"isBlockCoverage":false},{"functionName":"wt","ranges":[{"startOffset":28619,"endOffset":29584,"count":32},{"startOffset":28663,"endOffset":28791,"count":0},{"startOffset":28791,"endOffset":29041,"count":1},{"startOffset":28821,"endOffset":28943,"count":0},{"startOffset":28981,"endOffset":29040,"count":0},{"startOffset":29041,"endOffset":29264,"count":0},{"startOffset":29264,"endOffset":29319,"count":9},{"startOffset":29293,"endOffset":29297,"count":0},{"startOffset":29319,"endOffset":29389,"count":0},{"startOffset":29389,"endOffset":29425,"count":1},{"startOffset":29425,"endOffset":29551,"count":0},{"startOffset":29551,"endOffset":29562,"count":21}],"isBlockCoverage":true},{"functionName":"Le","ranges":[{"startOffset":29594,"endOffset":30054,"count":676},{"startOffset":29657,"endOffset":29819,"count":6248},{"startOffset":29682,"endOffset":29694,"count":0},{"startOffset":29712,"endOffset":29733,"count":279},{"startOffset":29733,"endOffset":29783,"count":402},{"startOffset":29764,"endOffset":29777,"count":397},{"startOffset":29777,"endOffset":29783,"count":5},{"startOffset":29783,"endOffset":29806,"count":39},{"startOffset":29806,"endOffset":29814,"count":5528},{"startOffset":29815,"endOffset":29819,"count":5572},{"startOffset":29827,"endOffset":29931,"count":397},{"startOffset":29931,"endOffset":30053,"count":279},{"startOffset":30022,"endOffset":30027,"count":0},{"startOffset":30028,"endOffset":30053,"count":0}],"isBlockCoverage":true},{"functionName":"k","ranges":[{"startOffset":30064,"endOffset":30376,"count":532},{"startOffset":30114,"endOffset":30338,"count":566},{"startOffset":30165,"endOffset":30171,"count":34},{"startOffset":30171,"endOffset":30179,"count":532},{"startOffset":30179,"endOffset":30302,"count":0},{"startOffset":30302,"endOffset":30338,"count":34}],"isBlockCoverage":true},{"functionName":"ue","ranges":[{"startOffset":30385,"endOffset":30714,"count":1},{"startOffset":30479,"endOffset":30486,"count":0},{"startOffset":30534,"endOffset":30544,"count":0},{"startOffset":30560,"endOffset":30562,"count":0},{"startOffset":30568,"endOffset":30574,"count":0},{"startOffset":30701,"endOffset":30713,"count":0}],"isBlockCoverage":true},{"functionName":"I","ranges":[{"startOffset":30724,"endOffset":31031,"count":14157},{"startOffset":30790,"endOffset":30987,"count":123068},{"startOffset":30815,"endOffset":30826,"count":0},{"startOffset":30862,"endOffset":30874,"count":14157},{"startOffset":30874,"endOffset":30891,"count":108911},{"startOffset":30891,"endOffset":30951,"count":4596},{"startOffset":30914,"endOffset":30946,"count":0},{"startOffset":30951,"endOffset":30986,"count":104315},{"startOffset":30967,"endOffset":30978,"count":0},{"startOffset":30995,"endOffset":31009,"count":0}],"isBlockCoverage":true},{"functionName":"Oe","ranges":[{"startOffset":31040,"endOffset":31300,"count":9},{"startOffset":31136,"endOffset":31138,"count":0},{"startOffset":31144,"endOffset":31146,"count":0},{"startOffset":31162,"endOffset":31270,"count":1},{"startOffset":31200,"endOffset":31231,"count":0}],"isBlockCoverage":true},{"functionName":"mt","ranges":[{"startOffset":31310,"endOffset":31571,"count":242},{"startOffset":31369,"endOffset":31509,"count":8128},{"startOffset":31394,"endOffset":31405,"count":0},{"startOffset":31423,"endOffset":31452,"count":0},{"startOffset":31452,"endOffset":31473,"count":242},{"startOffset":31473,"endOffset":31496,"count":1506},{"startOffset":31496,"endOffset":31504,"count":6380},{"startOffset":31505,"endOffset":31509,"count":7886},{"startOffset":31523,"endOffset":31541,"count":0}],"isBlockCoverage":true},{"functionName":"le","ranges":[{"startOffset":31581,"endOffset":31816,"count":242},{"startOffset":31620,"endOffset":31802,"count":23241},{"startOffset":31671,"endOffset":31682,"count":0},{"startOffset":31700,"endOffset":31729,"count":0},{"startOffset":31729,"endOffset":31767,"count":242},{"startOffset":31767,"endOffset":31792,"count":922},{"startOffset":31792,"endOffset":31800,"count":21835},{"startOffset":31810,"endOffset":31815,"count":0}],"isBlockCoverage":true},{"functionName":"kt","ranges":[{"startOffset":31826,"endOffset":32059,"count":0}],"isBlockCoverage":false},{"functionName":"he","ranges":[{"startOffset":32069,"endOffset":32292,"count":2030},{"startOffset":32174,"endOffset":32201,"count":236317},{"startOffset":32191,"endOffset":32200,"count":0},{"startOffset":32204,"endOffset":32256,"count":236317},{"startOffset":32221,"endOffset":32240,"count":8424},{"startOffset":32241,"endOffset":32252,"count":2030},{"startOffset":32252,"endOffset":32256,"count":234287}],"isBlockCoverage":true},{"functionName":"A","ranges":[{"startOffset":32302,"endOffset":32509,"count":12388},{"startOffset":32361,"endOffset":32365,"count":0},{"startOffset":32421,"endOffset":32468,"count":6708},{"startOffset":32435,"endOffset":32451,"count":6132},{"startOffset":32451,"endOffset":32468,"count":576},{"startOffset":32468,"endOffset":32488,"count":11812}],"isBlockCoverage":true},{"functionName":"te","ranges":[{"startOffset":32518,"endOffset":32757,"count":49111},{"startOffset":32562,"endOffset":32578,"count":0},{"startOffset":32578,"endOffset":32597,"count":126},{"startOffset":32597,"endOffset":32735,"count":48985},{"startOffset":32643,"endOffset":32647,"count":3744},{"startOffset":32647,"endOffset":32735,"count":45241},{"startOffset":32670,"endOffset":32707,"count":336},{"startOffset":32707,"endOffset":32715,"count":44905},{"startOffset":32716,"endOffset":32735,"count":44905}],"isBlockCoverage":true},{"functionName":"yt","ranges":[{"startOffset":32767,"endOffset":33014,"count":267},{"startOffset":32811,"endOffset":32827,"count":11},{"startOffset":32827,"endOffset":32841,"count":15},{"startOffset":32841,"endOffset":32994,"count":252},{"startOffset":32901,"endOffset":32994,"count":38},{"startOffset":32920,"endOffset":32944,"count":0},{"startOffset":32995,"endOffset":33013,"count":229}],"isBlockCoverage":true},{"functionName":"Re","ranges":[{"startOffset":33024,"endOffset":33225,"count":58926},{"startOffset":33089,"endOffset":33195,"count":57302},{"startOffset":33108,"endOffset":33117,"count":0},{"startOffset":33117,"endOffset":33138,"count":8882},{"startOffset":33138,"endOffset":33146,"count":48420},{"startOffset":33147,"endOffset":33158,"count":48420},{"startOffset":33158,"endOffset":33191,"count":4247},{"startOffset":33191,"endOffset":33195,"count":44173},{"startOffset":33195,"endOffset":33204,"count":1624},{"startOffset":33204,"endOffset":33224,"count":54679}],"isBlockCoverage":true},{"functionName":"Ct","ranges":[{"startOffset":33235,"endOffset":33432,"count":261}],"isBlockCoverage":true},{"functionName":"W","ranges":[{"startOffset":33442,"endOffset":33631,"count":10},{"startOffset":33535,"endOffset":33542,"count":8},{"startOffset":33542,"endOffset":33546,"count":2}],"isBlockCoverage":true},{"functionName":"O","ranges":[{"startOffset":33640,"endOffset":33793,"count":23},{"startOffset":33757,"endOffset":33784,"count":7},{"startOffset":33770,"endOffset":33774,"count":0},{"startOffset":33784,"endOffset":33788,"count":16}],"isBlockCoverage":true},{"functionName":"St","ranges":[{"startOffset":33802,"endOffset":33960,"count":9},{"startOffset":33841,"endOffset":33937,"count":0}],"isBlockCoverage":true},{"functionName":"G","ranges":[{"startOffset":33970,"endOffset":34105,"count":9},{"startOffset":34058,"endOffset":34096,"count":0}],"isBlockCoverage":true},{"functionName":"fe","ranges":[{"startOffset":34114,"endOffset":34271,"count":118},{"startOffset":34158,"endOffset":34162,"count":0},{"startOffset":34185,"endOffset":34215,"count":9},{"startOffset":34215,"endOffset":34223,"count":109},{"startOffset":34224,"endOffset":34250,"count":109}],"isBlockCoverage":true},{"functionName":"de","ranges":[{"startOffset":34281,"endOffset":34425,"count":2345},{"startOffset":34363,"endOffset":34417,"count":325065},{"startOffset":34381,"endOffset":34389,"count":0},{"startOffset":34389,"endOffset":34405,"count":2328},{"startOffset":34405,"endOffset":34416,"count":322737}],"isBlockCoverage":true},{"functionName":"$","ranges":[{"startOffset":34435,"endOffset":34553,"count":10},{"startOffset":34467,"endOffset":34476,"count":81},{"startOffset":34479,"endOffset":34542,"count":73},{"startOffset":34531,"endOffset":34542,"count":0}],"isBlockCoverage":true},{"functionName":"vt","ranges":[{"startOffset":34562,"endOffset":34692,"count":1},{"startOffset":34619,"endOffset":34657,"count":0}],"isBlockCoverage":true},{"functionName":"xt","ranges":[{"startOffset":34702,"endOffset":34785,"count":4},{"startOffset":34776,"endOffset":34780,"count":0}],"isBlockCoverage":true},{"functionName":"re","ranges":[{"startOffset":34795,"endOffset":34908,"count":34},{"startOffset":34834,"endOffset":34843,"count":0},{"startOffset":34843,"endOffset":34885,"count":9},{"startOffset":34885,"endOffset":34896,"count":25}],"isBlockCoverage":true},{"functionName":"ge","ranges":[{"startOffset":34918,"endOffset":35011,"count":4247},{"startOffset":34961,"endOffset":34981,"count":2399},{"startOffset":34981,"endOffset":35002,"count":14},{"startOffset":35002,"endOffset":35006,"count":4233}],"isBlockCoverage":true},{"functionName":"z","ranges":[{"startOffset":35021,"endOffset":35087,"count":58922},{"startOffset":35063,"endOffset":35067,"count":3},{"startOffset":35067,"endOffset":35082,"count":58919}],"isBlockCoverage":true},{"functionName":"_t","ranges":[{"startOffset":35096,"endOffset":35175,"count":10},{"startOffset":35149,"endOffset":35165,"count":9},{"startOffset":35165,"endOffset":35170,"count":1}],"isBlockCoverage":true},{"functionName":"Et","ranges":[{"startOffset":35185,"endOffset":35264,"count":1},{"startOffset":35254,"endOffset":35259,"count":0}],"isBlockCoverage":true},{"functionName":"Lt","ranges":[{"startOffset":35274,"endOffset":35352,"count":10},{"startOffset":35326,"endOffset":35342,"count":9},{"startOffset":35342,"endOffset":35347,"count":1}],"isBlockCoverage":true},{"functionName":"Ot","ranges":[{"startOffset":35362,"endOffset":35441,"count":1},{"startOffset":35415,"endOffset":35431,"count":0}],"isBlockCoverage":true},{"functionName":"Rt","ranges":[{"startOffset":35451,"endOffset":35529,"count":1},{"startOffset":35519,"endOffset":35524,"count":0}],"isBlockCoverage":true},{"functionName":"At","ranges":[{"startOffset":35539,"endOffset":35624,"count":262},{"startOffset":35586,"endOffset":35593,"count":1},{"startOffset":35593,"endOffset":35597,"count":261}],"isBlockCoverage":true},{"functionName":"Nt","ranges":[{"startOffset":35634,"endOffset":35719,"count":271},{"startOffset":35681,"endOffset":35688,"count":10},{"startOffset":35688,"endOffset":35692,"count":261}],"isBlockCoverage":true},{"functionName":"M","ranges":[{"startOffset":35729,"endOffset":35797,"count":0}],"isBlockCoverage":false},{"functionName":"q","ranges":[{"startOffset":35806,"endOffset":35871,"count":710}],"isBlockCoverage":true},{"functionName":"H","ranges":[{"startOffset":35880,"endOffset":35937,"count":10}],"isBlockCoverage":true},{"functionName":"It","ranges":[{"startOffset":35946,"endOffset":36002,"count":1}],"isBlockCoverage":true},{"functionName":"Mt","ranges":[{"startOffset":36012,"endOffset":36068,"count":10}],"isBlockCoverage":true},{"functionName":"Ae","ranges":[{"startOffset":36078,"endOffset":36136,"count":104315}],"isBlockCoverage":true},{"functionName":"Ut","ranges":[{"startOffset":36146,"endOffset":36196,"count":1}],"isBlockCoverage":true},{"functionName":"jt","ranges":[{"startOffset":36206,"endOffset":36256,"count":10}],"isBlockCoverage":true},{"functionName":"$t","ranges":[{"startOffset":36267,"endOffset":36311,"count":1}],"isBlockCoverage":true},{"functionName":"Dt","ranges":[{"startOffset":36322,"endOffset":36350,"count":261}],"isBlockCoverage":true},{"functionName":"Tt","ranges":[{"startOffset":36361,"endOffset":36403,"count":1}],"isBlockCoverage":true},{"functionName":"Ft","ranges":[{"startOffset":36414,"endOffset":36450,"count":261}],"isBlockCoverage":true},{"functionName":"Pt","ranges":[{"startOffset":36461,"endOffset":36497,"count":261}],"isBlockCoverage":true},{"functionName":"Wt","ranges":[{"startOffset":36508,"endOffset":36537,"count":0}],"isBlockCoverage":false},{"functionName":"qt","ranges":[{"startOffset":36548,"endOffset":36595,"count":1}],"isBlockCoverage":true},{"functionName":"Ce","ranges":[{"startOffset":37356,"endOffset":37555,"count":0}],"isBlockCoverage":false},{"functionName":"ur","ranges":[{"startOffset":37565,"endOffset":38329,"count":0}],"isBlockCoverage":false},{"functionName":"Se","ranges":[{"startOffset":38339,"endOffset":38602,"count":0}],"isBlockCoverage":false},{"functionName":"qe","ranges":[{"startOffset":38612,"endOffset":38649,"count":0}],"isBlockCoverage":false},{"functionName":"D","ranges":[{"startOffset":38659,"endOffset":38790,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":38831,"endOffset":38957,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":38892,"endOffset":38942,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":38972,"endOffset":38997,"count":261},{"startOffset":38981,"endOffset":38989,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":39015,"endOffset":39112,"count":262},{"startOffset":39043,"endOffset":39066,"count":226},{"startOffset":39067,"endOffset":39076,"count":1},{"startOffset":39076,"endOffset":39096,"count":261},{"startOffset":39096,"endOffset":39111,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":39133,"endOffset":39218,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":39254,"endOffset":39563,"count":6},{"startOffset":39269,"endOffset":39303,"count":0},{"startOffset":39340,"endOffset":39562,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":39366,"endOffset":39375,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":39595,"endOffset":39665,"count":48},{"startOffset":39657,"endOffset":39664,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":39687,"endOffset":39693,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":39707,"endOffset":39737,"count":1}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":39770,"endOffset":39797,"count":1}],"isBlockCoverage":true},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":39797,"endOffset":39876,"count":1}],"isBlockCoverage":true},{"functionName":"dr","ranges":[{"startOffset":39877,"endOffset":40146,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40002,"endOffset":40070,"count":128}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40085,"endOffset":40144,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":40146,"endOffset":40440,"count":48},{"startOffset":40179,"endOffset":40188,"count":0},{"startOffset":40237,"endOffset":40244,"count":0},{"startOffset":40305,"endOffset":40416,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40217,"endOffset":40229,"count":4916}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40332,"endOffset":40400,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":40401,"endOffset":40407,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":40440,"endOffset":40585,"count":0}],"isBlockCoverage":false},{"functionName":"expireDiskCache","ranges":[{"startOffset":40585,"endOffset":40727,"count":1},{"startOffset":40647,"endOffset":40726,"count":128},{"startOffset":40657,"endOffset":40726,"count":0}],"isBlockCoverage":true},{"functionName":"removeOldCacheDirectory","ranges":[{"startOffset":40727,"endOffset":40983,"count":1},{"startOffset":40823,"endOffset":40974,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40816,"endOffset":40822,"count":0}],"isBlockCoverage":false},{"functionName":"wr","ranges":[{"startOffset":41209,"endOffset":41242,"count":0}],"isBlockCoverage":false},{"functionName":"mr","ranges":[{"startOffset":41264,"endOffset":41305,"count":0}],"isBlockCoverage":false},{"functionName":"Xe","ranges":[{"startOffset":41333,"endOffset":41373,"count":0}],"isBlockCoverage":false},{"functionName":"kr","ranges":[{"startOffset":41396,"endOffset":41440,"count":0}],"isBlockCoverage":false},{"functionName":"Ke","ranges":[{"startOffset":41458,"endOffset":41496,"count":0}],"isBlockCoverage":false},{"functionName":"oe","ranges":[{"startOffset":41515,"endOffset":41616,"count":0}],"isBlockCoverage":false},{"functionName":"yr","ranges":[{"startOffset":41641,"endOffset":41748,"count":0}],"isBlockCoverage":false},{"functionName":"Ye","ranges":[{"startOffset":41769,"endOffset":41863,"count":0}],"isBlockCoverage":false},{"functionName":"Qe","ranges":[{"startOffset":41879,"endOffset":42197,"count":0}],"isBlockCoverage":false},{"functionName":"Cr","ranges":[{"startOffset":42214,"endOffset":42308,"count":0}],"isBlockCoverage":false},{"functionName":"Sr","ranges":[{"startOffset":42334,"endOffset":42416,"count":0}],"isBlockCoverage":false},{"functionName":"Ze","ranges":[{"startOffset":42435,"endOffset":42736,"count":0}],"isBlockCoverage":false},{"functionName":"vr","ranges":[{"startOffset":42758,"endOffset":43243,"count":0}],"isBlockCoverage":false},{"functionName":"Ve","ranges":[{"startOffset":43261,"endOffset":43323,"count":0}],"isBlockCoverage":false},{"functionName":"xr","ranges":[{"startOffset":43339,"endOffset":43418,"count":0}],"isBlockCoverage":false},{"functionName":"_r","ranges":[{"startOffset":43450,"endOffset":43585,"count":0}],"isBlockCoverage":false},{"functionName":"et","ranges":[{"startOffset":43603,"endOffset":43685,"count":0}],"isBlockCoverage":false},{"functionName":"Er","ranges":[{"startOffset":43717,"endOffset":43798,"count":0}],"isBlockCoverage":false},{"functionName":"Lr","ranges":[{"startOffset":43815,"endOffset":43867,"count":0}],"isBlockCoverage":false},{"functionName":"Or","ranges":[{"startOffset":43888,"endOffset":43922,"count":0}],"isBlockCoverage":false},{"functionName":"Rr","ranges":[{"startOffset":43955,"endOffset":44076,"count":0}],"isBlockCoverage":false},{"functionName":"Ar","ranges":[{"startOffset":44097,"endOffset":44164,"count":0}],"isBlockCoverage":false},{"functionName":"Nr","ranges":[{"startOffset":44183,"endOffset":44243,"count":0}],"isBlockCoverage":false},{"functionName":"Ir","ranges":[{"startOffset":44265,"endOffset":44482,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":44520,"endOffset":44546,"count":1}],"isBlockCoverage":true},{"functionName":"tt","ranges":[{"startOffset":44546,"endOffset":45138,"count":0}],"isBlockCoverage":false},{"functionName":"gn","ranges":[{"startOffset":45139,"endOffset":45163,"count":0}],"isBlockCoverage":false},{"functionName":"rt","ranges":[{"startOffset":45178,"endOffset":45249,"count":0}],"isBlockCoverage":false},{"functionName":"Mr","ranges":[{"startOffset":45273,"endOffset":45397,"count":0}],"isBlockCoverage":false},{"functionName":"Ur","ranges":[{"startOffset":45418,"endOffset":45510,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":45548,"endOffset":45574,"count":1}],"isBlockCoverage":true},{"functionName":"_e","ranges":[{"startOffset":45574,"endOffset":45633,"count":0}],"isBlockCoverage":false},{"functionName":"bn","ranges":[{"startOffset":45634,"endOffset":45658,"count":0}],"isBlockCoverage":false},{"functionName":"nt","ranges":[{"startOffset":45673,"endOffset":45711,"count":0}],"isBlockCoverage":false},{"functionName":"V","ranges":[{"startOffset":45723,"endOffset":45834,"count":0}],"isBlockCoverage":false},{"functionName":"jr","ranges":[{"startOffset":45845,"endOffset":46006,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":46067,"endOffset":46095,"count":1}],"isBlockCoverage":true},{"functionName":"Wr","ranges":[{"startOffset":46095,"endOffset":46269,"count":0}],"isBlockCoverage":false},{"functionName":"pn","ranges":[{"startOffset":46270,"endOffset":46294,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":46318,"endOffset":46357,"count":0}],"isBlockCoverage":false},{"functionName":"Br","ranges":[{"startOffset":46377,"endOffset":46450,"count":0}],"isBlockCoverage":false},{"functionName":"Jr","ranges":[{"startOffset":46475,"endOffset":46601,"count":0}],"isBlockCoverage":false},{"functionName":"st","ranges":[{"startOffset":46619,"endOffset":46861,"count":0}],"isBlockCoverage":false},{"functionName":"Gr","ranges":[{"startOffset":46882,"endOffset":46979,"count":0}],"isBlockCoverage":false},{"functionName":"zr","ranges":[{"startOffset":47000,"endOffset":47264,"count":0}],"isBlockCoverage":false},{"functionName":"Hr","ranges":[{"startOffset":47291,"endOffset":47356,"count":0}],"isBlockCoverage":false},{"functionName":"Xr","ranges":[{"startOffset":47372,"endOffset":47470,"count":0}],"isBlockCoverage":false},{"functionName":"ot","ranges":[{"startOffset":47493,"endOffset":47558,"count":0}],"isBlockCoverage":false},{"functionName":"Kr","ranges":[{"startOffset":47573,"endOffset":47678,"count":0}],"isBlockCoverage":false},{"functionName":"Yr","ranges":[{"startOffset":47708,"endOffset":47759,"count":0}],"isBlockCoverage":false},{"functionName":"Qr","ranges":[{"startOffset":47782,"endOffset":47924,"count":0}],"isBlockCoverage":false},{"functionName":"ct","ranges":[{"startOffset":47982,"endOffset":48066,"count":1}],"isBlockCoverage":true},{"functionName":"ut","ranges":[{"startOffset":48088,"endOffset":48163,"count":0}],"isBlockCoverage":false},{"functionName":"lt","ranges":[{"startOffset":48178,"endOffset":48221,"count":0}],"isBlockCoverage":false},{"functionName":"Vr","ranges":[{"startOffset":48239,"endOffset":48283,"count":0}],"isBlockCoverage":false},{"functionName":"en","ranges":[{"startOffset":48306,"endOffset":48710,"count":0}],"isBlockCoverage":false},{"functionName":"ht","ranges":[{"startOffset":48732,"endOffset":48929,"count":0}],"isBlockCoverage":false},{"functionName":"tn","ranges":[{"startOffset":48957,"endOffset":49002,"count":0}],"isBlockCoverage":false},{"functionName":"rn","ranges":[{"startOffset":49018,"endOffset":49353,"count":0}],"isBlockCoverage":false},{"functionName":"ft","ranges":[{"startOffset":49380,"endOffset":49734,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":49757,"endOffset":49784,"count":1}],"isBlockCoverage":true},{"functionName":"nn","ranges":[{"startOffset":49784,"endOffset":50061,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":50061,"endOffset":50100,"count":0}],"isBlockCoverage":false},{"functionName":"dt","ranges":[{"startOffset":50101,"endOffset":50201,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50230,"endOffset":50373,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50404,"endOffset":50558,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50737,"endOffset":50750,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50864,"endOffset":51192,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":51214,"endOffset":51284,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":51312,"endOffset":51905,"count":48},{"startOffset":51370,"endOffset":51416,"count":0},{"startOffset":51463,"endOffset":51471,"count":0},{"startOffset":51767,"endOffset":51902,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":51780,"endOffset":51869,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":51870,"endOffset":51887,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":51928,"endOffset":52217,"count":0}],"isBlockCoverage":false}]},{"scriptId":"191","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/client-D6NvIMSC.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":549,"count":1}],"isBlockCoverage":true},{"functionName":"r","ranges":[{"startOffset":47,"endOffset":91,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":170,"endOffset":431,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":186,"endOffset":430,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":249,"endOffset":394,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":409,"endOffset":418,"count":1}],"isBlockCoverage":true},{"functionName":"exports.connectingToServer","ranges":[{"startOffset":480,"endOffset":493,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":494,"endOffset":500,"count":0}],"isBlockCoverage":false}]},{"scriptId":"192","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/index-BWFBUo6r.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1181,"count":1},{"startOffset":124,"endOffset":129,"count":0},{"startOffset":147,"endOffset":154,"count":0},{"startOffset":179,"endOffset":182,"count":0},{"startOffset":338,"endOffset":343,"count":0},{"startOffset":369,"endOffset":374,"count":0},{"startOffset":385,"endOffset":390,"count":0},{"startOffset":411,"endOffset":527,"count":0},{"startOffset":552,"endOffset":677,"count":0}],"isBlockCoverage":true},{"functionName":"p","ranges":[{"startOffset":47,"endOffset":91,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":500,"endOffset":521,"count":0}],"isBlockCoverage":false},{"functionName":"e","ranges":[{"startOffset":711,"endOffset":869,"count":9}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":808,"endOffset":868,"count":3},{"startOffset":820,"endOffset":863,"count":0}],"isBlockCoverage":true}]},{"scriptId":"193","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/tsx/dist/lexer-DgIbo0BU.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":13507,"count":1},{"startOffset":13365,"endOffset":13409,"count":0}],"isBlockCoverage":true},{"functionName":"k","ranges":[{"startOffset":47,"endOffset":91,"count":3}],"isBlockCoverage":true},{"functionName":"exports.ImportType.exports.ImportType","ranges":[{"startOffset":118,"endOffset":301,"count":1}],"isBlockCoverage":true},{"functionName":"U","ranges":[{"startOffset":406,"endOffset":1282,"count":0}],"isBlockCoverage":false},{"functionName":"Y","ranges":[{"startOffset":1295,"endOffset":1396,"count":0}],"isBlockCoverage":false},{"functionName":"R","ranges":[{"startOffset":1405,"endOffset":1479,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13390,"endOffset":13408,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13447,"endOffset":13467,"count":1}],"isBlockCoverage":true}]},{"scriptId":"194","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/bin/mocha.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4314,"count":1},{"startOffset":1650,"endOffset":1716,"count":0},{"startOffset":2156,"endOffset":2246,"count":0},{"startOffset":2326,"endOffset":4218,"count":0}],"isBlockCoverage":true},{"functionName":"disableTimeouts","ranges":[{"startOffset":889,"endOffset":1015,"count":0}],"isBlockCoverage":false},{"functionName":"trimV8Option","ranges":[{"startOffset":1241,"endOffset":1321,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1398,"endOffset":1525,"count":10},{"startOffset":1430,"endOffset":1480,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1595,"endOffset":1622,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1688,"endOffset":1715,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2115,"endOffset":2139,"count":11}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2517,"endOffset":2530,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2990,"endOffset":3419,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3471,"endOffset":4214,"count":0}],"isBlockCoverage":false}]},{"scriptId":"195","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/options.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9689,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2084,"endOffset":2214,"count":10}],"isBlockCoverage":true},{"functionName":"Object.assign","ranges":[{"startOffset":2140,"endOffset":2205,"count":2},{"startOffset":2190,"endOffset":2193,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2303,"endOffset":2391,"count":34}],"isBlockCoverage":true},{"functionName":"Object.assign","ranges":[{"startOffset":2352,"endOffset":2389,"count":7},{"startOffset":2375,"endOffset":2384,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2772,"endOffset":2816,"count":20}],"isBlockCoverage":true},{"functionName":"createErrorForNumericPositionalArg","ranges":[{"startOffset":3212,"endOffset":4053,"count":0}],"isBlockCoverage":false},{"functionName":"parse","ranges":[{"startOffset":4353,"endOffset":5900,"count":3},{"startOffset":4802,"endOffset":4808,"count":2},{"startOffset":4809,"endOffset":4826,"count":1},{"startOffset":5456,"endOffset":5543,"count":0},{"startOffset":5647,"endOffset":5760,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4862,"endOffset":5105,"count":23},{"startOffset":4968,"endOffset":5085,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5412,"endOffset":5427,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5595,"endOffset":5616,"count":22}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5820,"endOffset":5873,"count":0}],"isBlockCoverage":false},{"functionName":"loadRc","ranges":[{"startOffset":6284,"endOffset":6430,"count":1},{"startOffset":6398,"endOffset":6418,"count":0}],"isBlockCoverage":true},{"functionName":"loadPkgRc","ranges":[{"startOffset":6866,"endOffset":7980,"count":1},{"startOffset":6927,"endOffset":6951,"count":0},{"startOffset":7140,"endOffset":7524,"count":0},{"startOffset":7598,"endOffset":7704,"count":0},{"startOffset":7776,"endOffset":7957,"count":0}],"isBlockCoverage":true},{"functionName":"loadOptions","ranges":[{"startOffset":8697,"endOffset":9586,"count":1},{"startOffset":8923,"endOffset":8945,"count":0},{"startOffset":9347,"endOffset":9352,"count":0},{"startOffset":9368,"endOffset":9373,"count":0},{"startOffset":9444,"endOffset":9510,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8867,"endOffset":8899,"count":6}],"isBlockCoverage":true}]},{"scriptId":"196","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/picocolors/picocolors.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2663,"count":1},{"startOffset":16,"endOffset":21,"count":0},{"startOffset":37,"endOffset":42,"count":0},{"startOffset":56,"endOffset":61,"count":0},{"startOffset":226,"endOffset":231,"count":0},{"startOffset":239,"endOffset":261,"count":0}],"isBlockCoverage":true},{"functionName":"formatter","ranges":[{"startOffset":293,"endOffset":511,"count":0}],"isBlockCoverage":false},{"functionName":"replaceClose","ranges":[{"startOffset":532,"endOffset":791,"count":0}],"isBlockCoverage":false},{"functionName":"createColors","ranges":[{"startOffset":812,"endOffset":2586,"count":1},{"startOffset":863,"endOffset":874,"count":0}],"isBlockCoverage":true},{"functionName":"f","ranges":[{"startOffset":877,"endOffset":889,"count":41}],"isBlockCoverage":true}]},{"scriptId":"197","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/yargs-parser/build/index.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":42891,"count":1},{"startOffset":41288,"endOffset":41332,"count":0},{"startOffset":41414,"endOffset":41422,"count":0},{"startOffset":41469,"endOffset":41477,"count":0},{"startOffset":41520,"endOffset":41643,"count":0},{"startOffset":41756,"endOffset":41954,"count":0},{"startOffset":41991,"endOffset":41995,"count":0}],"isBlockCoverage":true},{"functionName":"camelCase","ranges":[{"startOffset":96,"endOffset":980,"count":44},{"startOffset":172,"endOffset":200,"count":0},{"startOffset":297,"endOffset":323,"count":1},{"startOffset":325,"endOffset":352,"count":1},{"startOffset":352,"endOffset":978,"count":43},{"startOffset":511,"endOffset":537,"count":0},{"startOffset":564,"endOffset":946,"count":554},{"startOffset":633,"endOffset":727,"count":51},{"startOffset":752,"endOffset":783,"count":511},{"startOffset":768,"endOffset":782,"count":460},{"startOffset":785,"endOffset":837,"count":51},{"startOffset":837,"endOffset":936,"count":503}],"isBlockCoverage":true},{"functionName":"decamelize","ranges":[{"startOffset":981,"endOffset":1474,"count":38},{"startOffset":1089,"endOffset":1095,"count":0},{"startOffset":1165,"endOffset":1447,"count":440},{"startOffset":1289,"endOffset":1297,"count":46},{"startOffset":1299,"endOffset":1377,"count":46},{"startOffset":1377,"endOffset":1441,"count":394}],"isBlockCoverage":true},{"functionName":"looksLikeNumber","ranges":[{"startOffset":1475,"endOffset":1786,"count":66},{"startOffset":1552,"endOffset":1565,"count":0},{"startOffset":1605,"endOffset":1617,"count":2},{"startOffset":1617,"endOffset":1660,"count":64},{"startOffset":1660,"endOffset":1672,"count":0},{"startOffset":1672,"endOffset":1707,"count":64},{"startOffset":1707,"endOffset":1720,"count":0},{"startOffset":1720,"endOffset":1785,"count":64}],"isBlockCoverage":true},{"functionName":"tokenizeArgString","ranges":[{"startOffset":1788,"endOffset":2573,"count":6},{"startOffset":1862,"endOffset":1940,"count":5},{"startOffset":1940,"endOffset":2125,"count":1},{"startOffset":2125,"endOffset":2554,"count":0},{"startOffset":2554,"endOffset":2572,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1893,"endOffset":1932,"count":66},{"startOffset":1920,"endOffset":1928,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2605,"endOffset":2843,"count":1}],"isBlockCoverage":true},{"functionName":"YargsParser","ranges":[{"startOffset":2941,"endOffset":2992,"count":1}],"isBlockCoverage":true},{"functionName":"parse","ranges":[{"startOffset":2997,"endOffset":39582,"count":6},{"startOffset":4702,"endOffset":4707,"count":0},{"startOffset":4855,"endOffset":4861,"count":2},{"startOffset":4862,"endOffset":4867,"count":4},{"startOffset":4991,"endOffset":5006,"count":3},{"startOffset":5665,"endOffset":5670,"count":0},{"startOffset":6308,"endOffset":6313,"count":0},{"startOffset":6469,"endOffset":6474,"count":0},{"startOffset":6632,"endOffset":6637,"count":0},{"startOffset":6794,"endOffset":6799,"count":3},{"startOffset":6959,"endOffset":6964,"count":3},{"startOffset":7431,"endOffset":7687,"count":3},{"startOffset":7736,"endOffset":8310,"count":3},{"startOffset":7817,"endOffset":7979,"count":0},{"startOffset":8807,"endOffset":16076,"count":55},{"startOffset":9086,"endOffset":9114,"count":11},{"startOffset":9116,"endOffset":9168,"count":0},{"startOffset":9224,"endOffset":9302,"count":0},{"startOffset":9410,"endOffset":9972,"count":0},{"startOffset":10020,"endOffset":10056,"count":0},{"startOffset":10058,"endOffset":10328,"count":0},{"startOffset":10369,"endOffset":10435,"count":44},{"startOffset":10437,"endOffset":11646,"count":11},{"startOffset":10720,"endOffset":11614,"count":0},{"startOffset":11646,"endOffset":16066,"count":44},{"startOffset":11691,"endOffset":11890,"count":0},{"startOffset":11933,"endOffset":11956,"count":0},{"startOffset":11958,"endOffset":12565,"count":0},{"startOffset":12608,"endOffset":12631,"count":0},{"startOffset":12633,"endOffset":15492,"count":0},{"startOffset":15536,"endOffset":15574,"count":0},{"startOffset":15575,"endOffset":15636,"count":0},{"startOffset":15638,"endOffset":15737,"count":0},{"startOffset":15773,"endOffset":15857,"count":0},{"startOffset":15916,"endOffset":15996,"count":0},{"startOffset":16361,"endOffset":16386,"count":0},{"startOffset":16564,"endOffset":16582,"count":2},{"startOffset":16596,"endOffset":16620,"count":0},{"startOffset":16767,"endOffset":16799,"count":3},{"startOffset":16801,"endOffset":16958,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5696,"endOffset":6274,"count":51},{"startOffset":5761,"endOffset":5770,"count":0},{"startOffset":6130,"endOffset":6192,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5830,"endOffset":6077,"count":429}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6339,"endOffset":6436,"count":126}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6500,"endOffset":6599,"count":40}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6663,"endOffset":6762,"count":10}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6825,"endOffset":6923,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6990,"endOffset":7091,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7185,"endOffset":7373,"count":88}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7481,"endOffset":7675,"count":132}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7882,"endOffset":7963,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8088,"endOffset":8284,"count":1},{"startOffset":8159,"endOffset":8189,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8419,"endOffset":8576,"count":26},{"startOffset":8468,"endOffset":8473,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8483,"endOffset":8564,"count":19}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16429,"endOffset":16534,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":16646,"endOffset":16714,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":16840,"endOffset":16880,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":16890,"endOffset":16946,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":17055,"endOffset":17070,"count":107}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17081,"endOffset":17333,"count":121},{"startOffset":17150,"endOffset":17172,"count":52},{"startOffset":17174,"endOffset":17283,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17229,"endOffset":17252,"count":2}],"isBlockCoverage":true},{"functionName":"pushPositional","ranges":[{"startOffset":17354,"endOffset":17625,"count":44},{"startOffset":17508,"endOffset":17549,"count":0}],"isBlockCoverage":true},{"functionName":"eatNargs","ranges":[{"startOffset":17634,"endOffset":19255,"count":0}],"isBlockCoverage":false},{"functionName":"eatArray","ranges":[{"startOffset":19264,"endOffset":21069,"count":11},{"startOffset":19522,"endOffset":19555,"count":0},{"startOffset":19557,"endOffset":19610,"count":0},{"startOffset":19720,"endOffset":19743,"count":0},{"startOffset":19744,"endOffset":19774,"count":0},{"startOffset":19777,"endOffset":19986,"count":0},{"startOffset":20059,"endOffset":20158,"count":0},{"startOffset":20220,"endOffset":20729,"count":21},{"startOffset":20279,"endOffset":20302,"count":0},{"startOffset":20343,"endOffset":20376,"count":0},{"startOffset":20377,"endOffset":20410,"count":0},{"startOffset":20437,"endOffset":20443,"count":0},{"startOffset":20521,"endOffset":20544,"count":10},{"startOffset":20545,"endOffset":20575,"count":10},{"startOffset":20601,"endOffset":20607,"count":10},{"startOffset":20607,"endOffset":20729,"count":11},{"startOffset":20791,"endOffset":20906,"count":0},{"startOffset":20908,"endOffset":21001,"count":0}],"isBlockCoverage":true},{"functionName":"setArg","ranges":[{"startOffset":21078,"endOffset":22995,"count":40},{"startOffset":21171,"endOffset":21211,"count":3},{"startOffset":21213,"endOffset":21410,"count":3},{"startOffset":21604,"endOffset":21809,"count":31},{"startOffset":21846,"endOffset":21878,"count":0},{"startOffset":21880,"endOffset":22357,"count":0},{"startOffset":22412,"endOffset":22450,"count":2},{"startOffset":22452,"endOffset":22985,"count":2},{"startOffset":22515,"endOffset":22520,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21264,"endOffset":21343,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21649,"endOffset":21793,"count":13}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21941,"endOffset":22341,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22552,"endOffset":22969,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":22696,"endOffset":22769,"count":8}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":22795,"endOffset":22927,"count":9},{"startOffset":22868,"endOffset":22892,"count":0}],"isBlockCoverage":true},{"functionName":"addNewAlias","ranges":[{"startOffset":23004,"endOffset":23349,"count":4},{"startOffset":23076,"endOffset":23104,"count":2},{"startOffset":23107,"endOffset":23210,"count":2},{"startOffset":23250,"endOffset":23280,"count":3},{"startOffset":23283,"endOffset":23339,"count":1}],"isBlockCoverage":true},{"functionName":"processValue","ranges":[{"startOffset":23358,"endOffset":24356,"count":51},{"startOffset":23446,"endOffset":23501,"count":0},{"startOffset":23552,"endOffset":23589,"count":49},{"startOffset":23591,"endOffset":23693,"count":2},{"startOffset":23658,"endOffset":23679,"count":0},{"startOffset":23753,"endOffset":23814,"count":17},{"startOffset":23831,"endOffset":23860,"count":34},{"startOffset":23913,"endOffset":23966,"count":0},{"startOffset":23968,"endOffset":24020,"count":0},{"startOffset":24075,"endOffset":24112,"count":2},{"startOffset":24114,"endOffset":24320,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23763,"endOffset":23813,"count":26}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":24192,"endOffset":24233,"count":0}],"isBlockCoverage":false},{"functionName":"maybeCoerceNumber","ranges":[{"startOffset":24365,"endOffset":25009,"count":113},{"startOffset":24465,"endOffset":24479,"count":46},{"startOffset":24497,"endOffset":24510,"count":22},{"startOffset":24510,"endOffset":24564,"count":91},{"startOffset":24564,"endOffset":24601,"count":71},{"startOffset":24602,"endOffset":24626,"count":68},{"startOffset":24628,"endOffset":24973,"count":66},{"startOffset":24696,"endOffset":24729,"count":2},{"startOffset":24730,"endOffset":24791,"count":2},{"startOffset":24832,"endOffset":24895,"count":64},{"startOffset":24897,"endOffset":24959,"count":2},{"startOffset":24973,"endOffset":25008,"count":91}],"isBlockCoverage":true},{"functionName":"setConfig","ranges":[{"startOffset":25018,"endOffset":26653,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25222,"endOffset":26641,"count":1},{"startOffset":25356,"endOffset":26627,"count":0}],"isBlockCoverage":true},{"functionName":"setConfigObject","ranges":[{"startOffset":26662,"endOffset":27338,"count":7}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":26743,"endOffset":27326,"count":34},{"startOffset":26840,"endOffset":26858,"count":0},{"startOffset":26912,"endOffset":26929,"count":11},{"startOffset":26930,"endOffset":26954,"count":11},{"startOffset":26955,"endOffset":26987,"count":0},{"startOffset":26989,"endOffset":27061,"count":0},{"startOffset":27143,"endOffset":27221,"count":5},{"startOffset":27186,"endOffset":27220,"count":0},{"startOffset":27223,"endOffset":27294,"count":29}],"isBlockCoverage":true},{"functionName":"setConfigObjects","ranges":[{"startOffset":27347,"endOffset":27591,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":27471,"endOffset":27565,"count":7}],"isBlockCoverage":true},{"functionName":"applyEnvVars","ranges":[{"startOffset":27600,"endOffset":28476,"count":12},{"startOffset":27715,"endOffset":27784,"count":0},{"startOffset":27785,"endOffset":27789,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":27865,"endOffset":28464,"count":0}],"isBlockCoverage":false},{"functionName":"applyCoercions","ranges":[{"startOffset":28485,"endOffset":29332,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":28618,"endOffset":29320,"count":66},{"startOffset":28674,"endOffset":29306,"count":61},{"startOffset":28798,"endOffset":29288,"count":9},{"startOffset":28973,"endOffset":28978,"count":1},{"startOffset":29186,"endOffset":29266,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":28994,"endOffset":29133,"count":14}],"isBlockCoverage":true},{"functionName":"setPlaceholderKeys","ranges":[{"startOffset":29341,"endOffset":29633,"count":0}],"isBlockCoverage":false},{"functionName":"applyDefaultsAndAliases","ranges":[{"startOffset":29642,"endOffset":30259,"count":12}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":29759,"endOffset":30247,"count":90},{"startOffset":29826,"endOffset":30233,"count":36},{"startOffset":29948,"endOffset":29970,"count":10},{"startOffset":30005,"endOffset":30010,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30020,"endOffset":30213,"count":26},{"startOffset":30118,"endOffset":30125,"count":0}],"isBlockCoverage":true},{"functionName":"hasKey","ranges":[{"startOffset":30268,"endOffset":30693,"count":150},{"startOffset":30620,"endOffset":30633,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30449,"endOffset":30515,"count":0}],"isBlockCoverage":false},{"functionName":"setKey","ranges":[{"startOffset":30702,"endOffset":33151,"count":115},{"startOffset":31801,"endOffset":31837,"count":0},{"startOffset":31839,"endOffset":32083,"count":0},{"startOffset":32123,"endOffset":32182,"count":0},{"startOffset":32227,"endOffset":32721,"count":10},{"startOffset":32387,"endOffset":32451,"count":0},{"startOffset":32470,"endOffset":32707,"count":0},{"startOffset":32721,"endOffset":33141,"count":105},{"startOffset":32780,"endOffset":32852,"count":20},{"startOffset":32828,"endOffset":32837,"count":0},{"startOffset":32852,"endOffset":33141,"count":85},{"startOffset":32910,"endOffset":32963,"count":0},{"startOffset":32964,"endOffset":33016,"count":0},{"startOffset":33019,"endOffset":33076,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30890,"endOffset":31505,"count":0}],"isBlockCoverage":false},{"functionName":"extendAliases","ranges":[{"startOffset":33160,"endOffset":34753,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33219,"endOffset":34741,"count":24},{"startOffset":33268,"endOffset":33273,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33283,"endOffset":34725,"count":277},{"startOffset":33368,"endOffset":33375,"count":106},{"startOffset":33375,"endOffset":33440,"count":171},{"startOffset":33440,"endOffset":33445,"count":64}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33507,"endOffset":33934,"count":292},{"startOffset":33562,"endOffset":33602,"count":59},{"startOffset":33604,"endOffset":33912,"count":38}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33996,"endOffset":34449,"count":330},{"startOffset":34052,"endOffset":34070,"count":234},{"startOffset":34071,"endOffset":34111,"count":38},{"startOffset":34113,"endOffset":34427,"count":38},{"startOffset":34215,"endOffset":34254,"count":2},{"startOffset":34256,"endOffset":34401,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":34499,"endOffset":34705,"count":159}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":34596,"endOffset":34680,"count":221}],"isBlockCoverage":true},{"functionName":"checkAllAliases","ranges":[{"startOffset":34762,"endOffset":35047,"count":686},{"startOffset":34857,"endOffset":34862,"count":170},{"startOffset":35012,"endOffset":35028,"count":79},{"startOffset":35029,"endOffset":35036,"count":607}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":34956,"endOffset":34981,"count":909}],"isBlockCoverage":true},{"functionName":"hasAnyFlag","ranges":[{"startOffset":35056,"endOffset":35354,"count":0}],"isBlockCoverage":false},{"functionName":"hasFlagsMatching","ranges":[{"startOffset":35363,"endOffset":35643,"count":0}],"isBlockCoverage":false},{"functionName":"hasAllShortFlags","ranges":[{"startOffset":35652,"endOffset":36498,"count":0}],"isBlockCoverage":false},{"functionName":"isUnknownOptionAsArg","ranges":[{"startOffset":36507,"endOffset":36638,"count":21},{"startOffset":36604,"endOffset":36627,"count":0}],"isBlockCoverage":true},{"functionName":"isUnknownOption","ranges":[{"startOffset":36647,"endOffset":37352,"count":0}],"isBlockCoverage":false},{"functionName":"defaultValue","ranges":[{"startOffset":37361,"endOffset":37688,"count":0}],"isBlockCoverage":false},{"functionName":"defaultForType","ranges":[{"startOffset":37697,"endOffset":38033,"count":0}],"isBlockCoverage":false},{"functionName":"guessType","ranges":[{"startOffset":38042,"endOffset":38602,"count":0}],"isBlockCoverage":false},{"functionName":"isUndefined","ranges":[{"startOffset":38611,"endOffset":38686,"count":97}],"isBlockCoverage":true},{"functionName":"checkConfiguration","ranges":[{"startOffset":38695,"endOffset":39267,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":38770,"endOffset":39255,"count":0}],"isBlockCoverage":false},{"functionName":"combineAliases","ranges":[{"startOffset":39585,"endOffset":40787,"count":6},{"startOffset":39925,"endOffset":40413,"count":107},{"startOffset":39991,"endOffset":40403,"count":1055},{"startOffset":40184,"endOffset":40389,"count":0},{"startOffset":40403,"endOffset":40413,"count":1055},{"startOffset":40413,"endOffset":40419,"count":107}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":39746,"endOffset":39824,"count":107}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40049,"endOffset":40143,"count":2238}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40444,"endOffset":40762,"count":107}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40507,"endOffset":40582,"count":228}],"isBlockCoverage":true},{"functionName":"increment","ranges":[{"startOffset":40788,"endOffset":40862,"count":115},{"startOffset":40845,"endOffset":40855,"count":0}],"isBlockCoverage":true},{"functionName":"sanitizeKey","ranges":[{"startOffset":40863,"endOffset":40967,"count":115},{"startOffset":40928,"endOffset":40949,"count":0}],"isBlockCoverage":true},{"functionName":"stripQuotes","ranges":[{"startOffset":40968,"endOffset":41180,"count":0}],"isBlockCoverage":false},{"functionName":"env","ranges":[{"startOffset":42061,"endOffset":42094,"count":0}],"isBlockCoverage":false},{"functionName":"require","ranges":[{"startOffset":42192,"endOffset":42511,"count":0}],"isBlockCoverage":false},{"functionName":"Parser","ranges":[{"startOffset":42536,"endOffset":42644,"count":0}],"isBlockCoverage":false},{"functionName":"yargsParser.detailed","ranges":[{"startOffset":42669,"endOffset":42739,"count":6}],"isBlockCoverage":true}]},{"scriptId":"198","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/run-option-metadata.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3008,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1685,"endOffset":1995,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1835,"endOffset":1977,"count":44},{"startOffset":1906,"endOffset":1911,"count":24}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1933,"endOffset":1971,"count":23}],"isBlockCoverage":true},{"functionName":"exports.isMochaFlag","ranges":[{"startOffset":2206,"endOffset":2273,"count":10}],"isBlockCoverage":true},{"functionName":"exports.expectedTypeForFlag","ranges":[{"startOffset":2629,"endOffset":3006,"count":0}],"isBlockCoverage":false}]},{"scriptId":"199","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/one-and-dones.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1549,"count":1}],"isBlockCoverage":true},{"functionName":"showKeys","ranges":[{"startOffset":510,"endOffset":996,"count":0}],"isBlockCoverage":false},{"functionName":"list-interfaces","ranges":[{"startOffset":1181,"endOffset":1224,"count":0}],"isBlockCoverage":false},{"functionName":"list-reporters","ranges":[{"startOffset":1309,"endOffset":1351,"count":0}],"isBlockCoverage":false}]},{"scriptId":"200","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/mocha.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":34962,"count":1}],"isBlockCoverage":true},{"functionName":"exports.afterEach","ranges":[{"startOffset":2497,"endOffset":2613,"count":0}],"isBlockCoverage":false},{"functionName":"exports.after","ranges":[{"startOffset":2631,"endOffset":2748,"count":0}],"isBlockCoverage":false},{"functionName":"exports.beforeEach","ranges":[{"startOffset":2771,"endOffset":2873,"count":0}],"isBlockCoverage":false},{"functionName":"exports.before","ranges":[{"startOffset":2892,"endOffset":2995,"count":0}],"isBlockCoverage":false},{"functionName":"exports.describe","ranges":[{"startOffset":3016,"endOffset":3116,"count":0}],"isBlockCoverage":false},{"functionName":"exports.describe.only","ranges":[{"startOffset":3142,"endOffset":3259,"count":0}],"isBlockCoverage":false},{"functionName":"exports.describe.skip","ranges":[{"startOffset":3285,"endOffset":3402,"count":0}],"isBlockCoverage":false},{"functionName":"exports.it","ranges":[{"startOffset":3417,"endOffset":3510,"count":0}],"isBlockCoverage":false},{"functionName":"exports.it.only","ranges":[{"startOffset":3530,"endOffset":3628,"count":0}],"isBlockCoverage":false},{"functionName":"exports.it.skip","ranges":[{"startOffset":3648,"endOffset":3746,"count":0}],"isBlockCoverage":false},{"functionName":"exports.run","ranges":[{"startOffset":4047,"endOffset":4116,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha","ranges":[{"startOffset":4262,"endOffset":6701,"count":1},{"startOffset":5022,"endOffset":5025,"count":0},{"startOffset":5079,"endOffset":5119,"count":0},{"startOffset":5495,"endOffset":5539,"count":0},{"startOffset":6547,"endOffset":6611,"count":0},{"startOffset":6616,"endOffset":6699,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5391,"endOffset":5460,"count":15},{"startOffset":5430,"endOffset":5456,"count":1}],"isBlockCoverage":true},{"functionName":"Mocha.bail","ranges":[{"startOffset":6940,"endOffset":7009,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.addFile","ranges":[{"startOffset":7354,"endOffset":7413,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.reporter","ranges":[{"startOffset":7990,"endOffset":9146,"count":1},{"startOffset":8075,"endOffset":8115,"count":0},{"startOffset":8155,"endOffset":8164,"count":0},{"startOffset":8405,"endOffset":8923,"count":0}],"isBlockCoverage":true},{"functionName":"Mocha.ui","ranges":[{"startOffset":9480,"endOffset":9987,"count":1},{"startOffset":9549,"endOffset":9578,"count":0},{"startOffset":9598,"endOffset":9606,"count":0},{"startOffset":9676,"endOffset":9838,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9913,"endOffset":9967,"count":11}],"isBlockCoverage":true},{"functionName":"Mocha.loadFiles","ranges":[{"startOffset":10522,"endOffset":10858,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.loadFilesAsync","ranges":[{"startOffset":11712,"endOffset":12153,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11873,"endOffset":11958,"count":11}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11964,"endOffset":12128,"count":11}],"isBlockCoverage":true},{"functionName":"Mocha.unloadFile","ranges":[{"startOffset":12367,"endOffset":12583,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.unloadFiles","ranges":[{"startOffset":13025,"endOffset":13389,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.fgrep","ranges":[{"startOffset":13744,"endOffset":13844,"count":1},{"startOffset":13795,"endOffset":13843,"count":0}],"isBlockCoverage":true},{"functionName":"Mocha.grep","ranges":[{"startOffset":14985,"endOffset":15273,"count":1},{"startOffset":15027,"endOffset":15217,"count":0}],"isBlockCoverage":true},{"functionName":"Mocha.invert","ranges":[{"startOffset":15544,"endOffset":15604,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.checkLeaks","ranges":[{"startOffset":15900,"endOffset":15990,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.cleanReferencesAfterRun","ranges":[{"startOffset":16388,"endOffset":16510,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.dispose","ranges":[{"startOffset":16805,"endOffset":17140,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.fullTrace","ranges":[{"startOffset":17403,"endOffset":17490,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.global","ranges":[{"startOffset":17911,"endOffset":18126,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":18036,"endOffset":18107,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.color","ranges":[{"startOffset":18508,"endOffset":18583,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.inlineDiffs","ranges":[{"startOffset":18883,"endOffset":18976,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.diff","ranges":[{"startOffset":19233,"endOffset":19305,"count":1}],"isBlockCoverage":true},{"functionName":"Mocha.timeout","ranges":[{"startOffset":19878,"endOffset":19942,"count":1}],"isBlockCoverage":true},{"functionName":"Mocha.retries","ranges":[{"startOffset":20311,"endOffset":20375,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.slow","ranges":[{"startOffset":20752,"endOffset":20813,"count":1}],"isBlockCoverage":true},{"functionName":"Mocha.asyncOnly","ranges":[{"startOffset":21104,"endOffset":21191,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.noHighlighting","ranges":[{"startOffset":21333,"endOffset":21401,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.allowUncaught","ranges":[{"startOffset":21672,"endOffset":21771,"count":0}],"isBlockCoverage":false},{"functionName":"delay","ranges":[{"startOffset":22038,"endOffset":22102,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.dryRun","ranges":[{"startOffset":22349,"endOffset":22427,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.failZero","ranges":[{"startOffset":22678,"endOffset":22762,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.passOnFailingTestSuite","ranges":[{"startOffset":23038,"endOffset":23162,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.forbidOnly","ranges":[{"startOffset":23427,"endOffset":23517,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha.forbidPending","ranges":[{"startOffset":23803,"endOffset":23902,"count":0}],"isBlockCoverage":false},{"functionName":"Mocha._guardRunningStateTransition","ranges":[{"startOffset":24069,"endOffset":24753,"count":1},{"startOffset":24126,"endOffset":24303,"count":0},{"startOffset":24410,"endOffset":24751,"count":0}],"isBlockCoverage":true},{"functionName":"Mocha.run","ranges":[{"startOffset":25623,"endOffset":27950,"count":1},{"startOffset":25743,"endOffset":25808,"count":0},{"startOffset":25858,"endOffset":25885,"count":0},{"startOffset":26551,"endOffset":26603,"count":0},{"startOffset":26703,"endOffset":26762,"count":0}],"isBlockCoverage":true},{"functionName":"done","ranges":[{"startOffset":26890,"endOffset":27203,"count":1},{"startOffset":27032,"endOffset":27050,"count":0},{"startOffset":27064,"endOffset":27077,"count":0},{"startOffset":27124,"endOffset":27166,"count":0}],"isBlockCoverage":true},{"functionName":"runAsync","ranges":[{"startOffset":27225,"endOffset":27657,"count":1},{"startOffset":27341,"endOffset":27385,"count":0},{"startOffset":27566,"endOffset":27628,"count":0}],"isBlockCoverage":true},{"functionName":"rootHooks","ranges":[{"startOffset":28110,"endOffset":28668,"count":0}],"isBlockCoverage":false},{"functionName":"parallelMode","ranges":[{"startOffset":29349,"endOffset":30156,"count":0}],"isBlockCoverage":false},{"functionName":"lazyLoadFiles","ranges":[{"startOffset":30585,"endOffset":30715,"count":1}],"isBlockCoverage":true},{"functionName":"globalSetup","ranges":[{"startOffset":31007,"endOffset":31206,"count":1}],"isBlockCoverage":true},{"functionName":"globalTeardown","ranges":[{"startOffset":31510,"endOffset":31733,"count":1}],"isBlockCoverage":true},{"functionName":"runGlobalSetup","ranges":[{"startOffset":32206,"endOffset":32499,"count":0}],"isBlockCoverage":false},{"functionName":"runGlobalTeardown","ranges":[{"startOffset":32976,"endOffset":33292,"count":0}],"isBlockCoverage":false},{"functionName":"_runGlobalFixtures","ranges":[{"startOffset":33566,"endOffset":33743,"count":0}],"isBlockCoverage":false},{"functionName":"enableGlobalSetup","ranges":[{"startOffset":33971,"endOffset":34085,"count":1}],"isBlockCoverage":true},{"functionName":"enableGlobalTeardown","ranges":[{"startOffset":34322,"endOffset":34446,"count":1}],"isBlockCoverage":true},{"functionName":"hasGlobalSetupFixtures","ranges":[{"startOffset":34606,"endOffset":34694,"count":1}],"isBlockCoverage":true},{"functionName":"hasGlobalTeardownFixtures","ranges":[{"startOffset":34862,"endOffset":34960,"count":1}],"isBlockCoverage":true}]},{"scriptId":"201","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/escape-string-regexp/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":457,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":32,"endOffset":455,"count":0}],"isBlockCoverage":false}]},{"scriptId":"202","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":946,"count":1}],"isBlockCoverage":true}]},{"scriptId":"203","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/base.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12836,"count":1},{"startOffset":976,"endOffset":999,"count":0},{"startOffset":2564,"endOffset":2718,"count":0}],"isBlockCoverage":true},{"functionName":"getBrowserWindowSize","ranges":[{"startOffset":598,"endOffset":798,"count":0}],"isBlockCoverage":false},{"functionName":"exports.color","ranges":[{"startOffset":2278,"endOffset":2427,"count":267},{"startOffset":2356,"endOffset":2426,"count":0}],"isBlockCoverage":true},{"functionName":"hide","ranges":[{"startOffset":2830,"endOffset":2898,"count":0}],"isBlockCoverage":false},{"functionName":"show","ranges":[{"startOffset":2909,"endOffset":2977,"count":0}],"isBlockCoverage":false},{"functionName":"deleteLine","ranges":[{"startOffset":2994,"endOffset":3060,"count":0}],"isBlockCoverage":false},{"functionName":"beginningOfLine","ranges":[{"startOffset":3082,"endOffset":3148,"count":0}],"isBlockCoverage":false},{"functionName":"CR","ranges":[{"startOffset":3157,"endOffset":3320,"count":0}],"isBlockCoverage":false},{"functionName":"exports.showDiff","ranges":[{"startOffset":3360,"endOffset":3508,"count":0}],"isBlockCoverage":false},{"functionName":"stringifyDiffObjs","ranges":[{"startOffset":3512,"endOffset":3717,"count":0}],"isBlockCoverage":false},{"functionName":"exports.generateDiff","ranges":[{"startOffset":4028,"endOffset":4807,"count":0}],"isBlockCoverage":false},{"functionName":"getFullErrorStack","ranges":[{"startOffset":4990,"endOffset":5919,"count":0}],"isBlockCoverage":false},{"functionName":"exports.list","ranges":[{"startOffset":6147,"endOffset":7616,"count":0}],"isBlockCoverage":false},{"functionName":"Base","ranges":[{"startOffset":7916,"endOffset":8999,"count":1},{"startOffset":8004,"endOffset":8061,"count":0},{"startOffset":8087,"endOffset":8092,"count":0},{"startOffset":8252,"endOffset":8294,"count":0},{"startOffset":8331,"endOffset":8364,"count":0},{"startOffset":8366,"endOffset":8421,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8452,"endOffset":8664,"count":95},{"startOffset":8507,"endOffset":8541,"count":0},{"startOffset":8584,"endOffset":8620,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8697,"endOffset":8995,"count":0}],"isBlockCoverage":false},{"functionName":"Base.epilogue","ranges":[{"startOffset":9144,"endOffset":9763,"count":1},{"startOffset":9372,"endOffset":9376,"count":0},{"startOffset":9444,"endOffset":9558,"count":0},{"startOffset":9596,"endOffset":9739,"count":0}],"isBlockCoverage":true},{"functionName":"pad","ranges":[{"startOffset":9889,"endOffset":9990,"count":0}],"isBlockCoverage":false},{"functionName":"inlineDiff","ranges":[{"startOffset":10162,"endOffset":10720,"count":0}],"isBlockCoverage":false},{"functionName":"unifiedDiff","ranges":[{"startOffset":10900,"endOffset":11702,"count":0}],"isBlockCoverage":false},{"functionName":"errorDiff","ranges":[{"startOffset":11847,"endOffset":12199,"count":0}],"isBlockCoverage":false},{"functionName":"colorLines","ranges":[{"startOffset":12342,"endOffset":12487,"count":0}],"isBlockCoverage":false},{"functionName":"sameType","ranges":[{"startOffset":12700,"endOffset":12781,"count":0}],"isBlockCoverage":false}]},{"scriptId":"204","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8469,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":174,"endOffset":223,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":302,"endOffset":352,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":433,"endOffset":485,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":566,"endOffset":617,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":705,"endOffset":762,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":850,"endOffset":907,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":987,"endOffset":1039,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1127,"endOffset":1187,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1266,"endOffset":1316,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1394,"endOffset":1447,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1523,"endOffset":1568,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1645,"endOffset":1692,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1770,"endOffset":1818,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1900,"endOffset":1956,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2041,"endOffset":2096,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2174,"endOffset":2222,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2309,"endOffset":2366,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2446,"endOffset":2498,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2572,"endOffset":2617,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2696,"endOffset":2746,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2827,"endOffset":2881,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2965,"endOffset":3021,"count":0}],"isBlockCoverage":false},{"functionName":"_interopRequireDefault","ranges":[{"startOffset":4446,"endOffset":4543,"count":1},{"startOffset":4520,"endOffset":4540,"count":0}],"isBlockCoverage":true}]},{"scriptId":"205","url":"node:internal/source_map/source_map_cache_map","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3883,"count":1}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":320,"endOffset":345,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":1417,"endOffset":1983,"count":1}],"isBlockCoverage":false},{"functionName":"#cleanup","ranges":[{"startOffset":1463,"endOffset":1912,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":2355,"endOffset":2670,"count":86}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2483,"endOffset":2529,"count":172}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":2805,"endOffset":3033,"count":0}],"isBlockCoverage":false},{"functionName":"get size","ranges":[{"startOffset":3209,"endOffset":3262,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3266,"endOffset":3792,"count":0}],"isBlockCoverage":false}]},{"scriptId":"206","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/base.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":36205,"count":1}],"isBlockCoverage":true},{"functionName":"Diff","ranges":[{"startOffset":157,"endOffset":175,"count":8}],"isBlockCoverage":true},{"functionName":"diff","ranges":[{"startOffset":257,"endOffset":6580,"count":0}],"isBlockCoverage":false},{"functionName":"addToPath","ranges":[{"startOffset":6649,"endOffset":7310,"count":0}],"isBlockCoverage":false},{"functionName":"extractCommon","ranges":[{"startOffset":7383,"endOffset":8302,"count":0}],"isBlockCoverage":false},{"functionName":"equals","ranges":[{"startOffset":8368,"endOffset":8603,"count":0}],"isBlockCoverage":false},{"functionName":"removeEmpty","ranges":[{"startOffset":8674,"endOffset":8850,"count":0}],"isBlockCoverage":false},{"functionName":"castInput","ranges":[{"startOffset":8919,"endOffset":8968,"count":0}],"isBlockCoverage":false},{"functionName":"tokenize","ranges":[{"startOffset":9036,"endOffset":9096,"count":0}],"isBlockCoverage":false},{"functionName":"join","ranges":[{"startOffset":9160,"endOffset":9213,"count":0}],"isBlockCoverage":false},{"functionName":"postProcess","ranges":[{"startOffset":9284,"endOffset":9351,"count":0}],"isBlockCoverage":false},{"functionName":"buildValues","ranges":[{"startOffset":9355,"endOffset":10779,"count":0}],"isBlockCoverage":false}]},{"scriptId":"207","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/character.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1943,"count":1}],"isBlockCoverage":true},{"functionName":"_interopRequireDefault","ranges":[{"startOffset":325,"endOffset":422,"count":1},{"startOffset":399,"endOffset":419,"count":0}],"isBlockCoverage":true},{"functionName":"diffChars","ranges":[{"startOffset":668,"endOffset":769,"count":0}],"isBlockCoverage":false}]},{"scriptId":"208","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/word.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":46865,"count":1}],"isBlockCoverage":true},{"functionName":"_interopRequireDefault","ranges":[{"startOffset":489,"endOffset":586,"count":1},{"startOffset":563,"endOffset":583,"count":0}],"isBlockCoverage":true},{"functionName":"wordDiff.equals","ranges":[{"startOffset":3098,"endOffset":3268,"count":0}],"isBlockCoverage":false},{"functionName":"wordDiff.tokenize","ranges":[{"startOffset":3290,"endOffset":4442,"count":0}],"isBlockCoverage":false},{"functionName":"wordDiff.join","ranges":[{"startOffset":4460,"endOffset":5024,"count":0}],"isBlockCoverage":false},{"functionName":"wordDiff.postProcess","ranges":[{"startOffset":5049,"endOffset":5890,"count":0}],"isBlockCoverage":false},{"functionName":"diffWords","ranges":[{"startOffset":5892,"endOffset":6509,"count":0}],"isBlockCoverage":false},{"functionName":"dedupeWhitespaceInChangeObjects","ranges":[{"startOffset":6510,"endOffset":16533,"count":0}],"isBlockCoverage":false},{"functionName":"wordWithSpaceDiff.tokenize","ranges":[{"startOffset":16792,"endOffset":17379,"count":0}],"isBlockCoverage":false},{"functionName":"diffWordsWithSpace","ranges":[{"startOffset":17381,"endOffset":17495,"count":0}],"isBlockCoverage":false}]},{"scriptId":"209","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/util/string.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":13916,"count":1}],"isBlockCoverage":true},{"functionName":"longestCommonPrefix","ranges":[{"startOffset":537,"endOffset":745,"count":0}],"isBlockCoverage":false},{"functionName":"longestCommonSuffix","ranges":[{"startOffset":746,"endOffset":1259,"count":0}],"isBlockCoverage":false},{"functionName":"replacePrefix","ranges":[{"startOffset":1260,"endOffset":1640,"count":0}],"isBlockCoverage":false},{"functionName":"replaceSuffix","ranges":[{"startOffset":1641,"endOffset":2076,"count":0}],"isBlockCoverage":false},{"functionName":"removePrefix","ranges":[{"startOffset":2077,"endOffset":2168,"count":0}],"isBlockCoverage":false},{"functionName":"removeSuffix","ranges":[{"startOffset":2169,"endOffset":2260,"count":0}],"isBlockCoverage":false},{"functionName":"maximumOverlap","ranges":[{"startOffset":2261,"endOffset":2365,"count":0}],"isBlockCoverage":false},{"functionName":"overlapCount","ranges":[{"startOffset":2427,"endOffset":3410,"count":0}],"isBlockCoverage":false},{"functionName":"hasOnlyWinLineEndings","ranges":[{"startOffset":3490,"endOffset":3622,"count":0}],"isBlockCoverage":false},{"functionName":"hasOnlyUnixLineEndings","ranges":[{"startOffset":3699,"endOffset":3802,"count":0}],"isBlockCoverage":false}]},{"scriptId":"210","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/line.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11226,"count":1}],"isBlockCoverage":true},{"functionName":"_interopRequireDefault","ranges":[{"startOffset":457,"endOffset":554,"count":1},{"startOffset":531,"endOffset":551,"count":0}],"isBlockCoverage":true},{"functionName":"lineDiff.tokenize","ranges":[{"startOffset":810,"endOffset":1549,"count":0}],"isBlockCoverage":false},{"functionName":"lineDiff.equals","ranges":[{"startOffset":1569,"endOffset":2775,"count":0}],"isBlockCoverage":false},{"functionName":"diffLines","ranges":[{"startOffset":2777,"endOffset":2875,"count":0}],"isBlockCoverage":false},{"functionName":"diffTrimmedLines","ranges":[{"startOffset":3307,"endOffset":3676,"count":0}],"isBlockCoverage":false}]},{"scriptId":"211","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/util/params.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1734,"count":1}],"isBlockCoverage":true},{"functionName":"generateOptions","ranges":[{"startOffset":173,"endOffset":500,"count":0}],"isBlockCoverage":false}]},{"scriptId":"212","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/sentence.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2358,"count":1}],"isBlockCoverage":true},{"functionName":"_interopRequireDefault","ranges":[{"startOffset":332,"endOffset":429,"count":1},{"startOffset":406,"endOffset":426,"count":0}],"isBlockCoverage":true},{"functionName":"sentenceDiff.tokenize","ranges":[{"startOffset":697,"endOffset":764,"count":0}],"isBlockCoverage":false},{"functionName":"diffSentences","ranges":[{"startOffset":766,"endOffset":872,"count":0}],"isBlockCoverage":false}]},{"scriptId":"213","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/css.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2239,"count":1}],"isBlockCoverage":true},{"functionName":"_interopRequireDefault","ranges":[{"startOffset":315,"endOffset":412,"count":1},{"startOffset":389,"endOffset":409,"count":0}],"isBlockCoverage":true},{"functionName":"cssDiff.tokenize","ranges":[{"startOffset":665,"endOffset":724,"count":0}],"isBlockCoverage":false},{"functionName":"diffCss","ranges":[{"startOffset":726,"endOffset":821,"count":0}],"isBlockCoverage":false}]},{"scriptId":"214","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/json.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":13558,"count":1}],"isBlockCoverage":true},{"functionName":"_interopRequireDefault","ranges":[{"startOffset":437,"endOffset":534,"count":1},{"startOffset":511,"endOffset":531,"count":0}],"isBlockCoverage":true},{"functionName":"_typeof","ranges":[{"startOffset":535,"endOffset":853,"count":0}],"isBlockCoverage":false},{"functionName":"jsonDiff.castInput","ranges":[{"startOffset":1490,"endOffset":2211,"count":0}],"isBlockCoverage":false},{"functionName":"jsonDiff.equals","ranges":[{"startOffset":2231,"endOffset":2544,"count":0}],"isBlockCoverage":false},{"functionName":"diffJson","ranges":[{"startOffset":2546,"endOffset":2641,"count":0}],"isBlockCoverage":false},{"functionName":"canonicalize","ranges":[{"startOffset":2836,"endOffset":4344,"count":0}],"isBlockCoverage":false}]},{"scriptId":"215","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/array.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2574,"count":1}],"isBlockCoverage":true},{"functionName":"_interopRequireDefault","ranges":[{"startOffset":323,"endOffset":420,"count":1},{"startOffset":397,"endOffset":417,"count":0}],"isBlockCoverage":true},{"functionName":"arrayDiff.tokenize","ranges":[{"startOffset":679,"endOffset":723,"count":0}],"isBlockCoverage":false},{"functionName":"arrayDiff.join.arrayDiff.removeEmpty","ranges":[{"startOffset":766,"endOffset":802,"count":0}],"isBlockCoverage":false},{"functionName":"diffArrays","ranges":[{"startOffset":804,"endOffset":904,"count":0}],"isBlockCoverage":false}]},{"scriptId":"216","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/apply.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":37188,"count":1}],"isBlockCoverage":true},{"functionName":"_interopRequireDefault","ranges":[{"startOffset":636,"endOffset":733,"count":1},{"startOffset":710,"endOffset":730,"count":0}],"isBlockCoverage":true},{"functionName":"applyPatch","ranges":[{"startOffset":758,"endOffset":11390,"count":0}],"isBlockCoverage":false},{"functionName":"applyPatches","ranges":[{"startOffset":11454,"endOffset":12302,"count":0}],"isBlockCoverage":false}]},{"scriptId":"217","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/line-endings.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12136,"count":1}],"isBlockCoverage":true},{"functionName":"_typeof","ranges":[{"startOffset":216,"endOffset":534,"count":0}],"isBlockCoverage":false},{"functionName":"ownKeys","ranges":[{"startOffset":535,"endOffset":790,"count":0}],"isBlockCoverage":false},{"functionName":"_objectSpread","ranges":[{"startOffset":791,"endOffset":1230,"count":0}],"isBlockCoverage":false},{"functionName":"_defineProperty","ranges":[{"startOffset":1231,"endOffset":1467,"count":0}],"isBlockCoverage":false},{"functionName":"_toPropertyKey","ranges":[{"startOffset":1468,"endOffset":1577,"count":0}],"isBlockCoverage":false},{"functionName":"_toPrimitive","ranges":[{"startOffset":1578,"endOffset":1894,"count":0}],"isBlockCoverage":false},{"functionName":"unixToWin","ranges":[{"startOffset":1919,"endOffset":2968,"count":0}],"isBlockCoverage":false},{"functionName":"winToUnix","ranges":[{"startOffset":2969,"endOffset":3667,"count":0}],"isBlockCoverage":false},{"functionName":"isUnix","ranges":[{"startOffset":3798,"endOffset":4393,"count":0}],"isBlockCoverage":false},{"functionName":"isWin","ranges":[{"startOffset":4489,"endOffset":5926,"count":0}],"isBlockCoverage":false}]},{"scriptId":"218","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/parse.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":16439,"count":1}],"isBlockCoverage":true},{"functionName":"parsePatch","ranges":[{"startOffset":163,"endOffset":4585,"count":0}],"isBlockCoverage":false}]},{"scriptId":"219","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4652,"count":1}],"isBlockCoverage":true},{"functionName":"_default","ranges":[{"startOffset":339,"endOffset":1502,"count":0}],"isBlockCoverage":false}]},{"scriptId":"220","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/merge.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":52115,"count":1}],"isBlockCoverage":true},{"functionName":"_toConsumableArray","ranges":[{"startOffset":478,"endOffset":631,"count":0}],"isBlockCoverage":false},{"functionName":"_nonIterableSpread","ranges":[{"startOffset":632,"endOffset":822,"count":0}],"isBlockCoverage":false},{"functionName":"_unsupportedIterableToArray","ranges":[{"startOffset":823,"endOffset":1239,"count":0}],"isBlockCoverage":false},{"functionName":"_iterableToArray","ranges":[{"startOffset":1240,"endOffset":1398,"count":0}],"isBlockCoverage":false},{"functionName":"_arrayWithoutHoles","ranges":[{"startOffset":1399,"endOffset":1490,"count":0}],"isBlockCoverage":false},{"functionName":"_arrayLikeToArray","ranges":[{"startOffset":1491,"endOffset":1670,"count":0}],"isBlockCoverage":false},{"functionName":"calcLineCount","ranges":[{"startOffset":1695,"endOffset":2269,"count":0}],"isBlockCoverage":false},{"functionName":"merge","ranges":[{"startOffset":2270,"endOffset":5146,"count":0}],"isBlockCoverage":false},{"functionName":"loadPatch","ranges":[{"startOffset":5147,"endOffset":5998,"count":0}],"isBlockCoverage":false},{"functionName":"fileNameChanged","ranges":[{"startOffset":5999,"endOffset":6105,"count":0}],"isBlockCoverage":false},{"functionName":"selectField","ranges":[{"startOffset":6106,"endOffset":6294,"count":0}],"isBlockCoverage":false},{"functionName":"hunkBefore","ranges":[{"startOffset":6295,"endOffset":6422,"count":0}],"isBlockCoverage":false},{"functionName":"cloneHunk","ranges":[{"startOffset":6423,"endOffset":6622,"count":0}],"isBlockCoverage":false},{"functionName":"mergeLines","ranges":[{"startOffset":6623,"endOffset":9376,"count":0}],"isBlockCoverage":false},{"functionName":"mutualChange","ranges":[{"startOffset":9377,"endOffset":12002,"count":0}],"isBlockCoverage":false},{"functionName":"removal","ranges":[{"startOffset":12003,"endOffset":12704,"count":0}],"isBlockCoverage":false},{"functionName":"conflict","ranges":[{"startOffset":12705,"endOffset":12849,"count":0}],"isBlockCoverage":false},{"functionName":"insertLeading","ranges":[{"startOffset":12850,"endOffset":13073,"count":0}],"isBlockCoverage":false},{"functionName":"insertTrailing","ranges":[{"startOffset":13074,"endOffset":13238,"count":0}],"isBlockCoverage":false},{"functionName":"collectChange","ranges":[{"startOffset":13239,"endOffset":13732,"count":0}],"isBlockCoverage":false},{"functionName":"collectContext","ranges":[{"startOffset":13733,"endOffset":14990,"count":0}],"isBlockCoverage":false},{"functionName":"allRemoves","ranges":[{"startOffset":14991,"endOffset":15123,"count":0}],"isBlockCoverage":false},{"functionName":"skipRemoveSuperset","ranges":[{"startOffset":15124,"endOffset":15436,"count":0}],"isBlockCoverage":false},{"functionName":"calcOldNewLineCount","ranges":[{"startOffset":15437,"endOffset":16389,"count":0}],"isBlockCoverage":false}]},{"scriptId":"221","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/create.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":37607,"count":1}],"isBlockCoverage":true},{"functionName":"_typeof","ranges":[{"startOffset":408,"endOffset":726,"count":0}],"isBlockCoverage":false},{"functionName":"_toConsumableArray","ranges":[{"startOffset":727,"endOffset":880,"count":0}],"isBlockCoverage":false},{"functionName":"_nonIterableSpread","ranges":[{"startOffset":881,"endOffset":1071,"count":0}],"isBlockCoverage":false},{"functionName":"_unsupportedIterableToArray","ranges":[{"startOffset":1072,"endOffset":1488,"count":0}],"isBlockCoverage":false},{"functionName":"_iterableToArray","ranges":[{"startOffset":1489,"endOffset":1647,"count":0}],"isBlockCoverage":false},{"functionName":"_arrayWithoutHoles","ranges":[{"startOffset":1648,"endOffset":1739,"count":0}],"isBlockCoverage":false},{"functionName":"_arrayLikeToArray","ranges":[{"startOffset":1740,"endOffset":1919,"count":0}],"isBlockCoverage":false},{"functionName":"ownKeys","ranges":[{"startOffset":1920,"endOffset":2175,"count":0}],"isBlockCoverage":false},{"functionName":"_objectSpread","ranges":[{"startOffset":2176,"endOffset":2615,"count":0}],"isBlockCoverage":false},{"functionName":"_defineProperty","ranges":[{"startOffset":2616,"endOffset":2852,"count":0}],"isBlockCoverage":false},{"functionName":"_toPropertyKey","ranges":[{"startOffset":2853,"endOffset":2962,"count":0}],"isBlockCoverage":false},{"functionName":"_toPrimitive","ranges":[{"startOffset":2963,"endOffset":3279,"count":0}],"isBlockCoverage":false},{"functionName":"structuredPatch","ranges":[{"startOffset":3304,"endOffset":10131,"count":0}],"isBlockCoverage":false},{"functionName":"formatPatch","ranges":[{"startOffset":10132,"endOffset":11226,"count":0}],"isBlockCoverage":false},{"functionName":"createTwoFilesPatch","ranges":[{"startOffset":11227,"endOffset":12560,"count":0}],"isBlockCoverage":false},{"functionName":"createPatch","ranges":[{"startOffset":12561,"endOffset":12739,"count":0}],"isBlockCoverage":false},{"functionName":"splitLines","ranges":[{"startOffset":12846,"endOffset":13193,"count":0}],"isBlockCoverage":false}]},{"scriptId":"222","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/util/array.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2013,"count":1}],"isBlockCoverage":true},{"functionName":"arrayEqual","ranges":[{"startOffset":206,"endOffset":320,"count":0}],"isBlockCoverage":false},{"functionName":"arrayStartsWith","ranges":[{"startOffset":321,"endOffset":543,"count":0}],"isBlockCoverage":false}]},{"scriptId":"223","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/reverse.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5953,"count":1}],"isBlockCoverage":true},{"functionName":"_typeof","ranges":[{"startOffset":143,"endOffset":461,"count":0}],"isBlockCoverage":false},{"functionName":"ownKeys","ranges":[{"startOffset":462,"endOffset":717,"count":0}],"isBlockCoverage":false},{"functionName":"_objectSpread","ranges":[{"startOffset":718,"endOffset":1157,"count":0}],"isBlockCoverage":false},{"functionName":"_defineProperty","ranges":[{"startOffset":1158,"endOffset":1394,"count":0}],"isBlockCoverage":false},{"functionName":"_toPropertyKey","ranges":[{"startOffset":1395,"endOffset":1504,"count":0}],"isBlockCoverage":false},{"functionName":"_toPrimitive","ranges":[{"startOffset":1505,"endOffset":1821,"count":0}],"isBlockCoverage":false},{"functionName":"reversePatch","ranges":[{"startOffset":1846,"endOffset":3091,"count":0}],"isBlockCoverage":false}]},{"scriptId":"224","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/convert/dmp.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2206,"count":1}],"isBlockCoverage":true},{"functionName":"convertChangesToDMP","ranges":[{"startOffset":247,"endOffset":600,"count":0}],"isBlockCoverage":false}]},{"scriptId":"225","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/convert/xml.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3312,"count":1}],"isBlockCoverage":true},{"functionName":"convertChangesToXML","ranges":[{"startOffset":181,"endOffset":607,"count":0}],"isBlockCoverage":false},{"functionName":"escapeHTML","ranges":[{"startOffset":608,"endOffset":786,"count":0}],"isBlockCoverage":false}]},{"scriptId":"226","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/ms/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3024,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":422,"endOffset":792,"count":1},{"startOffset":524,"endOffset":541,"count":0},{"startOffset":543,"endOffset":571,"count":0},{"startOffset":643,"endOffset":657,"count":0},{"startOffset":678,"endOffset":791,"count":0}],"isBlockCoverage":true},{"functionName":"parse","ranges":[{"startOffset":916,"endOffset":1999,"count":0}],"isBlockCoverage":false},{"functionName":"fmtShort","ranges":[{"startOffset":2097,"endOffset":2414,"count":1},{"startOffset":2167,"endOffset":2209,"count":0},{"startOffset":2228,"endOffset":2270,"count":0},{"startOffset":2289,"endOffset":2331,"count":0},{"startOffset":2350,"endOffset":2392,"count":0}],"isBlockCoverage":true},{"functionName":"fmtLong","ranges":[{"startOffset":2511,"endOffset":2847,"count":0}],"isBlockCoverage":false},{"functionName":"plural","ranges":[{"startOffset":2883,"endOffset":3023,"count":0}],"isBlockCoverage":false}]},{"scriptId":"227","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/utils.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":18830,"count":1}],"isBlockCoverage":true},{"functionName":"exports.escape","ranges":[{"startOffset":807,"endOffset":889,"count":0}],"isBlockCoverage":false},{"functionName":"exports.isString","ranges":[{"startOffset":1022,"endOffset":1074,"count":170}],"isBlockCoverage":true},{"functionName":"exports.slug","ranges":[{"startOffset":1198,"endOffset":1331,"count":0}],"isBlockCoverage":false},{"functionName":"exports.clean","ranges":[{"startOffset":1483,"endOffset":2135,"count":0}],"isBlockCoverage":false},{"functionName":"emptyRepresentation","ranges":[{"startOffset":2597,"endOffset":2839,"count":0}],"isBlockCoverage":false},{"functionName":"canonicalType","ranges":[{"startOffset":3704,"endOffset":4097,"count":5},{"startOffset":3763,"endOffset":3792,"count":0},{"startOffset":3818,"endOffset":3842,"count":0},{"startOffset":3876,"endOffset":3902,"count":0},{"startOffset":3951,"endOffset":3985,"count":0}],"isBlockCoverage":true},{"functionName":"type","ranges":[{"startOffset":4720,"endOffset":5196,"count":0}],"isBlockCoverage":false},{"functionName":"exports.stringify","ranges":[{"startOffset":5816,"endOffset":6861,"count":0}],"isBlockCoverage":false},{"functionName":"jsonStringify","ranges":[{"startOffset":7022,"endOffset":9065,"count":0}],"isBlockCoverage":false},{"functionName":"canonicalize","ranges":[{"startOffset":9967,"endOffset":11742,"count":0}],"isBlockCoverage":false},{"functionName":"exports.stackTraceFilter","ranges":[{"startOffset":12113,"endOffset":13444,"count":1},{"startOffset":12227,"endOffset":12244,"count":0},{"startOffset":12334,"endOffset":12478,"count":0}],"isBlockCoverage":true},{"functionName":"isMochaInternal","ranges":[{"startOffset":12482,"endOffset":12690,"count":0}],"isBlockCoverage":false},{"functionName":"isNodeInternal","ranges":[{"startOffset":12694,"endOffset":12978,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12989,"endOffset":13441,"count":0}],"isBlockCoverage":false},{"functionName":"isPromise","ranges":[{"startOffset":13589,"endOffset":13726,"count":0}],"isBlockCoverage":false},{"functionName":"clamp","ranges":[{"startOffset":13964,"endOffset":14052,"count":225}],"isBlockCoverage":true},{"functionName":"exports.noop","ranges":[{"startOffset":14105,"endOffset":14119,"count":0}],"isBlockCoverage":false},{"functionName":"exports.createMap","ranges":[{"startOffset":15024,"endOffset":15156,"count":5}],"isBlockCoverage":true},{"functionName":"exports.defineConstants","ranges":[{"startOffset":15646,"endOffset":15859,"count":5},{"startOffset":15730,"endOffset":15809,"count":0}],"isBlockCoverage":true},{"functionName":"cwd","ranges":[{"startOffset":15984,"endOffset":16026,"count":4}],"isBlockCoverage":true},{"functionName":"isBrowser","ranges":[{"startOffset":16176,"endOffset":16235,"count":2}],"isBlockCoverage":true},{"functionName":"castArray","ranges":[{"startOffset":16740,"endOffset":17043,"count":15},{"startOffset":16795,"endOffset":16815,"count":0},{"startOffset":16838,"endOffset":16862,"count":0},{"startOffset":16900,"endOffset":16983,"count":4},{"startOffset":16953,"endOffset":16982,"count":0},{"startOffset":16988,"endOffset":17023,"count":4},{"startOffset":17023,"endOffset":17042,"count":11}],"isBlockCoverage":true},{"functionName":"exports.uniqueID","ranges":[{"startOffset":17395,"endOffset":17519,"count":225},{"startOffset":17449,"endOffset":17504,"count":4725}],"isBlockCoverage":true},{"functionName":"exports.assignNewMochaID","ranges":[{"startOffset":17549,"endOffset":17698,"count":225}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":17646,"endOffset":17676,"count":0}],"isBlockCoverage":false},{"functionName":"exports.getMochaID","ranges":[{"startOffset":17837,"endOffset":17914,"count":0}],"isBlockCoverage":false},{"functionName":"exports.breakCircularDeps","ranges":[{"startOffset":18093,"endOffset":18683,"count":0}],"isBlockCoverage":false},{"functionName":"exports.isNumeric","ranges":[{"startOffset":18780,"endOffset":18828,"count":22}],"isBlockCoverage":true}]},{"scriptId":"228","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/he/he.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":100883,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":61,"endOffset":100874,"count":1},{"startOffset":500,"endOffset":535,"count":0},{"startOffset":100447,"endOffset":100481,"count":0},{"startOffset":100482,"endOffset":100497,"count":0},{"startOffset":100501,"endOffset":100547,"count":0},{"startOffset":100689,"endOffset":100813,"count":0},{"startOffset":100816,"endOffset":100871,"count":0}],"isBlockCoverage":true},{"functionName":"has","ranges":[{"startOffset":92347,"endOffset":92434,"count":0}],"isBlockCoverage":false},{"functionName":"contains","ranges":[{"startOffset":92453,"endOffset":92630,"count":0}],"isBlockCoverage":false},{"functionName":"merge","ranges":[{"startOffset":92646,"endOffset":92997,"count":0}],"isBlockCoverage":false},{"functionName":"codePointToSymbol","ranges":[{"startOffset":93093,"endOffset":94044,"count":0}],"isBlockCoverage":false},{"functionName":"hexEscape","ranges":[{"startOffset":94064,"endOffset":94149,"count":0}],"isBlockCoverage":false},{"functionName":"decEscape","ranges":[{"startOffset":94169,"endOffset":94226,"count":0}],"isBlockCoverage":false},{"functionName":"parseError","ranges":[{"startOffset":94247,"endOffset":94311,"count":0}],"isBlockCoverage":false},{"functionName":"encode","ranges":[{"startOffset":94409,"endOffset":97437,"count":0}],"isBlockCoverage":false},{"functionName":"decode","ranges":[{"startOffset":97673,"endOffset":99781,"count":0}],"isBlockCoverage":false},{"functionName":"escape","ranges":[{"startOffset":99934,"endOffset":100103,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":100512,"endOffset":100542,"count":0}],"isBlockCoverage":false}]},{"scriptId":"229","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/supports-color/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3065,"count":1},{"startOffset":254,"endOffset":278,"count":0},{"startOffset":382,"endOffset":406,"count":0}],"isBlockCoverage":true},{"functionName":"envForceColor","ranges":[{"startOffset":408,"endOffset":672,"count":2},{"startOffset":462,"endOffset":670,"count":0}],"isBlockCoverage":true},{"functionName":"translateLevel","ranges":[{"startOffset":674,"endOffset":832,"count":2},{"startOffset":745,"endOffset":831,"count":0}],"isBlockCoverage":true},{"functionName":"supportsColor","ranges":[{"startOffset":834,"endOffset":2729,"count":2},{"startOffset":990,"endOffset":1031,"count":0},{"startOffset":1081,"endOffset":1099,"count":0},{"startOffset":1125,"endOffset":1141,"count":0},{"startOffset":1251,"endOffset":1269,"count":0},{"startOffset":1299,"endOffset":1317,"count":0},{"startOffset":1399,"endOffset":1429,"count":0},{"startOffset":1458,"endOffset":2728,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1989,"endOffset":2008,"count":0}],"isBlockCoverage":false},{"functionName":"getSupportLevel","ranges":[{"startOffset":2731,"endOffset":2909,"count":2}],"isBlockCoverage":true}]},{"scriptId":"230","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/has-flag/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":330,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":32,"endOffset":328,"count":16},{"startOffset":102,"endOffset":106,"count":0},{"startOffset":128,"endOffset":133,"count":0},{"startOffset":262,"endOffset":325,"count":0}],"isBlockCoverage":true}]},{"scriptId":"231","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/log-symbols/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":414,"count":1},{"startOffset":402,"endOffset":412,"count":0}],"isBlockCoverage":true}]},{"scriptId":"232","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/chalk/source/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6073,"count":1},{"startOffset":1532,"endOffset":1764,"count":44},{"startOffset":2057,"endOffset":2352,"count":8},{"startOffset":2386,"endOffset":2752,"count":8},{"startOffset":5948,"endOffset":5967,"count":0}],"isBlockCoverage":true},{"functionName":"applyOptions","ranges":[{"startOffset":430,"endOffset":809,"count":2},{"startOffset":477,"endOffset":558,"count":0},{"startOffset":560,"endOffset":638,"count":0},{"startOffset":709,"endOffset":728,"count":0},{"startOffset":778,"endOffset":790,"count":1},{"startOffset":791,"endOffset":806,"count":1}],"isBlockCoverage":true},{"functionName":"ChalkClass","ranges":[{"startOffset":832,"endOffset":941,"count":0}],"isBlockCoverage":false},{"functionName":"chalkFactory","ranges":[{"startOffset":966,"endOffset":1408,"count":2}],"isBlockCoverage":true},{"functionName":"chalk.template","ranges":[{"startOffset":1048,"endOffset":1106,"count":0}],"isBlockCoverage":false},{"functionName":"chalk.template.constructor","ranges":[{"startOffset":1235,"endOffset":1340,"count":0}],"isBlockCoverage":false},{"functionName":"Chalk","ranges":[{"startOffset":1411,"endOffset":1469,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":1559,"endOffset":1758,"count":4}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":1786,"endOffset":1933,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2080,"endOffset":2346,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2476,"endOffset":2746,"count":0}],"isBlockCoverage":false},{"functionName":"Object.defineProperties","ranges":[{"startOffset":2792,"endOffset":2800,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2848,"endOffset":2892,"count":8}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":2896,"endOffset":2946,"count":0}],"isBlockCoverage":false},{"functionName":"createStyler","ranges":[{"startOffset":2976,"endOffset":3250,"count":4},{"startOffset":3101,"endOffset":3184,"count":0}],"isBlockCoverage":true},{"functionName":"createBuilder","ranges":[{"startOffset":3275,"endOffset":4073,"count":4}],"isBlockCoverage":true},{"functionName":"builder","ranges":[{"startOffset":3323,"endOffset":3790,"count":8},{"startOffset":3373,"endOffset":3402,"count":0},{"startOffset":3404,"endOffset":3556,"count":0},{"startOffset":3763,"endOffset":3785,"count":0}],"isBlockCoverage":true},{"functionName":"applyStyle","ranges":[{"startOffset":4095,"endOffset":5135,"count":8},{"startOffset":4136,"endOffset":4146,"count":0},{"startOffset":4173,"endOffset":4177,"count":0},{"startOffset":4190,"endOffset":5134,"count":0}],"isBlockCoverage":true},{"functionName":"chalkTag","ranges":[{"startOffset":5169,"endOffset":5764,"count":0}],"isBlockCoverage":false}]},{"scriptId":"233","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/chalk/node_modules/ansi-styles/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4139,"count":1}],"isBlockCoverage":true},{"functionName":"wrapAnsi16","ranges":[{"startOffset":34,"endOffset":129,"count":0}],"isBlockCoverage":false},{"functionName":"wrapAnsi256","ranges":[{"startOffset":152,"endOffset":255,"count":0}],"isBlockCoverage":false},{"functionName":"wrapAnsi16m","ranges":[{"startOffset":278,"endOffset":402,"count":0}],"isBlockCoverage":false},{"functionName":"ansi2ansi","ranges":[{"startOffset":423,"endOffset":429,"count":0}],"isBlockCoverage":false},{"functionName":"rgb2rgb","ranges":[{"startOffset":447,"endOffset":469,"count":0}],"isBlockCoverage":false},{"functionName":"setLazyProperty","ranges":[{"startOffset":496,"endOffset":786,"count":30}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":575,"endOffset":737,"count":0}],"isBlockCoverage":false},{"functionName":"makeDynamicStyles","ranges":[{"startOffset":879,"endOffset":1400,"count":0}],"isBlockCoverage":false},{"functionName":"assembleStyles","ranges":[{"startOffset":1403,"endOffset":4021,"count":5},{"startOffset":2869,"endOffset":3201,"count":15},{"startOffset":2929,"endOffset":3108,"count":220}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3401,"endOffset":3464,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3509,"endOffset":3574,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3619,"endOffset":3678,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3722,"endOffset":3784,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3831,"endOffset":3895,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3942,"endOffset":4000,"count":0}],"isBlockCoverage":false}]},{"scriptId":"234","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/chalk/node_modules/supports-color/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2765,"count":1},{"startOffset":250,"endOffset":270,"count":0},{"startOffset":374,"endOffset":394,"count":0},{"startOffset":422,"endOffset":646,"count":0}],"isBlockCoverage":true},{"functionName":"translateLevel","ranges":[{"startOffset":648,"endOffset":806,"count":2},{"startOffset":719,"endOffset":805,"count":0}],"isBlockCoverage":true},{"functionName":"supportsColor","ranges":[{"startOffset":808,"endOffset":2456,"count":2},{"startOffset":881,"endOffset":897,"count":0},{"startOffset":985,"endOffset":1001,"count":0},{"startOffset":1030,"endOffset":1046,"count":0},{"startOffset":1125,"endOffset":1155,"count":0},{"startOffset":1184,"endOffset":2455,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1675,"endOffset":1694,"count":0}],"isBlockCoverage":false},{"functionName":"getSupportLevel","ranges":[{"startOffset":2458,"endOffset":2587,"count":0}],"isBlockCoverage":false}]},{"scriptId":"235","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/chalk/node_modules/has-flag/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":330,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":32,"endOffset":328,"count":16},{"startOffset":102,"endOffset":106,"count":0},{"startOffset":128,"endOffset":133,"count":0},{"startOffset":262,"endOffset":325,"count":0}],"isBlockCoverage":true}]},{"scriptId":"236","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/chalk/source/util.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1035,"count":1}],"isBlockCoverage":true},{"functionName":"stringReplaceAll","ranges":[{"startOffset":40,"endOffset":505,"count":0}],"isBlockCoverage":false},{"functionName":"stringEncaseCRLFWithFirstIndex","ranges":[{"startOffset":547,"endOffset":959,"count":0}],"isBlockCoverage":false}]},{"scriptId":"237","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/is-unicode-supported/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":313,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":32,"endOffset":311,"count":1},{"startOffset":94,"endOffset":164,"count":0},{"startOffset":165,"endOffset":227,"count":0},{"startOffset":228,"endOffset":270,"count":0},{"startOffset":271,"endOffset":308,"count":0}],"isBlockCoverage":true}]},{"scriptId":"238","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/runner.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":35446,"count":1},{"startOffset":7117,"endOffset":7136,"count":0}],"isBlockCoverage":true},{"functionName":"Runner","ranges":[{"startOffset":5309,"endOffset":6957,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5722,"endOffset":6004,"count":95},{"startOffset":5793,"endOffset":5807,"count":0},{"startOffset":5809,"endOffset":5967,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6045,"endOffset":6099,"count":62}],"isBlockCoverage":true},{"functionName":"Runner.unhandled","ranges":[{"startOffset":6273,"endOffset":6952,"count":0}],"isBlockCoverage":false},{"functionName":"Runner._addEventListener","ranges":[{"startOffset":7465,"endOffset":8373,"count":153},{"startOffset":7714,"endOffset":7768,"count":1},{"startOffset":7769,"endOffset":7837,"count":0},{"startOffset":7842,"endOffset":7959,"count":0},{"startOffset":8057,"endOffset":8091,"count":1},{"startOffset":8096,"endOffset":8107,"count":152},{"startOffset":8175,"endOffset":8207,"count":0}],"isBlockCoverage":true},{"functionName":"Runner._removeEventListener","ranges":[{"startOffset":8684,"endOffset":9297,"count":2},{"startOffset":8812,"endOffset":9212,"count":0}],"isBlockCoverage":true},{"functionName":"Runner.dispose","ranges":[{"startOffset":9473,"endOffset":9803,"count":0}],"isBlockCoverage":false},{"functionName":"Runner.grep","ranges":[{"startOffset":10057,"endOffset":10222,"count":1}],"isBlockCoverage":true},{"functionName":"Runner.grepTotal","ranges":[{"startOffset":10420,"endOffset":10676,"count":75}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10493,"endOffset":10655,"count":425},{"startOffset":10584,"endOffset":10613,"count":0}],"isBlockCoverage":true},{"functionName":"Runner.globalProps","ranges":[{"startOffset":10791,"endOffset":11017,"count":1},{"startOffset":10905,"endOffset":10998,"count":8},{"startOffset":10943,"endOffset":10966,"count":6},{"startOffset":10966,"endOffset":10998,"count":2}],"isBlockCoverage":true},{"functionName":"Runner.globals","ranges":[{"startOffset":11185,"endOffset":11362,"count":2},{"startOffset":11227,"endOffset":11258,"count":0}],"isBlockCoverage":true},{"functionName":"Runner.checkGlobals","ranges":[{"startOffset":11456,"endOffset":12000,"count":157},{"startOffset":11515,"endOffset":11998,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11929,"endOffset":11942,"count":0}],"isBlockCoverage":false},{"functionName":"Runner.fail","ranges":[{"startOffset":12776,"endOffset":13805,"count":0}],"isBlockCoverage":false},{"functionName":"Runner.hook","ranges":[{"startOffset":13957,"endOffset":16753,"count":808},{"startOffset":14004,"endOffset":14016,"count":0}],"isBlockCoverage":true},{"functionName":"next","ranges":[{"startOffset":14102,"endOffset":16696,"count":870},{"startOffset":14161,"endOffset":14187,"count":808},{"startOffset":14187,"endOffset":14261,"count":62},{"startOffset":14261,"endOffset":14319,"count":50},{"startOffset":14319,"endOffset":14497,"count":12},{"startOffset":14359,"endOffset":14444,"count":2},{"startOffset":14444,"endOffset":14497,"count":10},{"startOffset":14497,"endOffset":14661,"count":62},{"startOffset":14661,"endOffset":14769,"count":56},{"startOffset":14769,"endOffset":16695,"count":62}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14707,"endOffset":14761,"count":0}],"isBlockCoverage":false},{"functionName":"cbHookRun","ranges":[{"startOffset":14784,"endOffset":16185,"count":62},{"startOffset":14867,"endOffset":14917,"count":0},{"startOffset":14968,"endOffset":15915,"count":0},{"startOffset":15930,"endOffset":16052,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15519,"endOffset":15581,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15615,"endOffset":15679,"count":0}],"isBlockCoverage":false},{"functionName":"setHookTitle","ranges":[{"startOffset":16193,"endOffset":16692,"count":124},{"startOffset":16269,"endOffset":16282,"count":56},{"startOffset":16328,"endOffset":16419,"count":61},{"startOffset":16419,"endOffset":16686,"count":63},{"startOffset":16537,"endOffset":16612,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16719,"endOffset":16749,"count":808}],"isBlockCoverage":true},{"functionName":"Runner.hooks","ranges":[{"startOffset":16975,"endOffset":17390,"count":190}],"isBlockCoverage":true},{"functionName":"next","ranges":[{"startOffset":17052,"endOffset":17365,"count":850},{"startOffset":17116,"endOffset":17167,"count":190},{"startOffset":17167,"endOffset":17364,"count":660}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17189,"endOffset":17359,"count":660},{"startOffset":17221,"endOffset":17326,"count":0}],"isBlockCoverage":true},{"functionName":"Runner.hookUp","ranges":[{"startOffset":17531,"endOffset":17648,"count":95}],"isBlockCoverage":true},{"functionName":"Runner.hookDown","ranges":[{"startOffset":17797,"endOffset":17904,"count":95}],"isBlockCoverage":true},{"functionName":"Runner.parents","ranges":[{"startOffset":18041,"endOffset":18197,"count":190},{"startOffset":18123,"endOffset":18178,"count":470}],"isBlockCoverage":true},{"functionName":"Runner.runTest","ranges":[{"startOffset":18322,"endOffset":18765,"count":95},{"startOffset":18363,"endOffset":18393,"count":0},{"startOffset":18452,"endOffset":18469,"count":0},{"startOffset":18493,"endOffset":18525,"count":0},{"startOffset":18641,"endOffset":18702,"count":0},{"startOffset":18733,"endOffset":18763,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":18566,"endOffset":18612,"count":0}],"isBlockCoverage":false},{"functionName":"Runner.runTests","ranges":[{"startOffset":18947,"endOffset":23544,"count":74}],"isBlockCoverage":true},{"functionName":"hookErr","ranges":[{"startOffset":19039,"endOffset":19744,"count":0}],"isBlockCoverage":false},{"functionName":"next","ranges":[{"startOffset":19748,"endOffset":23485,"count":169},{"startOffset":19835,"endOffset":19849,"count":0},{"startOffset":19851,"endOffset":19876,"count":0},{"startOffset":19899,"endOffset":19925,"count":0},{"startOffset":19940,"endOffset":19990,"count":0},{"startOffset":20067,"endOffset":20093,"count":74},{"startOffset":20093,"endOffset":20180,"count":95},{"startOffset":20180,"endOffset":20209,"count":0},{"startOffset":20209,"endOffset":20226,"count":95},{"startOffset":20226,"endOffset":20866,"count":0},{"startOffset":20866,"endOffset":20936,"count":95},{"startOffset":20936,"endOffset":21227,"count":0},{"startOffset":21227,"endOffset":23484,"count":95}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21365,"endOffset":23479,"count":95},{"startOffset":21464,"endOffset":22035,"count":0},{"startOffset":22051,"endOffset":22106,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21932,"endOffset":22025,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22166,"endOffset":23471,"count":95},{"startOffset":22273,"endOffset":22633,"count":0},{"startOffset":22648,"endOffset":23275,"count":0}],"isBlockCoverage":true},{"functionName":"Runner.runSuite","ranges":[{"startOffset":23717,"endOffset":25362,"count":74},{"startOffset":23896,"endOffset":23910,"count":0},{"startOffset":23913,"endOffset":23969,"count":0}],"isBlockCoverage":true},{"functionName":"next","ranges":[{"startOffset":24038,"endOffset":24934,"count":147},{"startOffset":24082,"endOffset":24432,"count":0},{"startOffset":24455,"endOffset":24483,"count":0},{"startOffset":24534,"endOffset":24562,"count":74},{"startOffset":24562,"endOffset":24793,"count":73},{"startOffset":24793,"endOffset":24884,"count":0},{"startOffset":24884,"endOffset":24930,"count":73}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":24820,"endOffset":24876,"count":0}],"isBlockCoverage":false},{"functionName":"done","ranges":[{"startOffset":24938,"endOffset":25202,"count":74}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25106,"endOffset":25196,"count":74}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25264,"endOffset":25358,"count":74},{"startOffset":25294,"endOffset":25322,"count":0}],"isBlockCoverage":true},{"functionName":"Runner._uncaught","ranges":[{"startOffset":26208,"endOffset":28873,"count":0}],"isBlockCoverage":false},{"functionName":"Runner.run","ranges":[{"startOffset":29144,"endOffset":31163,"count":1},{"startOffset":29230,"endOffset":29235,"count":0},{"startOffset":29292,"endOffset":29309,"count":0},{"startOffset":30841,"endOffset":31101,"count":0}],"isBlockCoverage":true},{"functionName":"fn","ranges":[{"startOffset":29295,"endOffset":29309,"count":0}],"isBlockCoverage":false},{"functionName":"end","ranges":[{"startOffset":29326,"endOffset":29521,"count":1},{"startOffset":29354,"endOffset":29376,"count":0},{"startOffset":29378,"endOffset":29396,"count":0}],"isBlockCoverage":true},{"functionName":"begin","ranges":[{"startOffset":29540,"endOffset":29748,"count":1}],"isBlockCoverage":true},{"functionName":"prepare","ranges":[{"startOffset":29769,"endOffset":30143,"count":1},{"startOffset":29872,"endOffset":29961,"count":0},{"startOffset":30030,"endOffset":30118,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30275,"endOffset":30322,"count":74}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30379,"endOffset":30518,"count":1}],"isBlockCoverage":true},{"functionName":"Runner.linkPartialObjects","ranges":[{"startOffset":31997,"endOffset":32027,"count":0}],"isBlockCoverage":false},{"functionName":"runAsync","ranges":[{"startOffset":32415,"endOffset":32522,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":32473,"endOffset":32518,"count":1}],"isBlockCoverage":true},{"functionName":"Runner.abort","ranges":[{"startOffset":32657,"endOffset":32740,"count":0}],"isBlockCoverage":false},{"functionName":"isParallelMode","ranges":[{"startOffset":32941,"endOffset":32986,"count":0}],"isBlockCoverage":false},{"functionName":"Runner.workerReporter","ranges":[{"startOffset":33336,"endOffset":33432,"count":0}],"isBlockCoverage":false},{"functionName":"filterLeaks","ranges":[{"startOffset":33580,"endOffset":34618,"count":0}],"isBlockCoverage":false},{"functionName":"isError","ranges":[{"startOffset":34833,"endOffset":34933,"count":0}],"isBlockCoverage":false},{"functionName":"thrown2Error","ranges":[{"startOffset":35096,"endOffset":35249,"count":0}],"isBlockCoverage":false}]},{"scriptId":"239","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/pending.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":221,"count":1}],"isBlockCoverage":true},{"functionName":"Pending","ranges":[{"startOffset":165,"endOffset":220,"count":0}],"isBlockCoverage":false}]},{"scriptId":"240","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/debug/src/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":314,"count":1},{"startOffset":218,"endOffset":264,"count":0}],"isBlockCoverage":true}]},{"scriptId":"241","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/debug/src/node.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4728,"count":1},{"startOffset":791,"endOffset":844,"count":0},{"startOffset":846,"endOffset":1451,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":334,"endOffset":342,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1779,"endOffset":1819,"count":82}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1828,"endOffset":2286,"count":0}],"isBlockCoverage":false},{"functionName":"useColors","ranges":[{"startOffset":2362,"endOffset":2501,"count":15},{"startOffset":2425,"endOffset":2464,"count":0}],"isBlockCoverage":true},{"functionName":"formatArgs","ranges":[{"startOffset":2574,"endOffset":3008,"count":0}],"isBlockCoverage":false},{"functionName":"getDate","ranges":[{"startOffset":3010,"endOffset":3125,"count":0}],"isBlockCoverage":false},{"functionName":"log","ranges":[{"startOffset":3225,"endOffset":3341,"count":0}],"isBlockCoverage":false},{"functionName":"save","ranges":[{"startOffset":3422,"endOffset":3679,"count":1},{"startOffset":3467,"endOffset":3505,"count":0}],"isBlockCoverage":true},{"functionName":"load","ranges":[{"startOffset":3796,"endOffset":3842,"count":1}],"isBlockCoverage":true},{"functionName":"init","ranges":[{"startOffset":4007,"endOffset":4210,"count":15},{"startOffset":4143,"endOffset":4208,"count":0}],"isBlockCoverage":true},{"functionName":"formatters.o","ranges":[{"startOffset":4375,"endOffset":4531,"count":0}],"isBlockCoverage":false},{"functionName":"formatters.O","ranges":[{"startOffset":4624,"endOffset":4726,"count":0}],"isBlockCoverage":false}]},{"scriptId":"242","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/debug/src/common.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6915,"count":1}],"isBlockCoverage":true},{"functionName":"setup","ranges":[{"startOffset":108,"endOffset":6889,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":422,"endOffset":464,"count":9}],"isBlockCoverage":true},{"functionName":"selectColor","ranges":[{"startOffset":1012,"endOffset":1290,"count":15},{"startOffset":1108,"endOffset":1213,"count":235}],"isBlockCoverage":true},{"functionName":"createDebug","ranges":[{"startOffset":1460,"endOffset":3626,"count":15}],"isBlockCoverage":true},{"functionName":"debug","ranges":[{"startOffset":1585,"endOffset":2796,"count":850},{"startOffset":1668,"endOffset":1795,"count":0},{"startOffset":1963,"endOffset":2763,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2147,"endOffset":2619,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3149,"endOffset":3415,"count":850},{"startOffset":3190,"endOffset":3225,"count":0},{"startOffset":3278,"endOffset":3384,"count":0}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":3425,"endOffset":3460,"count":0}],"isBlockCoverage":false},{"functionName":"extend","ranges":[{"startOffset":3629,"endOffset":3832,"count":0}],"isBlockCoverage":false},{"functionName":"enable","ranges":[{"startOffset":3993,"endOffset":4436,"count":1},{"startOffset":4196,"endOffset":4208,"count":0},{"startOffset":4314,"endOffset":4433,"count":0}],"isBlockCoverage":true},{"functionName":"matchesTemplate","ranges":[{"startOffset":4629,"endOffset":5656,"count":0}],"isBlockCoverage":false},{"functionName":"disable","ranges":[{"startOffset":5742,"endOffset":5933,"count":0}],"isBlockCoverage":false},{"functionName":"enabled","ranges":[{"startOffset":6076,"endOffset":6330,"count":0}],"isBlockCoverage":false},{"functionName":"coerce","ranges":[{"startOffset":6419,"endOffset":6528,"count":0}],"isBlockCoverage":false},{"functionName":"destroy","ranges":[{"startOffset":6647,"endOffset":6823,"count":0}],"isBlockCoverage":false}]},{"scriptId":"243","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/runnable.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":10808,"count":1}],"isBlockCoverage":true},{"functionName":"Runnable","ranges":[{"startOffset":1000,"endOffset":1378,"count":151},{"startOffset":1087,"endOffset":1092,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":1304,"endOffset":1354,"count":0}],"isBlockCoverage":false},{"functionName":"Runnable.reset","ranges":[{"startOffset":1555,"endOffset":1685,"count":246}],"isBlockCoverage":true},{"functionName":"Runnable.timeout","ranges":[{"startOffset":2387,"endOffset":2847,"count":308},{"startOffset":2428,"endOffset":2459,"count":157},{"startOffset":2459,"endOffset":2490,"count":151},{"startOffset":2490,"endOffset":2522,"count":0},{"startOffset":2522,"endOffset":2677,"count":151},{"startOffset":2679,"endOffset":2707,"count":0},{"startOffset":2707,"endOffset":2800,"count":151},{"startOffset":2800,"endOffset":2830,"count":0},{"startOffset":2830,"endOffset":2846,"count":151}],"isBlockCoverage":true},{"functionName":"Runnable.slow","ranges":[{"startOffset":3007,"endOffset":3228,"count":341},{"startOffset":3047,"endOffset":3075,"count":151},{"startOffset":3077,"endOffset":3105,"count":190},{"startOffset":3105,"endOffset":3136,"count":151},{"startOffset":3136,"endOffset":3168,"count":0},{"startOffset":3168,"endOffset":3227,"count":151}],"isBlockCoverage":true},{"functionName":"Runnable.skip","ranges":[{"startOffset":3336,"endOffset":3428,"count":0}],"isBlockCoverage":false},{"functionName":"Runnable.isPending","ranges":[{"startOffset":3553,"endOffset":3635,"count":347}],"isBlockCoverage":true},{"functionName":"Runnable.isFailed","ranges":[{"startOffset":3755,"endOffset":3839,"count":0}],"isBlockCoverage":false},{"functionName":"Runnable.isPassed","ranges":[{"startOffset":3959,"endOffset":4043,"count":0}],"isBlockCoverage":false},{"functionName":"Runnable.retries","ranges":[{"startOffset":4131,"endOffset":4225,"count":151},{"startOffset":4171,"endOffset":4202,"count":0}],"isBlockCoverage":true},{"functionName":"Runnable.currentRetry","ranges":[{"startOffset":4313,"endOffset":4417,"count":0}],"isBlockCoverage":false},{"functionName":"Runnable.fullTitle","ranges":[{"startOffset":4613,"endOffset":4665,"count":520}],"isBlockCoverage":true},{"functionName":"Runnable.titlePath","ranges":[{"startOffset":4863,"endOffset":4933,"count":520}],"isBlockCoverage":true},{"functionName":"Runnable.clearTimeout","ranges":[{"startOffset":5015,"endOffset":5058,"count":157}],"isBlockCoverage":true},{"functionName":"Runnable.resetTimeout","ranges":[{"startOffset":5140,"endOffset":5411,"count":0}],"isBlockCoverage":false},{"functionName":"Runnable.globals","ranges":[{"startOffset":5558,"endOffset":5678,"count":0}],"isBlockCoverage":false},{"functionName":"Runnable.run","ranges":[{"startOffset":5791,"endOffset":9340,"count":157},{"startOffset":5946,"endOffset":5958,"count":0},{"startOffset":6752,"endOffset":6886,"count":0},{"startOffset":6947,"endOffset":7632,"count":0},{"startOffset":7698,"endOffset":7898,"count":0}],"isBlockCoverage":true},{"functionName":"multiple","ranges":[{"startOffset":6101,"endOffset":6264,"count":0}],"isBlockCoverage":false},{"functionName":"done","ranges":[{"startOffset":6282,"endOffset":6625,"count":157},{"startOffset":6355,"endOffset":6376,"count":0},{"startOffset":6396,"endOffset":6431,"count":0},{"startOffset":6554,"endOffset":6563,"count":0},{"startOffset":6565,"endOffset":6608,"count":0}],"isBlockCoverage":true},{"functionName":"asyncSkip","ranges":[{"startOffset":7052,"endOffset":7251,"count":0}],"isBlockCoverage":false},{"functionName":"callFn","ranges":[{"startOffset":7902,"endOffset":8605,"count":157},{"startOffset":7970,"endOffset":8006,"count":0},{"startOffset":8008,"endOffset":8381,"count":0},{"startOffset":8415,"endOffset":8580,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8064,"endOffset":8246,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8256,"endOffset":8366,"count":0}],"isBlockCoverage":false},{"functionName":"callFnAsync","ranges":[{"startOffset":8609,"endOffset":9338,"count":0}],"isBlockCoverage":false},{"functionName":"Runnable._timeoutError","ranges":[{"startOffset":9523,"endOffset":9789,"count":0}],"isBlockCoverage":false},{"functionName":"Runnable.toValueOrError","ranges":[{"startOffset":10582,"endOffset":10773,"count":0}],"isBlockCoverage":false}]},{"scriptId":"244","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/errors.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12846,"count":1}],"isBlockCoverage":true},{"functionName":"emitWarning","ranges":[{"startOffset":651,"endOffset":862,"count":0}],"isBlockCoverage":false},{"functionName":"deprecate","ranges":[{"startOffset":1054,"endOffset":1204,"count":0}],"isBlockCoverage":false},{"functionName":"warn","ranges":[{"startOffset":1363,"endOffset":1412,"count":0}],"isBlockCoverage":false},{"functionName":"createNoFilesMatchPatternError","ranges":[{"startOffset":1912,"endOffset":2091,"count":0}],"isBlockCoverage":false},{"functionName":"createInvalidReporterError","ranges":[{"startOffset":2393,"endOffset":2569,"count":0}],"isBlockCoverage":false},{"functionName":"createInvalidInterfaceError","ranges":[{"startOffset":2878,"endOffset":3041,"count":0}],"isBlockCoverage":false},{"functionName":"createUnsupportedError","ranges":[{"startOffset":3289,"endOffset":3415,"count":0}],"isBlockCoverage":false},{"functionName":"createMissingArgumentError","ranges":[{"startOffset":3741,"endOffset":3879,"count":0}],"isBlockCoverage":false},{"functionName":"createInvalidArgumentTypeError","ranges":[{"startOffset":4224,"endOffset":4473,"count":0}],"isBlockCoverage":false},{"functionName":"createInvalidArgumentValueError","ranges":[{"startOffset":4856,"endOffset":5144,"count":0}],"isBlockCoverage":false},{"functionName":"createInvalidExceptionError","ranges":[{"startOffset":5407,"endOffset":5604,"count":0}],"isBlockCoverage":false},{"functionName":"createFatalError","ranges":[{"startOffset":5834,"endOffset":6008,"count":0}],"isBlockCoverage":false},{"functionName":"createInvalidLegacyPluginError","ranges":[{"startOffset":6357,"endOffset":6695,"count":0}],"isBlockCoverage":false},{"functionName":"createInvalidPluginError","ranges":[{"startOffset":7135,"endOffset":7292,"count":0}],"isBlockCoverage":false},{"functionName":"createMochaInstanceAlreadyDisposedError","ranges":[{"startOffset":7643,"endOffset":7927,"count":0}],"isBlockCoverage":false},{"functionName":"createMochaInstanceAlreadyRunningError","ranges":[{"startOffset":8139,"endOffset":8331,"count":0}],"isBlockCoverage":false},{"functionName":"createMultipleDoneError","ranges":[{"startOffset":8619,"endOffset":9386,"count":0}],"isBlockCoverage":false},{"functionName":"createForbiddenExclusivityError","ranges":[{"startOffset":9623,"endOffset":9878,"count":0}],"isBlockCoverage":false},{"functionName":"createInvalidPluginDefinitionError","ranges":[{"startOffset":10178,"endOffset":10364,"count":0}],"isBlockCoverage":false},{"functionName":"createInvalidPluginImplementationError","ranges":[{"startOffset":10824,"endOffset":11074,"count":0}],"isBlockCoverage":false},{"functionName":"createTimeoutError","ranges":[{"startOffset":11340,"endOffset":11511,"count":0}],"isBlockCoverage":false},{"functionName":"createUnparsableFileError","ranges":[{"startOffset":11737,"endOffset":11870,"count":0}],"isBlockCoverage":false},{"functionName":"isMochaError","ranges":[{"startOffset":12096,"endOffset":12174,"count":0}],"isBlockCoverage":false}]},{"scriptId":"245","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/error-constants.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2811,"count":1}],"isBlockCoverage":true}]},{"scriptId":"246","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/suite.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":15489,"count":1}],"isBlockCoverage":true},{"functionName":"Suite.create","ranges":[{"startOffset":767,"endOffset":935,"count":73}],"isBlockCoverage":true},{"functionName":"Suite","ranges":[{"startOffset":1337,"endOffset":2178,"count":74},{"startOffset":1408,"endOffset":1602,"count":0}],"isBlockCoverage":true},{"functionName":"Context","ranges":[{"startOffset":1627,"endOffset":1648,"count":74}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":2109,"endOffset":2153,"count":0}],"isBlockCoverage":false},{"functionName":"Suite.reset","ranges":[{"startOffset":2343,"endOffset":2654,"count":74}],"isBlockCoverage":true},{"functionName":"doReset","ranges":[{"startOffset":2383,"endOffset":2445,"count":0}],"isBlockCoverage":false},{"functionName":"Suite.clone","ranges":[{"startOffset":2758,"endOffset":3014,"count":0}],"isBlockCoverage":false},{"functionName":"Suite.timeout","ranges":[{"startOffset":3247,"endOffset":3574,"count":298},{"startOffset":3288,"endOffset":3319,"count":224},{"startOffset":3319,"endOffset":3350,"count":74},{"startOffset":3350,"endOffset":3382,"count":0},{"startOffset":3382,"endOffset":3573,"count":74}],"isBlockCoverage":true},{"functionName":"Suite.retries","ranges":[{"startOffset":3747,"endOffset":3901,"count":297},{"startOffset":3787,"endOffset":3818,"count":224},{"startOffset":3818,"endOffset":3879,"count":73},{"startOffset":3879,"endOffset":3883,"count":0}],"isBlockCoverage":true},{"functionName":"Suite.slow","ranges":[{"startOffset":4070,"endOffset":4262,"count":298},{"startOffset":4111,"endOffset":4139,"count":224},{"startOffset":4139,"endOffset":4170,"count":74},{"startOffset":4170,"endOffset":4202,"count":0},{"startOffset":4202,"endOffset":4261,"count":74}],"isBlockCoverage":true},{"functionName":"Suite.bail","ranges":[{"startOffset":4424,"endOffset":4559,"count":146},{"startOffset":4467,"endOffset":4558,"count":73}],"isBlockCoverage":true},{"functionName":"Suite.isPending","ranges":[{"startOffset":4678,"endOffset":4760,"count":1760},{"startOffset":4730,"endOffset":4756,"count":1262}],"isBlockCoverage":true},{"functionName":"Suite._createHook","ranges":[{"startOffset":4949,"endOffset":5182,"count":56}],"isBlockCoverage":true},{"functionName":"Suite.beforeAll","ranges":[{"startOffset":5365,"endOffset":5725,"count":50},{"startOffset":5412,"endOffset":5434,"count":0},{"startOffset":5552,"endOffset":5566,"count":0}],"isBlockCoverage":true},{"functionName":"Suite.afterAll","ranges":[{"startOffset":5906,"endOffset":6263,"count":2},{"startOffset":5953,"endOffset":5975,"count":0},{"startOffset":6092,"endOffset":6106,"count":0}],"isBlockCoverage":true},{"functionName":"Suite.beforeEach","ranges":[{"startOffset":6448,"endOffset":6811,"count":3},{"startOffset":6495,"endOffset":6517,"count":0},{"startOffset":6636,"endOffset":6650,"count":0}],"isBlockCoverage":true},{"functionName":"Suite.afterEach","ranges":[{"startOffset":6994,"endOffset":7354,"count":1},{"startOffset":7041,"endOffset":7063,"count":0},{"startOffset":7181,"endOffset":7195,"count":0}],"isBlockCoverage":true},{"functionName":"Suite.addSuite","ranges":[{"startOffset":7486,"endOffset":7766,"count":73}],"isBlockCoverage":true},{"functionName":"Suite.addTest","ranges":[{"startOffset":7903,"endOffset":8148,"count":95}],"isBlockCoverage":true},{"functionName":"Suite.fullTitle","ranges":[{"startOffset":8332,"endOffset":8384,"count":147}],"isBlockCoverage":true},{"functionName":"Suite.titlePath","ranges":[{"startOffset":8570,"endOffset":8752,"count":2395},{"startOffset":8622,"endOffset":8680,"count":1728},{"startOffset":8699,"endOffset":8733,"count":1728}],"isBlockCoverage":true},{"functionName":"Suite.total","ranges":[{"startOffset":8877,"endOffset":9019,"count":74}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8925,"endOffset":8988,"count":73}],"isBlockCoverage":true},{"functionName":"Suite.eachTest","ranges":[{"startOffset":9225,"endOffset":9354,"count":335}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9289,"endOffset":9335,"count":260}],"isBlockCoverage":true},{"functionName":"run","ranges":[{"startOffset":9475,"endOffset":9563,"count":0}],"isBlockCoverage":false},{"functionName":"hasOnly","ranges":[{"startOffset":9712,"endOffset":9896,"count":74}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9834,"endOffset":9888,"count":73}],"isBlockCoverage":true},{"functionName":"filterOnly","ranges":[{"startOffset":10015,"endOffset":11052,"count":0}],"isBlockCoverage":false},{"functionName":"Suite.appendOnlySuite","ranges":[{"startOffset":11192,"endOffset":11244,"count":0}],"isBlockCoverage":false},{"functionName":"Suite.markOnly","ranges":[{"startOffset":11328,"endOffset":11395,"count":0}],"isBlockCoverage":false},{"functionName":"Suite.appendOnlyTest","ranges":[{"startOffset":11527,"endOffset":11576,"count":0}],"isBlockCoverage":false},{"functionName":"getHooks","ranges":[{"startOffset":11699,"endOffset":11753,"count":808}],"isBlockCoverage":true},{"functionName":"Suite.dispose","ranges":[{"startOffset":11853,"endOffset":11962,"count":0}],"isBlockCoverage":false},{"functionName":"cleanReferences","ranges":[{"startOffset":12362,"endOffset":12932,"count":74},{"startOffset":12896,"endOffset":12930,"count":95}],"isBlockCoverage":true},{"functionName":"cleanArrReferences","ranges":[{"startOffset":12393,"endOffset":12504,"count":296},{"startOffset":12469,"endOffset":12500,"count":56}],"isBlockCoverage":true},{"functionName":"serialize","ranges":[{"startOffset":13101,"endOffset":13394,"count":0}],"isBlockCoverage":false}]},{"scriptId":"247","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/hook.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1787,"count":1}],"isBlockCoverage":true},{"functionName":"Hook","ranges":[{"startOffset":354,"endOffset":438,"count":56}],"isBlockCoverage":true},{"functionName":"Hook.reset","ranges":[{"startOffset":580,"endOffset":656,"count":56}],"isBlockCoverage":true},{"functionName":"Hook.error","ranges":[{"startOffset":793,"endOffset":927,"count":62},{"startOffset":903,"endOffset":926,"count":0}],"isBlockCoverage":true},{"functionName":"serialize","ranges":[{"startOffset":1095,"endOffset":1785,"count":0}],"isBlockCoverage":false}]},{"scriptId":"248","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/dot.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1951,"count":1}],"isBlockCoverage":true},{"functionName":"Dot","ranges":[{"startOffset":803,"endOffset":1838,"count":0}],"isBlockCoverage":false}]},{"scriptId":"249","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/doc.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2363,"count":1}],"isBlockCoverage":true},{"functionName":"Doc","ranges":[{"startOffset":744,"endOffset":2321,"count":0}],"isBlockCoverage":false}]},{"scriptId":"250","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/tap.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7075,"count":1}],"isBlockCoverage":true},{"functionName":"TAP","ranges":[{"startOffset":950,"endOffset":1830,"count":0}],"isBlockCoverage":false},{"functionName":"title","ranges":[{"startOffset":2055,"endOffset":2124,"count":0}],"isBlockCoverage":false},{"functionName":"println","ranges":[{"startOffset":2331,"endOffset":2462,"count":0}],"isBlockCoverage":false},{"functionName":"createProducer","ranges":[{"startOffset":2767,"endOffset":3074,"count":0}],"isBlockCoverage":false},{"functionName":"TAPProducer","ranges":[{"startOffset":3234,"endOffset":3259,"count":0}],"isBlockCoverage":false},{"functionName":"TAPProducer.writeVersion","ranges":[{"startOffset":3375,"endOffset":3389,"count":0}],"isBlockCoverage":false},{"functionName":"TAPProducer.writePlan","ranges":[{"startOffset":3565,"endOffset":3618,"count":0}],"isBlockCoverage":false},{"functionName":"TAPProducer.writePass","ranges":[{"startOffset":3845,"endOffset":3906,"count":0}],"isBlockCoverage":false},{"functionName":"TAPProducer.writePending","ranges":[{"startOffset":4146,"endOffset":4216,"count":0}],"isBlockCoverage":false},{"functionName":"TAPProducer.writeFail","ranges":[{"startOffset":4443,"endOffset":4508,"count":0}],"isBlockCoverage":false},{"functionName":"TAPProducer.writeEpilogue","ranges":[{"startOffset":4692,"endOffset":5012,"count":0}],"isBlockCoverage":false},{"functionName":"TAP12Producer","ranges":[{"startOffset":5280,"endOffset":5678,"count":0}],"isBlockCoverage":false},{"functionName":"TAP13Producer","ranges":[{"startOffset":6044,"endOffset":6942,"count":0}],"isBlockCoverage":false}]},{"scriptId":"251","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/json.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3698,"count":1}],"isBlockCoverage":true},{"functionName":"JSONReporter","ranges":[{"startOffset":946,"endOffset":2369,"count":0}],"isBlockCoverage":false},{"functionName":"clean","ranges":[{"startOffset":2522,"endOffset":2845,"count":0}],"isBlockCoverage":false},{"functionName":"cleanCycles","ranges":[{"startOffset":2985,"endOffset":3379,"count":0}],"isBlockCoverage":false},{"functionName":"errorJSON","ranges":[{"startOffset":3495,"endOffset":3647,"count":0}],"isBlockCoverage":false}]},{"scriptId":"252","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/html.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11890,"count":1}],"isBlockCoverage":true},{"functionName":"HTML","ranges":[{"startOffset":1717,"endOffset":8910,"count":0}],"isBlockCoverage":false},{"functionName":"makeUrl","ranges":[{"startOffset":9037,"endOffset":9401,"count":0}],"isBlockCoverage":false},{"functionName":"HTML.suiteURL","ranges":[{"startOffset":9489,"endOffset":9568,"count":0}],"isBlockCoverage":false},{"functionName":"HTML.testURL","ranges":[{"startOffset":9654,"endOffset":9731,"count":0}],"isBlockCoverage":false},{"functionName":"HTML.addCodeToggle","ranges":[{"startOffset":9905,"endOffset":10218,"count":0}],"isBlockCoverage":false},{"functionName":"error","ranges":[{"startOffset":10279,"endOffset":10380,"count":0}],"isBlockCoverage":false},{"functionName":"fragment","ranges":[{"startOffset":10455,"endOffset":10805,"count":0}],"isBlockCoverage":false},{"functionName":"hideSuitesWithout","ranges":[{"startOffset":10927,"endOffset":11201,"count":0}],"isBlockCoverage":false},{"functionName":"unhide","ranges":[{"startOffset":11237,"endOffset":11424,"count":0}],"isBlockCoverage":false},{"functionName":"text","ranges":[{"startOffset":11527,"endOffset":11657,"count":0}],"isBlockCoverage":false},{"functionName":"on","ranges":[{"startOffset":11708,"endOffset":11863,"count":0}],"isBlockCoverage":false}]},{"scriptId":"253","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/list.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1959,"count":1}],"isBlockCoverage":true},{"functionName":"List","ranges":[{"startOffset":908,"endOffset":1840,"count":0}],"isBlockCoverage":false}]},{"scriptId":"254","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/min.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1145,"count":1}],"isBlockCoverage":true},{"functionName":"Min","ranges":[{"startOffset":728,"endOffset":1031,"count":0}],"isBlockCoverage":false}]},{"scriptId":"255","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/spec.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2432,"count":1}],"isBlockCoverage":true},{"functionName":"Spec","ranges":[{"startOffset":973,"endOffset":2310,"count":1}],"isBlockCoverage":true},{"functionName":"indent","ranges":[{"startOffset":1097,"endOffset":1158,"count":169}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1189,"endOffset":1229,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1264,"endOffset":1369,"count":74}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1402,"endOffset":1490,"count":74},{"startOffset":1454,"endOffset":1486,"count":13}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1526,"endOffset":1638,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1671,"endOffset":2119,"count":95},{"startOffset":1894,"endOffset":2115,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2152,"endOffset":2249,"count":0}],"isBlockCoverage":false}]},{"scriptId":"256","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/nyan.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5624,"count":1}],"isBlockCoverage":true},{"functionName":"NyanCat","ranges":[{"startOffset":814,"endOffset":1712,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.draw","ranges":[{"startOffset":1852,"endOffset":1986,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.drawScoreboard","ranges":[{"startOffset":2134,"endOffset":2483,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.appendRainbow","ranges":[{"startOffset":2567,"endOffset":2904,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.drawRainbow","ranges":[{"startOffset":2984,"endOffset":3248,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.drawNyanCat","ranges":[{"startOffset":3327,"endOffset":4124,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.face","ranges":[{"startOffset":4219,"endOffset":4433,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.cursorUp","ranges":[{"startOffset":4533,"endOffset":4594,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.cursorDown","ranges":[{"startOffset":4698,"endOffset":4759,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.generateColors","ranges":[{"startOffset":4867,"endOffset":5223,"count":0}],"isBlockCoverage":false},{"functionName":"NyanCat.rainbowify","ranges":[{"startOffset":5360,"endOffset":5585,"count":0}],"isBlockCoverage":false}]},{"scriptId":"257","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/xunit.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5233,"count":1}],"isBlockCoverage":true},{"functionName":"XUnit","ranges":[{"startOffset":1170,"endOffset":2859,"count":0}],"isBlockCoverage":false},{"functionName":"XUnit.done","ranges":[{"startOffset":3059,"endOffset":3210,"count":0}],"isBlockCoverage":false},{"functionName":"XUnit.write","ranges":[{"startOffset":3301,"endOffset":3528,"count":0}],"isBlockCoverage":false},{"functionName":"XUnit.test","ranges":[{"startOffset":3623,"endOffset":4442,"count":0}],"isBlockCoverage":false},{"functionName":"tag","ranges":[{"startOffset":4561,"endOffset":4970,"count":0}],"isBlockCoverage":false},{"functionName":"testFilePath","ranges":[{"startOffset":4972,"endOffset":5180,"count":0}],"isBlockCoverage":false}]},{"scriptId":"258","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/markdown.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2488,"count":1}],"isBlockCoverage":true},{"functionName":"Markdown","ranges":[{"startOffset":807,"endOffset":2435,"count":0}],"isBlockCoverage":false}]},{"scriptId":"259","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/progress.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2571,"count":1}],"isBlockCoverage":true},{"functionName":"Progress","ranges":[{"startOffset":835,"endOffset":2459,"count":0}],"isBlockCoverage":false}]},{"scriptId":"260","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/landing.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2572,"count":1}],"isBlockCoverage":true},{"functionName":"Landing","ranges":[{"startOffset":1002,"endOffset":2455,"count":0}],"isBlockCoverage":false}]},{"scriptId":"261","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/reporters/json-stream.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2059,"count":1}],"isBlockCoverage":true},{"functionName":"JSONStream","ranges":[{"startOffset":771,"endOffset":1342,"count":0}],"isBlockCoverage":false},{"functionName":"writeEvent","ranges":[{"startOffset":1472,"endOffset":1556,"count":0}],"isBlockCoverage":false},{"functionName":"clean","ranges":[{"startOffset":1792,"endOffset":1999,"count":0}],"isBlockCoverage":false}]},{"scriptId":"262","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/nodejs/esm-utils.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5725,"count":1},{"startOffset":5228,"endOffset":5286,"count":0}],"isBlockCoverage":true},{"functionName":"forward","ranges":[{"startOffset":136,"endOffset":142,"count":0}],"isBlockCoverage":false},{"functionName":"formattedImport","ranges":[{"startOffset":169,"endOffset":1147,"count":0}],"isBlockCoverage":false},{"functionName":"exports.doImport","ranges":[{"startOffset":1169,"endOffset":1195,"count":0}],"isBlockCoverage":false},{"functionName":"tryImportAndRequire","ranges":[{"startOffset":1540,"endOffset":3470,"count":0}],"isBlockCoverage":false},{"functionName":"requireModule","ranges":[{"startOffset":3744,"endOffset":4896,"count":11},{"startOffset":3813,"endOffset":3866,"count":0},{"startOffset":3905,"endOffset":4894,"count":0}],"isBlockCoverage":true},{"functionName":"dealWithExports","ranges":[{"startOffset":5288,"endOffset":5434,"count":0}],"isBlockCoverage":false},{"functionName":"exports.loadFilesAsync","ranges":[{"startOffset":5461,"endOffset":5723,"count":1},{"startOffset":5559,"endOffset":5721,"count":11}],"isBlockCoverage":true}]},{"scriptId":"263","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/stats-collector.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1767,"count":1}],"isBlockCoverage":true},{"functionName":"createStatsCollector","ranges":[{"startOffset":874,"endOffset":1726,"count":1},{"startOffset":1067,"endOffset":1124,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1182,"endOffset":1229,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1263,"endOffset":1319,"count":74},{"startOffset":1297,"endOffset":1314,"count":73}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1351,"endOffset":1388,"count":95}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1420,"endOffset":1459,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1494,"endOffset":1532,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1563,"endOffset":1599,"count":95}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1631,"endOffset":1722,"count":1}],"isBlockCoverage":true}]},{"scriptId":"264","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/interfaces/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":155,"count":1}],"isBlockCoverage":true}]},{"scriptId":"265","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/interfaces/bdd.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2563,"count":1}],"isBlockCoverage":true},{"functionName":"bddInterface","ranges":[{"startOffset":595,"endOffset":2499,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":686,"endOffset":2495,"count":11},{"startOffset":977,"endOffset":1006,"count":0}],"isBlockCoverage":true},{"functionName":"context.describe.context.context","ranges":[{"startOffset":1186,"endOffset":1299,"count":73}],"isBlockCoverage":true},{"functionName":"context.xdescribe.context.xcontext.context.describe.skip","ranges":[{"startOffset":1431,"endOffset":1566,"count":0}],"isBlockCoverage":false},{"functionName":"context.describe.only","ranges":[{"startOffset":1638,"endOffset":1749,"count":0}],"isBlockCoverage":false},{"functionName":"context.it.context.specify","ranges":[{"startOffset":1923,"endOffset":2146,"count":95},{"startOffset":2004,"endOffset":2032,"count":0}],"isBlockCoverage":true},{"functionName":"context.it.only","ranges":[{"startOffset":2216,"endOffset":2305,"count":0}],"isBlockCoverage":false},{"functionName":"context.xit.context.xspecify.context.it.skip","ranges":[{"startOffset":2426,"endOffset":2490,"count":0}],"isBlockCoverage":false}]},{"scriptId":"266","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/test.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2635,"count":1}],"isBlockCoverage":true},{"functionName":"Test","ranges":[{"startOffset":557,"endOffset":870,"count":95},{"startOffset":608,"endOffset":796,"count":0}],"isBlockCoverage":true},{"functionName":"Test.reset","ranges":[{"startOffset":1031,"endOffset":1133,"count":190}],"isBlockCoverage":true},{"functionName":"Test.retriedTest","ranges":[{"startOffset":1215,"endOffset":1317,"count":95},{"startOffset":1290,"endOffset":1316,"count":0}],"isBlockCoverage":true},{"functionName":"Test.markOnly","ranges":[{"startOffset":1417,"endOffset":1468,"count":0}],"isBlockCoverage":false},{"functionName":"Test.clone","ranges":[{"startOffset":1494,"endOffset":1857,"count":0}],"isBlockCoverage":false},{"functionName":"serialize","ranges":[{"startOffset":2051,"endOffset":2633,"count":0}],"isBlockCoverage":false}]},{"scriptId":"267","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/interfaces/tdd.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2392,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":676,"endOffset":2294,"count":0}],"isBlockCoverage":false}]},{"scriptId":"268","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/interfaces/qunit.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2185,"count":1}],"isBlockCoverage":true},{"functionName":"qUnitInterface","ranges":[{"startOffset":698,"endOffset":2138,"count":0}],"isBlockCoverage":false}]},{"scriptId":"269","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/interfaces/exports.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1428,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":460,"endOffset":1360,"count":0}],"isBlockCoverage":false}]},{"scriptId":"270","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/context.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1497,"count":1}],"isBlockCoverage":true},{"functionName":"Context","ranges":[{"startOffset":209,"endOffset":230,"count":1}],"isBlockCoverage":true},{"functionName":"Context.runnable","ranges":[{"startOffset":395,"endOffset":532,"count":157},{"startOffset":442,"endOffset":474,"count":0}],"isBlockCoverage":true},{"functionName":"Context.timeout","ranges":[{"startOffset":667,"endOffset":799,"count":0}],"isBlockCoverage":false},{"functionName":"Context.slow","ranges":[{"startOffset":942,"endOffset":1068,"count":0}],"isBlockCoverage":false},{"functionName":"Context.skip","ranges":[{"startOffset":1165,"endOffset":1206,"count":0}],"isBlockCoverage":false},{"functionName":"Context.retries","ranges":[{"startOffset":1365,"endOffset":1495,"count":0}],"isBlockCoverage":false}]},{"scriptId":"271","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/run-helpers.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9023,"count":1}],"isBlockCoverage":true},{"functionName":"exitMochaLater","ranges":[{"startOffset":1016,"endOffset":1170,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1054,"endOffset":1166,"count":1},{"startOffset":1151,"endOffset":1154,"count":0}],"isBlockCoverage":true},{"functionName":"exitMocha","ranges":[{"startOffset":1408,"endOffset":2240,"count":0}],"isBlockCoverage":false},{"functionName":"exports.list","ranges":[{"startOffset":2459,"endOffset":2537,"count":8},{"startOffset":2487,"endOffset":2516,"count":4},{"startOffset":2517,"endOffset":2537,"count":4}],"isBlockCoverage":true},{"functionName":"exports.handleRequires","ranges":[{"startOffset":2807,"endOffset":3665,"count":1},{"startOffset":2968,"endOffset":3495,"count":0},{"startOffset":3580,"endOffset":3645,"count":0}],"isBlockCoverage":true},{"functionName":"handleUnmatchedFiles","ranges":[{"startOffset":3928,"endOffset":4362,"count":0}],"isBlockCoverage":false},{"functionName":"singleRun","ranges":[{"startOffset":4708,"endOffset":5230,"count":1},{"startOffset":4899,"endOffset":4978,"count":0}],"isBlockCoverage":true},{"functionName":"parallelRun","ranges":[{"startOffset":5624,"endOffset":6139,"count":0}],"isBlockCoverage":false},{"functionName":"exports.runMocha","ranges":[{"startOffset":6610,"endOffset":7107,"count":1},{"startOffset":6943,"endOffset":6998,"count":0},{"startOffset":7025,"endOffset":7038,"count":0}],"isBlockCoverage":true},{"functionName":"exports.validateLegacyPlugin","ranges":[{"startOffset":7688,"endOffset":8756,"count":2},{"startOffset":7961,"endOffset":8086,"count":0},{"startOffset":8368,"endOffset":8754,"count":0}],"isBlockCoverage":true},{"functionName":"createUnknownError","ranges":[{"startOffset":8117,"endOffset":8273,"count":0}],"isBlockCoverage":false},{"functionName":"createExitHandler","ranges":[{"startOffset":8785,"endOffset":9021,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8834,"endOffset":9018,"count":1},{"startOffset":8897,"endOffset":8900,"count":0},{"startOffset":8953,"endOffset":8977,"count":0}],"isBlockCoverage":true}]},{"scriptId":"272","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/watch-run.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":19047,"count":1}],"isBlockCoverage":true},{"functionName":"exports.watchParallelRun","ranges":[{"startOffset":1823,"endOffset":3441,"count":0}],"isBlockCoverage":false},{"functionName":"exports.watchRun","ranges":[{"startOffset":4093,"endOffset":5550,"count":0}],"isBlockCoverage":false},{"functionName":"createPathFilter","ranges":[{"startOffset":5928,"endOffset":8443,"count":0}],"isBlockCoverage":false},{"functionName":"matchPattern","ranges":[{"startOffset":8850,"endOffset":9380,"count":0}],"isBlockCoverage":false},{"functionName":"createPathMatcher","ranges":[{"startOffset":9748,"endOffset":12637,"count":0}],"isBlockCoverage":false},{"functionName":"createWatcher","ranges":[{"startOffset":13428,"endOffset":16516,"count":0}],"isBlockCoverage":false},{"functionName":"createRerunner","ranges":[{"startOffset":16897,"endOffset":17898,"count":0}],"isBlockCoverage":false},{"functionName":"getWatchedFiles","ranges":[{"startOffset":18125,"endOffset":18338,"count":0}],"isBlockCoverage":false},{"functionName":"hideCursor","ranges":[{"startOffset":18411,"endOffset":18459,"count":0}],"isBlockCoverage":false},{"functionName":"showCursor","ranges":[{"startOffset":18532,"endOffset":18580,"count":0}],"isBlockCoverage":false},{"functionName":"eraseLine","ranges":[{"startOffset":18650,"endOffset":18696,"count":0}],"isBlockCoverage":false},{"functionName":"blastCache","ranges":[{"startOffset":18857,"endOffset":19045,"count":0}],"isBlockCoverage":false}]},{"scriptId":"273","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/chokidar/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":29861,"count":1}],"isBlockCoverage":true},{"functionName":"arrify","ranges":[{"startOffset":706,"endOffset":779,"count":0}],"isBlockCoverage":false},{"functionName":"isMatcherObject","ranges":[{"startOffset":804,"endOffset":896,"count":0}],"isBlockCoverage":false},{"functionName":"createPattern","ranges":[{"startOffset":898,"endOffset":1682,"count":0}],"isBlockCoverage":false},{"functionName":"normalizePath","ranges":[{"startOffset":1683,"endOffset":2134,"count":0}],"isBlockCoverage":false},{"functionName":"matchPatterns","ranges":[{"startOffset":2135,"endOffset":2430,"count":0}],"isBlockCoverage":false},{"functionName":"anymatch","ranges":[{"startOffset":2431,"endOffset":2925,"count":0}],"isBlockCoverage":false},{"functionName":"unifyPaths","ranges":[{"startOffset":2945,"endOffset":3183,"count":0}],"isBlockCoverage":false},{"functionName":"toUnix","ranges":[{"startOffset":3340,"endOffset":3667,"count":0}],"isBlockCoverage":false},{"functionName":"normalizePathToUnix","ranges":[{"startOffset":3801,"endOffset":3850,"count":0}],"isBlockCoverage":false},{"functionName":"normalizeIgnored","ranges":[{"startOffset":3895,"endOffset":4097,"count":0}],"isBlockCoverage":false},{"functionName":"getAbsolutePath","ranges":[{"startOffset":4123,"endOffset":4240,"count":0}],"isBlockCoverage":false},{"functionName":"DirEntry","ranges":[{"startOffset":4335,"endOffset":4476,"count":0}],"isBlockCoverage":false},{"functionName":"add","ranges":[{"startOffset":4481,"endOffset":4650,"count":0}],"isBlockCoverage":false},{"functionName":"remove","ranges":[{"startOffset":4655,"endOffset":5099,"count":0}],"isBlockCoverage":false},{"functionName":"has","ranges":[{"startOffset":5104,"endOffset":5225,"count":0}],"isBlockCoverage":false},{"functionName":"getChildren","ranges":[{"startOffset":5230,"endOffset":5362,"count":0}],"isBlockCoverage":false},{"functionName":"dispose","ranges":[{"startOffset":5367,"endOffset":5550,"count":0}],"isBlockCoverage":false},{"functionName":"WatchHelper","ranges":[{"startOffset":5638,"endOffset":6133,"count":0}],"isBlockCoverage":false},{"functionName":"entryPath","ranges":[{"startOffset":6138,"endOffset":6257,"count":0}],"isBlockCoverage":false},{"functionName":"filterPath","ranges":[{"startOffset":6262,"endOffset":6611,"count":0}],"isBlockCoverage":false},{"functionName":"filterDir","ranges":[{"startOffset":6616,"endOffset":6714,"count":0}],"isBlockCoverage":false},{"functionName":"FSWatcher","ranges":[{"startOffset":7109,"endOffset":10254,"count":0}],"isBlockCoverage":false},{"functionName":"_addIgnoredPath","ranges":[{"startOffset":10259,"endOffset":10739,"count":0}],"isBlockCoverage":false},{"functionName":"_removeIgnoredPath","ranges":[{"startOffset":10744,"endOffset":11327,"count":0}],"isBlockCoverage":false},{"functionName":"add","ranges":[{"startOffset":11504,"endOffset":12721,"count":0}],"isBlockCoverage":false},{"functionName":"unwatch","ranges":[{"startOffset":12811,"endOffset":13725,"count":0}],"isBlockCoverage":false},{"functionName":"close","ranges":[{"startOffset":13813,"endOffset":14803,"count":0}],"isBlockCoverage":false},{"functionName":"getWatched","ranges":[{"startOffset":14889,"endOffset":15216,"count":0}],"isBlockCoverage":false},{"functionName":"emitWithAll","ranges":[{"startOffset":15221,"endOffset":15401,"count":0}],"isBlockCoverage":false},{"functionName":"_emit","ranges":[{"startOffset":15789,"endOffset":18900,"count":0}],"isBlockCoverage":false},{"functionName":"_handleError","ranges":[{"startOffset":19054,"endOffset":19412,"count":0}],"isBlockCoverage":false},{"functionName":"_throttle","ranges":[{"startOffset":19693,"endOffset":20656,"count":0}],"isBlockCoverage":false},{"functionName":"_incrReadyCount","ranges":[{"startOffset":20661,"endOffset":20721,"count":0}],"isBlockCoverage":false},{"functionName":"_awaitWriteFinish","ranges":[{"startOffset":21164,"endOffset":22897,"count":0}],"isBlockCoverage":false},{"functionName":"_isIgnored","ranges":[{"startOffset":22980,"endOffset":23537,"count":0}],"isBlockCoverage":false},{"functionName":"_isntIgnored","ranges":[{"startOffset":23542,"endOffset":23619,"count":0}],"isBlockCoverage":false},{"functionName":"_getWatchHelpers","ranges":[{"startOffset":23784,"endOffset":23887,"count":0}],"isBlockCoverage":false},{"functionName":"_getWatchedDir","ranges":[{"startOffset":24047,"endOffset":24278,"count":0}],"isBlockCoverage":false},{"functionName":"_hasReadPermissions","ranges":[{"startOffset":24419,"endOffset":24579,"count":0}],"isBlockCoverage":false},{"functionName":"_remove","ranges":[{"startOffset":24880,"endOffset":27887,"count":0}],"isBlockCoverage":false},{"functionName":"_closePath","ranges":[{"startOffset":27946,"endOffset":28109,"count":0}],"isBlockCoverage":false},{"functionName":"_closeFile","ranges":[{"startOffset":28172,"endOffset":28370,"count":0}],"isBlockCoverage":false},{"functionName":"_addPathCloser","ranges":[{"startOffset":28375,"endOffset":28620,"count":0}],"isBlockCoverage":false},{"functionName":"_readdirp","ranges":[{"startOffset":28625,"endOffset":29208,"count":0}],"isBlockCoverage":false},{"functionName":"watch","ranges":[{"startOffset":29693,"endOffset":29820,"count":0}],"isBlockCoverage":false}]},{"scriptId":"274","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/readdirp/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9967,"count":1}],"isBlockCoverage":true},{"functionName":"fileFilter","ranges":[{"startOffset":542,"endOffset":562,"count":0}],"isBlockCoverage":false},{"functionName":"directoryFilter","ranges":[{"startOffset":585,"endOffset":605,"count":0}],"isBlockCoverage":false},{"functionName":"isNormalFlowError","ranges":[{"startOffset":1407,"endOffset":1452,"count":0}],"isBlockCoverage":false},{"functionName":"emptyFn","ranges":[{"startOffset":1526,"endOffset":1546,"count":0}],"isBlockCoverage":false},{"functionName":"normalizeFilter","ranges":[{"startOffset":1572,"endOffset":2016,"count":0}],"isBlockCoverage":false},{"functionName":"ReaddirpStream","ranges":[{"startOffset":2152,"endOffset":3556,"count":0}],"isBlockCoverage":false},{"functionName":"_read","ranges":[{"startOffset":3561,"endOffset":5706,"count":0}],"isBlockCoverage":false},{"functionName":"_exploreDir","ranges":[{"startOffset":5711,"endOffset":5973,"count":0}],"isBlockCoverage":false},{"functionName":"_formatEntry","ranges":[{"startOffset":5978,"endOffset":6515,"count":0}],"isBlockCoverage":false},{"functionName":"_onError","ranges":[{"startOffset":6520,"endOffset":6700,"count":0}],"isBlockCoverage":false},{"functionName":"_getEntryType","ranges":[{"startOffset":6705,"endOffset":8198,"count":0}],"isBlockCoverage":false},{"functionName":"_includeAsFile","ranges":[{"startOffset":8203,"endOffset":8358,"count":0}],"isBlockCoverage":false},{"functionName":"readdirp","ranges":[{"startOffset":8653,"endOffset":9392,"count":0}],"isBlockCoverage":false},{"functionName":"readdirpPromise","ranges":[{"startOffset":9627,"endOffset":9938,"count":0}],"isBlockCoverage":false}]},{"scriptId":"275","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/chokidar/handler.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":25231,"count":1}],"isBlockCoverage":true},{"functionName":"EMPTY_FN","ranges":[{"startOffset":547,"endOffset":556,"count":0}],"isBlockCoverage":false},{"functionName":"IDENTITY_FN","ranges":[{"startOffset":607,"endOffset":619,"count":0}],"isBlockCoverage":false},{"functionName":"isBinaryPath","ranges":[{"startOffset":3506,"endOffset":3590,"count":0}],"isBlockCoverage":false},{"functionName":"foreach","ranges":[{"startOffset":3665,"endOffset":3776,"count":0}],"isBlockCoverage":false},{"functionName":"addAndConvert","ranges":[{"startOffset":3800,"endOffset":3982,"count":0}],"isBlockCoverage":false},{"functionName":"clearItem","ranges":[{"startOffset":4002,"endOffset":4151,"count":0}],"isBlockCoverage":false},{"functionName":"delFromSet","ranges":[{"startOffset":4172,"endOffset":4373,"count":0}],"isBlockCoverage":false},{"functionName":"isEmptySet","ranges":[{"startOffset":4394,"endOffset":4447,"count":0}],"isBlockCoverage":false},{"functionName":"createFsWatchInstance","ranges":[{"startOffset":4756,"endOffset":5494,"count":0}],"isBlockCoverage":false},{"functionName":"fsWatchBroadcast","ranges":[{"startOffset":5659,"endOffset":5880,"count":0}],"isBlockCoverage":false},{"functionName":"setFsWatchListener","ranges":[{"startOffset":6182,"endOffset":8688,"count":0}],"isBlockCoverage":false},{"functionName":"setFsWatchFileListener","ranges":[{"startOffset":9215,"endOffset":11425,"count":0}],"isBlockCoverage":false},{"functionName":"NodeFsHandler","ranges":[{"startOffset":11471,"endOffset":11588,"count":0}],"isBlockCoverage":false},{"functionName":"_watchWithNodeFs","ranges":[{"startOffset":11788,"endOffset":12908,"count":0}],"isBlockCoverage":false},{"functionName":"_handleFile","ranges":[{"startOffset":13030,"endOffset":15842,"count":0}],"isBlockCoverage":false},{"functionName":"_handleSymlink","ranges":[{"startOffset":16149,"endOffset":17511,"count":0}],"isBlockCoverage":false},{"functionName":"_handleRead","ranges":[{"startOffset":17516,"endOffset":20440,"count":0}],"isBlockCoverage":false},{"functionName":"_handleDir","ranges":[{"startOffset":20849,"endOffset":22075,"count":0}],"isBlockCoverage":false},{"functionName":"_addToNodeFs","ranges":[{"startOffset":22493,"endOffset":25189,"count":0}],"isBlockCoverage":false}]},{"scriptId":"276","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2876,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":699,"endOffset":741,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":814,"endOffset":858,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":965,"endOffset":1003,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1124,"endOffset":1171,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1284,"endOffset":1326,"count":0}],"isBlockCoverage":false},{"functionName":"globStreamSync","ranges":[{"startOffset":1331,"endOffset":1443,"count":0}],"isBlockCoverage":false},{"functionName":"globStream","ranges":[{"startOffset":1444,"endOffset":1548,"count":0}],"isBlockCoverage":false},{"functionName":"globSync","ranges":[{"startOffset":1549,"endOffset":1653,"count":0}],"isBlockCoverage":false},{"functionName":"glob_","ranges":[{"startOffset":1654,"endOffset":1757,"count":0}],"isBlockCoverage":false},{"functionName":"globIterateSync","ranges":[{"startOffset":1758,"endOffset":1872,"count":0}],"isBlockCoverage":false},{"functionName":"globIterate","ranges":[{"startOffset":1873,"endOffset":1979,"count":0}],"isBlockCoverage":false}]},{"scriptId":"277","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":39853,"count":1},{"startOffset":3263,"endOffset":3272,"count":0},{"startOffset":3407,"endOffset":3423,"count":0}],"isBlockCoverage":true},{"functionName":"__importDefault","ranges":[{"startOffset":70,"endOffset":151,"count":1},{"startOffset":122,"endOffset":127,"count":0}],"isBlockCoverage":true},{"functionName":"minimatch","ranges":[{"startOffset":729,"endOffset":1007,"count":0}],"isBlockCoverage":false},{"functionName":"starDotExtTest","ranges":[{"startOffset":1166,"endOffset":1219,"count":0}],"isBlockCoverage":false},{"functionName":"starDotExtTestDot","ranges":[{"startOffset":1247,"endOffset":1278,"count":0}],"isBlockCoverage":false},{"functionName":"starDotExtTestNocase","ranges":[{"startOffset":1309,"endOffset":1421,"count":0}],"isBlockCoverage":false},{"functionName":"starDotExtTestNocaseDot","ranges":[{"startOffset":1455,"endOffset":1545,"count":0}],"isBlockCoverage":false},{"functionName":"starDotStarTest","ranges":[{"startOffset":1607,"endOffset":1651,"count":0}],"isBlockCoverage":false},{"functionName":"starDotStarTestDot","ranges":[{"startOffset":1680,"endOffset":1729,"count":0}],"isBlockCoverage":false},{"functionName":"dotStarTest","ranges":[{"startOffset":1780,"endOffset":1831,"count":0}],"isBlockCoverage":false},{"functionName":"starTest","ranges":[{"startOffset":1874,"endOffset":1917,"count":0}],"isBlockCoverage":false},{"functionName":"starTestDot","ranges":[{"startOffset":1939,"endOffset":1987,"count":0}],"isBlockCoverage":false},{"functionName":"qmarksTestNocase","ranges":[{"startOffset":2057,"endOffset":2247,"count":0}],"isBlockCoverage":false},{"functionName":"qmarksTestNocaseDot","ranges":[{"startOffset":2277,"endOffset":2470,"count":0}],"isBlockCoverage":false},{"functionName":"qmarksTestDot","ranges":[{"startOffset":2494,"endOffset":2623,"count":0}],"isBlockCoverage":false},{"functionName":"qmarksTest","ranges":[{"startOffset":2644,"endOffset":2770,"count":0}],"isBlockCoverage":false},{"functionName":"qmarksTestNoExt","ranges":[{"startOffset":2796,"endOffset":2894,"count":0}],"isBlockCoverage":false},{"functionName":"qmarksTestNoExtDot","ranges":[{"startOffset":2923,"endOffset":3026,"count":0}],"isBlockCoverage":false},{"functionName":"filter","ranges":[{"startOffset":4110,"endOffset":4187,"count":0}],"isBlockCoverage":false},{"functionName":"ext","ranges":[{"startOffset":4269,"endOffset":4307,"count":0}],"isBlockCoverage":false},{"functionName":"defaults","ranges":[{"startOffset":4326,"endOffset":5918,"count":0}],"isBlockCoverage":false},{"functionName":"braceExpand","ranges":[{"startOffset":6266,"endOffset":6670,"count":0}],"isBlockCoverage":false},{"functionName":"makeRe","ranges":[{"startOffset":7419,"endOffset":7486,"count":0}],"isBlockCoverage":false},{"functionName":"match","ranges":[{"startOffset":7570,"endOffset":7792,"count":0}],"isBlockCoverage":false},{"functionName":"regExpEscape","ranges":[{"startOffset":7956,"endOffset":8008,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":8032,"endOffset":8310,"count":0}],"isBlockCoverage":true},{"functionName":"Minimatch","ranges":[{"startOffset":8316,"endOffset":9586,"count":0}],"isBlockCoverage":false},{"functionName":"hasMagic","ranges":[{"startOffset":9591,"endOffset":9918,"count":0}],"isBlockCoverage":false},{"functionName":"debug","ranges":[{"startOffset":9923,"endOffset":9938,"count":0}],"isBlockCoverage":false},{"functionName":"make","ranges":[{"startOffset":9943,"endOffset":12773,"count":0}],"isBlockCoverage":false},{"functionName":"preprocess","ranges":[{"startOffset":13074,"endOffset":14142,"count":0}],"isBlockCoverage":false},{"functionName":"adjascentGlobstarOptimize","ranges":[{"startOffset":14192,"endOffset":14632,"count":0}],"isBlockCoverage":false},{"functionName":"levelOneOptimize","ranges":[{"startOffset":14692,"endOffset":15347,"count":0}],"isBlockCoverage":false},{"functionName":"levelTwoFileOptimize","ranges":[{"startOffset":15352,"endOffset":16840,"count":0}],"isBlockCoverage":false},{"functionName":"firstPhasePreProcess","ranges":[{"startOffset":17671,"endOffset":20908,"count":0}],"isBlockCoverage":false},{"functionName":"secondPhasePreProcess","ranges":[{"startOffset":21250,"endOffset":21749,"count":0}],"isBlockCoverage":false},{"functionName":"partsMatch","ranges":[{"startOffset":21754,"endOffset":23331,"count":0}],"isBlockCoverage":false},{"functionName":"parseNegate","ranges":[{"startOffset":23336,"endOffset":23760,"count":0}],"isBlockCoverage":false},{"functionName":"matchOne","ranges":[{"startOffset":24003,"endOffset":26058,"count":0}],"isBlockCoverage":false},{"functionName":"#matchGlobstar","ranges":[{"startOffset":26063,"endOffset":28811,"count":0}],"isBlockCoverage":false},{"functionName":"#matchGlobStarBodySections","ranges":[{"startOffset":28816,"endOffset":30066,"count":0}],"isBlockCoverage":false},{"functionName":"#matchOne","ranges":[{"startOffset":30071,"endOffset":31334,"count":0}],"isBlockCoverage":false},{"functionName":"braceExpand","ranges":[{"startOffset":31339,"endOffset":31429,"count":0}],"isBlockCoverage":false},{"functionName":"parse","ranges":[{"startOffset":31434,"endOffset":33161,"count":0}],"isBlockCoverage":false},{"functionName":"makeRe","ranges":[{"startOffset":33166,"endOffset":36523,"count":0}],"isBlockCoverage":false},{"functionName":"slashSplit","ranges":[{"startOffset":36528,"endOffset":37097,"count":0}],"isBlockCoverage":false},{"functionName":"match","ranges":[{"startOffset":37102,"endOffset":39013,"count":0}],"isBlockCoverage":false},{"functionName":"defaults","ranges":[{"startOffset":39025,"endOffset":39104,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":39259,"endOffset":39295,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":39408,"endOffset":39450,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":39569,"endOffset":39615,"count":1}],"isBlockCoverage":true}]},{"scriptId":"278","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/brace-expansion/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4997,"count":1}],"isBlockCoverage":true},{"functionName":"numeric","ranges":[{"startOffset":298,"endOffset":406,"count":0}],"isBlockCoverage":false},{"functionName":"escapeBraces","ranges":[{"startOffset":408,"endOffset":645,"count":0}],"isBlockCoverage":false},{"functionName":"unescapeBraces","ranges":[{"startOffset":647,"endOffset":876,"count":0}],"isBlockCoverage":false},{"functionName":"parseCommaParts","ranges":[{"startOffset":1040,"endOffset":1506,"count":0}],"isBlockCoverage":false},{"functionName":"expandTop","ranges":[{"startOffset":1508,"endOffset":2085,"count":0}],"isBlockCoverage":false},{"functionName":"embrace","ranges":[{"startOffset":2087,"endOffset":2138,"count":0}],"isBlockCoverage":false},{"functionName":"isPadded","ranges":[{"startOffset":2139,"endOffset":2192,"count":0}],"isBlockCoverage":false},{"functionName":"lte","ranges":[{"startOffset":2194,"endOffset":2233,"count":0}],"isBlockCoverage":false},{"functionName":"gte","ranges":[{"startOffset":2234,"endOffset":2273,"count":0}],"isBlockCoverage":false},{"functionName":"expand","ranges":[{"startOffset":2275,"endOffset":4995,"count":0}],"isBlockCoverage":false}]},{"scriptId":"279","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/balanced-match/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1174,"count":1}],"isBlockCoverage":true},{"functionName":"balanced","ranges":[{"startOffset":41,"endOffset":368,"count":0}],"isBlockCoverage":false},{"functionName":"maybeMatch","ranges":[{"startOffset":370,"endOffset":455,"count":0}],"isBlockCoverage":false},{"functionName":"range","ranges":[{"startOffset":481,"endOffset":1173,"count":0}],"isBlockCoverage":false}]},{"scriptId":"280","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":492,"count":1}],"isBlockCoverage":true},{"functionName":"assertValidPattern","ranges":[{"startOffset":179,"endOffset":393,"count":0}],"isBlockCoverage":false}]},{"scriptId":"281","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/ast.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":27788,"count":1}],"isBlockCoverage":true},{"functionName":"isExtglobType","ranges":[{"startOffset":324,"endOffset":343,"count":0}],"isBlockCoverage":false},{"functionName":"isExtglobAST","ranges":[{"startOffset":366,"endOffset":394,"count":0}],"isBlockCoverage":false},{"functionName":"regExpEscape","ranges":[{"startOffset":1811,"endOffset":1863,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":2278,"endOffset":2563,"count":0}],"isBlockCoverage":true},{"functionName":"AST","ranges":[{"startOffset":2569,"endOffset":3138,"count":0}],"isBlockCoverage":false},{"functionName":"get hasMagic","ranges":[{"startOffset":3143,"endOffset":3613,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":3650,"endOffset":4007,"count":0}],"isBlockCoverage":false},{"functionName":"#fillNegs","ranges":[{"startOffset":4012,"endOffset":5201,"count":0}],"isBlockCoverage":false},{"functionName":"push","ranges":[{"startOffset":5206,"endOffset":5577,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":5582,"endOffset":6052,"count":0}],"isBlockCoverage":false},{"functionName":"isStart","ranges":[{"startOffset":6057,"endOffset":6654,"count":0}],"isBlockCoverage":false},{"functionName":"isEnd","ranges":[{"startOffset":6659,"endOffset":7146,"count":0}],"isBlockCoverage":false},{"functionName":"copyIn","ranges":[{"startOffset":7151,"endOffset":7292,"count":0}],"isBlockCoverage":false},{"functionName":"clone","ranges":[{"startOffset":7297,"endOffset":7455,"count":0}],"isBlockCoverage":false},{"functionName":"#parseAST","ranges":[{"startOffset":7467,"endOffset":11981,"count":0}],"isBlockCoverage":false},{"functionName":"#canAdoptWithSpace","ranges":[{"startOffset":11986,"endOffset":12079,"count":0}],"isBlockCoverage":false},{"functionName":"#canAdopt","ranges":[{"startOffset":12084,"endOffset":12522,"count":0}],"isBlockCoverage":false},{"functionName":"#canAdoptType","ranges":[{"startOffset":12527,"endOffset":12623,"count":0}],"isBlockCoverage":false},{"functionName":"#adoptWithSpace","ranges":[{"startOffset":12628,"endOffset":12845,"count":0}],"isBlockCoverage":false},{"functionName":"#adopt","ranges":[{"startOffset":12850,"endOffset":13122,"count":0}],"isBlockCoverage":false},{"functionName":"#canUsurpType","ranges":[{"startOffset":13127,"endOffset":13224,"count":0}],"isBlockCoverage":false},{"functionName":"#canUsurp","ranges":[{"startOffset":13229,"endOffset":13683,"count":0}],"isBlockCoverage":false},{"functionName":"#usurp","ranges":[{"startOffset":13688,"endOffset":14186,"count":0}],"isBlockCoverage":false},{"functionName":"#flatten","ranges":[{"startOffset":14191,"endOffset":15360,"count":0}],"isBlockCoverage":false},{"functionName":"fromGlob","ranges":[{"startOffset":15372,"endOffset":15536,"count":0}],"isBlockCoverage":false},{"functionName":"toMMPattern","ranges":[{"startOffset":15636,"endOffset":16607,"count":0}],"isBlockCoverage":false},{"functionName":"get options","ranges":[{"startOffset":16612,"endOffset":16663,"count":0}],"isBlockCoverage":false},{"functionName":"toRegExpSource","ranges":[{"startOffset":20106,"endOffset":25298,"count":0}],"isBlockCoverage":false},{"functionName":"#partsToRegExp","ranges":[{"startOffset":25303,"endOffset":25948,"count":0}],"isBlockCoverage":false},{"functionName":"#parseGlob","ranges":[{"startOffset":25960,"endOffset":27725,"count":0}],"isBlockCoverage":false}]},{"scriptId":"282","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/brace-expressions.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5763,"count":1}],"isBlockCoverage":true},{"functionName":"braceEscape","ranges":[{"startOffset":1000,"endOffset":1037,"count":0}],"isBlockCoverage":false},{"functionName":"regexpEscape","ranges":[{"startOffset":1098,"endOffset":1150,"count":0}],"isBlockCoverage":false},{"functionName":"rangesToString","ranges":[{"startOffset":1236,"endOffset":1263,"count":0}],"isBlockCoverage":false},{"functionName":"parseClass","ranges":[{"startOffset":1621,"endOffset":5683,"count":0}],"isBlockCoverage":false}]},{"scriptId":"283","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/unescape.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":973,"count":1}],"isBlockCoverage":true},{"functionName":"unescape","ranges":[{"startOffset":694,"endOffset":906,"count":0}],"isBlockCoverage":false}]},{"scriptId":"284","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/escape.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":968,"count":1}],"isBlockCoverage":true},{"functionName":"escape","ranges":[{"startOffset":553,"endOffset":907,"count":0}],"isBlockCoverage":false}]},{"scriptId":"285","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/glob.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8546,"count":1},{"startOffset":552,"endOffset":561,"count":0}],"isBlockCoverage":true},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":643,"endOffset":1151,"count":0}],"isBlockCoverage":true},{"functionName":"Glob","ranges":[{"startOffset":1581,"endOffset":5913,"count":0}],"isBlockCoverage":false},{"functionName":"walk","ranges":[{"startOffset":5918,"endOffset":6667,"count":0}],"isBlockCoverage":false},{"functionName":"walkSync","ranges":[{"startOffset":6672,"endOffset":7139,"count":0}],"isBlockCoverage":false},{"functionName":"stream","ranges":[{"startOffset":7144,"endOffset":7547,"count":0}],"isBlockCoverage":false},{"functionName":"streamSync","ranges":[{"startOffset":7552,"endOffset":7963,"count":0}],"isBlockCoverage":false},{"functionName":"iterateSync","ranges":[{"startOffset":8083,"endOffset":8157,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8162,"endOffset":8224,"count":0}],"isBlockCoverage":false},{"functionName":"iterate","ranges":[{"startOffset":8351,"endOffset":8422,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8427,"endOffset":8490,"count":0}],"isBlockCoverage":false}]},{"scriptId":"286","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/path-scurry/dist/commonjs/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":66122,"count":1},{"startOffset":407,"endOffset":488,"count":0},{"startOffset":664,"endOffset":706,"count":0},{"startOffset":65687,"endOffset":65698,"count":0},{"startOffset":65989,"endOffset":66006,"count":0},{"startOffset":66070,"endOffset":66087,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":88,"endOffset":405,"count":104},{"startOffset":232,"endOffset":247,"count":6},{"startOffset":248,"endOffset":284,"count":98},{"startOffset":264,"endOffset":284,"count":1},{"startOffset":287,"endOffset":363,"count":103}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":327,"endOffset":354,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":410,"endOffset":487,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":571,"endOffset":662,"count":1}],"isBlockCoverage":true},{"functionName":"__setModuleDefault","ranges":[{"startOffset":666,"endOffset":706,"count":0}],"isBlockCoverage":false},{"functionName":"__importStar","ranges":[{"startOffset":759,"endOffset":1039,"count":1},{"startOffset":807,"endOffset":818,"count":0},{"startOffset":880,"endOffset":981,"count":104}],"isBlockCoverage":true},{"functionName":"fsFromOption","ranges":[{"startOffset":2223,"endOffset":2478,"count":0}],"isBlockCoverage":false},{"functionName":"uncToDrive","ranges":[{"startOffset":2588,"endOffset":2663,"count":0}],"isBlockCoverage":false},{"functionName":"entToType","ranges":[{"startOffset":3789,"endOffset":4096,"count":0}],"isBlockCoverage":false},{"functionName":"normalize","ranges":[{"startOffset":4182,"endOffset":4337,"count":0}],"isBlockCoverage":false},{"functionName":"normalizeNocase","ranges":[{"startOffset":4403,"endOffset":4577,"count":0}],"isBlockCoverage":false},{"functionName":"ResolveCache","ranges":[{"startOffset":4720,"endOffset":4770,"count":0}],"isBlockCoverage":false},{"functionName":"ChildrenCache","ranges":[{"startOffset":5698,"endOffset":5868,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":6947,"endOffset":33181,"count":0}],"isBlockCoverage":true},{"functionName":"readdir","ranges":[{"startOffset":33456,"endOffset":34698,"count":0}],"isBlockCoverage":false},{"functionName":"readdirSync","ranges":[{"startOffset":34763,"endOffset":35564,"count":0}],"isBlockCoverage":false},{"functionName":"canReaddir","ranges":[{"startOffset":35569,"endOffset":35953,"count":0}],"isBlockCoverage":false},{"functionName":"shouldWalk","ranges":[{"startOffset":35958,"endOffset":36163,"count":0}],"isBlockCoverage":false},{"functionName":"realpath","ranges":[{"startOffset":36482,"endOffset":36883,"count":0}],"isBlockCoverage":false},{"functionName":"realpathSync","ranges":[{"startOffset":36940,"endOffset":37328,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":37482,"endOffset":38138,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":38442,"endOffset":38537,"count":0}],"isBlockCoverage":true},{"functionName":"PathWin32","ranges":[{"startOffset":38731,"endOffset":38873,"count":0}],"isBlockCoverage":false},{"functionName":"newChild","ranges":[{"startOffset":38911,"endOffset":39066,"count":0}],"isBlockCoverage":false},{"functionName":"getRootString","ranges":[{"startOffset":39104,"endOffset":39182,"count":0}],"isBlockCoverage":false},{"functionName":"getRoot","ranges":[{"startOffset":39220,"endOffset":39782,"count":0}],"isBlockCoverage":false},{"functionName":"sameRoot","ranges":[{"startOffset":39820,"endOffset":40224,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":40444,"endOffset":40534,"count":0}],"isBlockCoverage":true},{"functionName":"PathPosix","ranges":[{"startOffset":40728,"endOffset":40870,"count":0}],"isBlockCoverage":false},{"functionName":"getRootString","ranges":[{"startOffset":40908,"endOffset":40983,"count":0}],"isBlockCoverage":false},{"functionName":"getRoot","ranges":[{"startOffset":41021,"endOffset":41073,"count":0}],"isBlockCoverage":false},{"functionName":"newChild","ranges":[{"startOffset":41111,"endOffset":41266,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":41744,"endOffset":42285,"count":0}],"isBlockCoverage":true},{"functionName":"PathScurryBase","ranges":[{"startOffset":42470,"endOffset":44270,"count":0}],"isBlockCoverage":false},{"functionName":"depth","ranges":[{"startOffset":44351,"endOffset":44503,"count":0}],"isBlockCoverage":false},{"functionName":"childrenCache","ranges":[{"startOffset":44678,"endOffset":44732,"count":0}],"isBlockCoverage":false},{"functionName":"resolve","ranges":[{"startOffset":45047,"endOffset":45748,"count":0}],"isBlockCoverage":false},{"functionName":"resolvePosix","ranges":[{"startOffset":46210,"endOffset":46931,"count":0}],"isBlockCoverage":false},{"functionName":"relative","ranges":[{"startOffset":47032,"endOffset":47195,"count":0}],"isBlockCoverage":false},{"functionName":"relativePosix","ranges":[{"startOffset":47352,"endOffset":47525,"count":0}],"isBlockCoverage":false},{"functionName":"basename","ranges":[{"startOffset":47612,"endOffset":47769,"count":0}],"isBlockCoverage":false},{"functionName":"dirname","ranges":[{"startOffset":47855,"endOffset":48035,"count":0}],"isBlockCoverage":false},{"functionName":"readdir","ranges":[{"startOffset":48040,"endOffset":48572,"count":0}],"isBlockCoverage":false},{"functionName":"readdirSync","ranges":[{"startOffset":48577,"endOffset":49151,"count":0}],"isBlockCoverage":false},{"functionName":"lstat","ranges":[{"startOffset":49804,"endOffset":49967,"count":0}],"isBlockCoverage":false},{"functionName":"lstatSync","ranges":[{"startOffset":50036,"endOffset":50201,"count":0}],"isBlockCoverage":false},{"functionName":"readlink","ranges":[{"startOffset":50206,"endOffset":50631,"count":0}],"isBlockCoverage":false},{"functionName":"readlinkSync","ranges":[{"startOffset":50636,"endOffset":51057,"count":0}],"isBlockCoverage":false},{"functionName":"realpath","ranges":[{"startOffset":51062,"endOffset":51487,"count":0}],"isBlockCoverage":false},{"functionName":"realpathSync","ranges":[{"startOffset":51492,"endOffset":51913,"count":0}],"isBlockCoverage":false},{"functionName":"walk","ranges":[{"startOffset":51918,"endOffset":54055,"count":0}],"isBlockCoverage":false},{"functionName":"walkSync","ranges":[{"startOffset":54060,"endOffset":55248,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":55596,"endOffset":55659,"count":0}],"isBlockCoverage":false},{"functionName":"iterate","ranges":[{"startOffset":55664,"endOffset":56234,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":56378,"endOffset":56440,"count":0}],"isBlockCoverage":false},{"functionName":"iterateSync","ranges":[{"startOffset":56445,"endOffset":57569,"count":0}],"isBlockCoverage":false},{"functionName":"stream","ranges":[{"startOffset":57574,"endOffset":60521,"count":0}],"isBlockCoverage":false},{"functionName":"streamSync","ranges":[{"startOffset":60526,"endOffset":62491,"count":0}],"isBlockCoverage":false},{"functionName":"chdir","ranges":[{"startOffset":62496,"endOffset":62672,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":63006,"endOffset":63016,"count":0}],"isBlockCoverage":true},{"functionName":"PathScurryWin32","ranges":[{"startOffset":63022,"endOffset":63305,"count":0}],"isBlockCoverage":false},{"functionName":"parseRootPath","ranges":[{"startOffset":63343,"endOffset":63647,"count":0}],"isBlockCoverage":false},{"functionName":"newRoot","ranges":[{"startOffset":63685,"endOffset":63822,"count":0}],"isBlockCoverage":false},{"functionName":"isAbsolute","ranges":[{"startOffset":63910,"endOffset":64018,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":64393,"endOffset":64402,"count":0}],"isBlockCoverage":true},{"functionName":"PathScurryPosix","ranges":[{"startOffset":64408,"endOffset":64595,"count":0}],"isBlockCoverage":false},{"functionName":"parseRootPath","ranges":[{"startOffset":64633,"endOffset":64680,"count":0}],"isBlockCoverage":false},{"functionName":"newRoot","ranges":[{"startOffset":64718,"endOffset":64855,"count":0}],"isBlockCoverage":false},{"functionName":"isAbsolute","ranges":[{"startOffset":64943,"endOffset":64998,"count":0}],"isBlockCoverage":false},{"functionName":"PathScurryDarwin","ranges":[{"startOffset":65309,"endOffset":65441,"count":0}],"isBlockCoverage":false}]},{"scriptId":"287","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":55020,"count":1},{"startOffset":263,"endOffset":269,"count":0},{"startOffset":387,"endOffset":391,"count":0},{"startOffset":740,"endOffset":2309,"count":0}],"isBlockCoverage":true},{"functionName":"emitWarning","ranges":[{"startOffset":436,"endOffset":615,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":796,"endOffset":867,"count":0}],"isBlockCoverage":true},{"functionName":"addEventListener","ranges":[{"startOffset":877,"endOffset":948,"count":0}],"isBlockCoverage":false},{"functionName":"AbortController","ranges":[{"startOffset":1014,"endOffset":1069,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":1078,"endOffset":1095,"count":0}],"isBlockCoverage":true},{"functionName":"abort","ranges":[{"startOffset":1105,"endOffset":1485,"count":0}],"isBlockCoverage":false},{"functionName":"warnACPolyfill","ranges":[{"startOffset":1603,"endOffset":2306,"count":0}],"isBlockCoverage":false},{"functionName":"shouldWarn","ranges":[{"startOffset":2350,"endOffset":2377,"count":0}],"isBlockCoverage":false},{"functionName":"isPosInt","ranges":[{"startOffset":2425,"endOffset":2480,"count":0}],"isBlockCoverage":false},{"functionName":"getUintArray","ranges":[{"startOffset":2995,"endOffset":3312,"count":0}],"isBlockCoverage":false},{"functionName":"ZeroArray","ranges":[{"startOffset":3371,"endOffset":3439,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":3460,"endOffset":3476,"count":0}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":3509,"endOffset":3537,"count":1}],"isBlockCoverage":true},{"functionName":"create","ranges":[{"startOffset":3550,"endOffset":3791,"count":0}],"isBlockCoverage":false},{"functionName":"Stack","ranges":[{"startOffset":3796,"endOffset":4073,"count":0}],"isBlockCoverage":false},{"functionName":"push","ranges":[{"startOffset":4078,"endOffset":4131,"count":0}],"isBlockCoverage":false},{"functionName":"pop","ranges":[{"startOffset":4136,"endOffset":4190,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":4902,"endOffset":23037,"count":0}],"isBlockCoverage":true},{"functionName":"find","ranges":[{"startOffset":23211,"endOffset":23645,"count":0}],"isBlockCoverage":false},{"functionName":"forEach","ranges":[{"startOffset":24093,"endOffset":24456,"count":0}],"isBlockCoverage":false},{"functionName":"rforEach","ranges":[{"startOffset":24631,"endOffset":24996,"count":0}],"isBlockCoverage":false},{"functionName":"purgeStale","ranges":[{"startOffset":25112,"endOffset":25399,"count":0}],"isBlockCoverage":false},{"functionName":"info","ranges":[{"startOffset":26009,"endOffset":26778,"count":0}],"isBlockCoverage":false},{"functionName":"dump","ranges":[{"startOffset":27302,"endOffset":28252,"count":0}],"isBlockCoverage":false},{"functionName":"load","ranges":[{"startOffset":28628,"endOffset":29273,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":30555,"endOffset":34488,"count":0}],"isBlockCoverage":false},{"functionName":"pop","ranges":[{"startOffset":34613,"endOffset":35370,"count":0}],"isBlockCoverage":false},{"functionName":"#evict","ranges":[{"startOffset":35375,"endOffset":36443,"count":0}],"isBlockCoverage":false},{"functionName":"has","ranges":[{"startOffset":37186,"endOffset":38123,"count":0}],"isBlockCoverage":false},{"functionName":"peek","ranges":[{"startOffset":38352,"endOffset":38797,"count":0}],"isBlockCoverage":false},{"functionName":"#backgroundFetch","ranges":[{"startOffset":38802,"endOffset":43948,"count":0}],"isBlockCoverage":false},{"functionName":"#isBackgroundFetch","ranges":[{"startOffset":43953,"endOffset":44227,"count":0}],"isBlockCoverage":false},{"functionName":"fetch","ranges":[{"startOffset":44232,"endOffset":47562,"count":0}],"isBlockCoverage":false},{"functionName":"forceFetch","ranges":[{"startOffset":47567,"endOffset":47772,"count":0}],"isBlockCoverage":false},{"functionName":"memo","ranges":[{"startOffset":47777,"endOffset":48282,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":48468,"endOffset":50615,"count":0}],"isBlockCoverage":false},{"functionName":"#connect","ranges":[{"startOffset":50620,"endOffset":50696,"count":0}],"isBlockCoverage":false},{"functionName":"#moveToTail","ranges":[{"startOffset":50701,"endOffset":51363,"count":0}],"isBlockCoverage":false},{"functionName":"delete","ranges":[{"startOffset":51491,"endOffset":51550,"count":0}],"isBlockCoverage":false},{"functionName":"#delete","ranges":[{"startOffset":51555,"endOffset":53574,"count":0}],"isBlockCoverage":false},{"functionName":"clear","ranges":[{"startOffset":53654,"endOffset":53707,"count":0}],"isBlockCoverage":false},{"functionName":"#clear","ranges":[{"startOffset":53712,"endOffset":54955,"count":0}],"isBlockCoverage":false}]},{"scriptId":"288","url":"node:perf_hooks","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1235,"count":1}],"isBlockCoverage":false}]},{"scriptId":"289","url":"node:internal/perf/resource_timing","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8319,"count":1}],"isBlockCoverage":false},{"functionName":"PerformanceResourceTiming","ranges":[{"startOffset":933,"endOffset":1147,"count":0}],"isBlockCoverage":false},{"functionName":"get name","ranges":[{"startOffset":1151,"endOffset":1280,"count":0}],"isBlockCoverage":false},{"functionName":"get startTime","ranges":[{"startOffset":1284,"endOffset":1424,"count":0}],"isBlockCoverage":false},{"functionName":"get duration","ranges":[{"startOffset":1428,"endOffset":1595,"count":0}],"isBlockCoverage":false},{"functionName":"get initiatorType","ranges":[{"startOffset":1599,"endOffset":1739,"count":0}],"isBlockCoverage":false},{"functionName":"get workerStart","ranges":[{"startOffset":1743,"endOffset":1903,"count":0}],"isBlockCoverage":false},{"functionName":"get redirectStart","ranges":[{"startOffset":1907,"endOffset":2059,"count":0}],"isBlockCoverage":false},{"functionName":"get redirectEnd","ranges":[{"startOffset":2063,"endOffset":2211,"count":0}],"isBlockCoverage":false},{"functionName":"get fetchStart","ranges":[{"startOffset":2215,"endOffset":2368,"count":0}],"isBlockCoverage":false},{"functionName":"get domainLookupStart","ranges":[{"startOffset":2372,"endOffset":2559,"count":0}],"isBlockCoverage":false},{"functionName":"get domainLookupEnd","ranges":[{"startOffset":2563,"endOffset":2746,"count":0}],"isBlockCoverage":false},{"functionName":"get connectStart","ranges":[{"startOffset":2750,"endOffset":2930,"count":0}],"isBlockCoverage":false},{"functionName":"get connectEnd","ranges":[{"startOffset":2934,"endOffset":3110,"count":0}],"isBlockCoverage":false},{"functionName":"get secureConnectionStart","ranges":[{"startOffset":3114,"endOffset":3316,"count":0}],"isBlockCoverage":false},{"functionName":"get nextHopProtocol","ranges":[{"startOffset":3320,"endOffset":3513,"count":0}],"isBlockCoverage":false},{"functionName":"get requestStart","ranges":[{"startOffset":3517,"endOffset":3679,"count":0}],"isBlockCoverage":false},{"functionName":"get responseStart","ranges":[{"startOffset":3683,"endOffset":3847,"count":0}],"isBlockCoverage":false},{"functionName":"get responseEnd","ranges":[{"startOffset":3851,"endOffset":3991,"count":0}],"isBlockCoverage":false},{"functionName":"get encodedBodySize","ranges":[{"startOffset":3995,"endOffset":4147,"count":0}],"isBlockCoverage":false},{"functionName":"get decodedBodySize","ranges":[{"startOffset":4151,"endOffset":4303,"count":0}],"isBlockCoverage":false},{"functionName":"get transferSize","ranges":[{"startOffset":4307,"endOffset":4565,"count":0}],"isBlockCoverage":false},{"functionName":"get deliveryType","ranges":[{"startOffset":4569,"endOffset":4704,"count":0}],"isBlockCoverage":false},{"functionName":"get responseStatus","ranges":[{"startOffset":4708,"endOffset":4847,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":4851,"endOffset":5878,"count":0}],"isBlockCoverage":false},{"functionName":"createPerformanceResourceTiming","ranges":[{"startOffset":6822,"endOffset":7576,"count":0}],"isBlockCoverage":false},{"functionName":"markResourceTiming","ranges":[{"startOffset":7645,"endOffset":8244,"count":0}],"isBlockCoverage":false}]},{"scriptId":"290","url":"node:internal/perf/usertiming","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6472,"count":1}],"isBlockCoverage":false},{"functionName":"getMark","ranges":[{"startOffset":1152,"endOffset":1604,"count":0}],"isBlockCoverage":false},{"functionName":"PerformanceMark","ranges":[{"startOffset":1657,"endOffset":2388,"count":0}],"isBlockCoverage":false},{"functionName":"get detail","ranges":[{"startOffset":2392,"endOffset":2501,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":2505,"endOffset":2688,"count":0}],"isBlockCoverage":false},{"functionName":"PerformanceMeasure","ranges":[{"startOffset":2939,"endOffset":3236,"count":0}],"isBlockCoverage":false},{"functionName":"get detail","ranges":[{"startOffset":3240,"endOffset":3352,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":3356,"endOffset":3539,"count":0}],"isBlockCoverage":false},{"functionName":"createPerformanceMeasure","ranges":[{"startOffset":3741,"endOffset":3946,"count":0}],"isBlockCoverage":false},{"functionName":"mark","ranges":[{"startOffset":3948,"endOffset":4089,"count":0}],"isBlockCoverage":false},{"functionName":"calculateStartDuration","ranges":[{"startOffset":4091,"endOffset":5674,"count":0}],"isBlockCoverage":false},{"functionName":"measure","ranges":[{"startOffset":5676,"endOffset":6111,"count":0}],"isBlockCoverage":false},{"functionName":"clearMarkTimings","ranges":[{"startOffset":6113,"endOffset":6368,"count":0}],"isBlockCoverage":false}]},{"scriptId":"291","url":"node:internal/perf/nodetiming","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3858,"count":1}],"isBlockCoverage":false},{"functionName":"PerformanceNodeTiming","ranges":[{"startOffset":746,"endOffset":3084,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":1411,"endOffset":1507,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1623,"endOffset":1717,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1837,"endOffset":1934,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2052,"endOffset":2148,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2265,"endOffset":2360,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2486,"endOffset":2603,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2864,"endOffset":3062,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3088,"endOffset":3329,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":3333,"endOffset":3719,"count":0}],"isBlockCoverage":false}]},{"scriptId":"292","url":"node:internal/perf/performance","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6443,"count":1}],"isBlockCoverage":false},{"functionName":"Performance","ranges":[{"startOffset":1295,"endOffset":1355,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1359,"endOffset":1654,"count":0}],"isBlockCoverage":false},{"functionName":"clearMarks","ranges":[{"startOffset":1658,"endOffset":1893,"count":0}],"isBlockCoverage":false},{"functionName":"clearMeasures","ranges":[{"startOffset":1897,"endOffset":2110,"count":0}],"isBlockCoverage":false},{"functionName":"clearResourceTimings","ranges":[{"startOffset":2114,"endOffset":2335,"count":0}],"isBlockCoverage":false},{"functionName":"getEntries","ranges":[{"startOffset":2339,"endOffset":2471,"count":0}],"isBlockCoverage":false},{"functionName":"getEntriesByName","ranges":[{"startOffset":2475,"endOffset":2809,"count":0}],"isBlockCoverage":false},{"functionName":"getEntriesByType","ranges":[{"startOffset":2813,"endOffset":3074,"count":0}],"isBlockCoverage":false},{"functionName":"mark","ranges":[{"startOffset":3078,"endOffset":3303,"count":0}],"isBlockCoverage":false},{"functionName":"measure","ranges":[{"startOffset":3307,"endOffset":3596,"count":0}],"isBlockCoverage":false},{"functionName":"now","ranges":[{"startOffset":3600,"endOffset":3700,"count":0}],"isBlockCoverage":false},{"functionName":"setResourceTimingBufferSize","ranges":[{"startOffset":3704,"endOffset":4024,"count":0}],"isBlockCoverage":false},{"functionName":"get timeOrigin","ranges":[{"startOffset":4028,"endOffset":4158,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":4162,"endOffset":4394,"count":0}],"isBlockCoverage":false},{"functionName":"createPerformance","ranges":[{"startOffset":5995,"endOffset":6164,"count":1}],"isBlockCoverage":true},{"functionName":"Performance","ranges":[{"startOffset":6052,"endOffset":6143,"count":1}],"isBlockCoverage":true},{"functionName":"dispatchBufferFull","ranges":[{"startOffset":6208,"endOffset":6346,"count":0}],"isBlockCoverage":false}]},{"scriptId":"293","url":"node:internal/perf/timerify","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2280,"count":1}],"isBlockCoverage":false},{"functionName":"processComplete","ranges":[{"startOffset":610,"endOffset":985,"count":0}],"isBlockCoverage":false},{"functionName":"timerify","ranges":[{"startOffset":987,"endOffset":2251,"count":0}],"isBlockCoverage":false}]},{"scriptId":"294","url":"node:internal/histogram","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8498,"count":1}],"isBlockCoverage":false},{"functionName":"isHistogram","ranges":[{"startOffset":911,"endOffset":985,"count":0}],"isBlockCoverage":false},{"functionName":"Histogram","ranges":[{"startOffset":1049,"endOffset":1186,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1190,"endOffset":1602,"count":0}],"isBlockCoverage":false},{"functionName":"get count","ranges":[{"startOffset":1653,"endOffset":1780,"count":0}],"isBlockCoverage":false},{"functionName":"get countBigInt","ranges":[{"startOffset":1831,"endOffset":1970,"count":0}],"isBlockCoverage":false},{"functionName":"get min","ranges":[{"startOffset":2021,"endOffset":2144,"count":0}],"isBlockCoverage":false},{"functionName":"get minBigInt","ranges":[{"startOffset":2195,"endOffset":2330,"count":0}],"isBlockCoverage":false},{"functionName":"get max","ranges":[{"startOffset":2381,"endOffset":2504,"count":0}],"isBlockCoverage":false},{"functionName":"get maxBigInt","ranges":[{"startOffset":2555,"endOffset":2690,"count":0}],"isBlockCoverage":false},{"functionName":"get mean","ranges":[{"startOffset":2741,"endOffset":2866,"count":0}],"isBlockCoverage":false},{"functionName":"get exceeds","ranges":[{"startOffset":2917,"endOffset":3048,"count":0}],"isBlockCoverage":false},{"functionName":"get exceedsBigInt","ranges":[{"startOffset":3099,"endOffset":3242,"count":0}],"isBlockCoverage":false},{"functionName":"get stddev","ranges":[{"startOffset":3293,"endOffset":3422,"count":0}],"isBlockCoverage":false},{"functionName":"percentile","ranges":[{"startOffset":3493,"endOffset":3842,"count":0}],"isBlockCoverage":false},{"functionName":"percentileBigInt","ranges":[{"startOffset":3913,"endOffset":4274,"count":0}],"isBlockCoverage":false},{"functionName":"get percentiles","ranges":[{"startOffset":4337,"endOffset":4537,"count":0}],"isBlockCoverage":false},{"functionName":"get percentilesBigInt","ranges":[{"startOffset":4600,"endOffset":4812,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":4849,"endOffset":4965,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4969,"endOffset":5124,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5128,"endOffset":5188,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":5192,"endOffset":5449,"count":0}],"isBlockCoverage":false},{"functionName":"RecordableHistogram","ranges":[{"startOffset":5501,"endOffset":5667,"count":0}],"isBlockCoverage":false},{"functionName":"record","ranges":[{"startOffset":5736,"endOffset":6010,"count":0}],"isBlockCoverage":false},{"functionName":"recordDelta","ranges":[{"startOffset":6047,"endOffset":6198,"count":0}],"isBlockCoverage":false},{"functionName":"add","ranges":[{"startOffset":6254,"endOffset":6527,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6531,"endOffset":6696,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6700,"endOffset":6760,"count":0}],"isBlockCoverage":false},{"functionName":"ClonedHistogram","ranges":[{"startOffset":6764,"endOffset":6970,"count":0}],"isBlockCoverage":false},{"functionName":"ClonedHistogram.<computed>","ranges":[{"startOffset":7014,"endOffset":7023,"count":0}],"isBlockCoverage":false},{"functionName":"ClonedRecordableHistogram","ranges":[{"startOffset":7026,"endOffset":7337,"count":0}],"isBlockCoverage":false},{"functionName":"ClonedRecordableHistogram.<computed>","ranges":[{"startOffset":7391,"endOffset":7400,"count":0}],"isBlockCoverage":false},{"functionName":"createRecordableHistogram","ranges":[{"startOffset":7403,"endOffset":7497,"count":0}],"isBlockCoverage":false},{"functionName":"createHistogram","ranges":[{"startOffset":7640,"endOffset":8325,"count":0}],"isBlockCoverage":false}]},{"scriptId":"295","url":"node:internal/perf/event_loop_delay","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1812,"count":1}],"isBlockCoverage":false},{"functionName":"ELDHistogram","ranges":[{"startOffset":642,"endOffset":702,"count":0}],"isBlockCoverage":false},{"functionName":"enable","ranges":[{"startOffset":742,"endOffset":953,"count":0}],"isBlockCoverage":false},{"functionName":"disable","ranges":[{"startOffset":993,"endOffset":1206,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1210,"endOffset":1253,"count":0}],"isBlockCoverage":false},{"functionName":"monitorEventLoopDelay","ranges":[{"startOffset":1346,"endOffset":1770,"count":0}],"isBlockCoverage":false}]},{"scriptId":"296","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/minipass/dist/commonjs/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":34050,"count":1},{"startOffset":374,"endOffset":427,"count":0}],"isBlockCoverage":true},{"functionName":"__importDefault","ranges":[{"startOffset":70,"endOffset":151,"count":1},{"startOffset":122,"endOffset":127,"count":0}],"isBlockCoverage":true},{"functionName":"isStream","ranges":[{"startOffset":745,"endOffset":937,"count":0}],"isBlockCoverage":false},{"functionName":"isReadable","ranges":[{"startOffset":1140,"endOffset":1396,"count":0}],"isBlockCoverage":false},{"functionName":"isWritable","ranges":[{"startOffset":1603,"endOffset":1761,"count":0}],"isBlockCoverage":false},{"functionName":"defer","ranges":[{"startOffset":3038,"endOffset":3072,"count":0}],"isBlockCoverage":false},{"functionName":"nodefer","ranges":[{"startOffset":3090,"endOffset":3102,"count":0}],"isBlockCoverage":false},{"functionName":"isEndish","ranges":[{"startOffset":3121,"endOffset":3182,"count":0}],"isBlockCoverage":false},{"functionName":"isArrayBufferLike","ranges":[{"startOffset":3210,"endOffset":3389,"count":0}],"isBlockCoverage":false},{"functionName":"isArrayBufferView","ranges":[{"startOffset":3417,"endOffset":3468,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":3574,"endOffset":3610,"count":0}],"isBlockCoverage":true},{"functionName":"Pipe","ranges":[{"startOffset":3616,"endOffset":3817,"count":0}],"isBlockCoverage":false},{"functionName":"unpipe","ranges":[{"startOffset":3822,"endOffset":3895,"count":0}],"isBlockCoverage":false},{"functionName":"proxyErrors","ranges":[{"startOffset":3961,"endOffset":3981,"count":0}],"isBlockCoverage":false},{"functionName":"end","ranges":[{"startOffset":4011,"endOffset":4103,"count":0}],"isBlockCoverage":false},{"functionName":"unpipe","ranges":[{"startOffset":4262,"endOffset":4362,"count":0}],"isBlockCoverage":false},{"functionName":"PipeProxyErrors","ranges":[{"startOffset":4367,"endOffset":4542,"count":0}],"isBlockCoverage":false},{"functionName":"isObjectModeOptions","ranges":[{"startOffset":4573,"endOffset":4594,"count":0}],"isBlockCoverage":false},{"functionName":"isEncodingOptions","ranges":[{"startOffset":4622,"endOffset":4685,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":5096,"endOffset":5647,"count":0}],"isBlockCoverage":true},{"functionName":"Minipass","ranges":[{"startOffset":5926,"endOffset":7440,"count":0}],"isBlockCoverage":false},{"functionName":"get bufferLength","ranges":[{"startOffset":7822,"endOffset":7883,"count":0}],"isBlockCoverage":false},{"functionName":"get encoding","ranges":[{"startOffset":7960,"endOffset":8013,"count":0}],"isBlockCoverage":false},{"functionName":"set encoding","ranges":[{"startOffset":8084,"endOffset":8181,"count":0}],"isBlockCoverage":false},{"functionName":"setEncoding","ranges":[{"startOffset":8270,"endOffset":8366,"count":0}],"isBlockCoverage":false},{"functionName":"get objectMode","ranges":[{"startOffset":8431,"endOffset":8488,"count":0}],"isBlockCoverage":false},{"functionName":"set objectMode","ranges":[{"startOffset":8559,"endOffset":8659,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8719,"endOffset":8770,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9033,"endOffset":9099,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9162,"endOffset":9303,"count":0}],"isBlockCoverage":false},{"functionName":"get aborted","ranges":[{"startOffset":9368,"endOffset":9419,"count":0}],"isBlockCoverage":false},{"functionName":"set aborted","ranges":[{"startOffset":9554,"endOffset":9572,"count":0}],"isBlockCoverage":false},{"functionName":"write","ranges":[{"startOffset":9577,"endOffset":12967,"count":0}],"isBlockCoverage":false},{"functionName":"read","ranges":[{"startOffset":13462,"endOffset":14290,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":14295,"endOffset":15006,"count":0}],"isBlockCoverage":false},{"functionName":"end","ranges":[{"startOffset":15011,"endOffset":15782,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15839,"endOffset":16269,"count":0}],"isBlockCoverage":false},{"functionName":"resume","ranges":[{"startOffset":16715,"endOffset":16762,"count":0}],"isBlockCoverage":false},{"functionName":"pause","ranges":[{"startOffset":16807,"endOffset":16915,"count":0}],"isBlockCoverage":false},{"functionName":"get destroyed","ranges":[{"startOffset":16990,"endOffset":17045,"count":0}],"isBlockCoverage":false},{"functionName":"get flowing","ranges":[{"startOffset":17185,"endOffset":17236,"count":0}],"isBlockCoverage":false},{"functionName":"get paused","ranges":[{"startOffset":17314,"endOffset":17363,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":17368,"endOffset":17557,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":17562,"endOffset":17760,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":17765,"endOffset":17986,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":17991,"endOffset":18082,"count":0}],"isBlockCoverage":false},{"functionName":"pipe","ranges":[{"startOffset":18219,"endOffset":19200,"count":0}],"isBlockCoverage":false},{"functionName":"unpipe","ranges":[{"startOffset":19552,"endOffset":19980,"count":0}],"isBlockCoverage":false},{"functionName":"addListener","ranges":[{"startOffset":20038,"endOffset":20107,"count":0}],"isBlockCoverage":false},{"functionName":"on","ranges":[{"startOffset":20858,"endOffset":21663,"count":0}],"isBlockCoverage":false},{"functionName":"removeListener","ranges":[{"startOffset":21722,"endOffset":21795,"count":0}],"isBlockCoverage":false},{"functionName":"off","ranges":[{"startOffset":22147,"endOffset":22726,"count":0}],"isBlockCoverage":false},{"functionName":"removeAllListeners","ranges":[{"startOffset":23068,"endOffset":23376,"count":0}],"isBlockCoverage":false},{"functionName":"get emittedEnd","ranges":[{"startOffset":23445,"endOffset":23503,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":23508,"endOffset":23955,"count":0}],"isBlockCoverage":false},{"functionName":"emit","ranges":[{"startOffset":25140,"endOffset":26878,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":26883,"endOffset":27156,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":27161,"endOffset":27413,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":27418,"endOffset":27919,"count":0}],"isBlockCoverage":false},{"functionName":"collect","ranges":[{"startOffset":28039,"endOffset":28523,"count":0}],"isBlockCoverage":false},{"functionName":"concat","ranges":[{"startOffset":28701,"endOffset":28976,"count":0}],"isBlockCoverage":false},{"functionName":"promise","ranges":[{"startOffset":29062,"endOffset":29317,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":29466,"endOffset":31519,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":31707,"endOffset":32666,"count":0}],"isBlockCoverage":false},{"functionName":"destroy","ranges":[{"startOffset":33080,"endOffset":33764,"count":0}],"isBlockCoverage":false},{"functionName":"get isStream","ranges":[{"startOffset":33930,"endOffset":33985,"count":0}],"isBlockCoverage":false}]},{"scriptId":"297","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/pattern.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7300,"count":1}],"isBlockCoverage":true},{"functionName":"isPatternList","ranges":[{"startOffset":241,"endOffset":263,"count":0}],"isBlockCoverage":false},{"functionName":"isGlobList","ranges":[{"startOffset":284,"endOffset":306,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":415,"endOffset":580,"count":0}],"isBlockCoverage":true},{"functionName":"Pattern","ranges":[{"startOffset":586,"endOffset":2959,"count":0}],"isBlockCoverage":false},{"functionName":"pattern","ranges":[{"startOffset":3034,"endOffset":3098,"count":0}],"isBlockCoverage":false},{"functionName":"isString","ranges":[{"startOffset":3164,"endOffset":3249,"count":0}],"isBlockCoverage":false},{"functionName":"isGlobstar","ranges":[{"startOffset":3315,"endOffset":3407,"count":0}],"isBlockCoverage":false},{"functionName":"isRegExp","ranges":[{"startOffset":3470,"endOffset":3553,"count":0}],"isBlockCoverage":false},{"functionName":"globString","ranges":[{"startOffset":3638,"endOffset":4000,"count":0}],"isBlockCoverage":false},{"functionName":"hasMore","ranges":[{"startOffset":4080,"endOffset":4143,"count":0}],"isBlockCoverage":false},{"functionName":"rest","ranges":[{"startOffset":4239,"endOffset":4657,"count":0}],"isBlockCoverage":false},{"functionName":"isUNC","ranges":[{"startOffset":4741,"endOffset":5208,"count":0}],"isBlockCoverage":false},{"functionName":"isDrive","ranges":[{"startOffset":5545,"endOffset":5923,"count":0}],"isBlockCoverage":false},{"functionName":"isAbsolute","ranges":[{"startOffset":6156,"endOffset":6449,"count":0}],"isBlockCoverage":false},{"functionName":"root","ranges":[{"startOffset":6524,"endOffset":6693,"count":0}],"isBlockCoverage":false},{"functionName":"checkFollowGlobstar","ranges":[{"startOffset":6811,"endOffset":6948,"count":0}],"isBlockCoverage":false},{"functionName":"markFollowGlobstar","ranges":[{"startOffset":7044,"endOffset":7235,"count":0}],"isBlockCoverage":false}]},{"scriptId":"298","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/walker.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12869,"count":1}],"isBlockCoverage":true},{"functionName":"makeIgnore","ranges":[{"startOffset":408,"endOffset":577,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":670,"endOffset":855,"count":0}],"isBlockCoverage":true},{"functionName":"GlobUtil","ranges":[{"startOffset":861,"endOffset":1903,"count":0}],"isBlockCoverage":false},{"functionName":"#ignored","ranges":[{"startOffset":1908,"endOffset":2001,"count":0}],"isBlockCoverage":false},{"functionName":"#childrenIgnored","ranges":[{"startOffset":2006,"endOffset":2092,"count":0}],"isBlockCoverage":false},{"functionName":"pause","ranges":[{"startOffset":2127,"endOffset":2170,"count":0}],"isBlockCoverage":false},{"functionName":"resume","ranges":[{"startOffset":2175,"endOffset":2453,"count":0}],"isBlockCoverage":false},{"functionName":"onResume","ranges":[{"startOffset":2458,"endOffset":2713,"count":0}],"isBlockCoverage":false},{"functionName":"matchCheck","ranges":[{"startOffset":2831,"endOffset":3605,"count":0}],"isBlockCoverage":false},{"functionName":"matchCheckTest","ranges":[{"startOffset":3610,"endOffset":4069,"count":0}],"isBlockCoverage":false},{"functionName":"matchCheckSync","ranges":[{"startOffset":4074,"endOffset":4770,"count":0}],"isBlockCoverage":false},{"functionName":"matchFinish","ranges":[{"startOffset":4775,"endOffset":5843,"count":0}],"isBlockCoverage":false},{"functionName":"match","ranges":[{"startOffset":5848,"endOffset":5996,"count":0}],"isBlockCoverage":false},{"functionName":"matchSync","ranges":[{"startOffset":6001,"endOffset":6145,"count":0}],"isBlockCoverage":false},{"functionName":"walkCB","ranges":[{"startOffset":6150,"endOffset":6382,"count":0}],"isBlockCoverage":false},{"functionName":"walkCB2","ranges":[{"startOffset":6387,"endOffset":7801,"count":0}],"isBlockCoverage":false},{"functionName":"walkCB3","ranges":[{"startOffset":7806,"endOffset":8448,"count":0}],"isBlockCoverage":false},{"functionName":"walkCBSync","ranges":[{"startOffset":8453,"endOffset":8693,"count":0}],"isBlockCoverage":false},{"functionName":"walkCB2Sync","ranges":[{"startOffset":8698,"endOffset":9908,"count":0}],"isBlockCoverage":false},{"functionName":"walkCB3Sync","ranges":[{"startOffset":9913,"endOffset":10527,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":10599,"endOffset":10618,"count":0}],"isBlockCoverage":true},{"functionName":"GlobWalker","ranges":[{"startOffset":10624,"endOffset":10702,"count":0}],"isBlockCoverage":false},{"functionName":"matchEmit","ranges":[{"startOffset":10707,"endOffset":10756,"count":0}],"isBlockCoverage":false},{"functionName":"walk","ranges":[{"startOffset":10761,"endOffset":11281,"count":0}],"isBlockCoverage":false},{"functionName":"walkSync","ranges":[{"startOffset":11286,"endOffset":11706,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":11782,"endOffset":11789,"count":0}],"isBlockCoverage":true},{"functionName":"GlobStream","ranges":[{"startOffset":11795,"endOffset":12108,"count":0}],"isBlockCoverage":false},{"functionName":"matchEmit","ranges":[{"startOffset":12113,"endOffset":12225,"count":0}],"isBlockCoverage":false},{"functionName":"stream","ranges":[{"startOffset":12230,"endOffset":12586,"count":0}],"isBlockCoverage":false},{"functionName":"streamSync","ranges":[{"startOffset":12591,"endOffset":12799,"count":0}],"isBlockCoverage":false}]},{"scriptId":"299","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/ignore.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4267,"count":1},{"startOffset":533,"endOffset":542,"count":0}],"isBlockCoverage":true},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":613,"endOffset":705,"count":0}],"isBlockCoverage":true},{"functionName":"Ignore","ranges":[{"startOffset":711,"endOffset":1287,"count":0}],"isBlockCoverage":false},{"functionName":"add","ranges":[{"startOffset":1292,"endOffset":3319,"count":0}],"isBlockCoverage":false},{"functionName":"ignored","ranges":[{"startOffset":3324,"endOffset":3807,"count":0}],"isBlockCoverage":false},{"functionName":"childrenIgnored","ranges":[{"startOffset":3812,"endOffset":4205,"count":0}],"isBlockCoverage":false}]},{"scriptId":"300","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/processor.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":10760,"count":1}],"isBlockCoverage":true},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":384,"endOffset":389,"count":0}],"isBlockCoverage":true},{"functionName":"HasWalkedCache","ranges":[{"startOffset":395,"endOffset":461,"count":0}],"isBlockCoverage":false},{"functionName":"copy","ranges":[{"startOffset":466,"endOffset":536,"count":0}],"isBlockCoverage":false},{"functionName":"hasWalked","ranges":[{"startOffset":541,"endOffset":652,"count":0}],"isBlockCoverage":false},{"functionName":"storeWalked","ranges":[{"startOffset":657,"endOffset":936,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":1219,"endOffset":1236,"count":0}],"isBlockCoverage":true},{"functionName":"add","ranges":[{"startOffset":1242,"endOffset":1455,"count":0}],"isBlockCoverage":false},{"functionName":"entries","ranges":[{"startOffset":1490,"endOffset":1645,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":1805,"endOffset":1822,"count":0}],"isBlockCoverage":true},{"functionName":"add","ranges":[{"startOffset":1828,"endOffset":2183,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2188,"endOffset":2427,"count":0}],"isBlockCoverage":false},{"functionName":"entries","ranges":[{"startOffset":2432,"endOffset":2510,"count":0}],"isBlockCoverage":false},{"functionName":"keys","ranges":[{"startOffset":2515,"endOffset":2596,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":2819,"endOffset":2942,"count":0}],"isBlockCoverage":true},{"functionName":"Processor","ranges":[{"startOffset":2948,"endOffset":3188,"count":0}],"isBlockCoverage":false},{"functionName":"processPatterns","ranges":[{"startOffset":3193,"endOffset":7119,"count":0}],"isBlockCoverage":false},{"functionName":"subwalkTargets","ranges":[{"startOffset":7124,"endOffset":7185,"count":0}],"isBlockCoverage":false},{"functionName":"child","ranges":[{"startOffset":7190,"endOffset":7267,"count":0}],"isBlockCoverage":false},{"functionName":"filterEntries","ranges":[{"startOffset":7463,"endOffset":8300,"count":0}],"isBlockCoverage":false},{"functionName":"testGlobstar","ranges":[{"startOffset":8305,"endOffset":10179,"count":0}],"isBlockCoverage":false},{"functionName":"testRegExp","ranges":[{"startOffset":10184,"endOffset":10419,"count":0}],"isBlockCoverage":false},{"functionName":"testString","ranges":[{"startOffset":10424,"endOffset":10689,"count":0}],"isBlockCoverage":false}]},{"scriptId":"301","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/has-magic.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1058,"count":1}],"isBlockCoverage":true},{"functionName":"hasMagic","ranges":[{"startOffset":748,"endOffset":990,"count":0}],"isBlockCoverage":false}]},{"scriptId":"302","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/is-path-inside/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":290,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":62,"endOffset":288,"count":0}],"isBlockCoverage":false}]},{"scriptId":"303","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/collect-files.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3161,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":944,"endOffset":3159,"count":1},{"startOffset":2318,"endOffset":2345,"count":0},{"startOffset":2561,"endOffset":2950,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1094,"endOffset":1681,"count":11},{"startOffset":1478,"endOffset":1677,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1220,"endOffset":1364,"count":11}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1268,"endOffset":1352,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1388,"endOffset":1422,"count":11}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1791,"endOffset":2231,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2437,"endOffset":2471,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3024,"endOffset":3104,"count":0}],"isBlockCoverage":false}]},{"scriptId":"304","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/lookup-files.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4557,"count":1}],"isBlockCoverage":true},{"functionName":"isHiddenOnUnix","ranges":[{"startOffset":1067,"endOffset":1118,"count":0}],"isBlockCoverage":false},{"functionName":"hasMatchingExtname","ranges":[{"startOffset":1628,"endOffset":1757,"count":0}],"isBlockCoverage":false},{"functionName":"lookupFiles","ranges":[{"startOffset":2419,"endOffset":4555,"count":11},{"startOffset":2561,"endOffset":3594,"count":0},{"startOffset":3713,"endOffset":4554,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2830,"endOffset":2876,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3365,"endOffset":3399,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3821,"endOffset":4534,"count":0}],"isBlockCoverage":false}]},{"scriptId":"305","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/plugin-loader.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8327,"count":1}],"isBlockCoverage":true},{"functionName":"validate","ranges":[{"startOffset":777,"endOffset":1089,"count":0}],"isBlockCoverage":false},{"functionName":"finalize","ranges":[{"startOffset":1095,"endOffset":2004,"count":0}],"isBlockCoverage":false},{"functionName":"validate","ranges":[{"startOffset":2171,"endOffset":2650,"count":0}],"isBlockCoverage":false},{"functionName":"validate","ranges":[{"startOffset":2826,"endOffset":3308,"count":0}],"isBlockCoverage":false},{"functionName":"PluginLoader","ranges":[{"startOffset":3799,"endOffset":4789,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4601,"endOffset":4653,"count":3}],"isBlockCoverage":true},{"functionName":"register","ranges":[{"startOffset":4889,"endOffset":6034,"count":3},{"startOffset":4964,"endOffset":5090,"count":0},{"startOffset":5122,"endOffset":5263,"count":0},{"startOffset":5347,"endOffset":5478,"count":0},{"startOffset":5571,"endOffset":5584,"count":0},{"startOffset":5634,"endOffset":5796,"count":0}],"isBlockCoverage":true},{"functionName":"load","ranges":[{"startOffset":6285,"endOffset":7122,"count":0}],"isBlockCoverage":false},{"functionName":"finalize","ranges":[{"startOffset":7551,"endOffset":8055,"count":1},{"startOffset":7694,"endOffset":7967,"count":3},{"startOffset":7726,"endOffset":7961,"count":0}],"isBlockCoverage":true},{"functionName":"create","ranges":[{"startOffset":8182,"endOffset":8292,"count":1}],"isBlockCoverage":true}]},{"scriptId":"306","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/config.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2634,"count":1}],"isBlockCoverage":true},{"functionName":"yaml","ranges":[{"startOffset":890,"endOffset":960,"count":0}],"isBlockCoverage":false},{"functionName":"js","ranges":[{"startOffset":968,"endOffset":1375,"count":0}],"isBlockCoverage":false},{"functionName":"json","ranges":[{"startOffset":1385,"endOffset":1490,"count":0}],"isBlockCoverage":false},{"functionName":"exports.loadConfig","ranges":[{"startOffset":1733,"endOffset":2254,"count":0}],"isBlockCoverage":false},{"functionName":"exports.findConfig","ranges":[{"startOffset":2447,"endOffset":2632,"count":1},{"startOffset":2549,"endOffset":2611,"count":0}],"isBlockCoverage":true}]},{"scriptId":"307","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/find-up/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1940,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":185,"endOffset":1023,"count":0}],"isBlockCoverage":false},{"functionName":"module.exports.sync","ranges":[{"startOffset":1048,"endOffset":1825,"count":2},{"startOffset":1116,"endOffset":1121,"count":1},{"startOffset":1559,"endOffset":1823,"count":6},{"startOffset":1650,"endOffset":1666,"count":0},{"startOffset":1685,"endOffset":1736,"count":1},{"startOffset":1736,"endOffset":1764,"count":5},{"startOffset":1764,"endOffset":1780,"count":1},{"startOffset":1780,"endOffset":1823,"count":4}],"isBlockCoverage":true},{"functionName":"runMatcher","ranges":[{"startOffset":1216,"endOffset":1491,"count":6},{"startOffset":1323,"endOffset":1490,"count":0}],"isBlockCoverage":true}]},{"scriptId":"308","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/locate-path/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1329,"count":1}],"isBlockCoverage":true},{"functionName":"checkType","ranges":[{"startOffset":288,"endOffset":414,"count":6},{"startOffset":358,"endOffset":413,"count":0}],"isBlockCoverage":true},{"functionName":"matchType","ranges":[{"startOffset":434,"endOffset":498,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":518,"endOffset":920,"count":0}],"isBlockCoverage":false},{"functionName":"module.exports.sync","ranges":[{"startOffset":945,"endOffset":1327,"count":6},{"startOffset":1133,"endOffset":1147,"count":0},{"startOffset":1178,"endOffset":1325,"count":31},{"startOffset":1285,"endOffset":1309,"count":1},{"startOffset":1314,"endOffset":1322,"count":30},{"startOffset":1325,"endOffset":1326,"count":5}],"isBlockCoverage":true}]},{"scriptId":"309","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/p-locate/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1157,"count":1}],"isBlockCoverage":true},{"functionName":"EndError","ranges":[{"startOffset":82,"endOffset":138,"count":0}],"isBlockCoverage":false},{"functionName":"testElement","ranges":[{"startOffset":213,"endOffset":261,"count":0}],"isBlockCoverage":false},{"functionName":"finder","ranges":[{"startOffset":347,"endOffset":490,"count":0}],"isBlockCoverage":false},{"functionName":"pLocate","ranges":[{"startOffset":509,"endOffset":1128,"count":0}],"isBlockCoverage":false}]},{"scriptId":"310","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/p-limit/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1543,"count":1}],"isBlockCoverage":true},{"functionName":"pLimit","ranges":[{"startOffset":61,"endOffset":1515,"count":0}],"isBlockCoverage":false}]},{"scriptId":"311","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/p-try/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":211,"count":1}],"isBlockCoverage":true},{"functionName":"pTry","ranges":[{"startOffset":28,"endOffset":107,"count":0}],"isBlockCoverage":false}]},{"scriptId":"312","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/path-exists/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":347,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":134,"endOffset":230,"count":0}],"isBlockCoverage":false},{"functionName":"module.exports.sync","ranges":[{"startOffset":255,"endOffset":345,"count":0}],"isBlockCoverage":false}]},{"scriptId":"313","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/node-flags.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2844,"count":1}],"isBlockCoverage":true},{"functionName":"exports.isNodeFlag","ranges":[{"startOffset":1079,"endOffset":1831,"count":33},{"startOffset":1125,"endOffset":1360,"count":23},{"startOffset":1252,"endOffset":1360,"count":0},{"startOffset":1360,"endOffset":1595,"count":10},{"startOffset":1595,"endOffset":1607,"count":1},{"startOffset":1608,"endOffset":1630,"count":1},{"startOffset":1632,"endOffset":1659,"count":10},{"startOffset":1660,"endOffset":1824,"count":10}],"isBlockCoverage":true},{"functionName":"exports.impliesNoTimeouts","ranges":[{"startOffset":2107,"endOffset":2135,"count":0}],"isBlockCoverage":false},{"functionName":"exports.unparseNodeFlags","ranges":[{"startOffset":2636,"endOffset":2842,"count":0}],"isBlockCoverage":false}]},{"scriptId":"314","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/yargs-unparser/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5238,"count":1}],"isBlockCoverage":true},{"functionName":"isAlias","ranges":[{"startOffset":175,"endOffset":354,"count":0}],"isBlockCoverage":false},{"functionName":"hasDefaultValue","ranges":[{"startOffset":356,"endOffset":442,"count":0}],"isBlockCoverage":false},{"functionName":"isCamelCased","ranges":[{"startOffset":444,"endOffset":639,"count":0}],"isBlockCoverage":false},{"functionName":"keyToFlag","ranges":[{"startOffset":641,"endOffset":722,"count":0}],"isBlockCoverage":false},{"functionName":"parseCommand","ranges":[{"startOffset":724,"endOffset":1760,"count":0}],"isBlockCoverage":false},{"functionName":"unparseOption","ranges":[{"startOffset":1762,"endOffset":2598,"count":0}],"isBlockCoverage":false},{"functionName":"unparsePositional","ranges":[{"startOffset":2600,"endOffset":3641,"count":0}],"isBlockCoverage":false},{"functionName":"unparseOptions","ranges":[{"startOffset":3643,"endOffset":4320,"count":0}],"isBlockCoverage":false},{"functionName":"unparseEndOfOptions","ranges":[{"startOffset":4322,"endOffset":4477,"count":0}],"isBlockCoverage":false},{"functionName":"unparser","ranges":[{"startOffset":4544,"endOffset":5209,"count":0}],"isBlockCoverage":false}]},{"scriptId":"315","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/flat/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3970,"count":1}],"isBlockCoverage":true},{"functionName":"isBuffer","ranges":[{"startOffset":82,"endOffset":238,"count":0}],"isBlockCoverage":false},{"functionName":"keyIdentity","ranges":[{"startOffset":240,"endOffset":283,"count":0}],"isBlockCoverage":false},{"functionName":"flatten","ranges":[{"startOffset":285,"endOffset":1284,"count":0}],"isBlockCoverage":false},{"functionName":"unflatten","ranges":[{"startOffset":1286,"endOffset":3969,"count":0}],"isBlockCoverage":false}]},{"scriptId":"316","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/camelcase/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3272,"count":1}],"isBlockCoverage":true},{"functionName":"preserveCamelCase","ranges":[{"startOffset":464,"endOffset":1410,"count":0}],"isBlockCoverage":false},{"functionName":"preserveConsecutiveUppercase","ranges":[{"startOffset":1450,"endOffset":1573,"count":0}],"isBlockCoverage":false},{"functionName":"postProcess","ranges":[{"startOffset":1596,"endOffset":1855,"count":0}],"isBlockCoverage":false},{"functionName":"camelCase","ranges":[{"startOffset":1876,"endOffset":3157,"count":0}],"isBlockCoverage":false}]},{"scriptId":"317","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/decamelize/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":446,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":32,"endOffset":444,"count":0}],"isBlockCoverage":false}]},{"scriptId":"318","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/is-plain-obj/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":245,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":32,"endOffset":243,"count":0}],"isBlockCoverage":false}]},{"scriptId":"319","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/cli.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2998,"count":1},{"startOffset":2976,"endOffset":2997,"count":0}],"isBlockCoverage":true},{"functionName":"exports.main","ranges":[{"startOffset":1355,"endOffset":2791,"count":1},{"startOffset":1708,"endOffset":1791,"count":0},{"startOffset":1816,"endOffset":1836,"count":0},{"startOffset":2493,"endOffset":2531,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2078,"endOffset":2293,"count":0}],"isBlockCoverage":false}]},{"scriptId":"320","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/yargs/index.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1455,"count":1}],"isBlockCoverage":true},{"functionName":"Argv","ranges":[{"startOffset":272,"endOffset":462,"count":2}],"isBlockCoverage":true},{"functionName":"defineGetter","ranges":[{"startOffset":464,"endOffset":612,"count":14}],"isBlockCoverage":true},{"functionName":"lookupGetter","ranges":[{"startOffset":613,"endOffset":768,"count":2}],"isBlockCoverage":true},{"functionName":"singletonify","ranges":[{"startOffset":1010,"endOffset":1454,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1145,"endOffset":1450,"count":178},{"startOffset":1178,"endOffset":1241,"count":2},{"startOffset":1241,"endOffset":1446,"count":176},{"startOffset":1284,"endOffset":1331,"count":170},{"startOffset":1331,"endOffset":1446,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1370,"endOffset":1383,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1421,"endOffset":1438,"count":0}],"isBlockCoverage":false}]},{"scriptId":"321","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/yargs/build/index.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":62178,"count":1},{"startOffset":60890,"endOffset":60897,"count":0},{"startOffset":60924,"endOffset":60931,"count":0},{"startOffset":60960,"endOffset":60974,"count":0},{"startOffset":61221,"endOffset":61244,"count":0},{"startOffset":61482,"endOffset":61489,"count":0},{"startOffset":61515,"endOffset":61522,"count":0},{"startOffset":61549,"endOffset":61592,"count":0},{"startOffset":61676,"endOffset":61831,"count":0}],"isBlockCoverage":true},{"functionName":"e","ranges":[{"startOffset":59,"endOffset":174,"count":0}],"isBlockCoverage":false},{"functionName":"n","ranges":[{"startOffset":186,"endOffset":734,"count":1},{"startOffset":272,"endOffset":691,"count":0},{"startOffset":704,"endOffset":711,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":371,"endOffset":412,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":483,"endOffset":571,"count":0}],"isBlockCoverage":true},{"functionName":"r","ranges":[{"startOffset":734,"endOffset":926,"count":0}],"isBlockCoverage":false},{"functionName":"o","ranges":[{"startOffset":926,"endOffset":1377,"count":265},{"startOffset":1037,"endOffset":1082,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1154,"endOffset":1372,"count":546},{"startOffset":1211,"endOffset":1235,"count":2},{"startOffset":1249,"endOffset":1310,"count":250},{"startOffset":1310,"endOffset":1371,"count":296}],"isBlockCoverage":true},{"functionName":"h","ranges":[{"startOffset":1437,"endOffset":2173,"count":263},{"startOffset":1498,"endOffset":1530,"count":2},{"startOffset":1530,"endOffset":1550,"count":261},{"startOffset":1583,"endOffset":1607,"count":309},{"startOffset":1609,"endOffset":1617,"count":52},{"startOffset":1626,"endOffset":1636,"count":4},{"startOffset":1660,"endOffset":1762,"count":0},{"startOffset":1813,"endOffset":1894,"count":0},{"startOffset":2141,"endOffset":2172,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1914,"endOffset":2003,"count":295},{"startOffset":1983,"endOffset":1997,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1957,"endOffset":1974,"count":647},{"startOffset":1965,"endOffset":1974,"count":352}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2026,"endOffset":2138,"count":248},{"startOffset":2046,"endOffset":2053,"count":74},{"startOffset":2053,"endOffset":2118,"count":174},{"startOffset":2118,"endOffset":2132,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2092,"endOffset":2109,"count":219},{"startOffset":2100,"endOffset":2109,"count":54}],"isBlockCoverage":true},{"functionName":"l","ranges":[{"startOffset":2173,"endOffset":2244,"count":469},{"startOffset":2210,"endOffset":2218,"count":32},{"startOffset":2218,"endOffset":2243,"count":437},{"startOffset":2227,"endOffset":2234,"count":0}],"isBlockCoverage":true},{"functionName":"c","ranges":[{"startOffset":2244,"endOffset":2360,"count":0}],"isBlockCoverage":false},{"functionName":"f","ranges":[{"startOffset":2360,"endOffset":2421,"count":30},{"startOffset":2393,"endOffset":2420,"count":6}],"isBlockCoverage":true},{"functionName":"d","ranges":[{"startOffset":2421,"endOffset":2472,"count":6}],"isBlockCoverage":true},{"functionName":"u","ranges":[{"startOffset":2472,"endOffset":2528,"count":0}],"isBlockCoverage":false},{"functionName":"p","ranges":[{"startOffset":2528,"endOffset":2564,"count":38}],"isBlockCoverage":true},{"functionName":"g","ranges":[{"startOffset":2564,"endOffset":2656,"count":34}],"isBlockCoverage":true},{"functionName":"e","ranges":[{"startOffset":2583,"endOffset":2589,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2624,"endOffset":2651,"count":9},{"startOffset":2637,"endOffset":2650,"count":8}],"isBlockCoverage":true},{"functionName":"m","ranges":[{"startOffset":2656,"endOffset":2727,"count":3},{"startOffset":2701,"endOffset":2724,"count":0}],"isBlockCoverage":true},{"functionName":"y","ranges":[{"startOffset":2727,"endOffset":2765,"count":2}],"isBlockCoverage":true},{"functionName":"hideBin","ranges":[{"startOffset":2809,"endOffset":2843,"count":1}],"isBlockCoverage":true},{"functionName":"v","ranges":[{"startOffset":2866,"endOffset":3163,"count":1076},{"startOffset":2896,"endOffset":2900,"count":0},{"startOffset":2901,"endOffset":2970,"count":0},{"startOffset":2993,"endOffset":3003,"count":0},{"startOffset":3014,"endOffset":3110,"count":0},{"startOffset":3123,"endOffset":3125,"count":0},{"startOffset":3133,"endOffset":3143,"count":0},{"startOffset":3145,"endOffset":3153,"count":0}],"isBlockCoverage":true},{"functionName":"O","ranges":[{"startOffset":3163,"endOffset":3524,"count":78},{"startOffset":3196,"endOffset":3250,"count":0},{"startOffset":3260,"endOffset":3264,"count":0},{"startOffset":3265,"endOffset":3334,"count":0},{"startOffset":3357,"endOffset":3367,"count":0},{"startOffset":3378,"endOffset":3473,"count":0},{"startOffset":3486,"endOffset":3498,"count":0},{"startOffset":3500,"endOffset":3510,"count":0}],"isBlockCoverage":true},{"functionName":"w","ranges":[{"startOffset":3532,"endOffset":3601,"count":2}],"isBlockCoverage":true},{"functionName":"addMiddleware","ranges":[{"startOffset":3601,"endOffset":4067,"count":8},{"startOffset":3727,"endOffset":3930,"count":0}],"isBlockCoverage":true},{"functionName":"addCoerceMiddleware","ranges":[{"startOffset":4067,"endOffset":4295,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4183,"endOffset":4250,"count":15}],"isBlockCoverage":true},{"functionName":"getMiddleware","ranges":[{"startOffset":4295,"endOffset":4340,"count":1}],"isBlockCoverage":true},{"functionName":"freeze","ranges":[{"startOffset":4340,"endOffset":4395,"count":1}],"isBlockCoverage":true},{"functionName":"unfreeze","ranges":[{"startOffset":4395,"endOffset":4471,"count":1}],"isBlockCoverage":true},{"functionName":"reset","ranges":[{"startOffset":4471,"endOffset":4545,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4531,"endOffset":4542,"count":0}],"isBlockCoverage":true},{"functionName":"C","ranges":[{"startOffset":4546,"endOffset":4853,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4583,"endOffset":4848,"count":16},{"startOffset":4622,"endOffset":4644,"count":8},{"startOffset":4644,"endOffset":4680,"count":6},{"startOffset":4658,"endOffset":4667,"count":0},{"startOffset":4680,"endOffset":4688,"count":8},{"startOffset":4688,"endOffset":4768,"count":0},{"startOffset":4768,"endOffset":4795,"count":8},{"startOffset":4795,"endOffset":4827,"count":1},{"startOffset":4827,"endOffset":4846,"count":7}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4703,"endOffset":4729,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4738,"endOffset":4765,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4804,"endOffset":4825,"count":1}],"isBlockCoverage":true},{"functionName":"j","ranges":[{"startOffset":4853,"endOffset":4982,"count":5},{"startOffset":4918,"endOffset":4922,"count":3},{"startOffset":4922,"endOffset":4924,"count":2},{"startOffset":4936,"endOffset":4954,"count":1},{"startOffset":4954,"endOffset":4959,"count":4},{"startOffset":4960,"endOffset":4981,"count":0}],"isBlockCoverage":true},{"functionName":"s","ranges":[{"startOffset":4871,"endOffset":4883,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4945,"endOffset":4952,"count":1}],"isBlockCoverage":true},{"functionName":"_","ranges":[{"startOffset":5013,"endOffset":5177,"count":2}],"isBlockCoverage":true},{"functionName":"addDirectory","ranges":[{"startOffset":5177,"endOffset":5536,"count":0}],"isBlockCoverage":false},{"functionName":"addHandler","ranges":[{"startOffset":5536,"endOffset":6668,"count":4},{"startOffset":5654,"endOffset":5664,"count":2},{"startOffset":5682,"endOffset":5793,"count":1},{"startOffset":5752,"endOffset":5793,"count":0},{"startOffset":5793,"endOffset":6194,"count":3},{"startOffset":5861,"endOffset":6094,"count":2},{"startOffset":5892,"endOffset":5920,"count":1},{"startOffset":5930,"endOffset":5949,"count":0},{"startOffset":5966,"endOffset":6002,"count":0},{"startOffset":6094,"endOffset":6102,"count":1},{"startOffset":6102,"endOffset":6193,"count":0},{"startOffset":6194,"endOffset":6667,"count":2},{"startOffset":6335,"endOffset":6352,"count":0},{"startOffset":6354,"endOffset":6402,"count":1},{"startOffset":6548,"endOffset":6552,"count":0},{"startOffset":6622,"endOffset":6666,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5577,"endOffset":5644,"count":4},{"startOffset":5597,"endOffset":5640,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5605,"endOffset":5638,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5657,"endOffset":5663,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5685,"endOffset":5737,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5713,"endOffset":5734,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5801,"endOffset":5857,"count":3},{"startOffset":5837,"endOffset":5856,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6239,"endOffset":6250,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6296,"endOffset":6320,"count":3},{"startOffset":6309,"endOffset":6320,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6414,"endOffset":6441,"count":0}],"isBlockCoverage":true},{"functionName":"getCommandHandlers","ranges":[{"startOffset":6668,"endOffset":6710,"count":0}],"isBlockCoverage":false},{"functionName":"getCommands","ranges":[{"startOffset":6710,"endOffset":6793,"count":2}],"isBlockCoverage":true},{"functionName":"hasDefaultCommand","ranges":[{"startOffset":6793,"endOffset":6841,"count":3}],"isBlockCoverage":true},{"functionName":"runCommand","ranges":[{"startOffset":6841,"endOffset":7291,"count":1},{"startOffset":7009,"endOffset":7063,"count":0},{"startOffset":7145,"endOffset":7224,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7154,"endOffset":7222,"count":0}],"isBlockCoverage":true},{"functionName":"applyBuilderUpdateUsageAndParse","ranges":[{"startOffset":7291,"endOffset":7841,"count":1},{"startOffset":7479,"endOffset":7604,"count":0},{"startOffset":7605,"endOffset":7796,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7494,"endOffset":7602,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7610,"endOffset":7647,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7771,"endOffset":7792,"count":0}],"isBlockCoverage":true},{"functionName":"parseAndUpdateUsage","ranges":[{"startOffset":7841,"endOffset":8259,"count":1},{"startOffset":8165,"endOffset":8219,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8174,"endOffset":8217,"count":0}],"isBlockCoverage":true},{"functionName":"shouldUpdateUsage","ranges":[{"startOffset":8259,"endOffset":8413,"count":1}],"isBlockCoverage":true},{"functionName":"usageFromParentCommandsCommandHandler","ranges":[{"startOffset":8413,"endOffset":8591,"count":1},{"startOffset":8482,"endOffset":8514,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8538,"endOffset":8551,"count":0}],"isBlockCoverage":true},{"functionName":"handleValidationAndGetResult","ranges":[{"startOffset":8591,"endOffset":9288,"count":1},{"startOffset":9037,"endOffset":9099,"count":0},{"startOffset":9244,"endOffset":9285,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8754,"endOffset":8765,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8978,"endOffset":9033,"count":1},{"startOffset":9030,"endOffset":9032,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9023,"endOffset":9028,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9159,"endOffset":9233,"count":0}],"isBlockCoverage":true},{"functionName":"applyMiddlewareAndGetResult","ranges":[{"startOffset":9288,"endOffset":9649,"count":1},{"startOffset":9345,"endOffset":9354,"count":0},{"startOffset":9533,"endOffset":9597,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9542,"endOffset":9595,"count":0}],"isBlockCoverage":true},{"functionName":"populatePositionals","ranges":[{"startOffset":9649,"endOffset":10069,"count":1},{"startOffset":9833,"endOffset":9883,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9986,"endOffset":9993,"count":0}],"isBlockCoverage":true},{"functionName":"populatePositional","ranges":[{"startOffset":10069,"endOffset":10195,"count":1},{"startOffset":10153,"endOffset":10194,"count":0}],"isBlockCoverage":true},{"functionName":"cmdToParseOptions","ranges":[{"startOffset":10195,"endOffset":10508,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10299,"endOffset":10397,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10420,"endOffset":10503,"count":1}],"isBlockCoverage":true},{"functionName":"postProcessPositionals","ranges":[{"startOffset":10508,"endOffset":11522,"count":1},{"startOffset":10910,"endOffset":10917,"count":0},{"startOffset":11057,"endOffset":11129,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10791,"endOffset":10897,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10805,"endOffset":10894,"count":11},{"startOffset":10851,"endOffset":10866,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11181,"endOffset":11209,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11241,"endOffset":11518,"count":14},{"startOffset":11258,"endOffset":11517,"count":1},{"startOffset":11265,"endOffset":11283,"count":0},{"startOffset":11330,"endOffset":11501,"count":0}],"isBlockCoverage":true},{"functionName":"isDefaulted","ranges":[{"startOffset":11522,"endOffset":11691,"count":1},{"startOffset":11619,"endOffset":11690,"count":0}],"isBlockCoverage":true},{"functionName":"isInConfigs","ranges":[{"startOffset":11691,"endOffset":11892,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11761,"endOffset":11805,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11817,"endOffset":11889,"count":1}],"isBlockCoverage":true},{"functionName":"runDefaultBuilderOn","ranges":[{"startOffset":11892,"endOffset":12303,"count":0}],"isBlockCoverage":false},{"functionName":"moduleName","ranges":[{"startOffset":12303,"endOffset":12629,"count":0}],"isBlockCoverage":false},{"functionName":"commandFromFilename","ranges":[{"startOffset":12629,"endOffset":12712,"count":0}],"isBlockCoverage":false},{"functionName":"extractDesc","ranges":[{"startOffset":12712,"endOffset":12848,"count":2},{"startOffset":12781,"endOffset":12839,"count":3},{"startOffset":12803,"endOffset":12811,"count":1},{"startOffset":12812,"endOffset":12821,"count":2},{"startOffset":12821,"endOffset":12839,"count":1},{"startOffset":12839,"endOffset":12847,"count":0}],"isBlockCoverage":true},{"functionName":"freeze","ranges":[{"startOffset":12848,"endOffset":12959,"count":1}],"isBlockCoverage":true},{"functionName":"unfreeze","ranges":[{"startOffset":12959,"endOffset":13106,"count":1}],"isBlockCoverage":true},{"functionName":"reset","ranges":[{"startOffset":13106,"endOffset":13213,"count":1}],"isBlockCoverage":true},{"functionName":"k","ranges":[{"startOffset":13214,"endOffset":13296,"count":1},{"startOffset":13252,"endOffset":13295,"count":0}],"isBlockCoverage":true},{"functionName":"x","ranges":[{"startOffset":13296,"endOffset":13337,"count":1}],"isBlockCoverage":true},{"functionName":"E","ranges":[{"startOffset":13337,"endOffset":13525,"count":0}],"isBlockCoverage":false},{"functionName":"A","ranges":[{"startOffset":13525,"endOffset":13565,"count":0}],"isBlockCoverage":false},{"functionName":"P","ranges":[{"startOffset":13565,"endOffset":21218,"count":2}],"isBlockCoverage":true},{"functionName":"P.n.failFn","ranges":[{"startOffset":13618,"endOffset":13640,"count":1}],"isBlockCoverage":true},{"functionName":"P.n.showHelpOnFail","ranges":[{"startOffset":13681,"endOffset":13806,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.fail","ranges":[{"startOffset":13823,"endOffset":14272,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.usage","ranges":[{"startOffset":14295,"endOffset":14351,"count":1},{"startOffset":14310,"endOffset":14324,"count":0},{"startOffset":14342,"endOffset":14346,"count":0}],"isBlockCoverage":true},{"functionName":"P.n.getUsage","ranges":[{"startOffset":14363,"endOffset":14368,"count":1}],"isBlockCoverage":true},{"functionName":"P.n.getUsageDisabled","ranges":[{"startOffset":14388,"endOffset":14393,"count":1}],"isBlockCoverage":true},{"functionName":"P.n.getPositionalGroupName","ranges":[{"startOffset":14419,"endOffset":14440,"count":1}],"isBlockCoverage":true},{"functionName":"P.n.example","ranges":[{"startOffset":14460,"endOffset":14486,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.command","ranges":[{"startOffset":14506,"endOffset":14584,"count":2},{"startOffset":14530,"endOffset":14559,"count":1},{"startOffset":14571,"endOffset":14575,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14542,"endOffset":14556,"count":0}],"isBlockCoverage":true},{"functionName":"P.n.getCommands","ranges":[{"startOffset":14599,"endOffset":14604,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.describe","ranges":[{"startOffset":14625,"endOffset":14766,"count":51},{"startOffset":14655,"endOffset":14689,"count":0},{"startOffset":14708,"endOffset":14758,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14667,"endOffset":14687,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14733,"endOffset":14756,"count":0}],"isBlockCoverage":true},{"functionName":"P.n.getDescriptions","ranges":[{"startOffset":14785,"endOffset":14790,"count":46}],"isBlockCoverage":true},{"functionName":"P.n.epilog","ranges":[{"startOffset":14809,"endOffset":14823,"count":1}],"isBlockCoverage":true},{"functionName":"P.n.wrap","ranges":[{"startOffset":14842,"endOffset":14855,"count":1}],"isBlockCoverage":true},{"functionName":"P.n.getWrap","ranges":[{"startOffset":14866,"endOffset":15009,"count":0}],"isBlockCoverage":false},{"functionName":"O","ranges":[{"startOffset":15037,"endOffset":15258,"count":0}],"isBlockCoverage":false},{"functionName":"C","ranges":[{"startOffset":15264,"endOffset":15372,"count":0}],"isBlockCoverage":false},{"functionName":"j","ranges":[{"startOffset":15372,"endOffset":15575,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.deferY18nLookup","ranges":[{"startOffset":15593,"endOffset":15599,"count":5}],"isBlockCoverage":true},{"functionName":"P.n.help","ranges":[{"startOffset":15607,"endOffset":20037,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.cacheHelpMessage","ranges":[{"startOffset":20057,"endOffset":20082,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.clearCachedHelpMessage","ranges":[{"startOffset":20108,"endOffset":20128,"count":2}],"isBlockCoverage":true},{"functionName":"P.n.hasCachedHelpMessage","ranges":[{"startOffset":20152,"endOffset":20173,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.showHelp","ranges":[{"startOffset":20185,"endOffset":20295,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.functionDescription","ranges":[{"startOffset":20318,"endOffset":20399,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.stringifiedValues","ranges":[{"startOffset":20420,"endOffset":20555,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.version","ranges":[{"startOffset":20577,"endOffset":20585,"count":4}],"isBlockCoverage":true},{"functionName":"P.n.showVersion","ranges":[{"startOffset":20600,"endOffset":20703,"count":0}],"isBlockCoverage":false},{"functionName":"P.n.reset","ranges":[{"startOffset":20712,"endOffset":20788,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20775,"endOffset":20783,"count":2}],"isBlockCoverage":true},{"functionName":"P.n.freeze","ranges":[{"startOffset":20816,"endOffset":20939,"count":2}],"isBlockCoverage":true},{"functionName":"P.n.unfreeze","ranges":[{"startOffset":20951,"endOffset":21215,"count":2},{"startOffset":20987,"endOffset":21213,"count":1}],"isBlockCoverage":true},{"functionName":"S","ranges":[{"startOffset":21218,"endOffset":21257,"count":0}],"isBlockCoverage":false},{"functionName":"$","ranges":[{"startOffset":21257,"endOffset":21299,"count":0}],"isBlockCoverage":false},{"functionName":"I","ranges":[{"startOffset":21299,"endOffset":21334,"count":0}],"isBlockCoverage":false},{"functionName":"D","ranges":[{"startOffset":21342,"endOffset":21745,"count":2},{"startOffset":21622,"endOffset":21629,"count":0},{"startOffset":21648,"endOffset":21728,"count":0}],"isBlockCoverage":true},{"functionName":"defaultCompletion","ranges":[{"startOffset":21745,"endOffset":22183,"count":0}],"isBlockCoverage":false},{"functionName":"commandCompletions","ranges":[{"startOffset":22183,"endOffset":22504,"count":0}],"isBlockCoverage":false},{"functionName":"optionCompletions","ranges":[{"startOffset":22504,"endOffset":22928,"count":0}],"isBlockCoverage":false},{"functionName":"choicesFromOptionsCompletions","ranges":[{"startOffset":22928,"endOffset":23100,"count":0}],"isBlockCoverage":false},{"functionName":"choicesFromPositionalsCompletions","ranges":[{"startOffset":23100,"endOffset":23519,"count":0}],"isBlockCoverage":false},{"functionName":"getPreviousArgChoices","ranges":[{"startOffset":23519,"endOffset":23941,"count":0}],"isBlockCoverage":false},{"functionName":"previousArgHasChoices","ranges":[{"startOffset":23941,"endOffset":24034,"count":0}],"isBlockCoverage":false},{"functionName":"argsContainKey","ranges":[{"startOffset":24034,"endOffset":24233,"count":0}],"isBlockCoverage":false},{"functionName":"completeOptionKey","ranges":[{"startOffset":24233,"endOffset":24764,"count":0}],"isBlockCoverage":false},{"functionName":"customCompletion","ranges":[{"startOffset":24764,"endOffset":25283,"count":0}],"isBlockCoverage":false},{"functionName":"getCompletion","ranges":[{"startOffset":25283,"endOffset":25489,"count":0}],"isBlockCoverage":false},{"functionName":"generateCompletionScript","ranges":[{"startOffset":25489,"endOffset":27133,"count":0}],"isBlockCoverage":false},{"functionName":"registerFunction","ranges":[{"startOffset":27133,"endOffset":27185,"count":0}],"isBlockCoverage":false},{"functionName":"setParsed","ranges":[{"startOffset":27185,"endOffset":27221,"count":1}],"isBlockCoverage":true},{"functionName":"N","ranges":[{"startOffset":27222,"endOffset":27674,"count":0}],"isBlockCoverage":false},{"functionName":"te","ranges":[{"startOffset":28887,"endOffset":29895,"count":2}],"isBlockCoverage":true},{"functionName":"addHelpOpt","ranges":[{"startOffset":29895,"endOffset":30205,"count":3},{"startOffset":29985,"endOffset":30031,"count":1},{"startOffset":30038,"endOffset":30050,"count":0},{"startOffset":30080,"endOffset":30082,"count":1},{"startOffset":30082,"endOffset":30089,"count":2},{"startOffset":30152,"endOffset":30197,"count":2}],"isBlockCoverage":true},{"functionName":"help","ranges":[{"startOffset":30205,"endOffset":30243,"count":3}],"isBlockCoverage":true},{"functionName":"addShowHiddenOpt","ranges":[{"startOffset":30243,"endOffset":30529,"count":0}],"isBlockCoverage":false},{"functionName":"showHidden","ranges":[{"startOffset":30529,"endOffset":30579,"count":0}],"isBlockCoverage":false},{"functionName":"alias","ranges":[{"startOffset":30579,"endOffset":30711,"count":23}],"isBlockCoverage":true},{"functionName":"array","ranges":[{"startOffset":30711,"endOffset":30805,"count":1}],"isBlockCoverage":true},{"functionName":"boolean","ranges":[{"startOffset":30805,"endOffset":30903,"count":7}],"isBlockCoverage":true},{"functionName":"check","ranges":[{"startOffset":30903,"endOffset":31275,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30987,"endOffset":31262,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30997,"endOffset":31020,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31023,"endOffset":31195,"count":1},{"startOffset":31069,"endOffset":31192,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31198,"endOffset":31260,"count":0}],"isBlockCoverage":true},{"functionName":"choices","ranges":[{"startOffset":31275,"endOffset":31413,"count":0}],"isBlockCoverage":false},{"functionName":"coerce","ranges":[{"startOffset":31413,"endOffset":32093,"count":6},{"startOffset":31506,"endOffset":31607,"count":0},{"startOffset":31629,"endOffset":31692,"count":0},{"startOffset":31698,"endOffset":31746,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31813,"endOffset":32083,"count":6},{"startOffset":31875,"endOffset":32080,"count":2},{"startOffset":32080,"endOffset":32082,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31879,"endOffset":31909,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31912,"endOffset":32048,"count":2},{"startOffset":32012,"endOffset":32039,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":32051,"endOffset":32078,"count":0}],"isBlockCoverage":true},{"functionName":"conflicts","ranges":[{"startOffset":32093,"endOffset":32209,"count":4}],"isBlockCoverage":true},{"functionName":"config","ranges":[{"startOffset":32209,"endOffset":32699,"count":2},{"startOffset":32332,"endOffset":32545,"count":1},{"startOffset":32372,"endOffset":32388,"count":0},{"startOffset":32485,"endOffset":32487,"count":0},{"startOffset":32545,"endOffset":32698,"count":1},{"startOffset":32677,"endOffset":32681,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":32502,"endOffset":32537,"count":1}],"isBlockCoverage":true},{"functionName":"completion","ranges":[{"startOffset":32699,"endOffset":32998,"count":0}],"isBlockCoverage":false},{"functionName":"command","ranges":[{"startOffset":32998,"endOffset":33198,"count":2}],"isBlockCoverage":true},{"functionName":"commands","ranges":[{"startOffset":33198,"endOffset":33253,"count":0}],"isBlockCoverage":false},{"functionName":"commandDir","ranges":[{"startOffset":33253,"endOffset":33439,"count":0}],"isBlockCoverage":false},{"functionName":"count","ranges":[{"startOffset":33439,"endOffset":33533,"count":0}],"isBlockCoverage":false},{"functionName":"default","ranges":[{"startOffset":33533,"endOffset":33907,"count":9},{"startOffset":33621,"endOffset":33683,"count":0},{"startOffset":33704,"endOffset":33853,"count":0}],"isBlockCoverage":true},{"functionName":"defaults","ranges":[{"startOffset":33907,"endOffset":33950,"count":0}],"isBlockCoverage":false},{"functionName":"demandCommand","ranges":[{"startOffset":33950,"endOffset":34210,"count":0}],"isBlockCoverage":false},{"functionName":"demand","ranges":[{"startOffset":34210,"endOffset":34593,"count":0}],"isBlockCoverage":false},{"functionName":"demandOption","ranges":[{"startOffset":34593,"endOffset":34743,"count":0}],"isBlockCoverage":false},{"functionName":"deprecateOption","ranges":[{"startOffset":34743,"endOffset":34868,"count":0}],"isBlockCoverage":false},{"functionName":"describe","ranges":[{"startOffset":34868,"endOffset":34997,"count":51}],"isBlockCoverage":true},{"functionName":"detectLocale","ranges":[{"startOffset":34997,"endOffset":35077,"count":0}],"isBlockCoverage":false},{"functionName":"env","ranges":[{"startOffset":35077,"endOffset":35209,"count":0}],"isBlockCoverage":false},{"functionName":"epilogue","ranges":[{"startOffset":35209,"endOffset":35293,"count":1}],"isBlockCoverage":true},{"functionName":"epilog","ranges":[{"startOffset":35293,"endOffset":35327,"count":1}],"isBlockCoverage":true},{"functionName":"example","ranges":[{"startOffset":35327,"endOffset":35484,"count":0}],"isBlockCoverage":false},{"functionName":"exit","ranges":[{"startOffset":35484,"endOffset":35573,"count":0}],"isBlockCoverage":false},{"functionName":"exitProcess","ranges":[{"startOffset":35573,"endOffset":35655,"count":0}],"isBlockCoverage":false},{"functionName":"fail","ranges":[{"startOffset":35655,"endOffset":35852,"count":1},{"startOffset":35730,"endOffset":35738,"count":0},{"startOffset":35739,"endOffset":35815,"count":0}],"isBlockCoverage":true},{"functionName":"getAliases","ranges":[{"startOffset":35852,"endOffset":35907,"count":8},{"startOffset":35883,"endOffset":35903,"count":2},{"startOffset":35903,"endOffset":35906,"count":6}],"isBlockCoverage":true},{"functionName":"getCompletion","ranges":[{"startOffset":35907,"endOffset":36099,"count":0}],"isBlockCoverage":false},{"functionName":"getDemandedOptions","ranges":[{"startOffset":36099,"endOffset":36166,"count":1}],"isBlockCoverage":true},{"functionName":"getDemandedCommands","ranges":[{"startOffset":36166,"endOffset":36235,"count":1}],"isBlockCoverage":true},{"functionName":"getDeprecatedOptions","ranges":[{"startOffset":36235,"endOffset":36306,"count":0}],"isBlockCoverage":false},{"functionName":"getDetectLocale","ranges":[{"startOffset":36306,"endOffset":36345,"count":0}],"isBlockCoverage":false},{"functionName":"getExitProcess","ranges":[{"startOffset":36345,"endOffset":36383,"count":0}],"isBlockCoverage":false},{"functionName":"getGroups","ranges":[{"startOffset":36383,"endOffset":36449,"count":0}],"isBlockCoverage":false},{"functionName":"getHelp","ranges":[{"startOffset":36449,"endOffset":36784,"count":0}],"isBlockCoverage":false},{"functionName":"getOptions","ranges":[{"startOffset":36784,"endOffset":36819,"count":6}],"isBlockCoverage":true},{"functionName":"getStrict","ranges":[{"startOffset":36819,"endOffset":36853,"count":0}],"isBlockCoverage":false},{"functionName":"getStrictCommands","ranges":[{"startOffset":36853,"endOffset":36895,"count":0}],"isBlockCoverage":false},{"functionName":"getStrictOptions","ranges":[{"startOffset":36895,"endOffset":36936,"count":0}],"isBlockCoverage":false},{"functionName":"global","ranges":[{"startOffset":36936,"endOffset":37189,"count":14},{"startOffset":37102,"endOffset":37183,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":37080,"endOffset":37100,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":37114,"endOffset":37181,"count":0}],"isBlockCoverage":true},{"functionName":"group","ranges":[{"startOffset":37189,"endOffset":37428,"count":42},{"startOffset":37313,"endOffset":37339,"count":0},{"startOffset":37377,"endOffset":37381,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":37401,"endOffset":37420,"count":276}],"isBlockCoverage":true},{"functionName":"hide","ranges":[{"startOffset":37428,"endOffset":37520,"count":1}],"isBlockCoverage":true},{"functionName":"implies","ranges":[{"startOffset":37520,"endOffset":37639,"count":0}],"isBlockCoverage":false},{"functionName":"locale","ranges":[{"startOffset":37639,"endOffset":37804,"count":0}],"isBlockCoverage":false},{"functionName":"middleware","ranges":[{"startOffset":37804,"endOffset":37866,"count":2}],"isBlockCoverage":true},{"functionName":"nargs","ranges":[{"startOffset":37866,"endOffset":37991,"count":0}],"isBlockCoverage":false},{"functionName":"normalize","ranges":[{"startOffset":37991,"endOffset":38081,"count":2}],"isBlockCoverage":true},{"functionName":"number","ranges":[{"startOffset":38081,"endOffset":38177,"count":1}],"isBlockCoverage":true},{"functionName":"option","ranges":[{"startOffset":38177,"endOffset":40145,"count":45},{"startOffset":38264,"endOffset":38316,"count":1},{"startOffset":38316,"endOffset":40133,"count":44},{"startOffset":38339,"endOffset":38347,"count":0},{"startOffset":38412,"endOffset":38419,"count":0},{"startOffset":38428,"endOffset":38772,"count":0},{"startOffset":38805,"endOffset":38828,"count":0},{"startOffset":38864,"endOffset":38891,"count":0},{"startOffset":38933,"endOffset":38951,"count":0},{"startOffset":38966,"endOffset":39042,"count":0},{"startOffset":39054,"endOffset":39085,"count":4},{"startOffset":39099,"endOffset":39126,"count":9},{"startOffset":39145,"endOffset":39172,"count":0},{"startOffset":39189,"endOffset":39212,"count":0},{"startOffset":39221,"endOffset":39252,"count":1},{"startOffset":39264,"endOffset":39283,"count":2},{"startOffset":39293,"endOffset":39320,"count":0},{"startOffset":39329,"endOffset":39354,"count":6},{"startOffset":39362,"endOffset":39385,"count":41},{"startOffset":39417,"endOffset":39467,"count":0},{"startOffset":39495,"endOffset":39541,"count":0},{"startOffset":39571,"endOffset":39619,"count":0},{"startOffset":39649,"endOffset":39697,"count":0},{"startOffset":39725,"endOffset":39740,"count":0},{"startOffset":39767,"endOffset":39792,"count":0},{"startOffset":39813,"endOffset":39874,"count":5},{"startOffset":39891,"endOffset":39915,"count":0},{"startOffset":39949,"endOffset":39957,"count":0},{"startOffset":40034,"endOffset":40054,"count":1},{"startOffset":40083,"endOffset":40097,"count":1},{"startOffset":40111,"endOffset":40132,"count":14}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":38288,"endOffset":38313,"count":43}],"isBlockCoverage":true},{"functionName":"options","ranges":[{"startOffset":40145,"endOffset":40182,"count":44}],"isBlockCoverage":true},{"functionName":"parse","ranges":[{"startOffset":40182,"endOffset":40870,"count":1},{"startOffset":40298,"endOffset":40318,"count":0},{"startOffset":40337,"endOffset":40361,"count":0},{"startOffset":40382,"endOffset":40407,"count":0},{"startOffset":40442,"endOffset":40460,"count":0},{"startOffset":40767,"endOffset":40869,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40556,"endOffset":40635,"count":1},{"startOffset":40574,"endOffset":40632,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40645,"endOffset":40723,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":40735,"endOffset":40765,"count":1}],"isBlockCoverage":true},{"functionName":"parseAsync","ranges":[{"startOffset":40870,"endOffset":40947,"count":0}],"isBlockCoverage":false},{"functionName":"parseSync","ranges":[{"startOffset":40947,"endOffset":41104,"count":0}],"isBlockCoverage":false},{"functionName":"parserConfiguration","ranges":[{"startOffset":41104,"endOffset":41191,"count":1}],"isBlockCoverage":true},{"functionName":"pkgConf","ranges":[{"startOffset":41191,"endOffset":41491,"count":0}],"isBlockCoverage":false},{"functionName":"positional","ranges":[{"startOffset":41491,"endOffset":42122,"count":1},{"startOffset":41858,"endOffset":41893,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":41701,"endOffset":41780,"count":3},{"startOffset":41720,"endOffset":41764,"count":1},{"startOffset":41765,"endOffset":41780,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":41956,"endOffset":42048,"count":4},{"startOffset":41989,"endOffset":42018,"count":1},{"startOffset":42007,"endOffset":42018,"count":0},{"startOffset":42018,"endOffset":42047,"count":3},{"startOffset":42023,"endOffset":42047,"count":0}],"isBlockCoverage":true},{"functionName":"recommendCommands","ranges":[{"startOffset":42122,"endOffset":42211,"count":0}],"isBlockCoverage":false},{"functionName":"required","ranges":[{"startOffset":42211,"endOffset":42253,"count":0}],"isBlockCoverage":false},{"functionName":"require","ranges":[{"startOffset":42253,"endOffset":42294,"count":0}],"isBlockCoverage":false},{"functionName":"requiresArg","ranges":[{"startOffset":42294,"endOffset":42473,"count":14}],"isBlockCoverage":true},{"functionName":"showCompletionScript","ranges":[{"startOffset":42473,"endOffset":42662,"count":0}],"isBlockCoverage":false},{"functionName":"showHelp","ranges":[{"startOffset":42662,"endOffset":43060,"count":0}],"isBlockCoverage":false},{"functionName":"scriptName","ranges":[{"startOffset":43060,"endOffset":43121,"count":1}],"isBlockCoverage":true},{"functionName":"showHelpOnFail","ranges":[{"startOffset":43121,"endOffset":43242,"count":0}],"isBlockCoverage":false},{"functionName":"showVersion","ranges":[{"startOffset":43242,"endOffset":43343,"count":0}],"isBlockCoverage":false},{"functionName":"skipValidation","ranges":[{"startOffset":43343,"endOffset":43443,"count":0}],"isBlockCoverage":false},{"functionName":"strict","ranges":[{"startOffset":43443,"endOffset":43523,"count":0}],"isBlockCoverage":false},{"functionName":"strictCommands","ranges":[{"startOffset":43523,"endOffset":43611,"count":0}],"isBlockCoverage":false},{"functionName":"strictOptions","ranges":[{"startOffset":43611,"endOffset":43698,"count":0}],"isBlockCoverage":false},{"functionName":"string","ranges":[{"startOffset":43698,"endOffset":43794,"count":1}],"isBlockCoverage":true},{"functionName":"terminalWidth","ranges":[{"startOffset":43794,"endOffset":43859,"count":0}],"isBlockCoverage":false},{"functionName":"updateLocale","ranges":[{"startOffset":43859,"endOffset":43904,"count":0}],"isBlockCoverage":false},{"functionName":"updateStrings","ranges":[{"startOffset":43904,"endOffset":44021,"count":1}],"isBlockCoverage":true},{"functionName":"usage","ranges":[{"startOffset":44021,"endOffset":44366,"count":0}],"isBlockCoverage":false},{"functionName":"usageConfiguration","ranges":[{"startOffset":44366,"endOffset":44452,"count":0}],"isBlockCoverage":false},{"functionName":"version","ranges":[{"startOffset":44452,"endOffset":44991,"count":3},{"startOffset":44567,"endOffset":44646,"count":1},{"startOffset":44668,"endOffset":44685,"count":2},{"startOffset":44685,"endOffset":44787,"count":1},{"startOffset":44714,"endOffset":44745,"count":0},{"startOffset":44770,"endOffset":44786,"count":0},{"startOffset":44824,"endOffset":44826,"count":0},{"startOffset":44835,"endOffset":44890,"count":2},{"startOffset":44915,"endOffset":44923,"count":0}],"isBlockCoverage":true},{"functionName":"wrap","ranges":[{"startOffset":44991,"endOffset":45084,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":45084,"endOffset":45695,"count":1},{"startOffset":45629,"endOffset":45694,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":45695,"endOffset":46036,"count":2}],"isBlockCoverage":true},{"functionName":"log","ranges":[{"startOffset":45713,"endOffset":45869,"count":0}],"isBlockCoverage":false},{"functionName":"error","ranges":[{"startOffset":45876,"endOffset":46034,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":46036,"endOffset":46266,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":46071,"endOffset":46220,"count":44},{"startOffset":46098,"endOffset":46105,"count":2},{"startOffset":46105,"endOffset":46147,"count":42},{"startOffset":46147,"endOffset":46187,"count":18},{"startOffset":46161,"endOffset":46187,"count":2},{"startOffset":46187,"endOffset":46219,"count":24},{"startOffset":46206,"endOffset":46219,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":46266,"endOffset":46358,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":46358,"endOffset":46856,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":46856,"endOffset":47374,"count":2},{"startOffset":46996,"endOffset":47037,"count":0},{"startOffset":47258,"endOffset":47371,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":47047,"endOffset":47147,"count":2},{"startOffset":47144,"endOffset":47146,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":47374,"endOffset":47403,"count":8}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":47403,"endOffset":47432,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":47432,"endOffset":47653,"count":2},{"startOffset":47464,"endOffset":47616,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":47653,"endOffset":47697,"count":2},{"startOffset":47685,"endOffset":47696,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":47697,"endOffset":47891,"count":1},{"startOffset":47720,"endOffset":47728,"count":0},{"startOffset":47769,"endOffset":47882,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":47891,"endOffset":48310,"count":2},{"startOffset":47935,"endOffset":47960,"count":0},{"startOffset":48251,"endOffset":48261,"count":0},{"startOffset":48287,"endOffset":48291,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48114,"endOffset":48169,"count":4},{"startOffset":48147,"endOffset":48169,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48310,"endOffset":48393,"count":12}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48346,"endOffset":48390,"count":52}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48393,"endOffset":48461,"count":74}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48425,"endOffset":48458,"count":74}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48461,"endOffset":48564,"count":23}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48493,"endOffset":48561,"count":22}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48564,"endOffset":48714,"count":97},{"startOffset":48600,"endOffset":48625,"count":0},{"startOffset":48660,"endOffset":48690,"count":1},{"startOffset":48680,"endOffset":48690,"count":20},{"startOffset":48690,"endOffset":48713,"count":96}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48611,"endOffset":48622,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48634,"endOffset":48655,"count":97}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48714,"endOffset":48760,"count":148},{"startOffset":48743,"endOffset":48757,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48760,"endOffset":48822,"count":51}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48822,"endOffset":49732,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49013,"endOffset":49040,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49077,"endOffset":49103,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49119,"endOffset":49145,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49161,"endOffset":49188,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49207,"endOffset":49233,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49252,"endOffset":49278,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49313,"endOffset":49340,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49364,"endOffset":49391,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49414,"endOffset":49441,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49468,"endOffset":49494,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49511,"endOffset":49538,"count":1}],"isBlockCoverage":true},{"functionName":"set value","ranges":[{"startOffset":49560,"endOffset":49587,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":49732,"endOffset":49768,"count":0}],"isBlockCoverage":false},{"functionName":"getInternalMethods","ranges":[{"startOffset":49768,"endOffset":50389,"count":19}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":50389,"endOffset":50417,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50417,"endOffset":50445,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":50445,"endOffset":50473,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":50473,"endOffset":50501,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50501,"endOffset":50534,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50534,"endOffset":50563,"count":5}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":50563,"endOffset":50592,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50592,"endOffset":50622,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":50622,"endOffset":50650,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":50650,"endOffset":50879,"count":3},{"startOffset":50669,"endOffset":50678,"count":1},{"startOffset":50678,"endOffset":50686,"count":2},{"startOffset":50686,"endOffset":50713,"count":1},{"startOffset":50759,"endOffset":50808,"count":1},{"startOffset":50809,"endOffset":50826,"count":1},{"startOffset":50828,"endOffset":50876,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":50879,"endOffset":57436,"count":3},{"startOffset":50914,"endOffset":50918,"count":2},{"startOffset":50963,"endOffset":50967,"count":2},{"startOffset":51012,"endOffset":51016,"count":2},{"startOffset":51691,"endOffset":51715,"count":1},{"startOffset":51715,"endOffset":51738,"count":2},{"startOffset":51768,"endOffset":51792,"count":1},{"startOffset":51792,"endOffset":57044,"count":2},{"startOffset":57072,"endOffset":57094,"count":1},{"startOffset":57094,"endOffset":57195,"count":2},{"startOffset":57214,"endOffset":57320,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":51045,"endOffset":51092,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":51159,"endOffset":51245,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":51375,"endOffset":51427,"count":24},{"startOffset":51402,"endOffset":51406,"count":16}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":51416,"endOffset":51424,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":51569,"endOffset":51610,"count":30}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":51599,"endOffset":51607,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":51793,"endOffset":57008,"count":2}],"isBlockCoverage":true},{"functionName":"nonOptionCount","ranges":[{"startOffset":51858,"endOffset":52604,"count":1},{"startOffset":51923,"endOffset":51938,"count":0},{"startOffset":51997,"endOffset":52603,"count":0}],"isBlockCoverage":true},{"functionName":"positionalCount","ranges":[{"startOffset":52621,"endOffset":52783,"count":1},{"startOffset":52638,"endOffset":52782,"count":0}],"isBlockCoverage":true},{"functionName":"requiredArguments","ranges":[{"startOffset":52802,"endOffset":53192,"count":1},{"startOffset":52857,"endOffset":52935,"count":0},{"startOffset":52940,"endOffset":53191,"count":0}],"isBlockCoverage":true},{"functionName":"unknownArguments","ranges":[{"startOffset":53210,"endOffset":54009,"count":0}],"isBlockCoverage":false},{"functionName":"unknownCommands","ranges":[{"startOffset":54026,"endOffset":54359,"count":0}],"isBlockCoverage":false},{"functionName":"isValidAndSomeAliasIsNotNew","ranges":[{"startOffset":54388,"endOffset":54564,"count":0}],"isBlockCoverage":false},{"functionName":"limitedChoices","ranges":[{"startOffset":54580,"endOffset":55078,"count":1},{"startOffset":54661,"endOffset":55077,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":54685,"endOffset":54861,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":54945,"endOffset":55065,"count":0}],"isBlockCoverage":true},{"functionName":"a","ranges":[{"startOffset":55089,"endOffset":55318,"count":0}],"isBlockCoverage":false},{"functionName":"r.implies","ranges":[{"startOffset":55328,"endOffset":55583,"count":0}],"isBlockCoverage":false},{"functionName":"r.getImplied","ranges":[{"startOffset":55597,"endOffset":55617,"count":0}],"isBlockCoverage":false},{"functionName":"r.implications","ranges":[{"startOffset":55633,"endOffset":55877,"count":1},{"startOffset":55803,"endOffset":55876,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":55683,"endOffset":55791,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":55854,"endOffset":55863,"count":0}],"isBlockCoverage":true},{"functionName":"r.conflicts","ranges":[{"startOffset":55899,"endOffset":56135,"count":14},{"startOffset":55990,"endOffset":56041,"count":0},{"startOffset":56059,"endOffset":56070,"count":4},{"startOffset":56087,"endOffset":56120,"count":2},{"startOffset":56120,"endOffset":56133,"count":12}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":56015,"endOffset":56039,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":56099,"endOffset":56118,"count":10}],"isBlockCoverage":true},{"functionName":"r.getConflicting","ranges":[{"startOffset":56153,"endOffset":56158,"count":0}],"isBlockCoverage":false},{"functionName":"r.conflicting","ranges":[{"startOffset":56173,"endOffset":56586,"count":1},{"startOffset":56399,"endOffset":56585,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":56209,"endOffset":56333,"count":15},{"startOffset":56217,"endOffset":56332,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":56233,"endOffset":56330,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":56425,"endOffset":56583,"count":0}],"isBlockCoverage":true},{"functionName":"r.recommendCommands","ranges":[{"startOffset":56607,"endOffset":56783,"count":0}],"isBlockCoverage":false},{"functionName":"r.reset","ranges":[{"startOffset":56792,"endOffset":56849,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":56818,"endOffset":56826,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":56836,"endOffset":56844,"count":0}],"isBlockCoverage":true},{"functionName":"r.freeze","ranges":[{"startOffset":56877,"endOffset":56922,"count":1}],"isBlockCoverage":true},{"functionName":"r.unfreeze","ranges":[{"startOffset":56934,"endOffset":57005,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":57095,"endOffset":57135,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":57225,"endOffset":57265,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":57436,"endOffset":57487,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":57487,"endOffset":59870,"count":2},{"startOffset":57517,"endOffset":57520,"count":1},{"startOffset":57524,"endOffset":57540,"count":1},{"startOffset":58128,"endOffset":58156,"count":0},{"startOffset":58213,"endOffset":58217,"count":0},{"startOffset":58273,"endOffset":58291,"count":0},{"startOffset":58417,"endOffset":58735,"count":1},{"startOffset":58495,"endOffset":58514,"count":0},{"startOffset":58515,"endOffset":58601,"count":0},{"startOffset":58672,"endOffset":58734,"count":0},{"startOffset":58748,"endOffset":58846,"count":0},{"startOffset":58883,"endOffset":58887,"count":1},{"startOffset":58888,"endOffset":58980,"count":1},{"startOffset":58980,"endOffset":59239,"count":0},{"startOffset":59239,"endOffset":59400,"count":1},{"startOffset":59259,"endOffset":59321,"count":0},{"startOffset":59323,"endOffset":59399,"count":0},{"startOffset":59403,"endOffset":59529,"count":0},{"startOffset":59533,"endOffset":59760,"count":0},{"startOffset":59761,"endOffset":59832,"count":0},{"startOffset":59832,"endOffset":59855,"count":1},{"startOffset":59855,"endOffset":59857,"count":0},{"startOffset":59857,"endOffset":59859,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":57965,"endOffset":58031,"count":25},{"startOffset":57986,"endOffset":57997,"count":0},{"startOffset":58016,"endOffset":58030,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":58227,"endOffset":58240,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59120,"endOffset":59214,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59469,"endOffset":59526,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59709,"endOffset":59755,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59870,"endOffset":60315,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59930,"endOffset":60314,"count":1},{"startOffset":59939,"endOffset":59962,"count":0},{"startOffset":60056,"endOffset":60095,"count":0},{"startOffset":60110,"endOffset":60157,"count":0},{"startOffset":60172,"endOffset":60219,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":60315,"endOffset":60339,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":60339,"endOffset":60441,"count":54},{"startOffset":60369,"endOffset":60394,"count":50},{"startOffset":60394,"endOffset":60440,"count":4},{"startOffset":60416,"endOffset":60440,"count":44}],"isBlockCoverage":true},{"functionName":"getEnv","ranges":[{"startOffset":60733,"endOffset":60750,"count":6}],"isBlockCoverage":true},{"functionName":"argv","ranges":[{"startOffset":61020,"endOffset":61036,"count":4}],"isBlockCoverage":true},{"functionName":"emitWarning","ranges":[{"startOffset":61065,"endOffset":61096,"count":0}],"isBlockCoverage":false},{"functionName":"execPath","ranges":[{"startOffset":61106,"endOffset":61126,"count":0}],"isBlockCoverage":false},{"functionName":"exit","ranges":[{"startOffset":61132,"endOffset":61152,"count":0}],"isBlockCoverage":false},{"functionName":"ue.Yargs","ranges":[{"startOffset":61923,"endOffset":62074,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":62021,"endOffset":62034,"count":0}],"isBlockCoverage":false}]},{"scriptId":"322","url":"node:assert","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":27510,"count":1}],"isBlockCoverage":false},{"functionName":"lazyLoadComparison","ranges":[{"startOffset":2366,"endOffset":2608,"count":0}],"isBlockCoverage":false},{"functionName":"Assert","ranges":[{"startOffset":3464,"endOffset":4205,"count":0}],"isBlockCoverage":false},{"functionName":"innerFail","ranges":[{"startOffset":4838,"endOffset":4954,"count":0}],"isBlockCoverage":false},{"functionName":"fail","ranges":[{"startOffset":5139,"endOffset":6460,"count":0}],"isBlockCoverage":false},{"functionName":"ok","ranges":[{"startOffset":6687,"endOffset":6748,"count":0}],"isBlockCoverage":false},{"functionName":"ok","ranges":[{"startOffset":6991,"endOffset":7052,"count":0}],"isBlockCoverage":false},{"functionName":"equal","ranges":[{"startOffset":7260,"endOffset":7668,"count":0}],"isBlockCoverage":false},{"functionName":"notEqual","ranges":[{"startOffset":7897,"endOffset":8309,"count":0}],"isBlockCoverage":false},{"functionName":"deepEqual","ranges":[{"startOffset":8519,"endOffset":8920,"count":0}],"isBlockCoverage":false},{"functionName":"notDeepEqual","ranges":[{"startOffset":9136,"endOffset":9545,"count":0}],"isBlockCoverage":false},{"functionName":"deepStrictEqual","ranges":[{"startOffset":9778,"endOffset":10236,"count":0}],"isBlockCoverage":false},{"functionName":"notDeepStrictEqual","ranges":[{"startOffset":10495,"endOffset":10961,"count":0}],"isBlockCoverage":false},{"functionName":"strictEqual","ranges":[{"startOffset":11176,"endOffset":11525,"count":0}],"isBlockCoverage":false},{"functionName":"notStrictEqual","ranges":[{"startOffset":11747,"endOffset":12104,"count":6},{"startOffset":11828,"endOffset":11887,"count":0},{"startOffset":11922,"endOffset":12102,"count":0}],"isBlockCoverage":true},{"functionName":"partialDeepStrictEqual","ranges":[{"startOffset":12322,"endOffset":12780,"count":0}],"isBlockCoverage":false},{"functionName":"Comparison","ranges":[{"startOffset":12804,"endOffset":13186,"count":0}],"isBlockCoverage":false},{"functionName":"compareExceptionKey","ranges":[{"startOffset":13190,"endOffset":13983,"count":0}],"isBlockCoverage":false},{"functionName":"expectedException","ranges":[{"startOffset":13985,"endOffset":17449,"count":0}],"isBlockCoverage":false},{"functionName":"getActual","ranges":[{"startOffset":17451,"endOffset":17591,"count":0}],"isBlockCoverage":false},{"functionName":"checkIsPromise","ranges":[{"startOffset":17593,"endOffset":17957,"count":0}],"isBlockCoverage":false},{"functionName":"waitForActual","ranges":[{"startOffset":17959,"endOffset":18673,"count":0}],"isBlockCoverage":false},{"functionName":"expectsError","ranges":[{"startOffset":18675,"endOffset":20341,"count":0}],"isBlockCoverage":false},{"functionName":"hasMatchingError","ranges":[{"startOffset":20343,"endOffset":20968,"count":0}],"isBlockCoverage":false},{"functionName":"expectsNoError","ranges":[{"startOffset":20970,"endOffset":21658,"count":0}],"isBlockCoverage":false},{"functionName":"throws","ranges":[{"startOffset":21826,"endOffset":21920,"count":0}],"isBlockCoverage":false},{"functionName":"rejects","ranges":[{"startOffset":22109,"endOffset":22221,"count":0}],"isBlockCoverage":false},{"functionName":"doesNotThrow","ranges":[{"startOffset":22393,"endOffset":22487,"count":0}],"isBlockCoverage":false},{"functionName":"doesNotReject","ranges":[{"startOffset":22663,"endOffset":22775,"count":0}],"isBlockCoverage":false},{"functionName":"ifError","ranges":[{"startOffset":22922,"endOffset":24747,"count":0}],"isBlockCoverage":false},{"functionName":"internalMatch","ranges":[{"startOffset":24750,"endOffset":25870,"count":0}],"isBlockCoverage":false},{"functionName":"match","ranges":[{"startOffset":26076,"endOffset":26168,"count":0}],"isBlockCoverage":false},{"functionName":"doesNotMatch","ranges":[{"startOffset":26386,"endOffset":26492,"count":0}],"isBlockCoverage":false},{"functionName":"strict","ranges":[{"startOffset":26683,"endOffset":26752,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":27147,"endOffset":27216,"count":17}],"isBlockCoverage":true}]},{"scriptId":"323","url":"node:internal/assert/assertion_error","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":14267,"count":1}],"isBlockCoverage":false},{"functionName":"copyError","ranges":[{"startOffset":1742,"endOffset":2216,"count":0}],"isBlockCoverage":false},{"functionName":"inspectValue","ranges":[{"startOffset":2218,"endOffset":2789,"count":0}],"isBlockCoverage":false},{"functionName":"getErrorMessage","ranges":[{"startOffset":2791,"endOffset":2887,"count":0}],"isBlockCoverage":false},{"functionName":"checkOperator","ranges":[{"startOffset":2889,"endOffset":3380,"count":0}],"isBlockCoverage":false},{"functionName":"getColoredMyersDiff","ranges":[{"startOffset":3382,"endOffset":3776,"count":0}],"isBlockCoverage":false},{"functionName":"getStackedDiff","ranges":[{"startOffset":3778,"endOffset":4752,"count":0}],"isBlockCoverage":false},{"functionName":"getSimpleDiff","ranges":[{"startOffset":4754,"endOffset":5514,"count":0}],"isBlockCoverage":false},{"functionName":"isSimpleDiff","ranges":[{"startOffset":5516,"endOffset":5795,"count":0}],"isBlockCoverage":false},{"functionName":"createErrDiff","ranges":[{"startOffset":5797,"endOffset":7971,"count":0}],"isBlockCoverage":false},{"functionName":"addEllipsis","ranges":[{"startOffset":7973,"endOffset":8310,"count":0}],"isBlockCoverage":false},{"functionName":"AssertionError","ranges":[{"startOffset":8351,"endOffset":13296,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":13300,"endOffset":13375,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13379,"endOffset":14230,"count":0}],"isBlockCoverage":false}]},{"scriptId":"324","url":"node:internal/assert/utils","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2414,"count":1}],"isBlockCoverage":false},{"functionName":"escapeFn","ranges":[{"startOffset":980,"endOffset":1028,"count":0}],"isBlockCoverage":false},{"functionName":"getErrMessage","ranges":[{"startOffset":1031,"endOffset":1786,"count":0}],"isBlockCoverage":false},{"functionName":"innerOk","ranges":[{"startOffset":1788,"endOffset":2379,"count":0}],"isBlockCoverage":false}]},{"scriptId":"325","url":"node:internal/errors/error_source","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5359,"count":1}],"isBlockCoverage":false},{"functionName":"getErrorSourceLocation","ranges":[{"startOffset":691,"endOffset":1458,"count":0}],"isBlockCoverage":false},{"functionName":"getFirstExpression","ranges":[{"startOffset":1785,"endOffset":4627,"count":0}],"isBlockCoverage":false},{"functionName":"getErrorSourceExpression","ranges":[{"startOffset":5052,"endOffset":5281,"count":0}],"isBlockCoverage":false}]},{"scriptId":"326","url":"node:internal/assert/calltracker","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3452,"count":1}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":491,"endOffset":534,"count":0}],"isBlockCoverage":false},{"functionName":"CallTrackerContext","ranges":[{"startOffset":538,"endOffset":698,"count":0}],"isBlockCoverage":false},{"functionName":"track","ranges":[{"startOffset":702,"endOffset":877,"count":0}],"isBlockCoverage":false},{"functionName":"get delta","ranges":[{"startOffset":881,"endOffset":946,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":950,"endOffset":985,"count":0}],"isBlockCoverage":false},{"functionName":"getCalls","ranges":[{"startOffset":988,"endOffset":1063,"count":0}],"isBlockCoverage":false},{"functionName":"report","ranges":[{"startOffset":1067,"endOffset":1493,"count":0}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":1520,"endOffset":1588,"count":0}],"isBlockCoverage":false},{"functionName":"#getTrackedFunction","ranges":[{"startOffset":1593,"endOffset":1817,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":1821,"endOffset":2000,"count":0}],"isBlockCoverage":false},{"functionName":"getCalls","ranges":[{"startOffset":2004,"endOffset":2084,"count":0}],"isBlockCoverage":false},{"functionName":"calls","ranges":[{"startOffset":2088,"endOffset":2866,"count":0}],"isBlockCoverage":false},{"functionName":"report","ranges":[{"startOffset":2870,"endOffset":3106,"count":0}],"isBlockCoverage":false},{"functionName":"verify","ranges":[{"startOffset":3110,"endOffset":3418,"count":0}],"isBlockCoverage":false}]},{"scriptId":"327","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/y18n/build/index.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6783,"count":1}],"isBlockCoverage":true},{"functionName":"Y18N","ranges":[{"startOffset":123,"endOffset":611,"count":1},{"startOffset":196,"endOffset":201,"count":0},{"startOffset":243,"endOffset":257,"count":0},{"startOffset":343,"endOffset":349,"count":0},{"startOffset":473,"endOffset":498,"count":0}],"isBlockCoverage":true},{"functionName":"__","ranges":[{"startOffset":616,"endOffset":1683,"count":1},{"startOffset":676,"endOffset":755,"count":0},{"startOffset":913,"endOffset":929,"count":0},{"startOffset":946,"endOffset":964,"count":0},{"startOffset":1025,"endOffset":1048,"count":0},{"startOffset":1157,"endOffset":1176,"count":0},{"startOffset":1178,"endOffset":1535,"count":0},{"startOffset":1655,"endOffset":1661,"count":0}],"isBlockCoverage":true},{"functionName":"cb","ranges":[{"startOffset":807,"endOffset":822,"count":1}],"isBlockCoverage":true},{"functionName":"cb","ranges":[{"startOffset":949,"endOffset":964,"count":0}],"isBlockCoverage":false},{"functionName":"__n","ranges":[{"startOffset":1688,"endOffset":3211,"count":0}],"isBlockCoverage":false},{"functionName":"setLocale","ranges":[{"startOffset":3216,"endOffset":3271,"count":0}],"isBlockCoverage":false},{"functionName":"getLocale","ranges":[{"startOffset":3276,"endOffset":3323,"count":0}],"isBlockCoverage":false},{"functionName":"updateLocale","ranges":[{"startOffset":3328,"endOffset":3607,"count":1},{"startOffset":3453,"endOffset":3601,"count":3}],"isBlockCoverage":true},{"functionName":"_taggedLiteral","ranges":[{"startOffset":3612,"endOffset":3952,"count":0}],"isBlockCoverage":false},{"functionName":"_enqueueWrite","ranges":[{"startOffset":3957,"endOffset":4101,"count":0}],"isBlockCoverage":false},{"functionName":"_processWriteQueue","ranges":[{"startOffset":4106,"endOffset":4746,"count":0}],"isBlockCoverage":false},{"functionName":"_readLocaleFile","ranges":[{"startOffset":4751,"endOffset":5465,"count":1},{"startOffset":5145,"endOffset":5411,"count":0}],"isBlockCoverage":true},{"functionName":"_resolveLocaleFile","ranges":[{"startOffset":5470,"endOffset":5946,"count":1},{"startOffset":5645,"endOffset":5672,"count":0},{"startOffset":5674,"endOffset":5919,"count":0}],"isBlockCoverage":true},{"functionName":"_fileExistsSync","ranges":[{"startOffset":5951,"endOffset":6014,"count":1}],"isBlockCoverage":true},{"functionName":"y18n$1","ranges":[{"startOffset":6017,"endOffset":6358,"count":1}],"isBlockCoverage":true},{"functionName":"exists","ranges":[{"startOffset":6537,"endOffset":6683,"count":1},{"startOffset":6628,"endOffset":6677,"count":0}],"isBlockCoverage":true},{"functionName":"y18n","ranges":[{"startOffset":6701,"endOffset":6757,"count":1}],"isBlockCoverage":true}]},{"scriptId":"328","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/cliui/build/index.cjs","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9953,"count":1}],"isBlockCoverage":true},{"functionName":"UI","ranges":[{"startOffset":162,"endOffset":336,"count":0}],"isBlockCoverage":false},{"functionName":"span","ranges":[{"startOffset":341,"endOffset":428,"count":0}],"isBlockCoverage":false},{"functionName":"resetOutput","ranges":[{"startOffset":433,"endOffset":478,"count":0}],"isBlockCoverage":false},{"functionName":"div","ranges":[{"startOffset":483,"endOffset":956,"count":0}],"isBlockCoverage":false},{"functionName":"shouldApplyLayoutDSL","ranges":[{"startOffset":961,"endOffset":1101,"count":0}],"isBlockCoverage":false},{"functionName":"applyLayoutDSL","ranges":[{"startOffset":1106,"endOffset":2204,"count":0}],"isBlockCoverage":false},{"functionName":"colFromString","ranges":[{"startOffset":2209,"endOffset":2329,"count":0}],"isBlockCoverage":false},{"functionName":"measurePadding","ranges":[{"startOffset":2334,"endOffset":2546,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":2551,"endOffset":2880,"count":0}],"isBlockCoverage":false},{"functionName":"rowToString","ranges":[{"startOffset":2885,"endOffset":4770,"count":0}],"isBlockCoverage":false},{"functionName":"renderInline","ranges":[{"startOffset":4848,"endOffset":5613,"count":0}],"isBlockCoverage":false},{"functionName":"rasterize","ranges":[{"startOffset":5618,"endOffset":7065,"count":0}],"isBlockCoverage":false},{"functionName":"negatePadding","ranges":[{"startOffset":7070,"endOffset":7342,"count":0}],"isBlockCoverage":false},{"functionName":"columnWidths","ranges":[{"startOffset":7347,"endOffset":8184,"count":0}],"isBlockCoverage":false},{"functionName":"addBorder","ranges":[{"startOffset":8187,"endOffset":8433,"count":0}],"isBlockCoverage":false},{"functionName":"_minWidth","ranges":[{"startOffset":8512,"endOffset":8727,"count":0}],"isBlockCoverage":false},{"functionName":"getWindowWidth","ranges":[{"startOffset":8728,"endOffset":8952,"count":0}],"isBlockCoverage":false},{"functionName":"alignRight","ranges":[{"startOffset":8953,"endOffset":9156,"count":0}],"isBlockCoverage":false},{"functionName":"alignCenter","ranges":[{"startOffset":9157,"endOffset":9400,"count":0}],"isBlockCoverage":false},{"functionName":"cliui","ranges":[{"startOffset":9412,"endOffset":9653,"count":0}],"isBlockCoverage":false},{"functionName":"ui","ranges":[{"startOffset":9823,"endOffset":9930,"count":0}],"isBlockCoverage":false}]},{"scriptId":"329","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/string-width/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":923,"count":1}],"isBlockCoverage":true},{"functionName":"stringWidth","ranges":[{"startOffset":184,"endOffset":805,"count":0}],"isBlockCoverage":false}]},{"scriptId":"330","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/strip-ansi/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":154,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":73,"endOffset":152,"count":0}],"isBlockCoverage":false}]},{"scriptId":"331","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/ansi-regex/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":350,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":32,"endOffset":348,"count":0}],"isBlockCoverage":false}]},{"scriptId":"332","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/is-fullwidth-code-point/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1756,"count":1}],"isBlockCoverage":true},{"functionName":"isFullwidthCodePoint","ranges":[{"startOffset":70,"endOffset":1667,"count":0}],"isBlockCoverage":false}]},{"scriptId":"333","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/emoji-regex/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":10286,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":32,"endOffset":10284,"count":0}],"isBlockCoverage":false}]},{"scriptId":"334","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/wrap-ansi/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5772,"count":1}],"isBlockCoverage":true},{"functionName":"wrapAnsi","ranges":[{"startOffset":391,"endOffset":473,"count":0}],"isBlockCoverage":false},{"functionName":"wrapAnsiHyperlink","ranges":[{"startOffset":501,"endOffset":586,"count":0}],"isBlockCoverage":false},{"functionName":"wordLengths","ranges":[{"startOffset":716,"endOffset":784,"count":0}],"isBlockCoverage":false},{"functionName":"wrapWord","ranges":[{"startOffset":894,"endOffset":2106,"count":0}],"isBlockCoverage":false},{"functionName":"stringVisibleTrimSpacesRight","ranges":[{"startOffset":2205,"endOffset":2490,"count":0}],"isBlockCoverage":false},{"functionName":"exec","ranges":[{"startOffset":2725,"endOffset":5528,"count":0}],"isBlockCoverage":false},{"functionName":"module.exports","ranges":[{"startOffset":5598,"endOffset":5770,"count":0}],"isBlockCoverage":false}]},{"scriptId":"335","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/wrap-ansi/node_modules/ansi-styles/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4139,"count":1}],"isBlockCoverage":true},{"functionName":"wrapAnsi16","ranges":[{"startOffset":34,"endOffset":129,"count":0}],"isBlockCoverage":false},{"functionName":"wrapAnsi256","ranges":[{"startOffset":152,"endOffset":255,"count":0}],"isBlockCoverage":false},{"functionName":"wrapAnsi16m","ranges":[{"startOffset":278,"endOffset":402,"count":0}],"isBlockCoverage":false},{"functionName":"ansi2ansi","ranges":[{"startOffset":423,"endOffset":429,"count":0}],"isBlockCoverage":false},{"functionName":"rgb2rgb","ranges":[{"startOffset":447,"endOffset":469,"count":0}],"isBlockCoverage":false},{"functionName":"setLazyProperty","ranges":[{"startOffset":496,"endOffset":786,"count":30}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":575,"endOffset":737,"count":0}],"isBlockCoverage":false},{"functionName":"makeDynamicStyles","ranges":[{"startOffset":879,"endOffset":1400,"count":0}],"isBlockCoverage":false},{"functionName":"assembleStyles","ranges":[{"startOffset":1403,"endOffset":4021,"count":5},{"startOffset":2869,"endOffset":3201,"count":15},{"startOffset":2929,"endOffset":3108,"count":220}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3401,"endOffset":3464,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3509,"endOffset":3574,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3619,"endOffset":3678,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3722,"endOffset":3784,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3831,"endOffset":3895,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3942,"endOffset":4000,"count":0}],"isBlockCoverage":false}]},{"scriptId":"336","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/escalade/sync/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":416,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":113,"endOffset":415,"count":2},{"startOffset":235,"endOffset":261,"count":0},{"startOffset":277,"endOffset":413,"count":4},{"startOffset":331,"endOffset":404,"count":2},{"startOffset":404,"endOffset":410,"count":0}],"isBlockCoverage":true}]},{"scriptId":"337","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/get-caller-file/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1108,"count":1}],"isBlockCoverage":true},{"functionName":"getCallerFile","ranges":[{"startOffset":233,"endOffset":1073,"count":0}],"isBlockCoverage":false}]},{"scriptId":"338","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/require-directory/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2867,"count":1}],"isBlockCoverage":true},{"functionName":"rename","ranges":[{"startOffset":238,"endOffset":280,"count":0}],"isBlockCoverage":false},{"functionName":"visit","ranges":[{"startOffset":293,"endOffset":333,"count":0}],"isBlockCoverage":false},{"functionName":"checkFileInclusion","ranges":[{"startOffset":340,"endOffset":1270,"count":0}],"isBlockCoverage":false},{"functionName":"requireDirectory","ranges":[{"startOffset":1272,"endOffset":2788,"count":0}],"isBlockCoverage":false}]},{"scriptId":"339","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/commands.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":233,"count":1}],"isBlockCoverage":true}]},{"scriptId":"340","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/init.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":968,"count":1}],"isBlockCoverage":true},{"functionName":"exports.builder","ranges":[{"startOffset":275,"endOffset":357,"count":0}],"isBlockCoverage":false},{"functionName":"exports.handler","ranges":[{"startOffset":378,"endOffset":966,"count":0}],"isBlockCoverage":false}]},{"scriptId":"341","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/cli/run.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11238,"count":1}],"isBlockCoverage":true},{"functionName":"exports.builder","ranges":[{"startOffset":1006,"endOffset":10984,"count":1}],"isBlockCoverage":true},{"functionName":"coerce","ranges":[{"startOffset":3710,"endOffset":3742,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4673,"endOffset":4705,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4859,"endOffset":4890,"count":6}],"isBlockCoverage":true},{"functionName":"coerce","ranges":[{"startOffset":5946,"endOffset":6435,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8092,"endOffset":10231,"count":1},{"startOffset":8416,"endOffset":8455,"count":0},{"startOffset":8457,"endOffset":8650,"count":0},{"startOffset":8677,"endOffset":9729,"count":0},{"startOffset":9757,"endOffset":9979,"count":0},{"startOffset":10002,"endOffset":10205,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8203,"endOffset":8328,"count":2},{"startOffset":8235,"endOffset":8320,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10249,"endOffset":10859,"count":1},{"startOffset":10674,"endOffset":10853,"count":0}],"isBlockCoverage":true},{"functionName":"exports.handler","ranges":[{"startOffset":11005,"endOffset":11236,"count":1},{"startOffset":11144,"endOffset":11234,"count":0}],"isBlockCoverage":true}]},{"scriptId":"342","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/lib/interfaces/common.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4928,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":648,"endOffset":4926,"count":11}],"isBlockCoverage":true},{"functionName":"shouldBeTested","ranges":[{"startOffset":826,"endOffset":1025,"count":0}],"isBlockCoverage":false},{"functionName":"runWithSuite","ranges":[{"startOffset":1293,"endOffset":1389,"count":0}],"isBlockCoverage":false},{"functionName":"before","ranges":[{"startOffset":1520,"endOffset":1591,"count":50}],"isBlockCoverage":true},{"functionName":"after","ranges":[{"startOffset":1720,"endOffset":1790,"count":2}],"isBlockCoverage":true},{"functionName":"beforeEach","ranges":[{"startOffset":1926,"endOffset":1998,"count":3}],"isBlockCoverage":true},{"functionName":"afterEach","ranges":[{"startOffset":2132,"endOffset":2203,"count":1}],"isBlockCoverage":true},{"functionName":"only","ranges":[{"startOffset":2416,"endOffset":2613,"count":0}],"isBlockCoverage":false},{"functionName":"skip","ranges":[{"startOffset":2815,"endOffset":2907,"count":0}],"isBlockCoverage":false},{"functionName":"create","ranges":[{"startOffset":3360,"endOffset":4394,"count":73},{"startOffset":3576,"endOffset":3615,"count":0},{"startOffset":3653,"endOffset":3693,"count":0},{"startOffset":3694,"endOffset":3728,"count":0},{"startOffset":3739,"endOffset":3816,"count":0},{"startOffset":3928,"endOffset":4363,"count":0}],"isBlockCoverage":true},{"functionName":"only","ranges":[{"startOffset":4571,"endOffset":4755,"count":0}],"isBlockCoverage":false},{"functionName":"skip","ranges":[{"startOffset":4858,"endOffset":4913,"count":0}],"isBlockCoverage":false}]},{"scriptId":"343","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/browser-player-input-reader.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11357,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":98,"endOffset":3554,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":368,"endOffset":434,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":451,"endOffset":728,"count":3},{"startOffset":506,"endOffset":532,"count":0},{"startOffset":573,"endOffset":717,"count":32}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":639,"endOffset":652,"count":3}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":741,"endOffset":929,"count":3},{"startOffset":811,"endOffset":814,"count":0},{"startOffset":860,"endOffset":916,"count":1},{"startOffset":916,"endOffset":923,"count":2}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1260,"endOffset":1298,"count":1}],"isBlockCoverage":true},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":1298,"endOffset":1308,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1439,"endOffset":1547,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1607,"endOffset":1663,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1730,"endOffset":3550,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1763,"endOffset":1923,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1949,"endOffset":3548,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2018,"endOffset":2816,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2082,"endOffset":2814,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2873,"endOffset":3546,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2937,"endOffset":3544,"count":1}],"isBlockCoverage":true}]},{"scriptId":"344","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/chai/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":415757,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":85,"endOffset":111194,"count":1},{"startOffset":14871,"endOffset":14883,"count":0},{"startOffset":18226,"endOffset":18232,"count":0},{"startOffset":21466,"endOffset":21483,"count":0},{"startOffset":27317,"endOffset":27325,"count":0},{"startOffset":110826,"endOffset":110851,"count":15},{"startOffset":111102,"endOffset":111191,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":289,"endOffset":355,"count":1353}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":369,"endOffset":459,"count":1},{"startOffset":404,"endOffset":458,"count":9}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":476,"endOffset":753,"count":1},{"startOffset":531,"endOffset":557,"count":0},{"startOffset":598,"endOffset":742,"count":9}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":664,"endOffset":677,"count":267}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":771,"endOffset":832,"count":1}],"isBlockCoverage":true},{"functionName":"Assertion","ranges":[{"startOffset":886,"endOffset":899,"count":0}],"isBlockCoverage":false},{"functionName":"AssertionError","ranges":[{"startOffset":915,"endOffset":933,"count":0}],"isBlockCoverage":false},{"functionName":"Should","ranges":[{"startOffset":941,"endOffset":951,"count":0}],"isBlockCoverage":false},{"functionName":"assert","ranges":[{"startOffset":959,"endOffset":969,"count":0}],"isBlockCoverage":false},{"functionName":"config","ranges":[{"startOffset":977,"endOffset":987,"count":0}],"isBlockCoverage":false},{"functionName":"expect","ranges":[{"startOffset":995,"endOffset":1005,"count":265}],"isBlockCoverage":true},{"functionName":"should","ranges":[{"startOffset":1013,"endOffset":1023,"count":0}],"isBlockCoverage":false},{"functionName":"use","ranges":[{"startOffset":1028,"endOffset":1035,"count":2}],"isBlockCoverage":true},{"functionName":"util","ranges":[{"startOffset":1041,"endOffset":1058,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1167,"endOffset":1285,"count":1004},{"startOffset":1194,"endOffset":1270,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1324,"endOffset":1391,"count":1548}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1423,"endOffset":1514,"count":3},{"startOffset":1458,"endOffset":1513,"count":38}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1552,"endOffset":1628,"count":1004},{"startOffset":1617,"endOffset":1621,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1718,"endOffset":1740,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1785,"endOffset":1803,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1839,"endOffset":1852,"count":13}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1885,"endOffset":1900,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1934,"endOffset":1957,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1996,"endOffset":2016,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2048,"endOffset":2068,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2090,"endOffset":2100,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2130,"endOffset":2145,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2173,"endOffset":2181,"count":7}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2207,"endOffset":2220,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2252,"endOffset":2267,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2297,"endOffset":2308,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2339,"endOffset":2354,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2404,"endOffset":2434,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2504,"endOffset":2539,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2594,"endOffset":2609,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2644,"endOffset":2659,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2690,"endOffset":2702,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2727,"endOffset":2737,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2764,"endOffset":2777,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2813,"endOffset":2831,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2866,"endOffset":2879,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2910,"endOffset":2924,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2971,"endOffset":2999,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3051,"endOffset":3070,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3115,"endOffset":3136,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3173,"endOffset":3184,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3208,"endOffset":3216,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3246,"endOffset":3263,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3293,"endOffset":3301,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3399,"endOffset":3424,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3476,"endOffset":3498,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3546,"endOffset":3567,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3615,"endOffset":3637,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3678,"endOffset":3692,"count":0}],"isBlockCoverage":false},{"functionName":"isErrorInstance","ranges":[{"startOffset":3709,"endOffset":3823,"count":0}],"isBlockCoverage":false},{"functionName":"isRegExp","ranges":[{"startOffset":3908,"endOffset":3994,"count":4}],"isBlockCoverage":true},{"functionName":"compatibleInstance","ranges":[{"startOffset":4051,"endOffset":4151,"count":0}],"isBlockCoverage":false},{"functionName":"compatibleConstructor","ranges":[{"startOffset":4248,"endOffset":4590,"count":0}],"isBlockCoverage":false},{"functionName":"compatibleMessage","ranges":[{"startOffset":4699,"endOffset":4981,"count":4},{"startOffset":4792,"endOffset":4799,"count":0},{"startOffset":4839,"endOffset":4881,"count":0},{"startOffset":4968,"endOffset":4980,"count":0}],"isBlockCoverage":true},{"functionName":"getConstructorName","ranges":[{"startOffset":5074,"endOffset":5434,"count":0}],"isBlockCoverage":false},{"functionName":"getMessage","ranges":[{"startOffset":5531,"endOffset":5690,"count":0}],"isBlockCoverage":false},{"functionName":"flag","ranges":[{"startOffset":5755,"endOffset":5907,"count":8056},{"startOffset":5805,"endOffset":5840,"count":0},{"startOffset":5865,"endOffset":5883,"count":5950},{"startOffset":5883,"endOffset":5906,"count":2106}],"isBlockCoverage":true},{"functionName":"test","ranges":[{"startOffset":5948,"endOffset":6040,"count":298},{"startOffset":6028,"endOffset":6034,"count":23},{"startOffset":6034,"endOffset":6039,"count":275}],"isBlockCoverage":true},{"functionName":"type","ranges":[{"startOffset":6081,"endOffset":6337,"count":53},{"startOffset":6128,"endOffset":6147,"count":0},{"startOffset":6161,"endOffset":6175,"count":0},{"startOffset":6246,"endOffset":6264,"count":0}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":6482,"endOffset":6520,"count":1}],"isBlockCoverage":true},{"functionName":"_AssertionError2","ranges":[{"startOffset":6520,"endOffset":6783,"count":0}],"isBlockCoverage":false},{"functionName":"get name","ranges":[{"startOffset":6783,"endOffset":6817,"count":0}],"isBlockCoverage":false},{"functionName":"get ok","ranges":[{"startOffset":6817,"endOffset":6839,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":6839,"endOffset":6952,"count":0}],"isBlockCoverage":false},{"functionName":"expectTypes","ranges":[{"startOffset":7031,"endOffset":7628,"count":0}],"isBlockCoverage":false},{"functionName":"getActual","ranges":[{"startOffset":7697,"endOffset":7764,"count":0}],"isBlockCoverage":false},{"functionName":"colorise","ranges":[{"startOffset":8521,"endOffset":8716,"count":0}],"isBlockCoverage":false},{"functionName":"normaliseOptions","ranges":[{"startOffset":8773,"endOffset":9325,"count":91},{"startOffset":9284,"endOffset":9310,"count":0}],"isBlockCoverage":true},{"functionName":"isHighSurrogate","ranges":[{"startOffset":9414,"endOffset":9483,"count":0}],"isBlockCoverage":false},{"functionName":"truncate","ranges":[{"startOffset":9568,"endOffset":9938,"count":71},{"startOffset":9720,"endOffset":9745,"count":0},{"startOffset":9746,"endOffset":9759,"count":0},{"startOffset":9781,"endOffset":9806,"count":0},{"startOffset":9807,"endOffset":9924,"count":0}],"isBlockCoverage":true},{"functionName":"inspectList","ranges":[{"startOffset":9995,"endOffset":11110,"count":0}],"isBlockCoverage":false},{"functionName":"quoteComplexKey","ranges":[{"startOffset":11179,"endOffset":11353,"count":0}],"isBlockCoverage":false},{"functionName":"inspectProperty","ranges":[{"startOffset":11438,"endOffset":11717,"count":0}],"isBlockCoverage":false},{"functionName":"inspectArray","ranges":[{"startOffset":11802,"endOffset":12291,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12389,"endOffset":12561,"count":0}],"isBlockCoverage":false},{"functionName":"inspectTypedArray","ranges":[{"startOffset":12578,"endOffset":13347,"count":0}],"isBlockCoverage":false},{"functionName":"inspectDate","ranges":[{"startOffset":13440,"endOffset":13739,"count":0}],"isBlockCoverage":false},{"functionName":"inspectFunction","ranges":[{"startOffset":13808,"endOffset":14080,"count":20},{"startOffset":13988,"endOffset":14079,"count":0}],"isBlockCoverage":true},{"functionName":"inspectMapEntry","ranges":[{"startOffset":14165,"endOffset":14357,"count":0}],"isBlockCoverage":false},{"functionName":"mapToEntries","ranges":[{"startOffset":14442,"endOffset":14555,"count":0}],"isBlockCoverage":false},{"functionName":"inspectMap","ranges":[{"startOffset":14628,"endOffset":14784,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":14874,"endOffset":14882,"count":0}],"isBlockCoverage":true},{"functionName":"inspectNumber","ranges":[{"startOffset":14884,"endOffset":15267,"count":0}],"isBlockCoverage":false},{"functionName":"inspectBigInt","ranges":[{"startOffset":15344,"endOffset":15507,"count":0}],"isBlockCoverage":false},{"functionName":"inspectRegExp","ranges":[{"startOffset":15584,"endOffset":15822,"count":0}],"isBlockCoverage":false},{"functionName":"arrayFromSet","ranges":[{"startOffset":15899,"endOffset":15999,"count":0}],"isBlockCoverage":false},{"functionName":"inspectSet","ranges":[{"startOffset":16072,"endOffset":16215,"count":0}],"isBlockCoverage":false},{"functionName":"escape","ranges":[{"startOffset":16594,"endOffset":16719,"count":0}],"isBlockCoverage":false},{"functionName":"inspectString","ranges":[{"startOffset":16768,"endOffset":16966,"count":71},{"startOffset":16841,"endOffset":16890,"count":0}],"isBlockCoverage":true},{"functionName":"inspectSymbol","ranges":[{"startOffset":17043,"endOffset":17201,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":17306,"endOffset":17327,"count":0}],"isBlockCoverage":false},{"functionName":"inspectObject","ranges":[{"startOffset":17383,"endOffset":18067,"count":0}],"isBlockCoverage":false},{"functionName":"inspectClass","ranges":[{"startOffset":18233,"endOffset":18507,"count":0}],"isBlockCoverage":false},{"functionName":"inspectArguments","ranges":[{"startOffset":18580,"endOffset":18730,"count":0}],"isBlockCoverage":false},{"functionName":"inspectObject2","ranges":[{"startOffset":18946,"endOffset":19613,"count":0}],"isBlockCoverage":false},{"functionName":"inspectAttribute","ranges":[{"startOffset":19693,"endOffset":19911,"count":0}],"isBlockCoverage":false},{"functionName":"inspectNodeCollection","ranges":[{"startOffset":20000,"endOffset":20107,"count":0}],"isBlockCoverage":false},{"functionName":"inspectNode","ranges":[{"startOffset":20216,"endOffset":20408,"count":0}],"isBlockCoverage":false},{"functionName":"inspectHTML","ranges":[{"startOffset":20477,"endOffset":21258,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21628,"endOffset":21685,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21712,"endOffset":21759,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21784,"endOffset":21841,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":21869,"endOffset":21926,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22283,"endOffset":22344,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22372,"endOffset":22433,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22763,"endOffset":22769,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22800,"endOffset":22806,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22839,"endOffset":22845,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":22977,"endOffset":23536,"count":0}],"isBlockCoverage":false},{"functionName":"inspect","ranges":[{"startOffset":23593,"endOffset":24509,"count":91},{"startOffset":23721,"endOffset":23728,"count":0},{"startOffset":23762,"endOffset":23802,"count":0},{"startOffset":23870,"endOffset":23893,"count":0},{"startOffset":23894,"endOffset":24088,"count":0},{"startOffset":24116,"endOffset":24130,"count":0},{"startOffset":24131,"endOffset":24239,"count":0},{"startOffset":24240,"endOffset":24508,"count":0}],"isBlockCoverage":true},{"functionName":"inspect2","ranges":[{"startOffset":24712,"endOffset":24928,"count":91},{"startOffset":24813,"endOffset":24819,"count":0},{"startOffset":24889,"endOffset":24898,"count":0}],"isBlockCoverage":true},{"functionName":"objDisplay","ranges":[{"startOffset":24984,"endOffset":25507,"count":20},{"startOffset":25139,"endOffset":25490,"count":0}],"isBlockCoverage":true},{"functionName":"getMessage2","ranges":[{"startOffset":25572,"endOffset":26045,"count":0}],"isBlockCoverage":false},{"functionName":"transferFlags","ranges":[{"startOffset":26113,"endOffset":26485,"count":754},{"startOffset":26192,"endOffset":26233,"count":0},{"startOffset":26253,"endOffset":26289,"count":0},{"startOffset":26320,"endOffset":26331,"count":0},{"startOffset":26360,"endOffset":26484,"count":3854},{"startOffset":26374,"endOffset":26446,"count":0}],"isBlockCoverage":true},{"functionName":"type2","ranges":[{"startOffset":26562,"endOffset":26853,"count":8},{"startOffset":26610,"endOffset":26629,"count":0},{"startOffset":26643,"endOffset":26657,"count":0},{"startOffset":26728,"endOffset":26746,"count":0}],"isBlockCoverage":true},{"functionName":"FakeMap","ranges":[{"startOffset":26897,"endOffset":26969,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":27060,"endOffset":27100,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":27134,"endOffset":27251,"count":0}],"isBlockCoverage":false},{"functionName":"memoizeCompare","ranges":[{"startOffset":27326,"endOffset":27650,"count":8},{"startOffset":27471,"endOffset":27484,"count":0},{"startOffset":27547,"endOffset":27638,"count":0}],"isBlockCoverage":true},{"functionName":"memoizeSet","ranges":[{"startOffset":27731,"endOffset":28110,"count":8},{"startOffset":27879,"endOffset":27887,"count":0},{"startOffset":27950,"endOffset":28109,"count":4}],"isBlockCoverage":true},{"functionName":"deepEqual","ranges":[{"startOffset":28206,"endOffset":28542,"count":20},{"startOffset":28277,"endOffset":28297,"count":8},{"startOffset":28298,"endOffset":28367,"count":0},{"startOffset":28453,"endOffset":28474,"count":16},{"startOffset":28474,"endOffset":28541,"count":4}],"isBlockCoverage":true},{"functionName":"simpleEqual","ranges":[{"startOffset":28603,"endOffset":28940,"count":20},{"startOffset":28696,"endOffset":28764,"count":16},{"startOffset":28723,"endOffset":28763,"count":0},{"startOffset":28764,"endOffset":28800,"count":4},{"startOffset":28800,"endOffset":28837,"count":0},{"startOffset":28838,"endOffset":28851,"count":0},{"startOffset":28851,"endOffset":28913,"count":4},{"startOffset":28914,"endOffset":28928,"count":0},{"startOffset":28928,"endOffset":28939,"count":4}],"isBlockCoverage":true},{"functionName":"extensiveDeepEqual","ranges":[{"startOffset":29009,"endOffset":30252,"count":4},{"startOffset":29138,"endOffset":29144,"count":0},{"startOffset":29335,"endOffset":29361,"count":0},{"startOffset":29478,"endOffset":29505,"count":0},{"startOffset":29519,"endOffset":29850,"count":0},{"startOffset":29932,"endOffset":30013,"count":0}],"isBlockCoverage":true},{"functionName":"extensiveDeepEqualByType","ranges":[{"startOffset":30349,"endOffset":32101,"count":4},{"startOffset":30459,"endOffset":32031,"count":0}],"isBlockCoverage":true},{"functionName":"regexpEqual","ranges":[{"startOffset":32222,"endOffset":32341,"count":0}],"isBlockCoverage":false},{"functionName":"entriesEqual","ranges":[{"startOffset":32410,"endOffset":33012,"count":0}],"isBlockCoverage":false},{"functionName":"iterableEqual","ranges":[{"startOffset":33085,"endOffset":33400,"count":4},{"startOffset":33220,"endOffset":33234,"count":0},{"startOffset":33248,"endOffset":33261,"count":0},{"startOffset":33295,"endOffset":33388,"count":8},{"startOffset":33373,"endOffset":33387,"count":0}],"isBlockCoverage":true},{"functionName":"generatorEqual","ranges":[{"startOffset":33477,"endOffset":33648,"count":0}],"isBlockCoverage":false},{"functionName":"hasIteratorFunction","ranges":[{"startOffset":33729,"endOffset":33910,"count":0}],"isBlockCoverage":false},{"functionName":"getIteratorEntries","ranges":[{"startOffset":34011,"endOffset":34177,"count":0}],"isBlockCoverage":false},{"functionName":"getGeneratorEntries","ranges":[{"startOffset":34274,"endOffset":34519,"count":0}],"isBlockCoverage":false},{"functionName":"getEnumerableKeys","ranges":[{"startOffset":34620,"endOffset":34717,"count":8},{"startOffset":34689,"endOffset":34705,"count":16}],"isBlockCoverage":true},{"functionName":"getEnumerableSymbols","ranges":[{"startOffset":34810,"endOffset":35050,"count":8},{"startOffset":34943,"endOffset":35038,"count":0}],"isBlockCoverage":true},{"functionName":"keysEqual","ranges":[{"startOffset":35155,"endOffset":35406,"count":4},{"startOffset":35258,"endOffset":35271,"count":0},{"startOffset":35297,"endOffset":35394,"count":8},{"startOffset":35379,"endOffset":35393,"count":0}],"isBlockCoverage":true},{"functionName":"objectEqual","ranges":[{"startOffset":35467,"endOffset":36539,"count":4},{"startOffset":36016,"endOffset":36030,"count":0},{"startOffset":36102,"endOffset":36291,"count":0},{"startOffset":36292,"endOffset":36512,"count":0},{"startOffset":36513,"endOffset":36538,"count":0}],"isBlockCoverage":true},{"functionName":"isPrimitive","ranges":[{"startOffset":36608,"endOffset":36681,"count":40}],"isBlockCoverage":true},{"functionName":"mapSymbols","ranges":[{"startOffset":36750,"endOffset":36924,"count":8}],"isBlockCoverage":true},{"functionName":"mapSymbol","ranges":[{"startOffset":36805,"endOffset":36896,"count":16},{"startOffset":36858,"endOffset":36883,"count":0}],"isBlockCoverage":true},{"functionName":"hasProperty","ranges":[{"startOffset":36989,"endOffset":37101,"count":5},{"startOffset":37060,"endOffset":37074,"count":0}],"isBlockCoverage":true},{"functionName":"parsePath","ranges":[{"startOffset":37170,"endOffset":37561,"count":0}],"isBlockCoverage":false},{"functionName":"internalGetPathValue","ranges":[{"startOffset":37622,"endOffset":38009,"count":0}],"isBlockCoverage":false},{"functionName":"getPathInfo","ranges":[{"startOffset":38114,"endOffset":38416,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":38518,"endOffset":38551,"count":1}],"isBlockCoverage":true},{"functionName":"_Assertion2","ranges":[{"startOffset":38551,"endOffset":38808,"count":1004},{"startOffset":38640,"endOffset":38653,"count":971}],"isBlockCoverage":true},{"functionName":"get includeStack","ranges":[{"startOffset":38815,"endOffset":38953,"count":0}],"isBlockCoverage":false},{"functionName":"set includeStack","ranges":[{"startOffset":38960,"endOffset":39102,"count":0}],"isBlockCoverage":false},{"functionName":"get showDiff","ranges":[{"startOffset":39109,"endOffset":39231,"count":0}],"isBlockCoverage":false},{"functionName":"set showDiff","ranges":[{"startOffset":39238,"endOffset":39364,"count":0}],"isBlockCoverage":false},{"functionName":"addProperty","ranges":[{"startOffset":39371,"endOffset":39428,"count":43}],"isBlockCoverage":true},{"functionName":"addMethod","ranges":[{"startOffset":39435,"endOffset":39488,"count":49}],"isBlockCoverage":true},{"functionName":"addChainableMethod","ranges":[{"startOffset":39495,"endOffset":39600,"count":8}],"isBlockCoverage":true},{"functionName":"overwriteProperty","ranges":[{"startOffset":39607,"endOffset":39676,"count":0}],"isBlockCoverage":false},{"functionName":"overwriteMethod","ranges":[{"startOffset":39683,"endOffset":39748,"count":0}],"isBlockCoverage":false},{"functionName":"overwriteChainableMethod","ranges":[{"startOffset":39755,"endOffset":39872,"count":0}],"isBlockCoverage":false},{"functionName":"assert","ranges":[{"startOffset":39872,"endOffset":40446,"count":298},{"startOffset":40011,"endOffset":40029,"count":81},{"startOffset":40030,"endOffset":40045,"count":81},{"startOffset":40071,"endOffset":40086,"count":0},{"startOffset":40093,"endOffset":40445,"count":0}],"isBlockCoverage":true},{"functionName":"get _obj","ranges":[{"startOffset":40446,"endOffset":40484,"count":188}],"isBlockCoverage":true},{"functionName":"set _obj","ranges":[{"startOffset":40484,"endOffset":40522,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":40659,"endOffset":40694,"count":1}],"isBlockCoverage":true},{"functionName":"_PluginEvent2","ranges":[{"startOffset":40694,"endOffset":40768,"count":119}],"isBlockCoverage":true},{"functionName":"isProxyEnabled","ranges":[{"startOffset":40835,"endOffset":40942,"count":1564}],"isBlockCoverage":true},{"functionName":"addProperty","ranges":[{"startOffset":41023,"endOffset":41528,"count":49},{"startOffset":41083,"endOffset":41096,"count":17},{"startOffset":41096,"endOffset":41103,"count":32}],"isBlockCoverage":true},{"functionName":"getter","ranges":[{"startOffset":41084,"endOffset":41096,"count":376}],"isBlockCoverage":true},{"functionName":"propertyGetter","ranges":[{"startOffset":41155,"endOffset":41406,"count":450},{"startOffset":41201,"endOffset":41225,"count":0},{"startOffset":41226,"endOffset":41260,"count":0},{"startOffset":41308,"endOffset":41322,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":41646,"endOffset":41658,"count":0}],"isBlockCoverage":false},{"functionName":"addLengthGuard","ranges":[{"startOffset":41669,"endOffset":42160,"count":110},{"startOffset":41753,"endOffset":41763,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":41810,"endOffset":42140,"count":0}],"isBlockCoverage":false},{"functionName":"getProperties","ranges":[{"startOffset":42241,"endOffset":42644,"count":0}],"isBlockCoverage":false},{"functionName":"proxify","ranges":[{"startOffset":42774,"endOffset":43826,"count":1114},{"startOffset":42840,"endOffset":42851,"count":0}],"isBlockCoverage":true},{"functionName":"proxyGetter","ranges":[{"startOffset":42892,"endOffset":43793,"count":7044},{"startOffset":43040,"endOffset":43663,"count":0},{"startOffset":43697,"endOffset":43723,"count":706},{"startOffset":43724,"endOffset":43757,"count":631}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":43281,"endOffset":43502,"count":0}],"isBlockCoverage":false},{"functionName":"stringDistanceCapped","ranges":[{"startOffset":43879,"endOffset":44392,"count":0}],"isBlockCoverage":false},{"functionName":"addMethod","ranges":[{"startOffset":44497,"endOffset":44946,"count":62}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":44559,"endOffset":44786,"count":208},{"startOffset":44596,"endOffset":44629,"count":199},{"startOffset":44688,"endOffset":44702,"count":0}],"isBlockCoverage":true},{"functionName":"overwriteProperty","ranges":[{"startOffset":45007,"endOffset":45707,"count":0}],"isBlockCoverage":false},{"functionName":"overwriteMethod","ranges":[{"startOffset":45800,"endOffset":46514,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":46680,"endOffset":46692,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":46762,"endOffset":46906,"count":5},{"startOffset":46865,"endOffset":46877,"count":0}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":47069,"endOffset":47122,"count":1}],"isBlockCoverage":true},{"functionName":"_PluginAddChainableMethodEvent2","ranges":[{"startOffset":47122,"endOffset":47226,"count":8}],"isBlockCoverage":true},{"functionName":"addChainableMethod","ranges":[{"startOffset":47365,"endOffset":48828,"count":8},{"startOffset":47467,"endOffset":47526,"count":2},{"startOffset":47592,"endOffset":47610,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":47493,"endOffset":47505,"count":38}],"isBlockCoverage":true},{"functionName":"chainableMethodGetter","ranges":[{"startOffset":47699,"endOffset":48650,"count":48},{"startOffset":48296,"endOffset":48568,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":47813,"endOffset":48068,"count":48},{"startOffset":47850,"endOffset":47892,"count":23},{"startOffset":47969,"endOffset":47984,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":48373,"endOffset":48566,"count":0}],"isBlockCoverage":false},{"functionName":"overwriteChainableMethod","ranges":[{"startOffset":48925,"endOffset":49799,"count":0}],"isBlockCoverage":false},{"functionName":"compareByInspect","ranges":[{"startOffset":49920,"endOffset":49987,"count":20},{"startOffset":49981,"endOffset":49984,"count":0}],"isBlockCoverage":true},{"functionName":"getOwnEnumerablePropertySymbols","ranges":[{"startOffset":50076,"endOffset":50306,"count":1},{"startOffset":50174,"endOffset":50183,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":50231,"endOffset":50304,"count":0}],"isBlockCoverage":false},{"functionName":"getOwnEnumerableProperties","ranges":[{"startOffset":50455,"endOffset":50565,"count":1}],"isBlockCoverage":true},{"functionName":"isObjectType","ranges":[{"startOffset":50718,"endOffset":50860,"count":0}],"isBlockCoverage":false},{"functionName":"getOperator","ranges":[{"startOffset":50933,"endOffset":51382,"count":0}],"isBlockCoverage":false},{"functionName":"getName","ranges":[{"startOffset":51451,"endOffset":51487,"count":0}],"isBlockCoverage":false},{"functionName":"isRegExp2","ranges":[{"startOffset":51540,"endOffset":51627,"count":29}],"isBlockCoverage":true},{"functionName":"isNumeric","ranges":[{"startOffset":51687,"endOffset":51757,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":51966,"endOffset":52011,"count":17}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":52041,"endOffset":52078,"count":23}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":52109,"endOffset":52144,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":52177,"endOffset":52214,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":52244,"endOffset":52278,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":52312,"endOffset":52350,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":52380,"endOffset":52438,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":52468,"endOffset":52526,"count":1}],"isBlockCoverage":true},{"functionName":"an","ranges":[{"startOffset":52803,"endOffset":53335,"count":38},{"startOffset":52833,"endOffset":52859,"count":0},{"startOffset":52969,"endOffset":52975,"count":11},{"startOffset":52975,"endOffset":52980,"count":27},{"startOffset":53069,"endOffset":53211,"count":25},{"startOffset":53211,"endOffset":53334,"count":13}],"isBlockCoverage":true},{"functionName":"SameValueZero","ranges":[{"startOffset":53443,"endOffset":53506,"count":0}],"isBlockCoverage":false},{"functionName":"includeChainingBehavior","ranges":[{"startOffset":53583,"endOffset":53646,"count":5}],"isBlockCoverage":true},{"functionName":"include","ranges":[{"startOffset":53763,"endOffset":55620,"count":5},{"startOffset":53796,"endOffset":53822,"count":0},{"startOffset":54008,"endOffset":54016,"count":0},{"startOffset":54032,"endOffset":54050,"count":0},{"startOffset":54080,"endOffset":54093,"count":0},{"startOffset":54182,"endOffset":55475,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":54346,"endOffset":54396,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":54437,"endOffset":54487,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":54563,"endOffset":54601,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":55017,"endOffset":55395,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":55990,"endOffset":56098,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":56129,"endOffset":56274,"count":21},{"startOffset":56261,"endOffset":56267,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":56308,"endOffset":56511,"count":3},{"startOffset":56498,"endOffset":56504,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":56546,"endOffset":57090,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":57122,"endOffset":57268,"count":18},{"startOffset":57255,"endOffset":57260,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":57299,"endOffset":57415,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":57451,"endOffset":57579,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":57609,"endOffset":57724,"count":0}],"isBlockCoverage":false},{"functionName":"assertExist","ranges":[{"startOffset":57726,"endOffset":57876,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":58062,"endOffset":58831,"count":0}],"isBlockCoverage":false},{"functionName":"checkArguments","ranges":[{"startOffset":58833,"endOffset":59026,"count":0}],"isBlockCoverage":false},{"functionName":"assertEqual","ranges":[{"startOffset":59207,"endOffset":59562,"count":155},{"startOffset":59244,"endOffset":59270,"count":0},{"startOffset":59321,"endOffset":59440,"count":4},{"startOffset":59440,"endOffset":59561,"count":151}],"isBlockCoverage":true},{"functionName":"assertEql","ranges":[{"startOffset":59752,"endOffset":59989,"count":4},{"startOffset":59787,"endOffset":59813,"count":0}],"isBlockCoverage":true},{"functionName":"assertAbove","ranges":[{"startOffset":60125,"endOffset":61407,"count":0}],"isBlockCoverage":false},{"functionName":"assertLeast","ranges":[{"startOffset":61602,"endOffset":62931,"count":0}],"isBlockCoverage":false},{"functionName":"assertBelow","ranges":[{"startOffset":63134,"endOffset":64462,"count":0}],"isBlockCoverage":false},{"functionName":"assertMost","ranges":[{"startOffset":64654,"endOffset":65978,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":66199,"endOffset":67755,"count":0}],"isBlockCoverage":false},{"functionName":"assertInstanceOf","ranges":[{"startOffset":67757,"endOffset":68400,"count":0}],"isBlockCoverage":false},{"functionName":"assertProperty","ranges":[{"startOffset":68591,"endOffset":70351,"count":5},{"startOffset":68636,"endOffset":68662,"count":0},{"startOffset":68835,"endOffset":68848,"count":0},{"startOffset":68864,"endOffset":69005,"count":0},{"startOffset":69032,"endOffset":69074,"count":0},{"startOffset":69075,"endOffset":69185,"count":0},{"startOffset":69197,"endOffset":69204,"count":0},{"startOffset":69205,"endOffset":69303,"count":0},{"startOffset":69331,"endOffset":69416,"count":0},{"startOffset":69491,"endOffset":69513,"count":0},{"startOffset":69533,"endOffset":69548,"count":0},{"startOffset":69571,"endOffset":69589,"count":0},{"startOffset":69643,"endOffset":69663,"count":0},{"startOffset":69672,"endOffset":69691,"count":0},{"startOffset":69703,"endOffset":69725,"count":0},{"startOffset":69775,"endOffset":69835,"count":0},{"startOffset":69852,"endOffset":69881,"count":0},{"startOffset":69931,"endOffset":69953,"count":0},{"startOffset":70115,"endOffset":70324,"count":0}],"isBlockCoverage":true},{"functionName":"isEql","ranges":[{"startOffset":69590,"endOffset":69614,"count":0}],"isBlockCoverage":false},{"functionName":"assertOwnProperty","ranges":[{"startOffset":70479,"endOffset":70585,"count":0}],"isBlockCoverage":false},{"functionName":"assertOwnPropertyDescriptor","ranges":[{"startOffset":70788,"endOffset":71654,"count":0}],"isBlockCoverage":false},{"functionName":"assertLengthChain","ranges":[{"startOffset":71937,"endOffset":71994,"count":5}],"isBlockCoverage":true},{"functionName":"assertLength","ranges":[{"startOffset":72087,"endOffset":72636,"count":5},{"startOffset":72123,"endOffset":72149,"count":0},{"startOffset":72311,"endOffset":72375,"count":0}],"isBlockCoverage":true},{"functionName":"assertMatch","ranges":[{"startOffset":72851,"endOffset":73036,"count":1},{"startOffset":72887,"endOffset":72913,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":73218,"endOffset":73529,"count":0}],"isBlockCoverage":false},{"functionName":"assertKeys","ranges":[{"startOffset":73531,"endOffset":75502,"count":1},{"startOffset":73749,"endOffset":73762,"count":0},{"startOffset":73958,"endOffset":74113,"count":0},{"startOffset":74174,"endOffset":74382,"count":0},{"startOffset":74524,"endOffset":74587,"count":0},{"startOffset":74677,"endOffset":74695,"count":0},{"startOffset":74735,"endOffset":74745,"count":0},{"startOffset":74752,"endOffset":74871,"count":0},{"startOffset":75191,"endOffset":75225,"count":0},{"startOffset":75226,"endOffset":75253,"count":0},{"startOffset":75271,"endOffset":75278,"count":0},{"startOffset":75311,"endOffset":75322,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":74009,"endOffset":74044,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":74447,"endOffset":74506,"count":11},{"startOffset":74489,"endOffset":74493,"count":0}],"isBlockCoverage":true},{"functionName":"isEql","ranges":[{"startOffset":74696,"endOffset":74720,"count":66}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":74770,"endOffset":74869,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":74897,"endOffset":74996,"count":11}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":74938,"endOffset":74994,"count":66}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":75085,"endOffset":75120,"count":11}],"isBlockCoverage":true},{"functionName":"assertThrows","ranges":[{"startOffset":75644,"endOffset":78921,"count":25},{"startOffset":75702,"endOffset":75728,"count":0},{"startOffset":75838,"endOffset":75845,"count":4},{"startOffset":75953,"endOffset":75993,"count":4},{"startOffset":76042,"endOffset":76087,"count":4},{"startOffset":76129,"endOffset":76153,"count":21},{"startOffset":76193,"endOffset":76208,"count":0},{"startOffset":76284,"endOffset":76315,"count":4},{"startOffset":76378,"endOffset":76404,"count":0},{"startOffset":76422,"endOffset":76489,"count":0},{"startOffset":76540,"endOffset":76569,"count":4},{"startOffset":76569,"endOffset":76779,"count":21},{"startOffset":76605,"endOffset":76623,"count":0},{"startOffset":76640,"endOffset":76702,"count":0},{"startOffset":76703,"endOffset":76779,"count":0},{"startOffset":76923,"endOffset":76945,"count":0},{"startOffset":76966,"endOffset":76977,"count":0},{"startOffset":76978,"endOffset":77950,"count":0},{"startOffset":77962,"endOffset":78008,"count":4},{"startOffset":78009,"endOffset":78479,"count":4},{"startOffset":78066,"endOffset":78090,"count":0},{"startOffset":78209,"endOffset":78478,"count":0},{"startOffset":78495,"endOffset":78514,"count":0},{"startOffset":78515,"endOffset":78890,"count":0}],"isBlockCoverage":true},{"functionName":"respondTo","ranges":[{"startOffset":79121,"endOffset":79464,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":79643,"endOffset":79680,"count":0}],"isBlockCoverage":false},{"functionName":"satisfy","ranges":[{"startOffset":79682,"endOffset":79962,"count":10},{"startOffset":79719,"endOffset":79745,"count":0},{"startOffset":79942,"endOffset":79948,"count":0}],"isBlockCoverage":true},{"functionName":"closeTo","ranges":[{"startOffset":80095,"endOffset":80993,"count":1},{"startOffset":80139,"endOffset":80165,"count":0},{"startOffset":80369,"endOffset":80449,"count":0},{"startOffset":80574,"endOffset":80654,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":80725,"endOffset":80736,"count":1},{"startOffset":80731,"endOffset":80734,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":80764,"endOffset":80818,"count":1}],"isBlockCoverage":true},{"functionName":"isSubsetOf","ranges":[{"startOffset":81130,"endOffset":81714,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":81809,"endOffset":82679,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":82714,"endOffset":82919,"count":0}],"isBlockCoverage":false},{"functionName":"oneOf","ranges":[{"startOffset":82921,"endOffset":83759,"count":0}],"isBlockCoverage":false},{"functionName":"assertChanges","ranges":[{"startOffset":83839,"endOffset":84641,"count":0}],"isBlockCoverage":false},{"functionName":"assertIncreases","ranges":[{"startOffset":84807,"endOffset":85671,"count":0}],"isBlockCoverage":false},{"functionName":"assertDecreases","ranges":[{"startOffset":85853,"endOffset":86717,"count":0}],"isBlockCoverage":false},{"functionName":"assertDelta","ranges":[{"startOffset":86899,"endOffset":87424,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":87566,"endOffset":87769,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":87802,"endOffset":87989,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":88022,"endOffset":88209,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":88242,"endOffset":88422,"count":0}],"isBlockCoverage":false},{"functionName":"compareSubset","ranges":[{"startOffset":88424,"endOffset":89280,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":89393,"endOffset":89635,"count":0}],"isBlockCoverage":false},{"functionName":"expect","ranges":[{"startOffset":89637,"endOffset":89700,"count":265}],"isBlockCoverage":true},{"functionName":"expect.fail","ranges":[{"startOffset":89761,"endOffset":89962,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":90025,"endOffset":90035,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":90060,"endOffset":90070,"count":2}],"isBlockCoverage":true},{"functionName":"loadShould","ranges":[{"startOffset":90083,"endOffset":91627,"count":0}],"isBlockCoverage":false},{"functionName":"assert","ranges":[{"startOffset":91736,"endOffset":91879,"count":0}],"isBlockCoverage":false},{"functionName":"assert.fail","ranges":[{"startOffset":91940,"endOffset":92141,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isOk","ranges":[{"startOffset":92154,"endOffset":92218,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotOk","ranges":[{"startOffset":92234,"endOffset":92305,"count":0}],"isBlockCoverage":false},{"functionName":"assert.equal","ranges":[{"startOffset":92319,"endOffset":92519,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notEqual","ranges":[{"startOffset":92536,"endOffset":92739,"count":0}],"isBlockCoverage":false},{"functionName":"assert.strictEqual","ranges":[{"startOffset":92759,"endOffset":92842,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notStrictEqual","ranges":[{"startOffset":92865,"endOffset":92955,"count":0}],"isBlockCoverage":false},{"functionName":"assert.deepEqual.assert.deepStrictEqual","ranges":[{"startOffset":92996,"endOffset":93075,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notDeepEqual","ranges":[{"startOffset":93096,"endOffset":93182,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isAbove","ranges":[{"startOffset":93198,"endOffset":93280,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isAtLeast","ranges":[{"startOffset":93298,"endOffset":93386,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isBelow","ranges":[{"startOffset":93402,"endOffset":93484,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isAtMost","ranges":[{"startOffset":93501,"endOffset":93587,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isTrue","ranges":[{"startOffset":93602,"endOffset":93673,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotTrue","ranges":[{"startOffset":93691,"endOffset":93773,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isFalse","ranges":[{"startOffset":93789,"endOffset":93862,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotFalse","ranges":[{"startOffset":93881,"endOffset":93965,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNull","ranges":[{"startOffset":93980,"endOffset":94055,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotNull","ranges":[{"startOffset":94073,"endOffset":94155,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNaN","ranges":[{"startOffset":94169,"endOffset":94238,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotNaN","ranges":[{"startOffset":94255,"endOffset":94343,"count":0}],"isBlockCoverage":false},{"functionName":"assert.exists","ranges":[{"startOffset":94358,"endOffset":94427,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notExists","ranges":[{"startOffset":94445,"endOffset":94521,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isUndefined","ranges":[{"startOffset":94541,"endOffset":94623,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isDefined","ranges":[{"startOffset":94641,"endOffset":94725,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isCallable","ranges":[{"startOffset":94744,"endOffset":94832,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotCallable","ranges":[{"startOffset":94854,"endOffset":94949,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isObject","ranges":[{"startOffset":94966,"endOffset":95046,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotObject","ranges":[{"startOffset":95066,"endOffset":95153,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isArray","ranges":[{"startOffset":95169,"endOffset":95248,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotArray","ranges":[{"startOffset":95267,"endOffset":95353,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isString","ranges":[{"startOffset":95370,"endOffset":95450,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotString","ranges":[{"startOffset":95470,"endOffset":95557,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNumber","ranges":[{"startOffset":95574,"endOffset":95654,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotNumber","ranges":[{"startOffset":95674,"endOffset":95761,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNumeric","ranges":[{"startOffset":95779,"endOffset":95853,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotNumeric","ranges":[{"startOffset":95874,"endOffset":95955,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isFinite","ranges":[{"startOffset":95972,"endOffset":96047,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isBoolean","ranges":[{"startOffset":96065,"endOffset":96147,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotBoolean","ranges":[{"startOffset":96168,"endOffset":96257,"count":0}],"isBlockCoverage":false},{"functionName":"assert.typeOf","ranges":[{"startOffset":96272,"endOffset":96353,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notTypeOf","ranges":[{"startOffset":96371,"endOffset":96471,"count":0}],"isBlockCoverage":false},{"functionName":"assert.instanceOf","ranges":[{"startOffset":96490,"endOffset":96584,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notInstanceOf","ranges":[{"startOffset":96606,"endOffset":96707,"count":0}],"isBlockCoverage":false},{"functionName":"assert.include","ranges":[{"startOffset":96723,"endOffset":96801,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notInclude","ranges":[{"startOffset":96820,"endOffset":96905,"count":0}],"isBlockCoverage":false},{"functionName":"assert.deepInclude","ranges":[{"startOffset":96925,"endOffset":97012,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notDeepInclude","ranges":[{"startOffset":97035,"endOffset":97129,"count":0}],"isBlockCoverage":false},{"functionName":"assert.nestedInclude","ranges":[{"startOffset":97151,"endOffset":97242,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notNestedInclude","ranges":[{"startOffset":97267,"endOffset":97365,"count":0}],"isBlockCoverage":false},{"functionName":"assert.deepNestedInclude","ranges":[{"startOffset":97391,"endOffset":97491,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notDeepNestedInclude","ranges":[{"startOffset":97520,"endOffset":97627,"count":0}],"isBlockCoverage":false},{"functionName":"assert.ownInclude","ranges":[{"startOffset":97646,"endOffset":97731,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notOwnInclude","ranges":[{"startOffset":97753,"endOffset":97845,"count":0}],"isBlockCoverage":false},{"functionName":"assert.deepOwnInclude","ranges":[{"startOffset":97868,"endOffset":97962,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notDeepOwnInclude","ranges":[{"startOffset":97988,"endOffset":98089,"count":0}],"isBlockCoverage":false},{"functionName":"assert.match","ranges":[{"startOffset":98103,"endOffset":98178,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notMatch","ranges":[{"startOffset":98195,"endOffset":98277,"count":0}],"isBlockCoverage":false},{"functionName":"assert.property","ranges":[{"startOffset":98294,"endOffset":98384,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notProperty","ranges":[{"startOffset":98404,"endOffset":98501,"count":0}],"isBlockCoverage":false},{"functionName":"assert.propertyVal","ranges":[{"startOffset":98521,"endOffset":98622,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notPropertyVal","ranges":[{"startOffset":98645,"endOffset":98753,"count":0}],"isBlockCoverage":false},{"functionName":"assert.deepPropertyVal","ranges":[{"startOffset":98777,"endOffset":98887,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notDeepPropertyVal","ranges":[{"startOffset":98914,"endOffset":99031,"count":0}],"isBlockCoverage":false},{"functionName":"assert.ownProperty","ranges":[{"startOffset":99051,"endOffset":99148,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notOwnProperty","ranges":[{"startOffset":99171,"endOffset":99275,"count":0}],"isBlockCoverage":false},{"functionName":"assert.ownPropertyVal","ranges":[{"startOffset":99298,"endOffset":99410,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notOwnPropertyVal","ranges":[{"startOffset":99436,"endOffset":99555,"count":0}],"isBlockCoverage":false},{"functionName":"assert.deepOwnPropertyVal","ranges":[{"startOffset":99582,"endOffset":99703,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notDeepOwnPropertyVal","ranges":[{"startOffset":99733,"endOffset":99861,"count":0}],"isBlockCoverage":false},{"functionName":"assert.nestedProperty","ranges":[{"startOffset":99884,"endOffset":99987,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notNestedProperty","ranges":[{"startOffset":100013,"endOffset":100123,"count":0}],"isBlockCoverage":false},{"functionName":"assert.nestedPropertyVal","ranges":[{"startOffset":100149,"endOffset":100263,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notNestedPropertyVal","ranges":[{"startOffset":100292,"endOffset":100413,"count":0}],"isBlockCoverage":false},{"functionName":"assert.deepNestedPropertyVal","ranges":[{"startOffset":100443,"endOffset":100566,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notDeepNestedPropertyVal","ranges":[{"startOffset":100599,"endOffset":100729,"count":0}],"isBlockCoverage":false},{"functionName":"assert.lengthOf","ranges":[{"startOffset":100746,"endOffset":100834,"count":0}],"isBlockCoverage":false},{"functionName":"assert.hasAnyKeys","ranges":[{"startOffset":100853,"endOffset":100945,"count":0}],"isBlockCoverage":false},{"functionName":"assert.hasAllKeys","ranges":[{"startOffset":100964,"endOffset":101056,"count":0}],"isBlockCoverage":false},{"functionName":"assert.containsAllKeys","ranges":[{"startOffset":101080,"endOffset":101180,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotHaveAnyKeys","ranges":[{"startOffset":101207,"endOffset":101311,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotHaveAllKeys","ranges":[{"startOffset":101338,"endOffset":101442,"count":0}],"isBlockCoverage":false},{"functionName":"assert.hasAnyDeepKeys","ranges":[{"startOffset":101465,"endOffset":101566,"count":0}],"isBlockCoverage":false},{"functionName":"assert.hasAllDeepKeys","ranges":[{"startOffset":101589,"endOffset":101690,"count":0}],"isBlockCoverage":false},{"functionName":"assert.containsAllDeepKeys","ranges":[{"startOffset":101718,"endOffset":101827,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotHaveAnyDeepKeys","ranges":[{"startOffset":101858,"endOffset":101971,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotHaveAllDeepKeys","ranges":[{"startOffset":102002,"endOffset":102115,"count":0}],"isBlockCoverage":false},{"functionName":"assert.throws","ranges":[{"startOffset":102130,"endOffset":102392,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotThrow","ranges":[{"startOffset":102413,"endOffset":102647,"count":0}],"isBlockCoverage":false},{"functionName":"assert.operator","ranges":[{"startOffset":102664,"endOffset":103287,"count":0}],"isBlockCoverage":false},{"functionName":"assert.closeTo","ranges":[{"startOffset":103303,"endOffset":103399,"count":0}],"isBlockCoverage":false},{"functionName":"assert.approximately","ranges":[{"startOffset":103421,"endOffset":103529,"count":0}],"isBlockCoverage":false},{"functionName":"assert.sameMembers","ranges":[{"startOffset":103549,"endOffset":103648,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notSameMembers","ranges":[{"startOffset":103671,"endOffset":103777,"count":0}],"isBlockCoverage":false},{"functionName":"assert.sameDeepMembers","ranges":[{"startOffset":103801,"endOffset":103909,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notSameDeepMembers","ranges":[{"startOffset":103936,"endOffset":104051,"count":0}],"isBlockCoverage":false},{"functionName":"assert.sameOrderedMembers","ranges":[{"startOffset":104078,"endOffset":104192,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notSameOrderedMembers","ranges":[{"startOffset":104222,"endOffset":104343,"count":0}],"isBlockCoverage":false},{"functionName":"assert.sameDeepOrderedMembers","ranges":[{"startOffset":104374,"endOffset":104497,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notSameDeepOrderedMembers","ranges":[{"startOffset":104531,"endOffset":104661,"count":0}],"isBlockCoverage":false},{"functionName":"assert.includeMembers","ranges":[{"startOffset":104684,"endOffset":104796,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notIncludeMembers","ranges":[{"startOffset":104822,"endOffset":104941,"count":0}],"isBlockCoverage":false},{"functionName":"assert.includeDeepMembers","ranges":[{"startOffset":104968,"endOffset":105089,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notIncludeDeepMembers","ranges":[{"startOffset":105119,"endOffset":105247,"count":0}],"isBlockCoverage":false},{"functionName":"assert.includeOrderedMembers","ranges":[{"startOffset":105277,"endOffset":105404,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notIncludeOrderedMembers","ranges":[{"startOffset":105437,"endOffset":105571,"count":0}],"isBlockCoverage":false},{"functionName":"assert.includeDeepOrderedMembers","ranges":[{"startOffset":105605,"endOffset":105741,"count":0}],"isBlockCoverage":false},{"functionName":"assert.notIncludeDeepOrderedMembers","ranges":[{"startOffset":105778,"endOffset":105921,"count":0}],"isBlockCoverage":false},{"functionName":"assert.oneOf","ranges":[{"startOffset":105935,"endOffset":106023,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isIterable","ranges":[{"startOffset":106042,"endOffset":106262,"count":0}],"isBlockCoverage":false},{"functionName":"assert.changes","ranges":[{"startOffset":106278,"endOffset":106435,"count":0}],"isBlockCoverage":false},{"functionName":"assert.changesBy","ranges":[{"startOffset":106453,"endOffset":106699,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotChange","ranges":[{"startOffset":106721,"endOffset":106895,"count":0}],"isBlockCoverage":false},{"functionName":"assert.changesButNotBy","ranges":[{"startOffset":106919,"endOffset":107179,"count":0}],"isBlockCoverage":false},{"functionName":"assert.increases","ranges":[{"startOffset":107197,"endOffset":107365,"count":0}],"isBlockCoverage":false},{"functionName":"assert.increasesBy","ranges":[{"startOffset":107385,"endOffset":107635,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotIncrease","ranges":[{"startOffset":107659,"endOffset":107837,"count":0}],"isBlockCoverage":false},{"functionName":"assert.increasesButNotBy","ranges":[{"startOffset":107863,"endOffset":108127,"count":0}],"isBlockCoverage":false},{"functionName":"assert.decreases","ranges":[{"startOffset":108145,"endOffset":108313,"count":0}],"isBlockCoverage":false},{"functionName":"assert.decreasesBy","ranges":[{"startOffset":108333,"endOffset":108583,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotDecrease","ranges":[{"startOffset":108607,"endOffset":108785,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotDecreaseBy","ranges":[{"startOffset":108811,"endOffset":109078,"count":0}],"isBlockCoverage":false},{"functionName":"assert.decreasesButNotBy","ranges":[{"startOffset":109104,"endOffset":109368,"count":0}],"isBlockCoverage":false},{"functionName":"assert.ifError","ranges":[{"startOffset":109384,"endOffset":109417,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isExtensible","ranges":[{"startOffset":109438,"endOffset":109521,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotExtensible","ranges":[{"startOffset":109545,"endOffset":109635,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isSealed","ranges":[{"startOffset":109652,"endOffset":109727,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotSealed","ranges":[{"startOffset":109747,"endOffset":109829,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isFrozen","ranges":[{"startOffset":109846,"endOffset":109921,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotFrozen","ranges":[{"startOffset":109941,"endOffset":110023,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isEmpty","ranges":[{"startOffset":110039,"endOffset":110112,"count":0}],"isBlockCoverage":false},{"functionName":"assert.isNotEmpty","ranges":[{"startOffset":110131,"endOffset":110211,"count":0}],"isBlockCoverage":false},{"functionName":"assert.containsSubset","ranges":[{"startOffset":110234,"endOffset":110301,"count":0}],"isBlockCoverage":false},{"functionName":"assert.doesNotContainSubset","ranges":[{"startOffset":110330,"endOffset":110401,"count":0}],"isBlockCoverage":false},{"functionName":"use","ranges":[{"startOffset":110863,"endOffset":111064,"count":2},{"startOffset":111006,"endOffset":111048,"count":1}],"isBlockCoverage":true}]},{"scriptId":"345","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon-chai/lib/sinon-chai.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":16993,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":100,"endOffset":5710,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":304,"endOffset":370,"count":39}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":384,"endOffset":474,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":491,"endOffset":768,"count":1},{"startOffset":546,"endOffset":572,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":679,"endOffset":692,"count":2}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":786,"endOffset":847,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":911,"endOffset":933,"count":2}],"isBlockCoverage":true},{"functionName":"sinon_chai_default","ranges":[{"startOffset":984,"endOffset":5671,"count":1}],"isBlockCoverage":true},{"functionName":"isSpy","ranges":[{"startOffset":1058,"endOffset":1217,"count":18},{"startOffset":1124,"endOffset":1216,"count":9}],"isBlockCoverage":true},{"functionName":"timesInWords","ranges":[{"startOffset":1239,"endOffset":1385,"count":0}],"isBlockCoverage":false},{"functionName":"isCall","ranges":[{"startOffset":1421,"endOffset":1498,"count":0}],"isBlockCoverage":false},{"functionName":"assertCanWorkWith","ranges":[{"startOffset":1522,"endOffset":1700,"count":9},{"startOffset":1585,"endOffset":1610,"count":0},{"startOffset":1611,"endOffset":1699,"count":0}],"isBlockCoverage":true},{"functionName":"getMessages","ranges":[{"startOffset":1746,"endOffset":2280,"count":9},{"startOffset":1829,"endOffset":1844,"count":0},{"startOffset":1886,"endOffset":1890,"count":0},{"startOffset":1911,"endOffset":1926,"count":0}],"isBlockCoverage":true},{"functionName":"printfArray","ranges":[{"startOffset":1926,"endOffset":1989,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2049,"endOffset":2148,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2180,"endOffset":2266,"count":0}],"isBlockCoverage":false},{"functionName":"sinonProperty","ranges":[{"startOffset":2314,"endOffset":2586,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2415,"endOffset":2584,"count":3}],"isBlockCoverage":true},{"functionName":"sinonPropertyAsBooleanMethod","ranges":[{"startOffset":2624,"endOffset":2938,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2738,"endOffset":2936,"count":0}],"isBlockCoverage":false},{"functionName":"createSinonMethodHandler","ranges":[{"startOffset":3006,"endOffset":3560,"count":13}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3082,"endOffset":3559,"count":6},{"startOffset":3242,"endOffset":3292,"count":0},{"startOffset":3327,"endOffset":3345,"count":0}],"isBlockCoverage":true},{"functionName":"sinonMethodAsProperty","ranges":[{"startOffset":3620,"endOffset":3805,"count":1}],"isBlockCoverage":true},{"functionName":"exceptionalSinonMethod","ranges":[{"startOffset":3859,"endOffset":4066,"count":12}],"isBlockCoverage":true},{"functionName":"sinonMethod","ranges":[{"startOffset":4122,"endOffset":4231,"count":11}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4317,"endOffset":4359,"count":0}],"isBlockCoverage":false}]},{"scriptId":"346","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":95,"count":1}],"isBlockCoverage":true}]},{"scriptId":"347","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/create-sinon-api.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":981,"count":1}],"isBlockCoverage":true},{"functionName":"createApi","ranges":[{"startOffset":420,"endOffset":979,"count":1}],"isBlockCoverage":true},{"functionName":"addBehavior","ranges":[{"startOffset":761,"endOffset":842,"count":0}],"isBlockCoverage":false}]},{"scriptId":"348","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/behavior.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8357,"count":1}],"isBlockCoverage":true},{"functionName":"getCallback","ranges":[{"startOffset":581,"endOffset":1382,"count":0}],"isBlockCoverage":false},{"functionName":"getCallbackError","ranges":[{"startOffset":1384,"endOffset":2109,"count":0}],"isBlockCoverage":false},{"functionName":"ensureArgs","ranges":[{"startOffset":2111,"endOffset":2527,"count":0}],"isBlockCoverage":false},{"functionName":"callCallback","ranges":[{"startOffset":2529,"endOffset":3263,"count":10},{"startOffset":2617,"endOffset":3238,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2903,"endOffset":3071,"count":0}],"isBlockCoverage":false},{"functionName":"create","ranges":[{"startOffset":3293,"endOffset":3692,"count":4},{"startOffset":3534,"endOffset":3572,"count":0},{"startOffset":3574,"endOffset":3660,"count":0}],"isBlockCoverage":true},{"functionName":"isPresent","ranges":[{"startOffset":3710,"endOffset":4165,"count":0}],"isBlockCoverage":false},{"functionName":"invoke","ranges":[{"startOffset":4221,"endOffset":6665,"count":10},{"startOffset":4540,"endOffset":4585,"count":0},{"startOffset":4618,"endOffset":4764,"count":0},{"startOffset":4812,"endOffset":4916,"count":0},{"startOffset":4943,"endOffset":4982,"count":0},{"startOffset":5029,"endOffset":5130,"count":0},{"startOffset":5153,"endOffset":5217,"count":8},{"startOffset":5217,"endOffset":6625,"count":2},{"startOffset":5266,"endOffset":5445,"count":0},{"startOffset":5473,"endOffset":5554,"count":0},{"startOffset":5578,"endOffset":5668,"count":0},{"startOffset":5691,"endOffset":5780,"count":0},{"startOffset":5809,"endOffset":5941,"count":0},{"startOffset":5977,"endOffset":6437,"count":0},{"startOffset":6488,"endOffset":6536,"count":0},{"startOffset":6582,"endOffset":6625,"count":0},{"startOffset":6625,"endOffset":6664,"count":2}],"isBlockCoverage":true},{"functionName":"effectiveWrappedMethod","ranges":[{"startOffset":6696,"endOffset":6969,"count":0}],"isBlockCoverage":false},{"functionName":"onCall","ranges":[{"startOffset":6984,"endOffset":7054,"count":0}],"isBlockCoverage":false},{"functionName":"onFirstCall","ranges":[{"startOffset":7074,"endOffset":7144,"count":0}],"isBlockCoverage":false},{"functionName":"onSecondCall","ranges":[{"startOffset":7165,"endOffset":7237,"count":0}],"isBlockCoverage":false},{"functionName":"onThirdCall","ranges":[{"startOffset":7257,"endOffset":7327,"count":0}],"isBlockCoverage":false},{"functionName":"withArgs","ranges":[{"startOffset":7344,"endOffset":7659,"count":0}],"isBlockCoverage":false},{"functionName":"createBehavior","ranges":[{"startOffset":7665,"endOffset":7956,"count":34}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7718,"endOffset":7953,"count":2}],"isBlockCoverage":true},{"functionName":"addBehavior","ranges":[{"startOffset":7958,"endOffset":8169,"count":34}],"isBlockCoverage":true},{"functionName":"proto.<computed>","ranges":[{"startOffset":8015,"endOffset":8126,"count":2},{"startOffset":8112,"endOffset":8119,"count":0}],"isBlockCoverage":true}]},{"scriptId":"349","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":457,"count":1}],"isBlockCoverage":true}]},{"scriptId":"350","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/global.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":383,"count":1},{"startOffset":213,"endOffset":350,"count":0}],"isBlockCoverage":true}]},{"scriptId":"351","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/called-in-order.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1439,"count":1}],"isBlockCoverage":true},{"functionName":"hasCallsLeft","ranges":[{"startOffset":85,"endOffset":245,"count":0}],"isBlockCoverage":false},{"functionName":"checkAdjacentCalls","ranges":[{"startOffset":267,"endOffset":602,"count":0}],"isBlockCoverage":false},{"functionName":"calledInOrder","ranges":[{"startOffset":1171,"endOffset":1405,"count":0}],"isBlockCoverage":false}]},{"scriptId":"352","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/prototypes/array.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":122,"count":1}],"isBlockCoverage":true}]},{"scriptId":"353","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/prototypes/copy-prototype-methods.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1010,"count":1},{"startOffset":423,"endOffset":470,"count":0}],"isBlockCoverage":true},{"functionName":"copyPrototypeMethods","ranges":[{"startOffset":489,"endOffset":1008,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":671,"endOffset":979,"count":141},{"startOffset":768,"endOffset":806,"count":4},{"startOffset":806,"endOffset":859,"count":137},{"startOffset":859,"endOffset":897,"count":5},{"startOffset":897,"endOffset":978,"count":132}],"isBlockCoverage":true}]},{"scriptId":"354","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/prototypes/throws-on-proto.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":743,"count":1},{"startOffset":482,"endOffset":709,"count":0}],"isBlockCoverage":true}]},{"scriptId":"355","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/class-name.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":316,"count":1}],"isBlockCoverage":true},{"functionName":"className","ranges":[{"startOffset":170,"endOffset":286,"count":0}],"isBlockCoverage":false}]},{"scriptId":"356","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/deprecated.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1354,"count":1}],"isBlockCoverage":true},{"functionName":"exports.wrap","ranges":[{"startOffset":279,"endOffset":517,"count":0}],"isBlockCoverage":false},{"functionName":"exports.defaultMsg","ranges":[{"startOffset":768,"endOffset":938,"count":0}],"isBlockCoverage":false},{"functionName":"exports.printWarning","ranges":[{"startOffset":1071,"endOffset":1352,"count":0}],"isBlockCoverage":false}]},{"scriptId":"357","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/every.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":663,"count":1}],"isBlockCoverage":true},{"functionName":"every","ranges":[{"startOffset":238,"endOffset":661,"count":0}],"isBlockCoverage":false}]},{"scriptId":"358","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/function-name.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":815,"count":1}],"isBlockCoverage":true},{"functionName":"functionName","ranges":[{"startOffset":129,"endOffset":813,"count":4},{"startOffset":174,"endOffset":200,"count":0},{"startOffset":283,"endOffset":636,"count":0},{"startOffset":654,"endOffset":811,"count":0}],"isBlockCoverage":true}]},{"scriptId":"359","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/order-by-first-call.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":811,"count":1}],"isBlockCoverage":true},{"functionName":"comparator","ranges":[{"startOffset":132,"endOffset":376,"count":0}],"isBlockCoverage":false},{"functionName":"orderByFirstCall","ranges":[{"startOffset":695,"endOffset":774,"count":0}],"isBlockCoverage":false}]},{"scriptId":"360","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/prototypes/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":225,"count":1}],"isBlockCoverage":true}]},{"scriptId":"361","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/prototypes/function.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":125,"count":1}],"isBlockCoverage":true}]},{"scriptId":"362","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/prototypes/map.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":120,"count":1}],"isBlockCoverage":true}]},{"scriptId":"363","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/prototypes/object.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":123,"count":1}],"isBlockCoverage":true}]},{"scriptId":"364","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/prototypes/set.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":120,"count":1}],"isBlockCoverage":true}]},{"scriptId":"365","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/prototypes/string.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":123,"count":1}],"isBlockCoverage":true}]},{"scriptId":"366","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/type-of.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":263,"count":1}],"isBlockCoverage":true},{"functionName":"typeOf","ranges":[{"startOffset":197,"endOffset":261,"count":0}],"isBlockCoverage":false}]},{"scriptId":"367","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/type-detect/type-detect.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":15484,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1,"endOffset":222,"count":1},{"startOffset":121,"endOffset":219,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":230,"endOffset":15479,"count":1},{"startOffset":483,"endOffset":489,"count":0}],"isBlockCoverage":true},{"functionName":"typeDetect","ranges":[{"startOffset":2073,"endOffset":15456,"count":0}],"isBlockCoverage":false}]},{"scriptId":"368","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/commons/lib/value-to-string.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":367,"count":1}],"isBlockCoverage":true},{"functionName":"valueToString","ranges":[{"startOffset":113,"endOffset":333,"count":0}],"isBlockCoverage":false}]},{"scriptId":"369","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/extend.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5019,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":360,"endOffset":1294,"count":1},{"startOffset":1149,"endOffset":1246,"count":10}],"isBlockCoverage":true},{"functionName":"constructor","ranges":[{"startOffset":413,"endOffset":460,"count":1}],"isBlockCoverage":true},{"functionName":"toString","ranges":[{"startOffset":480,"endOffset":527,"count":1}],"isBlockCoverage":true},{"functionName":"valueOf","ranges":[{"startOffset":546,"endOffset":593,"count":1}],"isBlockCoverage":true},{"functionName":"toLocaleString","ranges":[{"startOffset":619,"endOffset":666,"count":1}],"isBlockCoverage":true},{"functionName":"prototype","ranges":[{"startOffset":687,"endOffset":734,"count":1}],"isBlockCoverage":true},{"functionName":"isPrototypeOf","ranges":[{"startOffset":759,"endOffset":806,"count":1}],"isBlockCoverage":true},{"functionName":"propertyIsEnumerable","ranges":[{"startOffset":838,"endOffset":885,"count":1}],"isBlockCoverage":true},{"functionName":"hasOwnProperty","ranges":[{"startOffset":911,"endOffset":958,"count":1}],"isBlockCoverage":true},{"functionName":"length","ranges":[{"startOffset":976,"endOffset":1023,"count":1}],"isBlockCoverage":true},{"functionName":"unique","ranges":[{"startOffset":1041,"endOffset":1088,"count":1}],"isBlockCoverage":true},{"functionName":"extendCommon","ranges":[{"startOffset":1386,"endOffset":2115,"count":58},{"startOffset":1502,"endOffset":2093,"count":60},{"startOffset":1563,"endOffset":1682,"count":980},{"startOffset":1918,"endOffset":1967,"count":0},{"startOffset":1968,"endOffset":2018,"count":0},{"startOffset":2029,"endOffset":2087,"count":0}],"isBlockCoverage":true},{"functionName":"extend","ranges":[{"startOffset":2500,"endOffset":4247,"count":17}],"isBlockCoverage":true},{"functionName":"copyValue","ranges":[{"startOffset":2604,"endOffset":4237,"count":245},{"startOffset":2958,"endOffset":2996,"count":0},{"startOffset":2998,"endOffset":3037,"count":0},{"startOffset":3788,"endOffset":4167,"count":0}],"isBlockCoverage":true},{"functionName":"extendNonEnum","ranges":[{"startOffset":4639,"endOffset":5017,"count":41}],"isBlockCoverage":true},{"functionName":"copyProperty","ranges":[{"startOffset":4750,"endOffset":5007,"count":735}],"isBlockCoverage":true}]},{"scriptId":"370","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/next-tick.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":200,"count":1}],"isBlockCoverage":true}]},{"scriptId":"371","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/get-next-tick.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":430,"count":1}],"isBlockCoverage":true},{"functionName":"nextTick","ranges":[{"startOffset":78,"endOffset":138,"count":0}],"isBlockCoverage":false},{"functionName":"getNextTick","ranges":[{"startOffset":157,"endOffset":428,"count":1},{"startOffset":322,"endOffset":427,"count":0}],"isBlockCoverage":true}]},{"scriptId":"372","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/export-async-behaviors.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":825,"count":1}],"isBlockCoverage":true},{"functionName":"exportAsyncBehaviors","ranges":[{"startOffset":132,"endOffset":823,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":246,"endOffset":801,"count":36},{"startOffset":416,"endOffset":441,"count":9},{"startOffset":443,"endOffset":767,"count":9}],"isBlockCoverage":true},{"functionName":"acc.<computed>","ranges":[{"startOffset":485,"endOffset":752,"count":0}],"isBlockCoverage":false}]},{"scriptId":"373","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/create-sandbox.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2927,"count":1}],"isBlockCoverage":true},{"functionName":"prepareSandboxFromConfig","ranges":[{"startOffset":186,"endOffset":542,"count":0}],"isBlockCoverage":false},{"functionName":"exposeValue","ranges":[{"startOffset":544,"endOffset":833,"count":0}],"isBlockCoverage":false},{"functionName":"createSandbox","ranges":[{"startOffset":2164,"endOffset":2893,"count":0}],"isBlockCoverage":false}]},{"scriptId":"374","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/sandbox.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":14138,"count":1}],"isBlockCoverage":true},{"functionName":"applyOnEach","ranges":[{"startOffset":955,"endOffset":1189,"count":0}],"isBlockCoverage":false},{"functionName":"throwOnAccessors","ranges":[{"startOffset":1191,"endOffset":1493,"count":0}],"isBlockCoverage":false},{"functionName":"verifySameType","ranges":[{"startOffset":1495,"endOffset":1771,"count":0}],"isBlockCoverage":false},{"functionName":"checkForValidArguments","ranges":[{"startOffset":1773,"endOffset":2210,"count":0}],"isBlockCoverage":false},{"functionName":"Sandbox","ranges":[{"startOffset":2347,"endOffset":14076,"count":1}],"isBlockCoverage":true},{"functionName":"addToCollection","ranges":[{"startOffset":2601,"endOffset":3088,"count":8},{"startOffset":2710,"endOffset":2743,"count":0},{"startOffset":2754,"endOffset":3082,"count":0}],"isBlockCoverage":true},{"functionName":"getFakes","ranges":[{"startOffset":3214,"endOffset":3268,"count":0}],"isBlockCoverage":false},{"functionName":"createStubInstance","ranges":[{"startOffset":3304,"endOffset":3592,"count":0}],"isBlockCoverage":false},{"functionName":"inject","ranges":[{"startOffset":3616,"endOffset":4755,"count":0}],"isBlockCoverage":false},{"functionName":"mock","ranges":[{"startOffset":4777,"endOffset":4900,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":4923,"endOffset":5038,"count":0}],"isBlockCoverage":false},{"functionName":"resetBehavior","ranges":[{"startOffset":5069,"endOffset":5151,"count":0}],"isBlockCoverage":false},{"functionName":"resetHistory","ranges":[{"startOffset":5181,"endOffset":5441,"count":0}],"isBlockCoverage":false},{"functionName":"restore","ranges":[{"startOffset":5466,"endOffset":5930,"count":0}],"isBlockCoverage":false},{"functionName":"restoreContext","ranges":[{"startOffset":5962,"endOffset":6232,"count":0}],"isBlockCoverage":false},{"functionName":"getFakeRestorer","ranges":[{"startOffset":6470,"endOffset":7077,"count":0}],"isBlockCoverage":false},{"functionName":"verifyNotReplaced","ranges":[{"startOffset":7083,"endOffset":7490,"count":0}],"isBlockCoverage":false},{"functionName":"replace","ranges":[{"startOffset":7731,"endOffset":8259,"count":0}],"isBlockCoverage":false},{"functionName":"replaceUsingAccessor","ranges":[{"startOffset":8298,"endOffset":8838,"count":0}],"isBlockCoverage":false},{"functionName":"define","ranges":[{"startOffset":8862,"endOffset":9591,"count":0}],"isBlockCoverage":false},{"functionName":"replaceGetter","ranges":[{"startOffset":9622,"endOffset":10680,"count":0}],"isBlockCoverage":false},{"functionName":"replaceSetter","ranges":[{"startOffset":10711,"endOffset":11820,"count":0}],"isBlockCoverage":false},{"functionName":"commonPostInitSetup","ranges":[{"startOffset":11827,"endOffset":12562,"count":8},{"startOffset":12009,"endOffset":12112,"count":4},{"startOffset":12151,"endOffset":12327,"count":0},{"startOffset":12359,"endOffset":12484,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12241,"endOffset":12315,"count":0}],"isBlockCoverage":false},{"functionName":"spy","ranges":[{"startOffset":12582,"endOffset":12734,"count":4}],"isBlockCoverage":true},{"functionName":"stub","ranges":[{"startOffset":12756,"endOffset":12912,"count":4}],"isBlockCoverage":true},{"functionName":"fake","ranges":[{"startOffset":12981,"endOffset":13110,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":13149,"endOffset":13472,"count":6}],"isBlockCoverage":true},{"functionName":"sandbox.fake.<computed>","ranges":[{"startOffset":13293,"endOffset":13455,"count":0}],"isBlockCoverage":false},{"functionName":"useFakeTimers","ranges":[{"startOffset":13504,"endOffset":13692,"count":0}],"isBlockCoverage":false},{"functionName":"verify","ranges":[{"startOffset":13716,"endOffset":13784,"count":0}],"isBlockCoverage":false},{"functionName":"verifyAndRestore","ranges":[{"startOffset":13818,"endOffset":14073,"count":0}],"isBlockCoverage":false}]},{"scriptId":"375","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/collect-own-methods.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":787,"count":1}],"isBlockCoverage":true},{"functionName":"collectMethod","ranges":[{"startOffset":289,"endOffset":524,"count":0}],"isBlockCoverage":false},{"functionName":"collectOwnMethods","ranges":[{"startOffset":604,"endOffset":749,"count":0}],"isBlockCoverage":false}]},{"scriptId":"376","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/walk.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1830,"count":1}],"isBlockCoverage":true},{"functionName":"walkInternal","ranges":[{"startOffset":86,"endOffset":1078,"count":0}],"isBlockCoverage":false},{"functionName":"walk","ranges":[{"startOffset":1729,"endOffset":1828,"count":0}],"isBlockCoverage":false}]},{"scriptId":"377","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/get-property-descriptor.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1778,"count":1}],"isBlockCoverage":true},{"functionName":"getPropertyDescriptor","ranges":[{"startOffset":1287,"endOffset":1736,"count":16},{"startOffset":1424,"endOffset":1476,"count":12},{"startOffset":1512,"endOffset":1587,"count":12},{"startOffset":1594,"endOffset":1647,"count":0},{"startOffset":1669,"endOffset":1710,"count":12}],"isBlockCoverage":true}]},{"scriptId":"378","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/is-property-configurable.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":319,"count":1}],"isBlockCoverage":true},{"functionName":"isPropertyConfigurable","ranges":[{"startOffset":84,"endOffset":276,"count":0}],"isBlockCoverage":false}]},{"scriptId":"379","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/samsam.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":665,"count":1}],"isBlockCoverage":true}]},{"scriptId":"380","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/identical.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":997,"count":1}],"isBlockCoverage":true},{"functionName":"identical","ranges":[{"startOffset":785,"endOffset":967,"count":11},{"startOffset":840,"endOffset":871,"count":2},{"startOffset":856,"endOffset":870,"count":0},{"startOffset":873,"endOffset":946,"count":9},{"startOffset":901,"endOffset":939,"count":0},{"startOffset":946,"endOffset":966,"count":2}],"isBlockCoverage":true}]},{"scriptId":"381","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-nan.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":466,"count":1}],"isBlockCoverage":true},{"functionName":"isNaN","ranges":[{"startOffset":167,"endOffset":440,"count":6},{"startOffset":419,"endOffset":437,"count":0}],"isBlockCoverage":true}]},{"scriptId":"382","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-neg-zero.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":303,"count":1}],"isBlockCoverage":true},{"functionName":"isNegZero","ranges":[{"startOffset":193,"endOffset":273,"count":0}],"isBlockCoverage":false}]},{"scriptId":"383","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-arguments.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":399,"count":1}],"isBlockCoverage":true},{"functionName":"isArguments","ranges":[{"startOffset":290,"endOffset":367,"count":0}],"isBlockCoverage":false}]},{"scriptId":"384","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/get-class.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":499,"count":1}],"isBlockCoverage":true},{"functionName":"getClass","ranges":[{"startOffset":396,"endOffset":470,"count":0}],"isBlockCoverage":false}]},{"scriptId":"385","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":457,"count":1}],"isBlockCoverage":true}]},{"scriptId":"386","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/global.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":383,"count":1},{"startOffset":213,"endOffset":350,"count":0}],"isBlockCoverage":true}]},{"scriptId":"387","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/called-in-order.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1439,"count":1}],"isBlockCoverage":true},{"functionName":"hasCallsLeft","ranges":[{"startOffset":85,"endOffset":245,"count":0}],"isBlockCoverage":false},{"functionName":"checkAdjacentCalls","ranges":[{"startOffset":267,"endOffset":602,"count":0}],"isBlockCoverage":false},{"functionName":"calledInOrder","ranges":[{"startOffset":1171,"endOffset":1405,"count":0}],"isBlockCoverage":false}]},{"scriptId":"388","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/prototypes/array.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":122,"count":1}],"isBlockCoverage":true}]},{"scriptId":"389","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/prototypes/copy-prototype-methods.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1010,"count":1},{"startOffset":423,"endOffset":470,"count":0}],"isBlockCoverage":true},{"functionName":"copyPrototypeMethods","ranges":[{"startOffset":489,"endOffset":1008,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":671,"endOffset":979,"count":141},{"startOffset":768,"endOffset":806,"count":4},{"startOffset":806,"endOffset":859,"count":137},{"startOffset":859,"endOffset":897,"count":5},{"startOffset":897,"endOffset":978,"count":132}],"isBlockCoverage":true}]},{"scriptId":"390","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/prototypes/throws-on-proto.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":743,"count":1},{"startOffset":482,"endOffset":709,"count":0}],"isBlockCoverage":true}]},{"scriptId":"391","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/class-name.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":316,"count":1}],"isBlockCoverage":true},{"functionName":"className","ranges":[{"startOffset":170,"endOffset":286,"count":0}],"isBlockCoverage":false}]},{"scriptId":"392","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/deprecated.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1354,"count":1}],"isBlockCoverage":true},{"functionName":"exports.wrap","ranges":[{"startOffset":279,"endOffset":517,"count":0}],"isBlockCoverage":false},{"functionName":"exports.defaultMsg","ranges":[{"startOffset":768,"endOffset":938,"count":0}],"isBlockCoverage":false},{"functionName":"exports.printWarning","ranges":[{"startOffset":1071,"endOffset":1352,"count":0}],"isBlockCoverage":false}]},{"scriptId":"393","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/every.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":663,"count":1}],"isBlockCoverage":true},{"functionName":"every","ranges":[{"startOffset":238,"endOffset":661,"count":0}],"isBlockCoverage":false}]},{"scriptId":"394","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/function-name.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":815,"count":1}],"isBlockCoverage":true},{"functionName":"functionName","ranges":[{"startOffset":129,"endOffset":813,"count":0}],"isBlockCoverage":false}]},{"scriptId":"395","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/order-by-first-call.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":811,"count":1}],"isBlockCoverage":true},{"functionName":"comparator","ranges":[{"startOffset":132,"endOffset":376,"count":0}],"isBlockCoverage":false},{"functionName":"orderByFirstCall","ranges":[{"startOffset":695,"endOffset":774,"count":0}],"isBlockCoverage":false}]},{"scriptId":"396","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/prototypes/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":225,"count":1}],"isBlockCoverage":true}]},{"scriptId":"397","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/prototypes/function.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":125,"count":1}],"isBlockCoverage":true}]},{"scriptId":"398","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/prototypes/map.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":120,"count":1}],"isBlockCoverage":true}]},{"scriptId":"399","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/prototypes/object.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":123,"count":1}],"isBlockCoverage":true}]},{"scriptId":"400","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/prototypes/set.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":120,"count":1}],"isBlockCoverage":true}]},{"scriptId":"401","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/prototypes/string.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":123,"count":1}],"isBlockCoverage":true}]},{"scriptId":"402","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/type-of.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":263,"count":1}],"isBlockCoverage":true},{"functionName":"typeOf","ranges":[{"startOffset":197,"endOffset":261,"count":27}],"isBlockCoverage":true}]},{"scriptId":"403","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/node_modules/type-detect/type-detect.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":15484,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1,"endOffset":222,"count":1},{"startOffset":121,"endOffset":219,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":230,"endOffset":15479,"count":1},{"startOffset":483,"endOffset":489,"count":0}],"isBlockCoverage":true},{"functionName":"typeDetect","ranges":[{"startOffset":2073,"endOffset":15456,"count":27},{"startOffset":2955,"endOffset":4234,"count":0},{"startOffset":4239,"endOffset":4470,"count":0},{"startOffset":4472,"endOffset":10539,"count":0},{"startOffset":10579,"endOffset":11817,"count":0},{"startOffset":11819,"endOffset":12087,"count":0},{"startOffset":12089,"endOffset":12353,"count":0},{"startOffset":12355,"endOffset":12627,"count":0},{"startOffset":12629,"endOffset":12905,"count":0},{"startOffset":12907,"endOffset":13323,"count":0},{"startOffset":13325,"endOffset":13739,"count":0},{"startOffset":13741,"endOffset":14159,"count":0},{"startOffset":14161,"endOffset":14599,"count":0},{"startOffset":14601,"endOffset":15046,"count":0},{"startOffset":15048,"endOffset":15455,"count":0}],"isBlockCoverage":true}]},{"scriptId":"404","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/lib/value-to-string.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":367,"count":1}],"isBlockCoverage":true},{"functionName":"valueToString","ranges":[{"startOffset":113,"endOffset":333,"count":0}],"isBlockCoverage":false}]},{"scriptId":"405","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-element.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":766,"count":1},{"startOffset":57,"endOffset":89,"count":0}],"isBlockCoverage":true},{"functionName":"isElement","ranges":[{"startOffset":487,"endOffset":736,"count":0}],"isBlockCoverage":false}]},{"scriptId":"406","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-set.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":388,"count":1}],"isBlockCoverage":true},{"functionName":"isSet","ranges":[{"startOffset":267,"endOffset":362,"count":0}],"isBlockCoverage":false}]},{"scriptId":"407","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-map.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":316,"count":1}],"isBlockCoverage":true},{"functionName":"isMap","ranges":[{"startOffset":202,"endOffset":290,"count":0}],"isBlockCoverage":false}]},{"scriptId":"408","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/match.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5461,"count":1}],"isBlockCoverage":true},{"functionName":"arrayContains","ranges":[{"startOffset":874,"endOffset":1419,"count":0}],"isBlockCoverage":false},{"functionName":"match","ranges":[{"startOffset":1730,"endOffset":5309,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5378,"endOffset":5433,"count":26}],"isBlockCoverage":true}]},{"scriptId":"409","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/node_modules/type-detect/type-detect.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5728,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1,"endOffset":305,"count":1},{"startOffset":124,"endOffset":302,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":314,"endOffset":5724,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":422,"endOffset":827,"count":1},{"startOffset":525,"endOffset":826,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":606,"endOffset":665,"count":0}],"isBlockCoverage":false},{"functionName":"typeDetect","ranges":[{"startOffset":2216,"endOffset":5697,"count":0}],"isBlockCoverage":false}]},{"scriptId":"410","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/deep-equal.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12823,"count":1}],"isBlockCoverage":true},{"functionName":"allEnumerableKeysInProtoChain","ranges":[{"startOffset":1341,"endOffset":1554,"count":0}],"isBlockCoverage":false},{"functionName":"shouldComparePrototypeEnumerableKeys","ranges":[{"startOffset":1735,"endOffset":1849,"count":0}],"isBlockCoverage":false},{"functionName":"getEnumerableStringKeys","ranges":[{"startOffset":2013,"endOffset":2347,"count":0}],"isBlockCoverage":false},{"functionName":"hasAllEnumerableStringKeys","ranges":[{"startOffset":2567,"endOffset":2736,"count":0}],"isBlockCoverage":false},{"functionName":"deepEqualCyclic","ranges":[{"startOffset":3448,"endOffset":12652,"count":12}],"isBlockCoverage":true},{"functionName":"deepEqual","ranges":[{"startOffset":4070,"endOffset":12615,"count":12},{"startOffset":4432,"endOffset":4607,"count":1},{"startOffset":4478,"endOffset":4546,"count":0},{"startOffset":4607,"endOffset":4760,"count":11},{"startOffset":4760,"endOffset":4791,"count":2},{"startOffset":4792,"endOffset":4828,"count":2},{"startOffset":4829,"endOffset":4862,"count":2},{"startOffset":4863,"endOffset":4901,"count":2},{"startOffset":4902,"endOffset":4940,"count":2},{"startOffset":4941,"endOffset":4984,"count":2},{"startOffset":4985,"endOffset":5023,"count":2},{"startOffset":5024,"endOffset":5067,"count":0},{"startOffset":5078,"endOffset":5146,"count":11},{"startOffset":5146,"endOffset":5275,"count":0},{"startOffset":5277,"endOffset":5463,"count":0},{"startOffset":5465,"endOffset":5774,"count":0},{"startOffset":5776,"endOffset":5988,"count":0},{"startOffset":5990,"endOffset":6125,"count":0},{"startOffset":6127,"endOffset":6674,"count":0},{"startOffset":6691,"endOffset":6798,"count":0},{"startOffset":6956,"endOffset":6986,"count":0},{"startOffset":6988,"endOffset":7694,"count":0},{"startOffset":7696,"endOffset":8041,"count":0},{"startOffset":8043,"endOffset":9072,"count":0},{"startOffset":9083,"endOffset":9285,"count":0},{"startOffset":9286,"endOffset":9324,"count":0},{"startOffset":9409,"endOffset":9452,"count":0},{"startOffset":9453,"endOffset":9496,"count":0},{"startOffset":9535,"endOffset":9567,"count":0},{"startOffset":9569,"endOffset":12614,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8331,"endOffset":8510,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":9871,"endOffset":10056,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":10157,"endOffset":12607,"count":0}],"isBlockCoverage":false},{"functionName":"deepEqualCyclic.use","ranges":[{"startOffset":12676,"endOffset":12786,"count":3}],"isBlockCoverage":true},{"functionName":"deepEqual","ranges":[{"startOffset":12706,"endOffset":12783,"count":12}],"isBlockCoverage":true}]},{"scriptId":"411","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-array-type.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":619,"count":1}],"isBlockCoverage":true},{"functionName":"isArrayType","ranges":[{"startOffset":482,"endOffset":587,"count":0}],"isBlockCoverage":false}]},{"scriptId":"412","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/array-types.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":236,"count":1}],"isBlockCoverage":true}]},{"scriptId":"413","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-date.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":294,"count":1}],"isBlockCoverage":true},{"functionName":"isDate","ranges":[{"startOffset":207,"endOffset":267,"count":0}],"isBlockCoverage":false}]},{"scriptId":"414","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-iterable.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":472,"count":1}],"isBlockCoverage":true},{"functionName":"isIterable","ranges":[{"startOffset":258,"endOffset":441,"count":0}],"isBlockCoverage":false}]},{"scriptId":"415","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-object.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":965,"count":1}],"isBlockCoverage":true},{"functionName":"isObject","ranges":[{"startOffset":530,"endOffset":936,"count":0}],"isBlockCoverage":false}]},{"scriptId":"416","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/is-subset.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":871,"count":1}],"isBlockCoverage":true},{"functionName":"isSubset","ranges":[{"startOffset":500,"endOffset":842,"count":0}],"isBlockCoverage":false}]},{"scriptId":"417","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/create-matcher.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12946,"count":1}],"isBlockCoverage":true},{"functionName":"createMatcher","ranges":[{"startOffset":1419,"endOffset":2371,"count":15},{"startOffset":1610,"endOffset":1676,"count":0},{"startOffset":1708,"endOffset":1826,"count":0},{"startOffset":1910,"endOffset":2022,"count":0},{"startOffset":2044,"endOffset":2111,"count":0}],"isBlockCoverage":true},{"functionName":"m.test","ranges":[{"startOffset":1935,"endOffset":2015,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2445,"endOffset":2477,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2526,"endOffset":2599,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2651,"endOffset":2700,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2750,"endOffset":2791,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.same","ranges":[{"startOffset":2825,"endOffset":3013,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.in","ranges":[{"startOffset":3035,"endOffset":3432,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.typeOf","ranges":[{"startOffset":3458,"endOffset":3631,"count":11}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3541,"endOffset":3606,"count":1}],"isBlockCoverage":true},{"functionName":"createMatcher.instanceOf","ranges":[{"startOffset":3661,"endOffset":4233,"count":0}],"isBlockCoverage":false},{"functionName":"createPropertyMatcher","ranges":[{"startOffset":4489,"endOffset":5214,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4562,"endOffset":5211,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5258,"endOffset":5411,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5467,"endOffset":5543,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.hasNested","ranges":[{"startOffset":5583,"endOffset":6244,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.json","ranges":[{"startOffset":6406,"endOffset":6853,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.every","ranges":[{"startOffset":6878,"endOffset":7374,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.some","ranges":[{"startOffset":7398,"endOffset":7897,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.array.deepEquals","ranges":[{"startOffset":7987,"endOffset":8811,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.array.startsWith","ranges":[{"startOffset":8847,"endOffset":9237,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.array.endsWith","ranges":[{"startOffset":9271,"endOffset":9804,"count":0}],"isBlockCoverage":false},{"functionName":"createMatcher.array.contains","ranges":[{"startOffset":9838,"endOffset":10230,"count":0}],"isBlockCoverage":false},{"functionName":"mapDeepEquals","ranges":[{"startOffset":10314,"endOffset":10976,"count":0}],"isBlockCoverage":false},{"functionName":"mapContains","ranges":[{"startOffset":11008,"endOffset":11411,"count":0}],"isBlockCoverage":false},{"functionName":"setDeepEquals","ranges":[{"startOffset":11495,"endOffset":12072,"count":0}],"isBlockCoverage":false},{"functionName":"setContains","ranges":[{"startOffset":12104,"endOffset":12475,"count":0}],"isBlockCoverage":false}]},{"scriptId":"418","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/iterable-to-string.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1876,"count":1}],"isBlockCoverage":true},{"functionName":"iterableToString","ranges":[{"startOffset":379,"endOffset":527,"count":0}],"isBlockCoverage":false},{"functionName":"mapToString","ranges":[{"startOffset":691,"endOffset":1030,"count":0}],"isBlockCoverage":false},{"functionName":"genericIterableToString","ranges":[{"startOffset":1214,"endOffset":1550,"count":0}],"isBlockCoverage":false},{"functionName":"stringify","ranges":[{"startOffset":1738,"endOffset":1839,"count":0}],"isBlockCoverage":false}]},{"scriptId":"419","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/create-matcher/assert-matcher.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":324,"count":1}],"isBlockCoverage":true},{"functionName":"assertMatcher","ranges":[{"startOffset":173,"endOffset":290,"count":0}],"isBlockCoverage":false}]},{"scriptId":"420","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/create-matcher/is-matcher.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":437,"count":1}],"isBlockCoverage":true},{"functionName":"isMatcher","ranges":[{"startOffset":325,"endOffset":407,"count":13}],"isBlockCoverage":true}]},{"scriptId":"421","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/create-matcher/matcher-prototype.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1285,"count":1}],"isBlockCoverage":true},{"functionName":"toString","ranges":[{"startOffset":54,"endOffset":102,"count":0}],"isBlockCoverage":false},{"functionName":"matcherPrototype.or","ranges":[{"startOffset":130,"endOffset":673,"count":0}],"isBlockCoverage":false},{"functionName":"matcherPrototype.and","ranges":[{"startOffset":699,"endOffset":1247,"count":0}],"isBlockCoverage":false}]},{"scriptId":"422","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/create-matcher/assert-method-exists.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":637,"count":1}],"isBlockCoverage":true},{"functionName":"assertMethodExists","ranges":[{"startOffset":385,"endOffset":598,"count":0}],"isBlockCoverage":false}]},{"scriptId":"423","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/create-matcher/assert-type.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":644,"count":1}],"isBlockCoverage":true},{"functionName":"assertType","ranges":[{"startOffset":393,"endOffset":613,"count":11},{"startOffset":491,"endOffset":611,"count":0}],"isBlockCoverage":true}]},{"scriptId":"424","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/create-matcher/is-iterable.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":360,"count":1}],"isBlockCoverage":true},{"functionName":"isIterable","ranges":[{"startOffset":232,"endOffset":329,"count":0}],"isBlockCoverage":false}]},{"scriptId":"425","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/create-matcher/type-map.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2125,"count":1}],"isBlockCoverage":true},{"functionName":"createTypeMap","ranges":[{"startOffset":403,"endOffset":2090,"count":1}],"isBlockCoverage":true},{"functionName":"function","ranges":[{"startOffset":453,"endOffset":607,"count":15},{"startOffset":556,"endOffset":596,"count":0}],"isBlockCoverage":true},{"functionName":"number","ranges":[{"startOffset":625,"endOffset":840,"count":0}],"isBlockCoverage":false},{"functionName":"object","ranges":[{"startOffset":858,"endOffset":1572,"count":0}],"isBlockCoverage":false},{"functionName":"regexp","ranges":[{"startOffset":1590,"endOffset":1762,"count":0}],"isBlockCoverage":false},{"functionName":"string","ranges":[{"startOffset":1780,"endOffset":2080,"count":0}],"isBlockCoverage":false}]},{"scriptId":"426","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/@sinonjs/samsam/lib/create-matcher/match-object.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1690,"count":1}],"isBlockCoverage":true},{"functionName":"matchObject","ranges":[{"startOffset":734,"endOffset":1658,"count":0}],"isBlockCoverage":false}]},{"scriptId":"427","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/assert.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":10567,"count":1}],"isBlockCoverage":true},{"functionName":"applyDefaults","ranges":[{"startOffset":699,"endOffset":929,"count":2},{"startOffset":784,"endOffset":927,"count":4}],"isBlockCoverage":true},{"functionName":"createAssertObject","ranges":[{"startOffset":1312,"endOffset":10470,"count":2},{"startOffset":1386,"endOffset":1391,"count":1}],"isBlockCoverage":true},{"functionName":"fail","ranges":[{"startOffset":1552,"endOffset":1947,"count":0}],"isBlockCoverage":false},{"functionName":"pass","ranges":[{"startOffset":1964,"endOffset":2011,"count":0}],"isBlockCoverage":false},{"functionName":"assertCallOrder","ranges":[{"startOffset":2033,"endOffset":3022,"count":0}],"isBlockCoverage":false},{"functionName":"assertCallCount","ranges":[{"startOffset":3044,"endOffset":3707,"count":0}],"isBlockCoverage":false},{"functionName":"expose","ranges":[{"startOffset":3726,"endOffset":4513,"count":0}],"isBlockCoverage":false},{"functionName":"match","ranges":[{"startOffset":4531,"endOffset":5027,"count":0}],"isBlockCoverage":false},{"functionName":"verifyIsStub","ranges":[{"startOffset":5041,"endOffset":5677,"count":0}],"isBlockCoverage":false},{"functionName":"verifyIsValidAssertion","ranges":[{"startOffset":5683,"endOffset":6318,"count":0}],"isBlockCoverage":false},{"functionName":"failAssertion","ranges":[{"startOffset":6324,"endOffset":6498,"count":0}],"isBlockCoverage":false},{"functionName":"mirrorPropAsAssertion","ranges":[{"startOffset":6504,"endOffset":7562,"count":44},{"startOffset":6650,"endOffset":6712,"count":42}],"isBlockCoverage":true},{"functionName":"assert.<computed>","ranges":[{"startOffset":6737,"endOffset":7555,"count":0}],"isBlockCoverage":false},{"functionName":"exposedName","ranges":[{"startOffset":7568,"endOffset":7795,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7983,"endOffset":8041,"count":0}],"isBlockCoverage":false}]},{"scriptId":"428","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/times-in-words.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":166,"count":1}],"isBlockCoverage":true},{"functionName":"timesInWords","ranges":[{"startOffset":82,"endOffset":164,"count":0}],"isBlockCoverage":false}]},{"scriptId":"429","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/fake-timers.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2311,"count":1}],"isBlockCoverage":true},{"functionName":"createClock","ranges":[{"startOffset":301,"endOffset":611,"count":0}],"isBlockCoverage":false},{"functionName":"addIfDefined","ranges":[{"startOffset":663,"endOffset":855,"count":2}],"isBlockCoverage":true},{"functionName":"exports.useFakeTimers","ranges":[{"startOffset":1034,"endOffset":1942,"count":0}],"isBlockCoverage":false},{"functionName":"create","ranges":[{"startOffset":1975,"endOffset":2041,"count":0}],"isBlockCoverage":false}]},{"scriptId":"430","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/@sinonjs/fake-timers/src/fake-timers-src.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":78862,"count":1},{"startOffset":237,"endOffset":273,"count":0},{"startOffset":349,"endOffset":385,"count":0}],"isBlockCoverage":true},{"functionName":"withGlobal","ranges":[{"startOffset":5908,"endOffset":78381,"count":1},{"startOffset":7681,"endOffset":7743,"count":0},{"startOffset":7819,"endOffset":7880,"count":0},{"startOffset":7954,"endOffset":8014,"count":0},{"startOffset":8093,"endOffset":8152,"count":0},{"startOffset":8753,"endOffset":8764,"count":0},{"startOffset":8841,"endOffset":9040,"count":0},{"startOffset":36052,"endOffset":36129,"count":0},{"startOffset":36270,"endOffset":36345,"count":0},{"startOffset":36386,"endOffset":36459,"count":0},{"startOffset":36499,"endOffset":36570,"count":0},{"startOffset":36691,"endOffset":36712,"count":0}],"isBlockCoverage":true},{"functionName":"NOOP","ranges":[{"startOffset":6170,"endOffset":6215,"count":0}],"isBlockCoverage":false},{"functionName":"NOOP_ARRAY","ranges":[{"startOffset":6240,"endOffset":6278,"count":0}],"isBlockCoverage":false},{"functionName":"FakePerformanceEntry","ranges":[{"startOffset":9367,"endOffset":9576,"count":0}],"isBlockCoverage":false},{"functionName":"toJSON","ranges":[{"startOffset":9586,"endOffset":9654,"count":0}],"isBlockCoverage":false},{"functionName":"isNumberFinite","ranges":[{"startOffset":9735,"endOffset":9884,"count":0}],"isBlockCoverage":false},{"functionName":"checkIsNearInfiniteLimit","ranges":[{"startOffset":9997,"endOffset":10158,"count":0}],"isBlockCoverage":false},{"functionName":"resetIsNearInfiniteLimit","ranges":[{"startOffset":10187,"endOffset":10267,"count":0}],"isBlockCoverage":false},{"functionName":"parseTime","ranges":[{"startOffset":10531,"endOffset":11221,"count":0}],"isBlockCoverage":false},{"functionName":"nanoRemainder","ranges":[{"startOffset":11506,"endOffset":11766,"count":0}],"isBlockCoverage":false},{"functionName":"getEpoch","ranges":[{"startOffset":11919,"endOffset":12255,"count":0}],"isBlockCoverage":false},{"functionName":"inRange","ranges":[{"startOffset":12385,"endOffset":12494,"count":0}],"isBlockCoverage":false},{"functionName":"getInfiniteLoopError","ranges":[{"startOffset":12570,"endOffset":14862,"count":0}],"isBlockCoverage":false},{"functionName":"createDate","ranges":[{"startOffset":14919,"endOffset":17690,"count":0}],"isBlockCoverage":false},{"functionName":"createIntl","ranges":[{"startOffset":17993,"endOffset":19276,"count":0}],"isBlockCoverage":false},{"functionName":"enqueueJob","ranges":[{"startOffset":19333,"endOffset":19540,"count":0}],"isBlockCoverage":false},{"functionName":"runJobs","ranges":[{"startOffset":19597,"endOffset":20138,"count":0}],"isBlockCoverage":false},{"functionName":"addTimer","ranges":[{"startOffset":20265,"endOffset":23113,"count":0}],"isBlockCoverage":false},{"functionName":"compareTimers","ranges":[{"startOffset":23274,"endOffset":24178,"count":0}],"isBlockCoverage":false},{"functionName":"firstTimerInRange","ranges":[{"startOffset":24306,"endOffset":24832,"count":0}],"isBlockCoverage":false},{"functionName":"firstTimer","ranges":[{"startOffset":24906,"endOffset":25271,"count":0}],"isBlockCoverage":false},{"functionName":"lastTimer","ranges":[{"startOffset":25345,"endOffset":25710,"count":0}],"isBlockCoverage":false},{"functionName":"callTimer","ranges":[{"startOffset":25788,"endOffset":26285,"count":0}],"isBlockCoverage":false},{"functionName":"getClearHandler","ranges":[{"startOffset":26390,"endOffset":26578,"count":0}],"isBlockCoverage":false},{"functionName":"getScheduleHandler","ranges":[{"startOffset":26686,"endOffset":26876,"count":0}],"isBlockCoverage":false},{"functionName":"createWarnOnce","ranges":[{"startOffset":26953,"endOffset":27135,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":27019,"endOffset":27128,"count":0}],"isBlockCoverage":false},{"functionName":"clearTimer","ranges":[{"startOffset":27284,"endOffset":29428,"count":0}],"isBlockCoverage":false},{"functionName":"uninstall","ranges":[{"startOffset":29504,"endOffset":32465,"count":0}],"isBlockCoverage":false},{"functionName":"hijackMethod","ranges":[{"startOffset":32659,"endOffset":34292,"count":0}],"isBlockCoverage":false},{"functionName":"doIntervalTick","ranges":[{"startOffset":34382,"endOffset":34476,"count":0}],"isBlockCoverage":false},{"functionName":"createClock","ranges":[{"startOffset":37053,"endOffset":61681,"count":0}],"isBlockCoverage":false},{"functionName":"createIntervalTick","ranges":[{"startOffset":61687,"endOffset":61920,"count":0}],"isBlockCoverage":false},{"functionName":"install","ranges":[{"startOffset":62052,"endOffset":78206,"count":0}],"isBlockCoverage":false}]},{"scriptId":"431","url":"node:timers/promises","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6390,"count":1}],"isBlockCoverage":false},{"functionName":"cancelListenerHandler","ranges":[{"startOffset":706,"endOffset":876,"count":0}],"isBlockCoverage":false},{"functionName":"setTimeout","ranges":[{"startOffset":878,"endOffset":2187,"count":0}],"isBlockCoverage":false},{"functionName":"setImmediate","ranges":[{"startOffset":2189,"endOffset":3424,"count":0}],"isBlockCoverage":false},{"functionName":"setInterval","ranges":[{"startOffset":3426,"endOffset":5110,"count":0}],"isBlockCoverage":false},{"functionName":"Scheduler","ranges":[{"startOffset":5655,"endOffset":5715,"count":0}],"isBlockCoverage":true},{"functionName":"yield","ranges":[{"startOffset":5761,"endOffset":5875,"count":0}],"isBlockCoverage":false},{"functionName":"wait","ranges":[{"startOffset":6076,"endOffset":6226,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6324,"endOffset":6369,"count":1}],"isBlockCoverage":true}]},{"scriptId":"432","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/mock.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5866,"count":1}],"isBlockCoverage":true},{"functionName":"mock","ranges":[{"startOffset":618,"endOffset":806,"count":0}],"isBlockCoverage":false},{"functionName":"each","ranges":[{"startOffset":808,"endOffset":910,"count":0}],"isBlockCoverage":false},{"functionName":"arrayEquals","ranges":[{"startOffset":912,"endOffset":1147,"count":0}],"isBlockCoverage":false},{"functionName":"create","ranges":[{"startOffset":1176,"endOffset":1427,"count":0}],"isBlockCoverage":false},{"functionName":"expects","ranges":[{"startOffset":1443,"endOffset":2242,"count":0}],"isBlockCoverage":false},{"functionName":"restore","ranges":[{"startOffset":2258,"endOffset":2497,"count":0}],"isBlockCoverage":false},{"functionName":"verify","ranges":[{"startOffset":2512,"endOffset":3283,"count":0}],"isBlockCoverage":false},{"functionName":"invokeMethod","ranges":[{"startOffset":3304,"endOffset":5836,"count":0}],"isBlockCoverage":false}]},{"scriptId":"433","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/mock-expectation.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8509,"count":1}],"isBlockCoverage":true},{"functionName":"callCountInWords","ranges":[{"startOffset":711,"endOffset":864,"count":0}],"isBlockCoverage":false},{"functionName":"expectedCallCountInWords","ranges":[{"startOffset":866,"endOffset":1361,"count":0}],"isBlockCoverage":false},{"functionName":"receivedMinCalls","ranges":[{"startOffset":1363,"endOffset":1545,"count":0}],"isBlockCoverage":false},{"functionName":"receivedMaxCalls","ranges":[{"startOffset":1547,"endOffset":1729,"count":0}],"isBlockCoverage":false},{"functionName":"verifyMatcher","ranges":[{"startOffset":1731,"endOffset":1897,"count":0}],"isBlockCoverage":false},{"functionName":"create","ranges":[{"startOffset":1972,"endOffset":2181,"count":0}],"isBlockCoverage":false},{"functionName":"invoke","ranges":[{"startOffset":2196,"endOffset":2343,"count":0}],"isBlockCoverage":false},{"functionName":"atLeast","ranges":[{"startOffset":2359,"endOffset":2674,"count":0}],"isBlockCoverage":false},{"functionName":"atMost","ranges":[{"startOffset":2689,"endOffset":3003,"count":0}],"isBlockCoverage":false},{"functionName":"never","ranges":[{"startOffset":3017,"endOffset":3073,"count":0}],"isBlockCoverage":false},{"functionName":"once","ranges":[{"startOffset":3086,"endOffset":3141,"count":0}],"isBlockCoverage":false},{"functionName":"twice","ranges":[{"startOffset":3155,"endOffset":3211,"count":0}],"isBlockCoverage":false},{"functionName":"thrice","ranges":[{"startOffset":3226,"endOffset":3283,"count":0}],"isBlockCoverage":false},{"functionName":"exactly","ranges":[{"startOffset":3299,"endOffset":3514,"count":0}],"isBlockCoverage":false},{"functionName":"met","ranges":[{"startOffset":3526,"endOffset":3603,"count":0}],"isBlockCoverage":false},{"functionName":"verifyCallAllowed","ranges":[{"startOffset":3629,"endOffset":5950,"count":0}],"isBlockCoverage":false},{"functionName":"allowsCall","ranges":[{"startOffset":5969,"endOffset":7014,"count":0}],"isBlockCoverage":false},{"functionName":"withArgs","ranges":[{"startOffset":7031,"endOffset":7130,"count":0}],"isBlockCoverage":false},{"functionName":"withExactArgs","ranges":[{"startOffset":7152,"endOffset":7293,"count":0}],"isBlockCoverage":false},{"functionName":"on","ranges":[{"startOffset":7304,"endOffset":7394,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":7411,"endOffset":8024,"count":0}],"isBlockCoverage":false},{"functionName":"verify","ranges":[{"startOffset":8039,"endOffset":8236,"count":0}],"isBlockCoverage":false},{"functionName":"pass","ranges":[{"startOffset":8249,"endOffset":8309,"count":0}],"isBlockCoverage":false},{"functionName":"fail","ranges":[{"startOffset":8322,"endOffset":8469,"count":0}],"isBlockCoverage":false}]},{"scriptId":"434","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/proxy-invoke.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2811,"count":1}],"isBlockCoverage":true},{"functionName":"invoke","ranges":[{"startOffset":360,"endOffset":2809,"count":42},{"startOffset":1216,"endOffset":1595,"count":0},{"startOffset":1689,"endOffset":1729,"count":0},{"startOffset":2750,"endOffset":2782,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":689,"endOffset":896,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1880,"endOffset":2003,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2467,"endOffset":2543,"count":0}],"isBlockCoverage":false}]},{"scriptId":"435","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/proxy-call-util.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1767,"count":1}],"isBlockCoverage":true},{"functionName":"incrementCallCount","ranges":[{"startOffset":109,"endOffset":368,"count":42}],"isBlockCoverage":true},{"functionName":"createCallProperties","ranges":[{"startOffset":402,"endOffset":620,"count":84}],"isBlockCoverage":true},{"functionName":"delegateToCalls","ranges":[{"startOffset":649,"endOffset":1765,"count":26}],"isBlockCoverage":true},{"functionName":"proxy.<computed>","ranges":[{"startOffset":802,"endOffset":1762,"count":6},{"startOffset":842,"endOffset":979,"count":0},{"startOffset":1022,"endOffset":1058,"count":2},{"startOffset":1060,"endOffset":1097,"count":0},{"startOffset":1242,"endOffset":1640,"count":8},{"startOffset":1338,"endOffset":1347,"count":6},{"startOffset":1501,"endOffset":1630,"count":6},{"startOffset":1640,"endOffset":1761,"count":0}],"isBlockCoverage":true}]},{"scriptId":"436","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/proxy-call.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8134,"count":1}],"isBlockCoverage":true},{"functionName":"throwYieldError","ranges":[{"startOffset":609,"endOffset":810,"count":0}],"isBlockCoverage":false},{"functionName":"calledOn","ranges":[{"startOffset":846,"endOffset":1030,"count":0}],"isBlockCoverage":false},{"functionName":"calledWith","ranges":[{"startOffset":1049,"endOffset":1442,"count":8},{"startOffset":1204,"endOffset":1241,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1306,"endOffset":1406,"count":14},{"startOffset":1360,"endOffset":1391,"count":12}],"isBlockCoverage":true},{"functionName":"calledWithMatch","ranges":[{"startOffset":1466,"endOffset":1936,"count":0}],"isBlockCoverage":false},{"functionName":"calledWithExactly","ranges":[{"startOffset":1962,"endOffset":2130,"count":0}],"isBlockCoverage":false},{"functionName":"notCalledWith","ranges":[{"startOffset":2152,"endOffset":2240,"count":0}],"isBlockCoverage":false},{"functionName":"notCalledWithMatch","ranges":[{"startOffset":2267,"endOffset":2365,"count":0}],"isBlockCoverage":false},{"functionName":"returned","ranges":[{"startOffset":2382,"endOffset":2465,"count":0}],"isBlockCoverage":false},{"functionName":"threw","ranges":[{"startOffset":2479,"endOffset":2700,"count":0}],"isBlockCoverage":false},{"functionName":"calledWithNew","ranges":[{"startOffset":2722,"endOffset":2831,"count":42},{"startOffset":2785,"endOffset":2824,"count":10}],"isBlockCoverage":true},{"functionName":"calledBefore","ranges":[{"startOffset":2852,"endOffset":2919,"count":0}],"isBlockCoverage":false},{"functionName":"calledAfter","ranges":[{"startOffset":2939,"endOffset":3006,"count":0}],"isBlockCoverage":false},{"functionName":"calledImmediatelyBefore","ranges":[{"startOffset":3038,"endOffset":3111,"count":0}],"isBlockCoverage":false},{"functionName":"calledImmediatelyAfter","ranges":[{"startOffset":3142,"endOffset":3215,"count":0}],"isBlockCoverage":false},{"functionName":"callArg","ranges":[{"startOffset":3231,"endOffset":3326,"count":0}],"isBlockCoverage":false},{"functionName":"callArgOn","ranges":[{"startOffset":3344,"endOffset":3465,"count":0}],"isBlockCoverage":false},{"functionName":"callArgWith","ranges":[{"startOffset":3485,"endOffset":3631,"count":0}],"isBlockCoverage":false},{"functionName":"callArgOnWith","ranges":[{"startOffset":3653,"endOffset":3822,"count":0}],"isBlockCoverage":false},{"functionName":"throwArg","ranges":[{"startOffset":3839,"endOffset":4082,"count":0}],"isBlockCoverage":false},{"functionName":"yield","ranges":[{"startOffset":4096,"endOffset":4193,"count":0}],"isBlockCoverage":false},{"functionName":"yieldOn","ranges":[{"startOffset":4209,"endOffset":4646,"count":0}],"isBlockCoverage":false},{"functionName":"yieldTo","ranges":[{"startOffset":4662,"endOffset":4806,"count":0}],"isBlockCoverage":false},{"functionName":"yieldToOn","ranges":[{"startOffset":4824,"endOffset":5400,"count":0}],"isBlockCoverage":false},{"functionName":"toString","ranges":[{"startOffset":5417,"endOffset":6432,"count":0}],"isBlockCoverage":false},{"functionName":"ensureArgIsAFunction","ranges":[{"startOffset":6461,"endOffset":6721,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6825,"endOffset":6925,"count":0}],"isBlockCoverage":false},{"functionName":"createProxyCall","ranges":[{"startOffset":7154,"endOffset":8034,"count":334},{"startOffset":7316,"endOffset":7379,"count":0},{"startOffset":7434,"endOffset":7510,"count":324},{"startOffset":7597,"endOffset":7629,"count":324},{"startOffset":7630,"endOffset":7639,"count":54},{"startOffset":7640,"endOffset":7651,"count":280}],"isBlockCoverage":true}]},{"scriptId":"437","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/stub.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7743,"count":1}],"isBlockCoverage":true},{"functionName":"createStub","ranges":[{"startOffset":1085,"endOffset":2164,"count":4},{"startOffset":1859,"endOffset":1887,"count":0}],"isBlockCoverage":true},{"functionName":"functionStub","ranges":[{"startOffset":1186,"endOffset":1643,"count":10}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1377,"endOffset":1544,"count":0}],"isBlockCoverage":false},{"functionName":"stub","ranges":[{"startOffset":2166,"endOffset":4104,"count":4},{"startOffset":2230,"endOffset":2350,"count":0},{"startOffset":2380,"endOffset":2448,"count":0},{"startOffset":2547,"endOffset":2670,"count":0},{"startOffset":3143,"endOffset":3185,"count":0},{"startOffset":3186,"endOffset":3298,"count":0},{"startOffset":3333,"endOffset":3381,"count":0},{"startOffset":3446,"endOffset":3554,"count":0},{"startOffset":3567,"endOffset":3573,"count":0},{"startOffset":4064,"endOffset":4067,"count":0},{"startOffset":4068,"endOffset":4101,"count":0}],"isBlockCoverage":true},{"functionName":"restore","ranges":[{"startOffset":3759,"endOffset":4016,"count":0}],"isBlockCoverage":false},{"functionName":"assertValidPropertyDescriptor","ranges":[{"startOffset":4106,"endOffset":5007,"count":4},{"startOffset":4189,"endOffset":4201,"count":0},{"startOffset":4226,"endOffset":4279,"count":0},{"startOffset":4280,"endOffset":4303,"count":0},{"startOffset":4305,"endOffset":4665,"count":0},{"startOffset":4667,"endOffset":4694,"count":0},{"startOffset":4696,"endOffset":4884,"count":0},{"startOffset":4886,"endOffset":5005,"count":0}],"isBlockCoverage":true},{"functionName":"isDataDescriptor","ranges":[{"startOffset":5009,"endOffset":5182,"count":0}],"isBlockCoverage":false},{"functionName":"getParentBehaviour","ranges":[{"startOffset":5224,"endOffset":5344,"count":2},{"startOffset":5299,"endOffset":5341,"count":0}],"isBlockCoverage":true},{"functionName":"getDefaultBehavior","ranges":[{"startOffset":5346,"endOffset":5533,"count":10},{"startOffset":5440,"endOffset":5483,"count":2},{"startOffset":5484,"endOffset":5524,"count":2}],"isBlockCoverage":true},{"functionName":"getCurrentBehavior","ranges":[{"startOffset":5535,"endOffset":5788,"count":10},{"startOffset":5686,"endOffset":5716,"count":0},{"startOffset":5725,"endOffset":5742,"count":0}],"isBlockCoverage":true},{"functionName":"resetBehavior","ranges":[{"startOffset":5864,"endOffset":6270,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":6284,"endOffset":6362,"count":0}],"isBlockCoverage":false},{"functionName":"onCall","ranges":[{"startOffset":6377,"endOffset":6553,"count":0}],"isBlockCoverage":false},{"functionName":"onFirstCall","ranges":[{"startOffset":6573,"endOffset":6634,"count":0}],"isBlockCoverage":false},{"functionName":"onSecondCall","ranges":[{"startOffset":6655,"endOffset":6717,"count":0}],"isBlockCoverage":false},{"functionName":"onThirdCall","ranges":[{"startOffset":6737,"endOffset":6798,"count":0}],"isBlockCoverage":false},{"functionName":"withArgs","ranges":[{"startOffset":6815,"endOffset":7207,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7244,"endOffset":7490,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7526,"endOffset":7695,"count":34}],"isBlockCoverage":true}]},{"scriptId":"438","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/default-behaviors.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9007,"count":1}],"isBlockCoverage":true},{"functionName":"throwsException","ranges":[{"startOffset":382,"endOffset":968,"count":0}],"isBlockCoverage":false},{"functionName":"callsFake","ranges":[{"startOffset":1012,"endOffset":1188,"count":2}],"isBlockCoverage":true},{"functionName":"callsArg","ranges":[{"startOffset":1205,"endOffset":1580,"count":0}],"isBlockCoverage":false},{"functionName":"callsArgOn","ranges":[{"startOffset":1599,"endOffset":1983,"count":0}],"isBlockCoverage":false},{"functionName":"callsArgWith","ranges":[{"startOffset":2004,"endOffset":2400,"count":0}],"isBlockCoverage":false},{"functionName":"callsArgWith","ranges":[{"startOffset":2423,"endOffset":2826,"count":0}],"isBlockCoverage":false},{"functionName":"yields","ranges":[{"startOffset":2841,"endOffset":3148,"count":0}],"isBlockCoverage":false},{"functionName":"yieldsRight","ranges":[{"startOffset":3168,"endOffset":3476,"count":0}],"isBlockCoverage":false},{"functionName":"yieldsOn","ranges":[{"startOffset":3493,"endOffset":3807,"count":0}],"isBlockCoverage":false},{"functionName":"yieldsTo","ranges":[{"startOffset":3824,"endOffset":4132,"count":0}],"isBlockCoverage":false},{"functionName":"yieldsToOn","ranges":[{"startOffset":4151,"endOffset":4431,"count":0}],"isBlockCoverage":false},{"functionName":"returns","ranges":[{"startOffset":4515,"endOffset":4832,"count":0}],"isBlockCoverage":false},{"functionName":"returnsArg","ranges":[{"startOffset":4851,"endOffset":5077,"count":0}],"isBlockCoverage":false},{"functionName":"throwsArg","ranges":[{"startOffset":5095,"endOffset":5319,"count":0}],"isBlockCoverage":false},{"functionName":"returnsThis","ranges":[{"startOffset":5339,"endOffset":5440,"count":0}],"isBlockCoverage":false},{"functionName":"resolves","ranges":[{"startOffset":5457,"endOffset":5808,"count":0}],"isBlockCoverage":false},{"functionName":"resolvesArg","ranges":[{"startOffset":5828,"endOffset":6338,"count":0}],"isBlockCoverage":false},{"functionName":"rejects","ranges":[{"startOffset":6354,"endOffset":7002,"count":0}],"isBlockCoverage":false},{"functionName":"resolvesThis","ranges":[{"startOffset":7023,"endOffset":7376,"count":0}],"isBlockCoverage":false},{"functionName":"callThrough","ranges":[{"startOffset":7396,"endOffset":7464,"count":0}],"isBlockCoverage":false},{"functionName":"callThroughWithNew","ranges":[{"startOffset":7491,"endOffset":7573,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7585,"endOffset":7942,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":7954,"endOffset":8437,"count":0}],"isBlockCoverage":false},{"functionName":"value","ranges":[{"startOffset":8451,"endOffset":8874,"count":0}],"isBlockCoverage":false}]},{"scriptId":"439","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/proxy.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":10074,"count":1}],"isBlockCoverage":true},{"functionName":"named","ranges":[{"startOffset":593,"endOffset":1041,"count":0}],"isBlockCoverage":false},{"functionName":"matchingFakes","ranges":[{"startOffset":1205,"endOffset":1267,"count":0}],"isBlockCoverage":false},{"functionName":"getCall","ranges":[{"startOffset":1283,"endOffset":1806,"count":386},{"startOffset":1351,"endOffset":1471,"count":0},{"startOffset":1514,"endOffset":1550,"count":52},{"startOffset":1550,"endOffset":1805,"count":334}],"isBlockCoverage":true},{"functionName":"getCalls","ranges":[{"startOffset":1823,"endOffset":2006,"count":0}],"isBlockCoverage":false},{"functionName":"calledBefore","ranges":[{"startOffset":2027,"endOffset":2267,"count":0}],"isBlockCoverage":false},{"functionName":"calledAfter","ranges":[{"startOffset":2287,"endOffset":2472,"count":0}],"isBlockCoverage":false},{"functionName":"calledImmediatelyBefore","ranges":[{"startOffset":2504,"endOffset":2761,"count":0}],"isBlockCoverage":false},{"functionName":"calledImmediatelyAfter","ranges":[{"startOffset":2792,"endOffset":3048,"count":0}],"isBlockCoverage":false},{"functionName":"printf","ranges":[{"startOffset":3108,"endOffset":3653,"count":0}],"isBlockCoverage":false},{"functionName":"resetHistory","ranges":[{"startOffset":3674,"endOffset":4718,"count":4},{"startOffset":3715,"endOffset":3994,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4610,"endOffset":4678,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5764,"endOffset":5804,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5920,"endOffset":5960,"count":0}],"isBlockCoverage":false},{"functionName":"createProxy","ranges":[{"startOffset":6299,"endOffset":6553,"count":8}],"isBlockCoverage":true},{"functionName":"wrapFunction","ranges":[{"startOffset":6555,"endOffset":10042,"count":8},{"startOffset":6880,"endOffset":7019,"count":6},{"startOffset":7028,"endOffset":7168,"count":0},{"startOffset":7177,"endOffset":7320,"count":0},{"startOffset":7329,"endOffset":7475,"count":2},{"startOffset":7484,"endOffset":7633,"count":0},{"startOffset":7642,"endOffset":7794,"count":0},{"startOffset":7803,"endOffset":7958,"count":0},{"startOffset":7967,"endOffset":8125,"count":0},{"startOffset":8134,"endOffset":8295,"count":0},{"startOffset":8304,"endOffset":8468,"count":0},{"startOffset":8477,"endOffset":8645,"count":0},{"startOffset":8654,"endOffset":8825,"count":0},{"startOffset":8834,"endOffset":9008,"count":0},{"startOffset":9017,"endOffset":9157,"count":0}],"isBlockCoverage":true},{"functionName":"proxy","ranges":[{"startOffset":6904,"endOffset":6999,"count":12}],"isBlockCoverage":true},{"functionName":"proxy","ranges":[{"startOffset":7052,"endOffset":7148,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":7201,"endOffset":7300,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":7353,"endOffset":7455,"count":30}],"isBlockCoverage":true},{"functionName":"proxy","ranges":[{"startOffset":7508,"endOffset":7613,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":7666,"endOffset":7774,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":7827,"endOffset":7938,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":7991,"endOffset":8105,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":8158,"endOffset":8275,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":8328,"endOffset":8448,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":8502,"endOffset":8625,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":8679,"endOffset":8805,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":8859,"endOffset":8988,"count":0}],"isBlockCoverage":false},{"functionName":"proxy","ranges":[{"startOffset":9042,"endOffset":9137,"count":0}],"isBlockCoverage":false}]},{"scriptId":"440","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/function-to-string.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":664,"count":1}],"isBlockCoverage":true},{"functionName":"toString","ranges":[{"startOffset":32,"endOffset":662,"count":0}],"isBlockCoverage":false}]},{"scriptId":"441","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/spy-formatters.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4625,"count":1}],"isBlockCoverage":true},{"functionName":"colorSinonMatchText","ranges":[{"startOffset":587,"endOffset":1032,"count":0}],"isBlockCoverage":false},{"functionName":"colorDiffText","ranges":[{"startOffset":1098,"endOffset":1516,"count":0}],"isBlockCoverage":false},{"functionName":"quoteStringValue","ranges":[{"startOffset":1582,"endOffset":1717,"count":0}],"isBlockCoverage":false},{"functionName":"c","ranges":[{"startOffset":1745,"endOffset":1827,"count":0}],"isBlockCoverage":false},{"functionName":"n","ranges":[{"startOffset":1837,"endOffset":1993,"count":0}],"isBlockCoverage":false},{"functionName":"D","ranges":[{"startOffset":2003,"endOffset":3652,"count":0}],"isBlockCoverage":false},{"functionName":"C","ranges":[{"startOffset":3662,"endOffset":4186,"count":0}],"isBlockCoverage":false},{"functionName":"t","ranges":[{"startOffset":4196,"endOffset":4430,"count":0}],"isBlockCoverage":false},{"functionName":"*","ranges":[{"startOffset":4442,"endOffset":4620,"count":0}],"isBlockCoverage":false}]},{"scriptId":"442","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/colorizer.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":767,"count":1}],"isBlockCoverage":true},{"functionName":"Colorizer","ranges":[{"startOffset":54,"endOffset":160,"count":1}],"isBlockCoverage":true},{"functionName":"colorize","ranges":[{"startOffset":293,"endOffset":453,"count":0}],"isBlockCoverage":false},{"functionName":"red","ranges":[{"startOffset":459,"endOffset":514,"count":0}],"isBlockCoverage":false},{"functionName":"green","ranges":[{"startOffset":520,"endOffset":577,"count":0}],"isBlockCoverage":false},{"functionName":"cyan","ranges":[{"startOffset":583,"endOffset":639,"count":0}],"isBlockCoverage":false},{"functionName":"white","ranges":[{"startOffset":645,"endOffset":702,"count":0}],"isBlockCoverage":false},{"functionName":"bold","ranges":[{"startOffset":708,"endOffset":763,"count":0}],"isBlockCoverage":false}]},{"scriptId":"443","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/supports-color/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2748,"count":1},{"startOffset":250,"endOffset":270,"count":0},{"startOffset":374,"endOffset":394,"count":0},{"startOffset":422,"endOffset":646,"count":0}],"isBlockCoverage":true},{"functionName":"translateLevel","ranges":[{"startOffset":648,"endOffset":806,"count":2},{"startOffset":719,"endOffset":805,"count":0}],"isBlockCoverage":true},{"functionName":"supportsColor","ranges":[{"startOffset":808,"endOffset":2439,"count":2},{"startOffset":881,"endOffset":897,"count":0},{"startOffset":985,"endOffset":1001,"count":0},{"startOffset":1030,"endOffset":1046,"count":0},{"startOffset":1125,"endOffset":1155,"count":0},{"startOffset":1184,"endOffset":2438,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1706,"endOffset":1725,"count":0}],"isBlockCoverage":false},{"functionName":"getSupportLevel","ranges":[{"startOffset":2441,"endOffset":2570,"count":0}],"isBlockCoverage":false}]},{"scriptId":"444","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/has-flag/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":330,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":32,"endOffset":328,"count":16},{"startOffset":102,"endOffset":106,"count":0},{"startOffset":128,"endOffset":133,"count":0},{"startOffset":262,"endOffset":325,"count":0}],"isBlockCoverage":true}]},{"scriptId":"445","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/index.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5881,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":1549,"endOffset":1597,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1675,"endOffset":1727,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1844,"endOffset":1887,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1970,"endOffset":2022,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2095,"endOffset":2137,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2220,"endOffset":2272,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2389,"endOffset":2432,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2513,"endOffset":2563,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2636,"endOffset":2678,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2807,"endOffset":2858,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2935,"endOffset":2985,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3098,"endOffset":3138,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3210,"endOffset":3250,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3366,"endOffset":3408,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3485,"endOffset":3531,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3604,"endOffset":3646,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3766,"endOffset":3811,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3885,"endOffset":3929,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4050,"endOffset":4095,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4172,"endOffset":4219,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4340,"endOffset":4385,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4512,"endOffset":4561,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4689,"endOffset":4740,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4824,"endOffset":4879,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":4955,"endOffset":5002,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":5078,"endOffset":5125,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":5205,"endOffset":5256,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":5338,"endOffset":5391,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":5468,"endOffset":5516,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":5644,"endOffset":5696,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":5824,"endOffset":5876,"count":0}],"isBlockCoverage":false}]},{"scriptId":"446","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/diff/base.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12666,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":103,"endOffset":12637,"count":1}],"isBlockCoverage":true},{"functionName":"Diff","ranges":[{"startOffset":121,"endOffset":144,"count":8}],"isBlockCoverage":true},{"functionName":"Diff.diff","ranges":[{"startOffset":171,"endOffset":1007,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.diffWithOptionsObj","ranges":[{"startOffset":1049,"endOffset":7554,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.addToPath","ranges":[{"startOffset":7587,"endOffset":8225,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.extractCommon","ranges":[{"startOffset":8262,"endOffset":9144,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.equals","ranges":[{"startOffset":9174,"endOffset":9457,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.removeEmpty","ranges":[{"startOffset":9492,"endOffset":9695,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.castInput","ranges":[{"startOffset":9794,"endOffset":9849,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.tokenize","ranges":[{"startOffset":9947,"endOffset":10014,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.join","ranges":[{"startOffset":10042,"endOffset":10470,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.postProcess","ranges":[{"startOffset":10505,"endOffset":10647,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":10725,"endOffset":10774,"count":0}],"isBlockCoverage":false},{"functionName":"Diff.buildValues","ranges":[{"startOffset":10871,"endOffset":12617,"count":0}],"isBlockCoverage":false}]},{"scriptId":"447","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/diff/character.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1350,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59,"endOffset":772,"count":1}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":97,"endOffset":408,"count":1},{"startOffset":161,"endOffset":252,"count":0},{"startOffset":253,"endOffset":365,"count":0}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":215,"endOffset":251,"count":0}],"isBlockCoverage":false},{"functionName":"extendStatics","ranges":[{"startOffset":268,"endOffset":365,"count":0}],"isBlockCoverage":false},{"functionName":"__extends","ranges":[{"startOffset":421,"endOffset":769,"count":1},{"startOffset":475,"endOffset":488,"count":0},{"startOffset":502,"endOffset":592,"count":0},{"startOffset":703,"endOffset":721,"count":0}],"isBlockCoverage":true},{"functionName":"__","ranges":[{"startOffset":630,"endOffset":669,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":976,"endOffset":1171,"count":1}],"isBlockCoverage":true},{"functionName":"CharacterDiff","ranges":[{"startOffset":1038,"endOffset":1143,"count":1}],"isBlockCoverage":true},{"functionName":"diffChars","ranges":[{"startOffset":1238,"endOffset":1349,"count":0}],"isBlockCoverage":false}]},{"scriptId":"448","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/diff/word.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":16671,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59,"endOffset":772,"count":1}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":97,"endOffset":408,"count":1},{"startOffset":161,"endOffset":252,"count":0},{"startOffset":253,"endOffset":365,"count":0}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":215,"endOffset":251,"count":0}],"isBlockCoverage":false},{"functionName":"extendStatics","ranges":[{"startOffset":268,"endOffset":365,"count":0}],"isBlockCoverage":false},{"functionName":"__extends","ranges":[{"startOffset":421,"endOffset":769,"count":2},{"startOffset":475,"endOffset":488,"count":0},{"startOffset":502,"endOffset":592,"count":0},{"startOffset":703,"endOffset":721,"count":0}],"isBlockCoverage":true},{"functionName":"__","ranges":[{"startOffset":630,"endOffset":669,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3448,"endOffset":8181,"count":1}],"isBlockCoverage":true},{"functionName":"WordDiff","ranges":[{"startOffset":3505,"endOffset":3605,"count":1}],"isBlockCoverage":true},{"functionName":"WordDiff.equals","ranges":[{"startOffset":3638,"endOffset":3846,"count":0}],"isBlockCoverage":false},{"functionName":"WordDiff.tokenize","ranges":[{"startOffset":3882,"endOffset":6355,"count":0}],"isBlockCoverage":false},{"functionName":"WordDiff.join","ranges":[{"startOffset":6387,"endOffset":7055,"count":0}],"isBlockCoverage":false},{"functionName":"WordDiff.postProcess","ranges":[{"startOffset":7094,"endOffset":8157,"count":0}],"isBlockCoverage":false},{"functionName":"diffWords","ranges":[{"startOffset":8238,"endOffset":8821,"count":0}],"isBlockCoverage":false},{"functionName":"dedupeWhitespaceInChangeObjects","ranges":[{"startOffset":8822,"endOffset":15599,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":15640,"endOffset":16468,"count":1}],"isBlockCoverage":true},{"functionName":"WordsWithSpaceDiff","ranges":[{"startOffset":15707,"endOffset":15817,"count":1}],"isBlockCoverage":true},{"functionName":"WordsWithSpaceDiff.tokenize","ranges":[{"startOffset":15862,"endOffset":16434,"count":0}],"isBlockCoverage":false},{"functionName":"diffWordsWithSpace","ranges":[{"startOffset":16545,"endOffset":16670,"count":0}],"isBlockCoverage":false}]},{"scriptId":"449","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/util/string.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5121,"count":1}],"isBlockCoverage":true},{"functionName":"longestCommonPrefix","ranges":[{"startOffset":548,"endOffset":778,"count":0}],"isBlockCoverage":false},{"functionName":"longestCommonSuffix","ranges":[{"startOffset":779,"endOffset":1327,"count":0}],"isBlockCoverage":false},{"functionName":"replacePrefix","ranges":[{"startOffset":1328,"endOffset":1650,"count":0}],"isBlockCoverage":false},{"functionName":"replaceSuffix","ranges":[{"startOffset":1651,"endOffset":2036,"count":0}],"isBlockCoverage":false},{"functionName":"removePrefix","ranges":[{"startOffset":2037,"endOffset":2130,"count":0}],"isBlockCoverage":false},{"functionName":"removeSuffix","ranges":[{"startOffset":2131,"endOffset":2224,"count":0}],"isBlockCoverage":false},{"functionName":"maximumOverlap","ranges":[{"startOffset":2225,"endOffset":2331,"count":0}],"isBlockCoverage":false},{"functionName":"overlapCount","ranges":[{"startOffset":2392,"endOffset":3511,"count":0}],"isBlockCoverage":false},{"functionName":"hasOnlyWinLineEndings","ranges":[{"startOffset":3590,"endOffset":3724,"count":0}],"isBlockCoverage":false},{"functionName":"hasOnlyUnixLineEndings","ranges":[{"startOffset":3800,"endOffset":3905,"count":0}],"isBlockCoverage":false},{"functionName":"trailingWs","ranges":[{"startOffset":3906,"endOffset":4929,"count":0}],"isBlockCoverage":false},{"functionName":"leadingWs","ranges":[{"startOffset":4930,"endOffset":5120,"count":0}],"isBlockCoverage":false}]},{"scriptId":"450","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/diff/line.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3834,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59,"endOffset":772,"count":1}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":97,"endOffset":408,"count":1},{"startOffset":161,"endOffset":252,"count":0},{"startOffset":253,"endOffset":365,"count":0}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":215,"endOffset":251,"count":0}],"isBlockCoverage":false},{"functionName":"extendStatics","ranges":[{"startOffset":268,"endOffset":365,"count":0}],"isBlockCoverage":false},{"functionName":"__extends","ranges":[{"startOffset":421,"endOffset":769,"count":1},{"startOffset":475,"endOffset":488,"count":0},{"startOffset":502,"endOffset":592,"count":0},{"startOffset":703,"endOffset":721,"count":0}],"isBlockCoverage":true},{"functionName":"__","ranges":[{"startOffset":630,"endOffset":669,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1088,"endOffset":2601,"count":1}],"isBlockCoverage":true},{"functionName":"LineDiff","ranges":[{"startOffset":1145,"endOffset":1307,"count":1}],"isBlockCoverage":true},{"functionName":"LineDiff.equals","ranges":[{"startOffset":1340,"endOffset":2577,"count":0}],"isBlockCoverage":false},{"functionName":"diffLines","ranges":[{"startOffset":2658,"endOffset":2764,"count":0}],"isBlockCoverage":false},{"functionName":"diffTrimmedLines","ranges":[{"startOffset":2765,"endOffset":2963,"count":0}],"isBlockCoverage":false},{"functionName":"tokenize","ranges":[{"startOffset":3024,"endOffset":3833,"count":0}],"isBlockCoverage":false}]},{"scriptId":"451","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/util/params.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":521,"count":1}],"isBlockCoverage":true},{"functionName":"generateOptions","ranges":[{"startOffset":120,"endOffset":520,"count":0}],"isBlockCoverage":false}]},{"scriptId":"452","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/diff/sentence.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3064,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59,"endOffset":772,"count":1}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":97,"endOffset":408,"count":1},{"startOffset":161,"endOffset":252,"count":0},{"startOffset":253,"endOffset":365,"count":0}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":215,"endOffset":251,"count":0}],"isBlockCoverage":false},{"functionName":"extendStatics","ranges":[{"startOffset":268,"endOffset":365,"count":0}],"isBlockCoverage":false},{"functionName":"__extends","ranges":[{"startOffset":421,"endOffset":769,"count":1},{"startOffset":475,"endOffset":488,"count":0},{"startOffset":502,"endOffset":592,"count":0},{"startOffset":703,"endOffset":721,"count":0}],"isBlockCoverage":true},{"functionName":"__","ranges":[{"startOffset":630,"endOffset":669,"count":1}],"isBlockCoverage":true},{"functionName":"isSentenceEndPunct","ranges":[{"startOffset":948,"endOffset":1039,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1074,"endOffset":2884,"count":1}],"isBlockCoverage":true},{"functionName":"SentenceDiff","ranges":[{"startOffset":1135,"endOffset":1239,"count":1}],"isBlockCoverage":true},{"functionName":"SentenceDiff.tokenize","ranges":[{"startOffset":1278,"endOffset":2856,"count":0}],"isBlockCoverage":false},{"functionName":"diffSentences","ranges":[{"startOffset":2949,"endOffset":3063,"count":0}],"isBlockCoverage":false}]},{"scriptId":"453","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/diff/css.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1400,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59,"endOffset":772,"count":1}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":97,"endOffset":408,"count":1},{"startOffset":161,"endOffset":252,"count":0},{"startOffset":253,"endOffset":365,"count":0}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":215,"endOffset":251,"count":0}],"isBlockCoverage":false},{"functionName":"extendStatics","ranges":[{"startOffset":268,"endOffset":365,"count":0}],"isBlockCoverage":false},{"functionName":"__extends","ranges":[{"startOffset":421,"endOffset":769,"count":1},{"startOffset":475,"endOffset":488,"count":0},{"startOffset":502,"endOffset":592,"count":0},{"startOffset":703,"endOffset":721,"count":0}],"isBlockCoverage":true},{"functionName":"__","ranges":[{"startOffset":630,"endOffset":669,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":960,"endOffset":1241,"count":1}],"isBlockCoverage":true},{"functionName":"CssDiff","ranges":[{"startOffset":1016,"endOffset":1115,"count":1}],"isBlockCoverage":true},{"functionName":"CssDiff.tokenize","ranges":[{"startOffset":1149,"endOffset":1218,"count":0}],"isBlockCoverage":false},{"functionName":"diffCss","ranges":[{"startOffset":1296,"endOffset":1399,"count":0}],"isBlockCoverage":false}]},{"scriptId":"454","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/diff/json.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4358,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59,"endOffset":772,"count":1}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":97,"endOffset":408,"count":1},{"startOffset":161,"endOffset":252,"count":0},{"startOffset":253,"endOffset":365,"count":0}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":215,"endOffset":251,"count":0}],"isBlockCoverage":false},{"functionName":"extendStatics","ranges":[{"startOffset":268,"endOffset":365,"count":0}],"isBlockCoverage":false},{"functionName":"__extends","ranges":[{"startOffset":421,"endOffset":769,"count":1},{"startOffset":475,"endOffset":488,"count":0},{"startOffset":502,"endOffset":592,"count":0},{"startOffset":703,"endOffset":721,"count":0}],"isBlockCoverage":true},{"functionName":"__","ranges":[{"startOffset":630,"endOffset":669,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1039,"endOffset":2328,"count":1}],"isBlockCoverage":true},{"functionName":"JsonDiff","ranges":[{"startOffset":1096,"endOffset":1268,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":1349,"endOffset":1620,"count":0}],"isBlockCoverage":false},{"functionName":"JsonDiff.castInput","ranges":[{"startOffset":1719,"endOffset":2102,"count":0}],"isBlockCoverage":false},{"functionName":"JsonDiff.equals","ranges":[{"startOffset":2136,"endOffset":2304,"count":0}],"isBlockCoverage":false},{"functionName":"diffJson","ranges":[{"startOffset":2385,"endOffset":2490,"count":0}],"isBlockCoverage":false},{"functionName":"canonicalize","ranges":[{"startOffset":2684,"endOffset":4357,"count":0}],"isBlockCoverage":false}]},{"scriptId":"455","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/diff/array.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1577,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":59,"endOffset":772,"count":1}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":97,"endOffset":408,"count":1},{"startOffset":161,"endOffset":252,"count":0},{"startOffset":253,"endOffset":365,"count":0}],"isBlockCoverage":true},{"functionName":"extendStatics","ranges":[{"startOffset":215,"endOffset":251,"count":0}],"isBlockCoverage":false},{"functionName":"extendStatics","ranges":[{"startOffset":268,"endOffset":365,"count":0}],"isBlockCoverage":false},{"functionName":"__extends","ranges":[{"startOffset":421,"endOffset":769,"count":1},{"startOffset":475,"endOffset":488,"count":0},{"startOffset":502,"endOffset":592,"count":0},{"startOffset":703,"endOffset":721,"count":0}],"isBlockCoverage":true},{"functionName":"__","ranges":[{"startOffset":630,"endOffset":669,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":970,"endOffset":1409,"count":1}],"isBlockCoverage":true},{"functionName":"ArrayDiff","ranges":[{"startOffset":1028,"endOffset":1129,"count":1}],"isBlockCoverage":true},{"functionName":"ArrayDiff.tokenize","ranges":[{"startOffset":1165,"endOffset":1219,"count":0}],"isBlockCoverage":false},{"functionName":"ArrayDiff.join","ranges":[{"startOffset":1252,"endOffset":1298,"count":0}],"isBlockCoverage":false},{"functionName":"ArrayDiff.removeEmpty","ranges":[{"startOffset":1338,"endOffset":1384,"count":0}],"isBlockCoverage":false},{"functionName":"diffArrays","ranges":[{"startOffset":1468,"endOffset":1576,"count":0}],"isBlockCoverage":false}]},{"scriptId":"456","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/patch/apply.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":13530,"count":1}],"isBlockCoverage":true},{"functionName":"applyPatch","ranges":[{"startOffset":2282,"endOffset":2769,"count":0}],"isBlockCoverage":false},{"functionName":"applyStructuredPatch","ranges":[{"startOffset":2770,"endOffset":11818,"count":0}],"isBlockCoverage":false},{"functionName":"applyPatches","ranges":[{"startOffset":12767,"endOffset":13529,"count":0}],"isBlockCoverage":false}]},{"scriptId":"457","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/patch/line-endings.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3108,"count":1}],"isBlockCoverage":true},{"functionName":"__assign","ranges":[{"startOffset":56,"endOffset":395,"count":0}],"isBlockCoverage":false},{"functionName":"unixToWin","ranges":[{"startOffset":570,"endOffset":1616,"count":0}],"isBlockCoverage":false},{"functionName":"winToUnix","ranges":[{"startOffset":1617,"endOffset":2059,"count":0}],"isBlockCoverage":false},{"functionName":"isUnix","ranges":[{"startOffset":2189,"endOffset":2470,"count":0}],"isBlockCoverage":false},{"functionName":"isWin","ranges":[{"startOffset":2565,"endOffset":3107,"count":0}],"isBlockCoverage":false}]},{"scriptId":"458","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/patch/parse.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6317,"count":1}],"isBlockCoverage":true},{"functionName":"parsePatch","ranges":[{"startOffset":317,"endOffset":6316,"count":0}],"isBlockCoverage":false}]},{"scriptId":"459","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/util/distance-iterator.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1587,"count":1}],"isBlockCoverage":true},{"functionName":"default_1","ranges":[{"startOffset":284,"endOffset":1586,"count":0}],"isBlockCoverage":false}]},{"scriptId":"460","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/patch/reverse.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1609,"count":1}],"isBlockCoverage":true},{"functionName":"__assign","ranges":[{"startOffset":56,"endOffset":395,"count":0}],"isBlockCoverage":false},{"functionName":"reversePatch","ranges":[{"startOffset":497,"endOffset":1608,"count":0}],"isBlockCoverage":false}]},{"scriptId":"461","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/patch/create.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":10578,"count":1}],"isBlockCoverage":true},{"functionName":"__assign","ranges":[{"startOffset":56,"endOffset":395,"count":0}],"isBlockCoverage":false},{"functionName":"structuredPatch","ranges":[{"startOffset":1093,"endOffset":6906,"count":0}],"isBlockCoverage":false},{"functionName":"formatPatch","ranges":[{"startOffset":7089,"endOffset":8993,"count":0}],"isBlockCoverage":false},{"functionName":"createTwoFilesPatch","ranges":[{"startOffset":8994,"endOffset":9999,"count":0}],"isBlockCoverage":false},{"functionName":"createPatch","ranges":[{"startOffset":10000,"endOffset":10180,"count":0}],"isBlockCoverage":false},{"functionName":"splitLines","ranges":[{"startOffset":10286,"endOffset":10577,"count":0}],"isBlockCoverage":false}]},{"scriptId":"462","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/convert/dmp.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":699,"count":1}],"isBlockCoverage":true},{"functionName":"convertChangesToDMP","ranges":[{"startOffset":279,"endOffset":698,"count":0}],"isBlockCoverage":false}]},{"scriptId":"463","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/node_modules/diff/libcjs/convert/xml.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":898,"count":1}],"isBlockCoverage":true},{"functionName":"convertChangesToXML","ranges":[{"startOffset":200,"endOffset":706,"count":0}],"isBlockCoverage":false},{"functionName":"escapeHTML","ranges":[{"startOffset":707,"endOffset":897,"count":0}],"isBlockCoverage":false}]},{"scriptId":"464","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/is-non-existent-property.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":336,"count":1}],"isBlockCoverage":true},{"functionName":"isNonExistentProperty","ranges":[{"startOffset":139,"endOffset":294,"count":4},{"startOffset":225,"endOffset":259,"count":0},{"startOffset":260,"endOffset":284,"count":0}],"isBlockCoverage":true}]},{"scriptId":"465","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/spy.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5573,"count":1}],"isBlockCoverage":true},{"functionName":"matches","ranges":[{"startOffset":920,"endOffset":1193,"count":0}],"isBlockCoverage":false},{"functionName":"withArgs","ranges":[{"startOffset":1240,"endOffset":2249,"count":0}],"isBlockCoverage":false},{"functionName":"matchingFakes","ranges":[{"startOffset":2316,"endOffset":2464,"count":52}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2381,"endOffset":2456,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2660,"endOffset":2779,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2886,"endOffset":3005,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3111,"endOffset":3231,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3289,"endOffset":3405,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3590,"endOffset":3706,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3768,"endOffset":3947,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4038,"endOffset":4241,"count":0}],"isBlockCoverage":false},{"functionName":"createSpy","ranges":[{"startOffset":4247,"endOffset":4741,"count":4},{"startOffset":4346,"endOffset":4413,"count":0},{"startOffset":4620,"endOffset":4628,"count":0}],"isBlockCoverage":true},{"functionName":"funk","ranges":[{"startOffset":4363,"endOffset":4406,"count":0}],"isBlockCoverage":false},{"functionName":"spy","ranges":[{"startOffset":4743,"endOffset":5528,"count":4},{"startOffset":4811,"endOffset":4877,"count":0},{"startOffset":4897,"endOffset":4928,"count":0},{"startOffset":4930,"endOffset":4971,"count":0},{"startOffset":4991,"endOffset":5020,"count":0},{"startOffset":5022,"endOffset":5069,"count":0},{"startOffset":5087,"endOffset":5099,"count":0},{"startOffset":5101,"endOffset":5179,"count":0},{"startOffset":5278,"endOffset":5527,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5128,"endOffset":5171,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5391,"endOffset":5470,"count":0}],"isBlockCoverage":false}]},{"scriptId":"466","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/is-es-module.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":554,"count":1}],"isBlockCoverage":true},{"functionName":"module.exports","ranges":[{"startOffset":369,"endOffset":552,"count":8},{"startOffset":417,"endOffset":457,"count":4},{"startOffset":458,"endOffset":508,"count":4},{"startOffset":509,"endOffset":543,"count":0}],"isBlockCoverage":true}]},{"scriptId":"467","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/walk-object.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1653,"count":1}],"isBlockCoverage":true},{"functionName":"walkObject","ranges":[{"startOffset":557,"endOffset":1622,"count":0}],"isBlockCoverage":false}]},{"scriptId":"468","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/wrap-method.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8738,"count":1}],"isBlockCoverage":true},{"functionName":"noop","ranges":[{"startOffset":74,"endOffset":82,"count":0}],"isBlockCoverage":false},{"functionName":"isFunction","ranges":[{"startOffset":450,"endOffset":600,"count":4},{"startOffset":524,"endOffset":591,"count":0}],"isBlockCoverage":true},{"functionName":"mirrorProperties","ranges":[{"startOffset":602,"endOffset":782,"count":8},{"startOffset":677,"endOffset":780,"count":20},{"startOffset":722,"endOffset":774,"count":16}],"isBlockCoverage":true},{"functionName":"getAccessor","ranges":[{"startOffset":784,"endOffset":1175,"count":6},{"startOffset":983,"endOffset":1156,"count":12},{"startOffset":1035,"endOffset":1095,"count":0},{"startOffset":1106,"endOffset":1150,"count":0}],"isBlockCoverage":true},{"functionName":"wrapMethod","ranges":[{"startOffset":1282,"endOffset":8736,"count":4},{"startOffset":1347,"endOffset":1417,"count":0},{"startOffset":1456,"endOffset":1485,"count":0},{"startOffset":1487,"endOffset":1610,"count":0},{"startOffset":3276,"endOffset":3310,"count":0},{"startOffset":3426,"endOffset":3434,"count":0},{"startOffset":3538,"endOffset":3693,"count":0},{"startOffset":3742,"endOffset":3788,"count":0},{"startOffset":3799,"endOffset":3934,"count":0},{"startOffset":3954,"endOffset":4173,"count":0},{"startOffset":4773,"endOffset":4828,"count":0},{"startOffset":5066,"endOffset":5307,"count":0},{"startOffset":5313,"endOffset":5362,"count":0}],"isBlockCoverage":true},{"functionName":"checkWrappedMethod","ranges":[{"startOffset":1616,"endOffset":2717,"count":4},{"startOffset":1721,"endOffset":1930,"count":0},{"startOffset":1962,"endOffset":1992,"count":0},{"startOffset":1994,"endOffset":2183,"count":0},{"startOffset":2221,"endOffset":2483,"count":0},{"startOffset":2504,"endOffset":2711,"count":0}],"isBlockCoverage":true},{"functionName":"simplePropertyAssignment","ranges":[{"startOffset":2826,"endOffset":3028,"count":0}],"isBlockCoverage":false},{"functionName":"extendObjectWithWrappedMethods","ranges":[{"startOffset":5407,"endOffset":6214,"count":4},{"startOffset":5608,"endOffset":5626,"count":0},{"startOffset":6126,"endOffset":6198,"count":0}],"isBlockCoverage":true},{"functionName":"restore","ranges":[{"startOffset":6220,"endOffset":8714,"count":2},{"startOffset":6537,"endOffset":7745,"count":0},{"startOffset":7777,"endOffset":7922,"count":0},{"startOffset":8206,"endOffset":8284,"count":0},{"startOffset":8298,"endOffset":8447,"count":0},{"startOffset":8513,"endOffset":8708,"count":0}],"isBlockCoverage":true}]},{"scriptId":"469","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/sinon-type.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":625,"count":1}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":346,"endOffset":537,"count":4}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":543,"endOffset":620,"count":2}],"isBlockCoverage":true}]},{"scriptId":"470","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/throw-on-falsy-object.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":381,"count":1}],"isBlockCoverage":true},{"functionName":"throwOnFalsyObject","ranges":[{"startOffset":80,"endOffset":342,"count":4},{"startOffset":145,"endOffset":155,"count":0},{"startOffset":157,"endOffset":340,"count":0}],"isBlockCoverage":true}]},{"scriptId":"471","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/create-stub-instance.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1123,"count":1}],"isBlockCoverage":true},{"functionName":"isStub","ranges":[{"startOffset":171,"endOffset":241,"count":0}],"isBlockCoverage":false},{"functionName":"createStubInstance","ranges":[{"startOffset":260,"endOffset":1121,"count":0}],"isBlockCoverage":false}]},{"scriptId":"472","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/fake.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5764,"count":1}],"isBlockCoverage":true},{"functionName":"fake","ranges":[{"startOffset":811,"endOffset":990,"count":0}],"isBlockCoverage":false},{"functionName":"returns","ranges":[{"startOffset":1270,"endOffset":1421,"count":0}],"isBlockCoverage":false},{"functionName":"throws","ranges":[{"startOffset":1905,"endOffset":2064,"count":0}],"isBlockCoverage":false},{"functionName":"resolves","ranges":[{"startOffset":2344,"endOffset":2513,"count":0}],"isBlockCoverage":false},{"functionName":"rejects","ranges":[{"startOffset":2932,"endOffset":3109,"count":0}],"isBlockCoverage":false},{"functionName":"yields","ranges":[{"startOffset":3424,"endOffset":3814,"count":0}],"isBlockCoverage":false},{"functionName":"yieldsAsync","ranges":[{"startOffset":4190,"endOffset":4631,"count":0}],"isBlockCoverage":false},{"functionName":"wrapFunc","ranges":[{"startOffset":4779,"endOffset":5471,"count":0}],"isBlockCoverage":false},{"functionName":"getError","ranges":[{"startOffset":5673,"endOffset":5763,"count":0}],"isBlockCoverage":false}]},{"scriptId":"473","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/promise.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2572,"count":1}],"isBlockCoverage":true},{"functionName":"getFakeExecutor","ranges":[{"startOffset":538,"endOffset":717,"count":0}],"isBlockCoverage":false},{"functionName":"promise","ranges":[{"startOffset":1018,"endOffset":2544,"count":0}],"isBlockCoverage":false}]},{"scriptId":"474","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/util/core/is-restorable.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":206,"count":1}],"isBlockCoverage":true},{"functionName":"isRestorable","ranges":[{"startOffset":15,"endOffset":173,"count":0}],"isBlockCoverage":false}]},{"scriptId":"475","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon/lib/sinon/restore-object.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":369,"count":1}],"isBlockCoverage":true},{"functionName":"filter","ranges":[{"startOffset":71,"endOffset":179,"count":0}],"isBlockCoverage":false},{"functionName":"restore","ranges":[{"startOffset":181,"endOffset":251,"count":0}],"isBlockCoverage":false},{"functionName":"restoreObject","ranges":[{"startOffset":253,"endOffset":335,"count":0}],"isBlockCoverage":false}]},{"scriptId":"476","url":"file:///Users/mhluska/projects/blackjack-simulator/src/types.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":34994,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":71,"endOffset":10903,"count":1},{"startOffset":10483,"endOffset":10900,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":288,"endOffset":354,"count":20}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":368,"endOffset":458,"count":1},{"startOffset":403,"endOffset":457,"count":28}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":475,"endOffset":752,"count":1},{"startOffset":530,"endOffset":556,"count":0},{"startOffset":597,"endOffset":741,"count":28}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":663,"endOffset":676,"count":299395}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":770,"endOffset":831,"count":1}],"isBlockCoverage":true},{"functionName":"BlackjackPayout","ranges":[{"startOffset":893,"endOffset":912,"count":200}],"isBlockCoverage":true},{"functionName":"ChartMove","ranges":[{"startOffset":923,"endOffset":936,"count":10084}],"isBlockCoverage":true},{"functionName":"ChartType","ranges":[{"startOffset":947,"endOffset":960,"count":1466}],"isBlockCoverage":true},{"functionName":"GameMode","ranges":[{"startOffset":970,"endOffset":982,"count":1658}],"isBlockCoverage":true},{"functionName":"GameStep","ranges":[{"startOffset":992,"endOffset":1004,"count":33888}],"isBlockCoverage":true},{"functionName":"HandWinner","ranges":[{"startOffset":1016,"endOffset":1030,"count":5324}],"isBlockCoverage":true},{"functionName":"Move","ranges":[{"startOffset":1036,"endOffset":1044,"count":7601}],"isBlockCoverage":true},{"functionName":"PlayerStrategy","ranges":[{"startOffset":1060,"endOffset":1078,"count":9376}],"isBlockCoverage":true},{"functionName":"Rank","ranges":[{"startOffset":1084,"endOffset":1092,"count":92801}],"isBlockCoverage":true},{"functionName":"Suit","ranges":[{"startOffset":1098,"endOffset":1106,"count":407}],"isBlockCoverage":true},{"functionName":"actionDataKeyToCorrectMove","ranges":[{"startOffset":1134,"endOffset":1164,"count":2}],"isBlockCoverage":true},{"functionName":"blackjackPayoutToString","ranges":[{"startOffset":1189,"endOffset":1216,"count":2}],"isBlockCoverage":true},{"functionName":"cardRankToValue","ranges":[{"startOffset":1233,"endOffset":1252,"count":12141}],"isBlockCoverage":true},{"functionName":"cardValueToRank","ranges":[{"startOffset":1269,"endOffset":1288,"count":6}],"isBlockCoverage":true},{"functionName":"chartMoveToCorrectMove","ranges":[{"startOffset":1312,"endOffset":1338,"count":1158}],"isBlockCoverage":true},{"functionName":"convertToChartMove","ranges":[{"startOffset":1358,"endOffset":1380,"count":6}],"isBlockCoverage":true},{"functionName":"entries","ranges":[{"startOffset":1389,"endOffset":1400,"count":0}],"isBlockCoverage":false},{"functionName":"enumValues","ranges":[{"startOffset":1412,"endOffset":1426,"count":1152}],"isBlockCoverage":true},{"functionName":"gameModeToString","ranges":[{"startOffset":1444,"endOffset":1464,"count":0}],"isBlockCoverage":false},{"functionName":"handWinnerToString","ranges":[{"startOffset":1484,"endOffset":1506,"count":22}],"isBlockCoverage":true},{"functionName":"keys","ranges":[{"startOffset":1512,"endOffset":1520,"count":0}],"isBlockCoverage":false},{"functionName":"moveToString","ranges":[{"startOffset":1534,"endOffset":1550,"count":0}],"isBlockCoverage":false},{"functionName":"parseBlackjackPayout","ranges":[{"startOffset":1572,"endOffset":1596,"count":0}],"isBlockCoverage":false},{"functionName":"parseGameMode","ranges":[{"startOffset":1611,"endOffset":1628,"count":6}],"isBlockCoverage":true},{"functionName":"parsePlayerStrategy","ranges":[{"startOffset":1649,"endOffset":1672,"count":0}],"isBlockCoverage":false},{"functionName":"playerStrategyToString","ranges":[{"startOffset":1696,"endOffset":1722,"count":0}],"isBlockCoverage":false},{"functionName":"rankToString","ranges":[{"startOffset":1736,"endOffset":1752,"count":61131}],"isBlockCoverage":true},{"functionName":"suitToString","ranges":[{"startOffset":1766,"endOffset":1782,"count":60964}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1838,"endOffset":2115,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2142,"endOffset":2970,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3003,"endOffset":3170,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3203,"endOffset":3358,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3389,"endOffset":3792,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3818,"endOffset":3977,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3999,"endOffset":4413,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4445,"endOffset":4824,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4867,"endOffset":5036,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5073,"endOffset":5282,"count":1}],"isBlockCoverage":true},{"functionName":"keys","ranges":[{"startOffset":5298,"endOffset":5337,"count":0}],"isBlockCoverage":false},{"functionName":"entries","ranges":[{"startOffset":5357,"endOffset":5402,"count":0}],"isBlockCoverage":false},{"functionName":"enumValues","ranges":[{"startOffset":5428,"endOffset":5524,"count":1152}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5492,"endOffset":5522,"count":25794}],"isBlockCoverage":true},{"functionName":"cardValueToRank","ranges":[{"startOffset":5556,"endOffset":5825,"count":6},{"startOffset":5602,"endOffset":5618,"count":1},{"startOffset":5618,"endOffset":5666,"count":0},{"startOffset":5666,"endOffset":5698,"count":1},{"startOffset":5698,"endOffset":5730,"count":0},{"startOffset":5730,"endOffset":5747,"count":3},{"startOffset":5747,"endOffset":5823,"count":0}],"isBlockCoverage":true},{"functionName":"cardRankToValue","ranges":[{"startOffset":5867,"endOffset":6166,"count":12212},{"startOffset":5919,"endOffset":5935,"count":932},{"startOffset":5935,"endOffset":5951,"count":930},{"startOffset":5951,"endOffset":5967,"count":931},{"startOffset":5967,"endOffset":5983,"count":953},{"startOffset":5983,"endOffset":5999,"count":948},{"startOffset":5999,"endOffset":6015,"count":937},{"startOffset":6015,"endOffset":6031,"count":929},{"startOffset":6031,"endOffset":6047,"count":933},{"startOffset":6047,"endOffset":6054,"count":946},{"startOffset":6054,"endOffset":6062,"count":1868},{"startOffset":6062,"endOffset":6070,"count":2792},{"startOffset":6070,"endOffset":6088,"count":3723},{"startOffset":6088,"endOffset":6105,"count":995},{"startOffset":6105,"endOffset":6164,"count":1}],"isBlockCoverage":true},{"functionName":"chartMoveToCorrectMove","ranges":[{"startOffset":6208,"endOffset":6444,"count":1158},{"startOffset":6269,"endOffset":6301,"count":0},{"startOffset":6301,"endOffset":6317,"count":492},{"startOffset":6317,"endOffset":6333,"count":0},{"startOffset":6333,"endOffset":6349,"count":20},{"startOffset":6349,"endOffset":6365,"count":646},{"startOffset":6365,"endOffset":6442,"count":0}],"isBlockCoverage":true},{"functionName":"actionDataKeyToCorrectMove","ranges":[{"startOffset":6500,"endOffset":6719,"count":2},{"startOffset":6569,"endOffset":6577,"count":0},{"startOffset":6599,"endOffset":6667,"count":0},{"startOffset":6667,"endOffset":6684,"count":1},{"startOffset":6684,"endOffset":6701,"count":0},{"startOffset":6701,"endOffset":6717,"count":1}],"isBlockCoverage":true},{"functionName":"convertCodeToChartMove","ranges":[{"startOffset":6783,"endOffset":7151,"count":1800},{"startOffset":6834,"endOffset":6868,"count":0},{"startOffset":6868,"endOffset":6885,"count":674},{"startOffset":6885,"endOffset":6902,"count":0},{"startOffset":6902,"endOffset":6919,"count":274},{"startOffset":6919,"endOffset":6936,"count":464},{"startOffset":6936,"endOffset":6953,"count":0},{"startOffset":6953,"endOffset":6971,"count":279},{"startOffset":6971,"endOffset":6989,"count":31},{"startOffset":6989,"endOffset":7007,"count":4},{"startOffset":7007,"endOffset":7026,"count":44},{"startOffset":7026,"endOffset":7045,"count":1},{"startOffset":7045,"endOffset":7064,"count":22},{"startOffset":7064,"endOffset":7083,"count":2},{"startOffset":7083,"endOffset":7102,"count":5},{"startOffset":7102,"endOffset":7149,"count":0}],"isBlockCoverage":true},{"functionName":"handWinnerToString","ranges":[{"startOffset":7207,"endOffset":7395,"count":22},{"startOffset":7266,"endOffset":7288,"count":16},{"startOffset":7288,"endOffset":7330,"count":3},{"startOffset":7330,"endOffset":7393,"count":0}],"isBlockCoverage":true},{"functionName":"suitToString","ranges":[{"startOffset":7443,"endOffset":7604,"count":60964},{"startOffset":7484,"endOffset":7501,"count":16215},{"startOffset":7501,"endOffset":7518,"count":14904},{"startOffset":7518,"endOffset":7535,"count":14907},{"startOffset":7535,"endOffset":7552,"count":14938},{"startOffset":7552,"endOffset":7602,"count":0}],"isBlockCoverage":true},{"functionName":"rankToString","ranges":[{"startOffset":7640,"endOffset":7957,"count":61131},{"startOffset":7681,"endOffset":7698,"count":4869},{"startOffset":7698,"endOffset":7715,"count":4641},{"startOffset":7715,"endOffset":7732,"count":4622},{"startOffset":7732,"endOffset":7749,"count":4642},{"startOffset":7749,"endOffset":7766,"count":4826},{"startOffset":7766,"endOffset":7783,"count":4837},{"startOffset":7783,"endOffset":7800,"count":4689},{"startOffset":7800,"endOffset":7817,"count":4640},{"startOffset":7817,"endOffset":7834,"count":4660},{"startOffset":7834,"endOffset":7851,"count":4738},{"startOffset":7851,"endOffset":7869,"count":4685},{"startOffset":7869,"endOffset":7905,"count":4641},{"startOffset":7905,"endOffset":7955,"count":0}],"isBlockCoverage":true},{"functionName":"playerStrategyToString","ranges":[{"startOffset":7993,"endOffset":8288,"count":0}],"isBlockCoverage":false},{"functionName":"parsePlayerStrategy","ranges":[{"startOffset":8344,"endOffset":8671,"count":0}],"isBlockCoverage":false},{"functionName":"moveToString","ranges":[{"startOffset":8721,"endOffset":8977,"count":0}],"isBlockCoverage":false},{"functionName":"blackjackPayoutToString","ranges":[{"startOffset":9013,"endOffset":9200,"count":2},{"startOffset":9106,"endOffset":9198,"count":0}],"isBlockCoverage":true},{"functionName":"parseBlackjackPayout","ranges":[{"startOffset":9258,"endOffset":9478,"count":0}],"isBlockCoverage":false},{"functionName":"gameModeToString","ranges":[{"startOffset":9530,"endOffset":9726,"count":0}],"isBlockCoverage":false},{"functionName":"parseGameMode","ranges":[{"startOffset":9770,"endOffset":9988,"count":6},{"startOffset":9816,"endOffset":9824,"count":1},{"startOffset":9824,"endOffset":9837,"count":5},{"startOffset":9837,"endOffset":9986,"count":1}],"isBlockCoverage":true},{"functionName":"convertSubChartToChartMove","ranges":[{"startOffset":10026,"endOffset":10182,"count":18},{"startOffset":10085,"endOffset":10124,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10144,"endOffset":10180,"count":180}],"isBlockCoverage":true},{"functionName":"convertToChartMove","ranges":[{"startOffset":10246,"endOffset":10434,"count":6}],"isBlockCoverage":true}]},{"scriptId":"477","url":"file:///Users/mhluska/projects/blackjack-simulator/src/browser/player-input-reader.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4501,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":93,"endOffset":1890,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":310,"endOffset":376,"count":5}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":390,"endOffset":480,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":497,"endOffset":774,"count":1},{"startOffset":552,"endOffset":578,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":685,"endOffset":698,"count":2}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":792,"endOffset":853,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":935,"endOffset":959,"count":2}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1083,"endOffset":1126,"count":1}],"isBlockCoverage":true},{"functionName":"readInput","ranges":[{"startOffset":1126,"endOffset":1887,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1175,"endOffset":1407,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1512,"endOffset":1817,"count":1},{"startOffset":1562,"endOffset":1570,"count":0},{"startOffset":1655,"endOffset":1659,"count":0}],"isBlockCoverage":true}]},{"scriptId":"478","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/card.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5508,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":75,"endOffset":2193,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":350,"endOffset":627,"count":2},{"startOffset":405,"endOffset":431,"count":0},{"startOffset":472,"endOffset":616,"count":32}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":538,"endOffset":551,"count":1}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":640,"endOffset":828,"count":2},{"startOffset":710,"endOffset":713,"count":0},{"startOffset":759,"endOffset":822,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1068,"endOffset":1257,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1115,"endOffset":1255,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1171,"endOffset":1220,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1280,"endOffset":1457,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1327,"endOffset":1455,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1383,"endOffset":1425,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1480,"endOffset":2189,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1553,"endOffset":2187,"count":1}],"isBlockCoverage":true}]},{"scriptId":"479","url":"file:///Users/mhluska/projects/blackjack-simulator/src/card.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6200,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":70,"endOffset":2533,"count":1},{"startOffset":2500,"endOffset":2530,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":353,"endOffset":419,"count":2}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":433,"endOffset":523,"count":1},{"startOffset":468,"endOffset":522,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":540,"endOffset":817,"count":3},{"startOffset":595,"endOffset":621,"count":0},{"startOffset":662,"endOffset":806,"count":6}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":728,"endOffset":741,"count":24274}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":830,"endOffset":1018,"count":2},{"startOffset":900,"endOffset":903,"count":0},{"startOffset":949,"endOffset":1005,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1036,"endOffset":1097,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1149,"endOffset":1157,"count":12136}],"isBlockCoverage":true},{"functionName":"hiLoValue","ranges":[{"startOffset":1168,"endOffset":1181,"count":1}],"isBlockCoverage":true},{"functionName":"hiLoValue","ranges":[{"startOffset":1364,"endOffset":1845,"count":12137},{"startOffset":1402,"endOffset":1429,"count":948},{"startOffset":1429,"endOffset":1457,"count":1870},{"startOffset":1457,"endOffset":1486,"count":2794},{"startOffset":1486,"endOffset":1514,"count":3724},{"startOffset":1514,"endOffset":1550,"count":4666},{"startOffset":1550,"endOffset":1578,"count":923},{"startOffset":1578,"endOffset":1607,"count":1852},{"startOffset":1607,"endOffset":1645,"count":2787},{"startOffset":1645,"endOffset":1672,"count":947},{"startOffset":1672,"endOffset":1700,"count":1900},{"startOffset":1700,"endOffset":1728,"count":2829},{"startOffset":1728,"endOffset":1757,"count":3753},{"startOffset":1757,"endOffset":1793,"count":4683},{"startOffset":1793,"endOffset":1843,"count":1}],"isBlockCoverage":true},{"functionName":"Card","ranges":[{"startOffset":1921,"endOffset":2168,"count":12136}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":2168,"endOffset":2195,"count":1}],"isBlockCoverage":true},{"functionName":"flip","ranges":[{"startOffset":2195,"endOffset":2345,"count":1097},{"startOffset":2284,"endOffset":2287,"count":0}],"isBlockCoverage":true},{"functionName":"attributes","ranges":[{"startOffset":2345,"endOffset":2498,"count":60964}],"isBlockCoverage":true}]},{"scriptId":"480","url":"file:///Users/mhluska/projects/blackjack-simulator/src/game-object.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3273,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":77,"endOffset":1658,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":360,"endOffset":426,"count":14290}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":440,"endOffset":530,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":547,"endOffset":824,"count":2},{"startOffset":602,"endOffset":628,"count":0},{"startOffset":669,"endOffset":813,"count":4}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":735,"endOffset":748,"count":30449}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":837,"endOffset":1025,"count":1},{"startOffset":907,"endOffset":910,"count":0},{"startOffset":956,"endOffset":1012,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1043,"endOffset":1104,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1170,"endOffset":1184,"count":5}],"isBlockCoverage":true},{"functionName":"GameObject","ranges":[{"startOffset":1351,"endOffset":1575,"count":14289}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1427,"endOffset":1560,"count":28971},{"startOffset":1479,"endOffset":1559,"count":1472}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1575,"endOffset":1608,"count":1}],"isBlockCoverage":true},{"functionName":"attributes","ranges":[{"startOffset":1608,"endOffset":1655,"count":0}],"isBlockCoverage":false}]},{"scriptId":"481","url":"file:///Users/mhluska/projects/blackjack-simulator/src/event-emitter.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6058,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":79,"endOffset":2067,"count":1},{"startOffset":2038,"endOffset":2064,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":296,"endOffset":362,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":376,"endOffset":466,"count":1},{"startOffset":411,"endOffset":465,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":483,"endOffset":760,"count":1},{"startOffset":538,"endOffset":564,"count":0},{"startOffset":605,"endOffset":749,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":671,"endOffset":684,"count":43197}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":778,"endOffset":839,"count":1}],"isBlockCoverage":true},{"functionName":"Event","ranges":[{"startOffset":907,"endOffset":916,"count":12029}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":925,"endOffset":941,"count":31168}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1006,"endOffset":1239,"count":1}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1271,"endOffset":1306,"count":1}],"isBlockCoverage":true},{"functionName":"EventEmitter","ranges":[{"startOffset":1306,"endOffset":1340,"count":14344}],"isBlockCoverage":true},{"functionName":"on","ranges":[{"startOffset":1340,"endOffset":1528,"count":8086},{"startOffset":1389,"endOffset":1397,"count":5966},{"startOffset":1397,"endOffset":1498,"count":2120},{"startOffset":1498,"endOffset":1506,"count":0},{"startOffset":1506,"endOffset":1527,"count":2120}],"isBlockCoverage":true},{"functionName":"removeListener","ranges":[{"startOffset":1528,"endOffset":1734,"count":25},{"startOffset":1589,"endOffset":1597,"count":0},{"startOffset":1644,"endOffset":1652,"count":0},{"startOffset":1703,"endOffset":1711,"count":0}],"isBlockCoverage":true},{"functionName":"removeAllListeners","ranges":[{"startOffset":1734,"endOffset":1824,"count":2},{"startOffset":1790,"endOffset":1798,"count":0}],"isBlockCoverage":true},{"functionName":"emit","ranges":[{"startOffset":1824,"endOffset":2036,"count":3852},{"startOffset":1874,"endOffset":1882,"count":1171},{"startOffset":1882,"endOffset":1929,"count":2681},{"startOffset":1929,"endOffset":1937,"count":1255},{"startOffset":1937,"endOffset":2035,"count":1426}],"isBlockCoverage":true}]},{"scriptId":"482","url":"file:///Users/mhluska/projects/blackjack-simulator/src/utils.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":18091,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":71,"endOffset":4492,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":288,"endOffset":354,"count":9}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":368,"endOffset":458,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":475,"endOffset":752,"count":1},{"startOffset":530,"endOffset":556,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":663,"endOffset":676,"count":19316}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":770,"endOffset":831,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":885,"endOffset":894,"count":19316}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":988,"endOffset":1016,"count":1}],"isBlockCoverage":true},{"functionName":"arraySum","ranges":[{"startOffset":1023,"endOffset":1087,"count":0}],"isBlockCoverage":false},{"functionName":"arrayMean","ranges":[{"startOffset":1094,"endOffset":1149,"count":0}],"isBlockCoverage":false},{"functionName":"arrayVariance","ranges":[{"startOffset":1156,"endOffset":1283,"count":0}],"isBlockCoverage":false},{"functionName":"arrayShuffle","ranges":[{"startOffset":1290,"endOffset":1437,"count":360},{"startOffset":1343,"endOffset":1424,"count":31152}],"isBlockCoverage":true},{"functionName":"arraySample","ranges":[{"startOffset":1444,"endOffset":1507,"count":6}],"isBlockCoverage":true},{"functionName":"arrayMove","ranges":[{"startOffset":1514,"endOffset":1638,"count":9}],"isBlockCoverage":true},{"functionName":"arrayflatten","ranges":[{"startOffset":1645,"endOffset":1721,"count":0}],"isBlockCoverage":false},{"functionName":"random","ranges":[{"startOffset":1728,"endOffset":1832,"count":8}],"isBlockCoverage":true},{"functionName":"randomId","ranges":[{"startOffset":1839,"endOffset":1897,"count":14057}],"isBlockCoverage":true},{"functionName":"titleCase","ranges":[{"startOffset":1904,"endOffset":2017,"count":0}],"isBlockCoverage":false},{"functionName":"clamp","ranges":[{"startOffset":2024,"endOffset":2088,"count":3537}],"isBlockCoverage":true},{"functionName":"round","ranges":[{"startOffset":2095,"endOffset":2218,"count":592}],"isBlockCoverage":true},{"functionName":"compareRange","ranges":[{"startOffset":2225,"endOffset":2308,"count":336},{"startOffset":2274,"endOffset":2291,"count":247},{"startOffset":2291,"endOffset":2307,"count":89}],"isBlockCoverage":true},{"functionName":"abbreviateNumber","ranges":[{"startOffset":2315,"endOffset":2636,"count":0}],"isBlockCoverage":false},{"functionName":"formatCents","ranges":[{"startOffset":2643,"endOffset":2942,"count":9},{"startOffset":2814,"endOffset":2844,"count":0},{"startOffset":2923,"endOffset":2941,"count":0}],"isBlockCoverage":true},{"functionName":"formatPercent","ranges":[{"startOffset":2949,"endOffset":3005,"count":2}],"isBlockCoverage":true},{"functionName":"formatTime","ranges":[{"startOffset":3012,"endOffset":3074,"count":0}],"isBlockCoverage":false},{"functionName":"merge","ranges":[{"startOffset":3081,"endOffset":3146,"count":106}],"isBlockCoverage":true},{"functionName":"copy","ranges":[{"startOffset":3153,"endOffset":3198,"count":296}],"isBlockCoverage":true},{"functionName":"arrayToRanges","ranges":[{"startOffset":3205,"endOffset":3529,"count":8},{"startOffset":3424,"endOffset":3503,"count":24},{"startOffset":3444,"endOffset":3491,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3319,"endOffset":3386,"count":14}],"isBlockCoverage":true},{"functionName":"rangeToString","ranges":[{"startOffset":3536,"endOffset":3745,"count":7},{"startOffset":3581,"endOffset":3606,"count":3},{"startOffset":3606,"endOffset":3647,"count":4},{"startOffset":3647,"endOffset":3670,"count":3},{"startOffset":3670,"endOffset":3705,"count":1},{"startOffset":3735,"endOffset":3739,"count":1},{"startOffset":3739,"endOffset":3742,"count":3}],"isBlockCoverage":true},{"functionName":"arrayToRangeString","ranges":[{"startOffset":3752,"endOffset":4018,"count":4}],"isBlockCoverage":true},{"functionName":"formatter","ranges":[{"startOffset":3787,"endOffset":3807,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3887,"endOffset":4005,"count":7}],"isBlockCoverage":true},{"functionName":"compact","ranges":[{"startOffset":4025,"endOffset":4168,"count":0}],"isBlockCoverage":false},{"functionName":"mapValues","ranges":[{"startOffset":4175,"endOffset":4303,"count":0}],"isBlockCoverage":false},{"functionName":"randomSuit","ranges":[{"startOffset":4310,"endOffset":4396,"count":1}],"isBlockCoverage":true},{"functionName":"randomRank","ranges":[{"startOffset":4403,"endOffset":4489,"count":1}],"isBlockCoverage":true}]},{"scriptId":"483","url":"file:///Users/mhluska/projects/blackjack-simulator/src/game.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":55517,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":70,"endOffset":14250,"count":1},{"startOffset":14200,"endOffset":14247,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":353,"endOffset":419,"count":110}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":433,"endOffset":523,"count":1},{"startOffset":468,"endOffset":522,"count":3}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":540,"endOffset":817,"count":8},{"startOffset":595,"endOffset":621,"count":0},{"startOffset":662,"endOffset":806,"count":21}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":728,"endOffset":741,"count":17143}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":830,"endOffset":1018,"count":7},{"startOffset":900,"endOffset":903,"count":0},{"startOffset":949,"endOffset":1005,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1036,"endOffset":1097,"count":1}],"isBlockCoverage":true},{"functionName":"SETTINGS_DEFAULTS","ranges":[{"startOffset":1159,"endOffset":1180,"count":0}],"isBlockCoverage":false},{"functionName":"default","ranges":[{"startOffset":1189,"endOffset":1197,"count":55}],"isBlockCoverage":true},{"functionName":"settings","ranges":[{"startOffset":1207,"endOffset":1219,"count":15274}],"isBlockCoverage":true},{"functionName":"defaultSettings","ranges":[{"startOffset":1751,"endOffset":2244,"count":56}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":2389,"endOffset":2416,"count":1}],"isBlockCoverage":true},{"functionName":"Game","ranges":[{"startOffset":2416,"endOffset":2674,"count":55},{"startOffset":2607,"endOffset":2656,"count":2}],"isBlockCoverage":true},{"functionName":"get focusedHand","ranges":[{"startOffset":2674,"endOffset":2748,"count":1150}],"isBlockCoverage":true},{"functionName":"get settings","ranges":[{"startOffset":2748,"endOffset":2779,"count":5}],"isBlockCoverage":true},{"functionName":"updateSettings","ranges":[{"startOffset":2779,"endOffset":2865,"count":56}],"isBlockCoverage":true},{"functionName":"setupState","ranges":[{"startOffset":2865,"endOffset":4706,"count":55},{"startOffset":4318,"endOffset":4330,"count":2},{"startOffset":4330,"endOffset":4705,"count":53}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3194,"endOffset":3559,"count":56},{"startOffset":3434,"endOffset":3556,"count":54},{"startOffset":3475,"endOffset":3513,"count":53},{"startOffset":3513,"endOffset":3555,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3889,"endOffset":4109,"count":15}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4257,"endOffset":4274,"count":193}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4365,"endOffset":4696,"count":193},{"startOffset":4486,"endOffset":4563,"count":0},{"startOffset":4594,"endOffset":4619,"count":179}],"isBlockCoverage":true},{"functionName":"resetState","ranges":[{"startOffset":4706,"endOffset":4786,"count":0}],"isBlockCoverage":false},{"functionName":"allPlayerHandsBusted","ranges":[{"startOffset":4786,"endOffset":4898,"count":1021}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4835,"endOffset":4896,"count":1021}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4862,"endOffset":4895,"count":1021},{"startOffset":4879,"endOffset":4895,"count":840}],"isBlockCoverage":true},{"functionName":"chainEmitChange","ranges":[{"startOffset":4898,"endOffset":5051,"count":166}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4966,"endOffset":5035,"count":960}],"isBlockCoverage":true},{"functionName":"getCheckerResult","ranges":[{"startOffset":5051,"endOffset":5376,"count":24},{"startOffset":5140,"endOffset":5168,"count":5},{"startOffset":5169,"endOffset":5197,"count":5},{"startOffset":5197,"endOffset":5235,"count":19},{"startOffset":5235,"endOffset":5263,"count":3},{"startOffset":5264,"endOffset":5337,"count":3},{"startOffset":5282,"endOffset":5293,"count":1},{"startOffset":5305,"endOffset":5316,"count":0},{"startOffset":5337,"endOffset":5354,"count":16},{"startOffset":5354,"endOffset":5375,"count":13}],"isBlockCoverage":true},{"functionName":"validateInput","ranges":[{"startOffset":5376,"endOffset":6073,"count":24},{"startOffset":5676,"endOffset":5722,"count":9},{"startOffset":5722,"endOffset":5761,"count":15},{"startOffset":6065,"endOffset":6070,"count":0}],"isBlockCoverage":true},{"functionName":"isValidPlayHandsInput","ranges":[{"startOffset":6073,"endOffset":6570,"count":997},{"startOffset":6123,"endOffset":6136,"count":974},{"startOffset":6136,"endOffset":6296,"count":23},{"startOffset":6297,"endOffset":6311,"count":0},{"startOffset":6311,"endOffset":6349,"count":23},{"startOffset":6349,"endOffset":6383,"count":4},{"startOffset":6384,"endOffset":6398,"count":1},{"startOffset":6398,"endOffset":6432,"count":22},{"startOffset":6432,"endOffset":6462,"count":6},{"startOffset":6463,"endOffset":6477,"count":1},{"startOffset":6477,"endOffset":6512,"count":21},{"startOffset":6512,"endOffset":6543,"count":0},{"startOffset":6544,"endOffset":6558,"count":0},{"startOffset":6558,"endOffset":6569,"count":21}],"isBlockCoverage":true},{"functionName":"isValidInsuranceInput","ranges":[{"startOffset":6570,"endOffset":6735,"count":100},{"startOffset":6620,"endOffset":6633,"count":90},{"startOffset":6633,"endOffset":6734,"count":10}],"isBlockCoverage":true},{"functionName":"step","ranges":[{"startOffset":6735,"endOffset":8376,"count":5392},{"startOffset":6789,"endOffset":6857,"count":1132},{"startOffset":6857,"endOffset":7430,"count":100},{"startOffset":6947,"endOffset":6954,"count":0},{"startOffset":6988,"endOffset":7038,"count":97},{"startOffset":7039,"endOffset":7083,"count":3},{"startOffset":7175,"endOffset":7349,"count":32},{"startOffset":7349,"endOffset":7424,"count":68},{"startOffset":7430,"endOffset":7655,"count":1054},{"startOffset":7570,"endOffset":7606,"count":42},{"startOffset":7606,"endOffset":7648,"count":1012},{"startOffset":7655,"endOffset":7884,"count":997},{"startOffset":7740,"endOffset":7747,"count":2},{"startOffset":7747,"endOffset":7769,"count":995},{"startOffset":7769,"endOffset":7801,"count":21},{"startOffset":7801,"endOffset":7878,"count":974},{"startOffset":7878,"endOffset":7884,"count":995},{"startOffset":7884,"endOffset":8038,"count":1021},{"startOffset":8038,"endOffset":8184,"count":1088},{"startOffset":8109,"endOffset":8125,"count":5},{"startOffset":8126,"endOffset":8133,"count":0},{"startOffset":8186,"endOffset":8343,"count":0}],"isBlockCoverage":true},{"functionName":"run","ranges":[{"startOffset":8376,"endOffset":8550,"count":1083},{"startOffset":8482,"endOffset":8504,"count":5260}],"isBlockCoverage":true},{"functionName":"dealInitialCards","ranges":[{"startOffset":8550,"endOffset":9788,"count":1132},{"startOffset":8587,"endOffset":8696,"count":0},{"startOffset":8729,"endOffset":8945,"count":1133},{"startOffset":8791,"endOffset":8806,"count":2264},{"startOffset":8806,"endOffset":8808,"count":2},{"startOffset":8862,"endOffset":8877,"count":1132},{"startOffset":8877,"endOffset":8897,"count":1},{"startOffset":9043,"endOffset":9114,"count":1133},{"startOffset":9223,"endOffset":9256,"count":346},{"startOffset":9257,"endOffset":9575,"count":43},{"startOffset":9575,"endOffset":9608,"count":1089},{"startOffset":9608,"endOffset":9744,"count":105},{"startOffset":9688,"endOffset":9743,"count":100},{"startOffset":9744,"endOffset":9787,"count":989}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9060,"endOffset":9112,"count":1133}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9403,"endOffset":9521,"count":43},{"startOffset":9453,"endOffset":9482,"count":3},{"startOffset":9482,"endOffset":9513,"count":40}],"isBlockCoverage":true},{"functionName":"askInsurance","ranges":[{"startOffset":9788,"endOffset":10107,"count":205},{"startOffset":9851,"endOffset":10106,"count":100}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9868,"endOffset":10104,"count":100},{"startOffset":9900,"endOffset":9927,"count":10},{"startOffset":9927,"endOffset":9957,"count":90},{"startOffset":10006,"endOffset":10026,"count":0},{"startOffset":10069,"endOffset":10103,"count":10}],"isBlockCoverage":true},{"functionName":"payoutInsurance","ranges":[{"startOffset":10107,"endOffset":10550,"count":100},{"startOffset":10170,"endOffset":10178,"count":68},{"startOffset":10178,"endOffset":10549,"count":32}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10228,"endOffset":10547,"count":32},{"startOffset":10278,"endOffset":10307,"count":1},{"startOffset":10307,"endOffset":10338,"count":31},{"startOffset":10371,"endOffset":10381,"count":5},{"startOffset":10381,"endOffset":10411,"count":27},{"startOffset":10454,"endOffset":10546,"count":5},{"startOffset":10500,"endOffset":10520,"count":0}],"isBlockCoverage":true},{"functionName":"setblackjackWinner","ranges":[{"startOffset":10550,"endOffset":10927,"count":2472},{"startOffset":10606,"endOffset":10622,"count":0},{"startOffset":10623,"endOffset":10701,"count":0},{"startOffset":10731,"endOffset":10811,"count":0},{"startOffset":10834,"endOffset":10914,"count":42},{"startOffset":10914,"endOffset":10926,"count":2430}],"isBlockCoverage":true},{"functionName":"stepHand","ranges":[{"startOffset":10927,"endOffset":12110,"count":1418},{"startOffset":11005,"endOffset":11018,"count":0},{"startOffset":11038,"endOffset":11056,"count":9},{"startOffset":11057,"endOffset":11070,"count":9},{"startOffset":11070,"endOffset":11845,"count":1409},{"startOffset":11110,"endOffset":11142,"count":21},{"startOffset":11175,"endOffset":11221,"count":608},{"startOffset":11256,"endOffset":11269,"count":665},{"startOffset":11269,"endOffset":11305,"count":744},{"startOffset":11305,"endOffset":11385,"count":110},{"startOffset":11385,"endOffset":11419,"count":744},{"startOffset":11419,"endOffset":11436,"count":23},{"startOffset":11437,"endOffset":11710,"count":23},{"startOffset":11696,"endOffset":11709,"count":2},{"startOffset":11710,"endOffset":11749,"count":742},{"startOffset":11749,"endOffset":11844,"count":3},{"startOffset":11845,"endOffset":11860,"count":739},{"startOffset":11860,"endOffset":12012,"count":181},{"startOffset":11879,"endOffset":11933,"count":0},{"startOffset":12012,"endOffset":12048,"count":558},{"startOffset":12048,"endOffset":12061,"count":110},{"startOffset":12061,"endOffset":12084,"count":448},{"startOffset":12084,"endOffset":12097,"count":34},{"startOffset":12097,"endOffset":12109,"count":414}],"isBlockCoverage":true},{"functionName":"playNPCHands","ranges":[{"startOffset":12110,"endOffset":12361,"count":3049},{"startOffset":12163,"endOffset":12360,"count":975}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12180,"endOffset":12358,"count":993},{"startOffset":12230,"endOffset":12357,"count":1397},{"startOffset":12290,"endOffset":12305,"count":1394},{"startOffset":12305,"endOffset":12325,"count":3}],"isBlockCoverage":true},{"functionName":"playUserHands","ranges":[{"startOffset":12361,"endOffset":12849,"count":21},{"startOffset":12482,"endOffset":12620,"count":11},{"startOffset":12539,"endOffset":12571,"count":2},{"startOffset":12571,"endOffset":12619,"count":9},{"startOffset":12620,"endOffset":12678,"count":12},{"startOffset":12678,"endOffset":12705,"count":4},{"startOffset":12706,"endOffset":12738,"count":1},{"startOffset":12738,"endOffset":12770,"count":12},{"startOffset":12770,"endOffset":12806,"count":1},{"startOffset":12806,"endOffset":12848,"count":11}],"isBlockCoverage":true},{"functionName":"playDealer","ranges":[{"startOffset":12849,"endOffset":13669,"count":1021},{"startOffset":12989,"endOffset":13171,"count":798},{"startOffset":13021,"endOffset":13045,"count":918},{"startOffset":13046,"endOffset":13170,"count":918},{"startOffset":13076,"endOffset":13119,"count":119},{"startOffset":13097,"endOffset":13118,"count":20},{"startOffset":13120,"endOffset":13127,"count":99},{"startOffset":13127,"endOffset":13170,"count":819}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13221,"endOffset":13666,"count":1038},{"startOffset":13271,"endOffset":13279,"count":224},{"startOffset":13279,"endOffset":13301,"count":814},{"startOffset":13301,"endOffset":13369,"count":245},{"startOffset":13369,"endOffset":13665,"count":569},{"startOffset":13414,"endOffset":13482,"count":311},{"startOffset":13482,"endOffset":13665,"count":258},{"startOffset":13527,"endOffset":13595,"count":162},{"startOffset":13595,"endOffset":13665,"count":96}],"isBlockCoverage":true},{"functionName":"pushAllPlayersHands","ranges":[{"startOffset":13669,"endOffset":13816,"count":0}],"isBlockCoverage":false},{"functionName":"removeCards","ranges":[{"startOffset":13816,"endOffset":14198,"count":1088},{"startOffset":13994,"endOffset":14115,"count":73},{"startOffset":14013,"endOffset":14046,"count":0},{"startOffset":14133,"endOffset":14197,"count":0}],"isBlockCoverage":true}]},{"scriptId":"484","url":"file:///Users/mhluska/projects/blackjack-simulator/src/shoe.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":25676,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":70,"endOffset":7233,"count":1},{"startOffset":7194,"endOffset":7230,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":353,"endOffset":419,"count":2}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":433,"endOffset":523,"count":1},{"startOffset":468,"endOffset":522,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":540,"endOffset":817,"count":6},{"startOffset":595,"endOffset":621,"count":0},{"startOffset":662,"endOffset":806,"count":12}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":728,"endOffset":741,"count":1322}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":830,"endOffset":1018,"count":5},{"startOffset":900,"endOffset":903,"count":0},{"startOffset":949,"endOffset":1005,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1036,"endOffset":1097,"count":1}],"isBlockCoverage":true},{"functionName":"OutOfCardsError","ranges":[{"startOffset":1157,"endOffset":1176,"count":0}],"isBlockCoverage":false},{"functionName":"default","ranges":[{"startOffset":1185,"endOffset":1193,"count":57}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1733,"endOffset":1771,"count":1}],"isBlockCoverage":true},{"functionName":"Shoe","ranges":[{"startOffset":1818,"endOffset":1912,"count":57}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1912,"endOffset":1939,"count":1}],"isBlockCoverage":true},{"functionName":"setCards","ranges":[{"startOffset":1939,"endOffset":2137,"count":59},{"startOffset":2040,"endOffset":2102,"count":11968}],"isBlockCoverage":true},{"functionName":"resetCards","ranges":[{"startOffset":2137,"endOffset":2231,"count":73}],"isBlockCoverage":true},{"functionName":"shuffle","ranges":[{"startOffset":2231,"endOffset":2613,"count":130},{"startOffset":2346,"endOffset":2370,"count":0},{"startOffset":2432,"endOffset":2459,"count":0},{"startOffset":2523,"endOffset":2552,"count":2},{"startOffset":2582,"endOffset":2612,"count":0}],"isBlockCoverage":true},{"functionName":"drawCard","ranges":[{"startOffset":2613,"endOffset":2882,"count":6118},{"startOffset":2672,"endOffset":2699,"count":0},{"startOffset":2813,"endOffset":2852,"count":4985}],"isBlockCoverage":true},{"functionName":"remainingCards","ranges":[{"startOffset":2882,"endOffset":2950,"count":296}],"isBlockCoverage":true},{"functionName":"attributes","ranges":[{"startOffset":2950,"endOffset":3217,"count":296}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3190,"endOffset":3213,"count":59765}],"isBlockCoverage":true},{"functionName":"serialize","ranges":[{"startOffset":3217,"endOffset":3384,"count":0}],"isBlockCoverage":false},{"functionName":"get cardCount","ranges":[{"startOffset":3384,"endOffset":3431,"count":5406}],"isBlockCoverage":true},{"functionName":"get maxCards","ranges":[{"startOffset":3431,"endOffset":3487,"count":5412}],"isBlockCoverage":true},{"functionName":"get needsReset","ranges":[{"startOffset":3487,"endOffset":3649,"count":1088},{"startOffset":3565,"endOffset":3578,"count":0}],"isBlockCoverage":true},{"functionName":"get cardsRemainingRatio","ranges":[{"startOffset":3649,"endOffset":3711,"count":4318}],"isBlockCoverage":true},{"functionName":"get penetration","ranges":[{"startOffset":3711,"endOffset":3768,"count":296}],"isBlockCoverage":true},{"functionName":"get decksRemaining","ranges":[{"startOffset":3768,"endOffset":3852,"count":4022}],"isBlockCoverage":true},{"functionName":"get hiLoTrueCount","ranges":[{"startOffset":3852,"endOffset":3921,"count":3999}],"isBlockCoverage":true},{"functionName":"setupDeviationScenario","ranges":[{"startOffset":3921,"endOffset":4797,"count":3},{"startOffset":4043,"endOffset":4077,"count":0},{"startOffset":4157,"endOffset":4172,"count":1},{"startOffset":4232,"endOffset":4262,"count":1},{"startOffset":4262,"endOffset":4290,"count":2},{"startOffset":4660,"endOffset":4668,"count":0},{"startOffset":4727,"endOffset":4762,"count":0}],"isBlockCoverage":true},{"functionName":"_setupCards","ranges":[{"startOffset":4797,"endOffset":5034,"count":57},{"startOffset":4876,"endOffset":4919,"count":230},{"startOffset":4953,"endOffset":5021,"count":230}],"isBlockCoverage":true},{"functionName":"_moveCardsToFront","ranges":[{"startOffset":5034,"endOffset":5467,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5153,"endOffset":5182,"count":63}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5294,"endOffset":5325,"count":33}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5413,"endOffset":5442,"count":70}],"isBlockCoverage":true},{"functionName":"_playerTotalToTwoCardRank","ranges":[{"startOffset":5467,"endOffset":5667,"count":3}],"isBlockCoverage":true},{"functionName":"_playerTotalToTwoCardValues","ranges":[{"startOffset":5667,"endOffset":5933,"count":3},{"startOffset":5730,"endOffset":5816,"count":2},{"startOffset":5784,"endOffset":5789,"count":1},{"startOffset":5816,"endOffset":5877,"count":0},{"startOffset":5877,"endOffset":5931,"count":1}],"isBlockCoverage":true},{"functionName":"_setupPairsMode","ranges":[{"startOffset":5933,"endOffset":6030,"count":0}],"isBlockCoverage":false},{"functionName":"_setupUncommonMode","ranges":[{"startOffset":6030,"endOffset":6524,"count":0}],"isBlockCoverage":false},{"functionName":"_setupDeviationsMode","ranges":[{"startOffset":6524,"endOffset":7192,"count":2},{"startOffset":6724,"endOffset":6795,"count":1},{"startOffset":7184,"endOffset":7186,"count":0}],"isBlockCoverage":true}]},{"scriptId":"485","url":"file:///Users/mhluska/projects/blackjack-simulator/src/deck.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3522,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":70,"endOffset":1815,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":353,"endOffset":419,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":433,"endOffset":523,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":540,"endOffset":817,"count":4},{"startOffset":595,"endOffset":621,"count":0},{"startOffset":662,"endOffset":806,"count":8}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":728,"endOffset":741,"count":12421}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":830,"endOffset":1018,"count":3},{"startOffset":900,"endOffset":903,"count":0},{"startOffset":949,"endOffset":1005,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1036,"endOffset":1097,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1149,"endOffset":1157,"count":230}],"isBlockCoverage":true},{"functionName":"Deck","ranges":[{"startOffset":1429,"endOffset":1522,"count":230}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1522,"endOffset":1549,"count":1}],"isBlockCoverage":true},{"functionName":"setupCards","ranges":[{"startOffset":1549,"endOffset":1812,"count":230}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1632,"endOffset":1756,"count":920}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1693,"endOffset":1755,"count":11960}],"isBlockCoverage":true}]},{"scriptId":"486","url":"file:///Users/mhluska/projects/blackjack-simulator/src/basic-strategy-checker.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":16088,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":88,"endOffset":5453,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":371,"endOffset":437,"count":4}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":451,"endOffset":541,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":558,"endOffset":835,"count":2},{"startOffset":613,"endOffset":639,"count":0},{"startOffset":680,"endOffset":824,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":746,"endOffset":759,"count":2852}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":848,"endOffset":1036,"count":1},{"startOffset":918,"endOffset":921,"count":0},{"startOffset":967,"endOffset":1023,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1054,"endOffset":1115,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1203,"endOffset":1227,"count":1481}],"isBlockCoverage":true},{"functionName":"chartMinMax","ranges":[{"startOffset":1585,"endOffset":1649,"count":1371}],"isBlockCoverage":true},{"functionName":"chartCacheKey","ranges":[{"startOffset":1722,"endOffset":1807,"count":1371}],"isBlockCoverage":true},{"functionName":"getSubCharts","ranges":[{"startOffset":1845,"endOffset":2452,"count":1371},{"startOffset":1938,"endOffset":1960,"count":1370},{"startOffset":1961,"endOffset":1985,"count":1363},{"startOffset":1985,"endOffset":2243,"count":8},{"startOffset":2244,"endOffset":2283,"count":0},{"startOffset":2283,"endOffset":2451,"count":8}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":2515,"endOffset":2558,"count":1}],"isBlockCoverage":true},{"functionName":"uncommonHands","ranges":[{"startOffset":2565,"endOffset":2645,"count":0}],"isBlockCoverage":false},{"functionName":"suggest","ranges":[{"startOffset":2652,"endOffset":4413,"count":1479},{"startOffset":2739,"endOffset":2777,"count":108},{"startOffset":2777,"endOffset":2974,"count":1371},{"startOffset":2974,"endOffset":2994,"count":135},{"startOffset":2994,"endOffset":3009,"count":1236},{"startOffset":3247,"endOffset":3299,"count":1253},{"startOffset":3300,"endOffset":3462,"count":128},{"startOffset":3321,"endOffset":3354,"count":111},{"startOffset":3354,"endOffset":3461,"count":17},{"startOffset":3414,"endOffset":3436,"count":15},{"startOffset":3436,"endOffset":3460,"count":2},{"startOffset":3462,"endOffset":3512,"count":1243},{"startOffset":3512,"endOffset":3615,"count":1240},{"startOffset":3616,"endOffset":3936,"count":3},{"startOffset":3695,"endOffset":3935,"count":0},{"startOffset":3936,"endOffset":3993,"count":1240},{"startOffset":3993,"endOffset":4073,"count":1},{"startOffset":4048,"endOffset":4072,"count":0},{"startOffset":4073,"endOffset":4127,"count":1239},{"startOffset":4127,"endOffset":4182,"count":1164},{"startOffset":4183,"endOffset":4354,"count":81},{"startOffset":4207,"endOffset":4243,"count":4},{"startOffset":4243,"endOffset":4353,"count":77},{"startOffset":4306,"endOffset":4328,"count":71},{"startOffset":4328,"endOffset":4352,"count":6},{"startOffset":4354,"endOffset":4412,"count":1158}],"isBlockCoverage":true},{"functionName":"check","ranges":[{"startOffset":4420,"endOffset":5272,"count":24},{"startOffset":4506,"endOffset":4547,"count":0},{"startOffset":4602,"endOffset":4641,"count":3},{"startOffset":4642,"endOffset":4668,"count":1},{"startOffset":4706,"endOffset":4737,"count":2},{"startOffset":4738,"endOffset":4750,"count":0},{"startOffset":4790,"endOffset":4823,"count":7},{"startOffset":4824,"endOffset":4838,"count":3},{"startOffset":4879,"endOffset":4913,"count":2},{"startOffset":4914,"endOffset":4929,"count":2},{"startOffset":4969,"endOffset":5002,"count":5},{"startOffset":5003,"endOffset":5017,"count":0},{"startOffset":5061,"endOffset":5098,"count":5},{"startOffset":5099,"endOffset":5117,"count":2},{"startOffset":5134,"endOffset":5175,"count":16},{"startOffset":5175,"endOffset":5271,"count":8}],"isBlockCoverage":true},{"functionName":"_chartType","ranges":[{"startOffset":5279,"endOffset":5450,"count":1371},{"startOffset":5315,"endOffset":5353,"count":135},{"startOffset":5353,"endOffset":5449,"count":1236},{"startOffset":5373,"endOffset":5409,"count":131},{"startOffset":5409,"endOffset":5449,"count":1105}],"isBlockCoverage":true}]},{"scriptId":"487","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/utils.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4090,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":78,"endOffset":1679,"count":1},{"startOffset":1643,"endOffset":1676,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":295,"endOffset":361,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":375,"endOffset":465,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":482,"endOffset":759,"count":1},{"startOffset":537,"endOffset":563,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":670,"endOffset":683,"count":8}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":777,"endOffset":838,"count":1}],"isBlockCoverage":true},{"functionName":"selectCharts","ranges":[{"startOffset":897,"endOffset":913,"count":8}],"isBlockCoverage":true},{"functionName":"selectCharts","ranges":[{"startOffset":985,"endOffset":1606,"count":8},{"startOffset":1043,"endOffset":1217,"count":0},{"startOffset":1243,"endOffset":1417,"count":4},{"startOffset":1339,"endOffset":1416,"count":0},{"startOffset":1417,"endOffset":1439,"count":4},{"startOffset":1439,"endOffset":1520,"count":3},{"startOffset":1520,"endOffset":1605,"count":1}],"isBlockCoverage":true}]},{"scriptId":"488","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/index.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2846,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":78,"endOffset":1783,"count":1},{"startOffset":1558,"endOffset":1780,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":297,"endOffset":387,"count":1},{"startOffset":332,"endOffset":386,"count":12}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":404,"endOffset":681,"count":1},{"startOffset":459,"endOffset":485,"count":0},{"startOffset":526,"endOffset":670,"count":12}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":592,"endOffset":605,"count":16}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":699,"endOffset":760,"count":1}],"isBlockCoverage":true},{"functionName":"d1h17DasChart","ranges":[{"startOffset":822,"endOffset":849,"count":0}],"isBlockCoverage":false},{"functionName":"d1h17DasUncommon","ranges":[{"startOffset":867,"endOffset":897,"count":0}],"isBlockCoverage":false},{"functionName":"d1s17DasChart","ranges":[{"startOffset":912,"endOffset":939,"count":0}],"isBlockCoverage":false},{"functionName":"d1s17DasUncommon","ranges":[{"startOffset":957,"endOffset":987,"count":0}],"isBlockCoverage":false},{"functionName":"d2h17DasChart","ranges":[{"startOffset":1002,"endOffset":1030,"count":4}],"isBlockCoverage":true},{"functionName":"d2h17DasUncommon","ranges":[{"startOffset":1048,"endOffset":1079,"count":4}],"isBlockCoverage":true},{"functionName":"d2s17DasChart","ranges":[{"startOffset":1094,"endOffset":1122,"count":0}],"isBlockCoverage":false},{"functionName":"d2s17DasUncommon","ranges":[{"startOffset":1140,"endOffset":1171,"count":0}],"isBlockCoverage":false},{"functionName":"dMultiH17DasChart","ranges":[{"startOffset":1190,"endOffset":1223,"count":3}],"isBlockCoverage":true},{"functionName":"dMultiH17DasUncommon","ranges":[{"startOffset":1245,"endOffset":1281,"count":3}],"isBlockCoverage":true},{"functionName":"dMultiS17DasChart","ranges":[{"startOffset":1300,"endOffset":1333,"count":1}],"isBlockCoverage":true},{"functionName":"dMultiS17DasUncommon","ranges":[{"startOffset":1355,"endOffset":1391,"count":1}],"isBlockCoverage":true}]},{"scriptId":"489","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/1-deck/index.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1692,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":85,"endOffset":1173,"count":1},{"startOffset":1096,"endOffset":1170,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":304,"endOffset":394,"count":1},{"startOffset":339,"endOffset":393,"count":4}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":411,"endOffset":688,"count":1},{"startOffset":466,"endOffset":492,"count":0},{"startOffset":533,"endOffset":677,"count":4}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":599,"endOffset":612,"count":0}],"isBlockCoverage":false},{"functionName":"__toCommonJS","ranges":[{"startOffset":706,"endOffset":767,"count":1}],"isBlockCoverage":true},{"functionName":"h17DasChart","ranges":[{"startOffset":823,"endOffset":847,"count":0}],"isBlockCoverage":false},{"functionName":"h17DasUncommon","ranges":[{"startOffset":863,"endOffset":890,"count":0}],"isBlockCoverage":false},{"functionName":"s17DasChart","ranges":[{"startOffset":903,"endOffset":927,"count":0}],"isBlockCoverage":false},{"functionName":"s17DasUncommon","ranges":[{"startOffset":943,"endOffset":970,"count":0}],"isBlockCoverage":false}]},{"scriptId":"490","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/1-deck/h17-das.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9714,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":87,"endOffset":2615,"count":1},{"startOffset":2577,"endOffset":2612,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":306,"endOffset":396,"count":1},{"startOffset":341,"endOffset":395,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":413,"endOffset":690,"count":1},{"startOffset":468,"endOffset":494,"count":0},{"startOffset":535,"endOffset":679,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":601,"endOffset":614,"count":0}],"isBlockCoverage":false},{"functionName":"__toCommonJS","ranges":[{"startOffset":708,"endOffset":769,"count":1}],"isBlockCoverage":true},{"functionName":"chart","ranges":[{"startOffset":825,"endOffset":834,"count":0}],"isBlockCoverage":false},{"functionName":"uncommon","ranges":[{"startOffset":844,"endOffset":856,"count":0}],"isBlockCoverage":false}]},{"scriptId":"491","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/1-deck/s17-das.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9709,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":87,"endOffset":2610,"count":1},{"startOffset":2572,"endOffset":2607,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":306,"endOffset":396,"count":1},{"startOffset":341,"endOffset":395,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":413,"endOffset":690,"count":1},{"startOffset":468,"endOffset":494,"count":0},{"startOffset":535,"endOffset":679,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":601,"endOffset":614,"count":0}],"isBlockCoverage":false},{"functionName":"__toCommonJS","ranges":[{"startOffset":708,"endOffset":769,"count":1}],"isBlockCoverage":true},{"functionName":"chart","ranges":[{"startOffset":825,"endOffset":834,"count":0}],"isBlockCoverage":false},{"functionName":"uncommon","ranges":[{"startOffset":844,"endOffset":856,"count":0}],"isBlockCoverage":false}]},{"scriptId":"492","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/2-deck/index.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1692,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":85,"endOffset":1173,"count":1},{"startOffset":1096,"endOffset":1170,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":304,"endOffset":394,"count":1},{"startOffset":339,"endOffset":393,"count":4}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":411,"endOffset":688,"count":1},{"startOffset":466,"endOffset":492,"count":0},{"startOffset":533,"endOffset":677,"count":4}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":599,"endOffset":612,"count":8}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":706,"endOffset":767,"count":1}],"isBlockCoverage":true},{"functionName":"h17DasChart","ranges":[{"startOffset":823,"endOffset":847,"count":4}],"isBlockCoverage":true},{"functionName":"h17DasUncommon","ranges":[{"startOffset":863,"endOffset":890,"count":4}],"isBlockCoverage":true},{"functionName":"s17DasChart","ranges":[{"startOffset":903,"endOffset":927,"count":0}],"isBlockCoverage":false},{"functionName":"s17DasUncommon","ranges":[{"startOffset":943,"endOffset":970,"count":0}],"isBlockCoverage":false}]},{"scriptId":"493","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/2-deck/h17-das.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11685,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":87,"endOffset":2858,"count":1},{"startOffset":2820,"endOffset":2855,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":306,"endOffset":396,"count":1},{"startOffset":341,"endOffset":395,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":413,"endOffset":690,"count":1},{"startOffset":468,"endOffset":494,"count":0},{"startOffset":535,"endOffset":679,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":601,"endOffset":614,"count":8}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":708,"endOffset":769,"count":1}],"isBlockCoverage":true},{"functionName":"chart","ranges":[{"startOffset":825,"endOffset":834,"count":4}],"isBlockCoverage":true},{"functionName":"uncommon","ranges":[{"startOffset":844,"endOffset":856,"count":4}],"isBlockCoverage":true}]},{"scriptId":"494","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/2-deck/s17-das.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9703,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":87,"endOffset":2604,"count":1},{"startOffset":2566,"endOffset":2601,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":306,"endOffset":396,"count":1},{"startOffset":341,"endOffset":395,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":413,"endOffset":690,"count":1},{"startOffset":468,"endOffset":494,"count":0},{"startOffset":535,"endOffset":679,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":601,"endOffset":614,"count":0}],"isBlockCoverage":false},{"functionName":"__toCommonJS","ranges":[{"startOffset":708,"endOffset":769,"count":1}],"isBlockCoverage":true},{"functionName":"chart","ranges":[{"startOffset":825,"endOffset":834,"count":0}],"isBlockCoverage":false},{"functionName":"uncommon","ranges":[{"startOffset":844,"endOffset":856,"count":0}],"isBlockCoverage":false}]},{"scriptId":"495","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/multi-deck/index.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1718,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":89,"endOffset":1195,"count":1},{"startOffset":1118,"endOffset":1192,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":308,"endOffset":398,"count":1},{"startOffset":343,"endOffset":397,"count":4}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":415,"endOffset":692,"count":1},{"startOffset":470,"endOffset":496,"count":0},{"startOffset":537,"endOffset":681,"count":4}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":603,"endOffset":616,"count":8}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":710,"endOffset":771,"count":1}],"isBlockCoverage":true},{"functionName":"h17DasChart","ranges":[{"startOffset":839,"endOffset":863,"count":3}],"isBlockCoverage":true},{"functionName":"h17DasUncommon","ranges":[{"startOffset":879,"endOffset":906,"count":3}],"isBlockCoverage":true},{"functionName":"s17DasChart","ranges":[{"startOffset":919,"endOffset":943,"count":1}],"isBlockCoverage":true},{"functionName":"s17DasUncommon","ranges":[{"startOffset":959,"endOffset":986,"count":1}],"isBlockCoverage":true}]},{"scriptId":"496","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/multi-deck/h17-das.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9714,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":91,"endOffset":2611,"count":1},{"startOffset":2573,"endOffset":2608,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":310,"endOffset":400,"count":1},{"startOffset":345,"endOffset":399,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":417,"endOffset":694,"count":1},{"startOffset":472,"endOffset":498,"count":0},{"startOffset":539,"endOffset":683,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":605,"endOffset":618,"count":6}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":712,"endOffset":773,"count":1}],"isBlockCoverage":true},{"functionName":"chart","ranges":[{"startOffset":829,"endOffset":838,"count":3}],"isBlockCoverage":true},{"functionName":"uncommon","ranges":[{"startOffset":848,"endOffset":860,"count":3}],"isBlockCoverage":true}]},{"scriptId":"497","url":"file:///Users/mhluska/projects/blackjack-simulator/src/charts/multi-deck/s17-das.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9708,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":91,"endOffset":2605,"count":1},{"startOffset":2567,"endOffset":2602,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":310,"endOffset":400,"count":1},{"startOffset":345,"endOffset":399,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":417,"endOffset":694,"count":1},{"startOffset":472,"endOffset":498,"count":0},{"startOffset":539,"endOffset":683,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":605,"endOffset":618,"count":2}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":712,"endOffset":773,"count":1}],"isBlockCoverage":true},{"functionName":"chart","ranges":[{"startOffset":829,"endOffset":838,"count":1}],"isBlockCoverage":true},{"functionName":"uncommon","ranges":[{"startOffset":848,"endOffset":860,"count":1}],"isBlockCoverage":true}]},{"scriptId":"498","url":"file:///Users/mhluska/projects/blackjack-simulator/src/extendable-error.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2298,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":82,"endOffset":1279,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":299,"endOffset":365,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":379,"endOffset":469,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":486,"endOffset":763,"count":1},{"startOffset":541,"endOffset":567,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":674,"endOffset":687,"count":1}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":781,"endOffset":842,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":918,"endOffset":937,"count":1}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1030,"endOffset":1068,"count":1}],"isBlockCoverage":true},{"functionName":"ExtendableError","ranges":[{"startOffset":1068,"endOffset":1276,"count":0}],"isBlockCoverage":false}]},{"scriptId":"499","url":"file:///Users/mhluska/projects/blackjack-simulator/src/hi-lo-deviation-checker.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20996,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":89,"endOffset":6185,"count":1},{"startOffset":6123,"endOffset":6182,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":372,"endOffset":438,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":452,"endOffset":542,"count":1},{"startOffset":487,"endOffset":541,"count":3}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":559,"endOffset":836,"count":2},{"startOffset":614,"endOffset":640,"count":0},{"startOffset":681,"endOffset":825,"count":5}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":747,"endOffset":760,"count":1879}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":849,"endOffset":1037,"count":1},{"startOffset":919,"endOffset":922,"count":0},{"startOffset":968,"endOffset":1024,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1055,"endOffset":1116,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1206,"endOffset":1230,"count":1557}],"isBlockCoverage":true},{"functionName":"fab4Deviations","ranges":[{"startOffset":1246,"endOffset":1264,"count":1}],"isBlockCoverage":true},{"functionName":"illustrious18Deviations","ranges":[{"startOffset":1289,"endOffset":1316,"count":3}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":3060,"endOffset":3103,"count":1}],"isBlockCoverage":true},{"functionName":"_getDeviation","ranges":[{"startOffset":3110,"endOffset":3215,"count":1389},{"startOffset":3196,"endOffset":3201,"count":833}],"isBlockCoverage":true},{"functionName":"_suggest","ranges":[{"startOffset":3222,"endOffset":4051,"count":1536},{"startOffset":3340,"endOffset":3348,"count":148},{"startOffset":3348,"endOffset":3431,"count":1388},{"startOffset":3431,"endOffset":3433,"count":104},{"startOffset":3433,"endOffset":3448,"count":1284},{"startOffset":3527,"endOffset":3670,"count":7},{"startOffset":3600,"endOffset":3670,"count":1},{"startOffset":3670,"endOffset":3739,"count":1381},{"startOffset":3753,"endOffset":3820,"count":320},{"startOffset":3803,"endOffset":3820,"count":26},{"startOffset":3820,"endOffset":3887,"count":319},{"startOffset":3869,"endOffset":3887,"count":17},{"startOffset":3887,"endOffset":3962,"count":318},{"startOffset":3940,"endOffset":3962,"count":0},{"startOffset":3962,"endOffset":4025,"count":318},{"startOffset":4026,"endOffset":4034,"count":1317},{"startOffset":4034,"endOffset":4050,"count":71}],"isBlockCoverage":true},{"functionName":"suggest","ranges":[{"startOffset":4058,"endOffset":4194,"count":1511},{"startOffset":4180,"endOffset":4193,"count":59}],"isBlockCoverage":true},{"functionName":"_checkInsurance","ranges":[{"startOffset":4201,"endOffset":4977,"count":3},{"startOffset":4341,"endOffset":4636,"count":1},{"startOffset":4384,"endOffset":4435,"count":0},{"startOffset":4636,"endOffset":4678,"count":2},{"startOffset":4678,"endOffset":4976,"count":1}],"isBlockCoverage":true},{"functionName":"check","ranges":[{"startOffset":4984,"endOffset":6121,"count":44},{"startOffset":5047,"endOffset":5109,"count":21},{"startOffset":5110,"endOffset":5118,"count":19},{"startOffset":5118,"endOffset":5227,"count":25},{"startOffset":5227,"endOffset":5273,"count":3},{"startOffset":5273,"endOffset":5287,"count":22},{"startOffset":5287,"endOffset":5386,"count":11},{"startOffset":5386,"endOffset":5426,"count":0},{"startOffset":5427,"endOffset":5449,"count":0},{"startOffset":5449,"endOffset":5487,"count":11},{"startOffset":5487,"endOffset":5518,"count":10},{"startOffset":5519,"endOffset":5531,"count":10},{"startOffset":5531,"endOffset":5571,"count":11},{"startOffset":5571,"endOffset":5604,"count":1},{"startOffset":5605,"endOffset":5619,"count":1},{"startOffset":5619,"endOffset":5660,"count":11},{"startOffset":5660,"endOffset":5694,"count":0},{"startOffset":5695,"endOffset":5710,"count":0},{"startOffset":5710,"endOffset":5750,"count":11},{"startOffset":5750,"endOffset":5783,"count":0},{"startOffset":5784,"endOffset":5798,"count":0},{"startOffset":5798,"endOffset":5815,"count":11},{"startOffset":5815,"endOffset":5866,"count":0},{"startOffset":5866,"endOffset":5907,"count":11},{"startOffset":5907,"endOffset":5915,"count":3},{"startOffset":5915,"endOffset":5932,"count":8}],"isBlockCoverage":true}]},{"scriptId":"500","url":"file:///Users/mhluska/projects/blackjack-simulator/src/dealer.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2298,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":72,"endOffset":1463,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":355,"endOffset":421,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":435,"endOffset":525,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":542,"endOffset":819,"count":2},{"startOffset":597,"endOffset":623,"count":0},{"startOffset":664,"endOffset":808,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":730,"endOffset":743,"count":56}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":832,"endOffset":1020,"count":1},{"startOffset":902,"endOffset":905,"count":0},{"startOffset":951,"endOffset":1007,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1038,"endOffset":1099,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1155,"endOffset":1165,"count":55}],"isBlockCoverage":true},{"functionName":"Dealer","ranges":[{"startOffset":1302,"endOffset":1361,"count":55}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1361,"endOffset":1390,"count":1}],"isBlockCoverage":true},{"functionName":"get upcard","ranges":[{"startOffset":1390,"endOffset":1424,"count":6516}],"isBlockCoverage":true},{"functionName":"get holeCard","ranges":[{"startOffset":1424,"endOffset":1460,"count":546}],"isBlockCoverage":true}]},{"scriptId":"501","url":"file:///Users/mhluska/projects/blackjack-simulator/src/player.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":21700,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":72,"endOffset":5993,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":355,"endOffset":421,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":435,"endOffset":525,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":542,"endOffset":819,"count":6},{"startOffset":597,"endOffset":623,"count":0},{"startOffset":664,"endOffset":808,"count":13}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":730,"endOffset":743,"count":4887}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":832,"endOffset":1020,"count":5},{"startOffset":902,"endOffset":905,"count":0},{"startOffset":951,"endOffset":1007,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1038,"endOffset":1099,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1155,"endOffset":1165,"count":59}],"isBlockCoverage":true},{"functionName":"Player","ranges":[{"startOffset":1653,"endOffset":2174,"count":113}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2049,"endOffset":2172,"count":1744}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2137,"endOffset":2158,"count":365}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":2174,"endOffset":2203,"count":1}],"isBlockCoverage":true},{"functionName":"getHand","ranges":[{"startOffset":2203,"endOffset":2244,"count":1150}],"isBlockCoverage":true},{"functionName":"eachHand","ranges":[{"startOffset":2244,"endOffset":2325,"count":3304},{"startOffset":2298,"endOffset":2324,"count":3339}],"isBlockCoverage":true},{"functionName":"getNPCInput","ranges":[{"startOffset":2325,"endOffset":3059,"count":1514},{"startOffset":2494,"endOffset":2623,"count":1511},{"startOffset":2564,"endOffset":2622,"count":1452},{"startOffset":2623,"endOffset":2697,"count":3},{"startOffset":2711,"endOffset":3040,"count":0}],"isBlockCoverage":true},{"functionName":"addHand","ranges":[{"startOffset":3059,"endOffset":3423,"count":2310},{"startOffset":3146,"endOffset":3279,"count":4},{"startOffset":3360,"endOffset":3393,"count":1158}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3232,"endOffset":3253,"count":4}],"isBlockCoverage":true},{"functionName":"takeCard","ranges":[{"startOffset":3423,"endOffset":3719,"count":6113},{"startOffset":3483,"endOffset":3499,"count":3083},{"startOffset":3550,"endOffset":3701,"count":0}],"isBlockCoverage":true},{"functionName":"removeCards","ranges":[{"startOffset":3719,"endOffset":3816,"count":2176},{"startOffset":3768,"endOffset":3798,"count":2193}],"isBlockCoverage":true},{"functionName":"attributes","ranges":[{"startOffset":3816,"endOffset":4087,"count":730},{"startOffset":3898,"endOffset":3990,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4050,"endOffset":4073,"count":1146}],"isBlockCoverage":true},{"functionName":"useChips","ranges":[{"startOffset":4087,"endOffset":4484,"count":1280},{"startOffset":4126,"endOffset":4147,"count":0},{"startOffset":4164,"endOffset":4230,"count":0},{"startOffset":4256,"endOffset":4336,"count":1},{"startOffset":4336,"endOffset":4400,"count":1279},{"startOffset":4400,"endOffset":4483,"count":0}],"isBlockCoverage":true},{"functionName":"addChips","ranges":[{"startOffset":4484,"endOffset":4605,"count":557},{"startOffset":4542,"endOffset":4604,"count":0}],"isBlockCoverage":true},{"functionName":"setHandWinner","ranges":[{"startOffset":4605,"endOffset":5307,"count":1115},{"startOffset":4697,"endOffset":4705,"count":0},{"startOffset":4755,"endOffset":4838,"count":0},{"startOffset":4881,"endOffset":5059,"count":449},{"startOffset":4935,"endOffset":4973,"count":42},{"startOffset":4973,"endOffset":4979,"count":407},{"startOffset":5059,"endOffset":5228,"count":666},{"startOffset":5105,"endOffset":5136,"count":100},{"startOffset":5136,"endOffset":5228,"count":566},{"startOffset":5195,"endOffset":5228,"count":3}],"isBlockCoverage":true},{"functionName":"_blackjackNumeratorDenominator","ranges":[{"startOffset":5307,"endOffset":5483,"count":42},{"startOffset":5369,"endOffset":5425,"count":0}],"isBlockCoverage":true},{"functionName":"get hands","ranges":[{"startOffset":5483,"endOffset":5539,"count":1759}],"isBlockCoverage":true},{"functionName":"get firstHand","ranges":[{"startOffset":5539,"endOffset":5577,"count":1138}],"isBlockCoverage":true},{"functionName":"get isUser","ranges":[{"startOffset":5577,"endOffset":5651,"count":4721}],"isBlockCoverage":true},{"functionName":"get isNPC","ranges":[{"startOffset":5651,"endOffset":5682,"count":2506}],"isBlockCoverage":true},{"functionName":"get cards","ranges":[{"startOffset":5682,"endOffset":5722,"count":9255}],"isBlockCoverage":true},{"functionName":"get busted","ranges":[{"startOffset":5722,"endOffset":5764,"count":814}],"isBlockCoverage":true},{"functionName":"get blackjack","ranges":[{"startOffset":5764,"endOffset":5812,"count":5862}],"isBlockCoverage":true},{"functionName":"get cardTotal","ranges":[{"startOffset":5812,"endOffset":5860,"count":3362}],"isBlockCoverage":true},{"functionName":"get hasPairs","ranges":[{"startOffset":5860,"endOffset":5906,"count":0}],"isBlockCoverage":false},{"functionName":"get isSoft","ranges":[{"startOffset":5906,"endOffset":5948,"count":0}],"isBlockCoverage":false},{"functionName":"get isHard","ranges":[{"startOffset":5948,"endOffset":5990,"count":119}],"isBlockCoverage":true}]},{"scriptId":"502","url":"file:///Users/mhluska/projects/blackjack-simulator/src/hand.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":15724,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":70,"endOffset":4545,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":353,"endOffset":419,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":433,"endOffset":523,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":540,"endOffset":817,"count":4},{"startOffset":595,"endOffset":621,"count":0},{"startOffset":662,"endOffset":806,"count":8}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":728,"endOffset":741,"count":5700}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":830,"endOffset":1018,"count":3},{"startOffset":900,"endOffset":903,"count":0},{"startOffset":949,"endOffset":1005,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1036,"endOffset":1097,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1149,"endOffset":1157,"count":1753}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1534,"endOffset":1587,"count":1}],"isBlockCoverage":true},{"functionName":"Hand","ranges":[{"startOffset":1587,"endOffset":1760,"count":1753},{"startOffset":1738,"endOffset":1759,"count":2}],"isBlockCoverage":true},{"functionName":"reset","ranges":[{"startOffset":1760,"endOffset":1875,"count":3946}],"isBlockCoverage":true},{"functionName":"takeCards","ranges":[{"startOffset":1875,"endOffset":2008,"count":2310},{"startOffset":1933,"endOffset":1990,"count":23}],"isBlockCoverage":true},{"functionName":"takeCard","ranges":[{"startOffset":2008,"endOffset":2238,"count":6177},{"startOffset":2112,"endOffset":2138,"count":1132},{"startOffset":2138,"endOffset":2165,"count":5045},{"startOffset":2185,"endOffset":2220,"count":5045}],"isBlockCoverage":true},{"functionName":"removeCard","ranges":[{"startOffset":2238,"endOffset":2369,"count":54},{"startOffset":2288,"endOffset":2323,"count":0}],"isBlockCoverage":true},{"functionName":"incrementTotalsForCard","ranges":[{"startOffset":2369,"endOffset":2623,"count":6164},{"startOffset":2435,"endOffset":2556,"count":549},{"startOffset":2504,"endOffset":2528,"count":399},{"startOffset":2528,"endOffset":2555,"count":150},{"startOffset":2556,"endOffset":2622,"count":5615}],"isBlockCoverage":true},{"functionName":"decrementTotalsForCard","ranges":[{"startOffset":2623,"endOffset":2894,"count":54},{"startOffset":2689,"endOffset":2827,"count":30},{"startOffset":2748,"endOffset":2774,"count":28},{"startOffset":2775,"endOffset":2798,"count":28},{"startOffset":2798,"endOffset":2826,"count":2},{"startOffset":2827,"endOffset":2893,"count":24}],"isBlockCoverage":true},{"functionName":"removeCards","ranges":[{"startOffset":2894,"endOffset":3121,"count":2193},{"startOffset":2979,"endOffset":3077,"count":10},{"startOffset":3004,"endOffset":3076,"count":25}],"isBlockCoverage":true},{"functionName":"serialize","ranges":[{"startOffset":3121,"endOffset":3267,"count":80}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3176,"endOffset":3255,"count":167},{"startOffset":3198,"endOffset":3210,"count":31},{"startOffset":3251,"endOffset":3255,"count":0}],"isBlockCoverage":true},{"functionName":"attributes","ranges":[{"startOffset":3267,"endOffset":3443,"count":1579}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3319,"endOffset":3342,"count":1716}],"isBlockCoverage":true},{"functionName":"get allowSplit","ranges":[{"startOffset":3443,"endOffset":3647,"count":2797},{"startOffset":3477,"endOffset":3534,"count":317},{"startOffset":3535,"endOffset":3549,"count":2482},{"startOffset":3549,"endOffset":3564,"count":315},{"startOffset":3564,"endOffset":3580,"count":24},{"startOffset":3580,"endOffset":3620,"count":1},{"startOffset":3621,"endOffset":3635,"count":1},{"startOffset":3635,"endOffset":3646,"count":314}],"isBlockCoverage":true},{"functionName":"get fromSplit","ranges":[{"startOffset":3647,"endOffset":3688,"count":1623}],"isBlockCoverage":true},{"functionName":"get fromAceSplit","ranges":[{"startOffset":3688,"endOffset":3773,"count":1434},{"startOffset":3728,"endOffset":3772,"count":50}],"isBlockCoverage":true},{"functionName":"get allowSurrender","ranges":[{"startOffset":3773,"endOffset":3857,"count":1474},{"startOffset":3815,"endOffset":3856,"count":1071}],"isBlockCoverage":true},{"functionName":"get allowDouble","ranges":[{"startOffset":3857,"endOffset":3897,"count":128}],"isBlockCoverage":true},{"functionName":"get cardTotal","ranges":[{"startOffset":3897,"endOffset":3979,"count":12809},{"startOffset":3941,"endOffset":3959,"count":1426},{"startOffset":3959,"endOffset":3978,"count":11383}],"isBlockCoverage":true},{"functionName":"get firstMove","ranges":[{"startOffset":3979,"endOffset":4023,"count":3207}],"isBlockCoverage":true},{"functionName":"get busted","ranges":[{"startOffset":4023,"endOffset":4061,"count":2590}],"isBlockCoverage":true},{"functionName":"get blackjack","ranges":[{"startOffset":4061,"endOffset":4148,"count":11295},{"startOffset":4105,"endOffset":4130,"count":8866},{"startOffset":4130,"endOffset":4147,"count":165}],"isBlockCoverage":true},{"functionName":"get finished","ranges":[{"startOffset":4148,"endOffset":4232,"count":16},{"startOffset":4216,"endOffset":4231,"count":3}],"isBlockCoverage":true},{"functionName":"get hasPairs","ranges":[{"startOffset":4232,"endOffset":4319,"count":4376},{"startOffset":4275,"endOffset":4318,"count":2434}],"isBlockCoverage":true},{"functionName":"get isSoft","ranges":[{"startOffset":4319,"endOffset":4379,"count":2895},{"startOffset":4355,"endOffset":4378,"count":513}],"isBlockCoverage":true},{"functionName":"get isHard","ranges":[{"startOffset":4379,"endOffset":4411,"count":122}],"isBlockCoverage":true},{"functionName":"get hasAces","ranges":[{"startOffset":4411,"endOffset":4542,"count":341},{"startOffset":4497,"endOffset":4541,"count":34}],"isBlockCoverage":true}]},{"scriptId":"503","url":"file:///Users/mhluska/projects/blackjack-simulator/src/event-types.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":4372,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":77,"endOffset":1493,"count":1},{"startOffset":1437,"endOffset":1490,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":294,"endOffset":360,"count":3}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":374,"endOffset":464,"count":1},{"startOffset":409,"endOffset":463,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":481,"endOffset":758,"count":1},{"startOffset":536,"endOffset":562,"count":0},{"startOffset":603,"endOffset":747,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":669,"endOffset":682,"count":215}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":776,"endOffset":837,"count":1}],"isBlockCoverage":true},{"functionName":"hasAttributes","ranges":[{"startOffset":909,"endOffset":926,"count":193}],"isBlockCoverage":true},{"functionName":"isPlayerAttributes","ranges":[{"startOffset":946,"endOffset":968,"count":22}],"isBlockCoverage":true},{"functionName":"isPlayerAttributes","ranges":[{"startOffset":1020,"endOffset":1139,"count":22}],"isBlockCoverage":true},{"functionName":"isRecord","ranges":[{"startOffset":1187,"endOffset":1257,"count":193},{"startOffset":1242,"endOffset":1256,"count":0}],"isBlockCoverage":true},{"functionName":"hasAttributes","ranges":[{"startOffset":1285,"endOffset":1398,"count":193},{"startOffset":1337,"endOffset":1397,"count":0}],"isBlockCoverage":true}]},{"scriptId":"504","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/cli-renderer.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":9074,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":83,"endOffset":2879,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":353,"endOffset":419,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":436,"endOffset":713,"count":3},{"startOffset":491,"endOffset":517,"count":0},{"startOffset":558,"endOffset":702,"count":9}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":624,"endOffset":637,"count":8}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":726,"endOffset":914,"count":3},{"startOffset":796,"endOffset":799,"count":0},{"startOffset":845,"endOffset":901,"count":0}],"isBlockCoverage":true},{"functionName":"setupPushGame","ranges":[{"startOffset":1160,"endOffset":1642,"count":1},{"startOffset":1250,"endOffset":1274,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1370,"endOffset":1482,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1703,"endOffset":2875,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1742,"endOffset":2873,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1794,"endOffset":2871,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1834,"endOffset":2339,"count":1}],"isBlockCoverage":true},{"functionName":"import_cli_renderer.default._setupCliInput","ranges":[{"startOffset":1941,"endOffset":1953,"count":1}],"isBlockCoverage":true},{"functionName":"import_cli_renderer.default._renderLines","ranges":[{"startOffset":2005,"endOffset":2017,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2400,"endOffset":2625,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2673,"endOffset":2869,"count":1}],"isBlockCoverage":true}]},{"scriptId":"505","url":"file:///Users/mhluska/projects/blackjack-simulator/src/cli-renderer.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":13226,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":78,"endOffset":4091,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":361,"endOffset":427,"count":3}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":441,"endOffset":531,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":548,"endOffset":825,"count":2},{"startOffset":603,"endOffset":629,"count":0},{"startOffset":670,"endOffset":814,"count":9}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":736,"endOffset":749,"count":3}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":838,"endOffset":1026,"count":1},{"startOffset":908,"endOffset":911,"count":0},{"startOffset":1013,"endOffset":1020,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1044,"endOffset":1105,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1173,"endOffset":1188,"count":3}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1413,"endOffset":1447,"count":1}],"isBlockCoverage":true},{"functionName":"CLIRenderer","ranges":[{"startOffset":1447,"endOffset":1544,"count":1}],"isBlockCoverage":true},{"functionName":"get outputLines","ranges":[{"startOffset":1544,"endOffset":1741,"count":1}],"isBlockCoverage":true},{"functionName":"render","ranges":[{"startOffset":1741,"endOffset":1965,"count":0}],"isBlockCoverage":false},{"functionName":"_renderLines","ranges":[{"startOffset":1965,"endOffset":2052,"count":0}],"isBlockCoverage":false},{"functionName":"_setupCliInput","ranges":[{"startOffset":2052,"endOffset":2168,"count":0}],"isBlockCoverage":false},{"functionName":"_playerLine","ranges":[{"startOffset":2168,"endOffset":2493,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2221,"endOffset":2418,"count":2},{"startOffset":2259,"endOffset":2263,"count":0},{"startOffset":2311,"endOffset":2319,"count":1}],"isBlockCoverage":true},{"functionName":"_statsLine","ranges":[{"startOffset":2493,"endOffset":2561,"count":1}],"isBlockCoverage":true},{"functionName":"_questionLine","ranges":[{"startOffset":2561,"endOffset":3750,"count":2},{"startOffset":2607,"endOffset":2617,"count":0},{"startOffset":2698,"endOffset":2971,"count":0},{"startOffset":3049,"endOffset":3099,"count":0},{"startOffset":3745,"endOffset":3749,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3203,"endOffset":3583,"count":2},{"startOffset":3259,"endOffset":3535,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3641,"endOffset":3666,"count":2}],"isBlockCoverage":true},{"functionName":"_renderLine","ranges":[{"startOffset":3750,"endOffset":3936,"count":0}],"isBlockCoverage":false},{"functionName":"_colorizeHand","ranges":[{"startOffset":3936,"endOffset":4088,"count":2}],"isBlockCoverage":true}]},{"scriptId":"506","url":"node:readline","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":12801,"count":1}],"isBlockCoverage":false},{"functionName":"Interface","ranges":[{"startOffset":2591,"endOffset":3336,"count":0}],"isBlockCoverage":false},{"functionName":"question","ranges":[{"startOffset":3655,"endOffset":4449,"count":0}],"isBlockCoverage":false},{"functionName":"question","ranges":[{"startOffset":4500,"endOffset":5271,"count":0}],"isBlockCoverage":false},{"functionName":"createInterface","ranges":[{"startOffset":5805,"endOffset":5929,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6122,"endOffset":6166,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6213,"endOffset":6253,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6307,"endOffset":6354,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6405,"endOffset":6449,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6501,"endOffset":6546,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6598,"endOffset":6643,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6696,"endOffset":6742,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6794,"endOffset":6839,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6888,"endOffset":6930,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":6980,"endOffset":7023,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7074,"endOffset":7118,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7170,"endOffset":7215,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7270,"endOffset":7318,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7374,"endOffset":7423,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7478,"endOffset":7526,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7582,"endOffset":7631,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7676,"endOffset":7714,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7766,"endOffset":7811,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7863,"endOffset":7908,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":7962,"endOffset":8009,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8060,"endOffset":8104,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8153,"endOffset":8195,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8334,"endOffset":8376,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":8382,"endOffset":8430,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8480,"endOffset":8526,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":8532,"endOffset":8584,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8632,"endOffset":8676,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":8682,"endOffset":8732,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8782,"endOffset":8828,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":8834,"endOffset":8886,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":8931,"endOffset":8972,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":8978,"endOffset":9025,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":9080,"endOffset":9131,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":9137,"endOffset":9194,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":9244,"endOffset":9290,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":9296,"endOffset":9348,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":9398,"endOffset":9444,"count":0}],"isBlockCoverage":false},{"functionName":"set","ranges":[{"startOffset":9450,"endOffset":9502,"count":0}],"isBlockCoverage":false},{"functionName":"Interface._tabComplete","ranges":[{"startOffset":10098,"endOffset":10579,"count":0}],"isBlockCoverage":false},{"functionName":"_ttyWriteDumb","ranges":[{"startOffset":11645,"endOffset":12653,"count":0}],"isBlockCoverage":false}]},{"scriptId":"507","url":"node:internal/readline/emitKeypressEvents","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2663,"count":1}],"isBlockCoverage":false},{"functionName":"emitKeypressEvents","ranges":[{"startOffset":644,"endOffset":2624,"count":0}],"isBlockCoverage":false}]},{"scriptId":"508","url":"node:readline/promises","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1560,"count":1}],"isBlockCoverage":false},{"functionName":"question","ranges":[{"startOffset":497,"endOffset":1364,"count":0}],"isBlockCoverage":false},{"functionName":"createInterface","ranges":[{"startOffset":1368,"endOffset":1492,"count":0}],"isBlockCoverage":false}]},{"scriptId":"509","url":"node:internal/readline/promises","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3513,"count":1}],"isBlockCoverage":false},{"functionName":"<instance_members_initializer>","ranges":[{"startOffset":474,"endOffset":518,"count":0}],"isBlockCoverage":false},{"functionName":"Readline","ranges":[{"startOffset":523,"endOffset":848,"count":0}],"isBlockCoverage":false},{"functionName":"cursorTo","ranges":[{"startOffset":1013,"endOffset":1331,"count":0}],"isBlockCoverage":false},{"functionName":"moveCursor","ranges":[{"startOffset":1483,"endOffset":1995,"count":0}],"isBlockCoverage":false},{"functionName":"clearLine","ranges":[{"startOffset":2229,"endOffset":2545,"count":0}],"isBlockCoverage":false},{"functionName":"clearScreenDown","ranges":[{"startOffset":2660,"endOffset":2871,"count":0}],"isBlockCoverage":false},{"functionName":"commit","ranges":[{"startOffset":3120,"endOffset":3274,"count":0}],"isBlockCoverage":false},{"functionName":"rollback","ranges":[{"startOffset":3421,"endOffset":3475,"count":0}],"isBlockCoverage":false}]},{"scriptId":"510","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/file-storage.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7810,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":83,"endOffset":2687,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":358,"endOffset":635,"count":4},{"startOffset":413,"endOffset":439,"count":0},{"startOffset":480,"endOffset":624,"count":150}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":546,"endOffset":559,"count":24}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":648,"endOffset":836,"count":4},{"startOffset":718,"endOffset":721,"count":0},{"startOffset":767,"endOffset":823,"count":3},{"startOffset":823,"endOffset":830,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1053,"endOffset":2683,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1099,"endOffset":1224,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1236,"endOffset":1294,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1323,"endOffset":2681,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1392,"endOffset":1715,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1780,"endOffset":2150,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2205,"endOffset":2679,"count":1}],"isBlockCoverage":true}]},{"scriptId":"511","url":"file:///Users/mhluska/projects/blackjack-simulator/src/file-storage.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3185,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":78,"endOffset":1666,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":361,"endOffset":427,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":441,"endOffset":531,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":548,"endOffset":825,"count":3},{"startOffset":603,"endOffset":629,"count":0},{"startOffset":670,"endOffset":814,"count":126}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":736,"endOffset":749,"count":16}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":838,"endOffset":1026,"count":2},{"startOffset":908,"endOffset":911,"count":0},{"startOffset":1013,"endOffset":1020,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1044,"endOffset":1105,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1173,"endOffset":1188,"count":3}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":1381,"endOffset":1415,"count":1}],"isBlockCoverage":true},{"functionName":"FileStorage","ranges":[{"startOffset":1415,"endOffset":1491,"count":3},{"startOffset":1468,"endOffset":1490,"count":0}],"isBlockCoverage":true},{"functionName":"createRecord","ranges":[{"startOffset":1491,"endOffset":1663,"count":4}],"isBlockCoverage":true}]},{"scriptId":"512","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/game.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":135512,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":75,"endOffset":35765,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":345,"endOffset":411,"count":52}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":428,"endOffset":705,"count":7},{"startOffset":483,"endOffset":509,"count":0},{"startOffset":550,"endOffset":694,"count":45}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":616,"endOffset":629,"count":297}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":718,"endOffset":906,"count":7},{"startOffset":788,"endOffset":791,"count":0},{"startOffset":837,"endOffset":893,"count":1},{"startOffset":893,"endOffset":900,"count":6}],"isBlockCoverage":true},{"functionName":"setupGame","ranges":[{"startOffset":1573,"endOffset":2950,"count":48},{"startOffset":1659,"endOffset":1683,"count":0},{"startOffset":1966,"endOffset":2456,"count":1},{"startOffset":2312,"endOffset":2388,"count":0},{"startOffset":2456,"endOffset":2938,"count":47},{"startOffset":2894,"endOffset":2937,"count":8}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2518,"endOffset":2667,"count":196},{"startOffset":2562,"endOffset":2570,"count":32},{"startOffset":2570,"endOffset":2666,"count":164}],"isBlockCoverage":true},{"functionName":"runGame","ranges":[{"startOffset":2980,"endOffset":3487,"count":18},{"startOffset":3081,"endOffset":3434,"count":79},{"startOffset":3159,"endOffset":3319,"count":66},{"startOffset":3225,"endOffset":3245,"count":37},{"startOffset":3246,"endOffset":3318,"count":0},{"startOffset":3319,"endOffset":3353,"count":13},{"startOffset":3353,"endOffset":3374,"count":66},{"startOffset":3374,"endOffset":3396,"count":54},{"startOffset":3397,"endOffset":3411,"count":23},{"startOffset":3411,"endOffset":3434,"count":66}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3529,"endOffset":35761,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3556,"endOffset":3584,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3607,"endOffset":4341,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3683,"endOffset":4091,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4141,"endOffset":4339,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4361,"endOffset":35759,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4414,"endOffset":5128,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4448,"endOffset":4856,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4556,"endOffset":4573,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4928,"endOffset":5008,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5052,"endOffset":5126,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5170,"endOffset":5990,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5382,"endOffset":5732,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5477,"endOffset":5634,"count":27},{"startOffset":5510,"endOffset":5608,"count":8},{"startOffset":5609,"endOffset":5633,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5774,"endOffset":5882,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5930,"endOffset":5988,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6039,"endOffset":6534,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6057,"endOffset":6379,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6420,"endOffset":6532,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6577,"endOffset":7818,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6628,"endOffset":7235,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6646,"endOffset":6999,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7034,"endOffset":7233,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7282,"endOffset":7816,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7300,"endOffset":7672,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7711,"endOffset":7814,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7869,"endOffset":8520,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7887,"endOffset":8361,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8429,"endOffset":8518,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8582,"endOffset":9207,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8600,"endOffset":9019,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9062,"endOffset":9205,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9245,"endOffset":9790,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9263,"endOffset":9597,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9645,"endOffset":9788,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9828,"endOffset":10317,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9846,"endOffset":10124,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10172,"endOffset":10315,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10359,"endOffset":10892,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10377,"endOffset":10767,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10817,"endOffset":10890,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10942,"endOffset":11442,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10960,"endOffset":11177,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11226,"endOffset":11440,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11491,"endOffset":12137,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11536,"endOffset":11940,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11726,"endOffset":11860,"count":20},{"startOffset":11759,"endOffset":11835,"count":7},{"startOffset":11836,"endOffset":11859,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11948,"endOffset":12018,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12072,"endOffset":12135,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12221,"endOffset":13177,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12263,"endOffset":12500,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12541,"endOffset":12649,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12705,"endOffset":12852,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12896,"endOffset":13017,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13075,"endOffset":13175,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13253,"endOffset":13887,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13271,"endOffset":13574,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13616,"endOffset":13701,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13742,"endOffset":13885,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13965,"endOffset":14623,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13983,"endOffset":14310,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14352,"endOffset":14437,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14478,"endOffset":14621,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14710,"endOffset":15333,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14728,"endOffset":15030,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15076,"endOffset":15150,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15188,"endOffset":15331,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15412,"endOffset":15884,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15454,"endOffset":15733,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15797,"endOffset":15882,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15982,"endOffset":16734,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16052,"endOffset":16491,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16532,"endOffset":16598,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16661,"endOffset":16732,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16839,"endOffset":17599,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16883,"endOffset":17381,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17138,"endOffset":17326,"count":21},{"startOffset":17171,"endOffset":17269,"count":7},{"startOffset":17270,"endOffset":17325,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17389,"endOffset":17459,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17529,"endOffset":17597,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17657,"endOffset":18209,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17675,"endOffset":17939,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17978,"endOffset":18207,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":18253,"endOffset":18938,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":18271,"endOffset":18602,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":18637,"endOffset":18936,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":18997,"endOffset":19313,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19030,"endOffset":19311,"count":1},{"startOffset":19249,"endOffset":19310,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19273,"endOffset":19293,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19355,"endOffset":19980,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19373,"endOffset":19737,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19782,"endOffset":19978,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20024,"endOffset":20552,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20042,"endOffset":20288,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20344,"endOffset":20550,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20626,"endOffset":21228,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20668,"endOffset":20933,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20974,"endOffset":21093,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21141,"endOffset":21226,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21303,"endOffset":21917,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21345,"endOffset":21622,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21663,"endOffset":21782,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21830,"endOffset":21915,"count":1}],"isBlockCoverage":true},{"functionName":"setTrueCount","ranges":[{"startOffset":21919,"endOffset":22008,"count":20}],"isBlockCoverage":true},{"functionName":"dealToPlayInput","ranges":[{"startOffset":22044,"endOffset":22158,"count":22},{"startOffset":22143,"endOffset":22157,"count":44}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22255,"endOffset":22720,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22284,"endOffset":22596,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22633,"endOffset":22718,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22686,"endOffset":22716,"count":1},{"startOffset":22699,"endOffset":22716,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22780,"endOffset":23329,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22809,"endOffset":23122,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23148,"endOffset":23327,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23387,"endOffset":23877,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23416,"endOffset":23753,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23790,"endOffset":23875,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23843,"endOffset":23873,"count":1},{"startOffset":23856,"endOffset":23873,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23938,"endOffset":24512,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23967,"endOffset":24305,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":24331,"endOffset":24510,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":24569,"endOffset":25035,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":24598,"endOffset":24911,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":24948,"endOffset":25033,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25001,"endOffset":25031,"count":1},{"startOffset":25014,"endOffset":25031,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25097,"endOffset":25648,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25126,"endOffset":25441,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25467,"endOffset":25646,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25706,"endOffset":26173,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25735,"endOffset":26049,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":26086,"endOffset":26171,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":26139,"endOffset":26169,"count":1},{"startOffset":26152,"endOffset":26169,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":26235,"endOffset":26787,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":26264,"endOffset":26580,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":26606,"endOffset":26785,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":26845,"endOffset":27311,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":26874,"endOffset":27187,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":27224,"endOffset":27309,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":27277,"endOffset":27307,"count":1},{"startOffset":27290,"endOffset":27307,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":27373,"endOffset":27924,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":27402,"endOffset":27717,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":27743,"endOffset":27922,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":27982,"endOffset":28447,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":28011,"endOffset":28323,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":28360,"endOffset":28445,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":28413,"endOffset":28443,"count":1},{"startOffset":28426,"endOffset":28443,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":28509,"endOffset":29059,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":28538,"endOffset":28852,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":28878,"endOffset":29057,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":29117,"endOffset":29584,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":29146,"endOffset":29460,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":29497,"endOffset":29582,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":29550,"endOffset":29580,"count":1},{"startOffset":29563,"endOffset":29580,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":29646,"endOffset":30198,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":29675,"endOffset":29991,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30017,"endOffset":30196,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30261,"endOffset":30776,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30290,"endOffset":30652,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30689,"endOffset":30774,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30742,"endOffset":30772,"count":1},{"startOffset":30755,"endOffset":30772,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30840,"endOffset":31440,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":30869,"endOffset":31233,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31259,"endOffset":31438,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31502,"endOffset":31994,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31531,"endOffset":31870,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31907,"endOffset":31992,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":31960,"endOffset":31990,"count":1},{"startOffset":31973,"endOffset":31990,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":32056,"endOffset":32633,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":32085,"endOffset":32426,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":32452,"endOffset":32631,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":32695,"endOffset":33212,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":32724,"endOffset":33088,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33125,"endOffset":33210,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33178,"endOffset":33208,"count":1},{"startOffset":33191,"endOffset":33208,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33274,"endOffset":33875,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33303,"endOffset":33668,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33694,"endOffset":33873,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33966,"endOffset":34670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":33984,"endOffset":34271,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":34320,"endOffset":34668,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":34733,"endOffset":35757,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":34765,"endOffset":35472,"count":1},{"startOffset":34835,"endOffset":34859,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":34955,"endOffset":35067,"count":8}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":35546,"endOffset":35755,"count":1}],"isBlockCoverage":true}]},{"scriptId":"513","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/hand.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8992,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":75,"endOffset":3201,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":345,"endOffset":411,"count":2}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":428,"endOffset":705,"count":1},{"startOffset":483,"endOffset":509,"count":0},{"startOffset":550,"endOffset":694,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":616,"endOffset":629,"count":5}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":718,"endOffset":906,"count":1},{"startOffset":788,"endOffset":791,"count":0},{"startOffset":837,"endOffset":893,"count":0}],"isBlockCoverage":true},{"functionName":"setupHand","ranges":[{"startOffset":1079,"endOffset":1247,"count":5}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1196,"endOffset":1244,"count":2}],"isBlockCoverage":true},{"functionName":"testCardTotals","ranges":[{"startOffset":1277,"endOffset":1848,"count":4},{"startOffset":1429,"endOffset":1564,"count":31},{"startOffset":1599,"endOffset":1685,"count":31},{"startOffset":1768,"endOffset":1836,"count":31}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1904,"endOffset":3197,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1931,"endOffset":2176,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1996,"endOffset":2174,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2200,"endOffset":3195,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2268,"endOffset":2403,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2476,"endOffset":2635,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2714,"endOffset":2927,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2999,"endOffset":3193,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3053,"endOffset":3078,"count":21}],"isBlockCoverage":true}]},{"scriptId":"514","url":"file:///Users/mhluska/projects/blackjack-simulator/test/factories/index.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":2197,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":82,"endOffset":1562,"count":1},{"startOffset":1481,"endOffset":1559,"count":0}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":354,"endOffset":444,"count":1},{"startOffset":389,"endOffset":443,"count":4}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":461,"endOffset":738,"count":5},{"startOffset":516,"endOffset":542,"count":0},{"startOffset":583,"endOffset":727,"count":12}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":649,"endOffset":662,"count":154}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":751,"endOffset":939,"count":4},{"startOffset":821,"endOffset":824,"count":0},{"startOffset":870,"endOffset":926,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":957,"endOffset":1018,"count":1}],"isBlockCoverage":true},{"functionName":"CardFactory","ranges":[{"startOffset":1084,"endOffset":1107,"count":72}],"isBlockCoverage":true},{"functionName":"GameSettingsFactory","ranges":[{"startOffset":1128,"endOffset":1160,"count":0}],"isBlockCoverage":false},{"functionName":"PlayerFactory","ranges":[{"startOffset":1175,"endOffset":1200,"count":5}],"isBlockCoverage":true},{"functionName":"ShoeFactory","ranges":[{"startOffset":1213,"endOffset":1236,"count":0}],"isBlockCoverage":false}]},{"scriptId":"515","url":"file:///Users/mhluska/projects/blackjack-simulator/test/factories/game-settings.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1494,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":90,"endOffset":995,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":296,"endOffset":386,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":403,"endOffset":680,"count":1},{"startOffset":458,"endOffset":484,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":591,"endOffset":604,"count":0}],"isBlockCoverage":false},{"functionName":"__toCommonJS","ranges":[{"startOffset":698,"endOffset":759,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":829,"endOffset":854,"count":0}],"isBlockCoverage":false}]},{"scriptId":"516","url":"file:///Users/mhluska/projects/blackjack-simulator/node_modules/rosie/src/rosie.js","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":13104,"count":1},{"startOffset":12898,"endOffset":13103,"count":0}],"isBlockCoverage":true},{"functionName":"Factory","ranges":[{"startOffset":161,"endOffset":356,"count":4}],"isBlockCoverage":true},{"functionName":"attr","ranges":[{"startOffset":1707,"endOffset":2019,"count":8},{"startOffset":1790,"endOffset":1852,"count":4},{"startOffset":1896,"endOffset":1903,"count":5},{"startOffset":1904,"endOffset":1917,"count":3},{"startOffset":1972,"endOffset":1977,"count":6}],"isBlockCoverage":true},{"functionName":"builder","ranges":[{"startOffset":1906,"endOffset":1917,"count":152}],"isBlockCoverage":true},{"functionName":"attrs","ranges":[{"startOffset":2436,"endOffset":2636,"count":1},{"startOffset":2489,"endOffset":2615,"count":4}],"isBlockCoverage":true},{"functionName":"option","ranges":[{"startOffset":3649,"endOffset":3989,"count":0}],"isBlockCoverage":false},{"functionName":"sequence","ranges":[{"startOffset":4623,"endOffset":5028,"count":2},{"startOffset":4695,"endOffset":4792,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4819,"endOffset":4827,"count":77}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4871,"endOffset":5022,"count":77},{"startOffset":4936,"endOffset":4940,"count":2}],"isBlockCoverage":true},{"functionName":"after","ranges":[{"startOffset":5285,"endOffset":5358,"count":0}],"isBlockCoverage":false},{"functionName":"attributes","ranges":[{"startOffset":5660,"endOffset":5893,"count":77},{"startOffset":5801,"endOffset":5866,"count":509}],"isBlockCoverage":true},{"functionName":"_attrValue","ranges":[{"startOffset":6175,"endOffset":6930,"count":869},{"startOffset":6338,"endOffset":6376,"count":424},{"startOffset":6376,"endOffset":6929,"count":445}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6443,"endOffset":6876,"count":360},{"startOffset":6516,"endOffset":6554,"count":0},{"startOffset":6578,"endOffset":6619,"count":0},{"startOffset":6654,"endOffset":6776,"count":0}],"isBlockCoverage":true},{"functionName":"_alwaysCallBuilder","ranges":[{"startOffset":7104,"endOffset":7227,"count":869}],"isBlockCoverage":true},{"functionName":"options","ranges":[{"startOffset":7391,"endOffset":7561,"count":154},{"startOffset":7476,"endOffset":7537,"count":0}],"isBlockCoverage":true},{"functionName":"_optionValue","ranges":[{"startOffset":7769,"endOffset":8176,"count":0}],"isBlockCoverage":false},{"functionName":"_buildWithDependencies","ranges":[{"startOffset":8456,"endOffset":8643,"count":445}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8557,"endOffset":8594,"count":360}],"isBlockCoverage":true},{"functionName":"build","ranges":[{"startOffset":8867,"endOffset":9549,"count":77},{"startOffset":9234,"endOffset":9323,"count":0},{"startOffset":9413,"endOffset":9526,"count":0}],"isBlockCoverage":true},{"functionName":"buildList","ranges":[{"startOffset":9553,"endOffset":9726,"count":0}],"isBlockCoverage":false},{"functionName":"extend","ranges":[{"startOffset":10028,"endOffset":10442,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":10582,"endOffset":10620,"count":0}],"isBlockCoverage":false},{"functionName":"Factory.define","ranges":[{"startOffset":10993,"endOffset":11121,"count":0}],"isBlockCoverage":false},{"functionName":"Factory.build","ranges":[{"startOffset":11302,"endOffset":11497,"count":0}],"isBlockCoverage":false},{"functionName":"Factory.buildList","ranges":[{"startOffset":11720,"endOffset":11896,"count":0}],"isBlockCoverage":false},{"functionName":"Factory.attributes","ranges":[{"startOffset":12090,"endOffset":12193,"count":0}],"isBlockCoverage":false},{"functionName":"Factory.reset","ranges":[{"startOffset":12316,"endOffset":12370,"count":0}],"isBlockCoverage":false},{"functionName":"Factory.resetAll","ranges":[{"startOffset":12475,"endOffset":12553,"count":0}],"isBlockCoverage":false},{"functionName":"Factory.implode","ranges":[{"startOffset":12631,"endOffset":12708,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":12990,"endOffset":13025,"count":0}],"isBlockCoverage":false}]},{"scriptId":"517","url":"file:///Users/mhluska/projects/blackjack-simulator/test/factories/card.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3217,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":81,"endOffset":1702,"count":1}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":351,"endOffset":417,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":431,"endOffset":521,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":538,"endOffset":815,"count":2},{"startOffset":593,"endOffset":619,"count":0},{"startOffset":660,"endOffset":804,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":726,"endOffset":739,"count":74}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":828,"endOffset":1016,"count":1},{"startOffset":898,"endOffset":901,"count":0},{"startOffset":947,"endOffset":1003,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1034,"endOffset":1095,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":1147,"endOffset":1163,"count":72}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1510,"endOffset":1524,"count":72}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1514,"endOffset":1524,"count":64}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1586,"endOffset":1646,"count":72}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1614,"endOffset":1646,"count":531}],"isBlockCoverage":true}]},{"scriptId":"518","url":"file:///Users/mhluska/projects/blackjack-simulator/test/factories/player.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1489,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":83,"endOffset":970,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":289,"endOffset":379,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":396,"endOffset":673,"count":1},{"startOffset":451,"endOffset":477,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":584,"endOffset":597,"count":5}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":691,"endOffset":752,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":808,"endOffset":826,"count":5}],"isBlockCoverage":true}]},{"scriptId":"519","url":"file:///Users/mhluska/projects/blackjack-simulator/test/factories/shoe.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1400,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":81,"endOffset":941,"count":1}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":287,"endOffset":377,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":394,"endOffset":671,"count":1},{"startOffset":449,"endOffset":475,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":582,"endOffset":595,"count":0}],"isBlockCoverage":false},{"functionName":"__toCommonJS","ranges":[{"startOffset":689,"endOffset":750,"count":1}],"isBlockCoverage":true},{"functionName":"default","ranges":[{"startOffset":802,"endOffset":818,"count":0}],"isBlockCoverage":false}]},{"scriptId":"520","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/player.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":5394,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":77,"endOffset":1791,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":352,"endOffset":629,"count":1},{"startOffset":407,"endOffset":433,"count":0},{"startOffset":474,"endOffset":618,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":540,"endOffset":553,"count":2}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":642,"endOffset":830,"count":1},{"startOffset":712,"endOffset":715,"count":0},{"startOffset":761,"endOffset":817,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":980,"endOffset":1787,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1008,"endOffset":1785,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1096,"endOffset":1390,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1318,"endOffset":1348,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1441,"endOffset":1783,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1632,"endOffset":1662,"count":1}],"isBlockCoverage":true}]},{"scriptId":"521","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/shoe.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3838,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":75,"endOffset":1647,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":350,"endOffset":627,"count":1},{"startOffset":405,"endOffset":431,"count":0},{"startOffset":472,"endOffset":616,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":538,"endOffset":551,"count":2}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":640,"endOffset":828,"count":1},{"startOffset":710,"endOffset":713,"count":0},{"startOffset":759,"endOffset":815,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":973,"endOffset":1643,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1014,"endOffset":1231,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1259,"endOffset":1498,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1526,"endOffset":1641,"count":1}],"isBlockCoverage":true}]},{"scriptId":"522","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/simulator.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6172,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":80,"endOffset":2033,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":355,"endOffset":632,"count":1},{"startOffset":410,"endOffset":436,"count":0},{"startOffset":477,"endOffset":621,"count":5}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":543,"endOffset":556,"count":2}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":645,"endOffset":833,"count":1},{"startOffset":715,"endOffset":718,"count":0},{"startOffset":764,"endOffset":820,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":948,"endOffset":2029,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":980,"endOffset":1099,"count":1},{"startOffset":1060,"endOffset":1084,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1111,"endOffset":1357,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1417,"endOffset":2027,"count":1},{"startOffset":1497,"endOffset":1521,"count":0}],"isBlockCoverage":true},{"functionName":"sim.game.run","ranges":[{"startOffset":1647,"endOffset":1784,"count":99}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1857,"endOffset":1867,"count":99}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1911,"endOffset":1935,"count":99}],"isBlockCoverage":true}]},{"scriptId":"523","url":"file:///Users/mhluska/projects/blackjack-simulator/src/simulator.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":35958,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":75,"endOffset":9739,"count":1},{"startOffset":9668,"endOffset":9736,"count":0}],"isBlockCoverage":true},{"functionName":"__name","ranges":[{"startOffset":358,"endOffset":424,"count":11}],"isBlockCoverage":true},{"functionName":"__export","ranges":[{"startOffset":438,"endOffset":528,"count":1},{"startOffset":473,"endOffset":527,"count":4}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":545,"endOffset":822,"count":3},{"startOffset":600,"endOffset":626,"count":0},{"startOffset":667,"endOffset":811,"count":10}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":733,"endOffset":746,"count":2211}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":835,"endOffset":1023,"count":2},{"startOffset":905,"endOffset":908,"count":0},{"startOffset":954,"endOffset":1010,"count":0}],"isBlockCoverage":true},{"functionName":"__toCommonJS","ranges":[{"startOffset":1041,"endOffset":1102,"count":1}],"isBlockCoverage":true},{"functionName":"SETTINGS_DEFAULTS","ranges":[{"startOffset":1174,"endOffset":1195,"count":0}],"isBlockCoverage":false},{"functionName":"bankrollRequired","ranges":[{"startOffset":1213,"endOffset":1233,"count":0}],"isBlockCoverage":false},{"functionName":"default","ranges":[{"startOffset":1242,"endOffset":1255,"count":2}],"isBlockCoverage":true},{"functionName":"mergeResults","ranges":[{"startOffset":1269,"endOffset":1285,"count":0}],"isBlockCoverage":false},{"functionName":"getChipUnit","ranges":[{"startOffset":1459,"endOffset":1697,"count":3},{"startOffset":1593,"endOffset":1639,"count":18},{"startOffset":1621,"endOffset":1638,"count":3},{"startOffset":1639,"endOffset":1696,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1537,"endOffset":1559,"count":21}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1661,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"roundToIncrement","ranges":[{"startOffset":1731,"endOffset":1787,"count":15}],"isBlockCoverage":true},{"functionName":"spotCountBetMultiplier","ranges":[{"startOffset":1831,"endOffset":1953,"count":15},{"startOffset":1892,"endOffset":1908,"count":11},{"startOffset":1908,"endOffset":1926,"count":0},{"startOffset":1926,"endOffset":1951,"count":4}],"isBlockCoverage":true},{"functionName":"defaultSettings","ranges":[{"startOffset":2009,"endOffset":2988,"count":3},{"startOffset":2274,"endOffset":2317,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2311,"endOffset":2316,"count":10}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2452,"endOffset":2602,"count":15}],"isBlockCoverage":true},{"functionName":"bankrollRequired","ranges":[{"startOffset":3072,"endOffset":3237,"count":0}],"isBlockCoverage":false},{"functionName":"formatTableRules","ranges":[{"startOffset":3281,"endOffset":3779,"count":2},{"startOffset":3617,"endOffset":3623,"count":0},{"startOffset":3662,"endOffset":3669,"count":0},{"startOffset":3699,"endOffset":3704,"count":0},{"startOffset":3738,"endOffset":3744,"count":0}],"isBlockCoverage":true},{"functionName":"formatPlayerStrategy","ranges":[{"startOffset":3823,"endOffset":4227,"count":2},{"startOffset":3994,"endOffset":4225,"count":0}],"isBlockCoverage":true},{"functionName":"formatWongOutTrueCount","ranges":[{"startOffset":4279,"endOffset":4393,"count":2},{"startOffset":4367,"endOffset":4392,"count":0}],"isBlockCoverage":true},{"functionName":"estimateHandsPerHour","ranges":[{"startOffset":4449,"endOffset":4701,"count":2},{"startOffset":4530,"endOffset":4699,"count":0}],"isBlockCoverage":true},{"functionName":"mergeResults","ranges":[{"startOffset":4753,"endOffset":6045,"count":0}],"isBlockCoverage":false},{"functionName":"<static_initializer>","ranges":[{"startOffset":6097,"endOffset":6129,"count":1}],"isBlockCoverage":true},{"functionName":"Simulator","ranges":[{"startOffset":6129,"endOffset":7834,"count":2},{"startOffset":7091,"endOffset":7135,"count":0},{"startOffset":7234,"endOffset":7271,"count":0},{"startOffset":7445,"endOffset":7478,"count":0},{"startOffset":7574,"endOffset":7644,"count":0},{"startOffset":7723,"endOffset":7771,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7342,"endOffset":7412,"count":5}],"isBlockCoverage":true},{"functionName":"clampToArray","ranges":[{"startOffset":7834,"endOffset":7937,"count":2166}],"isBlockCoverage":true},{"functionName":"betAmount","ranges":[{"startOffset":7937,"endOffset":8086,"count":1083},{"startOffset":8020,"endOffset":8022,"count":0}],"isBlockCoverage":true},{"functionName":"spotCount","ranges":[{"startOffset":8086,"endOffset":8231,"count":1083},{"startOffset":8169,"endOffset":8171,"count":0}],"isBlockCoverage":true},{"functionName":"run","ranges":[{"startOffset":8231,"endOffset":9666,"count":2},{"startOffset":8497,"endOffset":9278,"count":1083},{"startOffset":9056,"endOffset":9277,"count":1100},{"startOffset":9112,"endOffset":9166,"count":448},{"startOffset":9166,"endOffset":9221,"count":555},{"startOffset":9221,"endOffset":9275,"count":97}],"isBlockCoverage":true}]},{"scriptId":"524","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/types.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":3458,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":76,"endOffset":1143,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":183,"endOffset":1139,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":238,"endOffset":355,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":397,"endOffset":510,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":558,"endOffset":677,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":729,"endOffset":852,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":897,"endOffset":987,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1023,"endOffset":1137,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1057,"endOffset":1102,"count":1}],"isBlockCoverage":true}]},{"scriptId":"525","url":"file:///Users/mhluska/projects/blackjack-simulator/test/src/utils.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8958,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":76,"endOffset":3239,"count":1}],"isBlockCoverage":true},{"functionName":"__copyProps","ranges":[{"startOffset":351,"endOffset":628,"count":1},{"startOffset":406,"endOffset":432,"count":0},{"startOffset":473,"endOffset":617,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":539,"endOffset":552,"count":18}],"isBlockCoverage":true},{"functionName":"__toESM","ranges":[{"startOffset":641,"endOffset":829,"count":1},{"startOffset":711,"endOffset":714,"count":0},{"startOffset":760,"endOffset":816,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":945,"endOffset":3235,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1015,"endOffset":1222,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1283,"endOffset":1404,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1463,"endOffset":1670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1731,"endOffset":1939,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2001,"endOffset":2301,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2348,"endOffset":2772,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2815,"endOffset":3233,"count":1}],"isBlockCoverage":true}]}],"timestamp":1521344.989542,"source-map-cache":{"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/index.js":{"lineLengths":[25,13,0,46,13,3,40,19,23,28,3,3,46,19,23,29,3,3,48,19,23,31,3,3,48,19,23,30,3,3,55,19,23,36,3,3,55,19,23,36,3,3,47,19,23,31,3,3,55,19,23,39,3,3,46,19,23,29,3,3,45,19,23,32,3,3,43,19,23,24,3,3,44,19,23,26,3,3,45,19,23,27,3,3,49,19,23,35,3,3,52,19,23,34,3,3,45,19,23,27,3,3,54,19,23,36,3,3,47,19,23,31,3,3,41,19,23,24,3,3,46,19,23,29,3,3,48,19,23,33,3,3,51,19,23,35,3,3,23,3,25,54,23,1,3,25,40,23,1,3,25,30,23,1,3,25,30,23,1,3,25,38,23,1,3,25,28,23,1,3,25,30,23,1,3,25,32,23,1,3,25,33,23,1,3,25,33,23,1,3,25,33,23,1,3,25,37,23,1,3,25,35,23,1,3,25,31,23,1,3,25,31,23,1,123,23,3900,0],"data":{"version":3,"names":["_base","_interopRequireDefault","require","_character","_word","_line","_sentence","_css","_json","_array","_apply","_parse","_merge","_reverse","_create","_dmp","_xml","obj","__esModule"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/index.js"],"sourcesContent":["/* See LICENSE file for terms of use */\n\n/*\n * Text diff implementation.\n *\n * This library supports the following APIs:\n * Diff.diffChars: Character by character diff\n * Diff.diffWords: Word (as defined by \\b regex) diff which ignores whitespace\n * Diff.diffLines: Line based diff\n *\n * Diff.diffCss: Diff targeted at CSS content\n *\n * These methods are based on the implementation proposed in\n * \"An O(ND) Difference Algorithm and its Variations\" (Myers, 1986).\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927\n */\nimport Diff from './diff/base';\nimport {diffChars} from './diff/character';\nimport {diffWords, diffWordsWithSpace} from './diff/word';\nimport {diffLines, diffTrimmedLines} from './diff/line';\nimport {diffSentences} from './diff/sentence';\n\nimport {diffCss} from './diff/css';\nimport {diffJson, canonicalize} from './diff/json';\n\nimport {diffArrays} from './diff/array';\n\nimport {applyPatch, applyPatches} from './patch/apply';\nimport {parsePatch} from './patch/parse';\nimport {merge} from './patch/merge';\nimport {reversePatch} from './patch/reverse';\nimport {structuredPatch, createTwoFilesPatch, createPatch, formatPatch} from './patch/create';\n\nimport {convertChangesToDMP} from './convert/dmp';\nimport {convertChangesToXML} from './convert/xml';\n\nexport {\n  Diff,\n\n  diffChars,\n  diffWords,\n  diffWordsWithSpace,\n  diffLines,\n  diffTrimmedLines,\n  diffSentences,\n\n  diffCss,\n  diffJson,\n\n  diffArrays,\n\n  structuredPatch,\n  createTwoFilesPatch,\n  createPatch,\n  formatPatch,\n  applyPatch,\n  applyPatches,\n  parsePatch,\n  merge,\n  reversePatch,\n  convertChangesToDMP,\n  convertChangesToXML,\n  canonicalize\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA;AAAA;AAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAA;AAAA;AACA;AAAA;AAAAC,UAAA,GAAAD,OAAA;AAAA;AAAA;AACA;AAAA;AAAAE,KAAA,GAAAF,OAAA;AAAA;AAAA;AACA;AAAA;AAAAG,KAAA,GAAAH,OAAA;AAAA;AAAA;AACA;AAAA;AAAAI,SAAA,GAAAJ,OAAA;AAAA;AAAA;AAEA;AAAA;AAAAK,IAAA,GAAAL,OAAA;AAAA;AAAA;AACA;AAAA;AAAAM,KAAA,GAAAN,OAAA;AAAA;AAAA;AAEA;AAAA;AAAAO,MAAA,GAAAP,OAAA;AAAA;AAAA;AAEA;AAAA;AAAAQ,MAAA,GAAAR,OAAA;AAAA;AAAA;AACA;AAAA;AAAAS,MAAA,GAAAT,OAAA;AAAA;AAAA;AACA;AAAA;AAAAU,MAAA,GAAAV,OAAA;AAAA;AAAA;AACA;AAAA;AAAAW,QAAA,GAAAX,OAAA;AAAA;AAAA;AACA;AAAA;AAAAY,OAAA,GAAAZ,OAAA;AAAA;AAAA;AAEA;AAAA;AAAAa,IAAA,GAAAb,OAAA;AAAA;AAAA;AACA;AAAA;AAAAc,IAAA,GAAAd,OAAA;AAAA;AAAA;AAAkD,mCAAAD,uBAAAgB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/base.js":{"lineLengths":[25,13,0,46,13,3,26,23,18,18,27,25,45,29,25,7,27,85,36,40,25,19,5,20,26,47,21,32,26,14,20,14,21,7,5,0,61,51,51,68,68,34,32,23,40,40,69,5,26,29,23,27,91,60,21,17,30,7,0,72,83,67,48,108,5,0,78,77,79,63,77,50,63,76,22,79,78,74,79,78,71,77,59,42,39,0,89,31,157,22,33,14,31,9,52,47,25,72,49,9,27,22,58,60,75,9,69,36,50,45,19,9,0,79,80,57,73,70,16,73,9,91,68,69,109,16,44,46,86,11,37,86,11,9,7,19,5,0,87,86,86,46,19,24,32,79,30,11,34,19,11,14,11,12,80,35,18,21,9,7,5,4,27,25,75,34,97,14,40,24,32,23,27,51,9,8,12,14,40,24,19,23,27,33,9,8,5,4,27,25,96,34,32,31,37,22,126,15,15,20,38,34,19,52,23,24,10,7,5,52,32,27,50,21,22,8,5,29,18,4,27,25,49,29,45,12,96,5,4,27,25,44,17,44,21,27,7,5,15,4,27,25,40,17,4,27,25,38,29,4,27,25,30,26,4,27,25,52,25,3,2,82,74,30,22,20,25,35,52,43,34,3,23,23,37,15,15,55,45,29,48,70,47,47,67,11,43,14,87,7,32,0,20,29,34,7,12,85,32,5,3,20,1,25424,0],"data":{"version":3,"names":["Diff","prototype","diff","oldString","newString","_options$timeout","options","arguments","length","undefined","callback","self","done","value","postProcess","setTimeout","castInput","removeEmpty","tokenize","newLen","oldLen","editLength","maxEditLength","Math","min","maxExecutionTime","timeout","Infinity","abortAfterTimestamp","Date","now","bestPath","oldPos","lastComponent","newPos","extractCommon","buildValues","useLongestToken","minDiagonalToConsider","maxDiagonalToConsider","execEditLength","diagonalPath","max","basePath","removePath","addPath","canAdd","addPathNewPos","canRemove","addToPath","exec","ret","path","added","removed","oldPosInc","last","oneChangePerToken","count","previousComponent","commonCount","equals","left","right","comparator","ignoreCase","toLowerCase","array","i","push","Array","from","join","chars","changeObjects","components","nextComponent","reverse","componentPos","componentLen","component","slice","map","oldValue"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/diff/base.js"],"sourcesContent":["export default function Diff() {}\n\nDiff.prototype = {\n  diff(oldString, newString, options = {}) {\n    let callback = options.callback;\n    if (typeof options === 'function') {\n      callback = options;\n      options = {};\n    }\n\n    let self = this;\n\n    function done(value) {\n      value = self.postProcess(value, options);\n      if (callback) {\n        setTimeout(function() { callback(value); }, 0);\n        return true;\n      } else {\n        return value;\n      }\n    }\n\n    // Allow subclasses to massage the input prior to running\n    oldString = this.castInput(oldString, options);\n    newString = this.castInput(newString, options);\n\n    oldString = this.removeEmpty(this.tokenize(oldString, options));\n    newString = this.removeEmpty(this.tokenize(newString, options));\n\n    let newLen = newString.length, oldLen = oldString.length;\n    let editLength = 1;\n    let maxEditLength = newLen + oldLen;\n    if(options.maxEditLength != null) {\n      maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n    }\n    const maxExecutionTime = options.timeout ?? Infinity;\n    const abortAfterTimestamp = Date.now() + maxExecutionTime;\n\n    let bestPath = [{ oldPos: -1, lastComponent: undefined }];\n\n    // Seed editLength = 0, i.e. the content starts with the same values\n    let newPos = this.extractCommon(bestPath[0], newString, oldString, 0, options);\n    if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n      // Identity per the equality and tokenizer\n      return done(buildValues(self, bestPath[0].lastComponent, newString, oldString, self.useLongestToken));\n    }\n\n    // Once we hit the right edge of the edit graph on some diagonal k, we can\n    // definitely reach the end of the edit graph in no more than k edits, so\n    // there's no point in considering any moves to diagonal k+1 any more (from\n    // which we're guaranteed to need at least k+1 more edits).\n    // Similarly, once we've reached the bottom of the edit graph, there's no\n    // point considering moves to lower diagonals.\n    // We record this fact by setting minDiagonalToConsider and\n    // maxDiagonalToConsider to some finite value once we've hit the edge of\n    // the edit graph.\n    // This optimization is not faithful to the original algorithm presented in\n    // Myers's paper, which instead pointlessly extends D-paths off the end of\n    // the edit graph - see page 7 of Myers's paper which notes this point\n    // explicitly and illustrates it with a diagram. This has major performance\n    // implications for some common scenarios. For instance, to compute a diff\n    // where the new text simply appends d characters on the end of the\n    // original text of length n, the true Myers algorithm will take O(n+d^2)\n    // time while this optimization needs only O(n+d) time.\n    let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n\n    // Main worker method. checks all permutations of a given edit length for acceptance.\n    function execEditLength() {\n      for (\n        let diagonalPath = Math.max(minDiagonalToConsider, -editLength);\n        diagonalPath <= Math.min(maxDiagonalToConsider, editLength);\n        diagonalPath += 2\n      ) {\n        let basePath;\n        let removePath = bestPath[diagonalPath - 1],\n            addPath = bestPath[diagonalPath + 1];\n        if (removePath) {\n          // No one else is going to attempt to use this value, clear it\n          bestPath[diagonalPath - 1] = undefined;\n        }\n\n        let canAdd = false;\n        if (addPath) {\n          // what newPos will be after we do an insertion:\n          const addPathNewPos = addPath.oldPos - diagonalPath;\n          canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n        }\n\n        let canRemove = removePath && removePath.oldPos + 1 < oldLen;\n        if (!canAdd && !canRemove) {\n          // If this path is a terminal then prune\n          bestPath[diagonalPath] = undefined;\n          continue;\n        }\n\n        // Select the diagonal that we want to branch from. We select the prior\n        // path whose position in the old string is the farthest from the origin\n        // and does not pass the bounds of the diff graph\n        if (!canRemove || (canAdd && removePath.oldPos < addPath.oldPos)) {\n          basePath = self.addToPath(addPath, true, false, 0, options);\n        } else {\n          basePath = self.addToPath(removePath, false, true, 1, options);\n        }\n\n        newPos = self.extractCommon(basePath, newString, oldString, diagonalPath, options);\n\n        if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n          // If we have hit the end of both strings, then we are done\n          return done(buildValues(self, basePath.lastComponent, newString, oldString, self.useLongestToken));\n        } else {\n          bestPath[diagonalPath] = basePath;\n          if (basePath.oldPos + 1 >= oldLen) {\n            maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n          }\n          if (newPos + 1 >= newLen) {\n            minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n          }\n        }\n      }\n\n      editLength++;\n    }\n\n    // Performs the length of edit iteration. Is a bit fugly as this has to support the\n    // sync and async mode which is never fun. Loops over execEditLength until a value\n    // is produced, or until the edit length exceeds options.maxEditLength (if given),\n    // in which case it will return undefined.\n    if (callback) {\n      (function exec() {\n        setTimeout(function() {\n          if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n            return callback();\n          }\n\n          if (!execEditLength()) {\n            exec();\n          }\n        }, 0);\n      }());\n    } else {\n      while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n        let ret = execEditLength();\n        if (ret) {\n          return ret;\n        }\n      }\n    }\n  },\n\n  addToPath(path, added, removed, oldPosInc, options) {\n    let last = path.lastComponent;\n    if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {\n      return {\n        oldPos: path.oldPos + oldPosInc,\n        lastComponent: {count: last.count + 1, added: added, removed: removed, previousComponent: last.previousComponent }\n      };\n    } else {\n      return {\n        oldPos: path.oldPos + oldPosInc,\n        lastComponent: {count: 1, added: added, removed: removed, previousComponent: last }\n      };\n    }\n  },\n  extractCommon(basePath, newString, oldString, diagonalPath, options) {\n    let newLen = newString.length,\n        oldLen = oldString.length,\n        oldPos = basePath.oldPos,\n        newPos = oldPos - diagonalPath,\n\n        commonCount = 0;\n    while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldString[oldPos + 1], newString[newPos + 1], options)) {\n      newPos++;\n      oldPos++;\n      commonCount++;\n      if (options.oneChangePerToken) {\n        basePath.lastComponent = {count: 1, previousComponent: basePath.lastComponent, added: false, removed: false};\n      }\n    }\n\n    if (commonCount && !options.oneChangePerToken) {\n      basePath.lastComponent = {count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false};\n    }\n\n    basePath.oldPos = oldPos;\n    return newPos;\n  },\n\n  equals(left, right, options) {\n    if (options.comparator) {\n      return options.comparator(left, right);\n    } else {\n      return left === right\n        || (options.ignoreCase && left.toLowerCase() === right.toLowerCase());\n    }\n  },\n  removeEmpty(array) {\n    let ret = [];\n    for (let i = 0; i < array.length; i++) {\n      if (array[i]) {\n        ret.push(array[i]);\n      }\n    }\n    return ret;\n  },\n  castInput(value) {\n    return value;\n  },\n  tokenize(value) {\n    return Array.from(value);\n  },\n  join(chars) {\n    return chars.join('');\n  },\n  postProcess(changeObjects) {\n    return changeObjects;\n  }\n};\n\nfunction buildValues(diff, lastComponent, newString, oldString, useLongestToken) {\n  // First we convert our linked list of components in reverse order to an\n  // array in the right order:\n  const components = [];\n  let nextComponent;\n  while (lastComponent) {\n    components.push(lastComponent);\n    nextComponent = lastComponent.previousComponent;\n    delete lastComponent.previousComponent;\n    lastComponent = nextComponent;\n  }\n  components.reverse();\n\n  let componentPos = 0,\n      componentLen = components.length,\n      newPos = 0,\n      oldPos = 0;\n\n  for (; componentPos < componentLen; componentPos++) {\n    let component = components[componentPos];\n    if (!component.removed) {\n      if (!component.added && useLongestToken) {\n        let value = newString.slice(newPos, newPos + component.count);\n        value = value.map(function(value, i) {\n          let oldValue = oldString[oldPos + i];\n          return oldValue.length > value.length ? oldValue : value;\n        });\n\n        component.value = diff.join(value);\n      } else {\n        component.value = diff.join(newString.slice(newPos, newPos + component.count));\n      }\n      newPos += component.count;\n\n      // Common case\n      if (!component.added) {\n        oldPos += component.count;\n      }\n    } else {\n      component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n      oldPos += component.count;\n    }\n  }\n\n  return components;\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/character.js":{"lineLengths":[25,13,0,46,13,3,31,30,23,3,25,49,23,1,123,23,19,25,23,23,3,25,5,23,1,25,9,23,4,45,53,1,1172,0],"data":{"version":3,"names":["_base","_interopRequireDefault","require","obj","__esModule","characterDiff","exports","Diff","diffChars","oldStr","newStr","options","diff"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/diff/character.js"],"sourcesContent":["import Diff from './base';\n\nexport const characterDiff = new Diff();\nexport function diffChars(oldStr, newStr, options) { return characterDiff.diff(oldStr, newStr, options); }\n"],"mappings":";;;;;;;;;AAAA;AAAA;AAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAA;AAAA;AAA0B,mCAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA;AAEnB,IAAME,aAAa;AAAA;AAAAC,OAAA,CAAAD,aAAA;AAAA;AAAG;AAAIE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAI,CAAC,CAAC;AAChC,SAASC,SAASA,CAACC,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAE;EAAE,OAAON,aAAa,CAACO,IAAI,CAACH,MAAM,EAAEC,MAAM,EAAEC,OAAO,CAAC;AAAE","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/word.js":{"lineLengths":[25,13,0,46,13,3,30,48,54,23,3,25,49,23,1,3,25,35,23,1,123,23,65,2,25,32,35,29,30,30,28,38,29,29,33,34,30,35,43,39,136,0,38,55,43,77,24,2,74,58,77,77,30,76,77,75,76,78,20,2,76,33,0,78,78,77,10,45,25,11,23,71,14,25,18,23,3,25,5,23,1,25,9,23,4,51,27,30,32,3,38,2,38,27,5,25,83,12,30,72,80,5,79,29,5,14,31,23,8,7,10,59,3,18,22,33,26,29,26,14,41,7,37,50,41,14,37,7,12,24,5,20,5,16,2,35,76,78,78,79,73,41,17,19,12,39,5,14,2,52,46,19,3,22,73,60,23,22,37,23,25,32,24,12,34,40,79,7,24,23,22,5,5,30,73,3,17,2,45,77,76,76,45,6,27,3,25,117,55,3,48,1,83,76,78,51,73,31,42,61,59,4,46,71,64,4,43,62,56,4,43,63,64,72,70,4,45,65,58,4,77,79,75,79,74,74,70,46,0,77,40,41,23,22,42,30,54,54,55,55,20,26,31,9,29,31,13,29,7,31,26,29,33,23,31,9,29,31,13,29,7,31,20,29,53,22,31,9,29,31,13,29,7,31,19,29,39,23,31,9,29,31,13,29,7,31,19,29,40,5,18,26,31,9,29,31,13,29,7,31,26,29,33,21,31,9,29,31,13,29,7,31,20,29,51,22,31,9,29,31,13,29,7,31,19,29,39,23,31,9,29,31,13,29,7,31,19,29,40,5,25,71,70,68,64,65,15,20,60,5,18,56,5,54,36,51,51,49,0,77,67,20,29,7,27,29,11,27,5,29,24,27,28,20,29,7,27,29,11,27,5,29,17,27,33,0,76,74,44,18,29,7,27,29,11,27,5,29,24,27,5,29,7,27,29,11,27,5,29,17,27,39,20,29,7,27,29,11,27,5,29,17,27,31,19,29,7,27,29,11,27,5,29,18,27,41,0,75,40,21,29,7,27,29,11,27,5,29,18,27,89,23,70,74,57,57,59,17,29,7,27,29,11,27,5,29,19,27,40,20,29,7,27,29,11,27,5,29,17,27,30,25,68,74,61,61,59,18,29,7,27,29,11,27,5,29,19,27,42,20,29,7,27,29,11,27,5,29,17,27,31,3,1,23,25,27,23,3,25,5,23,1,25,9,23,4,47,78,78,76,55,53,25,27,23,25,82,34,2,54,57,1,29368,0],"data":{"version":3,"names":["_base","_interopRequireDefault","require","_string","obj","__esModule","extendedWordChars","tokenizeIncludingWhitespace","RegExp","concat","wordDiff","exports","Diff","equals","left","right","options","ignoreCase","toLowerCase","trim","tokenize","value","arguments","length","undefined","parts","intlSegmenter","resolvedOptions","granularity","Error","Array","from","segment","match","tokens","prevPart","forEach","part","test","push","pop","join","map","token","i","replace","postProcess","changes","oneChangePerToken","lastKeep","insertion","deletion","change","added","removed","dedupeWhitespaceInChangeObjects","diffWords","oldStr","newStr","ignoreWhitespace","diffWordsWithSpace","diff","startKeep","endKeep","oldWsPrefix","oldWsSuffix","newWsPrefix","newWsSuffix","commonWsPrefix","longestCommonPrefix","replaceSuffix","removePrefix","commonWsSuffix","longestCommonSuffix","replacePrefix","removeSuffix","newWsFull","delWsStart","delWsEnd","newWsStart","newWsEnd","slice","endKeepWsPrefix","deletionWsSuffix","overlap","maximumOverlap","startKeepWsSuffix","deletionWsPrefix","wordWithSpaceDiff","regex"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/diff/word.js"],"sourcesContent":["import Diff from './base';\nimport { longestCommonPrefix, longestCommonSuffix, replacePrefix, replaceSuffix, removePrefix, removeSuffix, maximumOverlap } from '../util/string';\n\n// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode\n//\n// Ranges and exceptions:\n// Latin-1 Supplement, 0080–00FF\n//  - U+00D7  × Multiplication sign\n//  - U+00F7  ÷ Division sign\n// Latin Extended-A, 0100–017F\n// Latin Extended-B, 0180–024F\n// IPA Extensions, 0250–02AF\n// Spacing Modifier Letters, 02B0–02FF\n//  - U+02C7  ˇ &#711;  Caron\n//  - U+02D8  ˘ &#728;  Breve\n//  - U+02D9  ˙ &#729;  Dot Above\n//  - U+02DA  ˚ &#730;  Ring Above\n//  - U+02DB  ˛ &#731;  Ogonek\n//  - U+02DC  ˜ &#732;  Small Tilde\n//  - U+02DD  ˝ &#733;  Double Acute Accent\n// Latin Extended Additional, 1E00–1EFF\nconst extendedWordChars = 'a-zA-Z0-9_\\\\u{C0}-\\\\u{FF}\\\\u{D8}-\\\\u{F6}\\\\u{F8}-\\\\u{2C6}\\\\u{2C8}-\\\\u{2D7}\\\\u{2DE}-\\\\u{2FF}\\\\u{1E00}-\\\\u{1EFF}';\n\n// Each token is one of the following:\n// - A punctuation mark plus the surrounding whitespace\n// - A word plus the surrounding whitespace\n// - Pure whitespace (but only in the special case where this the entire text\n//   is just whitespace)\n//\n// We have to include surrounding whitespace in the tokens because the two\n// alternative approaches produce horribly broken results:\n// * If we just discard the whitespace, we can't fully reproduce the original\n//   text from the sequence of tokens and any attempt to render the diff will\n//   get the whitespace wrong.\n// * If we have separate tokens for whitespace, then in a typical text every\n//   second token will be a single space character. But this often results in\n//   the optimal diff between two texts being a perverse one that preserves\n//   the spaces between words but deletes and reinserts actual common words.\n//   See https://github.com/kpdecker/jsdiff/issues/160#issuecomment-1866099640\n//   for an example.\n//\n// Keeping the surrounding whitespace of course has implications for .equals\n// and .join, not just .tokenize.\n\n// This regex does NOT fully implement the tokenization rules described above.\n// Instead, it gives runs of whitespace their own \"token\". The tokenize method\n// then handles stitching whitespace tokens onto adjacent word or punctuation\n// tokens.\nconst tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\\\s+|[^${extendedWordChars}]`, 'ug');\n\nexport const wordDiff = new Diff();\nwordDiff.equals = function(left, right, options) {\n  if (options.ignoreCase) {\n    left = left.toLowerCase();\n    right = right.toLowerCase();\n  }\n\n  return left.trim() === right.trim();\n};\n\nwordDiff.tokenize = function(value, options = {}) {\n  let parts;\n  if (options.intlSegmenter) {\n    if (options.intlSegmenter.resolvedOptions().granularity != 'word') {\n      throw new Error('The segmenter passed must have a granularity of \"word\"');\n    }\n    parts = Array.from(options.intlSegmenter.segment(value), segment => segment.segment);\n  } else {\n    parts = value.match(tokenizeIncludingWhitespace) || [];\n  }\n  const tokens = [];\n  let prevPart = null;\n  parts.forEach(part => {\n    if ((/\\s/).test(part)) {\n      if (prevPart == null) {\n        tokens.push(part);\n      } else {\n        tokens.push(tokens.pop() + part);\n      }\n    } else if ((/\\s/).test(prevPart)) {\n      if (tokens[tokens.length - 1] == prevPart) {\n        tokens.push(tokens.pop() + part);\n      } else {\n        tokens.push(prevPart + part);\n      }\n    } else {\n      tokens.push(part);\n    }\n\n    prevPart = part;\n  });\n  return tokens;\n};\n\nwordDiff.join = function(tokens) {\n  // Tokens being joined here will always have appeared consecutively in the\n  // same text, so we can simply strip off the leading whitespace from all the\n  // tokens except the first (and except any whitespace-only tokens - but such\n  // a token will always be the first and only token anyway) and then join them\n  // and the whitespace around words and punctuation will end up correct.\n  return tokens.map((token, i) => {\n    if (i == 0) {\n      return token;\n    } else {\n      return token.replace((/^\\s+/), '');\n    }\n  }).join('');\n};\n\nwordDiff.postProcess = function(changes, options) {\n  if (!changes || options.oneChangePerToken) {\n    return changes;\n  }\n\n  let lastKeep = null;\n  // Change objects representing any insertion or deletion since the last\n  // \"keep\" change object. There can be at most one of each.\n  let insertion = null;\n  let deletion = null;\n  changes.forEach(change => {\n    if (change.added) {\n      insertion = change;\n    } else if (change.removed) {\n      deletion = change;\n    } else {\n      if (insertion || deletion) { // May be false at start of text\n        dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change);\n      }\n      lastKeep = change;\n      insertion = null;\n      deletion = null;\n    }\n  });\n  if (insertion || deletion) {\n    dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null);\n  }\n  return changes;\n};\n\nexport function diffWords(oldStr, newStr, options) {\n  // This option has never been documented and never will be (it's clearer to\n  // just call `diffWordsWithSpace` directly if you need that behavior), but\n  // has existed in jsdiff for a long time, so we retain support for it here\n  // for the sake of backwards compatibility.\n  if (options?.ignoreWhitespace != null && !options.ignoreWhitespace) {\n    return diffWordsWithSpace(oldStr, newStr, options);\n  }\n\n  return wordDiff.diff(oldStr, newStr, options);\n}\n\nfunction dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep) {\n  // Before returning, we tidy up the leading and trailing whitespace of the\n  // change objects to eliminate cases where trailing whitespace in one object\n  // is repeated as leading whitespace in the next.\n  // Below are examples of the outcomes we want here to explain the code.\n  // I=insert, K=keep, D=delete\n  // 1. diffing 'foo bar baz' vs 'foo baz'\n  //    Prior to cleanup, we have K:'foo ' D:' bar ' K:' baz'\n  //    After cleanup, we want:   K:'foo ' D:'bar ' K:'baz'\n  //\n  // 2. Diffing 'foo bar baz' vs 'foo qux baz'\n  //    Prior to cleanup, we have K:'foo ' D:' bar ' I:' qux ' K:' baz'\n  //    After cleanup, we want K:'foo ' D:'bar' I:'qux' K:' baz'\n  //\n  // 3. Diffing 'foo\\nbar baz' vs 'foo baz'\n  //    Prior to cleanup, we have K:'foo ' D:'\\nbar ' K:' baz'\n  //    After cleanup, we want K'foo' D:'\\nbar' K:' baz'\n  //\n  // 4. Diffing 'foo baz' vs 'foo\\nbar baz'\n  //    Prior to cleanup, we have K:'foo\\n' I:'\\nbar ' K:' baz'\n  //    After cleanup, we ideally want K'foo' I:'\\nbar' K:' baz'\n  //    but don't actually manage this currently (the pre-cleanup change\n  //    objects don't contain enough information to make it possible).\n  //\n  // 5. Diffing 'foo   bar baz' vs 'foo  baz'\n  //    Prior to cleanup, we have K:'foo  ' D:'   bar ' K:'  baz'\n  //    After cleanup, we want K:'foo  ' D:' bar ' K:'baz'\n  //\n  // Our handling is unavoidably imperfect in the case where there's a single\n  // indel between keeps and the whitespace has changed. For instance, consider\n  // diffing 'foo\\tbar\\nbaz' vs 'foo baz'. Unless we create an extra change\n  // object to represent the insertion of the space character (which isn't even\n  // a token), we have no way to avoid losing information about the texts'\n  // original whitespace in the result we return. Still, we do our best to\n  // output something that will look sensible if we e.g. print it with\n  // insertions in green and deletions in red.\n\n  // Between two \"keep\" change objects (or before the first or after the last\n  // change object), we can have either:\n  // * A \"delete\" followed by an \"insert\"\n  // * Just an \"insert\"\n  // * Just a \"delete\"\n  // We handle the three cases separately.\n  if (deletion && insertion) {\n    const oldWsPrefix = deletion.value.match(/^\\s*/)[0];\n    const oldWsSuffix = deletion.value.match(/\\s*$/)[0];\n    const newWsPrefix = insertion.value.match(/^\\s*/)[0];\n    const newWsSuffix = insertion.value.match(/\\s*$/)[0];\n\n    if (startKeep) {\n      const commonWsPrefix = longestCommonPrefix(oldWsPrefix, newWsPrefix);\n      startKeep.value = replaceSuffix(startKeep.value, newWsPrefix, commonWsPrefix);\n      deletion.value = removePrefix(deletion.value, commonWsPrefix);\n      insertion.value = removePrefix(insertion.value, commonWsPrefix);\n    }\n    if (endKeep) {\n      const commonWsSuffix = longestCommonSuffix(oldWsSuffix, newWsSuffix);\n      endKeep.value = replacePrefix(endKeep.value, newWsSuffix, commonWsSuffix);\n      deletion.value = removeSuffix(deletion.value, commonWsSuffix);\n      insertion.value = removeSuffix(insertion.value, commonWsSuffix);\n    }\n  } else if (insertion) {\n    // The whitespaces all reflect what was in the new text rather than\n    // the old, so we essentially have no information about whitespace\n    // insertion or deletion. We just want to dedupe the whitespace.\n    // We do that by having each change object keep its trailing\n    // whitespace and deleting duplicate leading whitespace where\n    // present.\n    if (startKeep) {\n      insertion.value = insertion.value.replace(/^\\s*/, '');\n    }\n    if (endKeep) {\n      endKeep.value = endKeep.value.replace(/^\\s*/, '');\n    }\n  // otherwise we've got a deletion and no insertion\n  } else if (startKeep && endKeep) {\n    const newWsFull = endKeep.value.match(/^\\s*/)[0],\n        delWsStart = deletion.value.match(/^\\s*/)[0],\n        delWsEnd = deletion.value.match(/\\s*$/)[0];\n\n    // Any whitespace that comes straight after startKeep in both the old and\n    // new texts, assign to startKeep and remove from the deletion.\n    const newWsStart = longestCommonPrefix(newWsFull, delWsStart);\n    deletion.value = removePrefix(deletion.value, newWsStart);\n\n    // Any whitespace that comes straight before endKeep in both the old and\n    // new texts, and hasn't already been assigned to startKeep, assign to\n    // endKeep and remove from the deletion.\n    const newWsEnd = longestCommonSuffix(\n      removePrefix(newWsFull, newWsStart),\n      delWsEnd\n    );\n    deletion.value = removeSuffix(deletion.value, newWsEnd);\n    endKeep.value = replacePrefix(endKeep.value, newWsFull, newWsEnd);\n\n    // If there's any whitespace from the new text that HASN'T already been\n    // assigned, assign it to the start:\n    startKeep.value = replaceSuffix(\n      startKeep.value,\n      newWsFull,\n      newWsFull.slice(0, newWsFull.length - newWsEnd.length)\n    );\n  } else if (endKeep) {\n    // We are at the start of the text. Preserve all the whitespace on\n    // endKeep, and just remove whitespace from the end of deletion to the\n    // extent that it overlaps with the start of endKeep.\n    const endKeepWsPrefix = endKeep.value.match(/^\\s*/)[0];\n    const deletionWsSuffix = deletion.value.match(/\\s*$/)[0];\n    const overlap = maximumOverlap(deletionWsSuffix, endKeepWsPrefix);\n    deletion.value = removeSuffix(deletion.value, overlap);\n  } else if (startKeep) {\n    // We are at the END of the text. Preserve all the whitespace on\n    // startKeep, and just remove whitespace from the start of deletion to\n    // the extent that it overlaps with the end of startKeep.\n    const startKeepWsSuffix = startKeep.value.match(/\\s*$/)[0];\n    const deletionWsPrefix = deletion.value.match(/^\\s*/)[0];\n    const overlap = maximumOverlap(startKeepWsSuffix, deletionWsPrefix);\n    deletion.value = removePrefix(deletion.value, overlap);\n  }\n}\n\n\nexport const wordWithSpaceDiff = new Diff();\nwordWithSpaceDiff.tokenize = function(value) {\n  // Slightly different to the tokenizeIncludingWhitespace regex used above in\n  // that this one treats each individual newline as a distinct tokens, rather\n  // than merging them into other surrounding whitespace. This was requested\n  // in https://github.com/kpdecker/jsdiff/issues/180 &\n  //    https://github.com/kpdecker/jsdiff/issues/211\n  const regex = new RegExp(`(\\\\r?\\\\n)|[${extendedWordChars}]+|[^\\\\S\\\\n\\\\r]+|[^${extendedWordChars}]`, 'ug');\n  return value.match(regex) || [];\n};\nexport function diffWordsWithSpace(oldStr, newStr, options) {\n  return wordWithSpaceDiff.diff(oldStr, newStr, options);\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/util/string.js":{"lineLengths":[25,13,0,46,13,3,56,54,50,50,40,36,36,38,38,23,42,8,56,29,30,5,3,26,1,42,8,0,79,74,19,73,14,3,56,69,28,5,3,24,1,54,55,16,29,21,27,113,3,52,1,54,19,30,3,53,16,29,21,27,111,3,56,1,42,46,1,42,46,1,43,58,1,0,59,29,55,17,28,33,3,22,28,20,3,43,53,47,24,40,13,34,23,78,12,17,5,35,17,5,23,10,5,3,57,8,43,35,17,5,23,10,5,3,11,1,0,3,69,3,40,89,1,0,3,66,3,41,59,1,10112,0],"data":{"version":3,"names":["longestCommonPrefix","str1","str2","i","length","slice","longestCommonSuffix","replacePrefix","string","oldPrefix","newPrefix","Error","concat","JSON","stringify","replaceSuffix","oldSuffix","newSuffix","removePrefix","removeSuffix","maximumOverlap","string1","string2","overlapCount","a","b","startA","endB","map","Array","k","j","hasOnlyWinLineEndings","includes","startsWith","match","hasOnlyUnixLineEndings"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/util/string.js"],"sourcesContent":["export function longestCommonPrefix(str1, str2) {\n  let i;\n  for (i = 0; i < str1.length && i < str2.length; i++) {\n    if (str1[i] != str2[i]) {\n      return str1.slice(0, i);\n    }\n  }\n  return str1.slice(0, i);\n}\n\nexport function longestCommonSuffix(str1, str2) {\n  let i;\n\n  // Unlike longestCommonPrefix, we need a special case to handle all scenarios\n  // where we return the empty string since str1.slice(-0) will return the\n  // entire string.\n  if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) {\n    return '';\n  }\n\n  for (i = 0; i < str1.length && i < str2.length; i++) {\n    if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) {\n      return str1.slice(-i);\n    }\n  }\n  return str1.slice(-i);\n}\n\nexport function replacePrefix(string, oldPrefix, newPrefix) {\n  if (string.slice(0, oldPrefix.length) != oldPrefix) {\n    throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);\n  }\n  return newPrefix + string.slice(oldPrefix.length);\n}\n\nexport function replaceSuffix(string, oldSuffix, newSuffix) {\n  if (!oldSuffix) {\n    return string + newSuffix;\n  }\n\n  if (string.slice(-oldSuffix.length) != oldSuffix) {\n    throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);\n  }\n  return string.slice(0, -oldSuffix.length) + newSuffix;\n}\n\nexport function removePrefix(string, oldPrefix) {\n  return replacePrefix(string, oldPrefix, '');\n}\n\nexport function removeSuffix(string, oldSuffix) {\n  return replaceSuffix(string, oldSuffix, '');\n}\n\nexport function maximumOverlap(string1, string2) {\n  return string2.slice(0, overlapCount(string1, string2));\n}\n\n// Nicked from https://stackoverflow.com/a/60422853/1709587\nfunction overlapCount(a, b) {\n  // Deal with cases where the strings differ in length\n  let startA = 0;\n  if (a.length > b.length) { startA = a.length - b.length; }\n  let endB = b.length;\n  if (a.length < b.length) { endB = a.length; }\n  // Create a back-reference for each index\n  //   that should be followed in case of a mismatch.\n  //   We only need B to make these references:\n  let map = Array(endB);\n  let k = 0; // Index that lags behind j\n  map[0] = 0;\n  for (let j = 1; j < endB; j++) {\n      if (b[j] == b[k]) {\n          map[j] = map[k]; // skip over the same character (optional optimisation)\n      } else {\n          map[j] = k;\n      }\n      while (k > 0 && b[j] != b[k]) { k = map[k]; }\n      if (b[j] == b[k]) { k++; }\n  }\n  // Phase 2: use these references while iterating over A\n  k = 0;\n  for (let i = startA; i < a.length; i++) {\n      while (k > 0 && a[i] != b[k]) { k = map[k]; }\n      if (a[i] == b[k]) { k++; }\n  }\n  return k;\n}\n\n\n/**\n * Returns true if the string consistently uses Windows line endings.\n */\nexport function hasOnlyWinLineEndings(string) {\n  return string.includes('\\r\\n') && !string.startsWith('\\n') && !string.match(/[^\\r]\\n/);\n}\n\n/**\n * Returns true if the string consistently uses Unix line endings.\n */\nexport function hasOnlyUnixLineEndings(string) {\n  return !string.includes('\\r\\n') && string.includes('\\n');\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/line.js":{"lineLengths":[25,13,0,46,13,3,30,44,26,23,3,25,49,23,1,3,25,35,23,1,123,23,14,25,18,23,3,25,5,23,1,25,9,23,4,47,32,79,41,3,20,48,0,80,55,27,3,0,61,53,35,43,44,12,26,5,3,18,2,51,74,75,78,77,77,68,63,33,58,25,5,59,27,5,69,30,31,5,31,33,5,3,10,29,9,27,5,29,13,27,55,4,2,46,49,1,0,78,79,73,74,70,50,53,15,27,5,25,27,9,25,3,27,18,25,14,26,5,48,1,7548,0],"data":{"version":3,"names":["_base","_interopRequireDefault","require","_params","obj","__esModule","lineDiff","exports","Diff","tokenize","value","options","stripTrailingCr","replace","retLines","linesAndNewlines","split","length","pop","i","line","newlineIsToken","push","equals","left","right","ignoreWhitespace","includes","trim","ignoreNewlineAtEof","endsWith","slice","prototype","call","diffLines","oldStr","newStr","callback","diff","diffTrimmedLines","generateOptions"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/diff/line.js"],"sourcesContent":["import Diff from './base';\nimport {generateOptions} from '../util/params';\n\nexport const lineDiff = new Diff();\nlineDiff.tokenize = function(value, options) {\n  if(options.stripTrailingCr) {\n    // remove one \\r before \\n to match GNU diff's --strip-trailing-cr behavior\n    value = value.replace(/\\r\\n/g, '\\n');\n  }\n\n  let retLines = [],\n      linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n\n  // Ignore the final empty token that occurs if the string ends with a new line\n  if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n    linesAndNewlines.pop();\n  }\n\n  // Merge the content and line separators into single tokens\n  for (let i = 0; i < linesAndNewlines.length; i++) {\n    let line = linesAndNewlines[i];\n\n    if (i % 2 && !options.newlineIsToken) {\n      retLines[retLines.length - 1] += line;\n    } else {\n      retLines.push(line);\n    }\n  }\n\n  return retLines;\n};\n\nlineDiff.equals = function(left, right, options) {\n  // If we're ignoring whitespace, we need to normalise lines by stripping\n  // whitespace before checking equality. (This has an annoying interaction\n  // with newlineIsToken that requires special handling: if newlines get their\n  // own token, then we DON'T want to trim the *newline* tokens down to empty\n  // strings, since this would cause us to treat whitespace-only line content\n  // as equal to a separator between lines, which would be weird and\n  // inconsistent with the documented behavior of the options.)\n  if (options.ignoreWhitespace) {\n    if (!options.newlineIsToken || !left.includes('\\n')) {\n      left = left.trim();\n    }\n    if (!options.newlineIsToken || !right.includes('\\n')) {\n      right = right.trim();\n    }\n  } else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {\n    if (left.endsWith('\\n')) {\n      left = left.slice(0, -1);\n    }\n    if (right.endsWith('\\n')) {\n      right = right.slice(0, -1);\n    }\n  }\n  return Diff.prototype.equals.call(this, left, right, options);\n};\n\nexport function diffLines(oldStr, newStr, callback) { return lineDiff.diff(oldStr, newStr, callback); }\n\n// Kept for backwards compatibility. This is a rather arbitrary wrapper method\n// that just calls `diffLines` with `ignoreWhitespace: true`. It's confusing to\n// have two ways to do exactly the same thing in the API, so we no longer\n// document this one (library users should explicitly use `diffLines` with\n// `ignoreWhitespace: true` instead) but we keep it around to maintain\n// compatibility with code that used old versions.\nexport function diffTrimmedLines(oldStr, newStr, callback) {\n  let options = generateOptions(callback, {ignoreWhitespace: true});\n  return lineDiff.diff(oldStr, newStr, options);\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/util/params.js":{"lineLengths":[25,13,0,46,13,3,42,23,45,38,32,23,31,32,41,39,7,5,3,18,1,1232,0],"data":{"version":3,"names":["generateOptions","options","defaults","callback","name","hasOwnProperty"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/util/params.js"],"sourcesContent":["export function generateOptions(options, defaults) {\n  if (typeof options === 'function') {\n    defaults.callback = options;\n  } else if (options) {\n    for (let name in options) {\n      /* istanbul ignore else */\n      if (options.hasOwnProperty(name)) {\n        defaults[name] = options[name];\n      }\n    }\n  }\n  return defaults;\n}\n"],"mappings":";;;;;;;;AAAO,SAASA,eAAeA,CAACC,OAAO,EAAEC,QAAQ,EAAE;EACjD,IAAI,OAAOD,OAAO,KAAK,UAAU,EAAE;IACjCC,QAAQ,CAACC,QAAQ,GAAGF,OAAO;EAC7B,CAAC,MAAM,IAAIA,OAAO,EAAE;IAClB,KAAK,IAAIG,IAAI,IAAIH,OAAO,EAAE;MACxB;MACA,IAAIA,OAAO,CAACI,cAAc,CAACD,IAAI,CAAC,EAAE;QAChCF,QAAQ,CAACE,IAAI,CAAC,GAAGH,OAAO,CAACG,IAAI,CAAC;MAChC;IACF;EACF;EACA,OAAOF,QAAQ;AACjB","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/sentence.js":{"lineLengths":[25,13,0,46,13,3,38,30,23,3,25,49,23,1,123,23,18,25,22,23,3,25,5,23,1,25,9,23,4,42,46,2,50,53,1,1484,0],"data":{"version":3,"names":["_base","_interopRequireDefault","require","obj","__esModule","sentenceDiff","exports","Diff","tokenize","value","split","diffSentences","oldStr","newStr","callback","diff"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/diff/sentence.js"],"sourcesContent":["import Diff from './base';\n\n\nexport const sentenceDiff = new Diff();\nsentenceDiff.tokenize = function(value) {\n  return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n};\n\nexport function diffSentences(oldStr, newStr, callback) { return sentenceDiff.diff(oldStr, newStr, callback); }\n"],"mappings":";;;;;;;;;AAAA;AAAA;AAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAA;AAAA;AAA0B,mCAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA;AAGnB,IAAME,YAAY;AAAA;AAAAC,OAAA,CAAAD,YAAA;AAAA;AAAG;AAAIE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAI,CAAC,CAAC;AACtCF,YAAY,CAACG,QAAQ,GAAG,UAASC,KAAK,EAAE;EACtC,OAAOA,KAAK,CAACC,KAAK,CAAC,uBAAuB,CAAC;AAC7C,CAAC;AAEM,SAASC,aAAaA,CAACC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE;EAAE,OAAOT,YAAY,CAACU,IAAI,CAACH,MAAM,EAAEC,MAAM,EAAEC,QAAQ,CAAC;AAAE","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/css.js":{"lineLengths":[25,13,0,46,13,3,25,26,23,3,25,49,23,1,123,23,13,25,17,23,3,25,5,23,1,25,9,23,4,37,38,2,44,48,1,1416,0],"data":{"version":3,"names":["_base","_interopRequireDefault","require","obj","__esModule","cssDiff","exports","Diff","tokenize","value","split","diffCss","oldStr","newStr","callback","diff"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/diff/css.js"],"sourcesContent":["import Diff from './base';\n\nexport const cssDiff = new Diff();\ncssDiff.tokenize = function(value) {\n  return value.split(/([{}:;,]|\\s+)/);\n};\n\nexport function diffCss(oldStr, newStr, callback) { return cssDiff.diff(oldStr, newStr, callback); }\n"],"mappings":";;;;;;;;;AAAA;AAAA;AAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAA;AAAA;AAA0B,mCAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA;AAEnB,IAAME,OAAO;AAAA;AAAAC,OAAA,CAAAD,OAAA;AAAA;AAAG;AAAIE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAI,CAAC,CAAC;AACjCF,OAAO,CAACG,QAAQ,GAAG,UAASC,KAAK,EAAE;EACjC,OAAOA,KAAK,CAACC,KAAK,CAAC,eAAe,CAAC;AACrC,CAAC;AAEM,SAASC,OAAOA,CAACC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE;EAAE,OAAOT,OAAO,CAACU,IAAI,CAACH,MAAM,EAAEC,MAAM,EAAEC,QAAQ,CAAC;AAAE","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/json.js":{"lineLengths":[25,13,0,46,13,3,36,28,26,23,3,25,49,23,1,3,25,25,23,1,123,318,23,14,25,18,23,3,25,5,23,1,25,9,23,4,92,105,32,19,25,5,23,1,25,8,23,10,48,5,29,27,56,29,27,27,30,29,27,74,29,5,14,31,59,8,30,137,2,51,10,29,9,27,5,29,13,27,115,4,2,44,48,1,0,96,95,68,22,44,17,29,3,8,41,27,33,5,3,23,65,20,45,44,41,89,5,16,27,28,3,26,23,3,6,27,10,25,38,20,26,44,24,11,23,32,60,30,7,5,22,48,27,96,5,16,27,10,27,3,26,1,9212,0],"data":{"version":3,"names":["_base","_interopRequireDefault","require","_line","obj","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","jsonDiff","exports","Diff","useLongestToken","tokenize","lineDiff","castInput","value","options","undefinedReplacement","_options$stringifyRep","stringifyReplacer","k","v","JSON","stringify","canonicalize","equals","left","right","call","replace","diffJson","oldObj","newObj","diff","stack","replacementStack","replacer","key","i","length","canonicalizedObj","Object","toString","push","Array","pop","toJSON","sortedKeys","hasOwnProperty","sort"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/diff/json.js"],"sourcesContent":["import Diff from './base';\nimport {lineDiff} from './line';\n\nexport const jsonDiff = new Diff();\n// Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\njsonDiff.useLongestToken = true;\n\njsonDiff.tokenize = lineDiff.tokenize;\njsonDiff.castInput = function(value, options) {\n  const {undefinedReplacement, stringifyReplacer = (k, v) => typeof v === 'undefined' ? undefinedReplacement : v} = options;\n\n  return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, '  ');\n};\njsonDiff.equals = function(left, right, options) {\n  return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'), options);\n};\n\nexport function diffJson(oldObj, newObj, options) { return jsonDiff.diff(oldObj, newObj, options); }\n\n// This function handles the presence of circular references by bailing out when encountering an\n// object that is already on the \"stack\" of items being processed. Accepts an optional replacer\nexport function canonicalize(obj, stack, replacementStack, replacer, key) {\n  stack = stack || [];\n  replacementStack = replacementStack || [];\n\n  if (replacer) {\n    obj = replacer(key, obj);\n  }\n\n  let i;\n\n  for (i = 0; i < stack.length; i += 1) {\n    if (stack[i] === obj) {\n      return replacementStack[i];\n    }\n  }\n\n  let canonicalizedObj;\n\n  if ('[object Array]' === Object.prototype.toString.call(obj)) {\n    stack.push(obj);\n    canonicalizedObj = new Array(obj.length);\n    replacementStack.push(canonicalizedObj);\n    for (i = 0; i < obj.length; i += 1) {\n      canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);\n    }\n    stack.pop();\n    replacementStack.pop();\n    return canonicalizedObj;\n  }\n\n  if (obj && obj.toJSON) {\n    obj = obj.toJSON();\n  }\n\n  if (typeof obj === 'object' && obj !== null) {\n    stack.push(obj);\n    canonicalizedObj = {};\n    replacementStack.push(canonicalizedObj);\n    let sortedKeys = [],\n        key;\n    for (key in obj) {\n      /* istanbul ignore else */\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        sortedKeys.push(key);\n      }\n    }\n    sortedKeys.sort();\n    for (i = 0; i < sortedKeys.length; i += 1) {\n      key = sortedKeys[i];\n      canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack, replacer, key);\n    }\n    stack.pop();\n    replacementStack.pop();\n  } else {\n    canonicalizedObj = obj;\n  }\n  return canonicalizedObj;\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/diff/array.js":{"lineLengths":[25,13,0,46,13,3,27,32,23,3,25,49,23,1,123,23,15,25,19,23,3,25,5,23,1,25,9,23,4,39,23,2,59,15,2,47,50,1,1668,0],"data":{"version":3,"names":["_base","_interopRequireDefault","require","obj","__esModule","arrayDiff","exports","Diff","tokenize","value","slice","join","removeEmpty","diffArrays","oldArr","newArr","callback","diff"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/diff/array.js"],"sourcesContent":["import Diff from './base';\n\nexport const arrayDiff = new Diff();\narrayDiff.tokenize = function(value) {\n  return value.slice();\n};\narrayDiff.join = arrayDiff.removeEmpty = function(value) {\n  return value;\n};\n\nexport function diffArrays(oldArr, newArr, callback) { return arrayDiff.diff(oldArr, newArr, callback); }\n"],"mappings":";;;;;;;;;AAAA;AAAA;AAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAA;AAAA;AAA0B,mCAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA;AAEnB,IAAME,SAAS;AAAA;AAAAC,OAAA,CAAAD,SAAA;AAAA;AAAG;AAAIE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAI,CAAC,CAAC;AACnCF,SAAS,CAACG,QAAQ,GAAG,UAASC,KAAK,EAAE;EACnC,OAAOA,KAAK,CAACC,KAAK,CAAC,CAAC;AACtB,CAAC;AACDL,SAAS,CAACM,IAAI,GAAGN,SAAS,CAACO,WAAW,GAAG,UAASH,KAAK,EAAE;EACvD,OAAOA,KAAK;AACd,CAAC;AAEM,SAASI,UAAUA,CAACC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE;EAAE,OAAOX,SAAS,CAACY,IAAI,CAACH,MAAM,EAAEC,MAAM,EAAEC,QAAQ,CAAC;AAAE","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/apply.js":{"lineLengths":[25,13,0,46,13,3,32,36,23,3,25,35,23,1,3,25,40,23,1,3,25,27,23,1,3,25,80,23,1,123,23,38,27,5,25,83,36,13,29,7,27,29,10,27,5,29,15,27,14,3,31,29,68,5,25,3,81,8,29,7,27,29,11,27,5,29,26,27,15,29,7,27,29,16,27,5,29,11,27,16,15,31,9,29,31,18,29,7,31,16,29,16,15,29,7,27,29,11,27,5,29,27,27,15,29,7,27,29,16,27,5,29,10,27,16,15,31,9,29,31,18,29,7,31,16,29,16,5,3,0,32,33,26,93,29,5,14,31,29,8,6,41,16,56,65,3,0,34,22,18,3,0,97,100,94,88,89,20,24,21,66,48,26,31,27,38,24,7,5,20,3,20,19,97,91,90,57,21,7,47,18,29,19,5,24,40,21,29,19,5,3,0,5,92,71,51,96,73,4,81,4,85,49,5,51,29,7,27,87,29,7,27,102,29,7,27,90,29,7,27,95,40,41,57,43,60,70,30,71,18,42,16,51,24,11,58,121,9,7,30,38,22,9,51,29,40,40,7,30,38,56,71,31,40,43,18,16,55,24,11,0,50,85,83,77,99,85,353,9,7,5,0,97,99,51,54,41,45,12,33,29,6,3,23,0,69,25,45,25,20,29,10,27,5,60,15,29,10,27,5,67,49,20,31,9,29,31,23,29,7,31,15,29,34,55,61,25,16,9,7,23,14,7,5,22,19,5,0,95,49,35,5,0,51,68,47,30,5,0,78,39,42,0,91,61,47,3,0,54,54,33,3,32,1,0,61,41,36,13,29,7,27,29,10,27,5,29,15,27,14,3,23,27,40,17,32,5,50,16,37,7,60,61,18,39,9,23,9,7,3,17,1,24884,0],"data":{"version":3,"names":["_string","require","_lineEndings","_parse","_distanceIterator","_interopRequireDefault","obj","__esModule","applyPatch","source","uniDiff","options","arguments","length","undefined","parsePatch","Array","isArray","Error","autoConvertLineEndings","hasOnlyWinLineEndings","isUnix","unixToWin","hasOnlyUnixLineEndings","isWin","winToUnix","lines","split","hunks","compareLine","lineNumber","line","operation","patchContent","fuzzFactor","minLine","Number","isInteger","prevLine","removeEOFNL","addEOFNL","i","pop","push","applyHunk","hunkLines","toPos","maxErrors","hunkLinesI","lastContextLineMatched","patchedLines","patchedLinesLength","nConsecutiveOldContextLines","nextContextLineMustMatch","hunkLine","content","substr","oldLineLastI","resultLines","prevHunkOffset","hunk","hunkResult","maxLine","oldLines","oldStart","iterator","distanceIterator","join","applyPatches","currentIndex","processIndex","index","complete","loadFile","err","data","updatedContent","patched"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/patch/apply.js"],"sourcesContent":["import {hasOnlyWinLineEndings, hasOnlyUnixLineEndings} from '../util/string';\nimport {isWin, isUnix, unixToWin, winToUnix} from './line-endings';\nimport {parsePatch} from './parse';\nimport distanceIterator from '../util/distance-iterator';\n\nexport function applyPatch(source, uniDiff, options = {}) {\n  if (typeof uniDiff === 'string') {\n    uniDiff = parsePatch(uniDiff);\n  }\n\n  if (Array.isArray(uniDiff)) {\n    if (uniDiff.length > 1) {\n      throw new Error('applyPatch only works with a single input.');\n    }\n\n    uniDiff = uniDiff[0];\n  }\n\n  if (options.autoConvertLineEndings || options.autoConvertLineEndings == null) {\n    if (hasOnlyWinLineEndings(source) && isUnix(uniDiff)) {\n      uniDiff = unixToWin(uniDiff);\n    } else if (hasOnlyUnixLineEndings(source) && isWin(uniDiff)) {\n      uniDiff = winToUnix(uniDiff);\n    }\n  }\n\n  // Apply the diff to the input\n  let lines = source.split('\\n'),\n      hunks = uniDiff.hunks,\n\n      compareLine = options.compareLine || ((lineNumber, line, operation, patchContent) => line === patchContent),\n      fuzzFactor = options.fuzzFactor || 0,\n      minLine = 0;\n\n  if (fuzzFactor < 0 || !Number.isInteger(fuzzFactor)) {\n    throw new Error('fuzzFactor must be a non-negative integer');\n  }\n\n  // Special case for empty patch.\n  if (!hunks.length) {\n    return source;\n  }\n\n  // Before anything else, handle EOFNL insertion/removal. If the patch tells us to make a change\n  // to the EOFNL that is redundant/impossible - i.e. to remove a newline that's not there, or add a\n  // newline that already exists - then we either return false and fail to apply the patch (if\n  // fuzzFactor is 0) or simply ignore the problem and do nothing (if fuzzFactor is >0).\n  // If we do need to remove/add a newline at EOF, this will always be in the final hunk:\n  let prevLine = '',\n      removeEOFNL = false,\n      addEOFNL = false;\n  for (let i = 0; i < hunks[hunks.length - 1].lines.length; i++) {\n    const line = hunks[hunks.length - 1].lines[i];\n    if (line[0] == '\\\\') {\n      if (prevLine[0] == '+') {\n        removeEOFNL = true;\n      } else if (prevLine[0] == '-') {\n        addEOFNL = true;\n      }\n    }\n    prevLine = line;\n  }\n  if (removeEOFNL) {\n    if (addEOFNL) {\n      // This means the final line gets changed but doesn't have a trailing newline in either the\n      // original or patched version. In that case, we do nothing if fuzzFactor > 0, and if\n      // fuzzFactor is 0, we simply validate that the source file has no trailing newline.\n      if (!fuzzFactor && lines[lines.length - 1] == '') {\n        return false;\n      }\n    } else if (lines[lines.length - 1] == '') {\n      lines.pop();\n    } else if (!fuzzFactor) {\n      return false;\n    }\n  } else if (addEOFNL) {\n    if (lines[lines.length - 1] != '') {\n      lines.push('');\n    } else if (!fuzzFactor) {\n      return false;\n    }\n  }\n\n  /**\n   * Checks if the hunk can be made to fit at the provided location with at most `maxErrors`\n   * insertions, substitutions, or deletions, while ensuring also that:\n   * - lines deleted in the hunk match exactly, and\n   * - wherever an insertion operation or block of insertion operations appears in the hunk, the\n   *   immediately preceding and following lines of context match exactly\n   *\n   * `toPos` should be set such that lines[toPos] is meant to match hunkLines[0].\n   *\n   * If the hunk can be applied, returns an object with properties `oldLineLastI` and\n   * `replacementLines`. Otherwise, returns null.\n   */\n  function applyHunk(\n    hunkLines,\n    toPos,\n    maxErrors,\n    hunkLinesI = 0,\n    lastContextLineMatched = true,\n    patchedLines = [],\n    patchedLinesLength = 0,\n  ) {\n    let nConsecutiveOldContextLines = 0;\n    let nextContextLineMustMatch = false;\n    for (; hunkLinesI < hunkLines.length; hunkLinesI++) {\n      let hunkLine = hunkLines[hunkLinesI],\n          operation = (hunkLine.length > 0 ? hunkLine[0] : ' '),\n          content = (hunkLine.length > 0 ? hunkLine.substr(1) : hunkLine);\n\n      if (operation === '-') {\n        if (compareLine(toPos + 1, lines[toPos], operation, content)) {\n          toPos++;\n          nConsecutiveOldContextLines = 0;\n        } else {\n          if (!maxErrors || lines[toPos] == null) {\n            return null;\n          }\n          patchedLines[patchedLinesLength] = lines[toPos];\n          return applyHunk(\n            hunkLines,\n            toPos + 1,\n            maxErrors - 1,\n            hunkLinesI,\n            false,\n            patchedLines,\n            patchedLinesLength + 1,\n          );\n        }\n      }\n\n      if (operation === '+') {\n        if (!lastContextLineMatched) {\n          return null;\n        }\n        patchedLines[patchedLinesLength] = content;\n        patchedLinesLength++;\n        nConsecutiveOldContextLines = 0;\n        nextContextLineMustMatch = true;\n      }\n\n      if (operation === ' ') {\n        nConsecutiveOldContextLines++;\n        patchedLines[patchedLinesLength] = lines[toPos];\n        if (compareLine(toPos + 1, lines[toPos], operation, content)) {\n          patchedLinesLength++;\n          lastContextLineMatched = true;\n          nextContextLineMustMatch = false;\n          toPos++;\n        } else {\n          if (nextContextLineMustMatch || !maxErrors) {\n            return null;\n          }\n\n          // Consider 3 possibilities in sequence:\n          // 1. lines contains a *substitution* not included in the patch context, or\n          // 2. lines contains an *insertion* not included in the patch context, or\n          // 3. lines contains a *deletion* not included in the patch context\n          // The first two options are of course only possible if the line from lines is non-null -\n          // i.e. only option 3 is possible if we've overrun the end of the old file.\n          return (\n            lines[toPos] && (\n              applyHunk(\n                hunkLines,\n                toPos + 1,\n                maxErrors - 1,\n                hunkLinesI + 1,\n                false,\n                patchedLines,\n                patchedLinesLength + 1\n              ) || applyHunk(\n                hunkLines,\n                toPos + 1,\n                maxErrors - 1,\n                hunkLinesI,\n                false,\n                patchedLines,\n                patchedLinesLength + 1\n              )\n            ) || applyHunk(\n              hunkLines,\n              toPos,\n              maxErrors - 1,\n              hunkLinesI + 1,\n              false,\n              patchedLines,\n              patchedLinesLength\n            )\n          );\n        }\n      }\n    }\n\n    // Before returning, trim any unmodified context lines off the end of patchedLines and reduce\n    // toPos (and thus oldLineLastI) accordingly. This allows later hunks to be applied to a region\n    // that starts in this hunk's trailing context.\n    patchedLinesLength -= nConsecutiveOldContextLines;\n    toPos -= nConsecutiveOldContextLines;\n    patchedLines.length = patchedLinesLength;\n    return {\n      patchedLines,\n      oldLineLastI: toPos - 1\n    };\n  }\n\n  const resultLines = [];\n\n  // Search best fit offsets for each hunk based on the previous ones\n  let prevHunkOffset = 0;\n  for (let i = 0; i < hunks.length; i++) {\n    const hunk = hunks[i];\n    let hunkResult;\n    let maxLine = lines.length - hunk.oldLines + fuzzFactor;\n    let toPos;\n    for (let maxErrors = 0; maxErrors <= fuzzFactor; maxErrors++) {\n      toPos = hunk.oldStart + prevHunkOffset - 1;\n      let iterator = distanceIterator(toPos, minLine, maxLine);\n      for (; toPos !== undefined; toPos = iterator()) {\n        hunkResult = applyHunk(hunk.lines, toPos, maxErrors);\n        if (hunkResult) {\n          break;\n        }\n      }\n      if (hunkResult) {\n        break;\n      }\n    }\n\n    if (!hunkResult) {\n      return false;\n    }\n\n    // Copy everything from the end of where we applied the last hunk to the start of this hunk\n    for (let i = minLine; i < toPos; i++) {\n      resultLines.push(lines[i]);\n    }\n\n    // Add the lines produced by applying the hunk:\n    for (let i = 0; i < hunkResult.patchedLines.length; i++) {\n      const line = hunkResult.patchedLines[i];\n      resultLines.push(line);\n    }\n\n    // Set lower text limit to end of the current hunk, so next ones don't try\n    // to fit over already patched text\n    minLine = hunkResult.oldLineLastI + 1;\n\n    // Note the offset between where the patch said the hunk should've applied and where we\n    // applied it, so we can adjust future hunks accordingly:\n    prevHunkOffset = toPos + 1 - hunk.oldStart;\n  }\n\n  // Copy over the rest of the lines from the old text\n  for (let i = minLine; i < lines.length; i++) {\n    resultLines.push(lines[i]);\n  }\n\n  return resultLines.join('\\n');\n}\n\n// Wrapper that supports multiple file patches via callbacks.\nexport function applyPatches(uniDiff, options) {\n  if (typeof uniDiff === 'string') {\n    uniDiff = parsePatch(uniDiff);\n  }\n\n  let currentIndex = 0;\n  function processIndex() {\n    let index = uniDiff[currentIndex++];\n    if (!index) {\n      return options.complete();\n    }\n\n    options.loadFile(index, function(err, data) {\n      if (err) {\n        return options.complete(err);\n      }\n\n      let updatedContent = applyPatch(data, index, options);\n      options.patched(index, updatedContent, function(err) {\n        if (err) {\n          return options.complete(err);\n        }\n\n        processIndex();\n      });\n    });\n  }\n  processIndex();\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/line-endings.js":{"lineLengths":[25,13,0,46,13,3,24,22,30,30,318,255,439,236,109,316,23,27,29,32,3,10,29,35,27,17,44,31,7,46,31,20,50,35,11,28,20,37,61,39,28,37,70,39,25,37,52,14,12,11,8,6,4,1,27,29,32,3,10,29,35,27,17,44,31,7,46,31,20,47,35,11,20,37,77,14,12,11,8,6,4,1,0,3,99,20,3,24,30,20,3,37,27,3,12,29,38,31,7,16,33,41,35,11,20,37,59,14,12,10,8,6,5,1,0,3,85,3,23,30,20,3,36,27,3,12,29,38,31,7,16,33,41,35,11,20,37,33,14,12,10,8,6,36,27,3,12,29,39,31,7,16,33,45,35,11,29,20,37,61,39,30,37,79,39,26,37,32,14,12,10,8,6,5,1,6208,0],"data":{"version":3,"names":["unixToWin","patch","Array","isArray","map","_objectSpread","hunks","hunk","lines","line","i","_hunk$lines","startsWith","endsWith","winToUnix","substring","length","isUnix","some","index","isWin","every","_hunk$lines2"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/patch/line-endings.js"],"sourcesContent":["export function unixToWin(patch) {\n  if (Array.isArray(patch)) {\n    return patch.map(unixToWin);\n  }\n\n  return {\n    ...patch,\n    hunks: patch.hunks.map(hunk => ({\n      ...hunk,\n      lines: hunk.lines.map(\n        (line, i) =>\n          (line.startsWith('\\\\') || line.endsWith('\\r') || hunk.lines[i + 1]?.startsWith('\\\\'))\n            ? line\n            : line + '\\r'\n      )\n    }))\n  };\n}\n\nexport function winToUnix(patch) {\n  if (Array.isArray(patch)) {\n    return patch.map(winToUnix);\n  }\n\n  return {\n    ...patch,\n    hunks: patch.hunks.map(hunk => ({\n      ...hunk,\n      lines: hunk.lines.map(line => line.endsWith('\\r') ? line.substring(0, line.length - 1) : line)\n    }))\n  };\n}\n\n/**\n * Returns true if the patch consistently uses Unix line endings (or only involves one line and has\n * no line endings).\n */\nexport function isUnix(patch) {\n  if (!Array.isArray(patch)) { patch = [patch]; }\n  return !patch.some(\n    index => index.hunks.some(\n      hunk => hunk.lines.some(\n        line => !line.startsWith('\\\\') && line.endsWith('\\r')\n      )\n    )\n  );\n}\n\n/**\n * Returns true if the patch uses Windows line endings and only Windows line endings.\n */\nexport function isWin(patch) {\n  if (!Array.isArray(patch)) { patch = [patch]; }\n  return patch.some(index => index.hunks.some(hunk => hunk.lines.some(line => line.endsWith('\\r'))))\n    && patch.every(\n      index => index.hunks.every(\n        hunk => hunk.lines.every(\n          (line, i) => line.startsWith('\\\\') || line.endsWith('\\r') || hunk.lines[i + 1]?.startsWith('\\\\')\n        )\n      )\n    );\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/parse.js":{"lineLengths":[25,13,0,46,13,3,32,23,30,36,14,10,25,19,21,0,26,32,28,0,53,47,14,7,0,19,73,19,32,7,10,5,0,78,79,27,27,0,18,21,32,29,131,14,37,38,25,81,14,12,7,5,3,0,64,18,35,65,21,62,46,52,36,59,7,47,59,10,5,3,0,18,53,24,29,37,88,16,32,76,32,76,15,6,0,57,59,64,30,25,5,30,25,5,21,22,92,29,17,27,52,29,14,27,30,31,21,29,94,94,36,32,21,39,24,39,21,24,9,14,24,33,31,31,78,7,5,0,40,43,24,5,46,24,5,0,30,37,99,5,40,101,5,16,3,30,17,3,14,1,11852,0],"data":{"version":3,"names":["parsePatch","uniDiff","diffstr","split","list","i","parseIndex","index","push","length","line","test","header","exec","parseFileHeader","hunks","parseHunk","Error","JSON","stringify","fileHeader","keyPrefix","data","fileName","replace","substr","trim","chunkHeaderIndex","chunkHeaderLine","chunkHeader","hunk","oldStart","oldLines","newStart","newLines","lines","addCount","removeCount","_diffstr$i","startsWith","operation","concat"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/patch/parse.js"],"sourcesContent":["export function parsePatch(uniDiff) {\n  let diffstr = uniDiff.split(/\\n/),\n      list = [],\n      i = 0;\n\n  function parseIndex() {\n    let index = {};\n    list.push(index);\n\n    // Parse diff metadata\n    while (i < diffstr.length) {\n      let line = diffstr[i];\n\n      // File header found, end parsing diff metadata\n      if ((/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/).test(line)) {\n        break;\n      }\n\n      // Diff index\n      let header = (/^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/).exec(line);\n      if (header) {\n        index.index = header[1];\n      }\n\n      i++;\n    }\n\n    // Parse file headers if they are defined. Unified diff requires them, but\n    // there's no technical issues to have an isolated hunk without file header\n    parseFileHeader(index);\n    parseFileHeader(index);\n\n    // Parse hunks\n    index.hunks = [];\n\n    while (i < diffstr.length) {\n      let line = diffstr[i];\n      if ((/^(Index:\\s|diff\\s|\\-\\-\\-\\s|\\+\\+\\+\\s|===================================================================)/).test(line)) {\n        break;\n      } else if ((/^@@/).test(line)) {\n        index.hunks.push(parseHunk());\n      } else if (line) {\n        throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(line));\n      } else {\n        i++;\n      }\n    }\n  }\n\n  // Parses the --- and +++ headers, if none are found, no lines\n  // are consumed.\n  function parseFileHeader(index) {\n    const fileHeader = (/^(---|\\+\\+\\+)\\s+(.*)\\r?$/).exec(diffstr[i]);\n    if (fileHeader) {\n      let keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n      const data = fileHeader[2].split('\\t', 2);\n      let fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n      if ((/^\".*\"$/).test(fileName)) {\n        fileName = fileName.substr(1, fileName.length - 2);\n      }\n      index[keyPrefix + 'FileName'] = fileName;\n      index[keyPrefix + 'Header'] = (data[1] || '').trim();\n\n      i++;\n    }\n  }\n\n  // Parses a hunk\n  // This assumes that we are at the start of a hunk.\n  function parseHunk() {\n    let chunkHeaderIndex = i,\n        chunkHeaderLine = diffstr[i++],\n        chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n\n    let hunk = {\n      oldStart: +chunkHeader[1],\n      oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],\n      newStart: +chunkHeader[3],\n      newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],\n      lines: []\n    };\n\n    // Unified Diff Format quirk: If the chunk size is 0,\n    // the first number is one lower than one would expect.\n    // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n    if (hunk.oldLines === 0) {\n      hunk.oldStart += 1;\n    }\n    if (hunk.newLines === 0) {\n      hunk.newStart += 1;\n    }\n\n    let addCount = 0,\n        removeCount = 0;\n    for (\n      ;\n      i < diffstr.length && (removeCount < hunk.oldLines || addCount < hunk.newLines || diffstr[i]?.startsWith('\\\\'));\n      i++\n    ) {\n      let operation = (diffstr[i].length == 0 && i != (diffstr.length - 1)) ? ' ' : diffstr[i][0];\n      if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n        hunk.lines.push(diffstr[i]);\n\n        if (operation === '+') {\n          addCount++;\n        } else if (operation === '-') {\n          removeCount++;\n        } else if (operation === ' ') {\n          addCount++;\n          removeCount++;\n        }\n      } else {\n        throw new Error(`Hunk at line ${chunkHeaderIndex + 1} contained invalid line ${diffstr[i]}`);\n      }\n    }\n\n    // Handle the empty block count case\n    if (!addCount && hunk.newLines === 1) {\n      hunk.newLines = 0;\n    }\n    if (!removeCount && hunk.oldLines === 1) {\n      hunk.oldLines = 0;\n    }\n\n    // Perform sanity checking\n    if (addCount !== hunk.newLines) {\n      throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n    }\n    if (removeCount !== hunk.oldLines) {\n      throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n    }\n\n    return hunk;\n  }\n\n  while (i < diffstr.length) {\n    parseIndex();\n  }\n\n  return list;\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js":{"lineLengths":[25,13,0,46,13,3,30,23,63,65,47,8,25,8,23,27,25,30,29,20,30,43,30,22,14,28,7,0,77,71,43,35,7,30,5,29,30,27,7,0,80,31,43,37,7,31,24,5,0,78,51,4,1,3148,0],"data":{"version":3,"names":["_default","start","minLine","maxLine","wantForward","backwardExhausted","forwardExhausted","localOffset","iterator"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/util/distance-iterator.js"],"sourcesContent":["// Iterator that traverses in the range of [min, max], stepping\n// by distance from a given start position. I.e. for [0, 4], with\n// start of 2, this will iterate 2, 3, 1, 4, 0.\nexport default function(start, minLine, maxLine) {\n  let wantForward = true,\n      backwardExhausted = false,\n      forwardExhausted = false,\n      localOffset = 1;\n\n  return function iterator() {\n    if (wantForward && !forwardExhausted) {\n      if (backwardExhausted) {\n        localOffset++;\n      } else {\n        wantForward = false;\n      }\n\n      // Check if trying to fit beyond text length, and if not, check it fits\n      // after offset location (or desired location on first iteration)\n      if (start + localOffset <= maxLine) {\n        return start + localOffset;\n      }\n\n      forwardExhausted = true;\n    }\n\n    if (!backwardExhausted) {\n      if (!forwardExhausted) {\n        wantForward = true;\n      }\n\n      // Check if trying to fit before text beginning, and if not, check it fits\n      // before offset location\n      if (minLine <= start - localOffset) {\n        return start - localOffset++;\n      }\n\n      backwardExhausted = true;\n      return iterator();\n    }\n\n    // We tried to fit hunk before text beginning and beyond text length, then\n    // hunk can't fit on the text. Return undefined\n  };\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACe;AAAA;AAAAA;AAAAA;AAAA,CAASC,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAE;EAC/C,IAAIC,WAAW,GAAG,IAAI;IAClBC,iBAAiB,GAAG,KAAK;IACzBC,gBAAgB,GAAG,KAAK;IACxBC,WAAW,GAAG,CAAC;EAEnB,OAAO,SAASC,QAAQA,CAAA,EAAG;IACzB,IAAIJ,WAAW,IAAI,CAACE,gBAAgB,EAAE;MACpC,IAAID,iBAAiB,EAAE;QACrBE,WAAW,EAAE;MACf,CAAC,MAAM;QACLH,WAAW,GAAG,KAAK;MACrB;;MAEA;MACA;MACA,IAAIH,KAAK,GAAGM,WAAW,IAAIJ,OAAO,EAAE;QAClC,OAAOF,KAAK,GAAGM,WAAW;MAC5B;MAEAD,gBAAgB,GAAG,IAAI;IACzB;IAEA,IAAI,CAACD,iBAAiB,EAAE;MACtB,IAAI,CAACC,gBAAgB,EAAE;QACrBF,WAAW,GAAG,IAAI;MACpB;;MAEA;MACA;MACA,IAAIF,OAAO,IAAID,KAAK,GAAGM,WAAW,EAAE;QAClC,OAAON,KAAK,GAAGM,WAAW,EAAE;MAC9B;MAEAF,iBAAiB,GAAG,IAAI;MACxB,OAAOG,QAAQ,CAAC,CAAC;IACnB;;IAEA;IACA;EACF,CAAC;AACH","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/merge.js":{"lineLengths":[25,13,0,46,13,3,38,22,23,3,25,29,23,1,3,25,27,23,1,3,25,33,23,1,179,190,416,158,91,179,23,30,5,29,26,27,36,29,27,45,29,27,45,31,29,10,25,3,31,29,10,25,3,1,36,31,35,15,0,84,83,34,35,43,3,47,33,87,63,63,57,57,42,51,41,41,37,37,12,38,79,79,73,73,5,3,17,20,20,19,21,78,48,26,8,52,26,8,49,65,57,18,66,56,65,61,20,68,12,38,24,73,20,101,20,17,8,115,20,18,33,5,3,13,1,33,34,55,14,33,11,31,33,14,31,9,33,19,31,18,8,5,16,74,5,12,31,9,29,31,13,29,7,31,22,29,41,6,3,15,1,33,70,1,43,24,16,10,26,12,17,20,6,3,1,34,90,1,34,10,28,28,37,28,21,4,1,75,91,74,14,25,23,14,6,13,26,24,14,6,0,31,35,35,0,84,78,45,46,117,26,38,67,31,22,29,22,31,29,31,20,29,29,31,17,29,7,31,25,29,28,67,31,23,29,24,31,29,31,21,29,29,31,18,29,7,31,25,29,29,67,31,33,67,32,39,46,25,35,19,20,12,25,64,5,3,0,44,29,30,22,1,42,38,40,58,72,8,29,7,27,29,10,27,5,29,20,27,112,31,23,29,31,29,31,21,29,29,31,18,29,7,31,25,29,18,13,15,29,7,27,29,10,27,5,29,20,27,114,31,23,29,31,29,31,21,29,29,31,18,29,7,31,25,29,21,13,5,13,27,5,25,27,8,25,3,27,13,25,30,29,21,27,29,27,29,19,27,27,29,16,27,5,29,23,27,16,11,3,42,1,43,38,52,28,29,21,27,29,27,29,19,27,27,29,16,27,5,29,23,27,26,10,85,3,1,38,23,19,19,15,17,5,1,45,78,44,26,20,3,1,39,46,44,26,3,1,31,15,44,44,40,0,108,47,22,5,32,21,20,12,12,5,3,13,1,46,19,16,19,27,23,80,42,39,0,47,27,12,5,57,23,17,0,72,50,28,24,33,29,44,7,5,47,27,20,12,24,5,3,70,22,3,19,19,3,44,44,3,10,19,20,4,1,30,49,37,11,1,58,35,82,63,19,5,3,23,14,1,37,19,19,33,35,51,56,35,55,39,16,31,9,7,35,55,39,16,31,9,7,12,75,19,7,75,19,7,5,5,10,23,22,4,1,35724,0],"data":{"version":3,"names":["_create","require","_parse","_array","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","iter","Symbol","iterator","isArray","len","length","i","arr2","calcLineCount","hunk","_calcOldNewLineCount","calcOldNewLineCount","lines","oldLines","newLines","undefined","merge","mine","theirs","base","loadPatch","ret","index","newFileName","fileNameChanged","oldFileName","oldHeader","newHeader","selectField","hunks","mineIndex","theirsIndex","mineOffset","theirsOffset","mineCurrent","oldStart","Infinity","theirsCurrent","hunkBefore","push","cloneHunk","mergedHunk","Math","min","newStart","mergeLines","param","parsePatch","Error","structuredPatch","patch","conflict","check","offset","mineLines","theirOffset","theirLines","their","insertLeading","theirCurrent","mutualChange","_hunk$lines","apply","collectChange","_hunk$lines2","removal","insertTrailing","myChanges","theirChanges","allRemoves","arrayStartsWith","skipRemoveSuperset","_hunk$lines3","_hunk$lines4","arrayEqual","_hunk$lines5","swap","collectContext","merged","_hunk$lines6","insert","line","state","operation","matchChanges","changes","matchIndex","contextChanges","conflicted","change","match","substr","reduce","prev","removeChanges","delta","changeContent","forEach","myCount","theirCount"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/patch/merge.js"],"sourcesContent":["import {structuredPatch} from './create';\nimport {parsePatch} from './parse';\n\nimport {arrayEqual, arrayStartsWith} from '../util/array';\n\nexport function calcLineCount(hunk) {\n  const {oldLines, newLines} = calcOldNewLineCount(hunk.lines);\n\n  if (oldLines !== undefined) {\n    hunk.oldLines = oldLines;\n  } else {\n    delete hunk.oldLines;\n  }\n\n  if (newLines !== undefined) {\n    hunk.newLines = newLines;\n  } else {\n    delete hunk.newLines;\n  }\n}\n\nexport function merge(mine, theirs, base) {\n  mine = loadPatch(mine, base);\n  theirs = loadPatch(theirs, base);\n\n  let ret = {};\n\n  // For index we just let it pass through as it doesn't have any necessary meaning.\n  // Leaving sanity checks on this to the API consumer that may know more about the\n  // meaning in their own context.\n  if (mine.index || theirs.index) {\n    ret.index = mine.index || theirs.index;\n  }\n\n  if (mine.newFileName || theirs.newFileName) {\n    if (!fileNameChanged(mine)) {\n      // No header or no change in ours, use theirs (and ours if theirs does not exist)\n      ret.oldFileName = theirs.oldFileName || mine.oldFileName;\n      ret.newFileName = theirs.newFileName || mine.newFileName;\n      ret.oldHeader = theirs.oldHeader || mine.oldHeader;\n      ret.newHeader = theirs.newHeader || mine.newHeader;\n    } else if (!fileNameChanged(theirs)) {\n      // No header or no change in theirs, use ours\n      ret.oldFileName = mine.oldFileName;\n      ret.newFileName = mine.newFileName;\n      ret.oldHeader = mine.oldHeader;\n      ret.newHeader = mine.newHeader;\n    } else {\n      // Both changed... figure it out\n      ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);\n      ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);\n      ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);\n      ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);\n    }\n  }\n\n  ret.hunks = [];\n\n  let mineIndex = 0,\n      theirsIndex = 0,\n      mineOffset = 0,\n      theirsOffset = 0;\n\n  while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {\n    let mineCurrent = mine.hunks[mineIndex] || {oldStart: Infinity},\n        theirsCurrent = theirs.hunks[theirsIndex] || {oldStart: Infinity};\n\n    if (hunkBefore(mineCurrent, theirsCurrent)) {\n      // This patch does not overlap with any of the others, yay.\n      ret.hunks.push(cloneHunk(mineCurrent, mineOffset));\n      mineIndex++;\n      theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;\n    } else if (hunkBefore(theirsCurrent, mineCurrent)) {\n      // This patch does not overlap with any of the others, yay.\n      ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));\n      theirsIndex++;\n      mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;\n    } else {\n      // Overlap, merge as best we can\n      let mergedHunk = {\n        oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),\n        oldLines: 0,\n        newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),\n        newLines: 0,\n        lines: []\n      };\n      mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);\n      theirsIndex++;\n      mineIndex++;\n\n      ret.hunks.push(mergedHunk);\n    }\n  }\n\n  return ret;\n}\n\nfunction loadPatch(param, base) {\n  if (typeof param === 'string') {\n    if ((/^@@/m).test(param) || ((/^Index:/m).test(param))) {\n      return parsePatch(param)[0];\n    }\n\n    if (!base) {\n      throw new Error('Must provide a base reference or pass in a patch');\n    }\n    return structuredPatch(undefined, undefined, base, param);\n  }\n\n  return param;\n}\n\nfunction fileNameChanged(patch) {\n  return patch.newFileName && patch.newFileName !== patch.oldFileName;\n}\n\nfunction selectField(index, mine, theirs) {\n  if (mine === theirs) {\n    return mine;\n  } else {\n    index.conflict = true;\n    return {mine, theirs};\n  }\n}\n\nfunction hunkBefore(test, check) {\n  return test.oldStart < check.oldStart\n    && (test.oldStart + test.oldLines) < check.oldStart;\n}\n\nfunction cloneHunk(hunk, offset) {\n  return {\n    oldStart: hunk.oldStart, oldLines: hunk.oldLines,\n    newStart: hunk.newStart + offset, newLines: hunk.newLines,\n    lines: hunk.lines\n  };\n}\n\nfunction mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {\n  // This will generally result in a conflicted hunk, but there are cases where the context\n  // is the only overlap where we can successfully merge the content here.\n  let mine = {offset: mineOffset, lines: mineLines, index: 0},\n      their = {offset: theirOffset, lines: theirLines, index: 0};\n\n  // Handle any leading content\n  insertLeading(hunk, mine, their);\n  insertLeading(hunk, their, mine);\n\n  // Now in the overlap content. Scan through and select the best changes from each.\n  while (mine.index < mine.lines.length && their.index < their.lines.length) {\n    let mineCurrent = mine.lines[mine.index],\n        theirCurrent = their.lines[their.index];\n\n    if ((mineCurrent[0] === '-' || mineCurrent[0] === '+')\n        && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {\n      // Both modified ...\n      mutualChange(hunk, mine, their);\n    } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {\n      // Mine inserted\n      hunk.lines.push(... collectChange(mine));\n    } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {\n      // Theirs inserted\n      hunk.lines.push(... collectChange(their));\n    } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {\n      // Mine removed or edited\n      removal(hunk, mine, their);\n    } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {\n      // Their removed or edited\n      removal(hunk, their, mine, true);\n    } else if (mineCurrent === theirCurrent) {\n      // Context identity\n      hunk.lines.push(mineCurrent);\n      mine.index++;\n      their.index++;\n    } else {\n      // Context mismatch\n      conflict(hunk, collectChange(mine), collectChange(their));\n    }\n  }\n\n  // Now push anything that may be remaining\n  insertTrailing(hunk, mine);\n  insertTrailing(hunk, their);\n\n  calcLineCount(hunk);\n}\n\nfunction mutualChange(hunk, mine, their) {\n  let myChanges = collectChange(mine),\n      theirChanges = collectChange(their);\n\n  if (allRemoves(myChanges) && allRemoves(theirChanges)) {\n    // Special case for remove changes that are supersets of one another\n    if (arrayStartsWith(myChanges, theirChanges)\n        && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {\n      hunk.lines.push(... myChanges);\n      return;\n    } else if (arrayStartsWith(theirChanges, myChanges)\n        && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {\n      hunk.lines.push(... theirChanges);\n      return;\n    }\n  } else if (arrayEqual(myChanges, theirChanges)) {\n    hunk.lines.push(... myChanges);\n    return;\n  }\n\n  conflict(hunk, myChanges, theirChanges);\n}\n\nfunction removal(hunk, mine, their, swap) {\n  let myChanges = collectChange(mine),\n      theirChanges = collectContext(their, myChanges);\n  if (theirChanges.merged) {\n    hunk.lines.push(... theirChanges.merged);\n  } else {\n    conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);\n  }\n}\n\nfunction conflict(hunk, mine, their) {\n  hunk.conflict = true;\n  hunk.lines.push({\n    conflict: true,\n    mine: mine,\n    theirs: their\n  });\n}\n\nfunction insertLeading(hunk, insert, their) {\n  while (insert.offset < their.offset && insert.index < insert.lines.length) {\n    let line = insert.lines[insert.index++];\n    hunk.lines.push(line);\n    insert.offset++;\n  }\n}\nfunction insertTrailing(hunk, insert) {\n  while (insert.index < insert.lines.length) {\n    let line = insert.lines[insert.index++];\n    hunk.lines.push(line);\n  }\n}\n\nfunction collectChange(state) {\n  let ret = [],\n      operation = state.lines[state.index][0];\n  while (state.index < state.lines.length) {\n    let line = state.lines[state.index];\n\n    // Group additions that are immediately after subtractions and treat them as one \"atomic\" modify change.\n    if (operation === '-' && line[0] === '+') {\n      operation = '+';\n    }\n\n    if (operation === line[0]) {\n      ret.push(line);\n      state.index++;\n    } else {\n      break;\n    }\n  }\n\n  return ret;\n}\nfunction collectContext(state, matchChanges) {\n  let changes = [],\n      merged = [],\n      matchIndex = 0,\n      contextChanges = false,\n      conflicted = false;\n  while (matchIndex < matchChanges.length\n        && state.index < state.lines.length) {\n    let change = state.lines[state.index],\n        match = matchChanges[matchIndex];\n\n    // Once we've hit our add, then we are done\n    if (match[0] === '+') {\n      break;\n    }\n\n    contextChanges = contextChanges || change[0] !== ' ';\n\n    merged.push(match);\n    matchIndex++;\n\n    // Consume any additions in the other block as a conflict to attempt\n    // to pull in the remaining context after this\n    if (change[0] === '+') {\n      conflicted = true;\n\n      while (change[0] === '+') {\n        changes.push(change);\n        change = state.lines[++state.index];\n      }\n    }\n\n    if (match.substr(1) === change.substr(1)) {\n      changes.push(change);\n      state.index++;\n    } else {\n      conflicted = true;\n    }\n  }\n\n  if ((matchChanges[matchIndex] || '')[0] === '+'\n      && contextChanges) {\n    conflicted = true;\n  }\n\n  if (conflicted) {\n    return changes;\n  }\n\n  while (matchIndex < matchChanges.length) {\n    merged.push(matchChanges[matchIndex++]);\n  }\n\n  return {\n    merged,\n    changes\n  };\n}\n\nfunction allRemoves(changes) {\n  return changes.reduce(function(prev, change) {\n    return prev && change[0] === '-';\n  }, true);\n}\nfunction skipRemoveSuperset(state, removeChanges, delta) {\n  for (let i = 0; i < delta; i++) {\n    let changeContent = removeChanges[removeChanges.length - delta + i].substr(1);\n    if (state.lines[state.index + i] !== ' ' + changeContent) {\n      return false;\n    }\n  }\n\n  state.index += delta;\n  return true;\n}\n\nfunction calcOldNewLineCount(lines) {\n  let oldLines = 0;\n  let newLines = 0;\n\n  lines.forEach(function(line) {\n    if (typeof line !== 'string') {\n      let myCount = calcOldNewLineCount(line.mine);\n      let theirCount = calcOldNewLineCount(line.theirs);\n\n      if (oldLines !== undefined) {\n        if (myCount.oldLines === theirCount.oldLines) {\n          oldLines += myCount.oldLines;\n        } else {\n          oldLines = undefined;\n        }\n      }\n\n      if (newLines !== undefined) {\n        if (myCount.newLines === theirCount.newLines) {\n          newLines += myCount.newLines;\n        } else {\n          newLines = undefined;\n        }\n      }\n    } else {\n      if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {\n        newLines++;\n      }\n      if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {\n        oldLines++;\n      }\n    }\n  });\n\n  return {oldLines, newLines};\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/create.js":{"lineLengths":[25,13,0,46,13,3,34,50,34,42,23,3,25,31,23,1,344,153,190,416,158,91,179,255,439,236,109,316,23,99,17,17,3,38,15,23,6,3,47,24,3,31,115,3,26,34,29,7,27,29,9,27,5,29,14,27,31,10,7,31,16,29,14,31,29,36,29,7,27,29,9,27,5,29,14,27,20,29,35,27,19,24,31,14,29,14,49,25,7,8,3,41,97,86,0,16,13,5,15,16,15,55,0,34,41,27,9,5,19,26,24,20,18,18,29,32,27,5,28,59,28,45,33,22,31,55,29,33,34,34,21,99,45,45,11,9,0,29,33,31,33,20,31,29,33,17,31,9,33,27,31,36,53,13,0,42,28,34,16,34,9,14,54,28,78,75,37,27,35,26,37,35,37,25,35,33,37,22,35,13,37,31,35,34,18,37,27,35,39,70,37,35,37,25,35,33,37,22,35,13,37,31,35,56,25,38,62,38,62,29,14,30,30,30,26,11,9,32,32,7,6,41,29,5,14,5,0,94,45,27,9,29,24,29,12,29,22,27,5,29,8,27,7,16,31,16,29,7,57,45,57,16,72,72,9,7,5,12,31,31,27,27,18,6,3,1,28,28,44,3,15,45,43,3,82,109,109,47,29,57,59,64,30,25,5,30,25,5,112,36,3,31,1,103,27,16,25,38,15,23,6,3,7,27,15,25,46,27,11,25,15,108,20,13,5,33,10,7,31,17,29,14,31,29,38,83,29,35,27,19,24,31,14,29,18,24,23,16,44,9,7,8,3,1,79,96,1,0,3,96,3,27,42,51,27,3,12,29,17,6,5,22,17,10,43,3,16,1,24412,0],"data":{"version":3,"names":["_line","require","_typeof","o","Symbol","iterator","constructor","prototype","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","minLen","_arrayLikeToArray","n","Object","toString","call","slice","name","Array","from","test","iter","isArray","len","length","i","arr2","ownKeys","e","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","value","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","structuredPatch","oldFileName","newFileName","oldStr","newStr","oldHeader","newHeader","options","callback","context","newlineIsToken","Error","diffLinesResultToPatch","diffLines","_options","diff","patch","lines","contextLines","map","entry","hunks","oldRangeStart","newRangeStart","curRange","oldLine","newLine","_loop","current","splitLines","added","removed","_curRange","prev","_curRange2","_curRange3","contextSize","Math","min","hunk","oldStart","oldLines","newStart","newLines","_i","_hunks","endsWith","splice","formatPatch","join","ret","createTwoFilesPatch","_options2","patchObj","_options3","createPatch","fileName","text","hasTrailingNl","result","split","line","pop"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/patch/create.js"],"sourcesContent":["import {diffLines} from '../diff/line';\n\nexport function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n  if (!options) {\n    options = {};\n  }\n  if (typeof options === 'function') {\n    options = {callback: options};\n  }\n  if (typeof options.context === 'undefined') {\n    options.context = 4;\n  }\n  if (options.newlineIsToken) {\n    throw new Error('newlineIsToken may not be used with patch-generation functions, only with diffing functions');\n  }\n\n  if (!options.callback) {\n    return diffLinesResultToPatch(diffLines(oldStr, newStr, options));\n  } else {\n    const {callback} = options;\n    diffLines(\n      oldStr,\n      newStr,\n      {\n        ...options,\n        callback: (diff) => {\n          const patch = diffLinesResultToPatch(diff);\n          callback(patch);\n        }\n      }\n    );\n  }\n\n  function diffLinesResultToPatch(diff) {\n    // STEP 1: Build up the patch with no \"\\ No newline at end of file\" lines and with the arrays\n    //         of lines containing trailing newline characters. We'll tidy up later...\n\n    if(!diff) {\n      return;\n    }\n\n    diff.push({value: '', lines: []}); // Append an empty value to make cleanup easier\n\n    function contextLines(lines) {\n      return lines.map(function(entry) { return ' ' + entry; });\n    }\n\n    let hunks = [];\n    let oldRangeStart = 0, newRangeStart = 0, curRange = [],\n        oldLine = 1, newLine = 1;\n    for (let i = 0; i < diff.length; i++) {\n      const current = diff[i],\n            lines = current.lines || splitLines(current.value);\n      current.lines = lines;\n\n      if (current.added || current.removed) {\n        // If we have previous context, start with that\n        if (!oldRangeStart) {\n          const prev = diff[i - 1];\n          oldRangeStart = oldLine;\n          newRangeStart = newLine;\n\n          if (prev) {\n            curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n            oldRangeStart -= curRange.length;\n            newRangeStart -= curRange.length;\n          }\n        }\n\n        // Output our changes\n        curRange.push(... lines.map(function(entry) {\n          return (current.added ? '+' : '-') + entry;\n        }));\n\n        // Track the updated file position\n        if (current.added) {\n          newLine += lines.length;\n        } else {\n          oldLine += lines.length;\n        }\n      } else {\n        // Identical context lines. Track line changes\n        if (oldRangeStart) {\n          // Close out any changes that have been output (or join overlapping)\n          if (lines.length <= options.context * 2 && i < diff.length - 2) {\n            // Overlapping\n            curRange.push(... contextLines(lines));\n          } else {\n            // end the range and output\n            let contextSize = Math.min(lines.length, options.context);\n            curRange.push(... contextLines(lines.slice(0, contextSize)));\n\n            let hunk = {\n              oldStart: oldRangeStart,\n              oldLines: (oldLine - oldRangeStart + contextSize),\n              newStart: newRangeStart,\n              newLines: (newLine - newRangeStart + contextSize),\n              lines: curRange\n            };\n            hunks.push(hunk);\n\n            oldRangeStart = 0;\n            newRangeStart = 0;\n            curRange = [];\n          }\n        }\n        oldLine += lines.length;\n        newLine += lines.length;\n      }\n    }\n\n    // Step 2: eliminate the trailing `\\n` from each line of each hunk, and, where needed, add\n    //         \"\\ No newline at end of file\".\n    for (const hunk of hunks) {\n      for (let i = 0; i < hunk.lines.length; i++) {\n        if (hunk.lines[i].endsWith('\\n')) {\n          hunk.lines[i] = hunk.lines[i].slice(0, -1);\n        } else {\n          hunk.lines.splice(i + 1, 0, '\\\\ No newline at end of file');\n          i++; // Skip the line we just added, then continue iterating\n        }\n      }\n    }\n\n    return {\n      oldFileName: oldFileName, newFileName: newFileName,\n      oldHeader: oldHeader, newHeader: newHeader,\n      hunks: hunks\n    };\n  }\n}\n\nexport function formatPatch(diff) {\n  if (Array.isArray(diff)) {\n    return diff.map(formatPatch).join('\\n');\n  }\n\n  const ret = [];\n  if (diff.oldFileName == diff.newFileName) {\n    ret.push('Index: ' + diff.oldFileName);\n  }\n  ret.push('===================================================================');\n  ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n  ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n  for (let i = 0; i < diff.hunks.length; i++) {\n    const hunk = diff.hunks[i];\n    // Unified Diff Format quirk: If the chunk size is 0,\n    // the first number is one lower than one would expect.\n    // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n    if (hunk.oldLines === 0) {\n      hunk.oldStart -= 1;\n    }\n    if (hunk.newLines === 0) {\n      hunk.newStart -= 1;\n    }\n    ret.push(\n      '@@ -' + hunk.oldStart + ',' + hunk.oldLines\n      + ' +' + hunk.newStart + ',' + hunk.newLines\n      + ' @@'\n    );\n    ret.push.apply(ret, hunk.lines);\n  }\n\n  return ret.join('\\n') + '\\n';\n}\n\nexport function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n  if (typeof options === 'function') {\n    options = {callback: options};\n  }\n\n  if (!options?.callback) {\n    const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n    if (!patchObj) {\n      return;\n    }\n    return formatPatch(patchObj);\n  } else {\n    const {callback} = options;\n    structuredPatch(\n      oldFileName,\n      newFileName,\n      oldStr,\n      newStr,\n      oldHeader,\n      newHeader,\n      {\n        ...options,\n        callback: patchObj => {\n          if (!patchObj) {\n            callback();\n          } else {\n            callback(formatPatch(patchObj));\n          }\n        }\n      }\n    );\n  }\n}\n\nexport function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n  return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n}\n\n/**\n * Split `text` into an array of lines, including the trailing newline character (where present)\n */\nfunction splitLines(text) {\n  const hasTrailingNl = text.endsWith('\\n');\n  const result = text.split('\\n').map(line => line + '\\n');\n  if (hasTrailingNl) {\n    result.pop();\n  } else {\n    result.push(result.pop().slice(0, -1));\n  }\n  return result;\n}\n"],"mappings":"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","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/util/array.js":{"lineLengths":[25,13,0,46,13,3,32,42,23,27,30,17,3,31,1,40,36,17,3,42,32,19,5,3,14,1,1468,0],"data":{"version":3,"names":["arrayEqual","a","b","length","arrayStartsWith","array","start","i"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/util/array.js"],"sourcesContent":["export function arrayEqual(a, b) {\n  if (a.length !== b.length) {\n    return false;\n  }\n\n  return arrayStartsWith(a, b);\n}\n\nexport function arrayStartsWith(array, start) {\n  if (start.length > array.length) {\n    return false;\n  }\n\n  for (let i = 0; i < start.length; i++) {\n    if (start[i] !== array[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n"],"mappings":";;;;;;;;;AAAO,SAASA,UAAUA,CAACC,CAAC,EAAEC,CAAC,EAAE;EAC/B,IAAID,CAAC,CAACE,MAAM,KAAKD,CAAC,CAACC,MAAM,EAAE;IACzB,OAAO,KAAK;EACd;EAEA,OAAOC,eAAe,CAACH,CAAC,EAAEC,CAAC,CAAC;AAC9B;AAEO,SAASE,eAAeA,CAACC,KAAK,EAAEC,KAAK,EAAE;EAC5C,IAAIA,KAAK,CAACH,MAAM,GAAGE,KAAK,CAACF,MAAM,EAAE;IAC/B,OAAO,KAAK;EACd;EAEA,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACH,MAAM,EAAEI,CAAC,EAAE,EAAE;IACrC,IAAID,KAAK,CAACC,CAAC,CAAC,KAAKF,KAAK,CAACE,CAAC,CAAC,EAAE;MACzB,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/patch/reverse.js":{"lineLengths":[25,13,0,46,13,3,36,318,255,439,236,109,316,23,40,39,55,3,10,29,35,27,27,47,43,47,43,56,16,34,34,34,34,46,36,22,41,27,39,27,16,13,36,22,41,27,39,27,16,13,21,12,10,8,6,4,1,2860,0],"data":{"version":3,"names":["reversePatch","structuredPatch","Array","isArray","map","reverse","_objectSpread","oldFileName","newFileName","oldHeader","newHeader","hunks","hunk","oldLines","newLines","oldStart","newStart","lines","l","startsWith","concat","slice"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/patch/reverse.js"],"sourcesContent":["export function reversePatch(structuredPatch) {\n  if (Array.isArray(structuredPatch)) {\n    return structuredPatch.map(reversePatch).reverse();\n  }\n\n  return {\n    ...structuredPatch,\n    oldFileName: structuredPatch.newFileName,\n    oldHeader: structuredPatch.newHeader,\n    newFileName: structuredPatch.oldFileName,\n    newHeader: structuredPatch.oldHeader,\n    hunks: structuredPatch.hunks.map(hunk => {\n      return {\n        oldLines: hunk.newLines,\n        oldStart: hunk.newStart,\n        newLines: hunk.oldLines,\n        newStart: hunk.oldStart,\n        lines: hunk.lines.map(l => {\n          if (l.startsWith('-')) { return `+${l.slice(1)}`; }\n          if (l.startsWith('+')) { return `-${l.slice(1)}`; }\n          return l;\n        })\n      };\n    })\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;AAAO,SAASA,YAAYA,CAACC,eAAe,EAAE;EAC5C,IAAIC,KAAK,CAACC,OAAO,CAACF,eAAe,CAAC,EAAE;IAClC,OAAOA,eAAe,CAACG,GAAG,CAACJ,YAAY,CAAC,CAACK,OAAO,CAAC,CAAC;EACpD;EAEA;IAAA;IAAAC,aAAA,CAAAA,aAAA;IAAA;IACKL,eAAe;MAClBM,WAAW,EAAEN,eAAe,CAACO,WAAW;MACxCC,SAAS,EAAER,eAAe,CAACS,SAAS;MACpCF,WAAW,EAAEP,eAAe,CAACM,WAAW;MACxCG,SAAS,EAAET,eAAe,CAACQ,SAAS;MACpCE,KAAK,EAAEV,eAAe,CAACU,KAAK,CAACP,GAAG,CAAC,UAAAQ,IAAI,EAAI;QACvC,OAAO;UACLC,QAAQ,EAAED,IAAI,CAACE,QAAQ;UACvBC,QAAQ,EAAEH,IAAI,CAACI,QAAQ;UACvBF,QAAQ,EAAEF,IAAI,CAACC,QAAQ;UACvBG,QAAQ,EAAEJ,IAAI,CAACG,QAAQ;UACvBE,KAAK,EAAEL,IAAI,CAACK,KAAK,CAACb,GAAG,CAAC,UAAAc,CAAC,EAAI;YACzB,IAAIA,CAAC,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;cAAE;gBAAA;gBAAA,IAAAC,MAAA;gBAAA;gBAAWF,CAAC,CAACG,KAAK,CAAC,CAAC,CAAC;cAAA;YAAI;YAClD,IAAIH,CAAC,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;cAAE;gBAAA;gBAAA,IAAAC,MAAA;gBAAA;gBAAWF,CAAC,CAACG,KAAK,CAAC,CAAC,CAAC;cAAA;YAAI;YAClD,OAAOH,CAAC;UACV,CAAC;QACH,CAAC;MACH,CAAC;IAAC;EAAA;AAEN","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/convert/dmp.js":{"lineLengths":[25,13,0,46,13,3,50,23,65,39,15,11,14,44,24,23,20,32,21,12,20,5,40,3,13,1,1604,0],"data":{"version":3,"names":["convertChangesToDMP","changes","ret","change","operation","i","length","added","removed","push","value"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/convert/dmp.js"],"sourcesContent":["// See: http://code.google.com/p/google-diff-match-patch/wiki/API\nexport function convertChangesToDMP(changes) {\n  let ret = [],\n      change,\n      operation;\n  for (let i = 0; i < changes.length; i++) {\n    change = changes[i];\n    if (change.added) {\n      operation = 1;\n    } else if (change.removed) {\n      operation = -1;\n    } else {\n      operation = 0;\n    }\n\n    ret.push([operation, change.value]);\n  }\n  return ret;\n}\n"],"mappings":";;;;;;;;AAAA;AACO,SAASA,mBAAmBA,CAACC,OAAO,EAAE;EAC3C,IAAIC,GAAG,GAAG,EAAE;IACRC,MAAM;IACNC,SAAS;EACb,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,OAAO,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;IACvCF,MAAM,GAAGF,OAAO,CAACI,CAAC,CAAC;IACnB,IAAIF,MAAM,CAACI,KAAK,EAAE;MAChBH,SAAS,GAAG,CAAC;IACf,CAAC,MAAM,IAAID,MAAM,CAACK,OAAO,EAAE;MACzBJ,SAAS,GAAG,CAAC,CAAC;IAChB,CAAC,MAAM;MACLA,SAAS,GAAG,CAAC;IACf;IAEAF,GAAG,CAACO,IAAI,CAAC,CAACL,SAAS,EAAED,MAAM,CAACO,KAAK,CAAC,CAAC;EACrC;EACA,OAAOR,GAAG;AACZ","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/lib/convert/xml.js":{"lineLengths":[25,13,0,46,13,3,50,23,39,15,44,28,23,24,32,24,5,39,23,25,32,25,5,3,22,1,24,12,31,30,30,32,11,1,2524,0],"data":{"version":3,"names":["convertChangesToXML","changes","ret","i","length","change","added","push","removed","escapeHTML","value","join","s","n","replace"],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/diff/src/convert/xml.js"],"sourcesContent":["export function convertChangesToXML(changes) {\n  let ret = [];\n  for (let i = 0; i < changes.length; i++) {\n    let change = changes[i];\n    if (change.added) {\n      ret.push('<ins>');\n    } else if (change.removed) {\n      ret.push('<del>');\n    }\n\n    ret.push(escapeHTML(change.value));\n\n    if (change.added) {\n      ret.push('</ins>');\n    } else if (change.removed) {\n      ret.push('</del>');\n    }\n  }\n  return ret.join('');\n}\n\nfunction escapeHTML(s) {\n  let n = s;\n  n = n.replace(/&/g, '&amp;');\n  n = n.replace(/</g, '&lt;');\n  n = n.replace(/>/g, '&gt;');\n  n = n.replace(/\"/g, '&quot;');\n\n  return n;\n}\n"],"mappings":";;;;;;;;AAAO,SAASA,mBAAmBA,CAACC,OAAO,EAAE;EAC3C,IAAIC,GAAG,GAAG,EAAE;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,OAAO,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACvC,IAAIE,MAAM,GAAGJ,OAAO,CAACE,CAAC,CAAC;IACvB,IAAIE,MAAM,CAACC,KAAK,EAAE;MAChBJ,GAAG,CAACK,IAAI,CAAC,OAAO,CAAC;IACnB,CAAC,MAAM,IAAIF,MAAM,CAACG,OAAO,EAAE;MACzBN,GAAG,CAACK,IAAI,CAAC,OAAO,CAAC;IACnB;IAEAL,GAAG,CAACK,IAAI,CAACE,UAAU,CAACJ,MAAM,CAACK,KAAK,CAAC,CAAC;IAElC,IAAIL,MAAM,CAACC,KAAK,EAAE;MAChBJ,GAAG,CAACK,IAAI,CAAC,QAAQ,CAAC;IACpB,CAAC,MAAM,IAAIF,MAAM,CAACG,OAAO,EAAE;MACzBN,GAAG,CAACK,IAAI,CAAC,QAAQ,CAAC;IACpB;EACF;EACA,OAAOL,GAAG,CAACS,IAAI,CAAC,EAAE,CAAC;AACrB;AAEA,SAASF,UAAUA,CAACG,CAAC,EAAE;EACrB,IAAIC,CAAC,GAAGD,CAAC;EACTC,CAAC,GAAGA,CAAC,CAACC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;EAC5BD,CAAC,GAAGA,CAAC,CAACC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;EAC3BD,CAAC,GAAGA,CAAC,CAACC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;EAC3BD,CAAC,GAAGA,CAAC,CAACC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;EAE7B,OAAOD,CAAC;AACV","ignoreList":[],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/index.js":{"lineLengths":[13,62,202,40,32,28,42,34,41,39,49,39,112,116,37,106,47,119,41,112,48,61,1,44,57,1,42,59,1,45,55,1,49,62,1,45,58,1,65,36,69,38,46,26,3,40,27,29,3,37,16,13,23,15,27,19,35,16,29,20,37,25,38,31,35,3,33,33],"data":{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/src/index.ts"],"names":[],"mappings":";;;AAqDA,wCAKC;AAsBD,gCAKC;AAqBD,4BAKC;AAkDD,0CAKC;AAqBD,kCAKC;AAhMD,yCAA4C;AAS5C,uCAAgC;AAChC,iDAAyC;AAEzC,uCAA4C;AAAnC,mGAAA,MAAM,OAAA;AAAE,qGAAA,QAAQ,OAAA;AAQzB,qCAAgC;AAAvB,+FAAA,IAAI,OAAA;AAOb,+CAAyC;AAAhC,wGAAA,QAAQ,OAAA;AACjB,yCAAoC;AAA3B,mGAAA,MAAM,OAAA;AAyBf,SAAgB,cAAc,CAC5B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;AAChD,CAAC;AAsBD,SAAgB,UAAU,CACxB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5C,CAAC;AAqBD,SAAgB,QAAQ,CACtB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC9C,CAAC;AAwBD,KAAK,UAAU,KAAK,CAClB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC;AAqBD,SAAgB,eAAe,CAC7B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AAqBD,SAAgB,WAAW,CACzB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;AAC7C,CAAC;AAED,iEAAiE;AACpD,QAAA,UAAU,GAAG,cAAc,CAAA;AAC3B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAC5D,QAAA,WAAW,GAAG,eAAe,CAAA;AAC7B,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IAChD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AACW,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,eAAe;CACzB,CAAC,CAAA;AAEW,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,KAAK;IACX,QAAQ;IACR,IAAI,EAAJ,YAAI;IACJ,UAAU;IACV,MAAM,EAAN,cAAM;IACN,cAAc;IACd,UAAU,EAAV,kBAAU;IACV,WAAW;IACX,OAAO,EAAP,eAAO;IACP,eAAe;IACf,WAAW,EAAX,mBAAW;IACX,IAAI,EAAJ,cAAI;IACJ,QAAQ,EAAR,uBAAQ;IACR,MAAM,EAAN,kBAAM;IACN,QAAQ,EAAR,oBAAQ;CACT,CAAC,CAAA;AACF,YAAI,CAAC,IAAI,GAAG,YAAI,CAAA","sourcesContent":["import { escape, unescape } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport type {\n  GlobOptions,\n  GlobOptionsWithFileTypesFalse,\n  GlobOptionsWithFileTypesTrue,\n  GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nimport { Glob } from './glob.js'\nimport { hasMagic } from './has-magic.js'\n\nexport { escape, unescape } from 'minimatch'\nexport type {\n  FSOption,\n  Path,\n  WalkOptions,\n  WalkOptionsWithFileTypesTrue,\n  WalkOptionsWithFileTypesUnset,\n} from 'path-scurry'\nexport { Glob } from './glob.js'\nexport type {\n  GlobOptions,\n  GlobOptionsWithFileTypesFalse,\n  GlobOptionsWithFileTypesTrue,\n  GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nexport { hasMagic } from './has-magic.js'\nexport { Ignore } from './ignore.js'\nexport type { IgnoreLike } from './ignore.js'\nexport type { MatchStream } from './walker.js'\n\n/**\n * Syncronous form of {@link globStream}. Will read all the matches as fast as\n * you consume them, even all in a single tick if you consume them immediately,\n * but will still respond to backpressure if they're not consumed immediately.\n */\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Minipass<Path, Path>\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): Minipass<string, string>\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesUnset,\n): Minipass<string, string>\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptions,\n): Minipass<Path, Path> | Minipass<string, string>\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).streamSync()\n}\n\n/**\n * Return a stream that emits all the strings or `Path` objects and\n * then emits `end` when completed.\n */\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): Minipass<string, string>\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Minipass<Path, Path>\nexport function globStream(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): Minipass<string, string>\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptions,\n): Minipass<Path, Path> | Minipass<string, string>\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).stream()\n}\n\n/**\n * Synchronous form of {@link glob}\n */\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Path[]\nexport function globSync(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptions,\n): Path[] | string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).walkSync()\n}\n\n/**\n * Perform an asynchronous glob search for the pattern(s) specified. Returns\n * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the\n * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for\n * full option descriptions.\n */\nasync function glob_(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): Promise<string[]>\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Promise<Path[]>\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): Promise<string[]>\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptions,\n): Promise<Path[] | string[]>\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).walk()\n}\n\n/**\n * Return a sync iterator for walking glob pattern matches.\n */\nexport function globIterateSync(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): Generator<string, void, void>\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): Generator<Path, void, void>\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): Generator<string, void, void>\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptions,\n): Generator<Path, void, void> | Generator<string, void, void>\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).iterateSync()\n}\n\n/**\n * Return an async iterator for walking glob pattern matches.\n */\nexport function globIterate(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined,\n): AsyncGenerator<string, void, void>\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue,\n): AsyncGenerator<Path, void, void>\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse,\n): AsyncGenerator<string, void, void>\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptions,\n): AsyncGenerator<Path, void, void> | AsyncGenerator<string, void, void>\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptions = {},\n) {\n  return new Glob(pattern, options).iterate()\n}\n\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexport const streamSync = globStreamSync\nexport const stream = Object.assign(globStream, { sync: globStreamSync })\nexport const iterateSync = globIterateSync\nexport const iterate = Object.assign(globIterate, {\n  sync: globIterateSync,\n})\nexport const sync = Object.assign(globSync, {\n  stream: globStreamSync,\n  iterate: globIterateSync,\n})\n\nexport const glob = Object.assign(glob_, {\n  glob: glob_,\n  globSync,\n  sync,\n  globStream,\n  stream,\n  globStreamSync,\n  streamSync,\n  globIterate,\n  iterate,\n  globIterateSync,\n  iterateSync,\n  Glob,\n  hasMagic,\n  escape,\n  unescape,\n})\nglob.glob = glob\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/index.js":{"lineLengths":[13,72,62,2,62,221,70,71,37,43,47,49,63,40,58,21,5,52,2,30,56,45,77,58,39,28,70,2,42,28,48,2,35,69,77,28,72,23,61,69,42,46,40,13,21,28,60,2,49,43,13,21,28,60,2,43,43,61,2,40,40,61,2,35,26,57,2,38,26,62,2,21,63,41,22,54,24,15,14,25,24,2,20,76,36,41,46,32,49,21,32,26,60,63,45,61,34,45,47,93,24,42,51,27,70,33,5,35,80,29,59,48,50,13,38,66,13,10,41,33,53,55,13,32,52,69,13,10,75,71,83,64,83,93,93,22,35,7,2,28,46,19,21,19,30,35,43,2,33,21,17,48,63,60,60,63,39,25,5,51,2,34,52,41,50,68,68,61,66,2,74,72,69,62,83,24,42,48,47,41,44,27,5,16,2,22,40,31,44,74,17,12,8,12,25,13,11,12,10,28,12,12,14,11,14,13,23,25,11,40,67,32,31,72,31,60,51,35,83,40,60,9,73,27,28,43,29,27,41,44,33,52,44,52,26,28,22,39,20,5,16,64,24,9,41,41,45,32,13,9,21,5,19,12,37,37,53,62,32,19,9,23,30,19,9,44,27,32,56,28,61,9,47,71,42,70,60,48,10,75,76,74,71,55,49,27,52,60,53,44,34,62,42,54,28,87,17,35,75,17,13,47,11,38,62,60,51,29,55,38,34,34,51,47,45,31,17,13,9,43,5,61,62,61,64,43,27,65,38,56,63,51,46,21,17,13,9,55,37,68,61,62,9,42,63,57,9,14,58,66,9,25,5,44,42,39,24,63,27,47,24,17,31,45,17,13,25,11,5,54,33,39,49,49,53,31,17,36,81,34,35,21,17,31,27,19,53,11,5,33,36,43,9,33,12,33,47,48,60,39,53,63,33,48,44,43,28,21,17,39,41,60,40,32,17,13,50,23,63,40,65,40,44,28,17,13,31,49,5,45,34,35,53,21,6,68,68,70,57,6,86,39,42,32,6,73,67,37,33,12,33,94,42,28,67,33,53,64,30,21,75,55,35,55,21,45,44,45,38,33,29,36,37,30,37,38,33,21,40,64,40,49,37,42,25,17,51,52,64,43,57,67,37,52,48,47,32,25,21,43,45,64,44,36,21,17,54,27,67,44,69,44,75,59,58,47,43,32,21,17,13,31,25,5,42,58,50,56,6,63,55,38,56,60,107,30,38,43,26,17,13,9,49,5,44,19,19,24,23,48,34,59,21,21,13,77,35,21,13,77,35,21,13,37,24,63,33,34,33,28,35,21,21,13,37,24,63,33,34,33,28,35,21,21,13,18,29,13,9,70,41,47,5,19,26,19,37,27,29,79,29,27,9,25,55,29,5,51,45,59,55,23,46,31,34,68,75,30,29,87,41,33,33,34,42,96,47,36,36,37,49,45,64,70,69,34,30,33,18,60,38,44,41,17,13,9,68,76,55,37,51,9,49,98,9,89,5,69,72,61,46,49,39,15,13,49,47,38,10,26,76,63,29,37,9,30,26,54,29,54,68,44,13,18,51,62,33,17,28,71,33,48,13,9,27,42,75,42,31,46,63,33,17,13,38,9,39,42,27,35,31,41,48,38,47,13,18,39,29,13,9,40,55,39,68,9,112,5,107,43,18,59,31,34,46,63,33,17,13,27,9,33,36,106,65,157,34,31,13,38,42,59,29,13,24,9,31,5,64,15,15,15,15,47,84,40,32,29,38,33,54,29,32,20,40,30,54,13,18,32,55,13,21,29,9,37,24,9,29,27,9,29,52,33,9,14,36,9,28,5,19,68,5,20,67,37,20,29,36,27,22,63,66,14,28,42,60,9,53,38,29,45,42,29,39,44,9,49,38,29,41,38,29,35,37,9,54,74,9,50,35,9,78,49,55,68,9,18,5,14,49,31,59,36,10,64,65,51,29,26,32,31,9,37,42,18,25,28,31,59,42,58,78,57,70,43,20,29,41,42,54,37,17,44,37,44,42,33,15,34,39,39,74,27,17,41,74,73,21,26,40,21,17,46,66,17,53,78,49,17,15,68,10,23,71,75,71,36,56,43,56,24,38,13,62,33,9,20,35,32,9,28,27,5,19,59,69,54,50,43,32,9,59,50,43,9,14,34,9,5,38,45,54,25,27,25,9,25,28,9,35,24,9,37,40,29,40,9,53,38,46,66,67,43,47,29,45,82,41,24,67,33,13,9,46,35,26,60,34,13,62,22,41,32,17,36,13,9,67,38,33,25,9,27,5,26,57,5,1,30,21,35,103,41,112,45,118,20,37,40,46,52,33],"data":{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import expand from 'brace-expansion'\nimport { assertValidPattern } from './assert-valid-pattern.js'\nimport { AST, ExtglobType } from './ast.js'\nimport { escape } from './escape.js'\nimport { unescape } from './unescape.js'\n\ntype Platform =\n  | 'aix'\n  | 'android'\n  | 'darwin'\n  | 'freebsd'\n  | 'haiku'\n  | 'linux'\n  | 'openbsd'\n  | 'sunos'\n  | 'win32'\n  | 'cygwin'\n  | 'netbsd'\n\nexport interface MinimatchOptions {\n  nobrace?: boolean\n  nocomment?: boolean\n  nonegate?: boolean\n  debug?: boolean\n  noglobstar?: boolean\n  noext?: boolean\n  nonull?: boolean\n  windowsPathsNoEscape?: boolean\n  allowWindowsEscape?: boolean\n  partial?: boolean\n  dot?: boolean\n  nocase?: boolean\n  nocaseMagicOnly?: boolean\n  magicalBraces?: boolean\n  matchBase?: boolean\n  flipNegate?: boolean\n  preserveMultipleSlashes?: boolean\n  optimizationLevel?: number\n  platform?: Platform\n  windowsNoMagicRoot?: boolean\n  maxGlobstarRecursion?: number\n  maxExtglobRecursion?: number\n}\n\nexport const minimatch = (\n  p: string,\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // shortcut: comments match nothing.\n  if (!options.nocomment && pattern.charAt(0) === '#') {\n    return false\n  }\n\n  return new Minimatch(pattern, options).match(p)\n}\n\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/\nconst starDotExtTest = (ext: string) => (f: string) =>\n  !f.startsWith('.') && f.endsWith(ext)\nconst starDotExtTestDot = (ext: string) => (f: string) => f.endsWith(ext)\nconst starDotExtTestNocase = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => !f.startsWith('.') && f.toLowerCase().endsWith(ext)\n}\nconst starDotExtTestNocaseDot = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => f.toLowerCase().endsWith(ext)\n}\nconst starDotStarRE = /^\\*+\\.\\*+$/\nconst starDotStarTest = (f: string) => !f.startsWith('.') && f.includes('.')\nconst starDotStarTestDot = (f: string) =>\n  f !== '.' && f !== '..' && f.includes('.')\nconst dotStarRE = /^\\.\\*+$/\nconst dotStarTest = (f: string) => f !== '.' && f !== '..' && f.startsWith('.')\nconst starRE = /^\\*+$/\nconst starTest = (f: string) => f.length !== 0 && !f.startsWith('.')\nconst starTestDot = (f: string) => f.length !== 0 && f !== '.' && f !== '..'\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/\nconst qmarksTestNocase = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestNocaseDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTest = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTestNoExt = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && !f.startsWith('.')\n}\nconst qmarksTestNoExtDot = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && f !== '.' && f !== '..'\n}\n\n/* c8 ignore start */\nconst defaultPlatform: Platform = (\n  typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n      process.platform\n    : 'posix'\n) as Platform\ntype Sep = '\\\\' | '/'\nconst path: { [k: string]: { sep: Sep } } = {\n  win32: { sep: '\\\\' },\n  posix: { sep: '/' },\n}\n/* c8 ignore stop */\n\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep\nminimatch.sep = sep\n\nexport const GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?'\n\nexport const filter =\n  (pattern: string, options: MinimatchOptions = {}) =>\n  (p: string) =>\n    minimatch(p, pattern, options)\nminimatch.filter = filter\n\nconst ext = (a: MinimatchOptions, b: MinimatchOptions = {}) =>\n  Object.assign({}, a, b)\n\nexport const defaults = (def: MinimatchOptions): typeof minimatch => {\n  if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n    return minimatch\n  }\n\n  const orig = minimatch\n\n  const m = (p: string, pattern: string, options: MinimatchOptions = {}) =>\n    orig(p, pattern, ext(def, options))\n\n  return Object.assign(m, {\n    Minimatch: class Minimatch extends orig.Minimatch {\n      constructor(pattern: string, options: MinimatchOptions = {}) {\n        super(pattern, ext(def, options))\n      }\n      static defaults(options: MinimatchOptions) {\n        return orig.defaults(ext(def, options)).Minimatch\n      }\n    },\n\n    AST: class AST extends orig.AST {\n      /* c8 ignore start */\n      constructor(\n        type: ExtglobType | null,\n        parent?: AST,\n        options: MinimatchOptions = {}\n      ) {\n        super(type, parent, ext(def, options))\n      }\n      /* c8 ignore stop */\n\n      static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n        return orig.AST.fromGlob(pattern, ext(def, options))\n      }\n    },\n\n    unescape: (\n      s: string,\n      options: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n    ) => orig.unescape(s, ext(def, options)),\n\n    escape: (\n      s: string,\n      options: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n    ) => orig.escape(s, ext(def, options)),\n\n    filter: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.filter(pattern, ext(def, options)),\n\n    defaults: (options: MinimatchOptions) => orig.defaults(ext(def, options)),\n\n    makeRe: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.makeRe(pattern, ext(def, options)),\n\n    braceExpand: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.braceExpand(pattern, ext(def, options)),\n\n    match: (list: string[], pattern: string, options: MinimatchOptions = {}) =>\n      orig.match(list, pattern, ext(def, options)),\n\n    sep: orig.sep,\n    GLOBSTAR: GLOBSTAR as typeof GLOBSTAR,\n  })\n}\nminimatch.defaults = defaults\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // Thanks to Yeting Li <https://github.com/yetingli> for\n  // improving this regexp to avoid a ReDOS vulnerability.\n  if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n    // shortcut. no need to expand.\n    return [pattern]\n  }\n\n  return expand(pattern)\n}\nminimatch.braceExpand = braceExpand\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\nexport const makeRe = (pattern: string, options: MinimatchOptions = {}) =>\n  new Minimatch(pattern, options).makeRe()\nminimatch.makeRe = makeRe\n\nexport const match = (\n  list: string[],\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  const mm = new Minimatch(pattern, options)\n  list = list.filter(f => mm.match(f))\n  if (mm.options.nonull && !list.length) {\n    list.push(pattern)\n  }\n  return list\n}\nminimatch.match = match\n\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\nexport type MMRegExp = RegExp & {\n  _src?: string\n  _glob?: string\n}\n\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR\nexport type ParseReturn = ParseReturnFiltered | false\n\nexport class Minimatch {\n  options: MinimatchOptions\n  set: ParseReturnFiltered[][]\n  pattern: string\n\n  windowsPathsNoEscape: boolean\n  nonegate: boolean\n  negate: boolean\n  comment: boolean\n  empty: boolean\n  preserveMultipleSlashes: boolean\n  partial: boolean\n  globSet: string[]\n  globParts: string[][]\n  nocase: boolean\n\n  isWindows: boolean\n  platform: Platform\n  windowsNoMagicRoot: boolean\n  maxGlobstarRecursion: number\n\n  regexp: false | null | MMRegExp\n  constructor(pattern: string, options: MinimatchOptions = {}) {\n    assertValidPattern(pattern)\n\n    options = options || {}\n    this.options = options\n    this.maxGlobstarRecursion = options.maxGlobstarRecursion ?? 200\n    this.pattern = pattern\n    this.platform = options.platform || defaultPlatform\n    this.isWindows = this.platform === 'win32'\n    this.windowsPathsNoEscape =\n      !!options.windowsPathsNoEscape || options.allowWindowsEscape === false\n    if (this.windowsPathsNoEscape) {\n      this.pattern = this.pattern.replace(/\\\\/g, '/')\n    }\n    this.preserveMultipleSlashes = !!options.preserveMultipleSlashes\n    this.regexp = null\n    this.negate = false\n    this.nonegate = !!options.nonegate\n    this.comment = false\n    this.empty = false\n    this.partial = !!options.partial\n    this.nocase = !!this.options.nocase\n    this.windowsNoMagicRoot =\n      options.windowsNoMagicRoot !== undefined\n        ? options.windowsNoMagicRoot\n        : !!(this.isWindows && this.nocase)\n\n    this.globSet = []\n    this.globParts = []\n    this.set = []\n\n    // make the set of regexps etc.\n    this.make()\n  }\n\n  hasMagic(): boolean {\n    if (this.options.magicalBraces && this.set.length > 1) {\n      return true\n    }\n    for (const pattern of this.set) {\n      for (const part of pattern) {\n        if (typeof part !== 'string') return true\n      }\n    }\n    return false\n  }\n\n  debug(..._: any[]) {}\n\n  make() {\n    const pattern = this.pattern\n    const options = this.options\n\n    // empty patterns and comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n      this.comment = true\n      return\n    }\n\n    if (!pattern) {\n      this.empty = true\n      return\n    }\n\n    // step 1: figure out negation, etc.\n    this.parseNegate()\n\n    // step 2: expand braces\n    this.globSet = [...new Set<string>(this.braceExpand())]\n\n    if (options.debug) {\n      this.debug = (...args: any[]) => console.error(...args)\n    }\n\n    this.debug(this.pattern, this.globSet)\n\n    // step 3: now we have a set, so turn each one into a series of\n    // path-portion matching patterns.\n    // These will be regexps, except in the case of \"**\", which is\n    // set to the GLOBSTAR object for globstar behavior,\n    // and will not contain any / characters\n    //\n    // First, we preprocess to make the glob pattern sets a bit simpler\n    // and deduped.  There are some perf-killing patterns that can cause\n    // problems with a glob walk, but we can simplify them down a bit.\n    const rawGlobParts = this.globSet.map(s => this.slashSplit(s))\n    this.globParts = this.preprocess(rawGlobParts)\n    this.debug(this.pattern, this.globParts)\n\n    // glob --> regexps\n    let set = this.globParts.map((s, _, __) => {\n      if (this.isWindows && this.windowsNoMagicRoot) {\n        // check if it's a drive or unc path.\n        const isUNC =\n          s[0] === '' &&\n          s[1] === '' &&\n          (s[2] === '?' || !globMagic.test(s[2])) &&\n          !globMagic.test(s[3])\n        const isDrive = /^[a-z]:/i.test(s[0])\n        if (isUNC) {\n          return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]\n        } else if (isDrive) {\n          return [s[0], ...s.slice(1).map(ss => this.parse(ss))]\n        }\n      }\n      return s.map(ss => this.parse(ss))\n    })\n\n    this.debug(this.pattern, set)\n\n    // filter out everything that didn't compile properly.\n    this.set = set.filter(\n      s => s.indexOf(false) === -1\n    ) as ParseReturnFiltered[][]\n\n    // do not treat the ? in UNC paths as magic\n    if (this.isWindows) {\n      for (let i = 0; i < this.set.length; i++) {\n        const p = this.set[i]\n        if (\n          p[0] === '' &&\n          p[1] === '' &&\n          this.globParts[i][2] === '?' &&\n          typeof p[3] === 'string' &&\n          /^[a-z]:$/i.test(p[3])\n        ) {\n          p[2] = '?'\n        }\n      }\n    }\n\n    this.debug(this.pattern, this.set)\n  }\n\n  // various transforms to equivalent pattern sets that are\n  // faster to process in a filesystem walk.  The goal is to\n  // eliminate what we can, and push all ** patterns as far\n  // to the right as possible, even if it increases the number\n  // of patterns that we have to process.\n  preprocess(globParts: string[][]) {\n    // if we're not in globstar mode, then turn all ** into *\n    if (this.options.noglobstar) {\n      for (let i = 0; i < globParts.length; i++) {\n        for (let j = 0; j < globParts[i].length; j++) {\n          if (globParts[i][j] === '**') {\n            globParts[i][j] = '*'\n          }\n        }\n      }\n    }\n\n    const { optimizationLevel = 1 } = this.options\n\n    if (optimizationLevel >= 2) {\n      // aggressive optimization for the purpose of fs walking\n      globParts = this.firstPhasePreProcess(globParts)\n      globParts = this.secondPhasePreProcess(globParts)\n    } else if (optimizationLevel >= 1) {\n      // just basic optimizations to remove some .. parts\n      globParts = this.levelOneOptimize(globParts)\n    } else {\n      // just collapse multiple ** portions into one\n      globParts = this.adjascentGlobstarOptimize(globParts)\n    }\n\n    return globParts\n  }\n\n  // just get rid of adjascent ** portions\n  adjascentGlobstarOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      let gs: number = -1\n      while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n        let i = gs\n        while (parts[i + 1] === '**') {\n          i++\n        }\n        if (i !== gs) {\n          parts.splice(gs, i - gs)\n        }\n      }\n      return parts\n    })\n  }\n\n  // get rid of adjascent ** and resolve .. portions\n  levelOneOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      parts = parts.reduce((set: string[], part) => {\n        const prev = set[set.length - 1]\n        if (part === '**' && prev === '**') {\n          return set\n        }\n        if (part === '..') {\n          if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n            set.pop()\n            return set\n          }\n        }\n        set.push(part)\n        return set\n      }, [])\n      return parts.length === 0 ? [''] : parts\n    })\n  }\n\n  levelTwoFileOptimize(parts: string | string[]) {\n    if (!Array.isArray(parts)) {\n      parts = this.slashSplit(parts)\n    }\n    let didSomething: boolean = false\n    do {\n      didSomething = false\n      // <pre>/<e>/<rest> -> <pre>/<rest>\n      if (!this.preserveMultipleSlashes) {\n        for (let i = 1; i < parts.length - 1; i++) {\n          const p = parts[i]\n          // don't squeeze out UNC patterns\n          if (i === 1 && p === '' && parts[0] === '') continue\n          if (p === '.' || p === '') {\n            didSomething = true\n            parts.splice(i, 1)\n            i--\n          }\n        }\n        if (\n          parts[0] === '.' &&\n          parts.length === 2 &&\n          (parts[1] === '.' || parts[1] === '')\n        ) {\n          didSomething = true\n          parts.pop()\n        }\n      }\n\n      // <pre>/<p>/../<rest> -> <pre>/<rest>\n      let dd: number = 0\n      while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n        const p = parts[dd - 1]\n        if (p && p !== '.' && p !== '..' && p !== '**') {\n          didSomething = true\n          parts.splice(dd - 1, 2)\n          dd -= 2\n        }\n      }\n    } while (didSomething)\n    return parts.length === 0 ? [''] : parts\n  }\n\n  // First phase: single-pattern processing\n  // <pre> is 1 or more portions\n  // <rest> is 1 or more portions\n  // <p> is any portion other than ., .., '', or **\n  // <e> is . or ''\n  //\n  // **/.. is *brutal* for filesystem walking performance, because\n  // it effectively resets the recursive walk each time it occurs,\n  // and ** cannot be reduced out by a .. pattern part like a regexp\n  // or most strings (other than .., ., and '') can be.\n  //\n  // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>}\n  // <pre>/<e>/<rest> -> <pre>/<rest>\n  // <pre>/<p>/../<rest> -> <pre>/<rest>\n  // **/**/<rest> -> **/<rest>\n  //\n  // **/*/<rest> -> */**/<rest> <== not valid because ** doesn't follow\n  // this WOULD be allowed if ** did follow symlinks, or * didn't\n  firstPhasePreProcess(globParts: string[][]) {\n    let didSomething = false\n    do {\n      didSomething = false\n      // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>}\n      for (let parts of globParts) {\n        let gs: number = -1\n        while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n          let gss: number = gs\n          while (parts[gss + 1] === '**') {\n            // <pre>/**/**/<rest> -> <pre>/**/<rest>\n            gss++\n          }\n          // eg, if gs is 2 and gss is 4, that means we have 3 **\n          // parts, and can remove 2 of them.\n          if (gss > gs) {\n            parts.splice(gs + 1, gss - gs)\n          }\n\n          let next = parts[gs + 1]\n          const p = parts[gs + 2]\n          const p2 = parts[gs + 3]\n          if (next !== '..') continue\n          if (\n            !p ||\n            p === '.' ||\n            p === '..' ||\n            !p2 ||\n            p2 === '.' ||\n            p2 === '..'\n          ) {\n            continue\n          }\n          didSomething = true\n          // edit parts in place, and push the new one\n          parts.splice(gs, 1)\n          const other = parts.slice(0)\n          other[gs] = '**'\n          globParts.push(other)\n          gs--\n        }\n\n        // <pre>/<e>/<rest> -> <pre>/<rest>\n        if (!this.preserveMultipleSlashes) {\n          for (let i = 1; i < parts.length - 1; i++) {\n            const p = parts[i]\n            // don't squeeze out UNC patterns\n            if (i === 1 && p === '' && parts[0] === '') continue\n            if (p === '.' || p === '') {\n              didSomething = true\n              parts.splice(i, 1)\n              i--\n            }\n          }\n          if (\n            parts[0] === '.' &&\n            parts.length === 2 &&\n            (parts[1] === '.' || parts[1] === '')\n          ) {\n            didSomething = true\n            parts.pop()\n          }\n        }\n\n        // <pre>/<p>/../<rest> -> <pre>/<rest>\n        let dd: number = 0\n        while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n          const p = parts[dd - 1]\n          if (p && p !== '.' && p !== '..' && p !== '**') {\n            didSomething = true\n            const needDot = dd === 1 && parts[dd + 1] === '**'\n            const splin = needDot ? ['.'] : []\n            parts.splice(dd - 1, 2, ...splin)\n            if (parts.length === 0) parts.push('')\n            dd -= 2\n          }\n        }\n      }\n    } while (didSomething)\n\n    return globParts\n  }\n\n  // second phase: multi-pattern dedupes\n  // {<pre>/*/<rest>,<pre>/<p>/<rest>} -> <pre>/*/<rest>\n  // {<pre>/<rest>,<pre>/<rest>} -> <pre>/<rest>\n  // {<pre>/**/<rest>,<pre>/<rest>} -> <pre>/**/<rest>\n  //\n  // {<pre>/**/<rest>,<pre>/**/<p>/<rest>} -> <pre>/**/<rest>\n  // ^-- not valid because ** doens't follow symlinks\n  secondPhasePreProcess(globParts: string[][]): string[][] {\n    for (let i = 0; i < globParts.length - 1; i++) {\n      for (let j = i + 1; j < globParts.length; j++) {\n        const matched = this.partsMatch(\n          globParts[i],\n          globParts[j],\n          !this.preserveMultipleSlashes\n        )\n        if (matched) {\n          globParts[i] = []\n          globParts[j] = matched\n          break\n        }\n      }\n    }\n    return globParts.filter(gs => gs.length)\n  }\n\n  partsMatch(\n    a: string[],\n    b: string[],\n    emptyGSMatch: boolean = false\n  ): false | string[] {\n    let ai = 0\n    let bi = 0\n    let result: string[] = []\n    let which: string = ''\n    while (ai < a.length && bi < b.length) {\n      if (a[ai] === b[bi]) {\n        result.push(which === 'b' ? b[bi] : a[ai])\n        ai++\n        bi++\n      } else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n        result.push(a[ai])\n        ai++\n      } else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n        result.push(b[bi])\n        bi++\n      } else if (\n        a[ai] === '*' &&\n        b[bi] &&\n        (this.options.dot || !b[bi].startsWith('.')) &&\n        b[bi] !== '**'\n      ) {\n        if (which === 'b') return false\n        which = 'a'\n        result.push(a[ai])\n        ai++\n        bi++\n      } else if (\n        b[bi] === '*' &&\n        a[ai] &&\n        (this.options.dot || !a[ai].startsWith('.')) &&\n        a[ai] !== '**'\n      ) {\n        if (which === 'a') return false\n        which = 'b'\n        result.push(b[bi])\n        ai++\n        bi++\n      } else {\n        return false\n      }\n    }\n    // if we fall out of the loop, it means they two are identical\n    // as long as their lengths match\n    return a.length === b.length && result\n  }\n\n  parseNegate() {\n    if (this.nonegate) return\n\n    const pattern = this.pattern\n    let negate = false\n    let negateOffset = 0\n\n    for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n      negate = !negate\n      negateOffset++\n    }\n\n    if (negateOffset) this.pattern = pattern.slice(negateOffset)\n    this.negate = negate\n  }\n\n  // set partial to true to test if, for example,\n  // \"/a/b\" matches the start of \"/*/b/*/d\"\n  // Partial means, if you run out of file before you run\n  // out of pattern, then that's fine, as long as all\n  // the parts match.\n  matchOne(\n    file: string[],\n    pattern: ParseReturn[],\n    partial: boolean = false\n  ) {\n    let fileStartIndex = 0\n    let patternStartIndex = 0\n\n    // UNC paths like //?/X:/... can match X:/... and vice versa\n    // Drive letters in absolute drive or unc paths are always compared\n    // case-insensitively.\n    if (this.isWindows) {\n      const fileDrive =\n        typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0])\n      const fileUNC =\n        !fileDrive &&\n        file[0] === '' &&\n        file[1] === '' &&\n        file[2] === '?' &&\n        /^[a-z]:$/i.test(file[3])\n\n      const patternDrive =\n        typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0])\n      const patternUNC =\n        !patternDrive &&\n        pattern[0] === '' &&\n        pattern[1] === '' &&\n        pattern[2] === '?' &&\n        typeof pattern[3] === 'string' &&\n        /^[a-z]:$/i.test(pattern[3])\n\n      const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined\n      const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined\n      if (typeof fdi === 'number' && typeof pdi === 'number') {\n        const [fd, pd]: [string, string] = [\n          file[fdi],\n          pattern[pdi] as string,\n        ]\n        if (fd.toLowerCase() === pd.toLowerCase()) {\n          pattern[pdi] = fd\n          patternStartIndex = pdi\n          fileStartIndex = fdi\n        }\n      }\n    }\n\n    // resolve and reduce . and .. portions in the file as well.\n    // dont' need to do the second phase, because it's only one string[]\n    const { optimizationLevel = 1 } = this.options\n    if (optimizationLevel >= 2) {\n      file = this.levelTwoFileOptimize(file)\n    }\n\n    if (pattern.includes(GLOBSTAR)) {\n      return this.#matchGlobstar(\n        file, pattern, partial, fileStartIndex, patternStartIndex\n      )\n    }\n\n    return this.#matchOne(\n      file, pattern, partial, fileStartIndex, patternStartIndex\n    )\n  }\n\n  #matchGlobstar(\n    file: string[],\n    pattern: ParseReturn[],\n    partial: boolean,\n    fileIndex: number,\n    patternIndex: number\n  ) {\n    const firstgs = pattern.indexOf(GLOBSTAR, patternIndex)\n    const lastgs = pattern.lastIndexOf(GLOBSTAR)\n\n    const [head, body, tail] = partial ? [\n      pattern.slice(patternIndex, firstgs),\n      pattern.slice(firstgs + 1),\n      [],\n    ] : [\n      pattern.slice(patternIndex, firstgs),\n      pattern.slice(firstgs + 1, lastgs),\n      pattern.slice(lastgs + 1),\n    ]\n\n    if (head.length) {\n      const fileHead = file.slice(fileIndex, fileIndex + head.length)\n      if (!this.#matchOne(fileHead, head, partial, 0, 0)) return false\n      fileIndex += head.length\n    }\n\n    let fileTailMatch: number = 0\n    if (tail.length) {\n      if (tail.length + fileIndex > file.length) return false\n      let tailStart = file.length - tail.length\n      if (this.#matchOne(file, tail, partial, tailStart, 0)) {\n        fileTailMatch = tail.length\n      } else {\n        if (\n          file[file.length - 1] !== '' ||\n          fileIndex + tail.length === file.length\n        ) {\n          return false\n        }\n        tailStart--\n        if (!this.#matchOne(file, tail, partial, tailStart, 0)) return false\n        fileTailMatch = tail.length + 1\n      }\n    }\n\n    if (!body.length) {\n      let sawSome = !!fileTailMatch\n      for (let i = fileIndex; i < file.length - fileTailMatch; i++) {\n        const f = String(file[i])\n        sawSome = true\n        if (\n          f === '.' || f === '..' ||\n          (!this.options.dot && f.startsWith('.'))\n        ) {\n          return false\n        }\n      }\n      return partial || sawSome\n    }\n\n    const bodySegments: [ParseReturn[], number][] = [[[], 0]]\n    let currentBody: [ParseReturn[], number] = bodySegments[0]\n    let nonGsParts = 0\n    const nonGsPartsSums: number[] = [0]\n    for (const b of body) {\n      if (b === GLOBSTAR) {\n        nonGsPartsSums.push(nonGsParts)\n        currentBody = [[], 0]\n        bodySegments.push(currentBody)\n      } else {\n        currentBody[0].push(b)\n        nonGsParts++\n      }\n    }\n    let i = bodySegments.length - 1\n    const fileLength = file.length - fileTailMatch\n    for (const b of bodySegments) {\n      b[1] = fileLength - ((nonGsPartsSums[i--] as number) + b[0].length)\n    }\n\n    return !!this.#matchGlobStarBodySections(\n      file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch\n    )\n  }\n\n  #matchGlobStarBodySections(\n    file: string[],\n    bodySegments: [ParseReturn[], number][],\n    fileIndex: number,\n    bodyIndex: number,\n    partial: boolean,\n    globStarDepth: number,\n    sawTail: boolean\n  ): boolean | null {\n    const bs = bodySegments[bodyIndex]\n    if (!bs) {\n      for (let i = fileIndex; i < file.length; i++) {\n        sawTail = true\n        const f = file[i]\n        if (\n          f === '.' || f === '..' ||\n          (!this.options.dot && f.startsWith('.'))\n        ) {\n          return false\n        }\n      }\n      return sawTail\n    }\n\n    const [body, after] = bs\n    while (fileIndex <= after) {\n      const m = this.#matchOne(\n        file.slice(0, fileIndex + body.length),\n        body, partial, fileIndex, 0\n      )\n      if (m && globStarDepth < this.maxGlobstarRecursion) {\n        const sub = this.#matchGlobStarBodySections(\n          file, bodySegments, fileIndex + body.length,\n          bodyIndex + 1, partial, globStarDepth + 1, sawTail\n        )\n        if (sub !== false) return sub\n      }\n      const f = file[fileIndex]\n      if (\n        f === '.' || f === '..' ||\n        (!this.options.dot && f.startsWith('.'))\n      ) {\n        return false\n      }\n      fileIndex++\n    }\n    return partial || null\n  }\n\n  #matchOne(\n    file: string[],\n    pattern: ParseReturn[],\n    partial: boolean,\n    fileIndex: number,\n    patternIndex: number\n  ) {\n    let fi: number\n    let pi: number\n    let pl: number\n    let fl: number\n    for (\n      fi = fileIndex, pi = patternIndex,\n        fl = file.length, pl = pattern.length;\n      fi < fl && pi < pl;\n      fi++, pi++\n    ) {\n      this.debug('matchOne loop')\n      let p = pattern[pi]\n      let f = file[fi]\n\n      this.debug(pattern, p, f)\n\n      /* c8 ignore start */\n      if (p === false || p === GLOBSTAR) return false\n      /* c8 ignore stop */\n\n      let hit: boolean\n      if (typeof p === 'string') {\n        hit = f === p\n        this.debug('string match', p, f, hit)\n      } else {\n        hit = p.test(f)\n        this.debug('pattern match', p, f, hit)\n      }\n\n      if (!hit) return false\n    }\n\n    if (fi === fl && pi === pl) {\n      return true\n    } else if (fi === fl) {\n      return partial\n    } else if (pi === pl) {\n      return fi === fl - 1 && file[fi] === ''\n      /* c8 ignore start */\n    } else {\n      throw new Error('wtf?')\n    }\n    /* c8 ignore stop */\n  }\n\n  braceExpand(): string[] {\n    return braceExpand(this.pattern, this.options)\n  }\n\n  parse(pattern: string): ParseReturn {\n    assertValidPattern(pattern)\n\n    const options = this.options\n\n    // shortcuts\n    if (pattern === '**') return GLOBSTAR\n    if (pattern === '') return ''\n\n    // far and away, the most common glob pattern parts are\n    // *, *.*, and *.<ext>  Add a fast check method for those.\n    let m: RegExpMatchArray | null\n    let fastTest: null | ((f: string) => boolean) = null\n    if ((m = pattern.match(starRE))) {\n      fastTest = options.dot ? starTestDot : starTest\n    } else if ((m = pattern.match(starDotExtRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? starDotExtTestNocaseDot\n            : starDotExtTestNocase\n          : options.dot\n          ? starDotExtTestDot\n          : starDotExtTest\n      )(m[1])\n    } else if ((m = pattern.match(qmarksRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? qmarksTestNocaseDot\n            : qmarksTestNocase\n          : options.dot\n          ? qmarksTestDot\n          : qmarksTest\n      )(m)\n    } else if ((m = pattern.match(starDotStarRE))) {\n      fastTest = options.dot ? starDotStarTestDot : starDotStarTest\n    } else if ((m = pattern.match(dotStarRE))) {\n      fastTest = dotStarTest\n    }\n\n    const re = AST.fromGlob(pattern, this.options).toMMPattern()\n    if (fastTest && typeof re === 'object') {\n      // Avoids overriding in frozen environments\n      Reflect.defineProperty(re, 'test', { value: fastTest })\n    }\n    return re\n  }\n\n  makeRe() {\n    if (this.regexp || this.regexp === false) return this.regexp\n\n    // at this point, this.set is a 2d array of partial\n    // pattern strings, or \"**\".\n    //\n    // It's better to use .match().  This function shouldn't\n    // be used, really, but it's pretty convenient sometimes,\n    // when you just want to work with a regex.\n    const set = this.set\n\n    if (!set.length) {\n      this.regexp = false\n      return this.regexp\n    }\n    const options = this.options\n\n    const twoStar = options.noglobstar\n      ? star\n      : options.dot\n      ? twoStarDot\n      : twoStarNoDot\n    const flags = new Set(options.nocase ? ['i'] : [])\n\n    // regexpify non-globstar patterns\n    // if ** is only item, then we just do one twoStar\n    // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n    // if ** is last, append (\\/twoStar|) to previous\n    // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n    // then filter out GLOBSTAR symbols\n    let re = set\n      .map(pattern => {\n        const pp: (string | typeof GLOBSTAR)[] = pattern.map(p => {\n          if (p instanceof RegExp) {\n            for (const f of p.flags.split('')) flags.add(f)\n          }\n          return typeof p === 'string'\n            ? regExpEscape(p)\n            : p === GLOBSTAR\n            ? GLOBSTAR\n            : p._src\n        }) as (string | typeof GLOBSTAR)[]\n        pp.forEach((p, i) => {\n          const next = pp[i + 1]\n          const prev = pp[i - 1]\n          if (p !== GLOBSTAR || prev === GLOBSTAR) {\n            return\n          }\n          if (prev === undefined) {\n            if (next !== undefined && next !== GLOBSTAR) {\n              pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next\n            } else {\n              pp[i] = twoStar\n            }\n          } else if (next === undefined) {\n            pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?'\n          } else if (next !== GLOBSTAR) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next\n            pp[i + 1] = GLOBSTAR\n          }\n        })\n        return pp.filter(p => p !== GLOBSTAR).join('/')\n      })\n      .join('|')\n\n    // need to wrap in parens if we had more than one thing with |,\n    // otherwise only the first will be anchored to ^ and the last to $\n    const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']\n    // must match entire pattern\n    // ending in a * or ** will make it less strict.\n    re = '^' + open + re + close + '$'\n\n    // can match anything, as long as it's not this.\n    if (this.negate) re = '^(?!' + re + ').+$'\n\n    try {\n      this.regexp = new RegExp(re, [...flags].join(''))\n      /* c8 ignore start */\n    } catch (ex) {\n      // should be impossible\n      this.regexp = false\n    }\n    /* c8 ignore stop */\n    return this.regexp\n  }\n\n  slashSplit(p: string) {\n    // if p starts with // on windows, we preserve that\n    // so that UNC paths aren't broken.  Otherwise, any number of\n    // / characters are coalesced into one, unless\n    // preserveMultipleSlashes is set to true.\n    if (this.preserveMultipleSlashes) {\n      return p.split('/')\n    } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n      // add an extra '' for the one we lose\n      return ['', ...p.split(/\\/+/)]\n    } else {\n      return p.split(/\\/+/)\n    }\n  }\n\n  match(f: string, partial = this.partial) {\n    this.debug('match', f, this.pattern)\n    // short-circuit in the case of busted things.\n    // comments, etc.\n    if (this.comment) {\n      return false\n    }\n    if (this.empty) {\n      return f === ''\n    }\n\n    if (f === '/' && partial) {\n      return true\n    }\n\n    const options = this.options\n\n    // windows: need to use /, not \\\n    if (this.isWindows) {\n      f = f.split('\\\\').join('/')\n    }\n\n    // treat the test path as a set of pathparts.\n    const ff = this.slashSplit(f)\n    this.debug(this.pattern, 'split', ff)\n\n    // just ONE of the pattern sets in this.set needs to match\n    // in order for it to be valid.  If negating, then just one\n    // match means that we have failed.\n    // Either way, return on the first hit.\n\n    const set = this.set\n    this.debug(this.pattern, 'set', set)\n\n    // Find the basename of the path by looking for the last non-empty segment\n    let filename: string = ff[ff.length - 1]\n    if (!filename) {\n      for (let i = ff.length - 2; !filename && i >= 0; i--) {\n        filename = ff[i]\n      }\n    }\n\n    for (let i = 0; i < set.length; i++) {\n      const pattern = set[i]\n      let file = ff\n      if (options.matchBase && pattern.length === 1) {\n        file = [filename]\n      }\n      const hit = this.matchOne(file, pattern, partial)\n      if (hit) {\n        if (options.flipNegate) {\n          return true\n        }\n        return !this.negate\n      }\n    }\n\n    // didn't get any hits.  this is success if it's a negative\n    // pattern, failure otherwise.\n    if (options.flipNegate) {\n      return false\n    }\n    return this.negate\n  }\n\n  static defaults(def: MinimatchOptions) {\n    return minimatch.defaults(def).Minimatch\n  }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js'\nexport { escape } from './escape.js'\nexport { unescape } from './unescape.js'\n/* c8 ignore stop */\nminimatch.AST = AST\nminimatch.Minimatch = Minimatch\nminimatch.escape = escape\nminimatch.unescape = unescape\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js":{"lineLengths":[13,62,36,37,41,38,47,5,46,51,5,2,48,48],"data":{"version":3,"file":"assert-valid-pattern.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/src/assert-valid-pattern.ts"],"names":[],"mappings":";;;AAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;AAC7B,MAAM,kBAAkB,GAA2B,CACxD,OAAY,EACe,EAAE;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC,CAAA;AAVY,QAAA,kBAAkB,sBAU9B","sourcesContent":["const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n  pattern: any\n): asserts pattern is string => {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('invalid pattern')\n  }\n\n  if (pattern.length > MAX_PATTERN_LENGTH) {\n    throw new TypeError('pattern is too long')\n  }\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/ast.js":{"lineLengths":[13,30,7,62,21,65,47,49,42,50,29,17,22,17,32,22,3,38,17,17,22,3,32,22,22,22,32,32,3,26,33,45,81,45,3,65,64,42,71,53,29,71,69,69,44,58,38,46,74,32,21,32,26,74,38,33,73,59,11,9,10,14,19,16,12,17,10,24,13,14,54,43,22,45,25,42,17,34,30,62,76,65,52,34,74,5,20,29,41,34,28,38,38,25,37,47,9,80,30,5,31,16,41,34,25,79,9,14,36,83,9,5,17,29,32,56,29,24,28,48,24,32,14,40,31,25,81,22,31,24,89,50,45,55,76,25,44,50,21,17,23,31,13,9,20,5,20,32,25,25,33,84,54,13,32,32,9,5,14,38,84,63,41,28,27,35,74,25,9,19,5,15,32,24,58,37,25,36,24,81,31,53,35,57,29,13,9,20,5,13,32,24,39,24,35,25,23,41,50,29,65,28,44,5,18,37,28,12,40,5,19,44,38,24,9,17,5,52,54,29,28,28,29,32,65,24,25,36,42,75,42,45,41,29,29,17,30,47,53,44,25,21,80,40,21,29,29,17,37,35,35,37,29,29,17,47,39,44,41,32,34,29,47,69,34,29,17,25,13,26,21,9,48,31,24,37,25,21,32,38,71,38,41,37,25,25,13,26,43,49,40,21,17,76,36,17,25,25,13,33,31,31,33,25,25,13,49,40,71,72,32,28,69,31,25,44,31,72,25,13,28,31,25,33,41,25,13,28,60,41,17,31,25,41,25,13,21,9,29,74,41,24,34,46,17,5,31,59,5,41,21,40,34,40,33,25,9,35,64,25,9,48,5,44,49,5,35,35,53,30,23,34,5,26,35,51,36,38,33,9,35,5,22,42,29,5,22,21,40,34,40,33,39,25,9,35,64,25,9,43,5,19,42,35,35,42,16,25,28,32,38,38,33,9,23,35,31,5,16,34,42,42,33,13,9,14,31,29,16,28,62,45,48,37,48,41,46,25,62,41,55,25,53,41,43,25,21,17,49,9,35,5,44,53,50,19,5,72,21,19,40,29,32,44,28,37,66,71,75,46,36,29,36,49,59,24,24,9,77,60,21,24,11,5,19,29,5,73,73,77,74,73,76,72,62,6,43,32,60,43,50,14,32,16,6,71,28,53,34,66,43,50,14,52,21,6,78,79,79,19,6,76,64,69,32,66,49,56,6,75,68,6,74,41,6,78,79,6,22,51,48,75,6,81,78,74,42,6,77,72,46,6,31,74,73,75,30,52,34,28,29,9,34,59,35,27,70,63,49,60,51,26,14,26,27,33,57,83,67,84,67,100,42,52,78,44,43,79,58,74,80,76,81,83,68,86,92,21,17,13,73,25,31,41,45,34,13,44,20,22,49,52,28,14,9,73,73,44,64,31,62,44,75,79,39,38,28,28,27,37,83,9,43,72,16,40,38,32,9,29,56,9,62,23,50,77,9,14,43,67,26,81,30,27,35,25,39,30,61,33,65,38,50,41,9,16,18,46,48,24,10,5,25,26,23,59,33,40,64,13,32,77,68,47,22,10,66,23,5,56,29,20,26,67,27,47,37,27,33,58,31,25,13,29,44,33,17,22,36,17,25,13,28,106,31,30,47,38,49,35,29,17,13,28,27,29,30,74,32,25,13,18,31,13,28,28,32,25,13,34,9,74,5,1,18,9,31],"data":{"version":3,"file":"ast.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/src/ast.ts"],"names":[],"mappings":"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","sourcesContent":["// parse a single path portion\n\nimport { parseClass } from './brace-expressions.js'\nimport { MinimatchOptions, MMRegExp } from './index.js'\nimport { unescape } from './unescape.js'\n\n// classes [] are handled by the parseClass method\n// for positive extglobs, we sub-parse the contents, and combine,\n// with the appropriate regexp close.\n// for negative extglobs, we sub-parse the contents, but then\n// have to include the rest of the pattern, then the parent, etc.,\n// as the thing that cannot be because RegExp negative lookaheads\n// are different from globs.\n//\n// So for example:\n// a@(i|w!(x|y)z|j)b => ^a(i|w((!?(x|y)zb).*)z|j)b$\n//   1   2 3   4 5 6      1   2    3   46      5 6\n//\n// Assembling the extglob requires not just the negated patterns themselves,\n// but also anything following the negative patterns up to the boundary\n// of the current pattern, plus anything following in the parent pattern.\n//\n//\n// So, first, we parse the string into an AST of extglobs, without turning\n// anything into regexps yet.\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y']}, 'z'], ['j']]}, 'b']\n//\n// Then, for all the negative extglobs, we append whatever comes after in\n// each parent as their tail\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y'], 'z', 'b'}, 'z'], ['j']]}, 'b']\n//\n// Lastly, we turn each of these pieces into a regexp, and join\n//\n//                                 v----- .* because there's more following,\n//                                 v    v  otherwise, .+ because it must be\n//                                 v    v  *something* there.\n// ['^a', {@ ['i', 'w(?:(!?(?:x|y).*zb$).*)z', 'j' ]}, 'b$']\n//   copy what follows into here--^^^^^\n// ['^a', '(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)', 'b$']\n// ['^a(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)b$']\n\nexport type ExtglobType = '!' | '?' | '+' | '*' | '@'\nconst types = new Set<ExtglobType>(['!', '?', '+', '*', '@'])\nconst isExtglobType = (c: string | null): c is ExtglobType =>\n  types.has(c as ExtglobType)\nconst isExtglobAST = (c: AST): c is AST & { type: ExtglobType } =>\n  isExtglobType(c.type)\n\nconst adoptionMap = new Map<ExtglobType, ExtglobType[]>([\n  ['!', ['@']],\n  ['?', ['?', '@']],\n  ['@', ['@']],\n  ['*', ['*', '+', '?', '@']],\n  ['+', ['+', '@']],\n])\n\nconst adoptionWithSpaceMap = new Map<ExtglobType, ExtglobType[]>([\n  ['!', ['?']],\n  ['@', ['?']],\n  ['+', ['?', '*']],\n])\n\nconst adoptionAnyMap = new Map<ExtglobType, ExtglobType[]>([\n  ['!', ['?', '@']],\n  ['?', ['?', '@']],\n  ['@', ['?', '@']],\n  ['*', ['*', '+', '?', '@']],\n  ['+', ['+', '@', '?', '*']],\n])\n\nconst usurpMap = new Map<ExtglobType, Map<ExtglobType | null, ExtglobType | null>>([\n  ['!', new Map([['!', '@']])],\n  ['?', new Map([['*', '*'], ['+', '*']])],\n  ['@', new Map([['!', '!'], ['?', '?'], ['@', '@'], ['*', '*'], ['+', '+']])],\n  ['+', new Map([['?', '*'], ['*', '*']])],\n])\n\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))'\nconst startNoDot = '(?!\\\\.)'\n\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.'])\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.'])\nconst reSpecials = new Set('().*{}+?[]^$\\\\!')\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// any single thing other than /\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?'\n\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\n\nexport class AST {\n  type: ExtglobType | null\n  readonly #root: AST\n\n  #hasMagic?: boolean\n  #uflag: boolean = false\n  #parts: (string | AST)[] = []\n  #parent?: AST\n  #parentIndex: number\n  #negs: AST[]\n  #filledNegs: boolean = false\n  #options: MinimatchOptions\n  #toString?: string\n  // set to true if it's an extglob with no children\n  // (which really means one child of '')\n  #emptyExt: boolean = false\n\n  constructor(\n    type: ExtglobType | null,\n    parent?: AST,\n    options: MinimatchOptions = {}\n  ) {\n    this.type = type\n    // extglobs are inherently magical\n    if (type) this.#hasMagic = true\n    this.#parent = parent\n    this.#root = this.#parent ? this.#parent.#root : this\n    this.#options = this.#root === this ? options : this.#root.#options\n    this.#negs = this.#root === this ? [] : this.#root.#negs\n    if (type === '!' && !this.#root.#filledNegs) this.#negs.push(this)\n    this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0\n  }\n\n  get hasMagic(): boolean | undefined {\n    /* c8 ignore start */\n    if (this.#hasMagic !== undefined) return this.#hasMagic\n    /* c8 ignore stop */\n    for (const p of this.#parts) {\n      if (typeof p === 'string') continue\n      if (p.type || p.hasMagic) return (this.#hasMagic = true)\n    }\n    // note: will be undefined until we generate the regexp src and find out\n    return this.#hasMagic\n  }\n\n  // reconstructs the pattern\n  toString(): string {\n    if (this.#toString !== undefined) return this.#toString\n    if (!this.type) {\n      return (this.#toString = this.#parts.map(p => String(p)).join(''))\n    } else {\n      return (this.#toString =\n        this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')')\n    }\n  }\n\n  #fillNegs() {\n    /* c8 ignore start */\n    if (this !== this.#root) throw new Error('should only call on root')\n    if (this.#filledNegs) return this\n    /* c8 ignore stop */\n\n    // call toString() once to fill this out\n    this.toString()\n    this.#filledNegs = true\n    let n: AST | undefined\n    while ((n = this.#negs.pop())) {\n      if (n.type !== '!') continue\n      // walk up the tree, appending everthing that comes AFTER parentIndex\n      let p: AST | undefined = n\n      let pp = p.#parent\n      while (pp) {\n        for (\n          let i = p.#parentIndex + 1;\n          !pp.type && i < pp.#parts.length;\n          i++\n        ) {\n          for (const part of n.#parts) {\n            /* c8 ignore start */\n            if (typeof part === 'string') {\n              throw new Error('string part in extglob AST??')\n            }\n            /* c8 ignore stop */\n            part.copyIn(pp.#parts[i])\n          }\n        }\n        p = pp\n        pp = p.#parent\n      }\n    }\n    return this\n  }\n\n  push(...parts: (string | AST)[]) {\n    for (const p of parts) {\n      if (p === '') continue\n      /* c8 ignore start */\n      if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n        throw new Error('invalid part: ' + p)\n      }\n      /* c8 ignore stop */\n      this.#parts.push(p)\n    }\n  }\n\n  toJSON() {\n    const ret: any[] =\n      this.type === null\n        ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n        : [this.type, ...this.#parts.map(p => (p as AST).toJSON())]\n    if (this.isStart() && !this.type) ret.unshift([])\n    if (\n      this.isEnd() &&\n      (this === this.#root ||\n        (this.#root.#filledNegs && this.#parent?.type === '!'))\n    ) {\n      ret.push({})\n    }\n    return ret\n  }\n\n  isStart(): boolean {\n    if (this.#root === this) return true\n    // if (this.type) return !!this.#parent?.isStart()\n    if (!this.#parent?.isStart()) return false\n    if (this.#parentIndex === 0) return true\n    // if everything AHEAD of this is a negation, then it's still the \"start\"\n    const p = this.#parent\n    for (let i = 0; i < this.#parentIndex; i++) {\n      const pp = p.#parts[i]\n      if (!(pp instanceof AST && pp.type === '!')) {\n        return false\n      }\n    }\n    return true\n  }\n\n  isEnd(): boolean {\n    if (this.#root === this) return true\n    if (this.#parent?.type === '!') return true\n    if (!this.#parent?.isEnd()) return false\n    if (!this.type) return this.#parent?.isEnd()\n    // if not root, it'll always have a parent\n    /* c8 ignore start */\n    const pl = this.#parent ? this.#parent.#parts.length : 0\n    /* c8 ignore stop */\n    return this.#parentIndex === pl - 1\n  }\n\n  copyIn(part: AST | string) {\n    if (typeof part === 'string') this.push(part)\n    else this.push(part.clone(this))\n  }\n\n  clone(parent: AST) {\n    const c = new AST(this.type, parent)\n    for (const p of this.#parts) {\n      c.copyIn(p)\n    }\n    return c\n  }\n\n  static #parseAST(\n    str: string,\n    ast: AST,\n    pos: number,\n    opt: MinimatchOptions,\n    extDepth: number\n  ): number {\n    const maxDepth = opt.maxExtglobRecursion ?? 2\n    let escaping = false\n    let inBrace = false\n    let braceStart = -1\n    let braceNeg = false\n    if (ast.type === null) {\n      // outside of a extglob, append until we find a start\n      let i = pos\n      let acc = ''\n      while (i < str.length) {\n        const c = str.charAt(i++)\n        // still accumulate escapes at this point, but we do ignore\n        // starts that are escaped\n        if (escaping || c === '\\\\') {\n          escaping = !escaping\n          acc += c\n          continue\n        }\n\n        if (inBrace) {\n          if (i === braceStart + 1) {\n            if (c === '^' || c === '!') {\n              braceNeg = true\n            }\n          } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n            inBrace = false\n          }\n          acc += c\n          continue\n        } else if (c === '[') {\n          inBrace = true\n          braceStart = i\n          braceNeg = false\n          acc += c\n          continue\n        }\n\n        const doRecurse =\n          !opt.noext &&\n          isExtglobType(c) &&\n          str.charAt(i) === '(' &&\n          extDepth <= maxDepth\n        if (doRecurse) {\n          ast.push(acc)\n          acc = ''\n          const ext = new AST(c, ast)\n          i = AST.#parseAST(str, ext, i, opt, extDepth + 1)\n          ast.push(ext)\n          continue\n        }\n        acc += c\n      }\n      ast.push(acc)\n      return i\n    }\n\n    // some kind of extglob, pos is at the (\n    // find the next | or )\n    let i = pos + 1\n    let part = new AST(null, ast)\n    const parts: AST[] = []\n    let acc = ''\n    while (i < str.length) {\n      const c = str.charAt(i++)\n      // still accumulate escapes at this point, but we do ignore\n      // starts that are escaped\n      if (escaping || c === '\\\\') {\n        escaping = !escaping\n        acc += c\n        continue\n      }\n\n      if (inBrace) {\n        if (i === braceStart + 1) {\n          if (c === '^' || c === '!') {\n            braceNeg = true\n          }\n        } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n          inBrace = false\n        }\n        acc += c\n        continue\n      } else if (c === '[') {\n        inBrace = true\n        braceStart = i\n        braceNeg = false\n        acc += c\n        continue\n      }\n\n      const doRecurse =\n        isExtglobType(c) &&\n        str.charAt(i) === '(' &&\n        /* c8 ignore start - the maxDepth is sufficient here */\n        (extDepth <= maxDepth || (ast && ast.#canAdoptType(c)))\n      /* c8 ignore stop */\n      if (doRecurse) {\n        const depthAdd = ast && ast.#canAdoptType(c) ? 0 : 1\n        part.push(acc)\n        acc = ''\n        const ext = new AST(c, part)\n        part.push(ext)\n        i = AST.#parseAST(str, ext, i, opt, extDepth + depthAdd)\n        continue\n      }\n      if (c === '|') {\n        part.push(acc)\n        acc = ''\n        parts.push(part)\n        part = new AST(null, ast)\n        continue\n      }\n      if (c === ')') {\n        if (acc === '' && ast.#parts.length === 0) {\n          ast.#emptyExt = true\n        }\n        part.push(acc)\n        acc = ''\n        ast.push(...parts, part)\n        return i\n      }\n      acc += c\n    }\n\n    // unfinished extglob\n    // if we got here, it was a malformed extglob! not an extglob, but\n    // maybe something else in there.\n    ast.type = null\n    ast.#hasMagic = undefined\n    ast.#parts = [str.substring(pos - 1)]\n    return i\n  }\n\n  #canAdoptWithSpace(child?: AST | string): child is AST & {\n    type: null\n    parts: [AST & { type: ExtglobType }]\n  } {\n    return this.#canAdopt(child, adoptionWithSpaceMap)\n  }\n\n  #canAdopt(\n    child?: AST | string,\n    map: Map<ExtglobType, ExtglobType[]> = adoptionMap\n  ): child is AST & {\n    type: null\n    parts: [AST & { type: ExtglobType }]\n  } {\n    if (\n      !child ||\n      typeof child !== 'object' ||\n      child.type !== null ||\n      child.#parts.length !== 1 ||\n      this.type === null\n    ) {\n      return false\n    }\n    const gc = child.#parts[0]\n    if (!gc || typeof gc !== 'object' || gc.type === null) {\n      return false\n    }\n    return (this as AST & { type: ExtglobType }).#canAdoptType(\n      gc.type,\n      map\n    )\n  }\n\n  #canAdoptType(\n    c: string,\n    map: Map<ExtglobType, ExtglobType[]> = adoptionAnyMap\n  ): c is ExtglobType {\n    return !!map.get(this.type as ExtglobType)?.includes(c as ExtglobType)\n  }\n\n  #adoptWithSpace(\n    this: AST & { type: ExtglobType },\n    child: AST & { type: null },\n    index: number\n  ) {\n    const gc = child.#parts[0] as AST & { type: ExtglobType }\n    const blank = new AST(null, gc, this.options)\n    blank.#parts.push('')\n    gc.push(blank)\n    this.#adopt(child, index)\n  }\n\n  #adopt(child: AST & { type: null }, index: number) {\n    const gc = child.#parts[0] as AST & { type: ExtglobType }\n    this.#parts.splice(index, 1, ...gc.#parts)\n    for (const p of gc.#parts) {\n      if (typeof p === 'object') p.#parent = this\n    }\n    this.#toString = undefined\n  }\n\n  #canUsurpType(c: string): boolean {\n    const m = usurpMap.get(this.type as ExtglobType)\n    return !!(m?.has(c as ExtglobType))\n  }\n\n  #canUsurp(child?: AST | string): child is AST & {\n    type: null\n    parts: [AST & { type: ExtglobType }]\n  } {\n    if (\n      !child ||\n      typeof child !== 'object' ||\n      child.type !== null ||\n      child.#parts.length !== 1 ||\n      this.type === null ||\n      this.#parts.length !== 1\n    ) {\n      return false\n    }\n    const gc = child.#parts[0]\n    if (!gc || typeof gc !== 'object' || gc.type === null) {\n      return false\n    }\n    return (this as AST & { type: ExtglobType }).#canUsurpType(gc.type)\n  }\n\n  #usurp(this: AST & { type: ExtglobType }, child: AST & { type: null }) {\n    const m = usurpMap.get(this.type as ExtglobType)\n    const gc = child.#parts[0] as AST & { type: ExtglobType }\n    const nt = m?.get(gc.type)\n    /* c8 ignore start - impossible */\n    if (!nt) return false\n    /* c8 ignore stop */\n    this.#parts = gc.#parts\n    for (const p of this.#parts) {\n      if (typeof p === 'object') p.#parent = this\n    }\n    this.type = nt\n    this.#toString = undefined\n    this.#emptyExt = false\n  }\n\n  #flatten() {\n    if (!isExtglobAST(this)) {\n      for (const p of this.#parts) {\n        if (typeof p === 'object') p.#flatten()\n      }\n    } else {\n      let iterations = 0\n      let done = false\n      do {\n        done = true\n        for (let i = 0; i < this.#parts.length; i++) {\n          const c = this.#parts[i]\n          if (typeof c === 'object') {\n            c.#flatten()\n            if (this.#canAdopt(c)) {\n              done = false\n              this.#adopt(c, i)\n            } else if (this.#canAdoptWithSpace(c)) {\n              done = false\n              this.#adoptWithSpace(c, i)\n            } else if (this.#canUsurp(c)) {\n              done = false\n              this.#usurp(c)\n            }\n          }\n        }\n      } while (!done && ++iterations < 10)\n    }\n    this.#toString = undefined\n  }\n\n  static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n    const ast = new AST(null, undefined, options)\n    AST.#parseAST(pattern, ast, 0, options, 0)\n    return ast\n  }\n\n  // returns the regular expression if there's magic, or the unescaped\n  // string if not.\n  toMMPattern(): MMRegExp | string {\n    // should only be called on root\n    /* c8 ignore start */\n    if (this !== this.#root) return this.#root.toMMPattern()\n    /* c8 ignore stop */\n    const glob = this.toString()\n    const [re, body, hasMagic, uflag] = this.toRegExpSource()\n    // if we're in nocase mode, and not nocaseMagicOnly, then we do\n    // still need a regular expression if we have to case-insensitively\n    // match capital/lowercase characters.\n    const anyMagic =\n      hasMagic ||\n      this.#hasMagic ||\n      (this.#options.nocase &&\n        !this.#options.nocaseMagicOnly &&\n        glob.toUpperCase() !== glob.toLowerCase())\n    if (!anyMagic) {\n      return body\n    }\n\n    const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '')\n    return Object.assign(new RegExp(`^${re}$`, flags), {\n      _src: re,\n      _glob: glob,\n    })\n  }\n\n  get options() {\n    return this.#options\n  }\n\n  // returns the string match, the regexp source, whether there's magic\n  // in the regexp (so a regular expression is required) and whether or\n  // not the uflag is needed for the regular expression (for posix classes)\n  // TODO: instead of injecting the start/end at this point, just return\n  // the BODY of the regexp, along with the start/end portions suitable\n  // for binding the start/end in either a joined full-path makeRe context\n  // (where we bind to (^|/), or a standalone matchPart context (where\n  // we bind to ^, and not /).  Otherwise slashes get duped!\n  //\n  // In part-matching mode, the start is:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n  // - if dots allowed or not possible: ^\n  // - if dots possible and not allowed: ^(?!\\.)\n  // end is:\n  // - if not isEnd(): nothing\n  // - else: $\n  //\n  // In full-path matching mode, we put the slash at the START of the\n  // pattern, so start is:\n  // - if first pattern: same as part-matching mode\n  // - if not isStart(): nothing\n  // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n  // - if dots allowed or not possible: /\n  // - if dots possible and not allowed: /(?!\\.)\n  // end is:\n  // - if last pattern, same as part-matching mode\n  // - else nothing\n  //\n  // Always put the (?:$|/) on negated tails, though, because that has to be\n  // there to bind the end of the negated pattern portion, and it's easier to\n  // just stick it in now rather than try to inject it later in the middle of\n  // the pattern.\n  //\n  // We can just always return the same end, and leave it up to the caller\n  // to know whether it's going to be used joined or in parts.\n  // And, if the start is adjusted slightly, can do the same there:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n  // - if dots allowed or not possible: (?:/|^)\n  // - if dots possible and not allowed: (?:/|^)(?!\\.)\n  //\n  // But it's better to have a simpler binding without a conditional, for\n  // performance, so probably better to return both start options.\n  //\n  // Then the caller just ignores the end if it's not the first pattern,\n  // and the start always gets applied.\n  //\n  // But that's always going to be $ if it's the ending pattern, or nothing,\n  // so the caller can just attach $ at the end of the pattern when building.\n  //\n  // So the todo is:\n  // - better detect what kind of start is needed\n  // - return both flavors of starting pattern\n  // - attach $ at the end of the pattern when creating the actual RegExp\n  //\n  // Ah, but wait, no, that all only applies to the root when the first pattern\n  // is not an extglob. If the first pattern IS an extglob, then we need all\n  // that dot prevention biz to live in the extglob portions, because eg\n  // +(*|.x*) can match .xy but not .yx.\n  //\n  // So, return the two flavors if it's #root and the first child is not an\n  // AST, otherwise leave it to the child AST to handle it, and there,\n  // use the (?:^|/) style of start binding.\n  //\n  // Even simplified further:\n  // - Since the start for a join is eg /(?!\\.) and the start for a part\n  // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n  // or start or whatever) and prepend ^ or / at the Regexp construction.\n  toRegExpSource(\n    allowDot?: boolean\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    const dot = allowDot ?? !!this.#options.dot\n    if (this.#root === this) {\n      this.#flatten()\n      this.#fillNegs()\n    }\n    if (!isExtglobAST(this)) {\n      const noEmpty = this.isStart() && this.isEnd()\n      const src = this.#parts\n        .map(p => {\n          const [re, _, hasMagic, uflag] =\n            typeof p === 'string'\n              ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n              : p.toRegExpSource(allowDot)\n          this.#hasMagic = this.#hasMagic || hasMagic\n          this.#uflag = this.#uflag || uflag\n          return re\n        })\n        .join('')\n\n      let start = ''\n      if (this.isStart()) {\n        if (typeof this.#parts[0] === 'string') {\n          // this is the string that will match the start of the pattern,\n          // so we need to protect against dots and such.\n\n          // '.' and '..' cannot match unless the pattern is that exactly,\n          // even if it starts with . or dot:true is set.\n          const dotTravAllowed =\n            this.#parts.length === 1 && justDots.has(this.#parts[0])\n          if (!dotTravAllowed) {\n            const aps = addPatternStart\n            // check if we have a possibility of matching . or ..,\n            // and prevent that.\n            const needNoTrav =\n              // dots are allowed, and the pattern starts with [ or .\n              (dot && aps.has(src.charAt(0))) ||\n              // the pattern starts with \\., and then [ or .\n              (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n              // the pattern starts with \\.\\., and then [ or .\n              (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)))\n            // no need to prevent dots if it can't match a dot, or if a\n            // sub-pattern will be preventing it anyway.\n            const needNoDot = !dot && !allowDot && aps.has(src.charAt(0))\n\n            start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''\n          }\n        }\n      }\n\n      // append the \"end of path portion\" pattern to negation tails\n      let end = ''\n      if (\n        this.isEnd() &&\n        this.#root.#filledNegs &&\n        this.#parent?.type === '!'\n      ) {\n        end = '(?:$|\\\\/)'\n      }\n      const final = start + src + end\n      return [\n        final,\n        unescape(src),\n        (this.#hasMagic = !!this.#hasMagic),\n        this.#uflag,\n      ]\n    }\n\n    // We need to calculate the body *twice* if it's a repeat pattern\n    // at the start, once in nodot mode, then again in dot mode, so a\n    // pattern like *(?) can match 'x.y'\n\n    const repeated = this.type === '*' || this.type === '+'\n    // some kind of extglob\n    const start = this.type === '!' ? '(?:(?!(?:' : '(?:'\n    let body = this.#partsToRegExp(dot)\n\n    if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n      // invalid extglob, has to at least be *something* present, if it's\n      // the entire path portion.\n      const s = this.toString()\n      const me = this as AST\n      me.#parts = [s]\n      me.type = null\n      me.#hasMagic = undefined\n      return [s, unescape(this.toString()), false, false]\n    }\n\n    // XXX abstract out this map method\n    let bodyDotAllowed =\n      !repeated || allowDot || dot || !startNoDot\n        ? ''\n        : this.#partsToRegExp(true)\n    if (bodyDotAllowed === body) {\n      bodyDotAllowed = ''\n    }\n    if (bodyDotAllowed) {\n      body = `(?:${body})(?:${bodyDotAllowed})*?`\n    }\n\n    // an empty !() is exactly equivalent to a starNoEmpty\n    let final = ''\n    if (this.type === '!' && this.#emptyExt) {\n      final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty\n    } else {\n      const close =\n        this.type === '!'\n          ? // !() must match something,but !(x) can match ''\n            '))' +\n            (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n            star +\n            ')'\n          : this.type === '@'\n          ? ')'\n          : this.type === '?'\n          ? ')?'\n          : this.type === '+' && bodyDotAllowed\n          ? ')'\n          : this.type === '*' && bodyDotAllowed\n          ? `)?`\n          : `)${this.type}`\n      final = start + body + close\n    }\n    return [\n      final,\n      unescape(body),\n      (this.#hasMagic = !!this.#hasMagic),\n      this.#uflag,\n    ]\n  }\n\n  #partsToRegExp(dot: boolean) {\n    return this.#parts\n      .map(p => {\n        // extglob ASTs should only contain parent ASTs\n        /* c8 ignore start */\n        if (typeof p === 'string') {\n          throw new Error('string type in extglob ast??')\n        }\n        /* c8 ignore stop */\n        // can ignore hasMagic, because extglobs are already always magic\n        const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot)\n        this.#uflag = this.#uflag || uflag\n        return re\n      })\n      .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n      .join('|')\n  }\n\n  static #parseGlob(\n    glob: string,\n    hasMagic: boolean | undefined,\n    noEmpty: boolean = false\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    let escaping = false\n    let re = ''\n    let uflag = false\n    // multiple stars that aren't globstars coalesce into one *\n    let inStar = false\n    for (let i = 0; i < glob.length; i++) {\n      const c = glob.charAt(i)\n      if (escaping) {\n        escaping = false\n        re += (reSpecials.has(c) ? '\\\\' : '') + c\n        inStar = false\n        continue\n      }\n      if (c === '\\\\') {\n        if (i === glob.length - 1) {\n          re += '\\\\\\\\'\n        } else {\n          escaping = true\n        }\n        continue\n      }\n      if (c === '[') {\n        const [src, needUflag, consumed, magic] = parseClass(glob, i)\n        if (consumed) {\n          re += src\n          uflag = uflag || needUflag\n          i += consumed - 1\n          hasMagic = hasMagic || magic\n          inStar = false\n          continue\n        }\n      }\n      if (c === '*') {\n        if (inStar) continue\n        inStar = true\n        re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star\n        hasMagic = true\n        continue\n      } else {\n        inStar = false\n      }\n      if (c === '?') {\n        re += qmark\n        hasMagic = true\n        continue\n      }\n      re += regExpEscape(c)\n    }\n    return [re, unescape(glob), !!hasMagic, uflag]\n  }\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/brace-expressions.js":{"lineLengths":[13,72,40,62,28,62,22,48,41,50,38,35,35,46,35,34,34,49,35,54,39,2,63,19,58,37,74,60,51,63,66,67,41,65,29,40,25,25,35,53,5,24,22,20,20,25,22,25,23,21,24,36,33,56,26,16,21,9,49,27,18,9,24,25,28,32,20,25,13,70,9,37,72,79,46,67,37,70,21,36,28,40,24,42,39,35,17,13,9,56,25,25,66,31,33,76,13,40,44,13,28,16,21,9,45,70,43,46,19,21,9,42,27,19,21,9,60,36,12,5,21,62,55,37,5,68,70,41,54,5,77,74,77,74,28,30,35,18,75,61,5,77,73,45,43,23,21,20,45,2,32,45],"data":{"version":3,"file":"brace-expressions.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/src/brace-expressions.ts"],"names":[],"mappings":"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","sourcesContent":["// translate the various posix character classes into unicode properties\n// this works across all unicode locales\n\n// { <posix class>: [<translation>, /u flag required, negated]\nconst posixClasses: { [k: string]: [e: string, u: boolean, n?: boolean] } = {\n  '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n  '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n  '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n  '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n  '[:cntrl:]': ['\\\\p{Cc}', true],\n  '[:digit:]': ['\\\\p{Nd}', true],\n  '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n  '[:lower:]': ['\\\\p{Ll}', true],\n  '[:print:]': ['\\\\p{C}', true],\n  '[:punct:]': ['\\\\p{P}', true],\n  '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n  '[:upper:]': ['\\\\p{Lu}', true],\n  '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n  '[:xdigit:]': ['A-Fa-f0-9', false],\n}\n\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s: string) => s.replace(/[[\\]\\\\-]/g, '\\\\$&')\n// escape all regexp magic characters\nconst regexpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges: string[]): string => ranges.join('')\n\nexport type ParseClassResult = [\n  src: string,\n  uFlag: boolean,\n  consumed: number,\n  hasMagic: boolean\n]\n\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nexport const parseClass = (\n  glob: string,\n  position: number\n): ParseClassResult => {\n  const pos = position\n  /* c8 ignore start */\n  if (glob.charAt(pos) !== '[') {\n    throw new Error('not in a brace expression')\n  }\n  /* c8 ignore stop */\n  const ranges: string[] = []\n  const negs: string[] = []\n\n  let i = pos + 1\n  let sawStart = false\n  let uflag = false\n  let escaping = false\n  let negate = false\n  let endPos = pos\n  let rangeStart = ''\n  WHILE: while (i < glob.length) {\n    const c = glob.charAt(i)\n    if ((c === '!' || c === '^') && i === pos + 1) {\n      negate = true\n      i++\n      continue\n    }\n\n    if (c === ']' && sawStart && !escaping) {\n      endPos = i + 1\n      break\n    }\n\n    sawStart = true\n    if (c === '\\\\') {\n      if (!escaping) {\n        escaping = true\n        i++\n        continue\n      }\n      // escaped \\ char, fall through and treat like normal char\n    }\n    if (c === '[' && !escaping) {\n      // either a posix class, a collation equivalent, or just a [\n      for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n        if (glob.startsWith(cls, i)) {\n          // invalid, [a-[] is fine, but not [a-[:alpha]]\n          if (rangeStart) {\n            return ['$.', false, glob.length - pos, true]\n          }\n          i += cls.length\n          if (neg) negs.push(unip)\n          else ranges.push(unip)\n          uflag = uflag || u\n          continue WHILE\n        }\n      }\n    }\n\n    // now it's just a normal character, effectively\n    escaping = false\n    if (rangeStart) {\n      // throw this range away if it's not valid, but others\n      // can still match.\n      if (c > rangeStart) {\n        ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c))\n      } else if (c === rangeStart) {\n        ranges.push(braceEscape(c))\n      }\n      rangeStart = ''\n      i++\n      continue\n    }\n\n    // now might be the start of a range.\n    // can be either c-d or c-] or c<more...>] or c] at this point\n    if (glob.startsWith('-]', i + 1)) {\n      ranges.push(braceEscape(c + '-'))\n      i += 2\n      continue\n    }\n    if (glob.startsWith('-', i + 1)) {\n      rangeStart = c\n      i += 2\n      continue\n    }\n\n    // not the start of a range, just a single character\n    ranges.push(braceEscape(c))\n    i++\n  }\n\n  if (endPos < i) {\n    // didn't see the end of the class, not a valid class,\n    // but might still be valid as a literal match.\n    return ['', false, 0, false]\n  }\n\n  // if we got no ranges and no negates, then we have a range that\n  // cannot possibly match anything, and that poisons the whole glob\n  if (!ranges.length && !negs.length) {\n    return ['$.', false, glob.length - pos, true]\n  }\n\n  // if we got one positive range, and it's a single character, then that's\n  // not actually a magic pattern, it's just that one literal character.\n  // we should not treat that as \"magic\", we should just return the literal\n  // character. [_] is a perfectly valid way to escape glob magic chars.\n  if (\n    negs.length === 0 &&\n    ranges.length === 1 &&\n    /^\\\\?.$/.test(ranges[0]) &&\n    !negate\n  ) {\n    const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]\n    return [regexpEscape(r), false, endPos - pos, false]\n  }\n\n  const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']'\n  const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']'\n  const comb =\n    ranges.length && negs.length\n      ? '(' + sranges + '|' + snegs + ')'\n      : ranges.length\n      ? sranges\n      : snegs\n\n  return [comb, uflag, endPos - pos, true]\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/unescape.js":{"lineLengths":[13,62,26,3,64,2,72,77,72,66,2,70,33,2,77,16,3,65,31,43,85,2,28,36],"data":{"version":3,"file":"unescape.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/src/unescape.ts"],"names":[],"mappings":";;;AACA;;;;;;;;;;;;;GAaG;AACI,MAAM,QAAQ,GAAG,CACtB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,MACsB,EAAE,EACtD,EAAE;IACF,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAChF,CAAC,CAAA;AATY,QAAA,QAAQ,YASpB","sourcesContent":["import { MinimatchOptions } from './index.js'\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (\n  s: string,\n  {\n    windowsPathsNoEscape = false,\n  }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n  return windowsPathsNoEscape\n    ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n    : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1')\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/dist/commonjs/escape.js":{"lineLengths":[13,62,24,3,49,2,73,75,74,75,73,3,63,60,64,58,31,41,44,2,24,34],"data":{"version":3,"file":"escape.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/minimatch/src/escape.ts"],"names":[],"mappings":";;;AACA;;;;;;;;GAQG;AACI,MAAM,MAAM,GAAG,CACpB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,MACsB,EAAE,EACtD,EAAE;IACF,wDAAwD;IACxD,4DAA4D;IAC5D,sDAAsD;IACtD,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC,CAAA;AAZY,QAAA,MAAM,UAYlB","sourcesContent":["import { MinimatchOptions } from './index.js'\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (\n  s: string,\n  {\n    windowsPathsNoEscape = false,\n  }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n  // don't need to escape +@! because we escape the parens\n  // that make those magic, and escaping ! as [!] isn't valid,\n  // because [!]] is a valid glob class meaning not ']'.\n  return windowsPathsNoEscape\n    ? s.replace(/[?*()[\\]]/g, '[$&]')\n    : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/glob.js":{"lineLengths":[13,62,22,41,39,45,45,43,44,48,55,14,43,20,14,3,54,3,12,13,8,9,8,16,11,11,18,9,14,13,12,11,10,10,15,12,13,13,11,9,11,25,18,24,7,47,7,9,7,60,7,13,7,65,6,61,6,62,71,37,6,71,13,7,32,29,18,57,28,50,34,36,30,46,34,32,24,26,9,77,63,9,34,30,50,38,34,40,38,70,44,42,23,73,32,34,64,74,9,42,32,9,35,42,43,26,40,62,9,29,34,71,13,76,9,31,57,57,26,38,44,53,84,13,9,14,84,77,67,51,48,36,28,15,9,41,70,66,69,42,88,21,47,20,26,38,34,32,28,28,30,27,33,36,60,37,10,77,62,34,40,23,21,50,35,33,19,58,32,70,11,5,18,74,73,79,46,16,82,29,54,59,31,40,36,62,23,10,5,16,16,75,29,54,59,31,40,36,62,26,10,5,14,75,25,50,55,27,36,32,58,20,5,18,75,25,50,55,27,36,32,58,24,5,7,64,33,7,19,52,5,25,34,5,7,71,33,7,15,53,5,30,30,5,1,20,32],"data":{"version":3,"file":"glob.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/src/glob.ts"],"names":[],"mappings":"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","sourcesContent":["import { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { fileURLToPath } from 'node:url'\nimport {\n  FSOption,\n  Path,\n  PathScurry,\n  PathScurryDarwin,\n  PathScurryPosix,\n  PathScurryWin32,\n} from 'path-scurry'\nimport { IgnoreLike } from './ignore.js'\nimport { Pattern } from './pattern.js'\nimport { GlobStream, GlobWalker } from './walker.js'\n\nexport type MatchSet = Minimatch['set']\nexport type GlobParts = Exclude<Minimatch['globParts'], undefined>\n\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform: NodeJS.Platform =\n  (\n    typeof process === 'object' &&\n    process &&\n    typeof process.platform === 'string'\n  ) ?\n    process.platform\n  : 'linux'\n\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n  /**\n   * Set to `true` to always receive absolute paths for\n   * matched files. Set to `false` to always return relative paths.\n   *\n   * When this option is not set, absolute paths are returned for patterns\n   * that are absolute, and otherwise paths are returned that are relative\n   * to the `cwd` setting.\n   *\n   * This does _not_ make an extra system call to get\n   * the realpath, it only does string path resolution.\n   *\n   * Conflicts with {@link withFileTypes}\n   */\n  absolute?: boolean\n\n  /**\n   * Set to false to enable {@link windowsPathsNoEscape}\n   *\n   * @deprecated\n   */\n  allowWindowsEscape?: boolean\n\n  /**\n   * The current working directory in which to search. Defaults to\n   * `process.cwd()`.\n   *\n   * May be eiher a string path or a `file://` URL object or string.\n   */\n  cwd?: string | URL\n\n  /**\n   * Include `.dot` files in normal matches and `globstar`\n   * matches. Note that an explicit dot in a portion of the pattern\n   * will always match dot files.\n   */\n  dot?: boolean\n\n  /**\n   * Prepend all relative path strings with `./` (or `.\\` on Windows).\n   *\n   * Without this option, returned relative paths are \"bare\", so instead of\n   * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n   *\n   * Relative patterns starting with `'../'` are not prepended with `./`, even\n   * if this option is set.\n   */\n  dotRelative?: boolean\n\n  /**\n   * Follow symlinked directories when expanding `**`\n   * patterns. This can result in a lot of duplicate references in\n   * the presence of cyclic links, and make performance quite bad.\n   *\n   * By default, a `**` in a pattern will follow 1 symbolic link if\n   * it is not the first item in the pattern, or none if it is the\n   * first item in the pattern, following the same behavior as Bash.\n   */\n  follow?: boolean\n\n  /**\n   * string or string[], or an object with `ignore` and `ignoreChildren`\n   * methods.\n   *\n   * If a string or string[] is provided, then this is treated as a glob\n   * pattern or array of glob patterns to exclude from matches. To ignore all\n   * children within a directory, as well as the entry itself, append `'/**'`\n   * to the ignore pattern.\n   *\n   * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n   * any other settings.\n   *\n   * If an object is provided that has `ignored(path)` and/or\n   * `childrenIgnored(path)` methods, then these methods will be called to\n   * determine whether any Path is a match or if its children should be\n   * traversed, respectively.\n   */\n  ignore?: string | string[] | IgnoreLike\n\n  /**\n   * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n   * effect if {@link nobrace} is set.\n   *\n   * Only has effect on the {@link hasMagic} function.\n   */\n  magicalBraces?: boolean\n\n  /**\n   * Add a `/` character to directory matches. Note that this requires\n   * additional stat calls in some cases.\n   */\n  mark?: boolean\n\n  /**\n   * Perform a basename-only match if the pattern does not contain any slash\n   * characters. That is, `*.js` would be treated as equivalent to\n   * `**\\/*.js`, matching all js files in all directories.\n   */\n  matchBase?: boolean\n\n  /**\n   * Limit the directory traversal to a given depth below the cwd.\n   * Note that this does NOT prevent traversal to sibling folders,\n   * root patterns, and so on. It only limits the maximum folder depth\n   * that the walk will descend, relative to the cwd.\n   */\n  maxDepth?: number\n\n  /**\n   * Do not expand `{a,b}` and `{1..3}` brace sets.\n   */\n  nobrace?: boolean\n\n  /**\n   * Perform a case-insensitive match. This defaults to `true` on macOS and\n   * Windows systems, and `false` on all others.\n   *\n   * **Note** `nocase` should only be explicitly set when it is\n   * known that the filesystem's case sensitivity differs from the\n   * platform default. If set `true` on case-sensitive file\n   * systems, or `false` on case-insensitive file systems, then the\n   * walk may return more or less results than expected.\n   */\n  nocase?: boolean\n\n  /**\n   * Do not match directories, only files. (Note: to match\n   * _only_ directories, put a `/` at the end of the pattern.)\n   */\n  nodir?: boolean\n\n  /**\n   * Do not match \"extglob\" patterns such as `+(a|b)`.\n   */\n  noext?: boolean\n\n  /**\n   * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n   * `*` instead.)\n   *\n   * Conflicts with {@link matchBase}\n   */\n  noglobstar?: boolean\n\n  /**\n   * Defaults to value of `process.platform` if available, or `'linux'` if\n   * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n   * behavior.\n   */\n  platform?: NodeJS.Platform\n\n  /**\n   * Set to true to call `fs.realpath` on all of the\n   * results. In the case of an entry that cannot be resolved, the\n   * entry is omitted. This incurs a slight performance penalty, of\n   * course, because of the added system calls.\n   */\n  realpath?: boolean\n\n  /**\n   *\n   * A string path resolved against the `cwd` option, which\n   * is used as the starting point for absolute patterns that start\n   * with `/`, (but not drive letters or UNC paths on Windows).\n   *\n   * Note that this _doesn't_ necessarily limit the walk to the\n   * `root` directory, and doesn't affect the cwd starting point for\n   * non-absolute patterns. A pattern containing `..` will still be\n   * able to traverse out of the root directory, if it is not an\n   * actual root directory on the filesystem, and any non-absolute\n   * patterns will be matched in the `cwd`. For example, the\n   * pattern `/../*` with `{root:'/some/path'}` will return all\n   * files in `/some`, not all files in `/some/path`. The pattern\n   * `*` with `{root:'/some/path'}` will return all the entries in\n   * the cwd, not the entries in `/some/path`.\n   *\n   * To start absolute and non-absolute patterns in the same\n   * path, you can use `{root:''}`. However, be aware that on\n   * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n   * _always_ start in the `x:/` or `//host/share` directory,\n   * regardless of the `root` setting.\n   */\n  root?: string\n\n  /**\n   * A [PathScurry](http://npm.im/path-scurry) object used\n   * to traverse the file system. If the `nocase` option is set\n   * explicitly, then any provided `scurry` object must match this\n   * setting.\n   */\n  scurry?: PathScurry\n\n  /**\n   * Call `lstat()` on all entries, whether required or not to determine\n   * if it's a valid match. When used with {@link withFileTypes}, this means\n   * that matches will include data such as modified time, permissions, and\n   * so on.  Note that this will incur a performance cost due to the added\n   * system calls.\n   */\n  stat?: boolean\n\n  /**\n   * An AbortSignal which will cancel the Glob walk when\n   * triggered.\n   */\n  signal?: AbortSignal\n\n  /**\n   * Use `\\\\` as a path separator _only_, and\n   *  _never_ as an escape character. If set, all `\\\\` characters are\n   *  replaced with `/` in the pattern.\n   *\n   *  Note that this makes it **impossible** to match against paths\n   *  containing literal glob pattern characters, but allows matching\n   *  with patterns constructed using `path.join()` and\n   *  `path.resolve()` on Windows platforms, mimicking the (buggy!)\n   *  behavior of Glob v7 and before on Windows. Please use with\n   *  caution, and be mindful of [the caveat below about Windows\n   *  paths](#windows). (For legacy reasons, this is also set if\n   *  `allowWindowsEscape` is set to the exact value `false`.)\n   */\n  windowsPathsNoEscape?: boolean\n\n  /**\n   * Return [PathScurry](http://npm.im/path-scurry)\n   * `Path` objects instead of strings. These are similar to a\n   * NodeJS `Dirent` object, but with additional methods and\n   * properties.\n   *\n   * Conflicts with {@link absolute}\n   */\n  withFileTypes?: boolean\n\n  /**\n   * An fs implementation to override some or all of the defaults.  See\n   * http://npm.im/path-scurry for details about what can be overridden.\n   */\n  fs?: FSOption\n\n  /**\n   * Just passed along to Minimatch.  Note that this makes all pattern\n   * matching operations slower and *extremely* noisy.\n   */\n  debug?: boolean\n\n  /**\n   * Return `/` delimited paths, even on Windows.\n   *\n   * On posix systems, this has no effect.  But, on Windows, it means that\n   * paths will be `/` delimited, and absolute paths will be their full\n   * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n   * `'//?/C:/foo/bar'`\n   */\n  posix?: boolean\n\n  /**\n   * Do not match any children of any matches. For example, the pattern\n   * `**\\/foo` would match `a/foo`, but not `a/foo/b/foo` in this mode.\n   *\n   * This is especially useful for cases like \"find all `node_modules`\n   * folders, but not the ones in `node_modules`\".\n   *\n   * In order to support this, the `Ignore` implementation must support an\n   * `add(pattern: string)` method. If using the default `Ignore` class, then\n   * this is fine, but if this is set to `false`, and a custom `Ignore` is\n   * provided that does not have an `add()` method, then it will throw an\n   * error.\n   *\n   * **Caveat** It *only* ignores matches that would be a descendant of a\n   * previous match, and only if that descendant is matched *after* the\n   * ancestor is encountered. Since the file system walk happens in\n   * indeterminate order, it's possible that a match will already be added\n   * before its ancestor, if multiple or braced patterns are used.\n   *\n   * For example:\n   *\n   * ```ts\n   * const results = await glob([\n   *   // likely to match first, since it's just a stat\n   *   'a/b/c/d/e/f',\n   *\n   *   // this pattern is more complicated! It must to various readdir()\n   *   // calls and test the results against a regular expression, and that\n   *   // is certainly going to take a little bit longer.\n   *   //\n   *   // So, later on, it encounters a match at 'a/b/c/d/e', but it's too\n   *   // late to ignore a/b/c/d/e/f, because it's already been emitted.\n   *   'a/[bdf]/?/[a-z]/*',\n   * ], { includeChildMatches: false })\n   * ```\n   *\n   * It's best to only set this to `false` if you can be reasonably sure that\n   * no components of the pattern will potentially match one another's file\n   * system descendants, or if the occasional included child entry will not\n   * cause problems.\n   *\n   * @default true\n   */\n  includeChildMatches?: boolean\n}\n\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n  withFileTypes: true\n  // string options not relevant if returning Path objects.\n  absolute?: undefined\n  mark?: undefined\n  posix?: undefined\n}\n\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n  withFileTypes?: false\n}\n\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n  withFileTypes?: undefined\n}\n\nexport type Result<Opts> =\n  Opts extends GlobOptionsWithFileTypesTrue ? Path\n  : Opts extends GlobOptionsWithFileTypesFalse ? string\n  : Opts extends GlobOptionsWithFileTypesUnset ? string\n  : string | Path\nexport type Results<Opts> = Result<Opts>[]\n\nexport type FileTypes<Opts> =\n  Opts extends GlobOptionsWithFileTypesTrue ? true\n  : Opts extends GlobOptionsWithFileTypesFalse ? false\n  : Opts extends GlobOptionsWithFileTypesUnset ? false\n  : boolean\n\n/**\n * An object that can perform glob pattern traversals.\n */\nexport class Glob<Opts extends GlobOptions> implements GlobOptions {\n  absolute?: boolean\n  cwd: string\n  root?: string\n  dot: boolean\n  dotRelative: boolean\n  follow: boolean\n  ignore?: string | string[] | IgnoreLike\n  magicalBraces: boolean\n  mark?: boolean\n  matchBase: boolean\n  maxDepth: number\n  nobrace: boolean\n  nocase: boolean\n  nodir: boolean\n  noext: boolean\n  noglobstar: boolean\n  pattern: string[]\n  platform: NodeJS.Platform\n  realpath: boolean\n  scurry: PathScurry\n  stat: boolean\n  signal?: AbortSignal\n  windowsPathsNoEscape: boolean\n  withFileTypes: FileTypes<Opts>\n  includeChildMatches: boolean\n\n  /**\n   * The options provided to the constructor.\n   */\n  opts: Opts\n\n  /**\n   * An array of parsed immutable {@link Pattern} objects.\n   */\n  patterns: Pattern[]\n\n  /**\n   * All options are stored as properties on the `Glob` object.\n   *\n   * See {@link GlobOptions} for full options descriptions.\n   *\n   * Note that a previous `Glob` object can be passed as the\n   * `GlobOptions` to another `Glob` instantiation to re-use settings\n   * and caches with a new pattern.\n   *\n   * Traversal functions can be called multiple times to run the walk\n   * again.\n   */\n  constructor(pattern: string | string[], opts: Opts) {\n    /* c8 ignore start */\n    if (!opts) throw new TypeError('glob options required')\n    /* c8 ignore stop */\n    this.withFileTypes = !!opts.withFileTypes as FileTypes<Opts>\n    this.signal = opts.signal\n    this.follow = !!opts.follow\n    this.dot = !!opts.dot\n    this.dotRelative = !!opts.dotRelative\n    this.nodir = !!opts.nodir\n    this.mark = !!opts.mark\n    if (!opts.cwd) {\n      this.cwd = ''\n    } else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n      opts.cwd = fileURLToPath(opts.cwd)\n    }\n    this.cwd = opts.cwd || ''\n    this.root = opts.root\n    this.magicalBraces = !!opts.magicalBraces\n    this.nobrace = !!opts.nobrace\n    this.noext = !!opts.noext\n    this.realpath = !!opts.realpath\n    this.absolute = opts.absolute\n    this.includeChildMatches = opts.includeChildMatches !== false\n\n    this.noglobstar = !!opts.noglobstar\n    this.matchBase = !!opts.matchBase\n    this.maxDepth =\n      typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity\n    this.stat = !!opts.stat\n    this.ignore = opts.ignore\n\n    if (this.withFileTypes && this.absolute !== undefined) {\n      throw new Error('cannot set absolute and withFileTypes:true')\n    }\n\n    if (typeof pattern === 'string') {\n      pattern = [pattern]\n    }\n\n    this.windowsPathsNoEscape =\n      !!opts.windowsPathsNoEscape ||\n      (opts as { allowWindowsEscape?: boolean }).allowWindowsEscape ===\n        false\n\n    if (this.windowsPathsNoEscape) {\n      pattern = pattern.map(p => p.replace(/\\\\/g, '/'))\n    }\n\n    if (this.matchBase) {\n      if (opts.noglobstar) {\n        throw new TypeError('base matching requires globstar')\n      }\n      pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`))\n    }\n\n    this.pattern = pattern\n\n    this.platform = opts.platform || defaultPlatform\n    this.opts = { ...opts, platform: this.platform }\n    if (opts.scurry) {\n      this.scurry = opts.scurry\n      if (\n        opts.nocase !== undefined &&\n        opts.nocase !== opts.scurry.nocase\n      ) {\n        throw new Error('nocase option contradicts provided scurry option')\n      }\n    } else {\n      const Scurry =\n        opts.platform === 'win32' ? PathScurryWin32\n        : opts.platform === 'darwin' ? PathScurryDarwin\n        : opts.platform ? PathScurryPosix\n        : PathScurry\n      this.scurry = new Scurry(this.cwd, {\n        nocase: opts.nocase,\n        fs: opts.fs,\n      })\n    }\n    this.nocase = this.scurry.nocase\n\n    // If you do nocase:true on a case-sensitive file system, then\n    // we need to use regexps instead of strings for non-magic\n    // path portions, because statting `aBc` won't return results\n    // for the file `AbC` for example.\n    const nocaseMagicOnly =\n      this.platform === 'darwin' || this.platform === 'win32'\n\n    const mmo: MinimatchOptions = {\n      // default nocase based on platform\n      ...opts,\n      dot: this.dot,\n      matchBase: this.matchBase,\n      nobrace: this.nobrace,\n      nocase: this.nocase,\n      nocaseMagicOnly,\n      nocomment: true,\n      noext: this.noext,\n      nonegate: true,\n      optimizationLevel: 2,\n      platform: this.platform,\n      windowsPathsNoEscape: this.windowsPathsNoEscape,\n      debug: !!this.opts.debug,\n    }\n\n    const mms = this.pattern.map(p => new Minimatch(p, mmo))\n    const [matchSet, globParts] = mms.reduce(\n      (set: [MatchSet, GlobParts], m) => {\n        set[0].push(...m.set)\n        set[1].push(...m.globParts)\n        return set\n      },\n      [[], []],\n    )\n    this.patterns = matchSet.map((set, i) => {\n      const g = globParts[i]\n      /* c8 ignore start */\n      if (!g) throw new Error('invalid pattern object')\n      /* c8 ignore stop */\n      return new Pattern(set, g, 0, this.platform)\n    })\n  }\n\n  /**\n   * Returns a Promise that resolves to the results array.\n   */\n  async walk(): Promise<Results<Opts>>\n  async walk(): Promise<(string | Path)[]> {\n    // Walkers always return array of Path objects, so we just have to\n    // coerce them into the right shape.  It will have already called\n    // realpath() if the option was set to do so, so we know that's cached.\n    // start out knowing the cwd, at least\n    return [\n      ...(await new GlobWalker(this.patterns, this.scurry.cwd, {\n        ...this.opts,\n        maxDepth:\n          this.maxDepth !== Infinity ?\n            this.maxDepth + this.scurry.cwd.depth()\n          : Infinity,\n        platform: this.platform,\n        nocase: this.nocase,\n        includeChildMatches: this.includeChildMatches,\n      }).walk()),\n    ]\n  }\n\n  /**\n   * synchronous {@link Glob.walk}\n   */\n  walkSync(): Results<Opts>\n  walkSync(): (string | Path)[] {\n    return [\n      ...new GlobWalker(this.patterns, this.scurry.cwd, {\n        ...this.opts,\n        maxDepth:\n          this.maxDepth !== Infinity ?\n            this.maxDepth + this.scurry.cwd.depth()\n          : Infinity,\n        platform: this.platform,\n        nocase: this.nocase,\n        includeChildMatches: this.includeChildMatches,\n      }).walkSync(),\n    ]\n  }\n\n  /**\n   * Stream results asynchronously.\n   */\n  stream(): Minipass<Result<Opts>, Result<Opts>>\n  stream(): Minipass<string | Path, string | Path> {\n    return new GlobStream(this.patterns, this.scurry.cwd, {\n      ...this.opts,\n      maxDepth:\n        this.maxDepth !== Infinity ?\n          this.maxDepth + this.scurry.cwd.depth()\n        : Infinity,\n      platform: this.platform,\n      nocase: this.nocase,\n      includeChildMatches: this.includeChildMatches,\n    }).stream()\n  }\n\n  /**\n   * Stream results synchronously.\n   */\n  streamSync(): Minipass<Result<Opts>, Result<Opts>>\n  streamSync(): Minipass<string | Path, string | Path> {\n    return new GlobStream(this.patterns, this.scurry.cwd, {\n      ...this.opts,\n      maxDepth:\n        this.maxDepth !== Infinity ?\n          this.maxDepth + this.scurry.cwd.depth()\n        : Infinity,\n      platform: this.platform,\n      nocase: this.nocase,\n      includeChildMatches: this.includeChildMatches,\n    }).streamSync()\n  }\n\n  /**\n   * Default sync iteration function. Returns a Generator that\n   * iterates over the results.\n   */\n  iterateSync(): Generator<Result<Opts>, void, void> {\n    return this.streamSync()[Symbol.iterator]()\n  }\n  [Symbol.iterator]() {\n    return this.iterateSync()\n  }\n\n  /**\n   * Default async iteration function. Returns an AsyncGenerator that\n   * iterates over the results.\n   */\n  iterate(): AsyncGenerator<Result<Opts>, void, void> {\n    return this.stream()[Symbol.asyncIterator]()\n  }\n  [Symbol.asyncIterator]() {\n    return this.iterate()\n  }\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/path-scurry/dist/commonjs/index.js":{"lineLengths":[13,97,33,53,88,68,5,39,29,33,17,4,96,72,21,21,3,66,42,20,141,36,18,2,62,253,41,41,39,27,50,46,57,46,47,39,19,30,26,34,36,17,15,32,36,38,38,6,2,58,97,13,7,21,20,19,34,41,10,6,39,48,95,47,27,57,21,21,21,21,21,21,22,20,27,27,64,40,33,38,66,33,57,64,32,74,29,37,38,37,48,34,43,29,36,43,43,43,44,38,31,33,26,36,10,17,34,29,13,2,39,32,42,10,17,41,35,13,2,3,65,12,3,49,19,28,5,1,36,72,79,73,79,78,77,75,76,2,78,70,3,41,12,3,50,38,15,20,32,47,11,5,1,38,47,3,48,78,2,78,74,75,19,2,75,75,16,3,16,7,32,6,73,74,80,74,45,7,9,7,53,6,16,7,9,7,59,6,16,7,10,7,79,6,16,7,11,7,71,16,7,11,7,73,53,7,18,36,8,19,9,15,25,5,10,16,26,5,11,17,27,5,9,15,25,5,9,15,25,5,10,16,26,5,13,19,29,5,9,15,25,5,10,16,26,5,12,18,28,5,13,19,29,5,13,19,29,5,13,19,29,5,17,23,33,5,11,17,27,5,11,17,27,5,11,17,27,5,15,21,31,5,15,11,14,19,14,19,10,14,16,14,7,69,69,76,27,7,22,48,5,7,77,77,7,16,31,5,7,79,67,6,16,7,76,25,75,37,29,27,33,34,39,39,49,34,26,39,9,14,45,9,5,7,58,6,65,7,13,38,31,25,37,55,5,7,16,7,21,30,5,7,81,7,19,20,24,9,50,52,50,33,58,43,22,5,29,21,38,30,9,17,5,7,77,80,79,14,6,16,7,16,48,21,26,9,63,43,38,24,5,7,69,6,78,14,6,75,61,6,36,6,16,7,27,50,24,9,32,39,9,25,41,83,35,40,25,13,9,71,67,34,46,84,57,20,25,21,11,33,35,9,78,79,30,22,5,7,76,68,7,16,23,22,43,34,9,31,30,17,48,9,32,62,5,7,69,44,73,57,7,21,29,35,23,22,46,39,31,30,17,64,9,37,57,5,7,57,7,16,43,34,9,31,30,17,48,9,32,59,37,5,7,70,6,77,21,7,21,46,39,29,59,27,58,39,58,13,18,49,13,9,30,39,71,43,5,7,38,6,80,76,45,7,17,47,5,18,35,5,15,44,46,40,60,48,74,70,86,53,28,5,7,34,7,14,45,5,7,31,7,19,45,5,7,38,7,25,45,5,7,34,7,21,45,5,7,31,7,14,45,5,7,28,7,16,46,5,7,35,7,22,46,5,7,72,27,6,74,47,7,19,60,5,7,75,51,6,80,74,48,7,22,32,5,7,75,56,6,80,74,48,7,22,30,5,7,76,58,6,75,74,67,7,21,41,55,5,7,77,57,6,76,55,7,19,29,24,25,25,49,39,56,39,33,5,7,77,61,7,21,47,5,7,80,74,71,7,16,39,5,7,80,50,6,75,77,56,6,73,16,7,16,29,44,53,5,7,77,6,80,39,6,79,7,22,40,21,26,9,34,29,9,29,72,27,29,9,28,13,75,77,29,55,13,9,20,40,29,9,5,7,44,7,20,40,21,26,9,34,29,9,29,72,27,29,9,28,13,64,73,29,55,13,9,20,40,29,9,5,31,45,37,60,70,34,18,32,9,5,19,37,32,19,58,35,5,27,56,41,33,35,28,9,5,24,34,28,5,63,20,65,66,66,46,29,33,19,28,27,62,54,33,30,33,35,5,29,60,53,32,9,37,31,9,14,44,9,5,27,70,29,33,57,34,29,9,37,32,31,9,5,30,29,27,30,26,69,54,77,29,32,9,25,72,62,29,48,39,9,28,5,28,55,44,5,31,61,34,68,40,67,35,9,25,24,21,5,37,56,32,83,45,25,13,62,9,5,42,25,59,58,63,25,28,69,71,38,39,24,16,35,25,9,24,17,5,7,78,18,6,78,71,74,6,79,81,16,6,75,15,7,19,42,17,80,28,13,24,41,13,9,5,7,41,7,17,42,17,69,28,13,24,41,13,9,5,20,157,28,32,36,40,32,30,28,32,24,24,24,26,28,32,28,26,26,24,35,51,71,67,34,9,5,22,31,32,40,46,37,46,5,7,79,6,79,19,6,75,15,6,76,76,63,81,76,74,7,39,33,27,29,16,51,19,9,41,35,62,27,28,16,50,19,9,57,35,38,19,9,39,52,54,41,78,21,43,41,13,18,68,28,42,55,17,47,13,75,19,11,5,26,7,46,6,79,19,6,75,15,7,21,33,22,9,41,35,59,9,52,54,41,41,45,9,14,33,36,32,77,17,75,40,21,55,17,47,13,24,43,41,13,51,22,9,55,5,7,43,7,19,33,22,9,41,35,59,9,52,54,41,13,60,36,17,51,13,43,9,20,39,37,9,55,5,18,34,25,39,75,29,70,25,9,28,20,5,34,49,39,30,47,5,7,63,22,6,74,6,79,41,7,22,27,34,62,29,13,73,55,9,19,36,9,5,7,35,7,20,27,34,62,29,13,62,55,9,19,36,9,5,7,66,41,6,16,7,24,28,19,29,26,36,20,21,31,27,44,44,25,26,9,44,19,50,36,41,25,9,5,1,28,3,35,2,79,43,3,34,7,45,7,15,7,42,7,25,7,79,67,6,16,7,76,63,5,7,16,7,47,105,5,7,16,7,25,50,5,7,16,7,23,54,42,29,9,70,67,51,53,13,9,47,81,5,7,16,7,50,67,77,33,27,26,33,45,36,5,1,30,3,40,2,36,3,34,7,41,7,19,7,44,7,14,7,79,67,6,16,7,76,63,5,7,16,7,25,47,5,7,16,7,24,25,5,7,16,7,47,105,5,1,30,3,78,40,2,78,77,36,3,22,7,75,7,9,7,78,7,13,7,68,7,10,7,83,7,8,18,23,14,7,51,6,68,7,11,8,7,54,6,76,6,16,7,118,36,62,53,9,61,55,46,41,52,48,53,62,73,70,46,24,9,29,35,86,9,28,29,43,46,29,35,37,32,29,35,28,37,64,65,68,15,28,9,24,5,7,59,7,28,39,42,9,28,5,7,75,53,6,16,7,21,30,5,7,60,6,49,6,78,71,17,7,23,71,72,19,53,31,32,25,36,37,22,13,9,49,35,26,9,54,42,22,5,7,71,72,62,6,49,6,78,71,17,7,28,71,72,19,53,31,32,25,36,37,22,13,9,54,35,26,9,59,47,22,5,7,79,7,32,40,44,9,32,5,7,73,61,7,37,40,44,9,37,5,7,65,7,32,40,44,9,26,5,7,64,7,31,40,44,9,50,5,44,28,8,40,44,9,48,25,29,9,39,34,22,9,14,44,58,9,5,42,28,8,40,44,9,48,25,29,9,46,34,22,9,33,39,9,14,56,9,5,7,70,42,6,78,71,74,6,79,81,16,6,75,15,7,35,40,44,9,29,5,7,47,7,33,40,44,9,33,5,58,29,8,40,44,9,48,48,29,9,41,49,5,56,29,8,40,44,9,48,48,29,9,39,49,5,58,29,8,40,44,9,48,48,29,9,41,49,5,56,29,8,40,44,9,48,48,29,9,39,49,5,45,40,44,9,48,25,29,9,83,27,39,67,9,31,35,26,44,37,25,34,17,36,41,25,32,36,38,29,21,18,42,47,71,21,55,36,72,97,21,26,61,42,25,30,35,25,21,17,36,10,28,42,31,37,23,35,36,29,15,11,5,43,40,44,9,48,25,29,9,83,27,39,67,9,38,33,46,38,43,67,17,26,41,60,33,38,38,17,53,32,17,13,9,23,5,7,30,6,47,6,75,80,76,7,30,30,5,45,76,81,81,40,44,9,48,28,29,9,67,5,7,63,6,51,7,25,34,5,47,40,44,9,48,25,29,9,83,39,59,9,38,33,46,38,43,59,17,26,41,60,33,38,38,17,53,32,17,13,9,5,41,40,44,9,48,25,29,9,83,70,39,68,9,31,30,27,31,31,29,42,27,41,38,27,17,29,30,74,41,27,57,40,50,44,50,53,47,47,82,29,25,46,93,35,25,21,46,58,83,46,29,25,21,33,46,58,61,42,25,21,53,55,21,37,34,21,18,36,32,47,29,13,10,18,23,5,45,40,44,9,48,25,29,9,83,70,31,39,68,9,30,27,31,31,29,42,27,41,38,27,17,29,30,50,42,47,79,42,25,21,17,29,42,30,45,64,37,42,42,21,57,38,21,17,13,43,47,10,18,23,5,28,32,76,35,5,1,40,3,51,2,75,38,3,46,7,44,7,15,49,39,65,29,49,35,9,5,7,16,7,24,80,73,58,63,5,7,16,7,17,117,5,7,66,7,19,86,5,1,42,3,81,2,76,2,43,3,46,7,44,7,14,49,40,64,29,5,7,16,7,25,19,5,7,16,7,17,117,5,7,66,7,19,33,5,1,42,3,68,2,72,11,2,43,3,48,49,39,40,5,1,44,3,68,2,73,3,68,3,74,2,74,65,3,67,54,26,33],"data":{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/path-scurry/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,yCAAwC;AAExC,uCAAwC;AAExC,2BAMW;AACX,kDAAmC;AAEnC,MAAM,YAAY,GAAG,iBAAG,CAAC,MAAM,CAAA;AAC/B,yDAAyD;AACzD,8CAA8C;AAE9C,+CAAqE;AAErE,uCAAmC;AAqEnC,MAAM,SAAS,GAAY;IACzB,SAAS,EAAT,cAAS;IACT,OAAO,EAAE,YAAS;IAClB,WAAW,EAAX,gBAAW;IACX,YAAY,EAAZ,iBAAY;IACZ,YAAY;IACZ,QAAQ,EAAE;QACR,KAAK,EAAL,gBAAK;QACL,OAAO,EAAP,kBAAO;QACP,QAAQ,EAAR,mBAAQ;QACR,QAAQ,EAAR,mBAAQ;KACT;CACF,CAAA;AAED,0DAA0D;AAC1D,MAAM,YAAY,GAAG,CAAC,QAAmB,EAAW,EAAE,CACpD,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC5D,SAAS;IACX,CAAC,CAAC;QACE,GAAG,SAAS;QACZ,GAAG,QAAQ;QACX,QAAQ,EAAE;YACR,GAAG,SAAS,CAAC,QAAQ;YACrB,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC7B;KACF,CAAA;AAEL,uCAAuC;AACvC,MAAM,cAAc,GAAG,wBAAwB,CAAA;AAC/C,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAU,EAAE,CAC9C,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AAE/D,+CAA+C;AAC/C,MAAM,SAAS,GAAG,QAAQ,CAAA;AAE1B,MAAM,OAAO,GAAG,CAAC,CAAA,CAAC,sCAAsC;AACxD,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,MAAM,GAAG,MAAM,CAAA;AACrB,MAAM,IAAI,GAAG,MAAM,CAAA;AAYnB,2BAA2B;AAC3B,MAAM,YAAY,GAAG,CAAC,IAAI,CAAA;AAE1B,gEAAgE;AAChE,MAAM,cAAc,GAAG,gBAAgB,CAAA;AACvC,iCAAiC;AACjC,MAAM,YAAY,GAAG,gBAAgB,CAAA;AACrC,kEAAkE;AAClE,MAAM,OAAO,GAAG,gBAAgB,CAAA;AAChC,yDAAyD;AACzD,gEAAgE;AAChE,MAAM,MAAM,GAAG,gBAAgB,CAAA;AAC/B,0EAA0E;AAC1E,6BAA6B;AAC7B,MAAM,WAAW,GAAG,gBAAgB,CAAA;AACpC,sCAAsC;AACtC,MAAM,WAAW,GAAG,gBAAgB,CAAA;AAEpC,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAA;AAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAA;AAEjC,MAAM,SAAS,GAAG,CAAC,CAAiB,EAAE,EAAE,CACtC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK;IAClB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK;QACzB,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,KAAK;YAC5B,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,KAAK;gBAC/B,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK;oBAC3B,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM;wBACvB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK;4BACpB,CAAC,CAAC,OAAO,CAAA;AAEX,+BAA+B;AAC/B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;AAChD,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE;IAC9B,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACf,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC7B,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAA;AACtD,MAAM,eAAe,GAAG,CAAC,CAAS,EAAE,EAAE;IACpC,MAAM,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACf,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;IACpC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9B,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAgBD;;;GAGG;AACH,MAAa,YAAa,SAAQ,oBAAwB;IACxD;QACE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;IACrB,CAAC;CACF;AAJD,oCAIC;AAED,wEAAwE;AACxE,+EAA+E;AAC/E,yEAAyE;AACzE,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,EAAE;AACF,8EAA8E;AAC9E,sEAAsE;AAEtE;;;GAGG;AACH,MAAa,aAAc,SAAQ,oBAA4B;IAC7D,YAAY,UAAkB,EAAE,GAAG,IAAI;QACrC,KAAK,CAAC;YACJ,OAAO;YACP,oBAAoB;YACpB,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;SACnC,CAAC,CAAA;IACJ,CAAC;CACF;AARD,sCAQC;AASD,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAE9C;;;;;;;;;;;;GAYG;AACH,MAAsB,QAAQ;IAC5B;;;;;;;;OAQG;IACH,IAAI,CAAQ;IACZ;;;;OAIG;IACH,IAAI,CAAU;IACd;;;;OAIG;IACH,KAAK,CAA2B;IAChC;;;;OAIG;IACH,MAAM,CAAW;IACjB;;;OAGG;IACH,MAAM,CAAS;IAEf;;;OAGG;IACH,KAAK,GAAY,KAAK,CAAA;IAYtB,gCAAgC;IAChC,GAAG,CAAS;IAEZ,eAAe;IACf,IAAI,CAAS;IACb,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IACD,KAAK,CAAS;IACd,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACD,MAAM,CAAS;IACf,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,IAAI,CAAS;IACb,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IACD,IAAI,CAAS;IACb,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IACD,KAAK,CAAS;IACd,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACD,QAAQ,CAAS;IACjB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IACD,IAAI,CAAS;IACb,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IACD,KAAK,CAAS;IACd,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACD,OAAO,CAAS;IAChB,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IACD,QAAQ,CAAS;IACjB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IACD,QAAQ,CAAS;IACjB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IACD,QAAQ,CAAS;IACjB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IACD,YAAY,CAAS;IACrB,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IACD,MAAM,CAAO;IACb,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,MAAM,CAAO;IACb,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,MAAM,CAAO;IACb,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,UAAU,CAAO;IACjB,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,UAAU,CAAQ;IAClB,MAAM,CAAS;IACf,SAAS,CAAS;IAClB,cAAc,CAAS;IACvB,SAAS,CAAS;IAClB,cAAc,CAAS;IACvB,KAAK,CAAQ;IACb,SAAS,CAAe;IACxB,WAAW,CAAW;IACtB,SAAS,CAAW;IAEpB;;;;;OAKG;IACH,IAAI,UAAU;QACZ,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;IACzC,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED;;;;;OAKG;IACH,YACE,IAAY,EACZ,OAAe,OAAO,EACtB,IAA0B,EAC1B,KAAgC,EAChC,MAAe,EACf,QAAuB,EACvB,IAAc;QAEd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAClE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,MAAM,CAAA;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC1C,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IAChD,CAAC;IAeD;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAa;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,MAAM,GACV,QAAQ,CAAC,CAAC;YACR,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAChC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,aAAa,CAAC,QAAkB;QAC9B,IAAI,CAAC,GAAa,IAAI,CAAA;QACtB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;QACD,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAA;QAChE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,CAAA;QAC7B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,QAAgB,EAAE,IAAe;QACrC,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YACxC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAA;QAC5B,CAAC;QAED,iBAAiB;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,MAAM,IAAI,GACR,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC/D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC1B,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,2DAA2D;QAC3D,0BAA0B;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACrC,MAAM,QAAQ,GACZ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE;YAC9C,GAAG,IAAI;YACP,MAAM,EAAE,IAAI;YACZ,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAA;QACxB,CAAC;QAED,sEAAsE;QACtE,uEAAuE;QACvE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QACzB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,SAAS,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QACrB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QACD,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;QACvB,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACvD,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC5C,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QACzB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,cAAc,CAAA;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QACrB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAA;QAC5B,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAClD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,SAAS,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QACrB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QACD,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;QACvB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QAClD,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,cAAc,CAAA;QACjE,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACpE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QAC9D,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;OAMG;IACH,SAAS;QACP,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,OAAO,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,IAAU;QACf,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAA;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,CACL,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;YAC5B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW;gBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM;oBACxB,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,cAAc;wBACxC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM;4BACxB,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,iBAAiB;gCAC9C,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa;oCACtC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ;wCAClD,CAAC,CAAC,SAAS,CACZ,CAAA;QACD,oBAAoB;IACtB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,CAAA;IACvC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,CAAA;IACvC,CAAC;IAED;;;;;;OAMG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACrD,CAAC;IAED;;;;;;;OAOG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED;;;;;;;OAOG;IACH,aAAa;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC;IAED;;;;;;OAMG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAC9B,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QAC9B,OAAO,CAAC,CACN,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,WAAW;YACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CACpB,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,CAAS;QACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjB,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,eAAe,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;QAC/B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,qBAAqB;QACrB,gEAAgE;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC9D,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YAChE,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,aAAa,CAAE,EAA4B,CAAC,IAAI,CAAC,CAAA;YACtD,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;QAC/B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,qBAAqB;QACrB,gEAAgE;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YACnD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YAC5D,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,aAAa,CAAE,EAA4B,CAAC,IAAI,CAAC,CAAA;YACtD,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAED,eAAe,CAAC,QAAkB;QAChC,qCAAqC;QACrC,IAAI,CAAC,KAAK,IAAI,cAAc,CAAA;QAC5B,oDAAoD;QACpD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YACrB,IAAI,CAAC;gBAAE,CAAC,CAAC,WAAW,EAAE,CAAA;QACxB,CAAC;IACH,CAAC;IAED,WAAW;QACT,6BAA6B;QAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM;YAAE,OAAM;QAC/B,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,YAAY,CAAA;QACjD,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAC5B,CAAC;IAED,mBAAmB;QACjB,gDAAgD;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAA;QACxB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,CAAC,CAAC,WAAW,EAAE,CAAA;QACjB,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,KAAK,IAAI,WAAW,CAAA;QACzB,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAED,2DAA2D;IAC3D,YAAY;QACV,yDAAyD;QACzD,0DAA0D;QAC1D,0DAA0D;QAC1D,sCAAsC;QACtC,qBAAqB;QACrB,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO;YAAE,OAAM;QAChC,oBAAoB;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QAClB,sDAAsD;QACtD,8CAA8C;QAC9C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK;YAAE,CAAC,IAAI,YAAY,CAAA;QAC3C,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAA;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAC5B,CAAC;IAED,YAAY,CAAC,OAAe,EAAE;QAC5B,oDAAoD;QACpD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,EAAE,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,UAAU,CAAC,OAAe,EAAE;QAC1B,8DAA8D;QAC9D,qBAAqB;QACrB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,6CAA6C;YAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAkB,CAAA;YACjC,CAAC,CAAC,YAAY,EAAE,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,oBAAoB;YACpB,IAAI,CAAC,WAAW,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,OAAe,EAAE;QAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,GAAG,IAAI,WAAW,CAAA;QAClB,IAAI,IAAI,KAAK,QAAQ;YAAE,GAAG,IAAI,MAAM,CAAA;QACpC,6DAA6D;QAC7D,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5C,iEAAiE;YACjE,iBAAiB;YACjB,GAAG,IAAI,YAAY,CAAA;QACrB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;QAChB,gEAAgE;QAChE,sDAAsD;QACtD,qBAAqB;QACrB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;QAC5B,CAAC;QACD,oBAAoB;IACtB,CAAC;IAED,gBAAgB,CAAC,CAAS,EAAE,CAAW;QACrC,OAAO,CACL,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAC/B,CAAA;IACH,CAAC;IAED,mBAAmB,CAAC,CAAS,EAAE,CAAW;QACxC,qDAAqD;QACrD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;QAC/B,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACzD,KAAK,CAAC,KAAK,IAAI,OAAO,CAAA;QACxB,CAAC;QACD,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAC,WAAW,EAAE,CAAA;QACf,OAAO,KAAK,CAAA;IACd,CAAC;IAED,yBAAyB,CAAC,CAAS,EAAE,CAAW;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACnB,MAAM,IAAI,GACR,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC3D,IAAI,IAAI,KAAK,MAAO,CAAC,UAAU,EAAE,CAAC;gBAChC,SAAQ;YACV,CAAC;YAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,oBAAoB,CAClB,CAAS,EACT,CAAW,EACX,KAAa,EACb,CAAW;QAEX,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;QAChB,mDAAmD;QACnD,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACjD,uDAAuD;QACvD,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI;YAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;QAEjC,6DAA6D;QAC7D,+DAA+D;QAC/D,IAAI,KAAK,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,CAAC,CAAC,GAAG,EAAE,CAAA;;gBAC9B,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YACvB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACd,CAAC;QACD,CAAC,CAAC,WAAW,EAAE,CAAA;QACf,OAAO,CAAC,CAAA;IACV,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC/D,OAAO,IAAI,CAAA;YACb,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,CAAE,EAA4B,CAAC,IAAI,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBACpD,OAAO,IAAI,CAAA;YACb,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,CAAE,EAA4B,CAAC,IAAI,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU,CAAC,EAAS;QAClB,MAAM,EACJ,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,GACJ,GAAG,EAAE,CAAA;QACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;QAC1B,2CAA2C;QAC3C,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,IAAI,GAAG,YAAY,CAAA;QAC9D,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACzD,IAAI,CAAC,KAAK,IAAI,OAAO,CAAA;QACvB,CAAC;IACH,CAAC;IAED,YAAY,GAGE,EAAE,CAAA;IAChB,kBAAkB,GAAY,KAAK,CAAA;IACnC,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAA;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5B,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IACvC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CACP,EAAkE,EAClE,aAAsB,KAAK;QAE3B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACvB,IAAI,UAAU;gBAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;;gBACvB,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YACvC,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;YACjD,IAAI,UAAU;gBAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;;gBACtB,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACtC,OAAM;QACR,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAE9B,4CAA4C;QAC5C,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;YAClE,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,CAAC,YAAY,CAAE,EAA4B,CAAC,IAAI,CAAC,CAAA;gBACrD,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAA;YAC1B,CAAC;iBAAM,CAAC;gBACN,oDAAoD;gBACpD,YAAY;gBACZ,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;gBACpC,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,qBAAqB,CAAgB;IAErC;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACvB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;QAChD,CAAC;QAED,4CAA4C;QAC5C,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,qBAAqB,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,IAAI,OAAO,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;YAClC,oBAAoB;YACpB,IAAI,CAAC,qBAAqB,GAAG,IAAI,OAAO,CACtC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CACvB,CAAA;YACD,IAAI,CAAC;gBACH,KAAK,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACxD,aAAa,EAAE,IAAI;iBACpB,CAAC,EAAE,CAAC;oBACH,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;gBACpC,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,CAAE,EAA4B,CAAC,IAAI,CAAC,CAAA;gBACrD,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAA;YAC1B,CAAC;YACD,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAA;YACtC,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACvB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;QAChD,CAAC;QAED,4CAA4C;QAC5C,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE;gBAC7C,aAAa,EAAE,IAAI;aACpB,CAAC,EAAE,CAAC;gBACH,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YACpC,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAE,EAA4B,CAAC,IAAI,CAAC,CAAA;YACrD,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ;YAAE,OAAO,KAAK,CAAA;QACvC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QAC9B,mEAAmE;QACnE,qBAAqB;QACrB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAA;QACd,CAAC;QACD,oBAAoB;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU,CACR,IAA+B,EAC/B,UAAqC;QAErC,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK;YAC9B,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACxB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAClC,CAAA;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAA;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QACvE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAA;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QACvE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YACjD,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,CAAC,QAAQ,CAAC,CAAC,MAAgB;QACzB,IAAI,MAAM,KAAK,IAAI;YAAE,OAAM;QAC3B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QAEjB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAW,EAAE,CAAC,CAAA;QACrC,IAAI,EAAE,GAAG,EAAE,CAAA;QACX,IAAI,CAAC,GAAa,IAAI,CAAA;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACd,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC/B,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC/B,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;YACZ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;QACD,oCAAoC;QACpC,CAAC,GAAG,MAAM,CAAA;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA;YACvB,CAAC,CAAC,cAAc,GAAG,SAAS,CAAA;YAC5B,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;QACd,CAAC;IACH,CAAC;CACF;AAzlCD,4BAylCC;AAED;;;;;GAKG;AACH,MAAa,SAAU,SAAQ,QAAQ;IACrC;;OAEG;IACH,GAAG,GAAS,IAAI,CAAA;IAChB;;OAEG;IACH,QAAQ,GAAW,SAAS,CAAA;IAE5B;;;;;OAKG;IACH,YACE,IAAY,EACZ,OAAe,OAAO,EACtB,IAA0B,EAC1B,KAAgC,EAChC,MAAe,EACf,QAAuB,EACvB,IAAc;QAEd,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAY,EAAE,OAAe,OAAO,EAAE,OAAiB,EAAE;QAChE,OAAO,IAAI,SAAS,CAClB,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAAE,EACpB,IAAI,CACL,CAAA;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,iBAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,QAAgB;QACtB,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;QAC7C,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;QACD,8DAA8D;QAC9D,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QACD,uCAAuC;QACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,eAAe,CAChD,QAAQ,EACR,IAAI,CACL,CAAC,IAAI,CAAC,CAAA;IACT,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAgB,EAAE,UAAkB,IAAI,CAAC,IAAI,CAAC,IAAI;QACzD,2DAA2D;QAC3D,qEAAqE;QACrE,yBAAyB;QACzB,QAAQ,GAAG,QAAQ;aAChB,WAAW,EAAE;aACb,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;aACpB,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAClC,OAAO,QAAQ,KAAK,OAAO,CAAA;IAC7B,CAAC;CACF;AApFD,8BAoFC;AAED;;;;GAIG;AACH,MAAa,SAAU,SAAQ,QAAQ;IACrC;;OAEG;IACH,QAAQ,GAAQ,GAAG,CAAA;IACnB;;OAEG;IACH,GAAG,GAAQ,GAAG,CAAA;IAEd;;;;;OAKG;IACH,YACE,IAAY,EACZ,OAAe,OAAO,EACtB,IAA0B,EAC1B,KAAgC,EAChC,MAAe,EACf,QAAuB,EACvB,IAAc;QAEd,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAY,EAAE,OAAe,OAAO,EAAE,OAAiB,EAAE;QAChE,OAAO,IAAI,SAAS,CAClB,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAAE,EACpB,IAAI,CACL,CAAA;IACH,CAAC;CACF;AAxDD,8BAwDC;AAiCD;;;;;;;GAOG;AACH,MAAsB,cAAc;IAClC;;OAEG;IACH,IAAI,CAAU;IACd;;OAEG;IACH,QAAQ,CAAQ;IAChB;;OAEG;IACH,KAAK,CAA2B;IAChC;;OAEG;IACH,GAAG,CAAU;IACb,aAAa,CAAc;IAC3B,kBAAkB,CAAc;IAChC,SAAS,CAAe;IACxB;;;;OAIG;IACH,MAAM,CAAS;IASf,GAAG,CAAS;IAEZ;;;;;;OAMG;IACH,YACE,MAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,QAAqC,EACrC,GAAoB,EACpB,EACE,MAAM,EACN,iBAAiB,GAAG,EAAE,GAAG,IAAI,EAC7B,EAAE,GAAG,SAAS,MACI,EAAE;QAEtB,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAC3B,IAAI,GAAG,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,GAAG,GAAG,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;QACD,qDAAqD;QACrD,+CAA+C;QAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE,CAAA;QACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAA;QAErD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChE,8DAA8D;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,GAAG,EAAE,CAAA;QACb,CAAC;QACD,qBAAqB;QACrB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,SAAS,CACjB,oDAAoD,CACrD,CAAA;QACH,CAAC;QACD,oBAAoB;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QACrC,IAAI,IAAI,GAAa,IAAI,CAAC,IAAI,CAAA;QAC9B,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAA;QAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;QACvB,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAA;YACf,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACtB,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC/C,aAAa,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAChD,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;aACpD,CAAC,CAAA;YACF,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAsB,IAAI,CAAC,GAAG;QAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAmBD;;;;;OAKG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,GAAG,KAAe;QACxB,+DAA+D;QAC/D,gEAAgE;QAChE,IAAI,CAAC,GAAG,EAAE,CAAA;QACV,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG;gBAAE,SAAQ;YAC7B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACvB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,MAAK;YACP,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAA;QACf,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC7C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACjC,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;OAUG;IACH,YAAY,CAAC,GAAG,KAAe;QAC7B,+DAA+D;QAC/D,gEAAgE;QAChE,IAAI,CAAC,GAAG,EAAE,CAAA;QACV,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG;gBAAE,SAAQ;YAC7B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACvB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,MAAK;YACP,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAA;QACf,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QAClD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAA2B,IAAI,CAAC,GAAG;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,QAA2B,IAAI,CAAC,GAAG;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,KAAK,CAAC,aAAa,EAAE,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAA2B,IAAI,CAAC,GAAG;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,QAA2B,IAAI,CAAC,GAAG;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC3C,CAAC;IAkCD,KAAK,CAAC,OAAO,CACX,QAAwD,IAAI,CAAC,GAAG,EAChE,OAAmC;QACjC,aAAa,EAAE,IAAI;KACpB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,CAAA;YACZ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;QAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;YACxB,OAAO,EAAE,CAAA;QACX,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;YAC/B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAsBD,WAAW,CACT,QAAwD,IAAI,CAAC,GAAG,EAChE,OAAmC;QACjC,aAAa,EAAE,IAAI;KACpB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,CAAA;YACZ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;QACrC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;YACxB,OAAO,EAAE,CAAA;QACX,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,KAAK,CACT,QAA2B,IAAI,CAAC,GAAG;QAEnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAA2B,IAAI,CAAC,GAAG;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1B,CAAC;IAkCD,KAAK,CAAC,QAAQ,CACZ,QAAwD,IAAI,CAAC,GAAG,EAChE,EAAE,aAAa,KAAiC;QAC9C,aAAa,EAAE,KAAK;KACrB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;YACnC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;QAChC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC1C,CAAC;IAuBD,YAAY,CACV,QAAwD,IAAI,CAAC,GAAG,EAChE,EAAE,aAAa,KAAiC;QAC9C,aAAa,EAAE,KAAK;KACrB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;YACnC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,CAAA;QAC9B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC1C,CAAC;IAiCD,KAAK,CAAC,QAAQ,CACZ,QAAwD,IAAI,CAAC,GAAG,EAChE,EAAE,aAAa,KAAiC;QAC9C,aAAa,EAAE,KAAK;KACrB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;YACnC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;QAChC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC1C,CAAC;IAoBD,YAAY,CACV,QAAwD,IAAI,CAAC,GAAG,EAChE,EAAE,aAAa,KAAiC;QAC9C,aAAa,EAAE,KAAK;KACrB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;YACnC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,CAAA;QAC9B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC1C,CAAC;IA6BD,KAAK,CAAC,IAAI,CACR,QAAyC,IAAI,CAAC,GAAG,EACjD,OAAoB,EAAE;QAEtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,CAAA;YACZ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,EACJ,aAAa,GAAG,IAAI,EACpB,MAAM,GAAG,KAAK,EACd,MAAM,EACN,UAAU,GACX,GAAG,IAAI,CAAA;QACR,MAAM,OAAO,GAA0B,EAAE,CAAA;QACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAY,CAAA;QAChC,MAAM,IAAI,GAAG,CACX,GAAa,EACb,EAAwC,EACxC,EAAE;YACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACb,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBAC5B,qBAAqB;gBACrB,IAAI,EAAE,EAAE,CAAC;oBACP,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;gBACf,CAAC;gBACD,oBAAoB;gBACpB,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAA;gBACxB,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,EAAE,CAAA;gBACrB,MAAM,IAAI,GAAG,GAAG,EAAE;oBAChB,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;wBAChB,EAAE,EAAE,CAAA;oBACN,CAAC;gBACH,CAAC,CAAA;gBACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;oBAChD,CAAC;oBACD,IAAI,MAAM,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;wBACjC,CAAC,CAAC,QAAQ,EAAE;6BACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CACR,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CACzD,CAAA;oBACL,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;4BACnC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;wBACf,CAAC;6BAAM,CAAC;4BACN,IAAI,EAAE,CAAA;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAA,CAAC,cAAc;QACzB,CAAC,CAAA;QAED,MAAM,KAAK,GAAG,KAAK,CAAA;QACnB,OAAO,IAAI,OAAO,CAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACrD,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE;gBACf,qBAAqB;gBACrB,IAAI,EAAE;oBAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAA;gBACtB,oBAAoB;gBACpB,GAAG,CAAC,OAAgC,CAAC,CAAA;YACvC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IA6BD,QAAQ,CACN,QAAyC,IAAI,CAAC,GAAG,EACjD,OAAoB,EAAE;QAEtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,CAAA;YACZ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,EACJ,aAAa,GAAG,IAAI,EACpB,MAAM,GAAG,KAAK,EACd,MAAM,EACN,UAAU,GACX,GAAG,IAAI,CAAA;QACR,MAAM,OAAO,GAA0B,EAAE,CAAA;QACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;YACjC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAChD,CAAC;gBACD,IAAI,CAAC,GAAyB,CAAC,CAAA;gBAC/B,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;oBACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;wBAAE,SAAQ;oBACjD,IAAI,CAAC,CAAC,SAAS,EAAE;wBAAE,CAAC,CAAC,SAAS,EAAE,CAAA;gBAClC,CAAC;gBACD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAgC,CAAA;IACzC,CAAC;IAED;;;;;;;;OAQG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;IA+BD,OAAO,CACL,QAAyC,IAAI,CAAC,GAAG,EACjD,UAAuB,EAAE;QAEzB,oEAAoE;QACpE,yEAAyE;QACzE,yEAAyE;QACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,GAAG,KAAK,CAAA;YACf,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAA;IAC5D,CAAC;IAED;;;;OAIG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;IAC3B,CAAC;IAuBD,CAAC,WAAW,CACV,QAAyC,IAAI,CAAC,GAAG,EACjD,OAAoB,EAAE;QAEtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,CAAA;YACZ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,EACJ,aAAa,GAAG,IAAI,EACpB,MAAM,GAAG,KAAK,EACd,MAAM,EACN,UAAU,GACX,GAAG,IAAI,CAAA;QACR,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QAChD,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;YACjC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACxC,CAAC;gBACD,IAAI,CAAC,GAAyB,CAAC,CAAA;gBAC/B,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;oBACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;wBAAE,SAAQ;oBACjD,IAAI,CAAC,CAAC,SAAS,EAAE;wBAAE,CAAC,CAAC,SAAS,EAAE,CAAA;gBAClC,CAAC;gBACD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IA2BD,MAAM,CACJ,QAAyC,IAAI,CAAC,GAAG,EACjD,OAAoB,EAAE;QAEtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,CAAA;YACZ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,EACJ,aAAa,GAAG,IAAI,EACpB,MAAM,GAAG,KAAK,EACd,MAAM,EACN,UAAU,GACX,GAAG,IAAI,CAAA;QACR,MAAM,OAAO,GAAG,IAAI,mBAAQ,CAAoB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QACrE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAY,CAAA;QAChC,MAAM,KAAK,GAAe,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,MAAM,GAAG,KAAK,CAAA;YAClB,OAAO,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;gBACzB,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,IAAI,UAAU,KAAK,CAAC;wBAAE,OAAO,CAAC,GAAG,EAAE,CAAA;oBACnC,OAAM;gBACR,CAAC;gBAED,UAAU,EAAE,CAAA;gBACZ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAEb,MAAM,SAAS,GAAG,CAChB,EAAgC,EAChC,OAAmB,EACnB,eAAwB,KAAK,EAC7B,EAAE;oBACF,qBAAqB;oBACrB,IAAI,EAAE;wBAAE,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;oBACxC,oBAAoB;oBACpB,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;wBAC5B,MAAM,QAAQ,GAAoC,EAAE,CAAA;wBACpD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;4BACxB,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;gCACvB,QAAQ,CAAC,IAAI,CACX,CAAC;qCACE,QAAQ,EAAE;qCACV,IAAI,CAAC,CAAC,CAAuB,EAAE,EAAE,CAChC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAC/B,CACJ,CAAA;4BACH,CAAC;wBACH,CAAC;wBACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;4BACpB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC9B,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAC/B,CAAA;4BACD,OAAM;wBACR,CAAC;oBACH,CAAC;oBAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;wBACxB,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gCACrD,MAAM,GAAG,IAAI,CAAA;4BACf,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,UAAU,EAAE,CAAA;oBACZ,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;wBACxB,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;wBACjC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;4BACnC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBACf,CAAC;oBACH,CAAC;oBACD,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;wBAC/B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;oBAChC,CAAC;yBAAM,IAAI,CAAC,IAAI,EAAE,CAAC;wBACjB,OAAO,EAAE,CAAA;oBACX,CAAC;gBACH,CAAC,CAAA;gBAED,oBAAoB;gBACpB,IAAI,IAAI,GAAG,IAAI,CAAA;gBACf,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBAC9B,IAAI,GAAG,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAA;QACD,OAAO,EAAE,CAAA;QACT,OAAO,OAAgD,CAAA;IACzD,CAAC;IA8BD,UAAU,CACR,QAAyC,IAAI,CAAC,GAAG,EACjD,OAAoB,EAAE;QAEtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,CAAA;YACZ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,EACJ,aAAa,GAAG,IAAI,EACpB,MAAM,GAAG,KAAK,EACd,MAAM,EACN,UAAU,GACX,GAAG,IAAI,CAAA;QACR,MAAM,OAAO,GAAG,IAAI,mBAAQ,CAAoB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QACrE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAY,CAAA;QAChC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,KAAK,GAAe,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,MAAM,GAAG,KAAK,CAAA;YAClB,OAAO,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;gBACzB,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,IAAI,UAAU,KAAK,CAAC;wBAAE,OAAO,CAAC,GAAG,EAAE,CAAA;oBACnC,OAAM;gBACR,CAAC;gBACD,UAAU,EAAE,CAAA;gBACZ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAEb,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;gBACjC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;4BACrD,MAAM,GAAG,IAAI,CAAA;wBACf,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,UAAU,EAAE,CAAA;gBACZ,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC,GAAyB,CAAC,CAAA;oBAC/B,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;wBACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;4BAAE,SAAQ;wBACjD,IAAI,CAAC,CAAC,SAAS,EAAE;4BAAE,CAAC,CAAC,SAAS,EAAE,CAAA;oBAClC,CAAC;oBACD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;wBACnC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAChE,CAAC,CAAA;QACD,OAAO,EAAE,CAAA;QACT,OAAO,OAAgD,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,OAAsB,IAAI,CAAC,GAAG;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAA;QACvB,IAAI,CAAC,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACnE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;CACF;AA9gCD,wCA8gCC;AAiED;;;;;GAKG;AACH,MAAa,eAAgB,SAAQ,cAAc;IACjD;;OAEG;IACH,GAAG,GAAS,IAAI,CAAA;IAEhB,YACE,MAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,OAAuB,EAAE;QAEzB,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;QAC9B,KAAK,CAAC,GAAG,EAAE,iBAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,KAAK,IAAI,CAAC,GAAyB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7D,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,GAAW;QACvB,wEAAwE;QACxE,iEAAiE;QACjE,kDAAkD;QAClD,OAAO,iBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IAC5C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,EAAW;QACjB,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,SAAS,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAAE,EACpB,EAAE,EAAE,EAAE,CACP,CAAA;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,CAAS;QAClB,OAAO,CACL,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CACrE,CAAA;IACH,CAAC;CACF;AAnDD,0CAmDC;AAED;;;;;;GAMG;AACH,MAAa,eAAgB,SAAQ,cAAc;IACjD;;OAEG;IACH,GAAG,GAAQ,GAAG,CAAA;IACd,YACE,MAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,OAAuB,EAAE;QAEzB,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;QAC/B,KAAK,CAAC,GAAG,EAAE,iBAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,EAAW;QACjB,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,SAAS,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAAE,EACpB,EAAE,EAAE,EAAE,CACP,CAAA;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,CAAS;QAClB,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;CACF;AA1CD,0CA0CC;AAED;;;;;;;GAOG;AACH,MAAa,gBAAiB,SAAQ,eAAe;IACnD,YACE,MAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,OAAuB,EAAE;QAEzB,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;QAC9B,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACjC,CAAC;CACF;AARD,4CAQC;AAED;;;;GAIG;AACU,QAAA,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAGxE;;;;;GAKG;AACU,QAAA,UAAU,GAIrB,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe;IAC9C,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB;QAClD,CAAC,CAAC,eAAe,CAAA","sourcesContent":["import { LRUCache } from 'lru-cache'\nimport { posix, win32 } from 'node:path'\n\nimport { fileURLToPath } from 'node:url'\n\nimport {\n  lstatSync,\n  readdir as readdirCB,\n  readdirSync,\n  readlinkSync,\n  realpathSync as rps,\n} from 'fs'\nimport * as actualFS from 'node:fs'\n\nconst realpathSync = rps.native\n// TODO: test perf of fs/promises realpath vs realpathCB,\n// since the promises one uses realpath.native\n\nimport { lstat, readdir, readlink, realpath } from 'node:fs/promises'\n\nimport { Minipass } from 'minipass'\nimport type { Dirent, Stats } from 'node:fs'\n\n/**\n * An object that will be used to override the default `fs`\n * methods.  Any methods that are not overridden will use Node's\n * built-in implementations.\n *\n * - lstatSync\n * - readdir (callback `withFileTypes` Dirent variant, used for\n *   readdirCB and most walks)\n * - readdirSync\n * - readlinkSync\n * - realpathSync\n * - promises: Object containing the following async methods:\n *   - lstat\n *   - readdir (Dirent variant only)\n *   - readlink\n *   - realpath\n */\nexport interface FSOption {\n  lstatSync?: (path: string) => Stats\n  readdir?: (\n    path: string,\n    options: { withFileTypes: true },\n    cb: (er: NodeJS.ErrnoException | null, entries?: Dirent[]) => any,\n  ) => void\n  readdirSync?: (\n    path: string,\n    options: { withFileTypes: true },\n  ) => Dirent[]\n  readlinkSync?: (path: string) => string\n  realpathSync?: (path: string) => string\n  promises?: {\n    lstat?: (path: string) => Promise<Stats>\n    readdir?: (\n      path: string,\n      options: { withFileTypes: true },\n    ) => Promise<Dirent[]>\n    readlink?: (path: string) => Promise<string>\n    realpath?: (path: string) => Promise<string>\n    [k: string]: any\n  }\n  [k: string]: any\n}\n\ninterface FSValue {\n  lstatSync: (path: string) => Stats\n  readdir: (\n    path: string,\n    options: { withFileTypes: true },\n    cb: (er: NodeJS.ErrnoException | null, entries?: Dirent[]) => any,\n  ) => void\n  readdirSync: (path: string, options: { withFileTypes: true }) => Dirent[]\n  readlinkSync: (path: string) => string\n  realpathSync: (path: string) => string\n  promises: {\n    lstat: (path: string) => Promise<Stats>\n    readdir: (\n      path: string,\n      options: { withFileTypes: true },\n    ) => Promise<Dirent[]>\n    readlink: (path: string) => Promise<string>\n    realpath: (path: string) => Promise<string>\n    [k: string]: any\n  }\n  [k: string]: any\n}\n\nconst defaultFS: FSValue = {\n  lstatSync,\n  readdir: readdirCB,\n  readdirSync,\n  readlinkSync,\n  realpathSync,\n  promises: {\n    lstat,\n    readdir,\n    readlink,\n    realpath,\n  },\n}\n\n// if they just gave us require('fs') then use our default\nconst fsFromOption = (fsOption?: FSOption): FSValue =>\n  !fsOption || fsOption === defaultFS || fsOption === actualFS ?\n    defaultFS\n  : {\n      ...defaultFS,\n      ...fsOption,\n      promises: {\n        ...defaultFS.promises,\n        ...(fsOption.promises || {}),\n      },\n    }\n\n// turn something like //?/c:/ into c:\\\nconst uncDriveRegexp = /^\\\\\\\\\\?\\\\([a-z]:)\\\\?$/i\nconst uncToDrive = (rootPath: string): string =>\n  rootPath.replace(/\\//g, '\\\\').replace(uncDriveRegexp, '$1\\\\')\n\n// windows paths are separated by either / or \\\nconst eitherSep = /[\\\\\\/]/\n\nconst UNKNOWN = 0 // may not even exist, for all we know\nconst IFIFO = 0b0001\nconst IFCHR = 0b0010\nconst IFDIR = 0b0100\nconst IFBLK = 0b0110\nconst IFREG = 0b1000\nconst IFLNK = 0b1010\nconst IFSOCK = 0b1100\nconst IFMT = 0b1111\n\nexport type Type =\n  | 'Unknown'\n  | 'FIFO'\n  | 'CharacterDevice'\n  | 'Directory'\n  | 'BlockDevice'\n  | 'File'\n  | 'SymbolicLink'\n  | 'Socket'\n\n// mask to unset low 4 bits\nconst IFMT_UNKNOWN = ~IFMT\n\n// set after successfully calling readdir() and getting entries.\nconst READDIR_CALLED = 0b0000_0001_0000\n// set after a successful lstat()\nconst LSTAT_CALLED = 0b0000_0010_0000\n// set if an entry (or one of its parents) is definitely not a dir\nconst ENOTDIR = 0b0000_0100_0000\n// set if an entry (or one of its parents) does not exist\n// (can also be set on lstat errors like EACCES or ENAMETOOLONG)\nconst ENOENT = 0b0000_1000_0000\n// cannot have child entries -- also verify &IFMT is either IFDIR or IFLNK\n// set if we fail to readlink\nconst ENOREADLINK = 0b0001_0000_0000\n// set if we know realpath() will fail\nconst ENOREALPATH = 0b0010_0000_0000\n\nconst ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH\nconst TYPEMASK = 0b0011_1111_1111\n\nconst entToType = (s: Dirent | Stats) =>\n  s.isFile() ? IFREG\n  : s.isDirectory() ? IFDIR\n  : s.isSymbolicLink() ? IFLNK\n  : s.isCharacterDevice() ? IFCHR\n  : s.isBlockDevice() ? IFBLK\n  : s.isSocket() ? IFSOCK\n  : s.isFIFO() ? IFIFO\n  : UNKNOWN\n\n// normalize unicode path names\nconst normalizeCache = new Map<string, string>()\nconst normalize = (s: string) => {\n  const c = normalizeCache.get(s)\n  if (c) return c\n  const n = s.normalize('NFKD')\n  normalizeCache.set(s, n)\n  return n\n}\n\nconst normalizeNocaseCache = new Map<string, string>()\nconst normalizeNocase = (s: string) => {\n  const c = normalizeNocaseCache.get(s)\n  if (c) return c\n  const n = normalize(s.toLowerCase())\n  normalizeNocaseCache.set(s, n)\n  return n\n}\n\n/**\n * Options that may be provided to the Path constructor\n */\nexport interface PathOpts {\n  fullpath?: string\n  relative?: string\n  relativePosix?: string\n  parent?: PathBase\n  /**\n   * See {@link FSOption}\n   */\n  fs?: FSOption\n}\n\n/**\n * An LRUCache for storing resolved path strings or Path objects.\n * @internal\n */\nexport class ResolveCache extends LRUCache<string, string> {\n  constructor() {\n    super({ max: 256 })\n  }\n}\n\n// In order to prevent blowing out the js heap by allocating hundreds of\n// thousands of Path entries when walking extremely large trees, the \"children\"\n// in this tree are represented by storing an array of Path entries in an\n// LRUCache, indexed by the parent.  At any time, Path.children() may return an\n// empty array, indicating that it doesn't know about any of its children, and\n// thus has to rebuild that cache.  This is fine, it just means that we don't\n// benefit as much from having the cached entries, but huge directory walks\n// don't blow out the stack, and smaller ones are still as fast as possible.\n//\n//It does impose some complexity when building up the readdir data, because we\n//need to pass a reference to the children array that we started with.\n\n/**\n * an LRUCache for storing child entries.\n * @internal\n */\nexport class ChildrenCache extends LRUCache<PathBase, Children> {\n  constructor(maxSize: number = 16 * 1024) {\n    super({\n      maxSize,\n      // parent + children\n      sizeCalculation: a => a.length + 1,\n    })\n  }\n}\n\n/**\n * Array of Path objects, plus a marker indicating the first provisional entry\n *\n * @internal\n */\nexport type Children = PathBase[] & { provisional: number }\n\nconst setAsCwd = Symbol('PathScurry setAsCwd')\n\n/**\n * Path objects are sort of like a super-powered\n * {@link https://nodejs.org/docs/latest/api/fs.html#class-fsdirent fs.Dirent}\n *\n * Each one represents a single filesystem entry on disk, which may or may not\n * exist. It includes methods for reading various types of information via\n * lstat, readlink, and readdir, and caches all information to the greatest\n * degree possible.\n *\n * Note that fs operations that would normally throw will instead return an\n * \"empty\" value. This is in order to prevent excessive overhead from error\n * stack traces.\n */\nexport abstract class PathBase implements Dirent {\n  /**\n   * the basename of this path\n   *\n   * **Important**: *always* test the path name against any test string\n   * usingthe {@link isNamed} method, and not by directly comparing this\n   * string. Otherwise, unicode path strings that the system sees as identical\n   * will not be properly treated as the same path, leading to incorrect\n   * behavior and possible security issues.\n   */\n  name: string\n  /**\n   * the Path entry corresponding to the path root.\n   *\n   * @internal\n   */\n  root: PathBase\n  /**\n   * All roots found within the current PathScurry family\n   *\n   * @internal\n   */\n  roots: { [k: string]: PathBase }\n  /**\n   * a reference to the parent path, or undefined in the case of root entries\n   *\n   * @internal\n   */\n  parent?: PathBase\n  /**\n   * boolean indicating whether paths are compared case-insensitively\n   * @internal\n   */\n  nocase: boolean\n\n  /**\n   * boolean indicating that this path is the current working directory\n   * of the PathScurry collection that contains it.\n   */\n  isCWD: boolean = false\n\n  /**\n   * the string or regexp used to split paths. On posix, it is `'/'`, and on\n   * windows it is a RegExp matching either `'/'` or `'\\\\'`\n   */\n  abstract splitSep: string | RegExp\n  /**\n   * The path separator string to use when joining paths\n   */\n  abstract sep: string\n\n  // potential default fs override\n  #fs: FSValue\n\n  // Stats fields\n  #dev?: number\n  get dev() {\n    return this.#dev\n  }\n  #mode?: number\n  get mode() {\n    return this.#mode\n  }\n  #nlink?: number\n  get nlink() {\n    return this.#nlink\n  }\n  #uid?: number\n  get uid() {\n    return this.#uid\n  }\n  #gid?: number\n  get gid() {\n    return this.#gid\n  }\n  #rdev?: number\n  get rdev() {\n    return this.#rdev\n  }\n  #blksize?: number\n  get blksize() {\n    return this.#blksize\n  }\n  #ino?: number\n  get ino() {\n    return this.#ino\n  }\n  #size?: number\n  get size() {\n    return this.#size\n  }\n  #blocks?: number\n  get blocks() {\n    return this.#blocks\n  }\n  #atimeMs?: number\n  get atimeMs() {\n    return this.#atimeMs\n  }\n  #mtimeMs?: number\n  get mtimeMs() {\n    return this.#mtimeMs\n  }\n  #ctimeMs?: number\n  get ctimeMs() {\n    return this.#ctimeMs\n  }\n  #birthtimeMs?: number\n  get birthtimeMs() {\n    return this.#birthtimeMs\n  }\n  #atime?: Date\n  get atime() {\n    return this.#atime\n  }\n  #mtime?: Date\n  get mtime() {\n    return this.#mtime\n  }\n  #ctime?: Date\n  get ctime() {\n    return this.#ctime\n  }\n  #birthtime?: Date\n  get birthtime() {\n    return this.#birthtime\n  }\n\n  #matchName: string\n  #depth?: number\n  #fullpath?: string\n  #fullpathPosix?: string\n  #relative?: string\n  #relativePosix?: string\n  #type: number\n  #children: ChildrenCache\n  #linkTarget?: PathBase\n  #realpath?: PathBase\n\n  /**\n   * This property is for compatibility with the Dirent class as of\n   * Node v20, where Dirent['parentPath'] refers to the path of the\n   * directory that was passed to readdir. For root entries, it's the path\n   * to the entry itself.\n   */\n  get parentPath(): string {\n    return (this.parent || this).fullpath()\n  }\n\n  /**\n   * Deprecated alias for Dirent['parentPath'] Somewhat counterintuitively,\n   * this property refers to the *parent* path, not the path object itself.\n   */\n  get path(): string {\n    return this.parentPath\n  }\n\n  /**\n   * Do not create new Path objects directly.  They should always be accessed\n   * via the PathScurry class or other methods on the Path class.\n   *\n   * @internal\n   */\n  constructor(\n    name: string,\n    type: number = UNKNOWN,\n    root: PathBase | undefined,\n    roots: { [k: string]: PathBase },\n    nocase: boolean,\n    children: ChildrenCache,\n    opts: PathOpts,\n  ) {\n    this.name = name\n    this.#matchName = nocase ? normalizeNocase(name) : normalize(name)\n    this.#type = type & TYPEMASK\n    this.nocase = nocase\n    this.roots = roots\n    this.root = root || this\n    this.#children = children\n    this.#fullpath = opts.fullpath\n    this.#relative = opts.relative\n    this.#relativePosix = opts.relativePosix\n    this.parent = opts.parent\n    if (this.parent) {\n      this.#fs = this.parent.#fs\n    } else {\n      this.#fs = fsFromOption(opts.fs)\n    }\n  }\n\n  /**\n   * Returns the depth of the Path object from its root.\n   *\n   * For example, a path at `/foo/bar` would have a depth of 2.\n   */\n  depth(): number {\n    if (this.#depth !== undefined) return this.#depth\n    if (!this.parent) return (this.#depth = 0)\n    return (this.#depth = this.parent.depth() + 1)\n  }\n\n  /**\n   * @internal\n   */\n  abstract getRootString(path: string): string\n  /**\n   * @internal\n   */\n  abstract getRoot(rootPath: string): PathBase\n  /**\n   * @internal\n   */\n  abstract newChild(name: string, type?: number, opts?: PathOpts): PathBase\n\n  /**\n   * @internal\n   */\n  childrenCache() {\n    return this.#children\n  }\n\n  /**\n   * Get the Path object referenced by the string path, resolved from this Path\n   */\n  resolve(path?: string): PathBase {\n    if (!path) {\n      return this\n    }\n    const rootPath = this.getRootString(path)\n    const dir = path.substring(rootPath.length)\n    const dirParts = dir.split(this.splitSep)\n    const result: PathBase =\n      rootPath ?\n        this.getRoot(rootPath).#resolveParts(dirParts)\n      : this.#resolveParts(dirParts)\n    return result\n  }\n\n  #resolveParts(dirParts: string[]) {\n    let p: PathBase = this\n    for (const part of dirParts) {\n      p = p.child(part)\n    }\n    return p\n  }\n\n  /**\n   * Returns the cached children Path objects, if still available.  If they\n   * have fallen out of the cache, then returns an empty array, and resets the\n   * READDIR_CALLED bit, so that future calls to readdir() will require an fs\n   * lookup.\n   *\n   * @internal\n   */\n  children(): Children {\n    const cached = this.#children.get(this)\n    if (cached) {\n      return cached\n    }\n    const children: Children = Object.assign([], { provisional: 0 })\n    this.#children.set(this, children)\n    this.#type &= ~READDIR_CALLED\n    return children\n  }\n\n  /**\n   * Resolves a path portion and returns or creates the child Path.\n   *\n   * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is\n   * `'..'`.\n   *\n   * This should not be called directly.  If `pathPart` contains any path\n   * separators, it will lead to unsafe undefined behavior.\n   *\n   * Use `Path.resolve()` instead.\n   *\n   * @internal\n   */\n  child(pathPart: string, opts?: PathOpts): PathBase {\n    if (pathPart === '' || pathPart === '.') {\n      return this\n    }\n    if (pathPart === '..') {\n      return this.parent || this\n    }\n\n    // find the child\n    const children = this.children()\n    const name =\n      this.nocase ? normalizeNocase(pathPart) : normalize(pathPart)\n    for (const p of children) {\n      if (p.#matchName === name) {\n        return p\n      }\n    }\n\n    // didn't find it, create provisional child, since it might not\n    // actually exist.  If we know the parent isn't a dir, then\n    // in fact it CAN'T exist.\n    const s = this.parent ? this.sep : ''\n    const fullpath =\n      this.#fullpath ? this.#fullpath + s + pathPart : undefined\n    const pchild = this.newChild(pathPart, UNKNOWN, {\n      ...opts,\n      parent: this,\n      fullpath,\n    })\n\n    if (!this.canReaddir()) {\n      pchild.#type |= ENOENT\n    }\n\n    // don't have to update provisional, because if we have real children,\n    // then provisional is set to children.length, otherwise a lower number\n    children.push(pchild)\n    return pchild\n  }\n\n  /**\n   * The relative path from the cwd. If it does not share an ancestor with\n   * the cwd, then this ends up being equivalent to the fullpath()\n   */\n  relative(): string {\n    if (this.isCWD) return ''\n    if (this.#relative !== undefined) {\n      return this.#relative\n    }\n    const name = this.name\n    const p = this.parent\n    if (!p) {\n      return (this.#relative = this.name)\n    }\n    const pv = p.relative()\n    return pv + (!pv || !p.parent ? '' : this.sep) + name\n  }\n\n  /**\n   * The relative path from the cwd, using / as the path separator.\n   * If it does not share an ancestor with\n   * the cwd, then this ends up being equivalent to the fullpathPosix()\n   * On posix systems, this is identical to relative().\n   */\n  relativePosix(): string {\n    if (this.sep === '/') return this.relative()\n    if (this.isCWD) return ''\n    if (this.#relativePosix !== undefined) return this.#relativePosix\n    const name = this.name\n    const p = this.parent\n    if (!p) {\n      return (this.#relativePosix = this.fullpathPosix())\n    }\n    const pv = p.relativePosix()\n    return pv + (!pv || !p.parent ? '' : '/') + name\n  }\n\n  /**\n   * The fully resolved path string for this Path entry\n   */\n  fullpath(): string {\n    if (this.#fullpath !== undefined) {\n      return this.#fullpath\n    }\n    const name = this.name\n    const p = this.parent\n    if (!p) {\n      return (this.#fullpath = this.name)\n    }\n    const pv = p.fullpath()\n    const fp = pv + (!p.parent ? '' : this.sep) + name\n    return (this.#fullpath = fp)\n  }\n\n  /**\n   * On platforms other than windows, this is identical to fullpath.\n   *\n   * On windows, this is overridden to return the forward-slash form of the\n   * full UNC path.\n   */\n  fullpathPosix(): string {\n    if (this.#fullpathPosix !== undefined) return this.#fullpathPosix\n    if (this.sep === '/') return (this.#fullpathPosix = this.fullpath())\n    if (!this.parent) {\n      const p = this.fullpath().replace(/\\\\/g, '/')\n      if (/^[a-z]:\\//i.test(p)) {\n        return (this.#fullpathPosix = `//?/${p}`)\n      } else {\n        return (this.#fullpathPosix = p)\n      }\n    }\n    const p = this.parent\n    const pfpp = p.fullpathPosix()\n    const fpp = pfpp + (!pfpp || !p.parent ? '' : '/') + this.name\n    return (this.#fullpathPosix = fpp)\n  }\n\n  /**\n   * Is the Path of an unknown type?\n   *\n   * Note that we might know *something* about it if there has been a previous\n   * filesystem operation, for example that it does not exist, or is not a\n   * link, or whether it has child entries.\n   */\n  isUnknown(): boolean {\n    return (this.#type & IFMT) === UNKNOWN\n  }\n\n  isType(type: Type): boolean {\n    return this[`is${type}`]()\n  }\n\n  getType(): Type {\n    return (\n      this.isUnknown() ? 'Unknown'\n      : this.isDirectory() ? 'Directory'\n      : this.isFile() ? 'File'\n      : this.isSymbolicLink() ? 'SymbolicLink'\n      : this.isFIFO() ? 'FIFO'\n      : this.isCharacterDevice() ? 'CharacterDevice'\n      : this.isBlockDevice() ? 'BlockDevice'\n      : /* c8 ignore start */ this.isSocket() ? 'Socket'\n      : 'Unknown'\n    )\n    /* c8 ignore stop */\n  }\n\n  /**\n   * Is the Path a regular file?\n   */\n  isFile(): boolean {\n    return (this.#type & IFMT) === IFREG\n  }\n\n  /**\n   * Is the Path a directory?\n   */\n  isDirectory(): boolean {\n    return (this.#type & IFMT) === IFDIR\n  }\n\n  /**\n   * Is the path a character device?\n   */\n  isCharacterDevice(): boolean {\n    return (this.#type & IFMT) === IFCHR\n  }\n\n  /**\n   * Is the path a block device?\n   */\n  isBlockDevice(): boolean {\n    return (this.#type & IFMT) === IFBLK\n  }\n\n  /**\n   * Is the path a FIFO pipe?\n   */\n  isFIFO(): boolean {\n    return (this.#type & IFMT) === IFIFO\n  }\n\n  /**\n   * Is the path a socket?\n   */\n  isSocket(): boolean {\n    return (this.#type & IFMT) === IFSOCK\n  }\n\n  /**\n   * Is the path a symbolic link?\n   */\n  isSymbolicLink(): boolean {\n    return (this.#type & IFLNK) === IFLNK\n  }\n\n  /**\n   * Return the entry if it has been subject of a successful lstat, or\n   * undefined otherwise.\n   *\n   * Does not read the filesystem, so an undefined result *could* simply\n   * mean that we haven't called lstat on it.\n   */\n  lstatCached(): PathBase | undefined {\n    return this.#type & LSTAT_CALLED ? this : undefined\n  }\n\n  /**\n   * Return the cached link target if the entry has been the subject of a\n   * successful readlink, or undefined otherwise.\n   *\n   * Does not read the filesystem, so an undefined result *could* just mean we\n   * don't have any cached data. Only use it if you are very sure that a\n   * readlink() has been called at some point.\n   */\n  readlinkCached(): PathBase | undefined {\n    return this.#linkTarget\n  }\n\n  /**\n   * Returns the cached realpath target if the entry has been the subject\n   * of a successful realpath, or undefined otherwise.\n   *\n   * Does not read the filesystem, so an undefined result *could* just mean we\n   * don't have any cached data. Only use it if you are very sure that a\n   * realpath() has been called at some point.\n   */\n  realpathCached(): PathBase | undefined {\n    return this.#realpath\n  }\n\n  /**\n   * Returns the cached child Path entries array if the entry has been the\n   * subject of a successful readdir(), or [] otherwise.\n   *\n   * Does not read the filesystem, so an empty array *could* just mean we\n   * don't have any cached data. Only use it if you are very sure that a\n   * readdir() has been called recently enough to still be valid.\n   */\n  readdirCached(): PathBase[] {\n    const children = this.children()\n    return children.slice(0, children.provisional)\n  }\n\n  /**\n   * Return true if it's worth trying to readlink.  Ie, we don't (yet) have\n   * any indication that readlink will definitely fail.\n   *\n   * Returns false if the path is known to not be a symlink, if a previous\n   * readlink failed, or if the entry does not exist.\n   */\n  canReadlink(): boolean {\n    if (this.#linkTarget) return true\n    if (!this.parent) return false\n    // cases where it cannot possibly succeed\n    const ifmt = this.#type & IFMT\n    return !(\n      (ifmt !== UNKNOWN && ifmt !== IFLNK) ||\n      this.#type & ENOREADLINK ||\n      this.#type & ENOENT\n    )\n  }\n\n  /**\n   * Return true if readdir has previously been successfully called on this\n   * path, indicating that cachedReaddir() is likely valid.\n   */\n  calledReaddir(): boolean {\n    return !!(this.#type & READDIR_CALLED)\n  }\n\n  /**\n   * Returns true if the path is known to not exist. That is, a previous lstat\n   * or readdir failed to verify its existence when that would have been\n   * expected, or a parent entry was marked either enoent or enotdir.\n   */\n  isENOENT(): boolean {\n    return !!(this.#type & ENOENT)\n  }\n\n  /**\n   * Return true if the path is a match for the given path name.  This handles\n   * case sensitivity and unicode normalization.\n   *\n   * Note: even on case-sensitive systems, it is **not** safe to test the\n   * equality of the `.name` property to determine whether a given pathname\n   * matches, due to unicode normalization mismatches.\n   *\n   * Always use this method instead of testing the `path.name` property\n   * directly.\n   */\n  isNamed(n: string): boolean {\n    return !this.nocase ?\n        this.#matchName === normalize(n)\n      : this.#matchName === normalizeNocase(n)\n  }\n\n  /**\n   * Return the Path object corresponding to the target of a symbolic link.\n   *\n   * If the Path is not a symbolic link, or if the readlink call fails for any\n   * reason, `undefined` is returned.\n   *\n   * Result is cached, and thus may be outdated if the filesystem is mutated.\n   */\n  async readlink(): Promise<PathBase | undefined> {\n    const target = this.#linkTarget\n    if (target) {\n      return target\n    }\n    if (!this.canReadlink()) {\n      return undefined\n    }\n    /* c8 ignore start */\n    // already covered by the canReadlink test, here for ts grumples\n    if (!this.parent) {\n      return undefined\n    }\n    /* c8 ignore stop */\n    try {\n      const read = await this.#fs.promises.readlink(this.fullpath())\n      const linkTarget = (await this.parent.realpath())?.resolve(read)\n      if (linkTarget) {\n        return (this.#linkTarget = linkTarget)\n      }\n    } catch (er) {\n      this.#readlinkFail((er as NodeJS.ErrnoException).code)\n      return undefined\n    }\n  }\n\n  /**\n   * Synchronous {@link PathBase.readlink}\n   */\n  readlinkSync(): PathBase | undefined {\n    const target = this.#linkTarget\n    if (target) {\n      return target\n    }\n    if (!this.canReadlink()) {\n      return undefined\n    }\n    /* c8 ignore start */\n    // already covered by the canReadlink test, here for ts grumples\n    if (!this.parent) {\n      return undefined\n    }\n    /* c8 ignore stop */\n    try {\n      const read = this.#fs.readlinkSync(this.fullpath())\n      const linkTarget = this.parent.realpathSync()?.resolve(read)\n      if (linkTarget) {\n        return (this.#linkTarget = linkTarget)\n      }\n    } catch (er) {\n      this.#readlinkFail((er as NodeJS.ErrnoException).code)\n      return undefined\n    }\n  }\n\n  #readdirSuccess(children: Children) {\n    // succeeded, mark readdir called bit\n    this.#type |= READDIR_CALLED\n    // mark all remaining provisional children as ENOENT\n    for (let p = children.provisional; p < children.length; p++) {\n      const c = children[p]\n      if (c) c.#markENOENT()\n    }\n  }\n\n  #markENOENT() {\n    // mark as UNKNOWN and ENOENT\n    if (this.#type & ENOENT) return\n    this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN\n    this.#markChildrenENOENT()\n  }\n\n  #markChildrenENOENT() {\n    // all children are provisional and do not exist\n    const children = this.children()\n    children.provisional = 0\n    for (const p of children) {\n      p.#markENOENT()\n    }\n  }\n\n  #markENOREALPATH() {\n    this.#type |= ENOREALPATH\n    this.#markENOTDIR()\n  }\n\n  // save the information when we know the entry is not a dir\n  #markENOTDIR() {\n    // entry is not a directory, so any children can't exist.\n    // this *should* be impossible, since any children created\n    // after it's been marked ENOTDIR should be marked ENOENT,\n    // so it won't even get to this point.\n    /* c8 ignore start */\n    if (this.#type & ENOTDIR) return\n    /* c8 ignore stop */\n    let t = this.#type\n    // this could happen if we stat a dir, then delete it,\n    // then try to read it or one of its children.\n    if ((t & IFMT) === IFDIR) t &= IFMT_UNKNOWN\n    this.#type = t | ENOTDIR\n    this.#markChildrenENOENT()\n  }\n\n  #readdirFail(code: string = '') {\n    // markENOTDIR and markENOENT also set provisional=0\n    if (code === 'ENOTDIR' || code === 'EPERM') {\n      this.#markENOTDIR()\n    } else if (code === 'ENOENT') {\n      this.#markENOENT()\n    } else {\n      this.children().provisional = 0\n    }\n  }\n\n  #lstatFail(code: string = '') {\n    // Windows just raises ENOENT in this case, disable for win CI\n    /* c8 ignore start */\n    if (code === 'ENOTDIR') {\n      // already know it has a parent by this point\n      const p = this.parent as PathBase\n      p.#markENOTDIR()\n    } else if (code === 'ENOENT') {\n      /* c8 ignore stop */\n      this.#markENOENT()\n    }\n  }\n\n  #readlinkFail(code: string = '') {\n    let ter = this.#type\n    ter |= ENOREADLINK\n    if (code === 'ENOENT') ter |= ENOENT\n    // windows gets a weird error when you try to readlink a file\n    if (code === 'EINVAL' || code === 'UNKNOWN') {\n      // exists, but not a symlink, we don't know WHAT it is, so remove\n      // all IFMT bits.\n      ter &= IFMT_UNKNOWN\n    }\n    this.#type = ter\n    // windows just gets ENOENT in this case.  We do cover the case,\n    // just disabled because it's impossible on Windows CI\n    /* c8 ignore start */\n    if (code === 'ENOTDIR' && this.parent) {\n      this.parent.#markENOTDIR()\n    }\n    /* c8 ignore stop */\n  }\n\n  #readdirAddChild(e: Dirent, c: Children) {\n    return (\n      this.#readdirMaybePromoteChild(e, c) ||\n      this.#readdirAddNewChild(e, c)\n    )\n  }\n\n  #readdirAddNewChild(e: Dirent, c: Children): PathBase {\n    // alloc new entry at head, so it's never provisional\n    const type = entToType(e)\n    const child = this.newChild(e.name, type, { parent: this })\n    const ifmt = child.#type & IFMT\n    if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) {\n      child.#type |= ENOTDIR\n    }\n    c.unshift(child)\n    c.provisional++\n    return child\n  }\n\n  #readdirMaybePromoteChild(e: Dirent, c: Children): PathBase | undefined {\n    for (let p = c.provisional; p < c.length; p++) {\n      const pchild = c[p]\n      const name =\n        this.nocase ? normalizeNocase(e.name) : normalize(e.name)\n      if (name !== pchild!.#matchName) {\n        continue\n      }\n\n      return this.#readdirPromoteChild(e, pchild!, p, c)\n    }\n  }\n\n  #readdirPromoteChild(\n    e: Dirent,\n    p: PathBase,\n    index: number,\n    c: Children,\n  ): PathBase {\n    const v = p.name\n    // retain any other flags, but set ifmt from dirent\n    p.#type = (p.#type & IFMT_UNKNOWN) | entToType(e)\n    // case sensitivity fixing when we learn the true name.\n    if (v !== e.name) p.name = e.name\n\n    // just advance provisional index (potentially off the list),\n    // otherwise we have to splice/pop it out and re-insert at head\n    if (index !== c.provisional) {\n      if (index === c.length - 1) c.pop()\n      else c.splice(index, 1)\n      c.unshift(p)\n    }\n    c.provisional++\n    return p\n  }\n\n  /**\n   * Call lstat() on this Path, and update all known information that can be\n   * determined.\n   *\n   * Note that unlike `fs.lstat()`, the returned value does not contain some\n   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n   * information is required, you will need to call `fs.lstat` yourself.\n   *\n   * If the Path refers to a nonexistent file, or if the lstat call fails for\n   * any reason, `undefined` is returned.  Otherwise the updated Path object is\n   * returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   */\n  async lstat(): Promise<PathBase | undefined> {\n    if ((this.#type & ENOENT) === 0) {\n      try {\n        this.#applyStat(await this.#fs.promises.lstat(this.fullpath()))\n        return this\n      } catch (er) {\n        this.#lstatFail((er as NodeJS.ErrnoException).code)\n      }\n    }\n  }\n\n  /**\n   * synchronous {@link PathBase.lstat}\n   */\n  lstatSync(): PathBase | undefined {\n    if ((this.#type & ENOENT) === 0) {\n      try {\n        this.#applyStat(this.#fs.lstatSync(this.fullpath()))\n        return this\n      } catch (er) {\n        this.#lstatFail((er as NodeJS.ErrnoException).code)\n      }\n    }\n  }\n\n  #applyStat(st: Stats) {\n    const {\n      atime,\n      atimeMs,\n      birthtime,\n      birthtimeMs,\n      blksize,\n      blocks,\n      ctime,\n      ctimeMs,\n      dev,\n      gid,\n      ino,\n      mode,\n      mtime,\n      mtimeMs,\n      nlink,\n      rdev,\n      size,\n      uid,\n    } = st\n    this.#atime = atime\n    this.#atimeMs = atimeMs\n    this.#birthtime = birthtime\n    this.#birthtimeMs = birthtimeMs\n    this.#blksize = blksize\n    this.#blocks = blocks\n    this.#ctime = ctime\n    this.#ctimeMs = ctimeMs\n    this.#dev = dev\n    this.#gid = gid\n    this.#ino = ino\n    this.#mode = mode\n    this.#mtime = mtime\n    this.#mtimeMs = mtimeMs\n    this.#nlink = nlink\n    this.#rdev = rdev\n    this.#size = size\n    this.#uid = uid\n    const ifmt = entToType(st)\n    // retain any other flags, but set the ifmt\n    this.#type = (this.#type & IFMT_UNKNOWN) | ifmt | LSTAT_CALLED\n    if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) {\n      this.#type |= ENOTDIR\n    }\n  }\n\n  #onReaddirCB: ((\n    er: NodeJS.ErrnoException | null,\n    entries: Path[],\n  ) => any)[] = []\n  #readdirCBInFlight: boolean = false\n  #callOnReaddirCB(children: Path[]) {\n    this.#readdirCBInFlight = false\n    const cbs = this.#onReaddirCB.slice()\n    this.#onReaddirCB.length = 0\n    cbs.forEach(cb => cb(null, children))\n  }\n\n  /**\n   * Standard node-style callback interface to get list of directory entries.\n   *\n   * If the Path cannot or does not contain any children, then an empty array\n   * is returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   *\n   * @param cb The callback called with (er, entries).  Note that the `er`\n   * param is somewhat extraneous, as all readdir() errors are handled and\n   * simply result in an empty set of entries being returned.\n   * @param allowZalgo Boolean indicating that immediately known results should\n   * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release\n   * zalgo at your peril, the dark pony lord is devious and unforgiving.\n   */\n  readdirCB(\n    cb: (er: NodeJS.ErrnoException | null, entries: PathBase[]) => any,\n    allowZalgo: boolean = false,\n  ): void {\n    if (!this.canReaddir()) {\n      if (allowZalgo) cb(null, [])\n      else queueMicrotask(() => cb(null, []))\n      return\n    }\n\n    const children = this.children()\n    if (this.calledReaddir()) {\n      const c = children.slice(0, children.provisional)\n      if (allowZalgo) cb(null, c)\n      else queueMicrotask(() => cb(null, c))\n      return\n    }\n\n    // don't have to worry about zalgo at this point.\n    this.#onReaddirCB.push(cb)\n    if (this.#readdirCBInFlight) {\n      return\n    }\n    this.#readdirCBInFlight = true\n\n    // else read the directory, fill up children\n    // de-provisionalize any provisional children.\n    const fullpath = this.fullpath()\n    this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {\n      if (er) {\n        this.#readdirFail((er as NodeJS.ErrnoException).code)\n        children.provisional = 0\n      } else {\n        // if we didn't get an error, we always get entries.\n        //@ts-ignore\n        for (const e of entries) {\n          this.#readdirAddChild(e, children)\n        }\n        this.#readdirSuccess(children)\n      }\n      this.#callOnReaddirCB(children.slice(0, children.provisional))\n      return\n    })\n  }\n\n  #asyncReaddirInFlight?: Promise<void>\n\n  /**\n   * Return an array of known child entries.\n   *\n   * If the Path cannot or does not contain any children, then an empty array\n   * is returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   */\n  async readdir(): Promise<PathBase[]> {\n    if (!this.canReaddir()) {\n      return []\n    }\n\n    const children = this.children()\n    if (this.calledReaddir()) {\n      return children.slice(0, children.provisional)\n    }\n\n    // else read the directory, fill up children\n    // de-provisionalize any provisional children.\n    const fullpath = this.fullpath()\n    if (this.#asyncReaddirInFlight) {\n      await this.#asyncReaddirInFlight\n    } else {\n      /* c8 ignore start */\n      let resolve: () => void = () => {}\n      /* c8 ignore stop */\n      this.#asyncReaddirInFlight = new Promise<void>(\n        res => (resolve = res),\n      )\n      try {\n        for (const e of await this.#fs.promises.readdir(fullpath, {\n          withFileTypes: true,\n        })) {\n          this.#readdirAddChild(e, children)\n        }\n        this.#readdirSuccess(children)\n      } catch (er) {\n        this.#readdirFail((er as NodeJS.ErrnoException).code)\n        children.provisional = 0\n      }\n      this.#asyncReaddirInFlight = undefined\n      resolve()\n    }\n    return children.slice(0, children.provisional)\n  }\n\n  /**\n   * synchronous {@link PathBase.readdir}\n   */\n  readdirSync(): PathBase[] {\n    if (!this.canReaddir()) {\n      return []\n    }\n\n    const children = this.children()\n    if (this.calledReaddir()) {\n      return children.slice(0, children.provisional)\n    }\n\n    // else read the directory, fill up children\n    // de-provisionalize any provisional children.\n    const fullpath = this.fullpath()\n    try {\n      for (const e of this.#fs.readdirSync(fullpath, {\n        withFileTypes: true,\n      })) {\n        this.#readdirAddChild(e, children)\n      }\n      this.#readdirSuccess(children)\n    } catch (er) {\n      this.#readdirFail((er as NodeJS.ErrnoException).code)\n      children.provisional = 0\n    }\n    return children.slice(0, children.provisional)\n  }\n\n  canReaddir() {\n    if (this.#type & ENOCHILD) return false\n    const ifmt = IFMT & this.#type\n    // we always set ENOTDIR when setting IFMT, so should be impossible\n    /* c8 ignore start */\n    if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) {\n      return false\n    }\n    /* c8 ignore stop */\n    return true\n  }\n\n  shouldWalk(\n    dirs: Set<PathBase | undefined>,\n    walkFilter?: (e: PathBase) => boolean,\n  ): boolean {\n    return (\n      (this.#type & IFDIR) === IFDIR &&\n      !(this.#type & ENOCHILD) &&\n      !dirs.has(this) &&\n      (!walkFilter || walkFilter(this))\n    )\n  }\n\n  /**\n   * Return the Path object corresponding to path as resolved\n   * by realpath(3).\n   *\n   * If the realpath call fails for any reason, `undefined` is returned.\n   *\n   * Result is cached, and thus may be outdated if the filesystem is mutated.\n   * On success, returns a Path object.\n   */\n  async realpath(): Promise<PathBase | undefined> {\n    if (this.#realpath) return this.#realpath\n    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type) return undefined\n    try {\n      const rp = await this.#fs.promises.realpath(this.fullpath())\n      return (this.#realpath = this.resolve(rp))\n    } catch (_) {\n      this.#markENOREALPATH()\n    }\n  }\n\n  /**\n   * Synchronous {@link realpath}\n   */\n  realpathSync(): PathBase | undefined {\n    if (this.#realpath) return this.#realpath\n    if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type) return undefined\n    try {\n      const rp = this.#fs.realpathSync(this.fullpath())\n      return (this.#realpath = this.resolve(rp))\n    } catch (_) {\n      this.#markENOREALPATH()\n    }\n  }\n\n  /**\n   * Internal method to mark this Path object as the scurry cwd,\n   * called by {@link PathScurry#chdir}\n   *\n   * @internal\n   */\n  [setAsCwd](oldCwd: PathBase): void {\n    if (oldCwd === this) return\n    oldCwd.isCWD = false\n    this.isCWD = true\n\n    const changed = new Set<PathBase>([])\n    let rp = []\n    let p: PathBase = this\n    while (p && p.parent) {\n      changed.add(p)\n      p.#relative = rp.join(this.sep)\n      p.#relativePosix = rp.join('/')\n      p = p.parent\n      rp.push('..')\n    }\n    // now un-memoize parents of old cwd\n    p = oldCwd\n    while (p && p.parent && !changed.has(p)) {\n      p.#relative = undefined\n      p.#relativePosix = undefined\n      p = p.parent\n    }\n  }\n}\n\n/**\n * Path class used on win32 systems\n *\n * Uses `'\\\\'` as the path separator for returned paths, either `'\\\\'` or `'/'`\n * as the path separator for parsing paths.\n */\nexport class PathWin32 extends PathBase {\n  /**\n   * Separator for generating path strings.\n   */\n  sep: '\\\\' = '\\\\'\n  /**\n   * Separator for parsing path strings.\n   */\n  splitSep: RegExp = eitherSep\n\n  /**\n   * Do not create new Path objects directly.  They should always be accessed\n   * via the PathScurry class or other methods on the Path class.\n   *\n   * @internal\n   */\n  constructor(\n    name: string,\n    type: number = UNKNOWN,\n    root: PathBase | undefined,\n    roots: { [k: string]: PathBase },\n    nocase: boolean,\n    children: ChildrenCache,\n    opts: PathOpts,\n  ) {\n    super(name, type, root, roots, nocase, children, opts)\n  }\n\n  /**\n   * @internal\n   */\n  newChild(name: string, type: number = UNKNOWN, opts: PathOpts = {}) {\n    return new PathWin32(\n      name,\n      type,\n      this.root,\n      this.roots,\n      this.nocase,\n      this.childrenCache(),\n      opts,\n    )\n  }\n\n  /**\n   * @internal\n   */\n  getRootString(path: string): string {\n    return win32.parse(path).root\n  }\n\n  /**\n   * @internal\n   */\n  getRoot(rootPath: string): PathBase {\n    rootPath = uncToDrive(rootPath.toUpperCase())\n    if (rootPath === this.root.name) {\n      return this.root\n    }\n    // ok, not that one, check if it matches another we know about\n    for (const [compare, root] of Object.entries(this.roots)) {\n      if (this.sameRoot(rootPath, compare)) {\n        return (this.roots[rootPath] = root)\n      }\n    }\n    // otherwise, have to create a new one.\n    return (this.roots[rootPath] = new PathScurryWin32(\n      rootPath,\n      this,\n    ).root)\n  }\n\n  /**\n   * @internal\n   */\n  sameRoot(rootPath: string, compare: string = this.root.name): boolean {\n    // windows can (rarely) have case-sensitive filesystem, but\n    // UNC and drive letters are always case-insensitive, and canonically\n    // represented uppercase.\n    rootPath = rootPath\n      .toUpperCase()\n      .replace(/\\//g, '\\\\')\n      .replace(uncDriveRegexp, '$1\\\\')\n    return rootPath === compare\n  }\n}\n\n/**\n * Path class used on all posix systems.\n *\n * Uses `'/'` as the path separator.\n */\nexport class PathPosix extends PathBase {\n  /**\n   * separator for parsing path strings\n   */\n  splitSep: '/' = '/'\n  /**\n   * separator for generating path strings\n   */\n  sep: '/' = '/'\n\n  /**\n   * Do not create new Path objects directly.  They should always be accessed\n   * via the PathScurry class or other methods on the Path class.\n   *\n   * @internal\n   */\n  constructor(\n    name: string,\n    type: number = UNKNOWN,\n    root: PathBase | undefined,\n    roots: { [k: string]: PathBase },\n    nocase: boolean,\n    children: ChildrenCache,\n    opts: PathOpts,\n  ) {\n    super(name, type, root, roots, nocase, children, opts)\n  }\n\n  /**\n   * @internal\n   */\n  getRootString(path: string): string {\n    return path.startsWith('/') ? '/' : ''\n  }\n\n  /**\n   * @internal\n   */\n  getRoot(_rootPath: string): PathBase {\n    return this.root\n  }\n\n  /**\n   * @internal\n   */\n  newChild(name: string, type: number = UNKNOWN, opts: PathOpts = {}) {\n    return new PathPosix(\n      name,\n      type,\n      this.root,\n      this.roots,\n      this.nocase,\n      this.childrenCache(),\n      opts,\n    )\n  }\n}\n\n/**\n * Options that may be provided to the PathScurry constructor\n */\nexport interface PathScurryOpts {\n  /**\n   * perform case-insensitive path matching. Default based on platform\n   * subclass.\n   */\n  nocase?: boolean\n  /**\n   * Number of Path entries to keep in the cache of Path child references.\n   *\n   * Setting this higher than 65536 will dramatically increase the data\n   * consumption and construction time overhead of each PathScurry.\n   *\n   * Setting this value to 256 or lower will significantly reduce the data\n   * consumption and construction time overhead, but may also reduce resolve()\n   * and readdir() performance on large filesystems.\n   *\n   * Default `16384`.\n   */\n  childrenCacheSize?: number\n  /**\n   * An object that overrides the built-in functions from the fs and\n   * fs/promises modules.\n   *\n   * See {@link FSOption}\n   */\n  fs?: FSOption\n}\n\n/**\n * The base class for all PathScurry classes, providing the interface for path\n * resolution and filesystem operations.\n *\n * Typically, you should *not* instantiate this class directly, but rather one\n * of the platform-specific classes, or the exported {@link PathScurry} which\n * defaults to the current platform.\n */\nexport abstract class PathScurryBase {\n  /**\n   * The root Path entry for the current working directory of this Scurry\n   */\n  root: PathBase\n  /**\n   * The string path for the root of this Scurry's current working directory\n   */\n  rootPath: string\n  /**\n   * A collection of all roots encountered, referenced by rootPath\n   */\n  roots: { [k: string]: PathBase }\n  /**\n   * The Path entry corresponding to this PathScurry's current working directory.\n   */\n  cwd: PathBase\n  #resolveCache: ResolveCache\n  #resolvePosixCache: ResolveCache\n  #children: ChildrenCache\n  /**\n   * Perform path comparisons case-insensitively.\n   *\n   * Defaults true on Darwin and Windows systems, false elsewhere.\n   */\n  nocase: boolean\n\n  /**\n   * The path separator used for parsing paths\n   *\n   * `'/'` on Posix systems, either `'/'` or `'\\\\'` on Windows\n   */\n  abstract sep: string | RegExp\n\n  #fs: FSValue\n\n  /**\n   * This class should not be instantiated directly.\n   *\n   * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry\n   *\n   * @internal\n   */\n  constructor(\n    cwd: URL | string = process.cwd(),\n    pathImpl: typeof win32 | typeof posix,\n    sep: string | RegExp,\n    {\n      nocase,\n      childrenCacheSize = 16 * 1024,\n      fs = defaultFS,\n    }: PathScurryOpts = {},\n  ) {\n    this.#fs = fsFromOption(fs)\n    if (cwd instanceof URL || cwd.startsWith('file://')) {\n      cwd = fileURLToPath(cwd)\n    }\n    // resolve and split root, and then add to the store.\n    // this is the only time we call path.resolve()\n    const cwdPath = pathImpl.resolve(cwd)\n    this.roots = Object.create(null)\n    this.rootPath = this.parseRootPath(cwdPath)\n    this.#resolveCache = new ResolveCache()\n    this.#resolvePosixCache = new ResolveCache()\n    this.#children = new ChildrenCache(childrenCacheSize)\n\n    const split = cwdPath.substring(this.rootPath.length).split(sep)\n    // resolve('/') leaves '', splits to [''], we don't want that.\n    if (split.length === 1 && !split[0]) {\n      split.pop()\n    }\n    /* c8 ignore start */\n    if (nocase === undefined) {\n      throw new TypeError(\n        'must provide nocase setting to PathScurryBase ctor',\n      )\n    }\n    /* c8 ignore stop */\n    this.nocase = nocase\n    this.root = this.newRoot(this.#fs)\n    this.roots[this.rootPath] = this.root\n    let prev: PathBase = this.root\n    let len = split.length - 1\n    const joinSep = pathImpl.sep\n    let abs = this.rootPath\n    let sawFirst = false\n    for (const part of split) {\n      const l = len--\n      prev = prev.child(part, {\n        relative: new Array(l).fill('..').join(joinSep),\n        relativePosix: new Array(l).fill('..').join('/'),\n        fullpath: (abs += (sawFirst ? '' : joinSep) + part),\n      })\n      sawFirst = true\n    }\n    this.cwd = prev\n  }\n\n  /**\n   * Get the depth of a provided path, string, or the cwd\n   */\n  depth(path: Path | string = this.cwd): number {\n    if (typeof path === 'string') {\n      path = this.cwd.resolve(path)\n    }\n    return path.depth()\n  }\n\n  /**\n   * Parse the root portion of a path string\n   *\n   * @internal\n   */\n  abstract parseRootPath(dir: string): string\n  /**\n   * create a new Path to use as root during construction.\n   *\n   * @internal\n   */\n  abstract newRoot(fs: FSValue): PathBase\n  /**\n   * Determine whether a given path string is absolute\n   */\n  abstract isAbsolute(p: string): boolean\n\n  /**\n   * Return the cache of child entries.  Exposed so subclasses can create\n   * child Path objects in a platform-specific way.\n   *\n   * @internal\n   */\n  childrenCache() {\n    return this.#children\n  }\n\n  /**\n   * Resolve one or more path strings to a resolved string\n   *\n   * Same interface as require('path').resolve.\n   *\n   * Much faster than path.resolve() when called multiple times for the same\n   * path, because the resolved Path objects are cached.  Much slower\n   * otherwise.\n   */\n  resolve(...paths: string[]): string {\n    // first figure out the minimum number of paths we have to test\n    // we always start at cwd, but any absolutes will bump the start\n    let r = ''\n    for (let i = paths.length - 1; i >= 0; i--) {\n      const p = paths[i]\n      if (!p || p === '.') continue\n      r = r ? `${p}/${r}` : p\n      if (this.isAbsolute(p)) {\n        break\n      }\n    }\n    const cached = this.#resolveCache.get(r)\n    if (cached !== undefined) {\n      return cached\n    }\n    const result = this.cwd.resolve(r).fullpath()\n    this.#resolveCache.set(r, result)\n    return result\n  }\n\n  /**\n   * Resolve one or more path strings to a resolved string, returning\n   * the posix path.  Identical to .resolve() on posix systems, but on\n   * windows will return a forward-slash separated UNC path.\n   *\n   * Same interface as require('path').resolve.\n   *\n   * Much faster than path.resolve() when called multiple times for the same\n   * path, because the resolved Path objects are cached.  Much slower\n   * otherwise.\n   */\n  resolvePosix(...paths: string[]): string {\n    // first figure out the minimum number of paths we have to test\n    // we always start at cwd, but any absolutes will bump the start\n    let r = ''\n    for (let i = paths.length - 1; i >= 0; i--) {\n      const p = paths[i]\n      if (!p || p === '.') continue\n      r = r ? `${p}/${r}` : p\n      if (this.isAbsolute(p)) {\n        break\n      }\n    }\n    const cached = this.#resolvePosixCache.get(r)\n    if (cached !== undefined) {\n      return cached\n    }\n    const result = this.cwd.resolve(r).fullpathPosix()\n    this.#resolvePosixCache.set(r, result)\n    return result\n  }\n\n  /**\n   * find the relative path from the cwd to the supplied path string or entry\n   */\n  relative(entry: PathBase | string = this.cwd): string {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.relative()\n  }\n\n  /**\n   * find the relative path from the cwd to the supplied path string or\n   * entry, using / as the path delimiter, even on Windows.\n   */\n  relativePosix(entry: PathBase | string = this.cwd): string {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.relativePosix()\n  }\n\n  /**\n   * Return the basename for the provided string or Path object\n   */\n  basename(entry: PathBase | string = this.cwd): string {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.name\n  }\n\n  /**\n   * Return the dirname for the provided string or Path object\n   */\n  dirname(entry: PathBase | string = this.cwd): string {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return (entry.parent || entry).fullpath()\n  }\n\n  /**\n   * Return an array of known child entries.\n   *\n   * First argument may be either a string, or a Path object.\n   *\n   * If the Path cannot or does not contain any children, then an empty array\n   * is returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   *\n   * Unlike `fs.readdir()`, the `withFileTypes` option defaults to `true`. Set\n   * `{ withFileTypes: false }` to return strings.\n   */\n\n  readdir(): Promise<PathBase[]>\n  readdir(opts: { withFileTypes: true }): Promise<PathBase[]>\n  readdir(opts: { withFileTypes: false }): Promise<string[]>\n  readdir(opts: { withFileTypes: boolean }): Promise<PathBase[] | string[]>\n  readdir(entry: PathBase | string): Promise<PathBase[]>\n  readdir(\n    entry: PathBase | string,\n    opts: { withFileTypes: true },\n  ): Promise<PathBase[]>\n  readdir(\n    entry: PathBase | string,\n    opts: { withFileTypes: false },\n  ): Promise<string[]>\n  readdir(\n    entry: PathBase | string,\n    opts: { withFileTypes: boolean },\n  ): Promise<PathBase[] | string[]>\n  async readdir(\n    entry: PathBase | string | { withFileTypes: boolean } = this.cwd,\n    opts: { withFileTypes: boolean } = {\n      withFileTypes: true,\n    },\n  ): Promise<PathBase[] | string[]> {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const { withFileTypes } = opts\n    if (!entry.canReaddir()) {\n      return []\n    } else {\n      const p = await entry.readdir()\n      return withFileTypes ? p : p.map(e => e.name)\n    }\n  }\n\n  /**\n   * synchronous {@link PathScurryBase.readdir}\n   */\n  readdirSync(): PathBase[]\n  readdirSync(opts: { withFileTypes: true }): PathBase[]\n  readdirSync(opts: { withFileTypes: false }): string[]\n  readdirSync(opts: { withFileTypes: boolean }): PathBase[] | string[]\n  readdirSync(entry: PathBase | string): PathBase[]\n  readdirSync(\n    entry: PathBase | string,\n    opts: { withFileTypes: true },\n  ): PathBase[]\n  readdirSync(\n    entry: PathBase | string,\n    opts: { withFileTypes: false },\n  ): string[]\n  readdirSync(\n    entry: PathBase | string,\n    opts: { withFileTypes: boolean },\n  ): PathBase[] | string[]\n  readdirSync(\n    entry: PathBase | string | { withFileTypes: boolean } = this.cwd,\n    opts: { withFileTypes: boolean } = {\n      withFileTypes: true,\n    },\n  ): PathBase[] | string[] {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const { withFileTypes = true } = opts\n    if (!entry.canReaddir()) {\n      return []\n    } else if (withFileTypes) {\n      return entry.readdirSync()\n    } else {\n      return entry.readdirSync().map(e => e.name)\n    }\n  }\n\n  /**\n   * Call lstat() on the string or Path object, and update all known\n   * information that can be determined.\n   *\n   * Note that unlike `fs.lstat()`, the returned value does not contain some\n   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n   * information is required, you will need to call `fs.lstat` yourself.\n   *\n   * If the Path refers to a nonexistent file, or if the lstat call fails for\n   * any reason, `undefined` is returned.  Otherwise the updated Path object is\n   * returned.\n   *\n   * Results are cached, and thus may be out of date if the filesystem is\n   * mutated.\n   */\n  async lstat(\n    entry: string | PathBase = this.cwd,\n  ): Promise<PathBase | undefined> {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.lstat()\n  }\n\n  /**\n   * synchronous {@link PathScurryBase.lstat}\n   */\n  lstatSync(entry: string | PathBase = this.cwd): PathBase | undefined {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    }\n    return entry.lstatSync()\n  }\n\n  /**\n   * Return the Path object or string path corresponding to the target of a\n   * symbolic link.\n   *\n   * If the path is not a symbolic link, or if the readlink call fails for any\n   * reason, `undefined` is returned.\n   *\n   * Result is cached, and thus may be outdated if the filesystem is mutated.\n   *\n   * `{withFileTypes}` option defaults to `false`.\n   *\n   * On success, returns a Path object if `withFileTypes` option is true,\n   * otherwise a string.\n   */\n  readlink(): Promise<string | undefined>\n  readlink(opt: { withFileTypes: false }): Promise<string | undefined>\n  readlink(opt: { withFileTypes: true }): Promise<PathBase | undefined>\n  readlink(opt: {\n    withFileTypes: boolean\n  }): Promise<PathBase | string | undefined>\n  readlink(\n    entry: string | PathBase,\n    opt?: { withFileTypes: false },\n  ): Promise<string | undefined>\n  readlink(\n    entry: string | PathBase,\n    opt: { withFileTypes: true },\n  ): Promise<PathBase | undefined>\n  readlink(\n    entry: string | PathBase,\n    opt: { withFileTypes: boolean },\n  ): Promise<string | PathBase | undefined>\n  async readlink(\n    entry: string | PathBase | { withFileTypes: boolean } = this.cwd,\n    { withFileTypes }: { withFileTypes: boolean } = {\n      withFileTypes: false,\n    },\n  ): Promise<string | PathBase | undefined> {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      withFileTypes = entry.withFileTypes\n      entry = this.cwd\n    }\n    const e = await entry.readlink()\n    return withFileTypes ? e : e?.fullpath()\n  }\n\n  /**\n   * synchronous {@link PathScurryBase.readlink}\n   */\n  readlinkSync(): string | undefined\n  readlinkSync(opt: { withFileTypes: false }): string | undefined\n  readlinkSync(opt: { withFileTypes: true }): PathBase | undefined\n  readlinkSync(opt: {\n    withFileTypes: boolean\n  }): PathBase | string | undefined\n  readlinkSync(\n    entry: string | PathBase,\n    opt?: { withFileTypes: false },\n  ): string | undefined\n  readlinkSync(\n    entry: string | PathBase,\n    opt: { withFileTypes: true },\n  ): PathBase | undefined\n  readlinkSync(\n    entry: string | PathBase,\n    opt: { withFileTypes: boolean },\n  ): string | PathBase | undefined\n  readlinkSync(\n    entry: string | PathBase | { withFileTypes: boolean } = this.cwd,\n    { withFileTypes }: { withFileTypes: boolean } = {\n      withFileTypes: false,\n    },\n  ): string | PathBase | undefined {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      withFileTypes = entry.withFileTypes\n      entry = this.cwd\n    }\n    const e = entry.readlinkSync()\n    return withFileTypes ? e : e?.fullpath()\n  }\n\n  /**\n   * Return the Path object or string path corresponding to path as resolved\n   * by realpath(3).\n   *\n   * If the realpath call fails for any reason, `undefined` is returned.\n   *\n   * Result is cached, and thus may be outdated if the filesystem is mutated.\n   *\n   * `{withFileTypes}` option defaults to `false`.\n   *\n   * On success, returns a Path object if `withFileTypes` option is true,\n   * otherwise a string.\n   */\n  realpath(): Promise<string | undefined>\n  realpath(opt: { withFileTypes: false }): Promise<string | undefined>\n  realpath(opt: { withFileTypes: true }): Promise<PathBase | undefined>\n  realpath(opt: {\n    withFileTypes: boolean\n  }): Promise<PathBase | string | undefined>\n  realpath(\n    entry: string | PathBase,\n    opt?: { withFileTypes: false },\n  ): Promise<string | undefined>\n  realpath(\n    entry: string | PathBase,\n    opt: { withFileTypes: true },\n  ): Promise<PathBase | undefined>\n  realpath(\n    entry: string | PathBase,\n    opt: { withFileTypes: boolean },\n  ): Promise<string | PathBase | undefined>\n  async realpath(\n    entry: string | PathBase | { withFileTypes: boolean } = this.cwd,\n    { withFileTypes }: { withFileTypes: boolean } = {\n      withFileTypes: false,\n    },\n  ): Promise<string | PathBase | undefined> {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      withFileTypes = entry.withFileTypes\n      entry = this.cwd\n    }\n    const e = await entry.realpath()\n    return withFileTypes ? e : e?.fullpath()\n  }\n\n  realpathSync(): string | undefined\n  realpathSync(opt: { withFileTypes: false }): string | undefined\n  realpathSync(opt: { withFileTypes: true }): PathBase | undefined\n  realpathSync(opt: {\n    withFileTypes: boolean\n  }): PathBase | string | undefined\n  realpathSync(\n    entry: string | PathBase,\n    opt?: { withFileTypes: false },\n  ): string | undefined\n  realpathSync(\n    entry: string | PathBase,\n    opt: { withFileTypes: true },\n  ): PathBase | undefined\n  realpathSync(\n    entry: string | PathBase,\n    opt: { withFileTypes: boolean },\n  ): string | PathBase | undefined\n  realpathSync(\n    entry: string | PathBase | { withFileTypes: boolean } = this.cwd,\n    { withFileTypes }: { withFileTypes: boolean } = {\n      withFileTypes: false,\n    },\n  ): string | PathBase | undefined {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      withFileTypes = entry.withFileTypes\n      entry = this.cwd\n    }\n    const e = entry.realpathSync()\n    return withFileTypes ? e : e?.fullpath()\n  }\n\n  /**\n   * Asynchronously walk the directory tree, returning an array of\n   * all path strings or Path objects found.\n   *\n   * Note that this will be extremely memory-hungry on large filesystems.\n   * In such cases, it may be better to use the stream or async iterator\n   * walk implementation.\n   */\n  walk(): Promise<PathBase[]>\n  walk(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Promise<PathBase[]>\n  walk(opts: WalkOptionsWithFileTypesFalse): Promise<string[]>\n  walk(opts: WalkOptions): Promise<string[] | PathBase[]>\n  walk(entry: string | PathBase): Promise<PathBase[]>\n  walk(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Promise<PathBase[]>\n  walk(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Promise<string[]>\n  walk(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): Promise<PathBase[] | string[]>\n  async walk(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): Promise<PathBase[] | string[]> {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    const results: (string | PathBase)[] = []\n    if (!filter || filter(entry)) {\n      results.push(withFileTypes ? entry : entry.fullpath())\n    }\n    const dirs = new Set<PathBase>()\n    const walk = (\n      dir: PathBase,\n      cb: (er?: NodeJS.ErrnoException) => void,\n    ) => {\n      dirs.add(dir)\n      dir.readdirCB((er, entries) => {\n        /* c8 ignore start */\n        if (er) {\n          return cb(er)\n        }\n        /* c8 ignore stop */\n        let len = entries.length\n        if (!len) return cb()\n        const next = () => {\n          if (--len === 0) {\n            cb()\n          }\n        }\n        for (const e of entries) {\n          if (!filter || filter(e)) {\n            results.push(withFileTypes ? e : e.fullpath())\n          }\n          if (follow && e.isSymbolicLink()) {\n            e.realpath()\n              .then(r => (r?.isUnknown() ? r.lstat() : r))\n              .then(r =>\n                r?.shouldWalk(dirs, walkFilter) ? walk(r, next) : next(),\n              )\n          } else {\n            if (e.shouldWalk(dirs, walkFilter)) {\n              walk(e, next)\n            } else {\n              next()\n            }\n          }\n        }\n      }, true) // zalgooooooo\n    }\n\n    const start = entry\n    return new Promise<PathBase[] | string[]>((res, rej) => {\n      walk(start, er => {\n        /* c8 ignore start */\n        if (er) return rej(er)\n        /* c8 ignore stop */\n        res(results as PathBase[] | string[])\n      })\n    })\n  }\n\n  /**\n   * Synchronously walk the directory tree, returning an array of\n   * all path strings or Path objects found.\n   *\n   * Note that this will be extremely memory-hungry on large filesystems.\n   * In such cases, it may be better to use the stream or async iterator\n   * walk implementation.\n   */\n  walkSync(): PathBase[]\n  walkSync(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): PathBase[]\n  walkSync(opts: WalkOptionsWithFileTypesFalse): string[]\n  walkSync(opts: WalkOptions): string[] | PathBase[]\n  walkSync(entry: string | PathBase): PathBase[]\n  walkSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesUnset | WalkOptionsWithFileTypesTrue,\n  ): PathBase[]\n  walkSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): string[]\n  walkSync(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): PathBase[] | string[]\n  walkSync(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): PathBase[] | string[] {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    const results: (string | PathBase)[] = []\n    if (!filter || filter(entry)) {\n      results.push(withFileTypes ? entry : entry.fullpath())\n    }\n    const dirs = new Set<PathBase>([entry])\n    for (const dir of dirs) {\n      const entries = dir.readdirSync()\n      for (const e of entries) {\n        if (!filter || filter(e)) {\n          results.push(withFileTypes ? e : e.fullpath())\n        }\n        let r: PathBase | undefined = e\n        if (e.isSymbolicLink()) {\n          if (!(follow && (r = e.realpathSync()))) continue\n          if (r.isUnknown()) r.lstatSync()\n        }\n        if (r.shouldWalk(dirs, walkFilter)) {\n          dirs.add(r)\n        }\n      }\n    }\n    return results as string[] | PathBase[]\n  }\n\n  /**\n   * Support for `for await`\n   *\n   * Alias for {@link PathScurryBase.iterate}\n   *\n   * Note: As of Node 19, this is very slow, compared to other methods of\n   * walking.  Consider using {@link PathScurryBase.stream} if memory overhead\n   * and backpressure are concerns, or {@link PathScurryBase.walk} if not.\n   */\n  [Symbol.asyncIterator]() {\n    return this.iterate()\n  }\n\n  /**\n   * Async generator form of {@link PathScurryBase.walk}\n   *\n   * Note: As of Node 19, this is very slow, compared to other methods of\n   * walking, especially if most/all of the directory tree has been previously\n   * walked.  Consider using {@link PathScurryBase.stream} if memory overhead\n   * and backpressure are concerns, or {@link PathScurryBase.walk} if not.\n   */\n  iterate(): AsyncGenerator<PathBase, void, void>\n  iterate(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): AsyncGenerator<PathBase, void, void>\n  iterate(\n    opts: WalkOptionsWithFileTypesFalse,\n  ): AsyncGenerator<string, void, void>\n  iterate(opts: WalkOptions): AsyncGenerator<string | PathBase, void, void>\n  iterate(entry: string | PathBase): AsyncGenerator<PathBase, void, void>\n  iterate(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): AsyncGenerator<PathBase, void, void>\n  iterate(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): AsyncGenerator<string, void, void>\n  iterate(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): AsyncGenerator<PathBase | string, void, void>\n  iterate(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    options: WalkOptions = {},\n  ): AsyncGenerator<PathBase | string, void, void> {\n    // iterating async over the stream is significantly more performant,\n    // especially in the warm-cache scenario, because it buffers up directory\n    // entries in the background instead of waiting for a yield for each one.\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      options = entry\n      entry = this.cwd\n    }\n    return this.stream(entry, options)[Symbol.asyncIterator]()\n  }\n\n  /**\n   * Iterating over a PathScurry performs a synchronous walk.\n   *\n   * Alias for {@link PathScurryBase.iterateSync}\n   */\n  [Symbol.iterator]() {\n    return this.iterateSync()\n  }\n\n  iterateSync(): Generator<PathBase, void, void>\n  iterateSync(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Generator<PathBase, void, void>\n  iterateSync(\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Generator<string, void, void>\n  iterateSync(opts: WalkOptions): Generator<string | PathBase, void, void>\n  iterateSync(entry: string | PathBase): Generator<PathBase, void, void>\n  iterateSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Generator<PathBase, void, void>\n  iterateSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Generator<string, void, void>\n  iterateSync(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): Generator<PathBase | string, void, void>\n  *iterateSync(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): Generator<PathBase | string, void, void> {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    if (!filter || filter(entry)) {\n      yield withFileTypes ? entry : entry.fullpath()\n    }\n    const dirs = new Set<PathBase>([entry])\n    for (const dir of dirs) {\n      const entries = dir.readdirSync()\n      for (const e of entries) {\n        if (!filter || filter(e)) {\n          yield withFileTypes ? e : e.fullpath()\n        }\n        let r: PathBase | undefined = e\n        if (e.isSymbolicLink()) {\n          if (!(follow && (r = e.realpathSync()))) continue\n          if (r.isUnknown()) r.lstatSync()\n        }\n        if (r.shouldWalk(dirs, walkFilter)) {\n          dirs.add(r)\n        }\n      }\n    }\n  }\n\n  /**\n   * Stream form of {@link PathScurryBase.walk}\n   *\n   * Returns a Minipass stream that emits {@link PathBase} objects by default,\n   * or strings if `{ withFileTypes: false }` is set in the options.\n   */\n  stream(): Minipass<PathBase>\n  stream(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Minipass<PathBase>\n  stream(opts: WalkOptionsWithFileTypesFalse): Minipass<string>\n  stream(opts: WalkOptions): Minipass<string | PathBase>\n  stream(entry: string | PathBase): Minipass<PathBase>\n  stream(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesUnset | WalkOptionsWithFileTypesTrue,\n  ): Minipass<PathBase>\n  stream(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Minipass<string>\n  stream(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): Minipass<string> | Minipass<PathBase>\n  stream(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): Minipass<string> | Minipass<PathBase> {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    const results = new Minipass<string | PathBase>({ objectMode: true })\n    if (!filter || filter(entry)) {\n      results.write(withFileTypes ? entry : entry.fullpath())\n    }\n    const dirs = new Set<PathBase>()\n    const queue: PathBase[] = [entry]\n    let processing = 0\n    const process = () => {\n      let paused = false\n      while (!paused) {\n        const dir = queue.shift()\n        if (!dir) {\n          if (processing === 0) results.end()\n          return\n        }\n\n        processing++\n        dirs.add(dir)\n\n        const onReaddir = (\n          er: null | NodeJS.ErrnoException,\n          entries: PathBase[],\n          didRealpaths: boolean = false,\n        ) => {\n          /* c8 ignore start */\n          if (er) return results.emit('error', er)\n          /* c8 ignore stop */\n          if (follow && !didRealpaths) {\n            const promises: Promise<PathBase | undefined>[] = []\n            for (const e of entries) {\n              if (e.isSymbolicLink()) {\n                promises.push(\n                  e\n                    .realpath()\n                    .then((r: PathBase | undefined) =>\n                      r?.isUnknown() ? r.lstat() : r,\n                    ),\n                )\n              }\n            }\n            if (promises.length) {\n              Promise.all(promises).then(() =>\n                onReaddir(null, entries, true),\n              )\n              return\n            }\n          }\n\n          for (const e of entries) {\n            if (e && (!filter || filter(e))) {\n              if (!results.write(withFileTypes ? e : e.fullpath())) {\n                paused = true\n              }\n            }\n          }\n\n          processing--\n          for (const e of entries) {\n            const r = e.realpathCached() || e\n            if (r.shouldWalk(dirs, walkFilter)) {\n              queue.push(r)\n            }\n          }\n          if (paused && !results.flowing) {\n            results.once('drain', process)\n          } else if (!sync) {\n            process()\n          }\n        }\n\n        // zalgo containment\n        let sync = true\n        dir.readdirCB(onReaddir, true)\n        sync = false\n      }\n    }\n    process()\n    return results as Minipass<string> | Minipass<PathBase>\n  }\n\n  /**\n   * Synchronous form of {@link PathScurryBase.stream}\n   *\n   * Returns a Minipass stream that emits {@link PathBase} objects by default,\n   * or strings if `{ withFileTypes: false }` is set in the options.\n   *\n   * Will complete the walk in a single tick if the stream is consumed fully.\n   * Otherwise, will pause as needed for stream backpressure.\n   */\n  streamSync(): Minipass<PathBase>\n  streamSync(\n    opts: WalkOptionsWithFileTypesTrue | WalkOptionsWithFileTypesUnset,\n  ): Minipass<PathBase>\n  streamSync(opts: WalkOptionsWithFileTypesFalse): Minipass<string>\n  streamSync(opts: WalkOptions): Minipass<string | PathBase>\n  streamSync(entry: string | PathBase): Minipass<PathBase>\n  streamSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesUnset | WalkOptionsWithFileTypesTrue,\n  ): Minipass<PathBase>\n  streamSync(\n    entry: string | PathBase,\n    opts: WalkOptionsWithFileTypesFalse,\n  ): Minipass<string>\n  streamSync(\n    entry: string | PathBase,\n    opts: WalkOptions,\n  ): Minipass<string> | Minipass<PathBase>\n  streamSync(\n    entry: string | PathBase | WalkOptions = this.cwd,\n    opts: WalkOptions = {},\n  ): Minipass<string> | Minipass<PathBase> {\n    if (typeof entry === 'string') {\n      entry = this.cwd.resolve(entry)\n    } else if (!(entry instanceof PathBase)) {\n      opts = entry\n      entry = this.cwd\n    }\n    const {\n      withFileTypes = true,\n      follow = false,\n      filter,\n      walkFilter,\n    } = opts\n    const results = new Minipass<string | PathBase>({ objectMode: true })\n    const dirs = new Set<PathBase>()\n    if (!filter || filter(entry)) {\n      results.write(withFileTypes ? entry : entry.fullpath())\n    }\n    const queue: PathBase[] = [entry]\n    let processing = 0\n    const process = () => {\n      let paused = false\n      while (!paused) {\n        const dir = queue.shift()\n        if (!dir) {\n          if (processing === 0) results.end()\n          return\n        }\n        processing++\n        dirs.add(dir)\n\n        const entries = dir.readdirSync()\n        for (const e of entries) {\n          if (!filter || filter(e)) {\n            if (!results.write(withFileTypes ? e : e.fullpath())) {\n              paused = true\n            }\n          }\n        }\n        processing--\n        for (const e of entries) {\n          let r: PathBase | undefined = e\n          if (e.isSymbolicLink()) {\n            if (!(follow && (r = e.realpathSync()))) continue\n            if (r.isUnknown()) r.lstatSync()\n          }\n          if (r.shouldWalk(dirs, walkFilter)) {\n            queue.push(r)\n          }\n        }\n      }\n      if (paused && !results.flowing) results.once('drain', process)\n    }\n    process()\n    return results as Minipass<string> | Minipass<PathBase>\n  }\n\n  chdir(path: string | Path = this.cwd) {\n    const oldCwd = this.cwd\n    this.cwd = typeof path === 'string' ? this.cwd.resolve(path) : path\n    this.cwd[setAsCwd](oldCwd)\n  }\n}\n\n/**\n * Options provided to all walk methods.\n */\nexport interface WalkOptions {\n  /**\n   * Return results as {@link PathBase} objects rather than strings.\n   * When set to false, results are fully resolved paths, as returned by\n   * {@link PathBase.fullpath}.\n   * @default true\n   */\n  withFileTypes?: boolean\n\n  /**\n   *  Attempt to read directory entries from symbolic links. Otherwise, only\n   *  actual directories are traversed. Regardless of this setting, a given\n   *  target path will only ever be walked once, meaning that a symbolic link\n   *  to a previously traversed directory will never be followed.\n   *\n   *  Setting this imposes a slight performance penalty, because `readlink`\n   *  must be called on all symbolic links encountered, in order to avoid\n   *  infinite cycles.\n   * @default false\n   */\n  follow?: boolean\n\n  /**\n   * Only return entries where the provided function returns true.\n   *\n   * This will not prevent directories from being traversed, even if they do\n   * not pass the filter, though it will prevent directories themselves from\n   * being included in the result set.  See {@link walkFilter}\n   *\n   * Asynchronous functions are not supported here.\n   *\n   * By default, if no filter is provided, all entries and traversed\n   * directories are included.\n   */\n  filter?: (entry: PathBase) => boolean\n\n  /**\n   * Only traverse directories (and in the case of {@link follow} being set to\n   * true, symbolic links to directories) if the provided function returns\n   * true.\n   *\n   * This will not prevent directories from being included in the result set,\n   * even if they do not pass the supplied filter function.  See {@link filter}\n   * to do that.\n   *\n   * Asynchronous functions are not supported here.\n   */\n  walkFilter?: (entry: PathBase) => boolean\n}\n\nexport type WalkOptionsWithFileTypesUnset = WalkOptions & {\n  withFileTypes?: undefined\n}\nexport type WalkOptionsWithFileTypesTrue = WalkOptions & {\n  withFileTypes: true\n}\nexport type WalkOptionsWithFileTypesFalse = WalkOptions & {\n  withFileTypes: false\n}\n\n/**\n * Windows implementation of {@link PathScurryBase}\n *\n * Defaults to case insensitve, uses `'\\\\'` to generate path strings.  Uses\n * {@link PathWin32} for Path objects.\n */\nexport class PathScurryWin32 extends PathScurryBase {\n  /**\n   * separator for generating path strings\n   */\n  sep: '\\\\' = '\\\\'\n\n  constructor(\n    cwd: URL | string = process.cwd(),\n    opts: PathScurryOpts = {},\n  ) {\n    const { nocase = true } = opts\n    super(cwd, win32, '\\\\', { ...opts, nocase })\n    this.nocase = nocase\n    for (let p: PathBase | undefined = this.cwd; p; p = p.parent) {\n      p.nocase = this.nocase\n    }\n  }\n\n  /**\n   * @internal\n   */\n  parseRootPath(dir: string): string {\n    // if the path starts with a single separator, it's not a UNC, and we'll\n    // just get separator as the root, and driveFromUNC will return \\\n    // In that case, mount \\ on the root from the cwd.\n    return win32.parse(dir).root.toUpperCase()\n  }\n\n  /**\n   * @internal\n   */\n  newRoot(fs: FSValue) {\n    return new PathWin32(\n      this.rootPath,\n      IFDIR,\n      undefined,\n      this.roots,\n      this.nocase,\n      this.childrenCache(),\n      { fs },\n    )\n  }\n\n  /**\n   * Return true if the provided path string is an absolute path\n   */\n  isAbsolute(p: string): boolean {\n    return (\n      p.startsWith('/') || p.startsWith('\\\\') || /^[a-z]:(\\/|\\\\)/i.test(p)\n    )\n  }\n}\n\n/**\n * {@link PathScurryBase} implementation for all posix systems other than Darwin.\n *\n * Defaults to case-sensitive matching, uses `'/'` to generate path strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nexport class PathScurryPosix extends PathScurryBase {\n  /**\n   * separator for generating path strings\n   */\n  sep: '/' = '/'\n  constructor(\n    cwd: URL | string = process.cwd(),\n    opts: PathScurryOpts = {},\n  ) {\n    const { nocase = false } = opts\n    super(cwd, posix, '/', { ...opts, nocase })\n    this.nocase = nocase\n  }\n\n  /**\n   * @internal\n   */\n  parseRootPath(_dir: string): string {\n    return '/'\n  }\n\n  /**\n   * @internal\n   */\n  newRoot(fs: FSValue) {\n    return new PathPosix(\n      this.rootPath,\n      IFDIR,\n      undefined,\n      this.roots,\n      this.nocase,\n      this.childrenCache(),\n      { fs },\n    )\n  }\n\n  /**\n   * Return true if the provided path string is an absolute path\n   */\n  isAbsolute(p: string): boolean {\n    return p.startsWith('/')\n  }\n}\n\n/**\n * {@link PathScurryBase} implementation for Darwin (macOS) systems.\n *\n * Defaults to case-insensitive matching, uses `'/'` for generating path\n * strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nexport class PathScurryDarwin extends PathScurryPosix {\n  constructor(\n    cwd: URL | string = process.cwd(),\n    opts: PathScurryOpts = {},\n  ) {\n    const { nocase = true } = opts\n    super(cwd, { ...opts, nocase })\n  }\n}\n\n/**\n * Default {@link PathBase} implementation for the current platform.\n *\n * {@link PathWin32} on Windows systems, {@link PathPosix} on all others.\n */\nexport const Path = process.platform === 'win32' ? PathWin32 : PathPosix\nexport type Path = PathBase | InstanceType<typeof Path>\n\n/**\n * Default {@link PathScurryBase} implementation for the current platform.\n *\n * {@link PathScurryWin32} on Windows systems, {@link PathScurryDarwin} on\n * Darwin (macOS) systems, {@link PathScurryPosix} on all others.\n */\nexport const PathScurry:\n  | typeof PathScurryWin32\n  | typeof PathScurryDarwin\n  | typeof PathScurryPosix =\n  process.platform === 'win32' ? PathScurryWin32\n  : process.platform === 'darwin' ? PathScurryDarwin\n  : PathScurryPosix\nexport type PathScurry = PathScurryBase | InstanceType<typeof PathScurry>\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js":{"lineLengths":[13,3,19,3,62,26,47,18,41,17,11,25,21,74,21,46,45,50,53,2,36,32,21,32,16,28,16,22,15,24,33,35,9,6,16,32,23,29,9,26,23,36,23,24,40,24,39,24,52,27,13,42,9,6,82,34,36,19,39,78,67,71,75,81,81,133,6,1,20,47,28,73,21,40,70,71,71,72,55,27,56,44,10,27,20,32,25,36,29,48,31,27,20,31,23,20,21,5,1,13,9,11,26,33,24,42,21,22,35,42,36,17,5,31,29,35,75,9,28,37,24,5,13,37,5,11,40,5,1,3,61,2,74,72,38,2,57,2,71,76,78,2,77,3,16,54,9,13,13,18,17,16,7,39,7,8,7,49,7,18,7,48,7,17,7,50,7,19,7,50,7,19,7,46,7,15,7,50,7,19,7,47,7,16,7,48,7,17,7,51,7,20,7,60,7,29,7,54,7,23,7,58,7,27,7,62,7,31,7,52,7,21,26,10,20,12,13,13,10,10,10,10,10,14,11,12,10,16,20,21,7,61,65,65,6,45,6,16,7,37,16,25,30,26,28,30,32,32,26,26,24,31,14,24,31,14,26,22,62,108,56,54,56,50,10,5,34,7,51,7,15,25,5,7,55,7,19,29,5,7,64,7,26,36,5,7,58,7,16,26,5,7,59,7,23,33,5,22,32,5,7,55,7,19,29,5,7,60,7,24,34,5,26,360,42,76,9,58,25,57,9,24,32,58,47,35,55,106,13,61,75,13,9,39,47,76,9,38,40,48,79,9,40,45,33,55,55,40,40,23,23,39,23,33,44,36,9,49,46,32,9,14,43,39,9,43,53,47,41,67,71,63,51,57,38,38,47,91,17,13,47,92,13,43,9,39,55,47,47,28,58,31,20,43,28,23,38,83,13,42,9,51,71,84,9,65,47,35,33,86,62,74,13,9,5,7,79,81,7,26,52,5,30,46,48,26,30,64,50,30,49,44,47,69,21,28,57,37,30,30,17,36,13,10,40,63,10,46,30,40,44,36,35,27,33,37,51,47,48,13,10,66,39,26,30,33,41,30,80,49,37,30,30,17,36,13,21,10,39,48,38,25,13,36,40,33,32,13,56,29,10,34,36,34,65,10,5,55,31,27,28,24,27,31,47,33,28,41,49,29,10,62,55,66,45,25,13,34,38,64,82,21,49,42,104,21,17,22,91,82,48,17,13,24,10,54,32,32,61,56,38,17,13,49,25,40,66,13,10,5,32,40,55,38,100,9,17,6,54,25,45,45,26,17,54,28,17,39,26,17,22,38,17,13,9,5,55,25,45,45,26,17,54,28,17,39,26,17,22,38,17,13,9,5,26,38,62,5,7,56,63,7,16,42,49,49,61,59,13,9,5,7,56,6,56,63,7,17,43,49,49,61,59,13,9,5,7,57,63,7,13,42,39,34,61,24,13,9,5,7,53,6,57,63,7,14,43,39,34,61,24,13,9,5,7,59,63,7,15,42,39,34,61,39,13,9,5,7,55,6,59,63,7,16,43,39,34,61,39,13,9,5,7,65,31,7,25,30,5,7,72,62,35,7,38,7,76,74,7,31,42,39,52,40,20,36,25,52,62,13,9,5,7,79,44,6,49,6,79,74,6,75,7,31,42,39,52,40,20,36,25,58,9,5,7,74,78,7,32,43,39,52,40,20,36,25,58,9,5,7,70,23,7,18,28,63,35,57,31,13,9,23,5,7,77,78,6,81,80,74,6,78,80,19,7,15,40,28,29,35,48,36,16,32,29,32,41,38,42,31,58,35,41,13,9,26,40,9,21,5,7,75,40,6,76,59,6,63,56,6,77,28,7,12,23,62,41,39,52,40,20,57,25,36,45,42,73,76,57,59,13,30,44,13,38,9,19,5,7,76,6,80,31,6,77,72,7,15,21,41,30,75,77,77,31,18,76,53,47,13,46,9,5,7,32,6,73,30,6,76,74,40,6,69,70,72,27,6,65,72,69,63,18,6,71,70,26,6,44,6,61,69,7,32,30,27,24,9,140,60,84,53,53,60,25,36,51,13,66,35,24,9,71,34,23,37,28,41,38,46,44,38,37,37,39,43,43,31,25,51,23,35,32,9,14,21,36,48,31,78,74,63,61,47,57,25,52,64,25,21,17,43,43,58,21,48,65,21,17,44,55,41,29,43,78,53,33,47,51,17,13,30,38,13,9,39,42,9,25,31,52,13,23,47,9,73,38,21,42,46,13,9,20,5,7,65,37,7,11,13,32,54,34,51,51,56,21,17,45,31,17,13,9,17,58,42,25,46,50,17,13,9,5,18,32,38,38,65,60,9,61,35,47,13,40,54,13,9,35,67,19,44,44,34,9,31,40,34,9,14,42,9,31,21,20,5,7,75,76,20,6,70,80,58,6,81,77,57,6,38,58,7,29,76,42,34,43,45,55,29,13,40,37,47,17,29,39,51,17,28,13,30,37,47,13,9,26,32,9,21,5,7,75,13,6,55,54,7,31,61,42,34,52,19,9,39,76,71,5,50,73,41,21,9,28,35,65,74,30,11,27,30,20,20,10,48,42,76,33,46,55,65,36,64,17,22,56,17,13,58,51,13,81,25,45,38,50,71,21,26,49,21,17,22,39,59,54,17,13,21,10,28,33,52,47,13,33,10,35,42,80,87,76,25,45,85,86,79,26,45,17,46,72,72,71,73,67,17,13,29,78,56,17,47,13,44,25,13,10,37,61,48,73,13,58,58,43,55,48,53,35,69,57,47,21,17,15,10,27,50,50,37,34,36,34,11,34,45,73,40,9,14,38,9,18,5,27,34,25,20,22,35,55,47,5,39,16,22,122,22,144,34,288,36,23,37,32,27,31,35,23,15,9,25,23,27,31,16,27,17,28,24,37,39,35,29,19,19,10,40,34,23,38,72,38,9,14,47,43,45,81,29,46,30,52,17,75,13,79,76,49,44,27,41,40,37,47,17,27,51,25,13,77,33,72,66,52,25,61,40,48,13,74,9,5,44,52,28,58,17,5,31,44,26,69,9,66,39,45,21,37,20,20,11,33,18,5,7,74,19,6,62,7,29,153,42,34,47,60,23,47,39,27,41,67,32,46,50,21,45,52,58,17,22,33,37,67,52,21,79,17,13,18,27,39,80,81,82,84,53,31,54,17,40,37,47,17,29,13,9,26,32,9,5,20,26,26,5,24,41,44,15,69,50,29,29,23,35,39,47,13,18,68,13,45,31,9,5,7,38,6,60,7,15,41,5,24,28,31,46,38,31,39,40,17,22,48,51,53,72,21,73,47,58,25,52,65,25,21,43,53,53,47,55,21,52,55,21,26,53,59,53,59,21,33,43,17,13,9,62,38,21,42,46,13,9,23,5,7,58,7,13,37,5,20,67,43,45,64,13,18,47,39,50,17,44,57,17,13,9,29,38,38,41,31,33,9,26,32,9,23,23,30,33,23,54,38,21,42,46,13,9,5,1,28,33],"data":{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/path-scurry/node_modules/lru-cache/src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module LRUCache\n */\n\n// module-private names and types\ntype Perf = { now: () => number }\nconst perf: Perf =\n  typeof performance === 'object' &&\n  performance &&\n  typeof performance.now === 'function'\n    ? performance\n    : Date\n\nconst warned = new Set<string>()\n\n// either a function or a class\ntype ForC = ((...a: any[]) => any) | { new (...a: any[]): any }\n\n/* c8 ignore start */\nconst PROCESS = (\n  typeof process === 'object' && !!process ? process : {}\n) as { [k: string]: any }\n/* c8 ignore start */\n\nconst emitWarning = (\n  msg: string,\n  type: string,\n  code: string,\n  fn: ForC\n) => {\n  typeof PROCESS.emitWarning === 'function'\n    ? PROCESS.emitWarning(msg, type, code, fn)\n    : console.error(`[${code}] ${type}: ${msg}`)\n}\n\nlet AC = globalThis.AbortController\nlet AS = globalThis.AbortSignal\n\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n  //@ts-ignore\n  AS = class AbortSignal {\n    onabort?: (...a: any[]) => any\n    _onabort: ((...a: any[]) => any)[] = []\n    reason?: any\n    aborted: boolean = false\n    addEventListener(_: string, fn: (...a: any[]) => any) {\n      this._onabort.push(fn)\n    }\n  }\n  //@ts-ignore\n  AC = class AbortController {\n    constructor() {\n      warnACPolyfill()\n    }\n    signal = new AS()\n    abort(reason: any) {\n      if (this.signal.aborted) return\n      //@ts-ignore\n      this.signal.reason = reason\n      //@ts-ignore\n      this.signal.aborted = true\n      //@ts-ignore\n      for (const fn of this.signal._onabort) {\n        fn(reason)\n      }\n      this.signal.onabort?.(reason)\n    }\n  }\n  let printACPolyfillWarning =\n    PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1'\n  const warnACPolyfill = () => {\n    if (!printACPolyfillWarning) return\n    printACPolyfillWarning = false\n    emitWarning(\n      'AbortController is not defined. If using lru-cache in ' +\n        'node 14, load an AbortController polyfill from the ' +\n        '`node-abort-controller` package. A minimal polyfill is ' +\n        'provided for use by LRUCache.fetch(), but it should not be ' +\n        'relied upon in other contexts (eg, passing it to other APIs that ' +\n        'use AbortController/AbortSignal might have undesirable effects). ' +\n        'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.',\n      'NO_ABORT_CONTROLLER',\n      'ENOTSUP',\n      warnACPolyfill\n    )\n  }\n}\n/* c8 ignore stop */\n\nconst shouldWarn = (code: string) => !warned.has(code)\n\nconst TYPE = Symbol('type')\nexport type PosInt = number & { [TYPE]: 'Positive Integer' }\nexport type Index = number & { [TYPE]: 'LRUCache Index' }\n\nconst isPosInt = (n: any): n is PosInt =>\n  n && n === Math.floor(n) && n > 0 && isFinite(n)\n\nexport type UintArray = Uint8Array | Uint16Array | Uint32Array\nexport type NumberArray = UintArray | number[]\n\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values.  Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max: number) =>\n  !isPosInt(max)\n    ? null\n    : max <= Math.pow(2, 8)\n    ? Uint8Array\n    : max <= Math.pow(2, 16)\n    ? Uint16Array\n    : max <= Math.pow(2, 32)\n    ? Uint32Array\n    : max <= Number.MAX_SAFE_INTEGER\n    ? ZeroArray\n    : null\n/* c8 ignore stop */\n\nclass ZeroArray extends Array<number> {\n  constructor(size: number) {\n    super(size)\n    this.fill(0)\n  }\n}\nexport type { ZeroArray }\nexport type { Stack }\n\nexport type StackLike = Stack | Index[]\nclass Stack {\n  heap: NumberArray\n  length: number\n  // private constructor\n  static #constructing: boolean = false\n  static create(max: number): StackLike {\n    const HeapCls = getUintArray(max)\n    if (!HeapCls) return []\n    Stack.#constructing = true\n    const s = new Stack(max, HeapCls)\n    Stack.#constructing = false\n    return s\n  }\n  constructor(\n    max: number,\n    HeapCls: { new (n: number): NumberArray }\n  ) {\n    /* c8 ignore start */\n    if (!Stack.#constructing) {\n      throw new TypeError('instantiate Stack using Stack.create(n)')\n    }\n    /* c8 ignore stop */\n    this.heap = new HeapCls(max)\n    this.length = 0\n  }\n  push(n: Index) {\n    this.heap[this.length++] = n\n  }\n  pop(): Index {\n    return this.heap[--this.length] as Index\n  }\n}\n\n/**\n * Promise representing an in-progress {@link LRUCache#fetch} call\n */\nexport type BackgroundFetch<V> = Promise<V | undefined> & {\n  __returned: BackgroundFetch<V> | undefined\n  __abortController: AbortController\n  __staleWhileFetching: V | undefined\n}\n\nexport type DisposeTask<K, V> = [\n  value: V,\n  key: K,\n  reason: LRUCache.DisposeReason\n]\n\nexport namespace LRUCache {\n  /**\n   * An integer greater than 0, reflecting the calculated size of items\n   */\n  export type Size = number\n\n  /**\n   * Integer greater than 0, representing some number of milliseconds, or the\n   * time at which a TTL started counting from.\n   */\n  export type Milliseconds = number\n\n  /**\n   * An integer greater than 0, reflecting a number of items\n   */\n  export type Count = number\n\n  /**\n   * The reason why an item was removed from the cache, passed\n   * to the {@link Disposer} methods.\n   *\n   * - `evict`: The item was evicted because it is the least recently used,\n   *   and the cache is full.\n   * - `set`: A new value was set, overwriting the old value being disposed.\n   * - `delete`: The item was explicitly deleted, either by calling\n   *   {@link LRUCache#delete}, {@link LRUCache#clear}, or\n   *   {@link LRUCache#set} with an undefined value.\n   * - `expire`: The item was removed due to exceeding its TTL.\n   * - `fetch`: A {@link OptionsBase#fetchMethod} operation returned\n   *   `undefined` or was aborted, causing the item to be deleted.\n   */\n  export type DisposeReason =\n    | 'evict'\n    | 'set'\n    | 'delete'\n    | 'expire'\n    | 'fetch'\n  /**\n   * A method called upon item removal, passed as the\n   * {@link OptionsBase.dispose} and/or\n   * {@link OptionsBase.disposeAfter} options.\n   */\n  export type Disposer<K, V> = (\n    value: V,\n    key: K,\n    reason: DisposeReason\n  ) => void\n\n  /**\n   * A function that returns the effective calculated size\n   * of an entry in the cache.\n   */\n  export type SizeCalculator<K, V> = (value: V, key: K) => Size\n\n  /**\n   * Options provided to the\n   * {@link OptionsBase.fetchMethod} function.\n   */\n  export interface FetcherOptions<K, V, FC = unknown> {\n    signal: AbortSignal\n    options: FetcherFetchOptions<K, V, FC>\n    /**\n     * Object provided in the {@link FetchOptions.context} option to\n     * {@link LRUCache#fetch}\n     */\n    context: FC\n  }\n\n  /**\n   * Occasionally, it may be useful to track the internal behavior of the\n   * cache, particularly for logging, debugging, or for behavior within the\n   * `fetchMethod`. To do this, you can pass a `status` object to the\n   * {@link LRUCache#fetch}, {@link LRUCache#get}, {@link LRUCache#set},\n   * {@link LRUCache#memo}, and {@link LRUCache#has} methods.\n   *\n   * The `status` option should be a plain JavaScript object. The following\n   * fields will be set on it appropriately, depending on the situation.\n   */\n  export interface Status<V> {\n    /**\n     * The status of a set() operation.\n     *\n     * - add: the item was not found in the cache, and was added\n     * - update: the item was in the cache, with the same value provided\n     * - replace: the item was in the cache, and replaced\n     * - miss: the item was not added to the cache for some reason\n     */\n    set?: 'add' | 'update' | 'replace' | 'miss'\n\n    /**\n     * the ttl stored for the item, or undefined if ttls are not used.\n     */\n    ttl?: Milliseconds\n\n    /**\n     * the start time for the item, or undefined if ttls are not used.\n     */\n    start?: Milliseconds\n\n    /**\n     * The timestamp used for TTL calculation\n     */\n    now?: Milliseconds\n\n    /**\n     * the remaining ttl for the item, or undefined if ttls are not used.\n     */\n    remainingTTL?: Milliseconds\n\n    /**\n     * The calculated size for the item, if sizes are used.\n     */\n    entrySize?: Size\n\n    /**\n     * The total calculated size of the cache, if sizes are used.\n     */\n    totalCalculatedSize?: Size\n\n    /**\n     * A flag indicating that the item was not stored, due to exceeding the\n     * {@link OptionsBase.maxEntrySize}\n     */\n    maxEntrySizeExceeded?: true\n\n    /**\n     * The old value, specified in the case of `set:'update'` or\n     * `set:'replace'`\n     */\n    oldValue?: V\n\n    /**\n     * The results of a {@link LRUCache#has} operation\n     *\n     * - hit: the item was found in the cache\n     * - stale: the item was found in the cache, but is stale\n     * - miss: the item was not found in the cache\n     */\n    has?: 'hit' | 'stale' | 'miss'\n\n    /**\n     * The status of a {@link LRUCache#fetch} operation.\n     * Note that this can change as the underlying fetch() moves through\n     * various states.\n     *\n     * - inflight: there is another fetch() for this key which is in process\n     * - get: there is no {@link OptionsBase.fetchMethod}, so\n     *   {@link LRUCache#get} was called.\n     * - miss: the item is not in cache, and will be fetched.\n     * - hit: the item is in the cache, and was resolved immediately.\n     * - stale: the item is in the cache, but stale.\n     * - refresh: the item is in the cache, and not stale, but\n     *   {@link FetchOptions.forceRefresh} was specified.\n     */\n    fetch?: 'get' | 'inflight' | 'miss' | 'hit' | 'stale' | 'refresh'\n\n    /**\n     * The {@link OptionsBase.fetchMethod} was called\n     */\n    fetchDispatched?: true\n\n    /**\n     * The cached value was updated after a successful call to\n     * {@link OptionsBase.fetchMethod}\n     */\n    fetchUpdated?: true\n\n    /**\n     * The reason for a fetch() rejection.  Either the error raised by the\n     * {@link OptionsBase.fetchMethod}, or the reason for an\n     * AbortSignal.\n     */\n    fetchError?: Error\n\n    /**\n     * The fetch received an abort signal\n     */\n    fetchAborted?: true\n\n    /**\n     * The abort signal received was ignored, and the fetch was allowed to\n     * continue.\n     */\n    fetchAbortIgnored?: true\n\n    /**\n     * The fetchMethod promise resolved successfully\n     */\n    fetchResolved?: true\n\n    /**\n     * The fetchMethod promise was rejected\n     */\n    fetchRejected?: true\n\n    /**\n     * The status of a {@link LRUCache#get} operation.\n     *\n     * - fetching: The item is currently being fetched.  If a previous value\n     *   is present and allowed, that will be returned.\n     * - stale: The item is in the cache, and is stale.\n     * - hit: the item is in the cache\n     * - miss: the item is not in the cache\n     */\n    get?: 'stale' | 'hit' | 'miss'\n\n    /**\n     * A fetch or get operation returned a stale value.\n     */\n    returnedStale?: true\n  }\n\n  /**\n   * options which override the options set in the LRUCache constructor\n   * when calling {@link LRUCache#fetch}.\n   *\n   * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n   * {@link OptionsBase.noDeleteOnFetchRejection},\n   * {@link OptionsBase.allowStaleOnFetchRejection},\n   * {@link FetchOptions.forceRefresh}, and\n   * {@link FetcherOptions.context}\n   *\n   * Any of these may be modified in the {@link OptionsBase.fetchMethod}\n   * function, but the {@link GetOptions} fields will of course have no\n   * effect, as the {@link LRUCache#get} call already happened by the time\n   * the fetchMethod is called.\n   */\n  export interface FetcherFetchOptions<K, V, FC = unknown>\n    extends Pick<\n      OptionsBase<K, V, FC>,\n      | 'allowStale'\n      | 'updateAgeOnGet'\n      | 'noDeleteOnStaleGet'\n      | 'sizeCalculation'\n      | 'ttl'\n      | 'noDisposeOnSet'\n      | 'noUpdateTTL'\n      | 'noDeleteOnFetchRejection'\n      | 'allowStaleOnFetchRejection'\n      | 'ignoreFetchAbort'\n      | 'allowStaleOnFetchAbort'\n    > {\n    status?: Status<V>\n    size?: Size\n  }\n\n  /**\n   * Options that may be passed to the {@link LRUCache#fetch} method.\n   */\n  export interface FetchOptions<K, V, FC>\n    extends FetcherFetchOptions<K, V, FC> {\n    /**\n     * Set to true to force a re-load of the existing data, even if it\n     * is not yet stale.\n     */\n    forceRefresh?: boolean\n    /**\n     * Context provided to the {@link OptionsBase.fetchMethod} as\n     * the {@link FetcherOptions.context} param.\n     *\n     * If the FC type is specified as unknown (the default),\n     * undefined or void, then this is optional.  Otherwise, it will\n     * be required.\n     */\n    context?: FC\n    signal?: AbortSignal\n    status?: Status<V>\n  }\n  /**\n   * Options provided to {@link LRUCache#fetch} when the FC type is something\n   * other than `unknown`, `undefined`, or `void`\n   */\n  export interface FetchOptionsWithContext<K, V, FC>\n    extends FetchOptions<K, V, FC> {\n    context: FC\n  }\n  /**\n   * Options provided to {@link LRUCache#fetch} when the FC type is\n   * `undefined` or `void`\n   */\n  export interface FetchOptionsNoContext<K, V>\n    extends FetchOptions<K, V, undefined> {\n    context?: undefined\n  }\n\n  export interface MemoOptions<K, V, FC = unknown>\n    extends Pick<\n      OptionsBase<K, V, FC>,\n      | 'allowStale'\n      | 'updateAgeOnGet'\n      | 'noDeleteOnStaleGet'\n      | 'sizeCalculation'\n      | 'ttl'\n      | 'noDisposeOnSet'\n      | 'noUpdateTTL'\n      | 'noDeleteOnFetchRejection'\n      | 'allowStaleOnFetchRejection'\n      | 'ignoreFetchAbort'\n      | 'allowStaleOnFetchAbort'\n    > {\n    /**\n     * Set to true to force a re-load of the existing data, even if it\n     * is not yet stale.\n     */\n    forceRefresh?: boolean\n    /**\n     * Context provided to the {@link OptionsBase.memoMethod} as\n     * the {@link MemoizerOptions.context} param.\n     *\n     * If the FC type is specified as unknown (the default),\n     * undefined or void, then this is optional.  Otherwise, it will\n     * be required.\n     */\n    context?: FC\n    status?: Status<V>\n  }\n  /**\n   * Options provided to {@link LRUCache#memo} when the FC type is something\n   * other than `unknown`, `undefined`, or `void`\n   */\n  export interface MemoOptionsWithContext<K, V, FC>\n    extends MemoOptions<K, V, FC> {\n    context: FC\n  }\n  /**\n   * Options provided to {@link LRUCache#memo} when the FC type is\n   * `undefined` or `void`\n   */\n  export interface MemoOptionsNoContext<K, V>\n    extends MemoOptions<K, V, undefined> {\n    context?: undefined\n  }\n\n  /**\n   * Options provided to the\n   * {@link OptionsBase.memoMethod} function.\n   */\n  export interface MemoizerOptions<K, V, FC = unknown> {\n    options: MemoizerMemoOptions<K, V, FC>\n    /**\n     * Object provided in the {@link MemoOptions.context} option to\n     * {@link LRUCache#memo}\n     */\n    context: FC\n  }\n\n  /**\n   * options which override the options set in the LRUCache constructor\n   * when calling {@link LRUCache#memo}.\n   *\n   * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n   * {@link MemoOptions.forceRefresh}, and\n   * {@link MemoerOptions.context}\n   *\n   * Any of these may be modified in the {@link OptionsBase.memoMethod}\n   * function, but the {@link GetOptions} fields will of course have no\n   * effect, as the {@link LRUCache#get} call already happened by the time\n   * the memoMethod is called.\n   */\n  export interface MemoizerMemoOptions<K, V, FC = unknown>\n    extends Pick<\n      OptionsBase<K, V, FC>,\n      | 'allowStale'\n      | 'updateAgeOnGet'\n      | 'noDeleteOnStaleGet'\n      | 'sizeCalculation'\n      | 'ttl'\n      | 'noDisposeOnSet'\n      | 'noUpdateTTL'\n    > {\n    status?: Status<V>\n    size?: Size\n    start?: Milliseconds\n  }\n\n  /**\n   * Options that may be passed to the {@link LRUCache#has} method.\n   */\n  export interface HasOptions<K, V, FC>\n    extends Pick<OptionsBase<K, V, FC>, 'updateAgeOnHas'> {\n    status?: Status<V>\n  }\n\n  /**\n   * Options that may be passed to the {@link LRUCache#get} method.\n   */\n  export interface GetOptions<K, V, FC>\n    extends Pick<\n      OptionsBase<K, V, FC>,\n      'allowStale' | 'updateAgeOnGet' | 'noDeleteOnStaleGet'\n    > {\n    status?: Status<V>\n  }\n\n  /**\n   * Options that may be passed to the {@link LRUCache#peek} method.\n   */\n  export interface PeekOptions<K, V, FC>\n    extends Pick<OptionsBase<K, V, FC>, 'allowStale'> {}\n\n  /**\n   * Options that may be passed to the {@link LRUCache#set} method.\n   */\n  export interface SetOptions<K, V, FC>\n    extends Pick<\n      OptionsBase<K, V, FC>,\n      'sizeCalculation' | 'ttl' | 'noDisposeOnSet' | 'noUpdateTTL'\n    > {\n    /**\n     * If size tracking is enabled, then setting an explicit size\n     * in the {@link LRUCache#set} call will prevent calling the\n     * {@link OptionsBase.sizeCalculation} function.\n     */\n    size?: Size\n    /**\n     * If TTL tracking is enabled, then setting an explicit start\n     * time in the {@link LRUCache#set} call will override the\n     * default time from `performance.now()` or `Date.now()`.\n     *\n     * Note that it must be a valid value for whichever time-tracking\n     * method is in use.\n     */\n    start?: Milliseconds\n    status?: Status<V>\n  }\n\n  /**\n   * The type signature for the {@link OptionsBase.fetchMethod} option.\n   */\n  export type Fetcher<K, V, FC = unknown> = (\n    key: K,\n    staleValue: V | undefined,\n    options: FetcherOptions<K, V, FC>\n  ) => Promise<V | undefined | void> | V | undefined | void\n\n  /**\n   * the type signature for the {@link OptionsBase.memoMethod} option.\n   */\n  export type Memoizer<K, V, FC = unknown> = (\n    key: K,\n    staleValue: V | undefined,\n    options: MemoizerOptions<K, V, FC>\n  ) => V\n\n  /**\n   * Options which may be passed to the {@link LRUCache} constructor.\n   *\n   * Most of these may be overridden in the various options that use\n   * them.\n   *\n   * Despite all being technically optional, the constructor requires that\n   * a cache is at minimum limited by one or more of {@link OptionsBase.max},\n   * {@link OptionsBase.ttl}, or {@link OptionsBase.maxSize}.\n   *\n   * If {@link OptionsBase.ttl} is used alone, then it is strongly advised\n   * (and in fact required by the type definitions here) that the cache\n   * also set {@link OptionsBase.ttlAutopurge}, to prevent potentially\n   * unbounded storage.\n   *\n   * All options are also available on the {@link LRUCache} instance, making\n   * it safe to pass an LRUCache instance as the options argumemnt to\n   * make another empty cache of the same type.\n   *\n   * Some options are marked as read-only, because changing them after\n   * instantiation is not safe. Changing any of the other options will of\n   * course only have an effect on subsequent method calls.\n   */\n  export interface OptionsBase<K, V, FC> {\n    /**\n     * The maximum number of items to store in the cache before evicting\n     * old entries. This is read-only on the {@link LRUCache} instance,\n     * and may not be overridden.\n     *\n     * If set, then storage space will be pre-allocated at construction\n     * time, and the cache will perform significantly faster.\n     *\n     * Note that significantly fewer items may be stored, if\n     * {@link OptionsBase.maxSize} and/or {@link OptionsBase.ttl} are also\n     * set.\n     *\n     * **It is strongly recommended to set a `max` to prevent unbounded growth\n     * of the cache.**\n     */\n    max?: Count\n\n    /**\n     * Max time in milliseconds for items to live in cache before they are\n     * considered stale.  Note that stale items are NOT preemptively removed by\n     * default, and MAY live in the cache, contributing to its LRU max, long\n     * after they have expired, unless {@link OptionsBase.ttlAutopurge} is\n     * set.\n     *\n     * If set to `0` (the default value), then that means \"do not track\n     * TTL\", not \"expire immediately\".\n     *\n     * Also, as this cache is optimized for LRU/MRU operations, some of\n     * the staleness/TTL checks will reduce performance, as they will incur\n     * overhead by deleting items.\n     *\n     * This is not primarily a TTL cache, and does not make strong TTL\n     * guarantees. There is no pre-emptive pruning of expired items, but you\n     * _may_ set a TTL on the cache, and it will treat expired items as missing\n     * when they are fetched, and delete them.\n     *\n     * Optional, but must be a non-negative integer in ms if specified.\n     *\n     * This may be overridden by passing an options object to `cache.set()`.\n     *\n     * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n     * positive integer if set.\n     *\n     * Even if ttl tracking is enabled, **it is strongly recommended to set a\n     * `max` to prevent unbounded growth of the cache.**\n     *\n     * If ttl tracking is enabled, and `max` and `maxSize` are not set,\n     * and `ttlAutopurge` is not set, then a warning will be emitted\n     * cautioning about the potential for unbounded memory consumption.\n     * (The TypeScript definitions will also discourage this.)\n     */\n    ttl?: Milliseconds\n\n    /**\n     * Minimum amount of time in ms in which to check for staleness.\n     * Defaults to 1, which means that the current time is checked\n     * at most once per millisecond.\n     *\n     * Set to 0 to check the current time every time staleness is tested.\n     * (This reduces performance, and is theoretically unnecessary.)\n     *\n     * Setting this to a higher value will improve performance somewhat\n     * while using ttl tracking, albeit at the expense of keeping stale\n     * items around a bit longer than their TTLs would indicate.\n     *\n     * @default 1\n     */\n    ttlResolution?: Milliseconds\n\n    /**\n     * Preemptively remove stale items from the cache.\n     *\n     * Note that this may *significantly* degrade performance, especially if\n     * the cache is storing a large number of items. It is almost always best\n     * to just leave the stale items in the cache, and let them fall out as new\n     * items are added.\n     *\n     * Note that this means that {@link OptionsBase.allowStale} is a bit\n     * pointless, as stale items will be deleted almost as soon as they\n     * expire.\n     *\n     * Use with caution!\n     */\n    ttlAutopurge?: boolean\n\n    /**\n     * When using time-expiring entries with `ttl`, setting this to `true` will\n     * make each item's age reset to 0 whenever it is retrieved from cache with\n     * {@link LRUCache#get}, causing it to not expire. (It can still fall out\n     * of cache based on recency of use, of course.)\n     *\n     * Has no effect if {@link OptionsBase.ttl} is not set.\n     *\n     * This may be overridden by passing an options object to `cache.get()`.\n     */\n    updateAgeOnGet?: boolean\n\n    /**\n     * When using time-expiring entries with `ttl`, setting this to `true` will\n     * make each item's age reset to 0 whenever its presence in the cache is\n     * checked with {@link LRUCache#has}, causing it to not expire. (It can\n     * still fall out of cache based on recency of use, of course.)\n     *\n     * Has no effect if {@link OptionsBase.ttl} is not set.\n     */\n    updateAgeOnHas?: boolean\n\n    /**\n     * Allow {@link LRUCache#get} and {@link LRUCache#fetch} calls to return\n     * stale data, if available.\n     *\n     * By default, if you set `ttl`, stale items will only be deleted from the\n     * cache when you `get(key)`. That is, it's not preemptively pruning items,\n     * unless {@link OptionsBase.ttlAutopurge} is set.\n     *\n     * If you set `allowStale:true`, it'll return the stale value *as well as*\n     * deleting it. If you don't set this, then it'll return `undefined` when\n     * you try to get a stale entry.\n     *\n     * Note that when a stale entry is fetched, _even if it is returned due to\n     * `allowStale` being set_, it is removed from the cache immediately. You\n     * can suppress this behavior by setting\n     * {@link OptionsBase.noDeleteOnStaleGet}, either in the constructor, or in\n     * the options provided to {@link LRUCache#get}.\n     *\n     * This may be overridden by passing an options object to `cache.get()`.\n     * The `cache.has()` method will always return `false` for stale items.\n     *\n     * Only relevant if a ttl is set.\n     */\n    allowStale?: boolean\n\n    /**\n     * Function that is called on items when they are dropped from the\n     * cache, as `dispose(value, key, reason)`.\n     *\n     * This can be handy if you want to close file descriptors or do\n     * other cleanup tasks when items are no longer stored in the cache.\n     *\n     * **NOTE**: It is called _before_ the item has been fully removed\n     * from the cache, so if you want to put it right back in, you need\n     * to wait until the next tick. If you try to add it back in during\n     * the `dispose()` function call, it will break things in subtle and\n     * weird ways.\n     *\n     * Unlike several other options, this may _not_ be overridden by\n     * passing an option to `set()`, for performance reasons.\n     *\n     * The `reason` will be one of the following strings, corresponding\n     * to the reason for the item's deletion:\n     *\n     * - `evict` Item was evicted to make space for a new addition\n     * - `set` Item was overwritten by a new value\n     * - `expire` Item expired its TTL\n     * - `fetch` Item was deleted due to a failed or aborted fetch, or a\n     *   fetchMethod returning `undefined.\n     * - `delete` Item was removed by explicit `cache.delete(key)`,\n     *   `cache.clear()`, or `cache.set(key, undefined)`.\n     */\n    dispose?: Disposer<K, V>\n\n    /**\n     * The same as {@link OptionsBase.dispose}, but called *after* the entry\n     * is completely removed and the cache is once again in a clean state.\n     *\n     * It is safe to add an item right back into the cache at this point.\n     * However, note that it is *very* easy to inadvertently create infinite\n     * recursion this way.\n     */\n    disposeAfter?: Disposer<K, V>\n\n    /**\n     * Set to true to suppress calling the\n     * {@link OptionsBase.dispose} function if the entry key is\n     * still accessible within the cache.\n     *\n     * This may be overridden by passing an options object to\n     * {@link LRUCache#set}.\n     *\n     * Only relevant if `dispose` or `disposeAfter` are set.\n     */\n    noDisposeOnSet?: boolean\n\n    /**\n     * Boolean flag to tell the cache to not update the TTL when setting a new\n     * value for an existing key (ie, when updating a value rather than\n     * inserting a new value).  Note that the TTL value is _always_ set (if\n     * provided) when adding a new entry into the cache.\n     *\n     * Has no effect if a {@link OptionsBase.ttl} is not set.\n     *\n     * May be passed as an option to {@link LRUCache#set}.\n     */\n    noUpdateTTL?: boolean\n\n    /**\n     * Set to a positive integer to track the sizes of items added to the\n     * cache, and automatically evict items in order to stay below this size.\n     * Note that this may result in fewer than `max` items being stored.\n     *\n     * Attempting to add an item to the cache whose calculated size is greater\n     * that this amount will be a no-op. The item will not be cached, and no\n     * other items will be evicted.\n     *\n     * Optional, must be a positive integer if provided.\n     *\n     * Sets `maxEntrySize` to the same value, unless a different value is\n     * provided for `maxEntrySize`.\n     *\n     * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n     * positive integer if set.\n     *\n     * Even if size tracking is enabled, **it is strongly recommended to set a\n     * `max` to prevent unbounded growth of the cache.**\n     *\n     * Note also that size tracking can negatively impact performance,\n     * though for most cases, only minimally.\n     */\n    maxSize?: Size\n\n    /**\n     * The maximum allowed size for any single item in the cache.\n     *\n     * If a larger item is passed to {@link LRUCache#set} or returned by a\n     * {@link OptionsBase.fetchMethod} or {@link OptionsBase.memoMethod}, then\n     * it will not be stored in the cache.\n     *\n     * Attempting to add an item whose calculated size is greater than\n     * this amount will not cache the item or evict any old items, but\n     * WILL delete an existing value if one is already present.\n     *\n     * Optional, must be a positive integer if provided. Defaults to\n     * the value of `maxSize` if provided.\n     */\n    maxEntrySize?: Size\n\n    /**\n     * A function that returns a number indicating the item's size.\n     *\n     * Requires {@link OptionsBase.maxSize} to be set.\n     *\n     * If not provided, and {@link OptionsBase.maxSize} or\n     * {@link OptionsBase.maxEntrySize} are set, then all\n     * {@link LRUCache#set} calls **must** provide an explicit\n     * {@link SetOptions.size} or sizeCalculation param.\n     */\n    sizeCalculation?: SizeCalculator<K, V>\n\n    /**\n     * Method that provides the implementation for {@link LRUCache#fetch}\n     *\n     * ```ts\n     * fetchMethod(key, staleValue, { signal, options, context })\n     * ```\n     *\n     * If `fetchMethod` is not provided, then `cache.fetch(key)` is equivalent\n     * to `Promise.resolve(cache.get(key))`.\n     *\n     * If at any time, `signal.aborted` is set to `true`, or if the\n     * `signal.onabort` method is called, or if it emits an `'abort'` event\n     * which you can listen to with `addEventListener`, then that means that\n     * the fetch should be abandoned. This may be passed along to async\n     * functions aware of AbortController/AbortSignal behavior.\n     *\n     * The `fetchMethod` should **only** return `undefined` or a Promise\n     * resolving to `undefined` if the AbortController signaled an `abort`\n     * event. In all other cases, it should return or resolve to a value\n     * suitable for adding to the cache.\n     *\n     * The `options` object is a union of the options that may be provided to\n     * `set()` and `get()`. If they are modified, then that will result in\n     * modifying the settings to `cache.set()` when the value is resolved, and\n     * in the case of\n     * {@link OptionsBase.noDeleteOnFetchRejection} and\n     * {@link OptionsBase.allowStaleOnFetchRejection}, the handling of\n     * `fetchMethod` failures.\n     *\n     * For example, a DNS cache may update the TTL based on the value returned\n     * from a remote DNS server by changing `options.ttl` in the `fetchMethod`.\n     */\n    fetchMethod?: Fetcher<K, V, FC>\n\n    /**\n     * Method that provides the implementation for {@link LRUCache#memo}\n     */\n    memoMethod?: Memoizer<K, V, FC>\n\n    /**\n     * Set to true to suppress the deletion of stale data when a\n     * {@link OptionsBase.fetchMethod} returns a rejected promise.\n     */\n    noDeleteOnFetchRejection?: boolean\n\n    /**\n     * Do not delete stale items when they are retrieved with\n     * {@link LRUCache#get}.\n     *\n     * Note that the `get` return value will still be `undefined`\n     * unless {@link OptionsBase.allowStale} is true.\n     *\n     * When using time-expiring entries with `ttl`, by default stale\n     * items will be removed from the cache when the key is accessed\n     * with `cache.get()`.\n     *\n     * Setting this option will cause stale items to remain in the cache, until\n     * they are explicitly deleted with `cache.delete(key)`, or retrieved with\n     * `noDeleteOnStaleGet` set to `false`.\n     *\n     * This may be overridden by passing an options object to `cache.get()`.\n     *\n     * Only relevant if a ttl is used.\n     */\n    noDeleteOnStaleGet?: boolean\n\n    /**\n     * Set to true to allow returning stale data when a\n     * {@link OptionsBase.fetchMethod} throws an error or returns a rejected\n     * promise.\n     *\n     * This differs from using {@link OptionsBase.allowStale} in that stale\n     * data will ONLY be returned in the case that the {@link LRUCache#fetch}\n     * fails, not any other times.\n     *\n     * If a `fetchMethod` fails, and there is no stale value available, the\n     * `fetch()` will resolve to `undefined`. Ie, all `fetchMethod` errors are\n     * suppressed.\n     *\n     * Implies `noDeleteOnFetchRejection`.\n     *\n     * This may be set in calls to `fetch()`, or defaulted on the constructor,\n     * or overridden by modifying the options object in the `fetchMethod`.\n     */\n    allowStaleOnFetchRejection?: boolean\n\n    /**\n     * Set to true to return a stale value from the cache when the\n     * `AbortSignal` passed to the {@link OptionsBase.fetchMethod} dispatches\n     * an `'abort'` event, whether user-triggered, or due to internal cache\n     * behavior.\n     *\n     * Unless {@link OptionsBase.ignoreFetchAbort} is also set, the underlying\n     * {@link OptionsBase.fetchMethod} will still be considered canceled, and\n     * any value it returns will be ignored and not cached.\n     *\n     * Caveat: since fetches are aborted when a new value is explicitly\n     * set in the cache, this can lead to fetch returning a stale value,\n     * since that was the fallback value _at the moment the `fetch()` was\n     * initiated_, even though the new updated value is now present in\n     * the cache.\n     *\n     * For example:\n     *\n     * ```ts\n     * const cache = new LRUCache<string, any>({\n     *   ttl: 100,\n     *   fetchMethod: async (url, oldValue, { signal }) =>  {\n     *     const res = await fetch(url, { signal })\n     *     return await res.json()\n     *   }\n     * })\n     * cache.set('https://example.com/', { some: 'data' })\n     * // 100ms go by...\n     * const result = cache.fetch('https://example.com/')\n     * cache.set('https://example.com/', { other: 'thing' })\n     * console.log(await result) // { some: 'data' }\n     * console.log(cache.get('https://example.com/')) // { other: 'thing' }\n     * ```\n     */\n    allowStaleOnFetchAbort?: boolean\n\n    /**\n     * Set to true to ignore the `abort` event emitted by the `AbortSignal`\n     * object passed to {@link OptionsBase.fetchMethod}, and still cache the\n     * resulting resolution value, as long as it is not `undefined`.\n     *\n     * When used on its own, this means aborted {@link LRUCache#fetch} calls\n     * are not immediately resolved or rejected when they are aborted, and\n     * instead take the full time to await.\n     *\n     * When used with {@link OptionsBase.allowStaleOnFetchAbort}, aborted\n     * {@link LRUCache#fetch} calls will resolve immediately to their stale\n     * cached value or `undefined`, and will continue to process and eventually\n     * update the cache when they resolve, as long as the resulting value is\n     * not `undefined`, thus supporting a \"return stale on timeout while\n     * refreshing\" mechanism by passing `AbortSignal.timeout(n)` as the signal.\n     *\n     * For example:\n     *\n     * ```ts\n     * const c = new LRUCache({\n     *   ttl: 100,\n     *   ignoreFetchAbort: true,\n     *   allowStaleOnFetchAbort: true,\n     *   fetchMethod: async (key, oldValue, { signal }) => {\n     *     // note: do NOT pass the signal to fetch()!\n     *     // let's say this fetch can take a long time.\n     *     const res = await fetch(`https://slow-backend-server/${key}`)\n     *     return await res.json()\n     *   },\n     * })\n     *\n     * // this will return the stale value after 100ms, while still\n     * // updating in the background for next time.\n     * const val = await c.fetch('key', { signal: AbortSignal.timeout(100) })\n     * ```\n     *\n     * **Note**: regardless of this setting, an `abort` event _is still\n     * emitted on the `AbortSignal` object_, so may result in invalid results\n     * when passed to other underlying APIs that use AbortSignals.\n     *\n     * This may be overridden in the {@link OptionsBase.fetchMethod} or the\n     * call to {@link LRUCache#fetch}.\n     */\n    ignoreFetchAbort?: boolean\n  }\n\n  export interface OptionsMaxLimit<K, V, FC>\n    extends OptionsBase<K, V, FC> {\n    max: Count\n  }\n  export interface OptionsTTLLimit<K, V, FC>\n    extends OptionsBase<K, V, FC> {\n    ttl: Milliseconds\n    ttlAutopurge: boolean\n  }\n  export interface OptionsSizeLimit<K, V, FC>\n    extends OptionsBase<K, V, FC> {\n    maxSize: Size\n  }\n\n  /**\n   * The valid safe options for the {@link LRUCache} constructor\n   */\n  export type Options<K, V, FC> =\n    | OptionsMaxLimit<K, V, FC>\n    | OptionsSizeLimit<K, V, FC>\n    | OptionsTTLLimit<K, V, FC>\n\n  /**\n   * Entry objects used by {@link LRUCache#load} and {@link LRUCache#dump},\n   * and returned by {@link LRUCache#info}.\n   */\n  export interface Entry<V> {\n    value: V\n    ttl?: Milliseconds\n    size?: Size\n    start?: Milliseconds\n  }\n}\n\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nexport class LRUCache<K extends {}, V extends {}, FC = unknown>\n  implements Map<K, V>\n{\n  // options that cannot be changed without disaster\n  readonly #max: LRUCache.Count\n  readonly #maxSize: LRUCache.Size\n  readonly #dispose?: LRUCache.Disposer<K, V>\n  readonly #disposeAfter?: LRUCache.Disposer<K, V>\n  readonly #fetchMethod?: LRUCache.Fetcher<K, V, FC>\n  readonly #memoMethod?: LRUCache.Memoizer<K, V, FC>\n\n  /**\n   * {@link LRUCache.OptionsBase.ttl}\n   */\n  ttl: LRUCache.Milliseconds\n\n  /**\n   * {@link LRUCache.OptionsBase.ttlResolution}\n   */\n  ttlResolution: LRUCache.Milliseconds\n  /**\n   * {@link LRUCache.OptionsBase.ttlAutopurge}\n   */\n  ttlAutopurge: boolean\n  /**\n   * {@link LRUCache.OptionsBase.updateAgeOnGet}\n   */\n  updateAgeOnGet: boolean\n  /**\n   * {@link LRUCache.OptionsBase.updateAgeOnHas}\n   */\n  updateAgeOnHas: boolean\n  /**\n   * {@link LRUCache.OptionsBase.allowStale}\n   */\n  allowStale: boolean\n\n  /**\n   * {@link LRUCache.OptionsBase.noDisposeOnSet}\n   */\n  noDisposeOnSet: boolean\n  /**\n   * {@link LRUCache.OptionsBase.noUpdateTTL}\n   */\n  noUpdateTTL: boolean\n  /**\n   * {@link LRUCache.OptionsBase.maxEntrySize}\n   */\n  maxEntrySize: LRUCache.Size\n  /**\n   * {@link LRUCache.OptionsBase.sizeCalculation}\n   */\n  sizeCalculation?: LRUCache.SizeCalculator<K, V>\n  /**\n   * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n   */\n  noDeleteOnFetchRejection: boolean\n  /**\n   * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n   */\n  noDeleteOnStaleGet: boolean\n  /**\n   * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n   */\n  allowStaleOnFetchAbort: boolean\n  /**\n   * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n   */\n  allowStaleOnFetchRejection: boolean\n  /**\n   * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n   */\n  ignoreFetchAbort: boolean\n\n  // computed properties\n  #size: LRUCache.Count\n  #calculatedSize: LRUCache.Size\n  #keyMap: Map<K, Index>\n  #keyList: (K | undefined)[]\n  #valList: (V | BackgroundFetch<V> | undefined)[]\n  #next: NumberArray\n  #prev: NumberArray\n  #head: Index\n  #tail: Index\n  #free: StackLike\n  #disposed?: DisposeTask<K, V>[]\n  #sizes?: ZeroArray\n  #starts?: ZeroArray\n  #ttls?: ZeroArray\n\n  #hasDispose: boolean\n  #hasFetchMethod: boolean\n  #hasDisposeAfter: boolean\n\n  /**\n   * Do not call this method unless you need to inspect the\n   * inner workings of the cache.  If anything returned by this\n   * object is modified in any way, strange breakage may occur.\n   *\n   * These fields are private for a reason!\n   *\n   * @internal\n   */\n  static unsafeExposeInternals<\n    K extends {},\n    V extends {},\n    FC extends unknown = unknown\n  >(c: LRUCache<K, V, FC>) {\n    return {\n      // properties\n      starts: c.#starts,\n      ttls: c.#ttls,\n      sizes: c.#sizes,\n      keyMap: c.#keyMap as Map<K, number>,\n      keyList: c.#keyList,\n      valList: c.#valList,\n      next: c.#next,\n      prev: c.#prev,\n      get head() {\n        return c.#head\n      },\n      get tail() {\n        return c.#tail\n      },\n      free: c.#free,\n      // methods\n      isBackgroundFetch: (p: any) => c.#isBackgroundFetch(p),\n      backgroundFetch: (\n        k: K,\n        index: number | undefined,\n        options: LRUCache.FetchOptions<K, V, FC>,\n        context: any\n      ): BackgroundFetch<V> =>\n        c.#backgroundFetch(\n          k,\n          index as Index | undefined,\n          options,\n          context\n        ),\n      moveToTail: (index: number): void =>\n        c.#moveToTail(index as Index),\n      indexes: (options?: { allowStale: boolean }) =>\n        c.#indexes(options),\n      rindexes: (options?: { allowStale: boolean }) =>\n        c.#rindexes(options),\n      isStale: (index: number | undefined) =>\n        c.#isStale(index as Index),\n    }\n  }\n\n  // Protected read-only members\n\n  /**\n   * {@link LRUCache.OptionsBase.max} (read-only)\n   */\n  get max(): LRUCache.Count {\n    return this.#max\n  }\n  /**\n   * {@link LRUCache.OptionsBase.maxSize} (read-only)\n   */\n  get maxSize(): LRUCache.Count {\n    return this.#maxSize\n  }\n  /**\n   * The total computed size of items in the cache (read-only)\n   */\n  get calculatedSize(): LRUCache.Size {\n    return this.#calculatedSize\n  }\n  /**\n   * The number of items stored in the cache (read-only)\n   */\n  get size(): LRUCache.Count {\n    return this.#size\n  }\n  /**\n   * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n   */\n  get fetchMethod(): LRUCache.Fetcher<K, V, FC> | undefined {\n    return this.#fetchMethod\n  }\n  get memoMethod(): LRUCache.Memoizer<K, V, FC> | undefined {\n    return this.#memoMethod\n  }\n  /**\n   * {@link LRUCache.OptionsBase.dispose} (read-only)\n   */\n  get dispose() {\n    return this.#dispose\n  }\n  /**\n   * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n   */\n  get disposeAfter() {\n    return this.#disposeAfter\n  }\n\n  constructor(\n    options: LRUCache.Options<K, V, FC> | LRUCache<K, V, FC>\n  ) {\n    const {\n      max = 0,\n      ttl,\n      ttlResolution = 1,\n      ttlAutopurge,\n      updateAgeOnGet,\n      updateAgeOnHas,\n      allowStale,\n      dispose,\n      disposeAfter,\n      noDisposeOnSet,\n      noUpdateTTL,\n      maxSize = 0,\n      maxEntrySize = 0,\n      sizeCalculation,\n      fetchMethod,\n      memoMethod,\n      noDeleteOnFetchRejection,\n      noDeleteOnStaleGet,\n      allowStaleOnFetchRejection,\n      allowStaleOnFetchAbort,\n      ignoreFetchAbort,\n    } = options\n\n    if (max !== 0 && !isPosInt(max)) {\n      throw new TypeError('max option must be a nonnegative integer')\n    }\n\n    const UintArray = max ? getUintArray(max) : Array\n    if (!UintArray) {\n      throw new Error('invalid max value: ' + max)\n    }\n\n    this.#max = max\n    this.#maxSize = maxSize\n    this.maxEntrySize = maxEntrySize || this.#maxSize\n    this.sizeCalculation = sizeCalculation\n    if (this.sizeCalculation) {\n      if (!this.#maxSize && !this.maxEntrySize) {\n        throw new TypeError(\n          'cannot set sizeCalculation without setting maxSize or maxEntrySize'\n        )\n      }\n      if (typeof this.sizeCalculation !== 'function') {\n        throw new TypeError('sizeCalculation set to non-function')\n      }\n    }\n\n    if (\n      memoMethod !== undefined &&\n      typeof memoMethod !== 'function'\n    ) {\n      throw new TypeError('memoMethod must be a function if defined')\n    }\n    this.#memoMethod = memoMethod\n\n    if (\n      fetchMethod !== undefined &&\n      typeof fetchMethod !== 'function'\n    ) {\n      throw new TypeError(\n        'fetchMethod must be a function if specified'\n      )\n    }\n    this.#fetchMethod = fetchMethod\n    this.#hasFetchMethod = !!fetchMethod\n\n    this.#keyMap = new Map()\n    this.#keyList = new Array(max).fill(undefined)\n    this.#valList = new Array(max).fill(undefined)\n    this.#next = new UintArray(max)\n    this.#prev = new UintArray(max)\n    this.#head = 0 as Index\n    this.#tail = 0 as Index\n    this.#free = Stack.create(max)\n    this.#size = 0\n    this.#calculatedSize = 0\n\n    if (typeof dispose === 'function') {\n      this.#dispose = dispose\n    }\n    if (typeof disposeAfter === 'function') {\n      this.#disposeAfter = disposeAfter\n      this.#disposed = []\n    } else {\n      this.#disposeAfter = undefined\n      this.#disposed = undefined\n    }\n    this.#hasDispose = !!this.#dispose\n    this.#hasDisposeAfter = !!this.#disposeAfter\n\n    this.noDisposeOnSet = !!noDisposeOnSet\n    this.noUpdateTTL = !!noUpdateTTL\n    this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection\n    this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection\n    this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort\n    this.ignoreFetchAbort = !!ignoreFetchAbort\n\n    // NB: maxEntrySize is set to maxSize if it's set\n    if (this.maxEntrySize !== 0) {\n      if (this.#maxSize !== 0) {\n        if (!isPosInt(this.#maxSize)) {\n          throw new TypeError(\n            'maxSize must be a positive integer if specified'\n          )\n        }\n      }\n      if (!isPosInt(this.maxEntrySize)) {\n        throw new TypeError(\n          'maxEntrySize must be a positive integer if specified'\n        )\n      }\n      this.#initializeSizeTracking()\n    }\n\n    this.allowStale = !!allowStale\n    this.noDeleteOnStaleGet = !!noDeleteOnStaleGet\n    this.updateAgeOnGet = !!updateAgeOnGet\n    this.updateAgeOnHas = !!updateAgeOnHas\n    this.ttlResolution =\n      isPosInt(ttlResolution) || ttlResolution === 0\n        ? ttlResolution\n        : 1\n    this.ttlAutopurge = !!ttlAutopurge\n    this.ttl = ttl || 0\n    if (this.ttl) {\n      if (!isPosInt(this.ttl)) {\n        throw new TypeError(\n          'ttl must be a positive integer if specified'\n        )\n      }\n      this.#initializeTTLTracking()\n    }\n\n    // do not allow completely unbounded caches\n    if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n      throw new TypeError(\n        'At least one of max, maxSize, or ttl is required'\n      )\n    }\n    if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n      const code = 'LRU_CACHE_UNBOUNDED'\n      if (shouldWarn(code)) {\n        warned.add(code)\n        const msg =\n          'TTL caching without ttlAutopurge, max, or maxSize can ' +\n          'result in unbounded memory consumption.'\n        emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache)\n      }\n    }\n  }\n\n  /**\n   * Return the number of ms left in the item's TTL. If item is not in cache,\n   * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n   */\n  getRemainingTTL(key: K) {\n    return this.#keyMap.has(key) ? Infinity : 0\n  }\n\n  #initializeTTLTracking() {\n    const ttls = new ZeroArray(this.#max)\n    const starts = new ZeroArray(this.#max)\n    this.#ttls = ttls\n    this.#starts = starts\n\n    this.#setItemTTL = (index, ttl, start = perf.now()) => {\n      starts[index] = ttl !== 0 ? start : 0\n      ttls[index] = ttl\n      if (ttl !== 0 && this.ttlAutopurge) {\n        const t = setTimeout(() => {\n          if (this.#isStale(index)) {\n            this.#delete(this.#keyList[index] as K, 'expire')\n          }\n        }, ttl + 1)\n        // unref() not supported on all platforms\n        /* c8 ignore start */\n        if (t.unref) {\n          t.unref()\n        }\n        /* c8 ignore stop */\n      }\n    }\n\n    this.#updateItemAge = index => {\n      starts[index] = ttls[index] !== 0 ? perf.now() : 0\n    }\n\n    this.#statusTTL = (status, index) => {\n      if (ttls[index]) {\n        const ttl = ttls[index]\n        const start = starts[index]\n        /* c8 ignore next */\n        if (!ttl || !start) return\n        status.ttl = ttl\n        status.start = start\n        status.now = cachedNow || getNow()\n        const age = status.now - start\n        status.remainingTTL = ttl - age\n      }\n    }\n\n    // debounce calls to perf.now() to 1s so we're not hitting\n    // that costly call repeatedly.\n    let cachedNow = 0\n    const getNow = () => {\n      const n = perf.now()\n      if (this.ttlResolution > 0) {\n        cachedNow = n\n        const t = setTimeout(\n          () => (cachedNow = 0),\n          this.ttlResolution\n        )\n        // not available on all platforms\n        /* c8 ignore start */\n        if (t.unref) {\n          t.unref()\n        }\n        /* c8 ignore stop */\n      }\n      return n\n    }\n\n    this.getRemainingTTL = key => {\n      const index = this.#keyMap.get(key)\n      if (index === undefined) {\n        return 0\n      }\n      const ttl = ttls[index]\n      const start = starts[index]\n      if (!ttl || !start) {\n        return Infinity\n      }\n      const age = (cachedNow || getNow()) - start\n      return ttl - age\n    }\n\n    this.#isStale = index => {\n      const s = starts[index]\n      const t = ttls[index]\n      return !!t && !!s && (cachedNow || getNow()) - s > t\n    }\n  }\n\n  // conditionally set private methods related to TTL\n  #updateItemAge: (index: Index) => void = () => {}\n  #statusTTL: (status: LRUCache.Status<V>, index: Index) => void =\n    () => {}\n  #setItemTTL: (\n    index: Index,\n    ttl: LRUCache.Milliseconds,\n    start?: LRUCache.Milliseconds\n    // ignore because we never call this if we're not already in TTL mode\n    /* c8 ignore start */\n  ) => void = () => {}\n  /* c8 ignore stop */\n\n  #isStale: (index: Index) => boolean = () => false\n\n  #initializeSizeTracking() {\n    const sizes = new ZeroArray(this.#max)\n    this.#calculatedSize = 0\n    this.#sizes = sizes\n    this.#removeItemSize = index => {\n      this.#calculatedSize -= sizes[index] as number\n      sizes[index] = 0\n    }\n    this.#requireSize = (k, v, size, sizeCalculation) => {\n      // provisionally accept background fetches.\n      // actual value size will be checked when they return.\n      if (this.#isBackgroundFetch(v)) {\n        return 0\n      }\n      if (!isPosInt(size)) {\n        if (sizeCalculation) {\n          if (typeof sizeCalculation !== 'function') {\n            throw new TypeError('sizeCalculation must be a function')\n          }\n          size = sizeCalculation(v, k)\n          if (!isPosInt(size)) {\n            throw new TypeError(\n              'sizeCalculation return invalid (expect positive integer)'\n            )\n          }\n        } else {\n          throw new TypeError(\n            'invalid size value (must be positive integer). ' +\n              'When maxSize or maxEntrySize is used, sizeCalculation ' +\n              'or size must be set.'\n          )\n        }\n      }\n      return size\n    }\n    this.#addItemSize = (\n      index: Index,\n      size: LRUCache.Size,\n      status?: LRUCache.Status<V>\n    ) => {\n      sizes[index] = size\n      if (this.#maxSize) {\n        const maxSize = this.#maxSize - (sizes[index] as number)\n        while (this.#calculatedSize > maxSize) {\n          this.#evict(true)\n        }\n      }\n      this.#calculatedSize += sizes[index] as number\n      if (status) {\n        status.entrySize = size\n        status.totalCalculatedSize = this.#calculatedSize\n      }\n    }\n  }\n\n  #removeItemSize: (index: Index) => void = _i => {}\n  #addItemSize: (\n    index: Index,\n    size: LRUCache.Size,\n    status?: LRUCache.Status<V>\n  ) => void = (_i, _s, _st) => {}\n  #requireSize: (\n    k: K,\n    v: V | BackgroundFetch<V>,\n    size?: LRUCache.Size,\n    sizeCalculation?: LRUCache.SizeCalculator<K, V>\n  ) => LRUCache.Size = (\n    _k: K,\n    _v: V | BackgroundFetch<V>,\n    size?: LRUCache.Size,\n    sizeCalculation?: LRUCache.SizeCalculator<K, V>\n  ) => {\n    if (size || sizeCalculation) {\n      throw new TypeError(\n        'cannot set size without setting maxSize or maxEntrySize on cache'\n      )\n    }\n    return 0\n  };\n\n  *#indexes({ allowStale = this.allowStale } = {}) {\n    if (this.#size) {\n      for (let i = this.#tail; true; ) {\n        if (!this.#isValidIndex(i)) {\n          break\n        }\n        if (allowStale || !this.#isStale(i)) {\n          yield i\n        }\n        if (i === this.#head) {\n          break\n        } else {\n          i = this.#prev[i] as Index\n        }\n      }\n    }\n  }\n\n  *#rindexes({ allowStale = this.allowStale } = {}) {\n    if (this.#size) {\n      for (let i = this.#head; true; ) {\n        if (!this.#isValidIndex(i)) {\n          break\n        }\n        if (allowStale || !this.#isStale(i)) {\n          yield i\n        }\n        if (i === this.#tail) {\n          break\n        } else {\n          i = this.#next[i] as Index\n        }\n      }\n    }\n  }\n\n  #isValidIndex(index: Index) {\n    return (\n      index !== undefined &&\n      this.#keyMap.get(this.#keyList[index] as K) === index\n    )\n  }\n\n  /**\n   * Return a generator yielding `[key, value]` pairs,\n   * in order from most recently used to least recently used.\n   */\n  *entries() {\n    for (const i of this.#indexes()) {\n      if (\n        this.#valList[i] !== undefined &&\n        this.#keyList[i] !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield [this.#keyList[i], this.#valList[i]] as [K, V]\n      }\n    }\n  }\n\n  /**\n   * Inverse order version of {@link LRUCache.entries}\n   *\n   * Return a generator yielding `[key, value]` pairs,\n   * in order from least recently used to most recently used.\n   */\n  *rentries() {\n    for (const i of this.#rindexes()) {\n      if (\n        this.#valList[i] !== undefined &&\n        this.#keyList[i] !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield [this.#keyList[i], this.#valList[i]]\n      }\n    }\n  }\n\n  /**\n   * Return a generator yielding the keys in the cache,\n   * in order from most recently used to least recently used.\n   */\n  *keys() {\n    for (const i of this.#indexes()) {\n      const k = this.#keyList[i]\n      if (\n        k !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield k\n      }\n    }\n  }\n\n  /**\n   * Inverse order version of {@link LRUCache.keys}\n   *\n   * Return a generator yielding the keys in the cache,\n   * in order from least recently used to most recently used.\n   */\n  *rkeys() {\n    for (const i of this.#rindexes()) {\n      const k = this.#keyList[i]\n      if (\n        k !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield k\n      }\n    }\n  }\n\n  /**\n   * Return a generator yielding the values in the cache,\n   * in order from most recently used to least recently used.\n   */\n  *values() {\n    for (const i of this.#indexes()) {\n      const v = this.#valList[i]\n      if (\n        v !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield this.#valList[i] as V\n      }\n    }\n  }\n\n  /**\n   * Inverse order version of {@link LRUCache.values}\n   *\n   * Return a generator yielding the values in the cache,\n   * in order from least recently used to most recently used.\n   */\n  *rvalues() {\n    for (const i of this.#rindexes()) {\n      const v = this.#valList[i]\n      if (\n        v !== undefined &&\n        !this.#isBackgroundFetch(this.#valList[i])\n      ) {\n        yield this.#valList[i]\n      }\n    }\n  }\n\n  /**\n   * Iterating over the cache itself yields the same results as\n   * {@link LRUCache.entries}\n   */\n  [Symbol.iterator]() {\n    return this.entries()\n  }\n\n  /**\n   * A String value that is used in the creation of the default string\n   * description of an object. Called by the built-in method\n   * `Object.prototype.toString`.\n   */\n  [Symbol.toStringTag] = 'LRUCache'\n\n  /**\n   * Find a value for which the supplied fn method returns a truthy value,\n   * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n   */\n  find(\n    fn: (v: V, k: K, self: LRUCache<K, V, FC>) => boolean,\n    getOptions: LRUCache.GetOptions<K, V, FC> = {}\n  ) {\n    for (const i of this.#indexes()) {\n      const v = this.#valList[i]\n      const value = this.#isBackgroundFetch(v)\n        ? v.__staleWhileFetching\n        : v\n      if (value === undefined) continue\n      if (fn(value, this.#keyList[i] as K, this)) {\n        return this.get(this.#keyList[i] as K, getOptions)\n      }\n    }\n  }\n\n  /**\n   * Call the supplied function on each item in the cache, in order from most\n   * recently used to least recently used.\n   *\n   * `fn` is called as `fn(value, key, cache)`.\n   *\n   * If `thisp` is provided, function will be called in the `this`-context of\n   * the provided object, or the cache if no `thisp` object is provided.\n   *\n   * Does not update age or recenty of use, or iterate over stale values.\n   */\n  forEach(\n    fn: (v: V, k: K, self: LRUCache<K, V, FC>) => any,\n    thisp: any = this\n  ) {\n    for (const i of this.#indexes()) {\n      const v = this.#valList[i]\n      const value = this.#isBackgroundFetch(v)\n        ? v.__staleWhileFetching\n        : v\n      if (value === undefined) continue\n      fn.call(thisp, value, this.#keyList[i] as K, this)\n    }\n  }\n\n  /**\n   * The same as {@link LRUCache.forEach} but items are iterated over in\n   * reverse order.  (ie, less recently used items are iterated over first.)\n   */\n  rforEach(\n    fn: (v: V, k: K, self: LRUCache<K, V, FC>) => any,\n    thisp: any = this\n  ) {\n    for (const i of this.#rindexes()) {\n      const v = this.#valList[i]\n      const value = this.#isBackgroundFetch(v)\n        ? v.__staleWhileFetching\n        : v\n      if (value === undefined) continue\n      fn.call(thisp, value, this.#keyList[i] as K, this)\n    }\n  }\n\n  /**\n   * Delete any stale entries. Returns true if anything was removed,\n   * false otherwise.\n   */\n  purgeStale() {\n    let deleted = false\n    for (const i of this.#rindexes({ allowStale: true })) {\n      if (this.#isStale(i)) {\n        this.#delete(this.#keyList[i] as K, 'expire')\n        deleted = true\n      }\n    }\n    return deleted\n  }\n\n  /**\n   * Get the extended info about a given entry, to get its value, size, and\n   * TTL info simultaneously. Returns `undefined` if the key is not present.\n   *\n   * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n   * serialization, the `start` value is always the current timestamp, and the\n   * `ttl` is a calculated remaining time to live (negative if expired).\n   *\n   * Always returns stale values, if their info is found in the cache, so be\n   * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n   * if relevant.\n   */\n  info(key: K): LRUCache.Entry<V> | undefined {\n    const i = this.#keyMap.get(key)\n    if (i === undefined) return undefined\n    const v = this.#valList[i]\n    const value: V | undefined = this.#isBackgroundFetch(v)\n      ? v.__staleWhileFetching\n      : v\n    if (value === undefined) return undefined\n    const entry: LRUCache.Entry<V> = { value }\n    if (this.#ttls && this.#starts) {\n      const ttl = this.#ttls[i]\n      const start = this.#starts[i]\n      if (ttl && start) {\n        const remain = ttl - (perf.now() - start)\n        entry.ttl = remain\n        entry.start = Date.now()\n      }\n    }\n    if (this.#sizes) {\n      entry.size = this.#sizes[i]\n    }\n    return entry\n  }\n\n  /**\n   * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n   * passed to {@link LRLUCache#load}.\n   *\n   * The `start` fields are calculated relative to a portable `Date.now()`\n   * timestamp, even if `performance.now()` is available.\n   *\n   * Stale entries are always included in the `dump`, even if\n   * {@link LRUCache.OptionsBase.allowStale} is false.\n   *\n   * Note: this returns an actual array, not a generator, so it can be more\n   * easily passed around.\n   */\n  dump() {\n    const arr: [K, LRUCache.Entry<V>][] = []\n    for (const i of this.#indexes({ allowStale: true })) {\n      const key = this.#keyList[i]\n      const v = this.#valList[i]\n      const value: V | undefined = this.#isBackgroundFetch(v)\n        ? v.__staleWhileFetching\n        : v\n      if (value === undefined || key === undefined) continue\n      const entry: LRUCache.Entry<V> = { value }\n      if (this.#ttls && this.#starts) {\n        entry.ttl = this.#ttls[i]\n        // always dump the start relative to a portable timestamp\n        // it's ok for this to be a bit slow, it's a rare operation.\n        const age = perf.now() - (this.#starts[i] as number)\n        entry.start = Math.floor(Date.now() - age)\n      }\n      if (this.#sizes) {\n        entry.size = this.#sizes[i]\n      }\n      arr.unshift([key, entry])\n    }\n    return arr\n  }\n\n  /**\n   * Reset the cache and load in the items in entries in the order listed.\n   *\n   * The shape of the resulting cache may be different if the same options are\n   * not used in both caches.\n   *\n   * The `start` fields are assumed to be calculated relative to a portable\n   * `Date.now()` timestamp, even if `performance.now()` is available.\n   */\n  load(arr: [K, LRUCache.Entry<V>][]) {\n    this.clear()\n    for (const [key, entry] of arr) {\n      if (entry.start) {\n        // entry.start is a portable timestamp, but we may be using\n        // node's performance.now(), so calculate the offset, so that\n        // we get the intended remaining TTL, no matter how long it's\n        // been on ice.\n        //\n        // it's ok for this to be a bit slow, it's a rare operation.\n        const age = Date.now() - entry.start\n        entry.start = perf.now() - age\n      }\n      this.set(key, entry.value, entry)\n    }\n  }\n\n  /**\n   * Add a value to the cache.\n   *\n   * Note: if `undefined` is specified as a value, this is an alias for\n   * {@link LRUCache#delete}\n   *\n   * Fields on the {@link LRUCache.SetOptions} options param will override\n   * their corresponding values in the constructor options for the scope\n   * of this single `set()` operation.\n   *\n   * If `start` is provided, then that will set the effective start\n   * time for the TTL calculation. Note that this must be a previous\n   * value of `performance.now()` if supported, or a previous value of\n   * `Date.now()` if not.\n   *\n   * Options object may also include `size`, which will prevent\n   * calling the `sizeCalculation` function and just use the specified\n   * number if it is a positive integer, and `noDisposeOnSet` which\n   * will prevent calling a `dispose` function in the case of\n   * overwrites.\n   *\n   * If the `size` (or return value of `sizeCalculation`) for a given\n   * entry is greater than `maxEntrySize`, then the item will not be\n   * added to the cache.\n   *\n   * Will update the recency of the entry.\n   *\n   * If the value is `undefined`, then this is an alias for\n   * `cache.delete(key)`. `undefined` is never stored in the cache.\n   */\n  set(\n    k: K,\n    v: V | BackgroundFetch<V> | undefined,\n    setOptions: LRUCache.SetOptions<K, V, FC> = {}\n  ) {\n    if (v === undefined) {\n      this.delete(k)\n      return this\n    }\n    const {\n      ttl = this.ttl,\n      start,\n      noDisposeOnSet = this.noDisposeOnSet,\n      sizeCalculation = this.sizeCalculation,\n      status,\n    } = setOptions\n    let { noUpdateTTL = this.noUpdateTTL } = setOptions\n\n    const size = this.#requireSize(\n      k,\n      v,\n      setOptions.size || 0,\n      sizeCalculation\n    )\n    // if the item doesn't fit, don't do anything\n    // NB: maxEntrySize set to maxSize by default\n    if (this.maxEntrySize && size > this.maxEntrySize) {\n      if (status) {\n        status.set = 'miss'\n        status.maxEntrySizeExceeded = true\n      }\n      // have to delete, in case something is there already.\n      this.#delete(k, 'set')\n      return this\n    }\n    let index = this.#size === 0 ? undefined : this.#keyMap.get(k)\n    if (index === undefined) {\n      // addition\n      index = (\n        this.#size === 0\n          ? this.#tail\n          : this.#free.length !== 0\n          ? this.#free.pop()\n          : this.#size === this.#max\n          ? this.#evict(false)\n          : this.#size\n      ) as Index\n      this.#keyList[index] = k\n      this.#valList[index] = v\n      this.#keyMap.set(k, index)\n      this.#next[this.#tail] = index\n      this.#prev[index] = this.#tail\n      this.#tail = index\n      this.#size++\n      this.#addItemSize(index, size, status)\n      if (status) status.set = 'add'\n      noUpdateTTL = false\n    } else {\n      // update\n      this.#moveToTail(index)\n      const oldVal = this.#valList[index] as V | BackgroundFetch<V>\n      if (v !== oldVal) {\n        if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n          oldVal.__abortController.abort(new Error('replaced'))\n          const { __staleWhileFetching: s } = oldVal\n          if (s !== undefined && !noDisposeOnSet) {\n            if (this.#hasDispose) {\n              this.#dispose?.(s as V, k, 'set')\n            }\n            if (this.#hasDisposeAfter) {\n              this.#disposed?.push([s as V, k, 'set'])\n            }\n          }\n        } else if (!noDisposeOnSet) {\n          if (this.#hasDispose) {\n            this.#dispose?.(oldVal as V, k, 'set')\n          }\n          if (this.#hasDisposeAfter) {\n            this.#disposed?.push([oldVal as V, k, 'set'])\n          }\n        }\n        this.#removeItemSize(index)\n        this.#addItemSize(index, size, status)\n        this.#valList[index] = v\n        if (status) {\n          status.set = 'replace'\n          const oldValue =\n            oldVal && this.#isBackgroundFetch(oldVal)\n              ? oldVal.__staleWhileFetching\n              : oldVal\n          if (oldValue !== undefined) status.oldValue = oldValue\n        }\n      } else if (status) {\n        status.set = 'update'\n      }\n    }\n    if (ttl !== 0 && !this.#ttls) {\n      this.#initializeTTLTracking()\n    }\n    if (this.#ttls) {\n      if (!noUpdateTTL) {\n        this.#setItemTTL(index, ttl, start)\n      }\n      if (status) this.#statusTTL(status, index)\n    }\n    if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n      const dt = this.#disposed\n      let task: DisposeTask<K, V> | undefined\n      while ((task = dt?.shift())) {\n        this.#disposeAfter?.(...task)\n      }\n    }\n    return this\n  }\n\n  /**\n   * Evict the least recently used item, returning its value or\n   * `undefined` if cache is empty.\n   */\n  pop(): V | undefined {\n    try {\n      while (this.#size) {\n        const val = this.#valList[this.#head]\n        this.#evict(true)\n        if (this.#isBackgroundFetch(val)) {\n          if (val.__staleWhileFetching) {\n            return val.__staleWhileFetching\n          }\n        } else if (val !== undefined) {\n          return val\n        }\n      }\n    } finally {\n      if (this.#hasDisposeAfter && this.#disposed) {\n        const dt = this.#disposed\n        let task: DisposeTask<K, V> | undefined\n        while ((task = dt?.shift())) {\n          this.#disposeAfter?.(...task)\n        }\n      }\n    }\n  }\n\n  #evict(free: boolean) {\n    const head = this.#head\n    const k = this.#keyList[head] as K\n    const v = this.#valList[head] as V\n    if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n      v.__abortController.abort(new Error('evicted'))\n    } else if (this.#hasDispose || this.#hasDisposeAfter) {\n      if (this.#hasDispose) {\n        this.#dispose?.(v, k, 'evict')\n      }\n      if (this.#hasDisposeAfter) {\n        this.#disposed?.push([v, k, 'evict'])\n      }\n    }\n    this.#removeItemSize(head)\n    // if we aren't about to use the index, then null these out\n    if (free) {\n      this.#keyList[head] = undefined\n      this.#valList[head] = undefined\n      this.#free.push(head)\n    }\n    if (this.#size === 1) {\n      this.#head = this.#tail = 0 as Index\n      this.#free.length = 0\n    } else {\n      this.#head = this.#next[head] as Index\n    }\n    this.#keyMap.delete(k)\n    this.#size--\n    return head\n  }\n\n  /**\n   * Check if a key is in the cache, without updating the recency of use.\n   * Will return false if the item is stale, even though it is technically\n   * in the cache.\n   *\n   * Check if a key is in the cache, without updating the recency of\n   * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n   * to `true` in either the options or the constructor.\n   *\n   * Will return `false` if the item is stale, even though it is technically in\n   * the cache. The difference can be determined (if it matters) by using a\n   * `status` argument, and inspecting the `has` field.\n   *\n   * Will not update item age unless\n   * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n   */\n  has(k: K, hasOptions: LRUCache.HasOptions<K, V, FC> = {}) {\n    const { updateAgeOnHas = this.updateAgeOnHas, status } =\n      hasOptions\n    const index = this.#keyMap.get(k)\n    if (index !== undefined) {\n      const v = this.#valList[index]\n      if (\n        this.#isBackgroundFetch(v) &&\n        v.__staleWhileFetching === undefined\n      ) {\n        return false\n      }\n      if (!this.#isStale(index)) {\n        if (updateAgeOnHas) {\n          this.#updateItemAge(index)\n        }\n        if (status) {\n          status.has = 'hit'\n          this.#statusTTL(status, index)\n        }\n        return true\n      } else if (status) {\n        status.has = 'stale'\n        this.#statusTTL(status, index)\n      }\n    } else if (status) {\n      status.has = 'miss'\n    }\n    return false\n  }\n\n  /**\n   * Like {@link LRUCache#get} but doesn't update recency or delete stale\n   * items.\n   *\n   * Returns `undefined` if the item is stale, unless\n   * {@link LRUCache.OptionsBase.allowStale} is set.\n   */\n  peek(k: K, peekOptions: LRUCache.PeekOptions<K, V, FC> = {}) {\n    const { allowStale = this.allowStale } = peekOptions\n    const index = this.#keyMap.get(k)\n    if (\n      index === undefined ||\n      (!allowStale && this.#isStale(index))\n    ) {\n      return\n    }\n    const v = this.#valList[index]\n    // either stale and allowed, or forcing a refresh of non-stale value\n    return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n  }\n\n  #backgroundFetch(\n    k: K,\n    index: Index | undefined,\n    options: LRUCache.FetchOptions<K, V, FC>,\n    context: any\n  ): BackgroundFetch<V> {\n    const v = index === undefined ? undefined : this.#valList[index]\n    if (this.#isBackgroundFetch(v)) {\n      return v\n    }\n\n    const ac = new AC()\n    const { signal } = options\n    // when/if our AC signals, then stop listening to theirs.\n    signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n      signal: ac.signal,\n    })\n\n    const fetchOpts = {\n      signal: ac.signal,\n      options,\n      context,\n    }\n\n    const cb = (\n      v: V | undefined,\n      updateCache = false\n    ): V | undefined => {\n      const { aborted } = ac.signal\n      const ignoreAbort = options.ignoreFetchAbort && v !== undefined\n      if (options.status) {\n        if (aborted && !updateCache) {\n          options.status.fetchAborted = true\n          options.status.fetchError = ac.signal.reason\n          if (ignoreAbort) options.status.fetchAbortIgnored = true\n        } else {\n          options.status.fetchResolved = true\n        }\n      }\n      if (aborted && !ignoreAbort && !updateCache) {\n        return fetchFail(ac.signal.reason)\n      }\n      // either we didn't abort, and are still here, or we did, and ignored\n      const bf = p as BackgroundFetch<V>\n      if (this.#valList[index as Index] === p) {\n        if (v === undefined) {\n          if (bf.__staleWhileFetching) {\n            this.#valList[index as Index] = bf.__staleWhileFetching\n          } else {\n            this.#delete(k, 'fetch')\n          }\n        } else {\n          if (options.status) options.status.fetchUpdated = true\n          this.set(k, v, fetchOpts.options)\n        }\n      }\n      return v\n    }\n\n    const eb = (er: any) => {\n      if (options.status) {\n        options.status.fetchRejected = true\n        options.status.fetchError = er\n      }\n      return fetchFail(er)\n    }\n\n    const fetchFail = (er: any): V | undefined => {\n      const { aborted } = ac.signal\n      const allowStaleAborted =\n        aborted && options.allowStaleOnFetchAbort\n      const allowStale =\n        allowStaleAborted || options.allowStaleOnFetchRejection\n      const noDelete = allowStale || options.noDeleteOnFetchRejection\n      const bf = p as BackgroundFetch<V>\n      if (this.#valList[index as Index] === p) {\n        // if we allow stale on fetch rejections, then we need to ensure that\n        // the stale value is not removed from the cache when the fetch fails.\n        const del = !noDelete || bf.__staleWhileFetching === undefined\n        if (del) {\n          this.#delete(k, 'fetch')\n        } else if (!allowStaleAborted) {\n          // still replace the *promise* with the stale value,\n          // since we are done with the promise at this point.\n          // leave it untouched if we're still waiting for an\n          // aborted background fetch that hasn't yet returned.\n          this.#valList[index as Index] = bf.__staleWhileFetching\n        }\n      }\n      if (allowStale) {\n        if (options.status && bf.__staleWhileFetching !== undefined) {\n          options.status.returnedStale = true\n        }\n        return bf.__staleWhileFetching\n      } else if (bf.__returned === bf) {\n        throw er\n      }\n    }\n\n    const pcall = (\n      res: (v: V | undefined) => void,\n      rej: (e: any) => void\n    ) => {\n      const fmp = this.#fetchMethod?.(k, v, fetchOpts)\n      if (fmp && fmp instanceof Promise) {\n        fmp.then(v => res(v === undefined ? undefined : v), rej)\n      }\n      // ignored, we go until we finish, regardless.\n      // defer check until we are actually aborting,\n      // so fetchMethod can override.\n      ac.signal.addEventListener('abort', () => {\n        if (\n          !options.ignoreFetchAbort ||\n          options.allowStaleOnFetchAbort\n        ) {\n          res(undefined)\n          // when it eventually resolves, update the cache.\n          if (options.allowStaleOnFetchAbort) {\n            res = v => cb(v, true)\n          }\n        }\n      })\n    }\n\n    if (options.status) options.status.fetchDispatched = true\n    const p = new Promise(pcall).then(cb, eb)\n    const bf: BackgroundFetch<V> = Object.assign(p, {\n      __abortController: ac,\n      __staleWhileFetching: v,\n      __returned: undefined,\n    })\n\n    if (index === undefined) {\n      // internal, don't expose status.\n      this.set(k, bf, { ...fetchOpts.options, status: undefined })\n      index = this.#keyMap.get(k)\n    } else {\n      this.#valList[index] = bf\n    }\n    return bf\n  }\n\n  #isBackgroundFetch(p: any): p is BackgroundFetch<V> {\n    if (!this.#hasFetchMethod) return false\n    const b = p as BackgroundFetch<V>\n    return (\n      !!b &&\n      b instanceof Promise &&\n      b.hasOwnProperty('__staleWhileFetching') &&\n      b.__abortController instanceof AC\n    )\n  }\n\n  /**\n   * Make an asynchronous cached fetch using the\n   * {@link LRUCache.OptionsBase.fetchMethod} function.\n   *\n   * If the value is in the cache and not stale, then the returned\n   * Promise resolves to the value.\n   *\n   * If not in the cache, or beyond its TTL staleness, then\n   * `fetchMethod(key, staleValue, { options, signal, context })` is\n   * called, and the value returned will be added to the cache once\n   * resolved.\n   *\n   * If called with `allowStale`, and an asynchronous fetch is\n   * currently in progress to reload a stale value, then the former\n   * stale value will be returned.\n   *\n   * If called with `forceRefresh`, then the cached item will be\n   * re-fetched, even if it is not stale. However, if `allowStale` is also\n   * set, then the old value will still be returned. This is useful\n   * in cases where you want to force a reload of a cached value. If\n   * a background fetch is already in progress, then `forceRefresh`\n   * has no effect.\n   *\n   * If multiple fetches for the same key are issued, then they will all be\n   * coalesced into a single call to fetchMethod.\n   *\n   * Note that this means that handling options such as\n   * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort},\n   * {@link LRUCache.FetchOptions.signal},\n   * and {@link LRUCache.OptionsBase.allowStaleOnFetchRejection} will be\n   * determined by the FIRST fetch() call for a given key.\n   *\n   * This is a known (fixable) shortcoming which will be addresed on when\n   * someone complains about it, as the fix would involve added complexity and\n   * may not be worth the costs for this edge case.\n   *\n   * If {@link LRUCache.OptionsBase.fetchMethod} is not specified, then this is\n   * effectively an alias for `Promise.resolve(cache.get(key))`.\n   *\n   * When the fetch method resolves to a value, if the fetch has not\n   * been aborted due to deletion, eviction, or being overwritten,\n   * then it is added to the cache using the options provided.\n   *\n   * If the key is evicted or deleted before the `fetchMethod`\n   * resolves, then the AbortSignal passed to the `fetchMethod` will\n   * receive an `abort` event, and the promise returned by `fetch()`\n   * will reject with the reason for the abort.\n   *\n   * If a `signal` is passed to the `fetch()` call, then aborting the\n   * signal will abort the fetch and cause the `fetch()` promise to\n   * reject with the reason provided.\n   *\n   * **Setting `context`**\n   *\n   * If an `FC` type is set to a type other than `unknown`, `void`, or\n   * `undefined` in the {@link LRUCache} constructor, then all\n   * calls to `cache.fetch()` _must_ provide a `context` option. If\n   * set to `undefined` or `void`, then calls to fetch _must not_\n   * provide a `context` option.\n   *\n   * The `context` param allows you to provide arbitrary data that\n   * might be relevant in the course of fetching the data. It is only\n   * relevant for the course of a single `fetch()` operation, and\n   * discarded afterwards.\n   *\n   * **Note: `fetch()` calls are inflight-unique**\n   *\n   * If you call `fetch()` multiple times with the same key value,\n   * then every call after the first will resolve on the same\n   * promise<sup>1</sup>,\n   * _even if they have different settings that would otherwise change\n   * the behavior of the fetch_, such as `noDeleteOnFetchRejection`\n   * or `ignoreFetchAbort`.\n   *\n   * In most cases, this is not a problem (in fact, only fetching\n   * something once is what you probably want, if you're caching in\n   * the first place). If you are changing the fetch() options\n   * dramatically between runs, there's a good chance that you might\n   * be trying to fit divergent semantics into a single object, and\n   * would be better off with multiple cache instances.\n   *\n   * **1**: Ie, they're not the \"same Promise\", but they resolve at\n   * the same time, because they're both waiting on the same\n   * underlying fetchMethod response.\n   */\n\n  fetch(\n    k: K,\n    fetchOptions: unknown extends FC\n      ? LRUCache.FetchOptions<K, V, FC>\n      : FC extends undefined | void\n      ? LRUCache.FetchOptionsNoContext<K, V>\n      : LRUCache.FetchOptionsWithContext<K, V, FC>\n  ): Promise<undefined | V>\n\n  // this overload not allowed if context is required\n  fetch(\n    k: unknown extends FC\n      ? K\n      : FC extends undefined | void\n      ? K\n      : never,\n    fetchOptions?: unknown extends FC\n      ? LRUCache.FetchOptions<K, V, FC>\n      : FC extends undefined | void\n      ? LRUCache.FetchOptionsNoContext<K, V>\n      : never\n  ): Promise<undefined | V>\n\n  async fetch(\n    k: K,\n    fetchOptions: LRUCache.FetchOptions<K, V, FC> = {}\n  ): Promise<undefined | V> {\n    const {\n      // get options\n      allowStale = this.allowStale,\n      updateAgeOnGet = this.updateAgeOnGet,\n      noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n      // set options\n      ttl = this.ttl,\n      noDisposeOnSet = this.noDisposeOnSet,\n      size = 0,\n      sizeCalculation = this.sizeCalculation,\n      noUpdateTTL = this.noUpdateTTL,\n      // fetch exclusive options\n      noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,\n      allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,\n      ignoreFetchAbort = this.ignoreFetchAbort,\n      allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,\n      context,\n      forceRefresh = false,\n      status,\n      signal,\n    } = fetchOptions\n\n    if (!this.#hasFetchMethod) {\n      if (status) status.fetch = 'get'\n      return this.get(k, {\n        allowStale,\n        updateAgeOnGet,\n        noDeleteOnStaleGet,\n        status,\n      })\n    }\n\n    const options = {\n      allowStale,\n      updateAgeOnGet,\n      noDeleteOnStaleGet,\n      ttl,\n      noDisposeOnSet,\n      size,\n      sizeCalculation,\n      noUpdateTTL,\n      noDeleteOnFetchRejection,\n      allowStaleOnFetchRejection,\n      allowStaleOnFetchAbort,\n      ignoreFetchAbort,\n      status,\n      signal,\n    }\n\n    let index = this.#keyMap.get(k)\n    if (index === undefined) {\n      if (status) status.fetch = 'miss'\n      const p = this.#backgroundFetch(k, index, options, context)\n      return (p.__returned = p)\n    } else {\n      // in cache, maybe already fetching\n      const v = this.#valList[index]\n      if (this.#isBackgroundFetch(v)) {\n        const stale =\n          allowStale && v.__staleWhileFetching !== undefined\n        if (status) {\n          status.fetch = 'inflight'\n          if (stale) status.returnedStale = true\n        }\n        return stale ? v.__staleWhileFetching : (v.__returned = v)\n      }\n\n      // if we force a refresh, that means do NOT serve the cached value,\n      // unless we are already in the process of refreshing the cache.\n      const isStale = this.#isStale(index)\n      if (!forceRefresh && !isStale) {\n        if (status) status.fetch = 'hit'\n        this.#moveToTail(index)\n        if (updateAgeOnGet) {\n          this.#updateItemAge(index)\n        }\n        if (status) this.#statusTTL(status, index)\n        return v\n      }\n\n      // ok, it is stale or a forced refresh, and not already fetching.\n      // refresh the cache.\n      const p = this.#backgroundFetch(k, index, options, context)\n      const hasStale = p.__staleWhileFetching !== undefined\n      const staleVal = hasStale && allowStale\n      if (status) {\n        status.fetch = isStale ? 'stale' : 'refresh'\n        if (staleVal && isStale) status.returnedStale = true\n      }\n      return staleVal ? p.__staleWhileFetching : (p.__returned = p)\n    }\n  }\n\n  /**\n   * In some cases, `cache.fetch()` may resolve to `undefined`, either because\n   * a {@link LRUCache.OptionsBase#fetchMethod} was not provided (turning\n   * `cache.fetch(k)` into just an async wrapper around `cache.get(k)`) or\n   * because `ignoreFetchAbort` was specified (either to the constructor or\n   * in the {@link LRUCache.FetchOptions}). Also, the\n   * {@link OptionsBase.fetchMethod} may return `undefined` or `void`, making\n   * the test even more complicated.\n   *\n   * Because inferring the cases where `undefined` might be returned are so\n   * cumbersome, but testing for `undefined` can also be annoying, this method\n   * can be used, which will reject if `this.fetch()` resolves to undefined.\n   */\n  forceFetch(\n    k: K,\n    fetchOptions: unknown extends FC\n      ? LRUCache.FetchOptions<K, V, FC>\n      : FC extends undefined | void\n      ? LRUCache.FetchOptionsNoContext<K, V>\n      : LRUCache.FetchOptionsWithContext<K, V, FC>\n  ): Promise<V>\n  // this overload not allowed if context is required\n  forceFetch(\n    k: unknown extends FC\n      ? K\n      : FC extends undefined | void\n      ? K\n      : never,\n    fetchOptions?: unknown extends FC\n      ? LRUCache.FetchOptions<K, V, FC>\n      : FC extends undefined | void\n      ? LRUCache.FetchOptionsNoContext<K, V>\n      : never\n  ): Promise<V>\n  async forceFetch(\n    k: K,\n    fetchOptions: LRUCache.FetchOptions<K, V, FC> = {}\n  ): Promise<V> {\n    const v = await this.fetch(\n      k,\n      fetchOptions as unknown extends FC\n        ? LRUCache.FetchOptions<K, V, FC>\n        : FC extends undefined | void\n        ? LRUCache.FetchOptionsNoContext<K, V>\n        : LRUCache.FetchOptionsWithContext<K, V, FC>\n    )\n    if (v === undefined) throw new Error('fetch() returned undefined')\n    return v\n  }\n\n  /**\n   * If the key is found in the cache, then this is equivalent to\n   * {@link LRUCache#get}. If not, in the cache, then calculate the value using\n   * the {@link LRUCache.OptionsBase.memoMethod}, and add it to the cache.\n   *\n   * If an `FC` type is set to a type other than `unknown`, `void`, or\n   * `undefined` in the LRUCache constructor, then all calls to `cache.memo()`\n   * _must_ provide a `context` option. If set to `undefined` or `void`, then\n   * calls to memo _must not_ provide a `context` option.\n   *\n   * The `context` param allows you to provide arbitrary data that might be\n   * relevant in the course of fetching the data. It is only relevant for the\n   * course of a single `memo()` operation, and discarded afterwards.\n   */\n  memo(\n    k: K,\n    memoOptions: unknown extends FC\n      ? LRUCache.MemoOptions<K, V, FC>\n      : FC extends undefined | void\n      ? LRUCache.MemoOptionsNoContext<K, V>\n      : LRUCache.MemoOptionsWithContext<K, V, FC>\n  ): V\n  // this overload not allowed if context is required\n  memo(\n    k: unknown extends FC\n      ? K\n      : FC extends undefined | void\n      ? K\n      : never,\n    memoOptions?: unknown extends FC\n      ? LRUCache.MemoOptions<K, V, FC>\n      : FC extends undefined | void\n      ? LRUCache.MemoOptionsNoContext<K, V>\n      : never\n  ): V\n  memo(k: K, memoOptions: LRUCache.MemoOptions<K, V, FC> = {}) {\n    const memoMethod = this.#memoMethod\n    if (!memoMethod) {\n      throw new Error('no memoMethod provided to constructor')\n    }\n    const { context, forceRefresh, ...options } = memoOptions\n    const v = this.get(k, options)\n    if (!forceRefresh && v !== undefined) return v\n    const vv = memoMethod(k, v, {\n      options,\n      context,\n    } as LRUCache.MemoizerOptions<K, V, FC>)\n    this.set(k, vv, options)\n    return vv\n  }\n\n  /**\n   * Return a value from the cache. Will update the recency of the cache\n   * entry found.\n   *\n   * If the key is not found, get() will return `undefined`.\n   */\n  get(k: K, getOptions: LRUCache.GetOptions<K, V, FC> = {}) {\n    const {\n      allowStale = this.allowStale,\n      updateAgeOnGet = this.updateAgeOnGet,\n      noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n      status,\n    } = getOptions\n    const index = this.#keyMap.get(k)\n    if (index !== undefined) {\n      const value = this.#valList[index]\n      const fetching = this.#isBackgroundFetch(value)\n      if (status) this.#statusTTL(status, index)\n      if (this.#isStale(index)) {\n        if (status) status.get = 'stale'\n        // delete only if not an in-flight background fetch\n        if (!fetching) {\n          if (!noDeleteOnStaleGet) {\n            this.#delete(k, 'expire')\n          }\n          if (status && allowStale) status.returnedStale = true\n          return allowStale ? value : undefined\n        } else {\n          if (\n            status &&\n            allowStale &&\n            value.__staleWhileFetching !== undefined\n          ) {\n            status.returnedStale = true\n          }\n          return allowStale ? value.__staleWhileFetching : undefined\n        }\n      } else {\n        if (status) status.get = 'hit'\n        // if we're currently fetching it, we don't actually have it yet\n        // it's not stale, which means this isn't a staleWhileRefetching.\n        // If it's not stale, and fetching, AND has a __staleWhileFetching\n        // value, then that means the user fetched with {forceRefresh:true},\n        // so it's safe to return that value.\n        if (fetching) {\n          return value.__staleWhileFetching\n        }\n        this.#moveToTail(index)\n        if (updateAgeOnGet) {\n          this.#updateItemAge(index)\n        }\n        return value\n      }\n    } else if (status) {\n      status.get = 'miss'\n    }\n  }\n\n  #connect(p: Index, n: Index) {\n    this.#prev[n] = p\n    this.#next[p] = n\n  }\n\n  #moveToTail(index: Index): void {\n    // if tail already, nothing to do\n    // if head, move head to next[index]\n    // else\n    //   move next[prev[index]] to next[index] (head has no prev)\n    //   move prev[next[index]] to prev[index]\n    // prev[index] = tail\n    // next[tail] = index\n    // tail = index\n    if (index !== this.#tail) {\n      if (index === this.#head) {\n        this.#head = this.#next[index] as Index\n      } else {\n        this.#connect(\n          this.#prev[index] as Index,\n          this.#next[index] as Index\n        )\n      }\n      this.#connect(this.#tail, index)\n      this.#tail = index\n    }\n  }\n\n  /**\n   * Deletes a key out of the cache.\n   *\n   * Returns true if the key was deleted, false otherwise.\n   */\n  delete(k: K) {\n    return this.#delete(k, 'delete')\n  }\n\n  #delete(k: K, reason: LRUCache.DisposeReason) {\n    let deleted = false\n    if (this.#size !== 0) {\n      const index = this.#keyMap.get(k)\n      if (index !== undefined) {\n        deleted = true\n        if (this.#size === 1) {\n          this.#clear(reason)\n        } else {\n          this.#removeItemSize(index)\n          const v = this.#valList[index]\n          if (this.#isBackgroundFetch(v)) {\n            v.__abortController.abort(new Error('deleted'))\n          } else if (this.#hasDispose || this.#hasDisposeAfter) {\n            if (this.#hasDispose) {\n              this.#dispose?.(v as V, k, reason)\n            }\n            if (this.#hasDisposeAfter) {\n              this.#disposed?.push([v as V, k, reason])\n            }\n          }\n          this.#keyMap.delete(k)\n          this.#keyList[index] = undefined\n          this.#valList[index] = undefined\n          if (index === this.#tail) {\n            this.#tail = this.#prev[index] as Index\n          } else if (index === this.#head) {\n            this.#head = this.#next[index] as Index\n          } else {\n            const pi = this.#prev[index] as number\n            this.#next[pi] = this.#next[index] as number\n            const ni = this.#next[index] as number\n            this.#prev[ni] = this.#prev[index] as number\n          }\n          this.#size--\n          this.#free.push(index)\n        }\n      }\n    }\n    if (this.#hasDisposeAfter && this.#disposed?.length) {\n      const dt = this.#disposed\n      let task: DisposeTask<K, V> | undefined\n      while ((task = dt?.shift())) {\n        this.#disposeAfter?.(...task)\n      }\n    }\n    return deleted\n  }\n\n  /**\n   * Clear the cache entirely, throwing away all values.\n   */\n  clear() {\n    return this.#clear('delete')\n  }\n  #clear(reason: LRUCache.DisposeReason) {\n    for (const index of this.#rindexes({ allowStale: true })) {\n      const v = this.#valList[index]\n      if (this.#isBackgroundFetch(v)) {\n        v.__abortController.abort(new Error('deleted'))\n      } else {\n        const k = this.#keyList[index]\n        if (this.#hasDispose) {\n          this.#dispose?.(v as V, k as K, reason)\n        }\n        if (this.#hasDisposeAfter) {\n          this.#disposed?.push([v as V, k as K, reason])\n        }\n      }\n    }\n\n    this.#keyMap.clear()\n    this.#valList.fill(undefined)\n    this.#keyList.fill(undefined)\n    if (this.#ttls && this.#starts) {\n      this.#ttls.fill(0)\n      this.#starts.fill(0)\n    }\n    if (this.#sizes) {\n      this.#sizes.fill(0)\n    }\n    this.#head = 0 as Index\n    this.#tail = 0 as Index\n    this.#free.length = 0\n    this.#calculatedSize = 0\n    this.#size = 0\n    if (this.#hasDisposeAfter && this.#disposed) {\n      const dt = this.#disposed\n      let task: DisposeTask<K, V> | undefined\n      while ((task = dt?.shift())) {\n        this.#disposeAfter?.(...task)\n      }\n    }\n  }\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/minipass/dist/commonjs/index.js":{"lineLengths":[13,72,62,2,62,87,51,13,7,21,21,6,45,62,61,3,78,40,3,30,28,29,45,37,35,3,67,3,1,28,3,67,3,32,28,46,35,69,60,3,67,3,1,32,3,67,3,32,28,46,36,32,32,26,46,41,43,45,32,28,30,40,36,34,34,32,32,32,30,44,40,42,40,42,38,42,30,36,34,36,30,30,34,32,46,38,49,29,79,60,11,32,24,47,27,78,3,62,2,12,3,12,8,9,9,12,34,23,25,25,43,44,5,14,56,5,34,25,24,24,11,22,26,28,5,1,3,67,22,2,12,3,36,14,59,23,5,34,31,63,42,5,1,50,90,3,34,2,58,2,75,55,2,67,41,3,51,22,21,17,18,17,15,12,14,18,26,27,21,27,23,24,13,22,24,24,7,40,7,20,7,37,7,20,7,69,70,51,63,7,26,35,16,16,73,84,9,43,36,34,9,46,46,37,9,14,37,34,9,38,38,69,19,63,60,79,9,63,59,77,9,35,21,34,33,30,13,18,70,13,9,5,7,66,6,62,77,55,73,15,7,24,34,5,7,55,7,20,30,5,7,49,7,24,70,5,7,67,7,23,70,5,7,43,7,22,32,5,7,49,7,25,72,5,7,38,7,21,27,5,7,45,6,78,74,34,7,22,41,5,57,15,29,49,43,5,7,43,7,19,29,5,7,78,34,7,22,32,26,25,22,47,30,141,24,9,45,26,30,9,22,30,49,67,71,42,63,59,43,58,86,13,48,58,43,13,49,88,13,9,58,62,31,32,33,58,34,32,30,41,16,40,41,38,19,23,33,9,56,55,28,41,38,19,23,33,9,70,61,40,64,73,52,49,9,55,52,47,9,73,54,30,26,37,12,36,37,34,15,19,29,5,7,38,6,74,17,6,70,77,66,6,72,31,7,13,28,24,32,39,22,44,35,24,9,29,21,59,79,40,28,31,43,71,14,9,59,31,19,5,22,29,32,14,28,45,36,45,45,38,40,13,18,48,41,40,13,9,33,47,31,21,5,30,42,23,30,9,45,26,30,9,32,40,15,33,25,30,66,37,65,63,43,35,20,5,51,16,28,19,58,35,9,29,29,28,32,26,27,35,12,31,5,7,61,6,79,77,78,76,41,7,14,30,5,7,23,7,13,30,28,32,5,7,53,7,21,31,5,7,71,46,7,19,29,5,7,56,7,18,28,5,25,29,36,12,47,33,5,21,29,36,12,57,36,5,30,62,33,59,31,5,25,33,29,5,7,74,6,33,7,22,28,24,32,40,26,57,29,12,42,46,50,20,25,27,9,14,78,76,46,44,57,28,44,16,31,9,20,5,7,47,6,74,73,73,52,7,18,57,16,43,65,42,17,33,13,16,62,23,9,5,7,36,7,30,36,5,7,64,71,6,68,6,80,57,6,75,78,26,6,77,79,16,7,21,42,28,36,34,56,31,13,9,65,35,9,53,27,40,9,57,30,28,63,16,50,9,19,5,7,37,7,33,37,5,7,45,6,73,76,73,52,7,22,43,73,74,64,28,64,44,35,38,38,13,9,19,5,7,60,6,80,76,79,14,7,28,49,48,36,58,38,13,9,19,5,7,47,7,22,33,5,24,34,33,31,40,24,38,29,35,32,29,35,39,9,5,7,66,71,6,73,72,18,6,74,74,75,71,19,6,72,63,6,79,74,71,6,74,66,7,23,29,74,29,29,31,30,25,9,33,45,23,29,63,43,9,32,35,9,34,32,57,55,29,44,45,23,9,34,39,36,71,43,24,35,23,9,35,45,35,23,9,57,39,40,23,9,35,44,31,19,5,22,38,45,29,9,71,31,19,5,17,30,25,33,30,26,51,31,5,18,28,45,23,46,39,17,37,45,13,9,38,20,9,38,39,19,5,7,74,23,7,21,39,26,11,30,31,60,39,33,30,24,34,43,11,16,19,5,7,78,28,6,41,7,20,31,59,9,41,30,26,50,5,7,64,7,21,49,76,47,44,11,5,7,45,6,74,7,30,70,22,32,28,34,25,27,52,10,28,24,30,36,29,68,26,30,24,23,35,41,39,47,23,27,14,39,41,39,47,29,54,14,33,41,41,47,23,58,14,73,46,29,30,48,42,40,42,15,10,16,17,24,25,38,28,14,51,10,5,7,38,6,75,44,7,25,70,22,32,28,28,25,34,38,34,27,52,10,28,24,30,38,68,10,31,31,35,16,17,24,25,33,28,14,40,10,5,7,79,6,70,19,6,76,30,6,70,21,7,17,30,19,39,16,37,24,9,31,31,62,32,31,24,60,23,15,35,61,12,33,20,5,7,33,6,70,6,18,7,27,32,5,1,28,33],"data":{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/minipass/src/index.ts"],"names":[],"mappings":"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","sourcesContent":["const proc =\n  typeof process === 'object' && process\n    ? process\n    : {\n        stdout: null,\n        stderr: null,\n      }\nimport { EventEmitter } from 'node:events'\nimport Stream from 'node:stream'\nimport { StringDecoder } from 'node:string_decoder'\n\n/**\n * Same as StringDecoder, but exposing the `lastNeed` flag on the type\n */\ntype SD = StringDecoder & { lastNeed: boolean }\n\nexport type { SD, Pipe, PipeProxyErrors }\n\n/**\n * Return true if the argument is a Minipass stream, Node stream, or something\n * else that Minipass can interact with.\n */\nexport const isStream = (\n  s: any\n): s is Minipass.Readable | Minipass.Writable =>\n  !!s &&\n  typeof s === 'object' &&\n  (s instanceof Minipass ||\n    s instanceof Stream ||\n    isReadable(s) ||\n    isWritable(s))\n\n/**\n * Return true if the argument is a valid {@link Minipass.Readable}\n */\nexport const isReadable = (s: any): s is Minipass.Readable =>\n  !!s &&\n  typeof s === 'object' &&\n  s instanceof EventEmitter &&\n  typeof (s as Minipass.Readable).pipe === 'function' &&\n  // node core Writable streams have a pipe() method, but it throws\n  (s as Minipass.Readable).pipe !== Stream.Writable.prototype.pipe\n\n/**\n * Return true if the argument is a valid {@link Minipass.Writable}\n */\nexport const isWritable = (s: any): s is Minipass.Readable =>\n  !!s &&\n  typeof s === 'object' &&\n  s instanceof EventEmitter &&\n  typeof (s as Minipass.Writable).write === 'function' &&\n  typeof (s as Minipass.Writable).end === 'function'\n\nconst EOF = Symbol('EOF')\nconst MAYBE_EMIT_END = Symbol('maybeEmitEnd')\nconst EMITTED_END = Symbol('emittedEnd')\nconst EMITTING_END = Symbol('emittingEnd')\nconst EMITTED_ERROR = Symbol('emittedError')\nconst CLOSED = Symbol('closed')\nconst READ = Symbol('read')\nconst FLUSH = Symbol('flush')\nconst FLUSHCHUNK = Symbol('flushChunk')\nconst ENCODING = Symbol('encoding')\nconst DECODER = Symbol('decoder')\nconst FLOWING = Symbol('flowing')\nconst PAUSED = Symbol('paused')\nconst RESUME = Symbol('resume')\nconst BUFFER = Symbol('buffer')\nconst PIPES = Symbol('pipes')\nconst BUFFERLENGTH = Symbol('bufferLength')\nconst BUFFERPUSH = Symbol('bufferPush')\nconst BUFFERSHIFT = Symbol('bufferShift')\nconst OBJECTMODE = Symbol('objectMode')\n// internal event when stream is destroyed\nconst DESTROYED = Symbol('destroyed')\n// internal event when stream has an error\nconst ERROR = Symbol('error')\nconst EMITDATA = Symbol('emitData')\nconst EMITEND = Symbol('emitEnd')\nconst EMITEND2 = Symbol('emitEnd2')\nconst ASYNC = Symbol('async')\nconst ABORT = Symbol('abort')\nconst ABORTED = Symbol('aborted')\nconst SIGNAL = Symbol('signal')\nconst DATALISTENERS = Symbol('dataListeners')\nconst DISCARDED = Symbol('discarded')\n\nconst defer = (fn: (...a: any[]) => any) => Promise.resolve().then(fn)\nconst nodefer = (fn: (...a: any[]) => any) => fn()\n\n// events that mean 'the stream is over'\n// these are treated specially, and re-emitted\n// if they are listened for after emitting.\ntype EndishEvent = 'end' | 'finish' | 'prefinish'\nconst isEndish = (ev: any): ev is EndishEvent =>\n  ev === 'end' || ev === 'finish' || ev === 'prefinish'\n\nconst isArrayBufferLike = (b: any): b is ArrayBufferLike =>\n  b instanceof ArrayBuffer ||\n  (!!b &&\n    typeof b === 'object' &&\n    b.constructor &&\n    b.constructor.name === 'ArrayBuffer' &&\n    b.byteLength >= 0)\n\nconst isArrayBufferView = (b: any): b is ArrayBufferView =>\n  !Buffer.isBuffer(b) && ArrayBuffer.isView(b)\n\n/**\n * Options that may be passed to stream.pipe()\n */\nexport interface PipeOptions {\n  /**\n   * end the destination stream when the source stream ends\n   */\n  end?: boolean\n  /**\n   * proxy errors from the source stream to the destination stream\n   */\n  proxyErrors?: boolean\n}\n\n/**\n * Internal class representing a pipe to a destination stream.\n *\n * @internal\n */\nclass Pipe<T extends unknown> {\n  src: Minipass<T>\n  dest: Minipass<any, T>\n  opts: PipeOptions\n  ondrain: () => any\n  constructor(\n    src: Minipass<T>,\n    dest: Minipass.Writable,\n    opts: PipeOptions\n  ) {\n    this.src = src\n    this.dest = dest as Minipass<any, T>\n    this.opts = opts\n    this.ondrain = () => src[RESUME]()\n    this.dest.on('drain', this.ondrain)\n  }\n  unpipe() {\n    this.dest.removeListener('drain', this.ondrain)\n  }\n  // only here for the prototype\n  /* c8 ignore start */\n  proxyErrors(_er: any) {}\n  /* c8 ignore stop */\n  end() {\n    this.unpipe()\n    if (this.opts.end) this.dest.end()\n  }\n}\n\n/**\n * Internal class representing a pipe to a destination stream where\n * errors are proxied.\n *\n * @internal\n */\nclass PipeProxyErrors<T> extends Pipe<T> {\n  unpipe() {\n    this.src.removeListener('error', this.proxyErrors)\n    super.unpipe()\n  }\n  constructor(\n    src: Minipass<T>,\n    dest: Minipass.Writable,\n    opts: PipeOptions\n  ) {\n    super(src, dest, opts)\n    this.proxyErrors = (er: Error) => this.dest.emit('error', er)\n    src.on('error', this.proxyErrors)\n  }\n}\n\nexport namespace Minipass {\n  /**\n   * Encoding used to create a stream that outputs strings rather than\n   * Buffer objects.\n   */\n  export type Encoding = BufferEncoding | 'buffer' | null\n\n  /**\n   * Any stream that Minipass can pipe into\n   */\n  export type Writable =\n    | Minipass<any, any, any>\n    | NodeJS.WriteStream\n    | (NodeJS.WriteStream & { fd: number })\n    | (EventEmitter & {\n        end(): any\n        write(chunk: any, ...args: any[]): any\n      })\n\n  /**\n   * Any stream that can be read from\n   */\n  export type Readable =\n    | Minipass<any, any, any>\n    | NodeJS.ReadStream\n    | (NodeJS.ReadStream & { fd: number })\n    | (EventEmitter & {\n        pause(): any\n        resume(): any\n        pipe(...destArgs: any[]): any\n      })\n\n  /**\n   * Utility type that can be iterated sync or async\n   */\n  export type DualIterable<T> = Iterable<T> & AsyncIterable<T>\n\n  type EventArguments = Record<string | symbol, unknown[]>\n\n  /**\n   * The listing of events that a Minipass class can emit.\n   * Extend this when extending the Minipass class, and pass as\n   * the third template argument.  The key is the name of the event,\n   * and the value is the argument list.\n   *\n   * Any undeclared events will still be allowed, but the handler will get\n   * arguments as `unknown[]`.\n   */\n  export interface Events<RType extends any = Buffer>\n    extends EventArguments {\n    readable: []\n    data: [chunk: RType]\n    error: [er: unknown]\n    abort: [reason: unknown]\n    drain: []\n    resume: []\n    end: []\n    finish: []\n    prefinish: []\n    close: []\n    [DESTROYED]: [er?: unknown]\n    [ERROR]: [er: unknown]\n  }\n\n  /**\n   * String or buffer-like data that can be joined and sliced\n   */\n  export type ContiguousData =\n    | Buffer\n    | ArrayBufferLike\n    | ArrayBufferView\n    | string\n  export type BufferOrString = Buffer | string\n\n  /**\n   * Options passed to the Minipass constructor.\n   */\n  export type SharedOptions = {\n    /**\n     * Defer all data emission and other events until the end of the\n     * current tick, similar to Node core streams\n     */\n    async?: boolean\n    /**\n     * A signal which will abort the stream\n     */\n    signal?: AbortSignal\n    /**\n     * Output string encoding. Set to `null` or `'buffer'` (or omit) to\n     * emit Buffer objects rather than strings.\n     *\n     * Conflicts with `objectMode`\n     */\n    encoding?: BufferEncoding | null | 'buffer'\n    /**\n     * Output data exactly as it was written, supporting non-buffer/string\n     * data (such as arbitrary objects, falsey values, etc.)\n     *\n     * Conflicts with `encoding`\n     */\n    objectMode?: boolean\n  }\n\n  /**\n   * Options for a string encoded output\n   */\n  export type EncodingOptions = SharedOptions & {\n    encoding: BufferEncoding\n    objectMode?: false\n  }\n\n  /**\n   * Options for contiguous data buffer output\n   */\n  export type BufferOptions = SharedOptions & {\n    encoding?: null | 'buffer'\n    objectMode?: false\n  }\n\n  /**\n   * Options for objectMode arbitrary output\n   */\n  export type ObjectModeOptions = SharedOptions & {\n    objectMode: true\n    encoding?: null\n  }\n\n  /**\n   * Utility type to determine allowed options based on read type\n   */\n  export type Options<T> =\n    | ObjectModeOptions\n    | (T extends string\n        ? EncodingOptions\n        : T extends Buffer\n        ? BufferOptions\n        : SharedOptions)\n}\n\nconst isObjectModeOptions = (\n  o: Minipass.SharedOptions\n): o is Minipass.ObjectModeOptions => !!o.objectMode\n\nconst isEncodingOptions = (\n  o: Minipass.SharedOptions\n): o is Minipass.EncodingOptions =>\n  !o.objectMode && !!o.encoding && o.encoding !== 'buffer'\n\n/**\n * Main export, the Minipass class\n *\n * `RType` is the type of data emitted, defaults to Buffer\n *\n * `WType` is the type of data to be written, if RType is buffer or string,\n * then any {@link Minipass.ContiguousData} is allowed.\n *\n * `Events` is the set of event handler signatures that this object\n * will emit, see {@link Minipass.Events}\n */\nexport class Minipass<\n    RType extends unknown = Buffer,\n    WType extends unknown = RType extends Minipass.BufferOrString\n      ? Minipass.ContiguousData\n      : RType,\n    Events extends Minipass.Events<RType> = Minipass.Events<RType>\n  >\n  extends EventEmitter\n  implements Minipass.DualIterable<RType>\n{\n  [FLOWING]: boolean = false;\n  [PAUSED]: boolean = false;\n  [PIPES]: Pipe<RType>[] = [];\n  [BUFFER]: RType[] = [];\n  [OBJECTMODE]: boolean;\n  [ENCODING]: BufferEncoding | null;\n  [ASYNC]: boolean;\n  [DECODER]: SD | null;\n  [EOF]: boolean = false;\n  [EMITTED_END]: boolean = false;\n  [EMITTING_END]: boolean = false;\n  [CLOSED]: boolean = false;\n  [EMITTED_ERROR]: unknown = null;\n  [BUFFERLENGTH]: number = 0;\n  [DESTROYED]: boolean = false;\n  [SIGNAL]?: AbortSignal;\n  [ABORTED]: boolean = false;\n  [DATALISTENERS]: number = 0;\n  [DISCARDED]: boolean = false\n\n  /**\n   * true if the stream can be written\n   */\n  writable: boolean = true\n  /**\n   * true if the stream can be read\n   */\n  readable: boolean = true\n\n  /**\n   * If `RType` is Buffer, then options do not need to be provided.\n   * Otherwise, an options object must be provided to specify either\n   * {@link Minipass.SharedOptions.objectMode} or\n   * {@link Minipass.SharedOptions.encoding}, as appropriate.\n   */\n  constructor(\n    ...args:\n      | [Minipass.ObjectModeOptions]\n      | (RType extends Buffer\n          ? [] | [Minipass.Options<RType>]\n          : [Minipass.Options<RType>])\n  ) {\n    const options: Minipass.Options<RType> = (args[0] ||\n      {}) as Minipass.Options<RType>\n    super()\n    if (options.objectMode && typeof options.encoding === 'string') {\n      throw new TypeError(\n        'Encoding and objectMode may not be used together'\n      )\n    }\n    if (isObjectModeOptions(options)) {\n      this[OBJECTMODE] = true\n      this[ENCODING] = null\n    } else if (isEncodingOptions(options)) {\n      this[ENCODING] = options.encoding\n      this[OBJECTMODE] = false\n    } else {\n      this[OBJECTMODE] = false\n      this[ENCODING] = null\n    }\n    this[ASYNC] = !!options.async\n    this[DECODER] = this[ENCODING]\n      ? (new StringDecoder(this[ENCODING]) as SD)\n      : null\n\n    //@ts-ignore - private option for debugging and testing\n    if (options && options.debugExposeBuffer === true) {\n      Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] })\n    }\n    //@ts-ignore - private option for debugging and testing\n    if (options && options.debugExposePipes === true) {\n      Object.defineProperty(this, 'pipes', { get: () => this[PIPES] })\n    }\n\n    const { signal } = options\n    if (signal) {\n      this[SIGNAL] = signal\n      if (signal.aborted) {\n        this[ABORT]()\n      } else {\n        signal.addEventListener('abort', () => this[ABORT]())\n      }\n    }\n  }\n\n  /**\n   * The amount of data stored in the buffer waiting to be read.\n   *\n   * For Buffer strings, this will be the total byte length.\n   * For string encoding streams, this will be the string character length,\n   * according to JavaScript's `string.length` logic.\n   * For objectMode streams, this is a count of the items waiting to be\n   * emitted.\n   */\n  get bufferLength() {\n    return this[BUFFERLENGTH]\n  }\n\n  /**\n   * The `BufferEncoding` currently in use, or `null`\n   */\n  get encoding() {\n    return this[ENCODING]\n  }\n\n  /**\n   * @deprecated - This is a read only property\n   */\n  set encoding(_enc) {\n    throw new Error('Encoding must be set at instantiation time')\n  }\n\n  /**\n   * @deprecated - Encoding may only be set at instantiation time\n   */\n  setEncoding(_enc: Minipass.Encoding) {\n    throw new Error('Encoding must be set at instantiation time')\n  }\n\n  /**\n   * True if this is an objectMode stream\n   */\n  get objectMode() {\n    return this[OBJECTMODE]\n  }\n\n  /**\n   * @deprecated - This is a read-only property\n   */\n  set objectMode(_om) {\n    throw new Error('objectMode must be set at instantiation time')\n  }\n\n  /**\n   * true if this is an async stream\n   */\n  get ['async'](): boolean {\n    return this[ASYNC]\n  }\n  /**\n   * Set to true to make this stream async.\n   *\n   * Once set, it cannot be unset, as this would potentially cause incorrect\n   * behavior.  Ie, a sync stream can be made async, but an async stream\n   * cannot be safely made sync.\n   */\n  set ['async'](a: boolean) {\n    this[ASYNC] = this[ASYNC] || !!a\n  }\n\n  // drop everything and get out of the flow completely\n  [ABORT]() {\n    this[ABORTED] = true\n    this.emit('abort', this[SIGNAL]?.reason)\n    this.destroy(this[SIGNAL]?.reason)\n  }\n\n  /**\n   * True if the stream has been aborted.\n   */\n  get aborted() {\n    return this[ABORTED]\n  }\n  /**\n   * No-op setter. Stream aborted status is set via the AbortSignal provided\n   * in the constructor options.\n   */\n  set aborted(_) {}\n\n  /**\n   * Write data into the stream\n   *\n   * If the chunk written is a string, and encoding is not specified, then\n   * `utf8` will be assumed. If the stream encoding matches the encoding of\n   * a written string, and the state of the string decoder allows it, then\n   * the string will be passed through to either the output or the internal\n   * buffer without any processing. Otherwise, it will be turned into a\n   * Buffer object for processing into the desired encoding.\n   *\n   * If provided, `cb` function is called immediately before return for\n   * sync streams, or on next tick for async streams, because for this\n   * base class, a chunk is considered \"processed\" once it is accepted\n   * and either emitted or buffered. That is, the callback does not indicate\n   * that the chunk has been eventually emitted, though of course child\n   * classes can override this function to do whatever processing is required\n   * and call `super.write(...)` only once processing is completed.\n   */\n  write(chunk: WType, cb?: () => void): boolean\n  write(\n    chunk: WType,\n    encoding?: Minipass.Encoding,\n    cb?: () => void\n  ): boolean\n  write(\n    chunk: WType,\n    encoding?: Minipass.Encoding | (() => void),\n    cb?: () => void\n  ): boolean {\n    if (this[ABORTED]) return false\n    if (this[EOF]) throw new Error('write after end')\n\n    if (this[DESTROYED]) {\n      this.emit(\n        'error',\n        Object.assign(\n          new Error('Cannot call write after a stream was destroyed'),\n          { code: 'ERR_STREAM_DESTROYED' }\n        )\n      )\n      return true\n    }\n\n    if (typeof encoding === 'function') {\n      cb = encoding\n      encoding = 'utf8'\n    }\n\n    if (!encoding) encoding = 'utf8'\n\n    const fn = this[ASYNC] ? defer : nodefer\n\n    // convert array buffers and typed array views into buffers\n    // at some point in the future, we may want to do the opposite!\n    // leave strings and buffers as-is\n    // anything is only allowed if in object mode, so throw\n    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {\n      if (isArrayBufferView(chunk)) {\n        //@ts-ignore - sinful unsafe type changing\n        chunk = Buffer.from(\n          chunk.buffer,\n          chunk.byteOffset,\n          chunk.byteLength\n        )\n      } else if (isArrayBufferLike(chunk)) {\n        //@ts-ignore - sinful unsafe type changing\n        chunk = Buffer.from(chunk)\n      } else if (typeof chunk !== 'string') {\n        throw new Error(\n          'Non-contiguous data written to non-objectMode stream'\n        )\n      }\n    }\n\n    // handle object mode up front, since it's simpler\n    // this yields better performance, fewer checks later.\n    if (this[OBJECTMODE]) {\n      // maybe impossible?\n      /* c8 ignore start */\n      if (this[FLOWING] && this[BUFFERLENGTH] !== 0) this[FLUSH](true)\n      /* c8 ignore stop */\n\n      if (this[FLOWING]) this.emit('data', chunk as unknown as RType)\n      else this[BUFFERPUSH](chunk as unknown as RType)\n\n      if (this[BUFFERLENGTH] !== 0) this.emit('readable')\n\n      if (cb) fn(cb)\n\n      return this[FLOWING]\n    }\n\n    // at this point the chunk is a buffer or string\n    // don't buffer it up or send it to the decoder\n    if (!(chunk as Minipass.BufferOrString).length) {\n      if (this[BUFFERLENGTH] !== 0) this.emit('readable')\n      if (cb) fn(cb)\n      return this[FLOWING]\n    }\n\n    // fast-path writing strings of same encoding to a stream with\n    // an empty buffer, skipping the buffer/decoder dance\n    if (\n      typeof chunk === 'string' &&\n      // unless it is a string already ready for us to use\n      !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)\n    ) {\n      //@ts-ignore - sinful unsafe type change\n      chunk = Buffer.from(chunk, encoding)\n    }\n\n    if (Buffer.isBuffer(chunk) && this[ENCODING]) {\n      //@ts-ignore - sinful unsafe type change\n      chunk = this[DECODER].write(chunk)\n    }\n\n    // Note: flushing CAN potentially switch us into not-flowing mode\n    if (this[FLOWING] && this[BUFFERLENGTH] !== 0) this[FLUSH](true)\n\n    if (this[FLOWING]) this.emit('data', chunk as unknown as RType)\n    else this[BUFFERPUSH](chunk as unknown as RType)\n\n    if (this[BUFFERLENGTH] !== 0) this.emit('readable')\n\n    if (cb) fn(cb)\n\n    return this[FLOWING]\n  }\n\n  /**\n   * Low-level explicit read method.\n   *\n   * In objectMode, the argument is ignored, and one item is returned if\n   * available.\n   *\n   * `n` is the number of bytes (or in the case of encoding streams,\n   * characters) to consume. If `n` is not provided, then the entire buffer\n   * is returned, or `null` is returned if no data is available.\n   *\n   * If `n` is greater that the amount of data in the internal buffer,\n   * then `null` is returned.\n   */\n  read(n?: number | null): RType | null {\n    if (this[DESTROYED]) return null\n    this[DISCARDED] = false\n\n    if (\n      this[BUFFERLENGTH] === 0 ||\n      n === 0 ||\n      (n && n > this[BUFFERLENGTH])\n    ) {\n      this[MAYBE_EMIT_END]()\n      return null\n    }\n\n    if (this[OBJECTMODE]) n = null\n\n    if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {\n      // not object mode, so if we have an encoding, then RType is string\n      // otherwise, must be Buffer\n      this[BUFFER] = [\n        (this[ENCODING]\n          ? this[BUFFER].join('')\n          : Buffer.concat(\n              this[BUFFER] as Buffer[],\n              this[BUFFERLENGTH]\n            )) as RType,\n      ]\n    }\n\n    const ret = this[READ](n || null, this[BUFFER][0] as RType)\n    this[MAYBE_EMIT_END]()\n    return ret\n  }\n\n  [READ](n: number | null, chunk: RType) {\n    if (this[OBJECTMODE]) this[BUFFERSHIFT]()\n    else {\n      const c = chunk as Minipass.BufferOrString\n      if (n === c.length || n === null) this[BUFFERSHIFT]()\n      else if (typeof c === 'string') {\n        this[BUFFER][0] = c.slice(n) as RType\n        chunk = c.slice(0, n) as RType\n        this[BUFFERLENGTH] -= n\n      } else {\n        this[BUFFER][0] = c.subarray(n) as RType\n        chunk = c.subarray(0, n) as RType\n        this[BUFFERLENGTH] -= n\n      }\n    }\n\n    this.emit('data', chunk)\n\n    if (!this[BUFFER].length && !this[EOF]) this.emit('drain')\n\n    return chunk\n  }\n\n  /**\n   * End the stream, optionally providing a final write.\n   *\n   * See {@link Minipass#write} for argument descriptions\n   */\n  end(cb?: () => void): this\n  end(chunk: WType, cb?: () => void): this\n  end(chunk: WType, encoding?: Minipass.Encoding, cb?: () => void): this\n  end(\n    chunk?: WType | (() => void),\n    encoding?: Minipass.Encoding | (() => void),\n    cb?: () => void\n  ): this {\n    if (typeof chunk === 'function') {\n      cb = chunk as () => void\n      chunk = undefined\n    }\n    if (typeof encoding === 'function') {\n      cb = encoding\n      encoding = 'utf8'\n    }\n    if (chunk !== undefined) this.write(chunk, encoding)\n    if (cb) this.once('end', cb)\n    this[EOF] = true\n    this.writable = false\n\n    // if we haven't written anything, then go ahead and emit,\n    // even if we're not reading.\n    // we'll re-emit if a new 'end' listener is added anyway.\n    // This makes MP more suitable to write-only use cases.\n    if (this[FLOWING] || !this[PAUSED]) this[MAYBE_EMIT_END]()\n    return this\n  }\n\n  // don't let the internal resume be overwritten\n  [RESUME]() {\n    if (this[DESTROYED]) return\n\n    if (!this[DATALISTENERS] && !this[PIPES].length) {\n      this[DISCARDED] = true\n    }\n    this[PAUSED] = false\n    this[FLOWING] = true\n    this.emit('resume')\n    if (this[BUFFER].length) this[FLUSH]()\n    else if (this[EOF]) this[MAYBE_EMIT_END]()\n    else this.emit('drain')\n  }\n\n  /**\n   * Resume the stream if it is currently in a paused state\n   *\n   * If called when there are no pipe destinations or `data` event listeners,\n   * this will place the stream in a \"discarded\" state, where all data will\n   * be thrown away. The discarded state is removed if a pipe destination or\n   * data handler is added, if pause() is called, or if any synchronous or\n   * asynchronous iteration is started.\n   */\n  resume() {\n    return this[RESUME]()\n  }\n\n  /**\n   * Pause the stream\n   */\n  pause() {\n    this[FLOWING] = false\n    this[PAUSED] = true\n    this[DISCARDED] = false\n  }\n\n  /**\n   * true if the stream has been forcibly destroyed\n   */\n  get destroyed() {\n    return this[DESTROYED]\n  }\n\n  /**\n   * true if the stream is currently in a flowing state, meaning that\n   * any writes will be immediately emitted.\n   */\n  get flowing() {\n    return this[FLOWING]\n  }\n\n  /**\n   * true if the stream is currently in a paused state\n   */\n  get paused() {\n    return this[PAUSED]\n  }\n\n  [BUFFERPUSH](chunk: RType) {\n    if (this[OBJECTMODE]) this[BUFFERLENGTH] += 1\n    else this[BUFFERLENGTH] += (chunk as Minipass.BufferOrString).length\n    this[BUFFER].push(chunk)\n  }\n\n  [BUFFERSHIFT](): RType {\n    if (this[OBJECTMODE]) this[BUFFERLENGTH] -= 1\n    else\n      this[BUFFERLENGTH] -= (\n        this[BUFFER][0] as Minipass.BufferOrString\n      ).length\n    return this[BUFFER].shift() as RType\n  }\n\n  [FLUSH](noDrain: boolean = false) {\n    do {} while (\n      this[FLUSHCHUNK](this[BUFFERSHIFT]()) &&\n      this[BUFFER].length\n    )\n\n    if (!noDrain && !this[BUFFER].length && !this[EOF]) this.emit('drain')\n  }\n\n  [FLUSHCHUNK](chunk: RType) {\n    this.emit('data', chunk)\n    return this[FLOWING]\n  }\n\n  /**\n   * Pipe all data emitted by this stream into the destination provided.\n   *\n   * Triggers the flow of data.\n   */\n  pipe<W extends Minipass.Writable>(dest: W, opts?: PipeOptions): W {\n    if (this[DESTROYED]) return dest\n    this[DISCARDED] = false\n\n    const ended = this[EMITTED_END]\n    opts = opts || {}\n    if (dest === proc.stdout || dest === proc.stderr) opts.end = false\n    else opts.end = opts.end !== false\n    opts.proxyErrors = !!opts.proxyErrors\n\n    // piping an ended stream ends immediately\n    if (ended) {\n      if (opts.end) dest.end()\n    } else {\n      // \"as\" here just ignores the WType, which pipes don't care about,\n      // since they're only consuming from us, and writing to the dest\n      this[PIPES].push(\n        !opts.proxyErrors\n          ? new Pipe<RType>(this as Minipass<RType>, dest, opts)\n          : new PipeProxyErrors<RType>(this as Minipass<RType>, dest, opts)\n      )\n      if (this[ASYNC]) defer(() => this[RESUME]())\n      else this[RESUME]()\n    }\n\n    return dest\n  }\n\n  /**\n   * Fully unhook a piped destination stream.\n   *\n   * If the destination stream was the only consumer of this stream (ie,\n   * there are no other piped destinations or `'data'` event listeners)\n   * then the flow of data will stop until there is another consumer or\n   * {@link Minipass#resume} is explicitly called.\n   */\n  unpipe<W extends Minipass.Writable>(dest: W) {\n    const p = this[PIPES].find(p => p.dest === dest)\n    if (p) {\n      if (this[PIPES].length === 1) {\n        if (this[FLOWING] && this[DATALISTENERS] === 0) {\n          this[FLOWING] = false\n        }\n        this[PIPES] = []\n      } else this[PIPES].splice(this[PIPES].indexOf(p), 1)\n      p.unpipe()\n    }\n  }\n\n  /**\n   * Alias for {@link Minipass#on}\n   */\n  addListener<Event extends keyof Events>(\n    ev: Event,\n    handler: (...args: Events[Event]) => any\n  ): this {\n    return this.on(ev, handler)\n  }\n\n  /**\n   * Mostly identical to `EventEmitter.on`, with the following\n   * behavior differences to prevent data loss and unnecessary hangs:\n   *\n   * - Adding a 'data' event handler will trigger the flow of data\n   *\n   * - Adding a 'readable' event handler when there is data waiting to be read\n   *   will cause 'readable' to be emitted immediately.\n   *\n   * - Adding an 'endish' event handler ('end', 'finish', etc.) which has\n   *   already passed will cause the event to be emitted immediately and all\n   *   handlers removed.\n   *\n   * - Adding an 'error' event handler after an error has been emitted will\n   *   cause the event to be re-emitted immediately with the error previously\n   *   raised.\n   */\n  on<Event extends keyof Events>(\n    ev: Event,\n    handler: (...args: Events[Event]) => any\n  ): this {\n    const ret = super.on(\n      ev as string | symbol,\n      handler as (...a: any[]) => any\n    )\n    if (ev === 'data') {\n      this[DISCARDED] = false\n      this[DATALISTENERS]++\n      if (!this[PIPES].length && !this[FLOWING]) {\n        this[RESUME]()\n      }\n    } else if (ev === 'readable' && this[BUFFERLENGTH] !== 0) {\n      super.emit('readable')\n    } else if (isEndish(ev) && this[EMITTED_END]) {\n      super.emit(ev)\n      this.removeAllListeners(ev)\n    } else if (ev === 'error' && this[EMITTED_ERROR]) {\n      const h = handler as (...a: Events['error']) => any\n      if (this[ASYNC]) defer(() => h.call(this, this[EMITTED_ERROR]))\n      else h.call(this, this[EMITTED_ERROR])\n    }\n    return ret\n  }\n\n  /**\n   * Alias for {@link Minipass#off}\n   */\n  removeListener<Event extends keyof Events>(\n    ev: Event,\n    handler: (...args: Events[Event]) => any\n  ) {\n    return this.off(ev, handler)\n  }\n\n  /**\n   * Mostly identical to `EventEmitter.off`\n   *\n   * If a 'data' event handler is removed, and it was the last consumer\n   * (ie, there are no pipe destinations or other 'data' event listeners),\n   * then the flow of data will stop until there is another consumer or\n   * {@link Minipass#resume} is explicitly called.\n   */\n  off<Event extends keyof Events>(\n    ev: Event,\n    handler: (...args: Events[Event]) => any\n  ) {\n    const ret = super.off(\n      ev as string | symbol,\n      handler as (...a: any[]) => any\n    )\n    // if we previously had listeners, and now we don't, and we don't\n    // have any pipes, then stop the flow, unless it's been explicitly\n    // put in a discarded flowing state via stream.resume().\n    if (ev === 'data') {\n      this[DATALISTENERS] = this.listeners('data').length\n      if (\n        this[DATALISTENERS] === 0 &&\n        !this[DISCARDED] &&\n        !this[PIPES].length\n      ) {\n        this[FLOWING] = false\n      }\n    }\n    return ret\n  }\n\n  /**\n   * Mostly identical to `EventEmitter.removeAllListeners`\n   *\n   * If all 'data' event handlers are removed, and they were the last consumer\n   * (ie, there are no pipe destinations), then the flow of data will stop\n   * until there is another consumer or {@link Minipass#resume} is explicitly\n   * called.\n   */\n  removeAllListeners<Event extends keyof Events>(ev?: Event) {\n    const ret = super.removeAllListeners(ev as string | symbol | undefined)\n    if (ev === 'data' || ev === undefined) {\n      this[DATALISTENERS] = 0\n      if (!this[DISCARDED] && !this[PIPES].length) {\n        this[FLOWING] = false\n      }\n    }\n    return ret\n  }\n\n  /**\n   * true if the 'end' event has been emitted\n   */\n  get emittedEnd() {\n    return this[EMITTED_END]\n  }\n\n  [MAYBE_EMIT_END]() {\n    if (\n      !this[EMITTING_END] &&\n      !this[EMITTED_END] &&\n      !this[DESTROYED] &&\n      this[BUFFER].length === 0 &&\n      this[EOF]\n    ) {\n      this[EMITTING_END] = true\n      this.emit('end')\n      this.emit('prefinish')\n      this.emit('finish')\n      if (this[CLOSED]) this.emit('close')\n      this[EMITTING_END] = false\n    }\n  }\n\n  /**\n   * Mostly identical to `EventEmitter.emit`, with the following\n   * behavior differences to prevent data loss and unnecessary hangs:\n   *\n   * If the stream has been destroyed, and the event is something other\n   * than 'close' or 'error', then `false` is returned and no handlers\n   * are called.\n   *\n   * If the event is 'end', and has already been emitted, then the event\n   * is ignored. If the stream is in a paused or non-flowing state, then\n   * the event will be deferred until data flow resumes. If the stream is\n   * async, then handlers will be called on the next tick rather than\n   * immediately.\n   *\n   * If the event is 'close', and 'end' has not yet been emitted, then\n   * the event will be deferred until after 'end' is emitted.\n   *\n   * If the event is 'error', and an AbortSignal was provided for the stream,\n   * and there are no listeners, then the event is ignored, matching the\n   * behavior of node core streams in the presense of an AbortSignal.\n   *\n   * If the event is 'finish' or 'prefinish', then all listeners will be\n   * removed after emitting the event, to prevent double-firing.\n   */\n  emit<Event extends keyof Events>(\n    ev: Event,\n    ...args: Events[Event]\n  ): boolean {\n    const data = args[0]\n    // error and close are only events allowed after calling destroy()\n    if (\n      ev !== 'error' &&\n      ev !== 'close' &&\n      ev !== DESTROYED &&\n      this[DESTROYED]\n    ) {\n      return false\n    } else if (ev === 'data') {\n      return !this[OBJECTMODE] && !data\n        ? false\n        : this[ASYNC]\n        ? (defer(() => this[EMITDATA](data as RType)), true)\n        : this[EMITDATA](data as RType)\n    } else if (ev === 'end') {\n      return this[EMITEND]()\n    } else if (ev === 'close') {\n      this[CLOSED] = true\n      // don't emit close before 'end' and 'finish'\n      if (!this[EMITTED_END] && !this[DESTROYED]) return false\n      const ret = super.emit('close')\n      this.removeAllListeners('close')\n      return ret\n    } else if (ev === 'error') {\n      this[EMITTED_ERROR] = data\n      super.emit(ERROR, data)\n      const ret =\n        !this[SIGNAL] || this.listeners('error').length\n          ? super.emit('error', data)\n          : false\n      this[MAYBE_EMIT_END]()\n      return ret\n    } else if (ev === 'resume') {\n      const ret = super.emit('resume')\n      this[MAYBE_EMIT_END]()\n      return ret\n    } else if (ev === 'finish' || ev === 'prefinish') {\n      const ret = super.emit(ev)\n      this.removeAllListeners(ev)\n      return ret\n    }\n\n    // Some other unknown event\n    const ret = super.emit(ev as string, ...args)\n    this[MAYBE_EMIT_END]()\n    return ret\n  }\n\n  [EMITDATA](data: RType) {\n    for (const p of this[PIPES]) {\n      if (p.dest.write(data as RType) === false) this.pause()\n    }\n    const ret = this[DISCARDED] ? false : super.emit('data', data)\n    this[MAYBE_EMIT_END]()\n    return ret\n  }\n\n  [EMITEND]() {\n    if (this[EMITTED_END]) return false\n\n    this[EMITTED_END] = true\n    this.readable = false\n    return this[ASYNC]\n      ? (defer(() => this[EMITEND2]()), true)\n      : this[EMITEND2]()\n  }\n\n  [EMITEND2]() {\n    if (this[DECODER]) {\n      const data = this[DECODER].end()\n      if (data) {\n        for (const p of this[PIPES]) {\n          p.dest.write(data as RType)\n        }\n        if (!this[DISCARDED]) super.emit('data', data)\n      }\n    }\n\n    for (const p of this[PIPES]) {\n      p.end()\n    }\n    const ret = super.emit('end')\n    this.removeAllListeners('end')\n    return ret\n  }\n\n  /**\n   * Return a Promise that resolves to an array of all emitted data once\n   * the stream ends.\n   */\n  async collect(): Promise<RType[] & { dataLength: number }> {\n    const buf: RType[] & { dataLength: number } = Object.assign([], {\n      dataLength: 0,\n    })\n    if (!this[OBJECTMODE]) buf.dataLength = 0\n    // set the promise first, in case an error is raised\n    // by triggering the flow here.\n    const p = this.promise()\n    this.on('data', c => {\n      buf.push(c)\n      if (!this[OBJECTMODE])\n        buf.dataLength += (c as Minipass.BufferOrString).length\n    })\n    await p\n    return buf\n  }\n\n  /**\n   * Return a Promise that resolves to the concatenation of all emitted data\n   * once the stream ends.\n   *\n   * Not allowed on objectMode streams.\n   */\n  async concat(): Promise<RType> {\n    if (this[OBJECTMODE]) {\n      throw new Error('cannot concat in objectMode')\n    }\n    const buf = await this.collect()\n    return (\n      this[ENCODING]\n        ? buf.join('')\n        : Buffer.concat(buf as Buffer[], buf.dataLength)\n    ) as RType\n  }\n\n  /**\n   * Return a void Promise that resolves once the stream ends.\n   */\n  async promise(): Promise<void> {\n    return new Promise<void>((resolve, reject) => {\n      this.on(DESTROYED, () => reject(new Error('stream destroyed')))\n      this.on('error', er => reject(er))\n      this.on('end', () => resolve())\n    })\n  }\n\n  /**\n   * Asynchronous `for await of` iteration.\n   *\n   * This will continue emitting all chunks until the stream terminates.\n   */\n  [Symbol.asyncIterator](): AsyncGenerator<RType, void, void> {\n    // set this up front, in case the consumer doesn't call next()\n    // right away.\n    this[DISCARDED] = false\n    let stopped = false\n    const stop = async (): Promise<IteratorReturnResult<void>> => {\n      this.pause()\n      stopped = true\n      return { value: undefined, done: true }\n    }\n    const next = (): Promise<IteratorResult<RType, void>> => {\n      if (stopped) return stop()\n      const res = this.read()\n      if (res !== null) return Promise.resolve({ done: false, value: res })\n\n      if (this[EOF]) return stop()\n\n      let resolve!: (res: IteratorResult<RType>) => void\n      let reject!: (er: unknown) => void\n      const onerr = (er: unknown) => {\n        this.off('data', ondata)\n        this.off('end', onend)\n        this.off(DESTROYED, ondestroy)\n        stop()\n        reject(er)\n      }\n      const ondata = (value: RType) => {\n        this.off('error', onerr)\n        this.off('end', onend)\n        this.off(DESTROYED, ondestroy)\n        this.pause()\n        resolve({ value, done: !!this[EOF] })\n      }\n      const onend = () => {\n        this.off('error', onerr)\n        this.off('data', ondata)\n        this.off(DESTROYED, ondestroy)\n        stop()\n        resolve({ done: true, value: undefined })\n      }\n      const ondestroy = () => onerr(new Error('stream destroyed'))\n      return new Promise<IteratorResult<RType>>((res, rej) => {\n        reject = rej\n        resolve = res\n        this.once(DESTROYED, ondestroy)\n        this.once('error', onerr)\n        this.once('end', onend)\n        this.once('data', ondata)\n      })\n    }\n\n    return {\n      next,\n      throw: stop,\n      return: stop,\n      [Symbol.asyncIterator]() {\n        return this\n      },\n      [Symbol.asyncDispose]: async () => {},\n    }\n  }\n\n  /**\n   * Synchronous `for of` iteration.\n   *\n   * The iteration will terminate when the internal buffer runs out, even\n   * if the stream has not yet terminated.\n   */\n  [Symbol.iterator](): Generator<RType, void, void> {\n    // set this up front, in case the consumer doesn't call next()\n    // right away.\n    this[DISCARDED] = false\n    let stopped = false\n    const stop = (): IteratorReturnResult<void> => {\n      this.pause()\n      this.off(ERROR, stop)\n      this.off(DESTROYED, stop)\n      this.off('end', stop)\n      stopped = true\n      return { done: true, value: undefined }\n    }\n\n    const next = (): IteratorResult<RType, void> => {\n      if (stopped) return stop()\n      const value = this.read()\n      return value === null ? stop() : { done: false, value }\n    }\n\n    this.once('end', stop)\n    this.once(ERROR, stop)\n    this.once(DESTROYED, stop)\n\n    return {\n      next,\n      throw: stop,\n      return: stop,\n      [Symbol.iterator]() {\n        return this\n      },\n      [Symbol.dispose]: () => {},\n    }\n  }\n\n  /**\n   * Destroy a stream, preventing it from being used for any further purpose.\n   *\n   * If the stream has a `close()` method, then it will be called on\n   * destruction.\n   *\n   * After destruction, any attempt to write data, read data, or emit most\n   * events will be ignored.\n   *\n   * If an error argument is provided, then it will be emitted in an\n   * 'error' event.\n   */\n  destroy(er?: unknown) {\n    if (this[DESTROYED]) {\n      if (er) this.emit('error', er)\n      else this.emit(DESTROYED)\n      return this\n    }\n\n    this[DESTROYED] = true\n    this[DISCARDED] = true\n\n    // throw away all buffered data, it's never coming out\n    this[BUFFER].length = 0\n    this[BUFFERLENGTH] = 0\n\n    const wc = this as Minipass<RType, WType, Events> & {\n      close?: () => void\n    }\n    if (typeof wc.close === 'function' && !this[CLOSED]) wc.close()\n\n    if (er) this.emit('error', er)\n    // if no error to emit, still reject pending promises\n    else this.emit(DESTROYED)\n\n    return this\n  }\n\n  /**\n   * Alias for {@link isStream}\n   *\n   * Former export location, maintained for backwards compatibility.\n   *\n   * @deprecated\n   */\n  static get isStream() {\n    return isStream\n  }\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/pattern.js":{"lineLengths":[13,73,62,25,41,45,42,3,67,10,3,15,17,14,11,11,14,10,16,13,11,16,27,57,42,54,9,36,51,9,53,81,9,41,48,54,9,40,34,28,34,75,32,28,29,35,48,49,55,35,25,31,45,69,66,38,32,34,34,17,57,57,50,47,55,13,59,57,54,38,32,34,34,17,35,35,50,47,55,13,9,5,7,53,7,15,46,5,7,44,7,16,66,5,7,44,7,18,71,5,7,41,7,16,64,5,7,63,7,18,34,31,36,39,77,50,68,5,7,58,7,15,45,5,7,74,7,12,37,30,28,39,101,50,40,44,26,5,7,62,7,13,37,42,23,28,45,40,35,35,48,30,48,29,5,26,26,71,74,49,7,64,7,15,37,44,25,30,45,40,38,48,45,5,42,54,56,7,56,7,18,37,47,28,33,50,37,34,5,7,53,7,12,39,82,13,17,5,7,72,23,7,27,37,33,35,5,7,74,7,26,77,25,37,20,5,1,26,35],"data":{"version":3,"file":"pattern.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["// this is just a very light wrapper around 2 arrays with an offset index\n\nimport { GLOBSTAR } from 'minimatch'\nexport type MMPattern = string | RegExp | typeof GLOBSTAR\n\n// an array of length >= 1\nexport type PatternList = [p: MMPattern, ...rest: MMPattern[]]\nexport type UNCPatternList = [\n  p0: '',\n  p1: '',\n  p2: string,\n  p3: string,\n  ...rest: MMPattern[],\n]\nexport type DrivePatternList = [p0: string, ...rest: MMPattern[]]\nexport type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]\nexport type GlobList = [p: string, ...rest: string[]]\n\nconst isPatternList = (pl: MMPattern[]): pl is PatternList =>\n  pl.length >= 1\nconst isGlobList = (gl: string[]): gl is GlobList => gl.length >= 1\n\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nexport class Pattern {\n  readonly #patternList: PatternList\n  readonly #globList: GlobList\n  readonly #index: number\n  readonly length: number\n  readonly #platform: NodeJS.Platform\n  #rest?: Pattern | null\n  #globString?: string\n  #isDrive?: boolean\n  #isUNC?: boolean\n  #isAbsolute?: boolean\n  #followGlobstar: boolean = true\n\n  constructor(\n    patternList: MMPattern[],\n    globList: string[],\n    index: number,\n    platform: NodeJS.Platform,\n  ) {\n    if (!isPatternList(patternList)) {\n      throw new TypeError('empty pattern list')\n    }\n    if (!isGlobList(globList)) {\n      throw new TypeError('empty glob list')\n    }\n    if (globList.length !== patternList.length) {\n      throw new TypeError('mismatched pattern list and glob list lengths')\n    }\n    this.length = patternList.length\n    if (index < 0 || index >= this.length) {\n      throw new TypeError('index out of range')\n    }\n    this.#patternList = patternList\n    this.#globList = globList\n    this.#index = index\n    this.#platform = platform\n\n    // normalize root entries of absolute patterns on initial creation.\n    if (this.#index === 0) {\n      // c: => ['c:/']\n      // C:/ => ['C:/']\n      // C:/x => ['C:/', 'x']\n      // //host/share => ['//host/share/']\n      // //host/share/ => ['//host/share/']\n      // //host/share/x => ['//host/share/', 'x']\n      // /etc => ['/', 'etc']\n      // / => ['/']\n      if (this.isUNC()) {\n        // '' / '' / 'host' / 'share'\n        const [p0, p1, p2, p3, ...prest] = this.#patternList\n        const [g0, g1, g2, g3, ...grest] = this.#globList\n        if (prest[0] === '') {\n          // ends in /\n          prest.shift()\n          grest.shift()\n        }\n        const p = [p0, p1, p2, p3, ''].join('/')\n        const g = [g0, g1, g2, g3, ''].join('/')\n        this.#patternList = [p, ...prest]\n        this.#globList = [g, ...grest]\n        this.length = this.#patternList.length\n      } else if (this.isDrive() || this.isAbsolute()) {\n        const [p1, ...prest] = this.#patternList\n        const [g1, ...grest] = this.#globList\n        if (prest[0] === '') {\n          // ends in /\n          prest.shift()\n          grest.shift()\n        }\n        const p = (p1 as string) + '/'\n        const g = g1 + '/'\n        this.#patternList = [p, ...prest]\n        this.#globList = [g, ...grest]\n        this.length = this.#patternList.length\n      }\n    }\n  }\n\n  /**\n   * The first entry in the parsed list of patterns\n   */\n  pattern(): MMPattern {\n    return this.#patternList[this.#index] as MMPattern\n  }\n\n  /**\n   * true of if pattern() returns a string\n   */\n  isString(): boolean {\n    return typeof this.#patternList[this.#index] === 'string'\n  }\n  /**\n   * true of if pattern() returns GLOBSTAR\n   */\n  isGlobstar(): boolean {\n    return this.#patternList[this.#index] === GLOBSTAR\n  }\n  /**\n   * true if pattern() returns a regexp\n   */\n  isRegExp(): boolean {\n    return this.#patternList[this.#index] instanceof RegExp\n  }\n\n  /**\n   * The /-joined set of glob parts that make up this pattern\n   */\n  globString(): string {\n    return (this.#globString =\n      this.#globString ||\n      (this.#index === 0 ?\n        this.isAbsolute() ?\n          this.#globList[0] + this.#globList.slice(1).join('/')\n        : this.#globList.join('/')\n      : this.#globList.slice(this.#index).join('/')))\n  }\n\n  /**\n   * true if there are more pattern parts after this one\n   */\n  hasMore(): boolean {\n    return this.length > this.#index + 1\n  }\n\n  /**\n   * The rest of the pattern after this part, or null if this is the end\n   */\n  rest(): Pattern | null {\n    if (this.#rest !== undefined) return this.#rest\n    if (!this.hasMore()) return (this.#rest = null)\n    this.#rest = new Pattern(\n      this.#patternList,\n      this.#globList,\n      this.#index + 1,\n      this.#platform,\n    )\n    this.#rest.#isAbsolute = this.#isAbsolute\n    this.#rest.#isUNC = this.#isUNC\n    this.#rest.#isDrive = this.#isDrive\n    return this.#rest\n  }\n\n  /**\n   * true if the pattern represents a //unc/path/ on windows\n   */\n  isUNC(): boolean {\n    const pl = this.#patternList\n    return this.#isUNC !== undefined ?\n        this.#isUNC\n      : (this.#isUNC =\n          this.#platform === 'win32' &&\n          this.#index === 0 &&\n          pl[0] === '' &&\n          pl[1] === '' &&\n          typeof pl[2] === 'string' &&\n          !!pl[2] &&\n          typeof pl[3] === 'string' &&\n          !!pl[3])\n  }\n\n  // pattern like C:/...\n  // split = ['C:', ...]\n  // XXX: would be nice to handle patterns like `c:*` to test the cwd\n  // in c: for *, but I don't know of a way to even figure out what that\n  // cwd is without actually chdir'ing into it?\n  /**\n   * True if the pattern starts with a drive letter on Windows\n   */\n  isDrive(): boolean {\n    const pl = this.#patternList\n    return this.#isDrive !== undefined ?\n        this.#isDrive\n      : (this.#isDrive =\n          this.#platform === 'win32' &&\n          this.#index === 0 &&\n          this.length > 1 &&\n          typeof pl[0] === 'string' &&\n          /^[a-z]:$/i.test(pl[0]))\n  }\n\n  // pattern = '/' or '/...' or '/x/...'\n  // split = ['', ''] or ['', ...] or ['', 'x', ...]\n  // Drive and UNC both considered absolute on windows\n  /**\n   * True if the pattern is rooted on an absolute path\n   */\n  isAbsolute(): boolean {\n    const pl = this.#patternList\n    return this.#isAbsolute !== undefined ?\n        this.#isAbsolute\n      : (this.#isAbsolute =\n          (pl[0] === '' && pl.length > 1) ||\n          this.isDrive() ||\n          this.isUNC())\n  }\n\n  /**\n   * consume the root of the pattern, and return it\n   */\n  root(): string {\n    const p = this.#patternList[0]\n    return (\n        typeof p === 'string' && this.isAbsolute() && this.#index === 0\n      ) ?\n        p\n      : ''\n  }\n\n  /**\n   * Check to see if the current globstar pattern is allowed to follow\n   * a symbolic link.\n   */\n  checkFollowGlobstar(): boolean {\n    return !(\n      this.#index === 0 ||\n      !this.isGlobstar() ||\n      !this.#followGlobstar\n    )\n  }\n\n  /**\n   * Mark that the current globstar pattern is following a symbolic link\n   */\n  markFollowGlobstar(): boolean {\n    if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n      return false\n    this.#followGlobstar = false\n    return true\n  }\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/walker.js":{"lineLengths":[13,62,68,3,74,11,2,10,3,39,43,49,104,66,17,3,61,3,16,9,13,9,21,19,20,19,12,9,11,13,24,39,33,25,25,74,70,55,63,44,57,84,35,13,9,69,27,29,50,28,26,38,57,42,15,9,5,20,70,5,28,55,5,29,13,27,5,14,29,33,19,28,28,27,63,17,9,5,18,33,19,29,27,17,9,14,32,36,9,5,67,44,32,37,29,16,33,61,21,33,20,9,57,49,73,46,33,67,37,13,32,9,45,5,30,20,73,41,53,32,36,38,54,32,13,24,5,30,37,29,16,33,57,21,33,20,9,57,47,73,44,68,35,13,9,45,5,30,29,19,69,61,50,34,9,85,25,72,36,38,30,9,23,75,39,9,14,75,84,31,21,65,9,5,37,50,14,42,5,35,48,14,42,5,34,29,33,17,28,84,5,46,42,24,33,17,26,79,19,9,52,77,68,65,22,28,30,21,10,73,33,25,20,62,9,53,75,25,13,20,53,34,65,18,93,13,9,15,5,45,61,22,28,30,21,10,73,33,25,20,62,9,72,20,68,9,15,5,38,29,33,17,28,88,5,50,42,24,33,17,26,83,19,9,52,77,68,65,22,28,30,21,10,73,33,25,47,9,53,75,25,13,20,45,59,9,15,5,49,61,22,28,30,21,10,73,33,25,47,9,72,20,72,9,15,5,1,28,35,24,39,36,5,18,28,5,18,33,37,36,36,9,41,57,43,44,17,22,38,17,15,11,28,5,16,33,37,36,34,9,68,57,37,41,11,28,5,1,32,35,12,39,36,48,32,29,11,54,55,5,18,30,34,25,5,14,33,33,39,77,15,9,14,73,9,28,5,18,36,34,9,76,28,5,1,32,34],"data":{"version":3,"file":"walker.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/src/walker.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport { Ignore, IgnoreLike } from './ignore.js'\n\n// XXX can we somehow make it so that it NEVER processes a given path more than\n// once, enough that the match set tracking is no longer needed?  that'd speed\n// things up a lot.  Or maybe bring back nounique, and skip it in that case?\n\n// a single minimatch set entry with 1 or more parts\nimport { Pattern } from './pattern.js'\nimport { Processor } from './processor.js'\n\nexport interface GlobWalkerOpts {\n  absolute?: boolean\n  allowWindowsEscape?: boolean\n  cwd?: string | URL\n  dot?: boolean\n  dotRelative?: boolean\n  follow?: boolean\n  ignore?: string | string[] | IgnoreLike\n  mark?: boolean\n  matchBase?: boolean\n  // Note: maxDepth here means \"maximum actual Path.depth()\",\n  // not \"maximum depth beyond cwd\"\n  maxDepth?: number\n  nobrace?: boolean\n  nocase?: boolean\n  nodir?: boolean\n  noext?: boolean\n  noglobstar?: boolean\n  platform?: NodeJS.Platform\n  posix?: boolean\n  realpath?: boolean\n  root?: string\n  stat?: boolean\n  signal?: AbortSignal\n  windowsPathsNoEscape?: boolean\n  withFileTypes?: boolean\n  includeChildMatches?: boolean\n}\n\nexport type GWOFileTypesTrue = GlobWalkerOpts & {\n  withFileTypes: true\n}\nexport type GWOFileTypesFalse = GlobWalkerOpts & {\n  withFileTypes: false\n}\nexport type GWOFileTypesUnset = GlobWalkerOpts & {\n  withFileTypes?: undefined\n}\n\nexport type Result<O extends GlobWalkerOpts> =\n  O extends GWOFileTypesTrue ? Path\n  : O extends GWOFileTypesFalse ? string\n  : O extends GWOFileTypesUnset ? string\n  : Path | string\n\nexport type Matches<O extends GlobWalkerOpts> =\n  O extends GWOFileTypesTrue ? Set<Path>\n  : O extends GWOFileTypesFalse ? Set<string>\n  : O extends GWOFileTypesUnset ? Set<string>\n  : Set<Path | string>\n\nexport type MatchStream<O extends GlobWalkerOpts> = Minipass<\n  Result<O>,\n  Result<O>\n>\n\nconst makeIgnore = (\n  ignore: string | string[] | IgnoreLike,\n  opts: GlobWalkerOpts,\n): IgnoreLike =>\n  typeof ignore === 'string' ? new Ignore([ignore], opts)\n  : Array.isArray(ignore) ? new Ignore(ignore, opts)\n  : ignore\n\n/**\n * basic walking utilities that all the glob walker types use\n */\nexport abstract class GlobUtil<O extends GlobWalkerOpts = GlobWalkerOpts> {\n  path: Path\n  patterns: Pattern[]\n  opts: O\n  seen: Set<Path> = new Set<Path>()\n  paused: boolean = false\n  aborted: boolean = false\n  #onResume: (() => any)[] = []\n  #ignore?: IgnoreLike\n  #sep: '\\\\' | '/'\n  signal?: AbortSignal\n  maxDepth: number\n  includeChildMatches: boolean\n\n  constructor(patterns: Pattern[], path: Path, opts: O)\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    this.patterns = patterns\n    this.path = path\n    this.opts = opts\n    this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/'\n    this.includeChildMatches = opts.includeChildMatches !== false\n    if (opts.ignore || !this.includeChildMatches) {\n      this.#ignore = makeIgnore(opts.ignore ?? [], opts)\n      if (\n        !this.includeChildMatches &&\n        typeof this.#ignore.add !== 'function'\n      ) {\n        const m = 'cannot ignore child matches, ignore lacks add() method.'\n        throw new Error(m)\n      }\n    }\n    // ignore, always set with maxDepth, but it's optional on the\n    // GlobOptions type\n    /* c8 ignore start */\n    this.maxDepth = opts.maxDepth || Infinity\n    /* c8 ignore stop */\n    if (opts.signal) {\n      this.signal = opts.signal\n      this.signal.addEventListener('abort', () => {\n        this.#onResume.length = 0\n      })\n    }\n  }\n\n  #ignored(path: Path): boolean {\n    return this.seen.has(path) || !!this.#ignore?.ignored?.(path)\n  }\n  #childrenIgnored(path: Path): boolean {\n    return !!this.#ignore?.childrenIgnored?.(path)\n  }\n\n  // backpressure mechanism\n  pause() {\n    this.paused = true\n  }\n  resume() {\n    /* c8 ignore start */\n    if (this.signal?.aborted) return\n    /* c8 ignore stop */\n    this.paused = false\n    let fn: (() => any) | undefined = undefined\n    while (!this.paused && (fn = this.#onResume.shift())) {\n      fn()\n    }\n  }\n  onResume(fn: () => any) {\n    if (this.signal?.aborted) return\n    /* c8 ignore start */\n    if (!this.paused) {\n      fn()\n    } else {\n      /* c8 ignore stop */\n      this.#onResume.push(fn)\n    }\n  }\n\n  // do the requisite realpath/stat checking, and return the path\n  // to add or undefined to filter it out.\n  async matchCheck(e: Path, ifDir: boolean): Promise<Path | undefined> {\n    if (ifDir && this.opts.nodir) return undefined\n    let rpc: Path | undefined\n    if (this.opts.realpath) {\n      rpc = e.realpathCached() || (await e.realpath())\n      if (!rpc) return undefined\n      e = rpc\n    }\n    const needStat = e.isUnknown() || this.opts.stat\n    const s = needStat ? await e.lstat() : e\n    if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n      const target = await s.realpath()\n      /* c8 ignore start */\n      if (target && (target.isUnknown() || this.opts.stat)) {\n        await target.lstat()\n      }\n      /* c8 ignore stop */\n    }\n    return this.matchCheckTest(s, ifDir)\n  }\n\n  matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined {\n    return (\n        e &&\n          (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n          (!ifDir || e.canReaddir()) &&\n          (!this.opts.nodir || !e.isDirectory()) &&\n          (!this.opts.nodir ||\n            !this.opts.follow ||\n            !e.isSymbolicLink() ||\n            !e.realpathCached()?.isDirectory()) &&\n          !this.#ignored(e)\n      ) ?\n        e\n      : undefined\n  }\n\n  matchCheckSync(e: Path, ifDir: boolean): Path | undefined {\n    if (ifDir && this.opts.nodir) return undefined\n    let rpc: Path | undefined\n    if (this.opts.realpath) {\n      rpc = e.realpathCached() || e.realpathSync()\n      if (!rpc) return undefined\n      e = rpc\n    }\n    const needStat = e.isUnknown() || this.opts.stat\n    const s = needStat ? e.lstatSync() : e\n    if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n      const target = s.realpathSync()\n      if (target && (target?.isUnknown() || this.opts.stat)) {\n        target.lstatSync()\n      }\n    }\n    return this.matchCheckTest(s, ifDir)\n  }\n\n  abstract matchEmit(p: Result<O>): void\n  abstract matchEmit(p: string | Path): void\n\n  matchFinish(e: Path, absolute: boolean) {\n    if (this.#ignored(e)) return\n    // we know we have an ignore if this is false, but TS doesn't\n    if (!this.includeChildMatches && this.#ignore?.add) {\n      const ign = `${e.relativePosix()}/**`\n      this.#ignore.add(ign)\n    }\n    const abs =\n      this.opts.absolute === undefined ? absolute : this.opts.absolute\n    this.seen.add(e)\n    const mark = this.opts.mark && e.isDirectory() ? this.#sep : ''\n    // ok, we have what we need!\n    if (this.opts.withFileTypes) {\n      this.matchEmit(e)\n    } else if (abs) {\n      const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath()\n      this.matchEmit(abs + mark)\n    } else {\n      const rel = this.opts.posix ? e.relativePosix() : e.relative()\n      const pre =\n        this.opts.dotRelative && !rel.startsWith('..' + this.#sep) ?\n          '.' + this.#sep\n        : ''\n      this.matchEmit(!rel ? '.' + mark : pre + rel + mark)\n    }\n  }\n\n  async match(e: Path, absolute: boolean, ifDir: boolean): Promise<void> {\n    const p = await this.matchCheck(e, ifDir)\n    if (p) this.matchFinish(p, absolute)\n  }\n\n  matchSync(e: Path, absolute: boolean, ifDir: boolean): void {\n    const p = this.matchCheckSync(e, ifDir)\n    if (p) this.matchFinish(p, absolute)\n  }\n\n  walkCB(target: Path, patterns: Pattern[], cb: () => any) {\n    /* c8 ignore start */\n    if (this.signal?.aborted) cb()\n    /* c8 ignore stop */\n    this.walkCB2(target, patterns, new Processor(this.opts), cb)\n  }\n\n  walkCB2(\n    target: Path,\n    patterns: Pattern[],\n    processor: Processor,\n    cb: () => any,\n  ) {\n    if (this.#childrenIgnored(target)) return cb()\n    if (this.signal?.aborted) cb()\n    if (this.paused) {\n      this.onResume(() => this.walkCB2(target, patterns, processor, cb))\n      return\n    }\n    processor.processPatterns(target, patterns)\n\n    // done processing.  all of the above is sync, can be abstracted out.\n    // subwalks is a map of paths to the entry filters they need\n    // matches is a map of paths to [absolute, ifDir] tuples.\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      tasks++\n      this.match(m, absolute, ifDir).then(() => next())\n    }\n\n    for (const t of processor.subwalkTargets()) {\n      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n        continue\n      }\n      tasks++\n      const childrenCached = t.readdirCached()\n      if (t.calledReaddir())\n        this.walkCB3(t, childrenCached, processor, next)\n      else {\n        t.readdirCB(\n          (_, entries) => this.walkCB3(t, entries, processor, next),\n          true,\n        )\n      }\n    }\n\n    next()\n  }\n\n  walkCB3(\n    target: Path,\n    entries: Path[],\n    processor: Processor,\n    cb: () => any,\n  ) {\n    processor = processor.filterEntries(target, entries)\n\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      tasks++\n      this.match(m, absolute, ifDir).then(() => next())\n    }\n    for (const [target, patterns] of processor.subwalks.entries()) {\n      tasks++\n      this.walkCB2(target, patterns, processor.child(), next)\n    }\n\n    next()\n  }\n\n  walkCBSync(target: Path, patterns: Pattern[], cb: () => any) {\n    /* c8 ignore start */\n    if (this.signal?.aborted) cb()\n    /* c8 ignore stop */\n    this.walkCB2Sync(target, patterns, new Processor(this.opts), cb)\n  }\n\n  walkCB2Sync(\n    target: Path,\n    patterns: Pattern[],\n    processor: Processor,\n    cb: () => any,\n  ) {\n    if (this.#childrenIgnored(target)) return cb()\n    if (this.signal?.aborted) cb()\n    if (this.paused) {\n      this.onResume(() =>\n        this.walkCB2Sync(target, patterns, processor, cb),\n      )\n      return\n    }\n    processor.processPatterns(target, patterns)\n\n    // done processing.  all of the above is sync, can be abstracted out.\n    // subwalks is a map of paths to the entry filters they need\n    // matches is a map of paths to [absolute, ifDir] tuples.\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      this.matchSync(m, absolute, ifDir)\n    }\n\n    for (const t of processor.subwalkTargets()) {\n      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n        continue\n      }\n      tasks++\n      const children = t.readdirSync()\n      this.walkCB3Sync(t, children, processor, next)\n    }\n\n    next()\n  }\n\n  walkCB3Sync(\n    target: Path,\n    entries: Path[],\n    processor: Processor,\n    cb: () => any,\n  ) {\n    processor = processor.filterEntries(target, entries)\n\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      this.matchSync(m, absolute, ifDir)\n    }\n    for (const [target, patterns] of processor.subwalks.entries()) {\n      tasks++\n      this.walkCB2Sync(target, patterns, processor.child(), next)\n    }\n\n    next()\n  }\n}\n\nexport class GlobWalker<\n  O extends GlobWalkerOpts = GlobWalkerOpts,\n> extends GlobUtil<O> {\n  matches = new Set<Result<O>>()\n\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    super(patterns, path, opts)\n  }\n\n  matchEmit(e: Result<O>): void {\n    this.matches.add(e)\n  }\n\n  async walk(): Promise<Set<Result<O>>> {\n    if (this.signal?.aborted) throw this.signal.reason\n    if (this.path.isUnknown()) {\n      await this.path.lstat()\n    }\n    await new Promise((res, rej) => {\n      this.walkCB(this.path, this.patterns, () => {\n        if (this.signal?.aborted) {\n          rej(this.signal.reason)\n        } else {\n          res(this.matches)\n        }\n      })\n    })\n    return this.matches\n  }\n\n  walkSync(): Set<Result<O>> {\n    if (this.signal?.aborted) throw this.signal.reason\n    if (this.path.isUnknown()) {\n      this.path.lstatSync()\n    }\n    // nothing for the callback to do, because this never pauses\n    this.walkCBSync(this.path, this.patterns, () => {\n      if (this.signal?.aborted) throw this.signal.reason\n    })\n    return this.matches\n  }\n}\n\nexport class GlobStream<\n  O extends GlobWalkerOpts = GlobWalkerOpts,\n> extends GlobUtil<O> {\n  results: Minipass<Result<O>, Result<O>>\n\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    super(patterns, path, opts)\n    this.results = new Minipass<Result<O>, Result<O>>({\n      signal: this.signal,\n      objectMode: true,\n    })\n    this.results.on('drain', () => this.resume())\n    this.results.on('resume', () => this.resume())\n  }\n\n  matchEmit(e: Result<O>): void {\n    this.results.write(e)\n    if (!this.results.flowing) this.pause()\n  }\n\n  stream(): MatchStream<O> {\n    const target = this.path\n    if (target.isUnknown()) {\n      target.lstat().then(() => {\n        this.walkCB(target, this.patterns, () => this.results.end())\n      })\n    } else {\n      this.walkCB(target, this.patterns, () => this.results.end())\n    }\n    return this.results\n  }\n\n  streamSync(): MatchStream<O> {\n    if (this.path.isUnknown()) {\n      this.path.lstatSync()\n    }\n    this.walkCBSync(this.path, this.patterns, () => this.results.end())\n    return this.results\n  }\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/ignore.js":{"lineLengths":[13,54,34,66,45,62,24,41,45,55,14,43,20,14,3,41,3,14,13,21,13,21,13,11,95,27,27,35,35,33,23,22,20,19,18,23,33,21,28,27,10,34,26,5,14,75,72,75,47,75,77,31,79,76,29,78,48,63,49,37,46,33,40,58,13,44,61,63,31,34,13,32,84,77,70,44,25,38,16,38,27,29,50,20,50,13,9,5,16,38,41,45,41,40,56,28,9,40,56,28,9,21,5,24,44,53,48,34,28,9,48,34,28,9,21,5,1,24,34],"data":{"version":3,"file":"ignore.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/src/ignore.ts"],"names":[],"mappings":"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","sourcesContent":["// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\n\nimport { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\nexport interface IgnoreLike {\n  ignored?: (p: Path) => boolean\n  childrenIgnored?: (p: Path) => boolean\n  add?: (ignore: string) => void\n}\n\nconst defaultPlatform: NodeJS.Platform =\n  (\n    typeof process === 'object' &&\n    process &&\n    typeof process.platform === 'string'\n  ) ?\n    process.platform\n  : 'linux'\n\n/**\n * Class used to process ignored patterns\n */\nexport class Ignore implements IgnoreLike {\n  relative: Minimatch[]\n  relativeChildren: Minimatch[]\n  absolute: Minimatch[]\n  absoluteChildren: Minimatch[]\n  platform: NodeJS.Platform\n  mmopts: MinimatchOptions\n\n  constructor(\n    ignored: string[],\n    {\n      nobrace,\n      nocase,\n      noext,\n      noglobstar,\n      platform = defaultPlatform,\n    }: GlobWalkerOpts,\n  ) {\n    this.relative = []\n    this.absolute = []\n    this.relativeChildren = []\n    this.absoluteChildren = []\n    this.platform = platform\n    this.mmopts = {\n      dot: true,\n      nobrace,\n      nocase,\n      noext,\n      noglobstar,\n      optimizationLevel: 2,\n      platform,\n      nocomment: true,\n      nonegate: true,\n    }\n    for (const ign of ignored) this.add(ign)\n  }\n\n  add(ign: string) {\n    // this is a little weird, but it gives us a clean set of optimized\n    // minimatch matchers, without getting tripped up if one of them\n    // ends in /** inside a brace section, and it's only inefficient at\n    // the start of the walk, not along it.\n    // It'd be nice if the Pattern class just had a .test() method, but\n    // handling globstars is a bit of a pita, and that code already lives\n    // in minimatch anyway.\n    // Another way would be if maybe Minimatch could take its set/globParts\n    // as an option, and then we could at least just use Pattern to test\n    // for absolute-ness.\n    // Yet another way, Minimatch could take an array of glob strings, and\n    // a cwd option, and do the right thing.\n    const mm = new Minimatch(ign, this.mmopts)\n    for (let i = 0; i < mm.set.length; i++) {\n      const parsed = mm.set[i]\n      const globParts = mm.globParts[i]\n      /* c8 ignore start */\n      if (!parsed || !globParts) {\n        throw new Error('invalid pattern object')\n      }\n      // strip off leading ./ portions\n      // https://github.com/isaacs/node-glob/issues/570\n      while (parsed[0] === '.' && globParts[0] === '.') {\n        parsed.shift()\n        globParts.shift()\n      }\n      /* c8 ignore stop */\n      const p = new Pattern(parsed, globParts, 0, this.platform)\n      const m = new Minimatch(p.globString(), this.mmopts)\n      const children = globParts[globParts.length - 1] === '**'\n      const absolute = p.isAbsolute()\n      if (absolute) this.absolute.push(m)\n      else this.relative.push(m)\n      if (children) {\n        if (absolute) this.absoluteChildren.push(m)\n        else this.relativeChildren.push(m)\n      }\n    }\n  }\n\n  ignored(p: Path): boolean {\n    const fullpath = p.fullpath()\n    const fullpaths = `${fullpath}/`\n    const relative = p.relative() || '.'\n    const relatives = `${relative}/`\n    for (const m of this.relative) {\n      if (m.match(relative) || m.match(relatives)) return true\n    }\n    for (const m of this.absolute) {\n      if (m.match(fullpath) || m.match(fullpaths)) return true\n    }\n    return false\n  }\n\n  childrenIgnored(p: Path): boolean {\n    const fullpath = p.fullpath() + '/'\n    const relative = (p.relative() || '.') + '/'\n    for (const m of this.relativeChildren) {\n      if (m.match(relative)) return true\n    }\n    for (const m of this.absoluteChildren) {\n      if (m.match(fullpath)) return true\n    }\n    return false\n  }\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/processor.js":{"lineLengths":[13,69,62,93,41,3,65,3,22,10,36,27,5,12,55,5,32,76,5,34,43,48,19,45,12,70,5,1,40,3,66,72,66,3,19,22,34,55,47,72,5,29,15,61,17,22,22,11,5,1,34,3,71,20,3,16,22,26,35,19,9,44,19,75,35,13,9,12,46,5,17,44,29,20,63,9,28,20,5,15,60,5,12,66,5,1,28,3,54,2,66,35,3,17,19,32,30,13,11,8,9,39,25,36,30,29,74,5,39,33,61,72,47,49,56,40,82,46,23,76,34,28,44,28,53,29,17,22,35,17,13,29,25,18,21,32,65,42,39,22,31,31,13,34,34,26,62,29,60,13,67,49,62,40,67,43,66,64,25,13,50,56,60,72,76,80,42,34,52,50,17,43,43,69,69,65,75,17,22,38,80,80,45,49,44,35,65,77,57,25,21,17,13,43,46,13,9,20,5,22,36,5,13,61,5,62,45,49,31,36,51,65,37,34,45,54,44,44,49,69,17,47,61,17,22,61,17,13,9,23,5,46,50,37,53,13,33,75,80,79,81,71,57,50,17,46,64,51,21,60,54,21,17,13,9,62,20,19,38,41,54,30,28,29,62,13,35,37,41,36,44,13,44,62,13,9,5,38,28,19,20,49,9,14,39,9,5,38,31,26,19,20,49,9,14,39,9,5,1,30,37],"data":{"version":3,"file":"processor.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/src/processor.ts"],"names":[],"mappings":"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","sourcesContent":["// synchronous utility for filtering entries and calculating subwalks\n\nimport { GLOBSTAR, MMRegExp } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { MMPattern, Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\n/**\n * A cache of which patterns have been processed for a given Path\n */\nexport class HasWalkedCache {\n  store: Map<string, Set<string>>\n  constructor(store: Map<string, Set<string>> = new Map()) {\n    this.store = store\n  }\n  copy() {\n    return new HasWalkedCache(new Map(this.store))\n  }\n  hasWalked(target: Path, pattern: Pattern) {\n    return this.store.get(target.fullpath())?.has(pattern.globString())\n  }\n  storeWalked(target: Path, pattern: Pattern) {\n    const fullpath = target.fullpath()\n    const cached = this.store.get(fullpath)\n    if (cached) cached.add(pattern.globString())\n    else this.store.set(fullpath, new Set([pattern.globString()]))\n  }\n}\n\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nexport class MatchRecord {\n  store: Map<Path, number> = new Map()\n  add(target: Path, absolute: boolean, ifDir: boolean) {\n    const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0)\n    const current = this.store.get(target)\n    this.store.set(target, current === undefined ? n : n & current)\n  }\n  // match, absolute, ifdir\n  entries(): [Path, boolean, boolean][] {\n    return [...this.store.entries()].map(([path, n]) => [\n      path,\n      !!(n & 2),\n      !!(n & 1),\n    ])\n  }\n}\n\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nexport class SubWalks {\n  store: Map<Path, Pattern[]> = new Map()\n  add(target: Path, pattern: Pattern) {\n    if (!target.canReaddir()) {\n      return\n    }\n    const subs = this.store.get(target)\n    if (subs) {\n      if (!subs.find(p => p.globString() === pattern.globString())) {\n        subs.push(pattern)\n      }\n    } else this.store.set(target, [pattern])\n  }\n  get(target: Path): Pattern[] {\n    const subs = this.store.get(target)\n    /* c8 ignore start */\n    if (!subs) {\n      throw new Error('attempting to walk unknown path')\n    }\n    /* c8 ignore stop */\n    return subs\n  }\n  entries(): [Path, Pattern[]][] {\n    return this.keys().map(k => [k, this.store.get(k) as Pattern[]])\n  }\n  keys(): Path[] {\n    return [...this.store.keys()].filter(t => t.canReaddir())\n  }\n}\n\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nexport class Processor {\n  hasWalkedCache: HasWalkedCache\n  matches = new MatchRecord()\n  subwalks = new SubWalks()\n  patterns?: Pattern[]\n  follow: boolean\n  dot: boolean\n  opts: GlobWalkerOpts\n\n  constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache) {\n    this.opts = opts\n    this.follow = !!opts.follow\n    this.dot = !!opts.dot\n    this.hasWalkedCache =\n      hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache()\n  }\n\n  processPatterns(target: Path, patterns: Pattern[]) {\n    this.patterns = patterns\n    const processingSet: [Path, Pattern][] = patterns.map(p => [target, p])\n\n    // map of paths to the magic-starting subwalks they need to walk\n    // first item in patterns is the filter\n\n    for (let [t, pattern] of processingSet) {\n      this.hasWalkedCache.storeWalked(t, pattern)\n\n      const root = pattern.root()\n      const absolute = pattern.isAbsolute() && this.opts.absolute !== false\n\n      // start absolute patterns at root\n      if (root) {\n        t = t.resolve(\n          root === '/' && this.opts.root !== undefined ?\n            this.opts.root\n          : root,\n        )\n        const rest = pattern.rest()\n        if (!rest) {\n          this.matches.add(t, true, false)\n          continue\n        } else {\n          pattern = rest\n        }\n      }\n\n      if (t.isENOENT()) continue\n\n      let p: MMPattern\n      let rest: Pattern | null\n      let changed = false\n      while (\n        typeof (p = pattern.pattern()) === 'string' &&\n        (rest = pattern.rest())\n      ) {\n        const c = t.resolve(p)\n        t = c\n        pattern = rest\n        changed = true\n      }\n      p = pattern.pattern()\n      rest = pattern.rest()\n      if (changed) {\n        if (this.hasWalkedCache.hasWalked(t, pattern)) continue\n        this.hasWalkedCache.storeWalked(t, pattern)\n      }\n\n      // now we have either a final string for a known entry,\n      // more strings for an unknown entry,\n      // or a pattern starting with magic, mounted on t.\n      if (typeof p === 'string') {\n        // must not be final entry, otherwise we would have\n        // concatenated it earlier.\n        const ifDir = p === '..' || p === '' || p === '.'\n        this.matches.add(t.resolve(p), absolute, ifDir)\n        continue\n      } else if (p === GLOBSTAR) {\n        // if no rest, match and subwalk pattern\n        // if rest, process rest and subwalk pattern\n        // if it's a symlink, but we didn't get here by way of a\n        // globstar match (meaning it's the first time THIS globstar\n        // has traversed a symlink), then we follow it. Otherwise, stop.\n        if (\n          !t.isSymbolicLink() ||\n          this.follow ||\n          pattern.checkFollowGlobstar()\n        ) {\n          this.subwalks.add(t, pattern)\n        }\n        const rp = rest?.pattern()\n        const rrest = rest?.rest()\n        if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n          // only HAS to be a dir if it ends in **/ or **/.\n          // but ending in ** will match files as well.\n          this.matches.add(t, absolute, rp === '' || rp === '.')\n        } else {\n          if (rp === '..') {\n            // this would mean you're matching **/.. at the fs root,\n            // and no thanks, I'm not gonna test that specific case.\n            /* c8 ignore start */\n            const tp = t.parent || t\n            /* c8 ignore stop */\n            if (!rrest) this.matches.add(tp, absolute, true)\n            else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n              this.subwalks.add(tp, rrest)\n            }\n          }\n        }\n      } else if (p instanceof RegExp) {\n        this.subwalks.add(t, pattern)\n      }\n    }\n\n    return this\n  }\n\n  subwalkTargets(): Path[] {\n    return this.subwalks.keys()\n  }\n\n  child() {\n    return new Processor(this.opts, this.hasWalkedCache)\n  }\n\n  // return a new Processor containing the subwalks for each\n  // child entry, and a set of matches, and\n  // a hasWalkedCache that's a copy of this one\n  // then we're going to call\n  filterEntries(parent: Path, entries: Path[]): Processor {\n    const patterns = this.subwalks.get(parent)\n    // put matches and entry walks into the results processor\n    const results = this.child()\n    for (const e of entries) {\n      for (const pattern of patterns) {\n        const absolute = pattern.isAbsolute()\n        const p = pattern.pattern()\n        const rest = pattern.rest()\n        if (p === GLOBSTAR) {\n          results.testGlobstar(e, pattern, rest, absolute)\n        } else if (p instanceof RegExp) {\n          results.testRegExp(e, p, rest, absolute)\n        } else {\n          results.testString(e, p, rest, absolute)\n        }\n      }\n    }\n    return results\n  }\n\n  testGlobstar(\n    e: Path,\n    pattern: Pattern,\n    rest: Pattern | null,\n    absolute: boolean,\n  ) {\n    if (this.dot || !e.name.startsWith('.')) {\n      if (!pattern.hasMore()) {\n        this.matches.add(e, absolute, false)\n      }\n      if (e.canReaddir()) {\n        // if we're in follow mode or it's not a symlink, just keep\n        // testing the same pattern. If there's more after the globstar,\n        // then this symlink consumes the globstar. If not, then we can\n        // follow at most ONE symlink along the way, so we mark it, which\n        // also checks to ensure that it wasn't already marked.\n        if (this.follow || !e.isSymbolicLink()) {\n          this.subwalks.add(e, pattern)\n        } else if (e.isSymbolicLink()) {\n          if (rest && pattern.checkFollowGlobstar()) {\n            this.subwalks.add(e, rest)\n          } else if (pattern.markFollowGlobstar()) {\n            this.subwalks.add(e, pattern)\n          }\n        }\n      }\n    }\n    // if the NEXT thing matches this entry, then also add\n    // the rest.\n    if (rest) {\n      const rp = rest.pattern()\n      if (\n        typeof rp === 'string' &&\n        // dots and empty were handled already\n        rp !== '..' &&\n        rp !== '' &&\n        rp !== '.'\n      ) {\n        this.testString(e, rp, rest.rest(), absolute)\n      } else if (rp === '..') {\n        /* c8 ignore start */\n        const ep = e.parent || e\n        /* c8 ignore stop */\n        this.subwalks.add(ep, rest)\n      } else if (rp instanceof RegExp) {\n        this.testRegExp(e, rp, rest.rest(), absolute)\n      }\n    }\n  }\n\n  testRegExp(\n    e: Path,\n    p: MMRegExp,\n    rest: Pattern | null,\n    absolute: boolean,\n  ) {\n    if (!p.test(e.name)) return\n    if (!rest) {\n      this.matches.add(e, absolute, false)\n    } else {\n      this.subwalks.add(e, rest)\n    }\n  }\n\n  testString(e: Path, p: string, rest: Pattern | null, absolute: boolean) {\n    // should never happen?\n    if (!e.isNamed(p)) return\n    if (!rest) {\n      this.matches.add(e, absolute, false)\n    } else {\n      this.subwalks.add(e, rest)\n    }\n  }\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/dist/commonjs/has-magic.js":{"lineLengths":[13,62,26,41,3,74,30,2,78,77,74,78,78,77,3,45,34,28,5,30,61,24,5,17,2,28,37],"data":{"version":3,"file":"has-magic.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/mocha/node_modules/glob/src/has-magic.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAGrC;;;;;;;;;;GAUG;AACI,MAAM,QAAQ,GAAG,CACtB,OAA0B,EAC1B,UAAuB,EAAE,EAChB,EAAE;IACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,IAAI,qBAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;YAAE,OAAO,IAAI,CAAA;IACvD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAXY,QAAA,QAAQ,YAWpB","sourcesContent":["import { Minimatch } from 'minimatch'\nimport { GlobOptions } from './glob.js'\n\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport const hasMagic = (\n  pattern: string | string[],\n  options: GlobOptions = {},\n): boolean => {\n  if (!Array.isArray(pattern)) {\n    pattern = [pattern]\n  }\n  for (const p of pattern) {\n    if (new Minimatch(p, options).hasMagic()) return true\n  }\n  return false\n}\n"]},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/get-caller-file/index.js":{"lineLengths":[13,69,69,2,58,51,46,44,208,5,55,68,34,51,54,35,56,54,75,5,2,33],"data":{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/get-caller-file/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,qEAAqE;AACrE,EAAE;AACF,0DAA0D;AAE1D,iBAAS,SAAS,aAAa,CAAC,QAAY;IAAZ,yBAAA,EAAA,YAAY;IAC1C,IAAI,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE;QACrC,MAAM,IAAI,SAAS,CAAC,kGAAkG,GAAG,QAAQ,GAAG,oCAAoC,GAAG,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;KACzM;IAED,IAAM,oBAAoB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,KAAK,CAAC,iBAAiB,GAAG,UAAC,CAAC,EAAE,KAAK,IAAM,OAAA,KAAK,EAAL,CAAK,CAAC;IAC/C,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAChC,KAAK,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;IAG/C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC/C,2BAA2B;QAC3B,gDAAgD;QAChD,8CAA8C;QAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,QAAQ,CAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;KAC7E;AACH,CAAC,CAAC"},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/browser-player-input-reader.ts":{"lineLengths":[103,3448,4,0,7798],"data":{"version":3,"mappings":";0zBAAA,gBAA4B,gBAC5B,sBAAsB,+BACtB,iBAAkB,0BAElB,iBAAqB,2BAmCrB,+BAAiC,6DAjCjC,iBAAI,kBAAAA,OAAS,EAIb,MAAM,eAAgB,CAVtB,MAUsB,gCACpB,QAAqC,CAAC,CACxC,CACC,OAA8D,YAC7D,gBAEF,MAAM,UAA6C,IAAI,IAEvD,MAAM,SAAW,CACf,iBAAkB,aAAAC,QACf,KAAK,EACL,UAAU,CAAC,MAAe,UAA2B,CACpD,GAAI,CAAC,UAAU,IAAI,KAAK,EAAG,CACzB,UAAU,IAAI,MAAO,IAAI,GAAK,CAChC,CACA,UAAU,IAAI,KAAK,GAAG,IAAI,OAAO,CACnC,CAAC,EACH,oBAAqB,aAAAA,QAClB,KAAK,EACL,UAAU,CAAC,MAAe,UAA2B,CACpD,UAAU,IAAI,KAAK,GAAG,OAAO,OAAO,CACtC,CAAC,CACL,EAGC,OAA8D,SAAW,CACxE,KAAM,QACR,EAIA,SAAS,uBAAwB,UAAY,CAC3C,IAAI,OAEJ,WAAW,UAAY,CACrB,OAAS,IAAI,2BAAAC,QACb,UAAU,MAAM,EAChB,SAAS,iBAAiB,aAAa,EACvC,SAAS,oBAAoB,aAAa,CAC5C,CAAC,EAED,SAAS,eAAgB,UAAY,CACnC,QAAQ,kDAAmD,UAAY,CACrE,GAAG,kDAAmD,UAAY,CAChE,MAAM,SAAW,aAAAD,QAAM,KAAK,EAC5B,OAAO,UAAU,QAAQ,KAGzB,oBAAO,SAAS,gBAAgB,EAAE,GAAG,KAAK,KAAK,eAC/C,oBAAO,SAAS,iBAAiB,UAAU,KAAK,CAAC,CAAC,EAAE,GAAG,MACrD,UACF,KACA,oBAAO,SAAS,iBAAiB,WAAW,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,OAAO,EAGrE,MAAM,gBAAkB,SAAS,iBAAiB,UAAU,KAAK,CAAC,EAGlE,gBAAgB,CAAE,IAAK,GAAI,CAAC,KAG5B,oBAAO,QAAQ,EAAE,GAAG,KAAK,KAAK,eAAe,kBAAK,GAAG,KAGrD,oBAAO,SAAS,mBAAmB,EAAE,GAAG,KAAK,KAAK,WAChD,QACA,aAAAA,QAAM,MAAM,IACd,KACA,oBAAO,SAAS,mBAAmB,EAAE,GAAG,KAAK,KAAK,WAChD,WACA,eACF,CACF,CAAC,CACH,CAAC,EAED,QAAQ,+CAAgD,UAAY,CAClE,GAAG,kDAAmD,UAAY,CAChE,MAAM,SAAW,aAAAA,QAAM,KAAK,EAC5B,OAAO,UAAU,QAAQ,EAEzB,MAAM,gBAAkB,SAAS,iBAAiB,UAAU,KAAK,CAAC,EAClE,MAAM,aAAe,SAAS,iBAAiB,WAAW,KAAK,CAAC,EAGhE,MAAM,YAAc,IAAI,gBACxB,YAAY,QAAU,CAAE,OAAQ,GAAI,EACpC,aAAa,CAAE,OAAQ,WAAY,CAAC,KAGpC,oBAAO,QAAQ,EAAE,GAAG,KAAK,KAAK,eAAe,kBAAK,KAAK,KAGvD,oBAAO,SAAS,mBAAmB,EAAE,GAAG,KAAK,KAAK,WAChD,QACA,YACF,KACA,oBAAO,SAAS,mBAAmB,EAAE,GAAG,KAAK,KAAK,WAChD,WACA,eACF,CACF,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC","names":["sinonChai","sinon","DOMPlayerInputReader"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/browser-player-input-reader.ts"],"sourcesContent":["import { expect, use } from 'chai';\nimport sinonChai from 'sinon-chai';\nimport sinon from 'sinon';\n\nimport { Move } from '../../src/types';\n\nuse(sinonChai);\n\n// Set up minimal DOM globals before importing the browser module.\n// The browser player-input-reader expects `document.body` and `HTMLElement`.\nclass MockHTMLElement {\n  dataset: { [key: string]: string } = {};\n}\n(global as unknown as { HTMLElement: typeof MockHTMLElement }).HTMLElement =\n  MockHTMLElement;\n\nconst listeners: Map<string, Set<EventListener>> = new Map();\n\nconst mockBody = {\n  addEventListener: sinon\n    .stub()\n    .callsFake((event: string, handler: EventListener) => {\n      if (!listeners.has(event)) {\n        listeners.set(event, new Set());\n      }\n      listeners.get(event)?.add(handler);\n    }),\n  removeEventListener: sinon\n    .stub()\n    .callsFake((event: string, handler: EventListener) => {\n      listeners.get(event)?.delete(handler);\n    }),\n};\n\n// Set up the global `document` before importing the module under test.\n(global as unknown as { document: { body: typeof mockBody } }).document = {\n  body: mockBody,\n};\n\nimport DOMPlayerInputReader from '../../src/browser/player-input-reader';\n\ndescribe('DOMPlayerInputReader', function () {\n  let reader: DOMPlayerInputReader;\n\n  beforeEach(function () {\n    reader = new DOMPlayerInputReader();\n    listeners.clear();\n    mockBody.addEventListener.resetHistory();\n    mockBody.removeEventListener.resetHistory();\n  });\n\n  describe('#readInput()', function () {\n    context('when a keypress event fires with a valid action', function () {\n      it('should remove both keypress and click listeners', function () {\n        const callback = sinon.stub();\n        reader.readInput(callback);\n\n        // Verify both listeners were added.\n        expect(mockBody.addEventListener).to.have.been.calledTwice;\n        expect(mockBody.addEventListener.firstCall.args[0]).to.equal(\n          'keypress',\n        );\n        expect(mockBody.addEventListener.secondCall.args[0]).to.equal('click');\n\n        // Get the keypress handler that was registered.\n        const keypressHandler = mockBody.addEventListener.firstCall.args[1];\n\n        // Simulate a keypress with 'h' (Hit).\n        keypressHandler({ key: 'h' });\n\n        // The callback should have been called with Hit.\n        expect(callback).to.have.been.calledOnceWith(Move.Hit);\n\n        // Both listeners should have been removed.\n        expect(mockBody.removeEventListener).to.have.been.calledWith(\n          'click',\n          sinon.match.func,\n        );\n        expect(mockBody.removeEventListener).to.have.been.calledWith(\n          'keypress',\n          keypressHandler,\n        );\n      });\n    });\n\n    context('when a click event fires with a valid action', function () {\n      it('should remove both click and keypress listeners', function () {\n        const callback = sinon.stub();\n        reader.readInput(callback);\n\n        const keypressHandler = mockBody.addEventListener.firstCall.args[1];\n        const clickHandler = mockBody.addEventListener.secondCall.args[1];\n\n        // Simulate a click on an element with data-action=\"s\" (Stand).\n        const mockElement = new MockHTMLElement();\n        mockElement.dataset = { action: 's' };\n        clickHandler({ target: mockElement });\n\n        // The callback should have been called with Stand.\n        expect(callback).to.have.been.calledOnceWith(Move.Stand);\n\n        // Both listeners should have been removed.\n        expect(mockBody.removeEventListener).to.have.been.calledWith(\n          'click',\n          clickHandler,\n        );\n        expect(mockBody.removeEventListener).to.have.been.calledWith(\n          'keypress',\n          keypressHandler,\n        );\n      });\n    });\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/chai/index.js":{"lineLengths":[90,111101,4,0,304558],"data":{"version":3,"mappings":"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","names":["__defProp","__name","__export","_AssertionError","_Assertion","_PluginEvent","_PluginAddChainableMethodEvent","exports"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/chai/index.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// lib/chai/utils/index.js\nvar utils_exports = {};\n__export(utils_exports, {\n  addChainableMethod: () => addChainableMethod,\n  addLengthGuard: () => addLengthGuard,\n  addMethod: () => addMethod,\n  addProperty: () => addProperty,\n  checkError: () => check_error_exports,\n  compareByInspect: () => compareByInspect,\n  eql: () => deep_eql_default,\n  events: () => events,\n  expectTypes: () => expectTypes,\n  flag: () => flag,\n  getActual: () => getActual,\n  getMessage: () => getMessage2,\n  getName: () => getName,\n  getOperator: () => getOperator,\n  getOwnEnumerableProperties: () => getOwnEnumerableProperties,\n  getOwnEnumerablePropertySymbols: () => getOwnEnumerablePropertySymbols,\n  getPathInfo: () => getPathInfo,\n  hasProperty: () => hasProperty,\n  inspect: () => inspect2,\n  isNaN: () => isNaN2,\n  isNumeric: () => isNumeric,\n  isProxyEnabled: () => isProxyEnabled,\n  isRegExp: () => isRegExp2,\n  objDisplay: () => objDisplay,\n  overwriteChainableMethod: () => overwriteChainableMethod,\n  overwriteMethod: () => overwriteMethod,\n  overwriteProperty: () => overwriteProperty,\n  proxify: () => proxify,\n  test: () => test,\n  transferFlags: () => transferFlags,\n  type: () => type\n});\n\n// node_modules/check-error/index.js\nvar check_error_exports = {};\n__export(check_error_exports, {\n  compatibleConstructor: () => compatibleConstructor,\n  compatibleInstance: () => compatibleInstance,\n  compatibleMessage: () => compatibleMessage,\n  getConstructorName: () => getConstructorName,\n  getMessage: () => getMessage\n});\nfunction isErrorInstance(obj) {\n  return obj instanceof Error || Object.prototype.toString.call(obj) === \"[object Error]\";\n}\n__name(isErrorInstance, \"isErrorInstance\");\nfunction isRegExp(obj) {\n  return Object.prototype.toString.call(obj) === \"[object RegExp]\";\n}\n__name(isRegExp, \"isRegExp\");\nfunction compatibleInstance(thrown, errorLike) {\n  return isErrorInstance(errorLike) && thrown === errorLike;\n}\n__name(compatibleInstance, \"compatibleInstance\");\nfunction compatibleConstructor(thrown, errorLike) {\n  if (isErrorInstance(errorLike)) {\n    return thrown.constructor === errorLike.constructor || thrown instanceof errorLike.constructor;\n  } else if ((typeof errorLike === \"object\" || typeof errorLike === \"function\") && errorLike.prototype) {\n    return thrown.constructor === errorLike || thrown instanceof errorLike;\n  }\n  return false;\n}\n__name(compatibleConstructor, \"compatibleConstructor\");\nfunction compatibleMessage(thrown, errMatcher) {\n  const comparisonString = typeof thrown === \"string\" ? thrown : thrown.message;\n  if (isRegExp(errMatcher)) {\n    return errMatcher.test(comparisonString);\n  } else if (typeof errMatcher === \"string\") {\n    return comparisonString.indexOf(errMatcher) !== -1;\n  }\n  return false;\n}\n__name(compatibleMessage, \"compatibleMessage\");\nfunction getConstructorName(errorLike) {\n  let constructorName = errorLike;\n  if (isErrorInstance(errorLike)) {\n    constructorName = errorLike.constructor.name;\n  } else if (typeof errorLike === \"function\") {\n    constructorName = errorLike.name;\n    if (constructorName === \"\") {\n      const newConstructorName = new errorLike().name;\n      constructorName = newConstructorName || constructorName;\n    }\n  }\n  return constructorName;\n}\n__name(getConstructorName, \"getConstructorName\");\nfunction getMessage(errorLike) {\n  let msg = \"\";\n  if (errorLike && errorLike.message) {\n    msg = errorLike.message;\n  } else if (typeof errorLike === \"string\") {\n    msg = errorLike;\n  }\n  return msg;\n}\n__name(getMessage, \"getMessage\");\n\n// lib/chai/utils/flag.js\nfunction flag(obj, key, value) {\n  let flags = obj.__flags || (obj.__flags = /* @__PURE__ */ Object.create(null));\n  if (arguments.length === 3) {\n    flags[key] = value;\n  } else {\n    return flags[key];\n  }\n}\n__name(flag, \"flag\");\n\n// lib/chai/utils/test.js\nfunction test(obj, args) {\n  let negate = flag(obj, \"negate\"), expr = args[0];\n  return negate ? !expr : expr;\n}\n__name(test, \"test\");\n\n// lib/chai/utils/type-detect.js\nfunction type(obj) {\n  if (typeof obj === \"undefined\") {\n    return \"undefined\";\n  }\n  if (obj === null) {\n    return \"null\";\n  }\n  const stringTag = obj[Symbol.toStringTag];\n  if (typeof stringTag === \"string\") {\n    return stringTag;\n  }\n  const type3 = Object.prototype.toString.call(obj).slice(8, -1);\n  return type3;\n}\n__name(type, \"type\");\n\n// node_modules/assertion-error/index.js\nvar canElideFrames = \"captureStackTrace\" in Error;\nvar _AssertionError = class _AssertionError extends Error {\n  constructor(message = \"Unspecified AssertionError\", props, ssf) {\n    super(message);\n    __publicField(this, \"message\");\n    this.message = message;\n    if (canElideFrames) {\n      Error.captureStackTrace(this, ssf || _AssertionError);\n    }\n    for (const key in props) {\n      if (!(key in this)) {\n        this[key] = props[key];\n      }\n    }\n  }\n  get name() {\n    return \"AssertionError\";\n  }\n  get ok() {\n    return false;\n  }\n  toJSON(stack) {\n    return {\n      ...this,\n      name: this.name,\n      message: this.message,\n      ok: false,\n      stack: stack !== false ? this.stack : void 0\n    };\n  }\n};\n__name(_AssertionError, \"AssertionError\");\nvar AssertionError = _AssertionError;\n\n// lib/chai/utils/expectTypes.js\nfunction expectTypes(obj, types) {\n  let flagMsg = flag(obj, \"message\");\n  let ssfi = flag(obj, \"ssfi\");\n  flagMsg = flagMsg ? flagMsg + \": \" : \"\";\n  obj = flag(obj, \"object\");\n  types = types.map(function(t) {\n    return t.toLowerCase();\n  });\n  types.sort();\n  let str = types.map(function(t, index) {\n    let art = ~[\"a\", \"e\", \"i\", \"o\", \"u\"].indexOf(t.charAt(0)) ? \"an\" : \"a\";\n    let or = types.length > 1 && index === types.length - 1 ? \"or \" : \"\";\n    return or + art + \" \" + t;\n  }).join(\", \");\n  let objType = type(obj).toLowerCase();\n  if (!types.some(function(expected) {\n    return objType === expected;\n  })) {\n    throw new AssertionError(\n      flagMsg + \"object tested must be \" + str + \", but \" + objType + \" given\",\n      void 0,\n      ssfi\n    );\n  }\n}\n__name(expectTypes, \"expectTypes\");\n\n// lib/chai/utils/getActual.js\nfunction getActual(obj, args) {\n  return args.length > 4 ? args[4] : obj._obj;\n}\n__name(getActual, \"getActual\");\n\n// node_modules/loupe/lib/helpers.js\nvar ansiColors = {\n  bold: [\"1\", \"22\"],\n  dim: [\"2\", \"22\"],\n  italic: [\"3\", \"23\"],\n  underline: [\"4\", \"24\"],\n  // 5 & 6 are blinking\n  inverse: [\"7\", \"27\"],\n  hidden: [\"8\", \"28\"],\n  strike: [\"9\", \"29\"],\n  // 10-20 are fonts\n  // 21-29 are resets for 1-9\n  black: [\"30\", \"39\"],\n  red: [\"31\", \"39\"],\n  green: [\"32\", \"39\"],\n  yellow: [\"33\", \"39\"],\n  blue: [\"34\", \"39\"],\n  magenta: [\"35\", \"39\"],\n  cyan: [\"36\", \"39\"],\n  white: [\"37\", \"39\"],\n  brightblack: [\"30;1\", \"39\"],\n  brightred: [\"31;1\", \"39\"],\n  brightgreen: [\"32;1\", \"39\"],\n  brightyellow: [\"33;1\", \"39\"],\n  brightblue: [\"34;1\", \"39\"],\n  brightmagenta: [\"35;1\", \"39\"],\n  brightcyan: [\"36;1\", \"39\"],\n  brightwhite: [\"37;1\", \"39\"],\n  grey: [\"90\", \"39\"]\n};\nvar styles = {\n  special: \"cyan\",\n  number: \"yellow\",\n  bigint: \"yellow\",\n  boolean: \"yellow\",\n  undefined: \"grey\",\n  null: \"bold\",\n  string: \"green\",\n  symbol: \"green\",\n  date: \"magenta\",\n  regexp: \"red\"\n};\nvar truncator = \"\\u2026\";\nfunction colorise(value, styleType) {\n  const color = ansiColors[styles[styleType]] || ansiColors[styleType] || \"\";\n  if (!color) {\n    return String(value);\n  }\n  return `\\x1B[${color[0]}m${String(value)}\\x1B[${color[1]}m`;\n}\n__name(colorise, \"colorise\");\nfunction normaliseOptions({\n  showHidden = false,\n  depth = 2,\n  colors = false,\n  customInspect = true,\n  showProxy = false,\n  maxArrayLength = Infinity,\n  breakLength = Infinity,\n  seen = [],\n  // eslint-disable-next-line no-shadow\n  truncate: truncate2 = Infinity,\n  stylize = String\n} = {}, inspect3) {\n  const options = {\n    showHidden: Boolean(showHidden),\n    depth: Number(depth),\n    colors: Boolean(colors),\n    customInspect: Boolean(customInspect),\n    showProxy: Boolean(showProxy),\n    maxArrayLength: Number(maxArrayLength),\n    breakLength: Number(breakLength),\n    truncate: Number(truncate2),\n    seen,\n    inspect: inspect3,\n    stylize\n  };\n  if (options.colors) {\n    options.stylize = colorise;\n  }\n  return options;\n}\n__name(normaliseOptions, \"normaliseOptions\");\nfunction isHighSurrogate(char) {\n  return char >= \"\\uD800\" && char <= \"\\uDBFF\";\n}\n__name(isHighSurrogate, \"isHighSurrogate\");\nfunction truncate(string, length, tail = truncator) {\n  string = String(string);\n  const tailLength = tail.length;\n  const stringLength = string.length;\n  if (tailLength > length && stringLength > tailLength) {\n    return tail;\n  }\n  if (stringLength > length && stringLength > tailLength) {\n    let end = length - tailLength;\n    if (end > 0 && isHighSurrogate(string[end - 1])) {\n      end = end - 1;\n    }\n    return `${string.slice(0, end)}${tail}`;\n  }\n  return string;\n}\n__name(truncate, \"truncate\");\nfunction inspectList(list, options, inspectItem, separator = \", \") {\n  inspectItem = inspectItem || options.inspect;\n  const size = list.length;\n  if (size === 0)\n    return \"\";\n  const originalLength = options.truncate;\n  let output = \"\";\n  let peek = \"\";\n  let truncated = \"\";\n  for (let i = 0; i < size; i += 1) {\n    const last = i + 1 === list.length;\n    const secondToLast = i + 2 === list.length;\n    truncated = `${truncator}(${list.length - i})`;\n    const value = list[i];\n    options.truncate = originalLength - output.length - (last ? 0 : separator.length);\n    const string = peek || inspectItem(value, options) + (last ? \"\" : separator);\n    const nextLength = output.length + string.length;\n    const truncatedLength = nextLength + truncated.length;\n    if (last && nextLength > originalLength && output.length + truncated.length <= originalLength) {\n      break;\n    }\n    if (!last && !secondToLast && truncatedLength > originalLength) {\n      break;\n    }\n    peek = last ? \"\" : inspectItem(list[i + 1], options) + (secondToLast ? \"\" : separator);\n    if (!last && secondToLast && truncatedLength > originalLength && nextLength + peek.length > originalLength) {\n      break;\n    }\n    output += string;\n    if (!last && !secondToLast && nextLength + peek.length >= originalLength) {\n      truncated = `${truncator}(${list.length - i - 1})`;\n      break;\n    }\n    truncated = \"\";\n  }\n  return `${output}${truncated}`;\n}\n__name(inspectList, \"inspectList\");\nfunction quoteComplexKey(key) {\n  if (key.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)) {\n    return key;\n  }\n  return JSON.stringify(key).replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n}\n__name(quoteComplexKey, \"quoteComplexKey\");\nfunction inspectProperty([key, value], options) {\n  options.truncate -= 2;\n  if (typeof key === \"string\") {\n    key = quoteComplexKey(key);\n  } else if (typeof key !== \"number\") {\n    key = `[${options.inspect(key, options)}]`;\n  }\n  options.truncate -= key.length;\n  value = options.inspect(value, options);\n  return `${key}: ${value}`;\n}\n__name(inspectProperty, \"inspectProperty\");\n\n// node_modules/loupe/lib/array.js\nfunction inspectArray(array, options) {\n  const nonIndexProperties = Object.keys(array).slice(array.length);\n  if (!array.length && !nonIndexProperties.length)\n    return \"[]\";\n  options.truncate -= 4;\n  const listContents = inspectList(array, options);\n  options.truncate -= listContents.length;\n  let propertyContents = \"\";\n  if (nonIndexProperties.length) {\n    propertyContents = inspectList(nonIndexProperties.map((key) => [key, array[key]]), options, inspectProperty);\n  }\n  return `[ ${listContents}${propertyContents ? `, ${propertyContents}` : \"\"} ]`;\n}\n__name(inspectArray, \"inspectArray\");\n\n// node_modules/loupe/lib/typedarray.js\nvar getArrayName = /* @__PURE__ */ __name((array) => {\n  if (typeof Buffer === \"function\" && array instanceof Buffer) {\n    return \"Buffer\";\n  }\n  if (array[Symbol.toStringTag]) {\n    return array[Symbol.toStringTag];\n  }\n  return array.constructor.name;\n}, \"getArrayName\");\nfunction inspectTypedArray(array, options) {\n  const name = getArrayName(array);\n  options.truncate -= name.length + 4;\n  const nonIndexProperties = Object.keys(array).slice(array.length);\n  if (!array.length && !nonIndexProperties.length)\n    return `${name}[]`;\n  let output = \"\";\n  for (let i = 0; i < array.length; i++) {\n    const string = `${options.stylize(truncate(array[i], options.truncate), \"number\")}${i === array.length - 1 ? \"\" : \", \"}`;\n    options.truncate -= string.length;\n    if (array[i] !== array.length && options.truncate <= 3) {\n      output += `${truncator}(${array.length - array[i] + 1})`;\n      break;\n    }\n    output += string;\n  }\n  let propertyContents = \"\";\n  if (nonIndexProperties.length) {\n    propertyContents = inspectList(nonIndexProperties.map((key) => [key, array[key]]), options, inspectProperty);\n  }\n  return `${name}[ ${output}${propertyContents ? `, ${propertyContents}` : \"\"} ]`;\n}\n__name(inspectTypedArray, \"inspectTypedArray\");\n\n// node_modules/loupe/lib/date.js\nfunction inspectDate(dateObject, options) {\n  const stringRepresentation = dateObject.toJSON();\n  if (stringRepresentation === null) {\n    return \"Invalid Date\";\n  }\n  const split = stringRepresentation.split(\"T\");\n  const date = split[0];\n  return options.stylize(`${date}T${truncate(split[1], options.truncate - date.length - 1)}`, \"date\");\n}\n__name(inspectDate, \"inspectDate\");\n\n// node_modules/loupe/lib/function.js\nfunction inspectFunction(func, options) {\n  const functionType = func[Symbol.toStringTag] || \"Function\";\n  const name = func.name;\n  if (!name) {\n    return options.stylize(`[${functionType}]`, \"special\");\n  }\n  return options.stylize(`[${functionType} ${truncate(name, options.truncate - 11)}]`, \"special\");\n}\n__name(inspectFunction, \"inspectFunction\");\n\n// node_modules/loupe/lib/map.js\nfunction inspectMapEntry([key, value], options) {\n  options.truncate -= 4;\n  key = options.inspect(key, options);\n  options.truncate -= key.length;\n  value = options.inspect(value, options);\n  return `${key} => ${value}`;\n}\n__name(inspectMapEntry, \"inspectMapEntry\");\nfunction mapToEntries(map) {\n  const entries = [];\n  map.forEach((value, key) => {\n    entries.push([key, value]);\n  });\n  return entries;\n}\n__name(mapToEntries, \"mapToEntries\");\nfunction inspectMap(map, options) {\n  if (map.size === 0)\n    return \"Map{}\";\n  options.truncate -= 7;\n  return `Map{ ${inspectList(mapToEntries(map), options, inspectMapEntry)} }`;\n}\n__name(inspectMap, \"inspectMap\");\n\n// node_modules/loupe/lib/number.js\nvar isNaN = Number.isNaN || ((i) => i !== i);\nfunction inspectNumber(number, options) {\n  if (isNaN(number)) {\n    return options.stylize(\"NaN\", \"number\");\n  }\n  if (number === Infinity) {\n    return options.stylize(\"Infinity\", \"number\");\n  }\n  if (number === -Infinity) {\n    return options.stylize(\"-Infinity\", \"number\");\n  }\n  if (number === 0) {\n    return options.stylize(1 / number === Infinity ? \"+0\" : \"-0\", \"number\");\n  }\n  return options.stylize(truncate(String(number), options.truncate), \"number\");\n}\n__name(inspectNumber, \"inspectNumber\");\n\n// node_modules/loupe/lib/bigint.js\nfunction inspectBigInt(number, options) {\n  let nums = truncate(number.toString(), options.truncate - 1);\n  if (nums !== truncator)\n    nums += \"n\";\n  return options.stylize(nums, \"bigint\");\n}\n__name(inspectBigInt, \"inspectBigInt\");\n\n// node_modules/loupe/lib/regexp.js\nfunction inspectRegExp(value, options) {\n  const flags = value.toString().split(\"/\")[2];\n  const sourceLength = options.truncate - (2 + flags.length);\n  const source = value.source;\n  return options.stylize(`/${truncate(source, sourceLength)}/${flags}`, \"regexp\");\n}\n__name(inspectRegExp, \"inspectRegExp\");\n\n// node_modules/loupe/lib/set.js\nfunction arrayFromSet(set2) {\n  const values = [];\n  set2.forEach((value) => {\n    values.push(value);\n  });\n  return values;\n}\n__name(arrayFromSet, \"arrayFromSet\");\nfunction inspectSet(set2, options) {\n  if (set2.size === 0)\n    return \"Set{}\";\n  options.truncate -= 7;\n  return `Set{ ${inspectList(arrayFromSet(set2), options)} }`;\n}\n__name(inspectSet, \"inspectSet\");\n\n// node_modules/loupe/lib/string.js\nvar stringEscapeChars = new RegExp(\"['\\\\u0000-\\\\u001f\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]\", \"g\");\nvar escapeCharacters = {\n  \"\\b\": \"\\\\b\",\n  \"\t\": \"\\\\t\",\n  \"\\n\": \"\\\\n\",\n  \"\\f\": \"\\\\f\",\n  \"\\r\": \"\\\\r\",\n  \"'\": \"\\\\'\",\n  \"\\\\\": \"\\\\\\\\\"\n};\nvar hex = 16;\nvar unicodeLength = 4;\nfunction escape(char) {\n  return escapeCharacters[char] || `\\\\u${`0000${char.charCodeAt(0).toString(hex)}`.slice(-unicodeLength)}`;\n}\n__name(escape, \"escape\");\nfunction inspectString(string, options) {\n  if (stringEscapeChars.test(string)) {\n    string = string.replace(stringEscapeChars, escape);\n  }\n  return options.stylize(`'${truncate(string, options.truncate - 2)}'`, \"string\");\n}\n__name(inspectString, \"inspectString\");\n\n// node_modules/loupe/lib/symbol.js\nfunction inspectSymbol(value) {\n  if (\"description\" in Symbol.prototype) {\n    return value.description ? `Symbol(${value.description})` : \"Symbol()\";\n  }\n  return value.toString();\n}\n__name(inspectSymbol, \"inspectSymbol\");\n\n// node_modules/loupe/lib/promise.js\nvar getPromiseValue = /* @__PURE__ */ __name(() => \"Promise{\\u2026}\", \"getPromiseValue\");\nvar promise_default = getPromiseValue;\n\n// node_modules/loupe/lib/object.js\nfunction inspectObject(object, options) {\n  const properties = Object.getOwnPropertyNames(object);\n  const symbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : [];\n  if (properties.length === 0 && symbols.length === 0) {\n    return \"{}\";\n  }\n  options.truncate -= 4;\n  options.seen = options.seen || [];\n  if (options.seen.includes(object)) {\n    return \"[Circular]\";\n  }\n  options.seen.push(object);\n  const propertyContents = inspectList(properties.map((key) => [key, object[key]]), options, inspectProperty);\n  const symbolContents = inspectList(symbols.map((key) => [key, object[key]]), options, inspectProperty);\n  options.seen.pop();\n  let sep = \"\";\n  if (propertyContents && symbolContents) {\n    sep = \", \";\n  }\n  return `{ ${propertyContents}${sep}${symbolContents} }`;\n}\n__name(inspectObject, \"inspectObject\");\n\n// node_modules/loupe/lib/class.js\nvar toStringTag = typeof Symbol !== \"undefined\" && Symbol.toStringTag ? Symbol.toStringTag : false;\nfunction inspectClass(value, options) {\n  let name = \"\";\n  if (toStringTag && toStringTag in value) {\n    name = value[toStringTag];\n  }\n  name = name || value.constructor.name;\n  if (!name || name === \"_class\") {\n    name = \"<Anonymous Class>\";\n  }\n  options.truncate -= name.length;\n  return `${name}${inspectObject(value, options)}`;\n}\n__name(inspectClass, \"inspectClass\");\n\n// node_modules/loupe/lib/arguments.js\nfunction inspectArguments(args, options) {\n  if (args.length === 0)\n    return \"Arguments[]\";\n  options.truncate -= 13;\n  return `Arguments[ ${inspectList(args, options)} ]`;\n}\n__name(inspectArguments, \"inspectArguments\");\n\n// node_modules/loupe/lib/error.js\nvar errorKeys = [\n  \"stack\",\n  \"line\",\n  \"column\",\n  \"name\",\n  \"message\",\n  \"fileName\",\n  \"lineNumber\",\n  \"columnNumber\",\n  \"number\",\n  \"description\",\n  \"cause\"\n];\nfunction inspectObject2(error, options) {\n  const properties = Object.getOwnPropertyNames(error).filter((key) => errorKeys.indexOf(key) === -1);\n  const name = error.name;\n  options.truncate -= name.length;\n  let message = \"\";\n  if (typeof error.message === \"string\") {\n    message = truncate(error.message, options.truncate);\n  } else {\n    properties.unshift(\"message\");\n  }\n  message = message ? `: ${message}` : \"\";\n  options.truncate -= message.length + 5;\n  options.seen = options.seen || [];\n  if (options.seen.includes(error)) {\n    return \"[Circular]\";\n  }\n  options.seen.push(error);\n  const propertyContents = inspectList(properties.map((key) => [key, error[key]]), options, inspectProperty);\n  return `${name}${message}${propertyContents ? ` { ${propertyContents} }` : \"\"}`;\n}\n__name(inspectObject2, \"inspectObject\");\n\n// node_modules/loupe/lib/html.js\nfunction inspectAttribute([key, value], options) {\n  options.truncate -= 3;\n  if (!value) {\n    return `${options.stylize(String(key), \"yellow\")}`;\n  }\n  return `${options.stylize(String(key), \"yellow\")}=${options.stylize(`\"${value}\"`, \"string\")}`;\n}\n__name(inspectAttribute, \"inspectAttribute\");\nfunction inspectNodeCollection(collection, options) {\n  return inspectList(collection, options, inspectNode, \"\\n\");\n}\n__name(inspectNodeCollection, \"inspectNodeCollection\");\nfunction inspectNode(node, options) {\n  switch (node.nodeType) {\n    case 1:\n      return inspectHTML(node, options);\n    case 3:\n      return options.inspect(node.data, options);\n    default:\n      return options.inspect(node, options);\n  }\n}\n__name(inspectNode, \"inspectNode\");\nfunction inspectHTML(element, options) {\n  const properties = element.getAttributeNames();\n  const name = element.tagName.toLowerCase();\n  const head = options.stylize(`<${name}`, \"special\");\n  const headClose = options.stylize(`>`, \"special\");\n  const tail = options.stylize(`</${name}>`, \"special\");\n  options.truncate -= name.length * 2 + 5;\n  let propertyContents = \"\";\n  if (properties.length > 0) {\n    propertyContents += \" \";\n    propertyContents += inspectList(properties.map((key) => [key, element.getAttribute(key)]), options, inspectAttribute, \" \");\n  }\n  options.truncate -= propertyContents.length;\n  const truncate2 = options.truncate;\n  let children = inspectNodeCollection(element.children, options);\n  if (children && children.length > truncate2) {\n    children = `${truncator}(${element.children.length})`;\n  }\n  return `${head}${propertyContents}${headClose}${children}${tail}`;\n}\n__name(inspectHTML, \"inspectHTML\");\n\n// node_modules/loupe/lib/index.js\nvar symbolsSupported = typeof Symbol === \"function\" && typeof Symbol.for === \"function\";\nvar chaiInspect = symbolsSupported ? /* @__PURE__ */ Symbol.for(\"chai/inspect\") : \"@@chai/inspect\";\nvar nodeInspect = /* @__PURE__ */ Symbol.for(\"nodejs.util.inspect.custom\");\nvar constructorMap = /* @__PURE__ */ new WeakMap();\nvar stringTagMap = {};\nvar baseTypesMap = {\n  undefined: /* @__PURE__ */ __name((value, options) => options.stylize(\"undefined\", \"undefined\"), \"undefined\"),\n  null: /* @__PURE__ */ __name((value, options) => options.stylize(\"null\", \"null\"), \"null\"),\n  boolean: /* @__PURE__ */ __name((value, options) => options.stylize(String(value), \"boolean\"), \"boolean\"),\n  Boolean: /* @__PURE__ */ __name((value, options) => options.stylize(String(value), \"boolean\"), \"Boolean\"),\n  number: inspectNumber,\n  Number: inspectNumber,\n  bigint: inspectBigInt,\n  BigInt: inspectBigInt,\n  string: inspectString,\n  String: inspectString,\n  function: inspectFunction,\n  Function: inspectFunction,\n  symbol: inspectSymbol,\n  // A Symbol polyfill will return `Symbol` not `symbol` from typedetect\n  Symbol: inspectSymbol,\n  Array: inspectArray,\n  Date: inspectDate,\n  Map: inspectMap,\n  Set: inspectSet,\n  RegExp: inspectRegExp,\n  Promise: promise_default,\n  // WeakSet, WeakMap are totally opaque to us\n  WeakSet: /* @__PURE__ */ __name((value, options) => options.stylize(\"WeakSet{\\u2026}\", \"special\"), \"WeakSet\"),\n  WeakMap: /* @__PURE__ */ __name((value, options) => options.stylize(\"WeakMap{\\u2026}\", \"special\"), \"WeakMap\"),\n  Arguments: inspectArguments,\n  Int8Array: inspectTypedArray,\n  Uint8Array: inspectTypedArray,\n  Uint8ClampedArray: inspectTypedArray,\n  Int16Array: inspectTypedArray,\n  Uint16Array: inspectTypedArray,\n  Int32Array: inspectTypedArray,\n  Uint32Array: inspectTypedArray,\n  Float32Array: inspectTypedArray,\n  Float64Array: inspectTypedArray,\n  Generator: /* @__PURE__ */ __name(() => \"\", \"Generator\"),\n  DataView: /* @__PURE__ */ __name(() => \"\", \"DataView\"),\n  ArrayBuffer: /* @__PURE__ */ __name(() => \"\", \"ArrayBuffer\"),\n  Error: inspectObject2,\n  HTMLCollection: inspectNodeCollection,\n  NodeList: inspectNodeCollection\n};\nvar inspectCustom = /* @__PURE__ */ __name((value, options, type3, inspectFn) => {\n  if (chaiInspect in value && typeof value[chaiInspect] === \"function\") {\n    return value[chaiInspect](options);\n  }\n  if (nodeInspect in value && typeof value[nodeInspect] === \"function\") {\n    return value[nodeInspect](options.depth, options, inspectFn);\n  }\n  if (\"inspect\" in value && typeof value.inspect === \"function\") {\n    return value.inspect(options.depth, options);\n  }\n  if (\"constructor\" in value && constructorMap.has(value.constructor)) {\n    return constructorMap.get(value.constructor)(value, options);\n  }\n  if (stringTagMap[type3]) {\n    return stringTagMap[type3](value, options);\n  }\n  return \"\";\n}, \"inspectCustom\");\nvar toString = Object.prototype.toString;\nfunction inspect(value, opts = {}) {\n  const options = normaliseOptions(opts, inspect);\n  const { customInspect } = options;\n  let type3 = value === null ? \"null\" : typeof value;\n  if (type3 === \"object\") {\n    type3 = toString.call(value).slice(8, -1);\n  }\n  if (type3 in baseTypesMap) {\n    return baseTypesMap[type3](value, options);\n  }\n  if (customInspect && value) {\n    const output = inspectCustom(value, options, type3, inspect);\n    if (output) {\n      if (typeof output === \"string\")\n        return output;\n      return inspect(output, options);\n    }\n  }\n  const proto = value ? Object.getPrototypeOf(value) : false;\n  if (proto === Object.prototype || proto === null) {\n    return inspectObject(value, options);\n  }\n  if (value && typeof HTMLElement === \"function\" && value instanceof HTMLElement) {\n    return inspectHTML(value, options);\n  }\n  if (\"constructor\" in value) {\n    if (value.constructor !== Object) {\n      return inspectClass(value, options);\n    }\n    return inspectObject(value, options);\n  }\n  if (value === Object(value)) {\n    return inspectObject(value, options);\n  }\n  return options.stylize(String(value), type3);\n}\n__name(inspect, \"inspect\");\n\n// lib/chai/config.js\nvar config = {\n  /**\n   * ### config.includeStack\n   *\n   * User configurable property, influences whether stack trace\n   * is included in Assertion error message. Default of false\n   * suppresses stack trace in the error message.\n   *\n   *     chai.config.includeStack = true;  // enable stack on error\n   *\n   * @param {boolean}\n   * @public\n   */\n  includeStack: false,\n  /**\n   * ### config.showDiff\n   *\n   * User configurable property, influences whether or not\n   * the `showDiff` flag should be included in the thrown\n   * AssertionErrors. `false` will always be `false`; `true`\n   * will be true when the assertion has requested a diff\n   * be shown.\n   *\n   * @param {boolean}\n   * @public\n   */\n  showDiff: true,\n  /**\n   * ### config.truncateThreshold\n   *\n   * User configurable property, sets length threshold for actual and\n   * expected values in assertion errors. If this threshold is exceeded, for\n   * example for large data structures, the value is replaced with something\n   * like `[ Array(3) ]` or `{ Object (prop1, prop2) }`.\n   *\n   * Set it to zero if you want to disable truncating altogether.\n   *\n   * This is especially userful when doing assertions on arrays: having this\n   * set to a reasonable large value makes the failure messages readily\n   * inspectable.\n   *\n   *     chai.config.truncateThreshold = 0;  // disable truncating\n   *\n   * @param {number}\n   * @public\n   */\n  truncateThreshold: 40,\n  /**\n   * ### config.useProxy\n   *\n   * User configurable property, defines if chai will use a Proxy to throw\n   * an error when a non-existent property is read, which protects users\n   * from typos when using property-based assertions.\n   *\n   * Set it to false if you want to disable this feature.\n   *\n   *     chai.config.useProxy = false;  // disable use of Proxy\n   *\n   * This feature is automatically disabled regardless of this config value\n   * in environments that don't support proxies.\n   *\n   * @param {boolean}\n   * @public\n   */\n  useProxy: true,\n  /**\n   * ### config.proxyExcludedKeys\n   *\n   * User configurable property, defines which properties should be ignored\n   * instead of throwing an error if they do not exist on the assertion.\n   * This is only applied if the environment Chai is running in supports proxies and\n   * if the `useProxy` configuration setting is enabled.\n   * By default, `then` and `inspect` will not throw an error if they do not exist on the\n   * assertion object because the `.inspect` property is read by `util.inspect` (for example, when\n   * using `console.log` on the assertion object) and `.then` is necessary for promise type-checking.\n   *\n   *     // By default these keys will not throw an error if they do not exist on the assertion object\n   *     chai.config.proxyExcludedKeys = ['then', 'inspect'];\n   *\n   * @param {Array}\n   * @public\n   */\n  proxyExcludedKeys: [\"then\", \"catch\", \"inspect\", \"toJSON\"],\n  /**\n   * ### config.deepEqual\n   *\n   * User configurable property, defines which a custom function to use for deepEqual\n   * comparisons.\n   * By default, the function used is the one from the `deep-eql` package without custom comparator.\n   *\n   *     // use a custom comparator\n   *     chai.config.deepEqual = (expected, actual) => {\n   *         return chai.util.eql(expected, actual, {\n   *             comparator: (expected, actual) => {\n   *                 // for non number comparison, use the default behavior\n   *                 if(typeof expected !== 'number') return null;\n   *                 // allow a difference of 10 between compared numbers\n   *                 return typeof actual === 'number' && Math.abs(actual - expected) < 10\n   *             }\n   *         })\n   *     };\n   *\n   * @param {Function}\n   * @public\n   */\n  deepEqual: null\n};\n\n// lib/chai/utils/inspect.js\nfunction inspect2(obj, showHidden, depth, colors) {\n  let options = {\n    colors,\n    depth: typeof depth === \"undefined\" ? 2 : depth,\n    showHidden,\n    truncate: config.truncateThreshold ? config.truncateThreshold : Infinity\n  };\n  return inspect(obj, options);\n}\n__name(inspect2, \"inspect\");\n\n// lib/chai/utils/objDisplay.js\nfunction objDisplay(obj) {\n  let str = inspect2(obj), type3 = Object.prototype.toString.call(obj);\n  if (config.truncateThreshold && str.length >= config.truncateThreshold) {\n    if (type3 === \"[object Function]\") {\n      return !obj.name || obj.name === \"\" ? \"[Function]\" : \"[Function: \" + obj.name + \"]\";\n    } else if (type3 === \"[object Array]\") {\n      return \"[ Array(\" + obj.length + \") ]\";\n    } else if (type3 === \"[object Object]\") {\n      let keys = Object.keys(obj), kstr = keys.length > 2 ? keys.splice(0, 2).join(\", \") + \", ...\" : keys.join(\", \");\n      return \"{ Object (\" + kstr + \") }\";\n    } else {\n      return str;\n    }\n  } else {\n    return str;\n  }\n}\n__name(objDisplay, \"objDisplay\");\n\n// lib/chai/utils/getMessage.js\nfunction getMessage2(obj, args) {\n  let negate = flag(obj, \"negate\");\n  let val = flag(obj, \"object\");\n  let expected = args[3];\n  let actual = getActual(obj, args);\n  let msg = negate ? args[2] : args[1];\n  let flagMsg = flag(obj, \"message\");\n  if (typeof msg === \"function\") msg = msg();\n  msg = msg || \"\";\n  msg = msg.replace(/#\\{this\\}/g, function() {\n    return objDisplay(val);\n  }).replace(/#\\{act\\}/g, function() {\n    return objDisplay(actual);\n  }).replace(/#\\{exp\\}/g, function() {\n    return objDisplay(expected);\n  });\n  return flagMsg ? flagMsg + \": \" + msg : msg;\n}\n__name(getMessage2, \"getMessage\");\n\n// lib/chai/utils/transferFlags.js\nfunction transferFlags(assertion, object, includeAll) {\n  let flags = assertion.__flags || (assertion.__flags = /* @__PURE__ */ Object.create(null));\n  if (!object.__flags) {\n    object.__flags = /* @__PURE__ */ Object.create(null);\n  }\n  includeAll = arguments.length === 3 ? includeAll : true;\n  for (let flag3 in flags) {\n    if (includeAll || flag3 !== \"object\" && flag3 !== \"ssfi\" && flag3 !== \"lockSsfi\" && flag3 != \"message\") {\n      object.__flags[flag3] = flags[flag3];\n    }\n  }\n}\n__name(transferFlags, \"transferFlags\");\n\n// node_modules/deep-eql/index.js\nfunction type2(obj) {\n  if (typeof obj === \"undefined\") {\n    return \"undefined\";\n  }\n  if (obj === null) {\n    return \"null\";\n  }\n  const stringTag = obj[Symbol.toStringTag];\n  if (typeof stringTag === \"string\") {\n    return stringTag;\n  }\n  const sliceStart = 8;\n  const sliceEnd = -1;\n  return Object.prototype.toString.call(obj).slice(sliceStart, sliceEnd);\n}\n__name(type2, \"type\");\nfunction FakeMap() {\n  this._key = \"chai/deep-eql__\" + Math.random() + Date.now();\n}\n__name(FakeMap, \"FakeMap\");\nFakeMap.prototype = {\n  get: /* @__PURE__ */ __name(function get(key) {\n    return key[this._key];\n  }, \"get\"),\n  set: /* @__PURE__ */ __name(function set(key, value) {\n    if (Object.isExtensible(key)) {\n      Object.defineProperty(key, this._key, {\n        value,\n        configurable: true\n      });\n    }\n  }, \"set\")\n};\nvar MemoizeMap = typeof WeakMap === \"function\" ? WeakMap : FakeMap;\nfunction memoizeCompare(leftHandOperand, rightHandOperand, memoizeMap) {\n  if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) {\n    return null;\n  }\n  var leftHandMap = memoizeMap.get(leftHandOperand);\n  if (leftHandMap) {\n    var result = leftHandMap.get(rightHandOperand);\n    if (typeof result === \"boolean\") {\n      return result;\n    }\n  }\n  return null;\n}\n__name(memoizeCompare, \"memoizeCompare\");\nfunction memoizeSet(leftHandOperand, rightHandOperand, memoizeMap, result) {\n  if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) {\n    return;\n  }\n  var leftHandMap = memoizeMap.get(leftHandOperand);\n  if (leftHandMap) {\n    leftHandMap.set(rightHandOperand, result);\n  } else {\n    leftHandMap = new MemoizeMap();\n    leftHandMap.set(rightHandOperand, result);\n    memoizeMap.set(leftHandOperand, leftHandMap);\n  }\n}\n__name(memoizeSet, \"memoizeSet\");\nvar deep_eql_default = deepEqual;\nfunction deepEqual(leftHandOperand, rightHandOperand, options) {\n  if (options && options.comparator) {\n    return extensiveDeepEqual(leftHandOperand, rightHandOperand, options);\n  }\n  var simpleResult = simpleEqual(leftHandOperand, rightHandOperand);\n  if (simpleResult !== null) {\n    return simpleResult;\n  }\n  return extensiveDeepEqual(leftHandOperand, rightHandOperand, options);\n}\n__name(deepEqual, \"deepEqual\");\nfunction simpleEqual(leftHandOperand, rightHandOperand) {\n  if (leftHandOperand === rightHandOperand) {\n    return leftHandOperand !== 0 || 1 / leftHandOperand === 1 / rightHandOperand;\n  }\n  if (leftHandOperand !== leftHandOperand && // eslint-disable-line no-self-compare\n  rightHandOperand !== rightHandOperand) {\n    return true;\n  }\n  if (isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) {\n    return false;\n  }\n  return null;\n}\n__name(simpleEqual, \"simpleEqual\");\nfunction extensiveDeepEqual(leftHandOperand, rightHandOperand, options) {\n  options = options || {};\n  options.memoize = options.memoize === false ? false : options.memoize || new MemoizeMap();\n  var comparator = options && options.comparator;\n  var memoizeResultLeft = memoizeCompare(leftHandOperand, rightHandOperand, options.memoize);\n  if (memoizeResultLeft !== null) {\n    return memoizeResultLeft;\n  }\n  var memoizeResultRight = memoizeCompare(rightHandOperand, leftHandOperand, options.memoize);\n  if (memoizeResultRight !== null) {\n    return memoizeResultRight;\n  }\n  if (comparator) {\n    var comparatorResult = comparator(leftHandOperand, rightHandOperand);\n    if (comparatorResult === false || comparatorResult === true) {\n      memoizeSet(leftHandOperand, rightHandOperand, options.memoize, comparatorResult);\n      return comparatorResult;\n    }\n    var simpleResult = simpleEqual(leftHandOperand, rightHandOperand);\n    if (simpleResult !== null) {\n      return simpleResult;\n    }\n  }\n  var leftHandType = type2(leftHandOperand);\n  if (leftHandType !== type2(rightHandOperand)) {\n    memoizeSet(leftHandOperand, rightHandOperand, options.memoize, false);\n    return false;\n  }\n  memoizeSet(leftHandOperand, rightHandOperand, options.memoize, true);\n  var result = extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options);\n  memoizeSet(leftHandOperand, rightHandOperand, options.memoize, result);\n  return result;\n}\n__name(extensiveDeepEqual, \"extensiveDeepEqual\");\nfunction extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options) {\n  switch (leftHandType) {\n    case \"String\":\n    case \"Number\":\n    case \"Boolean\":\n    case \"Date\":\n      return deepEqual(leftHandOperand.valueOf(), rightHandOperand.valueOf());\n    case \"Promise\":\n    case \"Symbol\":\n    case \"function\":\n    case \"WeakMap\":\n    case \"WeakSet\":\n      return leftHandOperand === rightHandOperand;\n    case \"Error\":\n      return keysEqual(leftHandOperand, rightHandOperand, [\"name\", \"message\", \"code\"], options);\n    case \"Arguments\":\n    case \"Int8Array\":\n    case \"Uint8Array\":\n    case \"Uint8ClampedArray\":\n    case \"Int16Array\":\n    case \"Uint16Array\":\n    case \"Int32Array\":\n    case \"Uint32Array\":\n    case \"Float32Array\":\n    case \"Float64Array\":\n    case \"Array\":\n      return iterableEqual(leftHandOperand, rightHandOperand, options);\n    case \"RegExp\":\n      return regexpEqual(leftHandOperand, rightHandOperand);\n    case \"Generator\":\n      return generatorEqual(leftHandOperand, rightHandOperand, options);\n    case \"DataView\":\n      return iterableEqual(new Uint8Array(leftHandOperand.buffer), new Uint8Array(rightHandOperand.buffer), options);\n    case \"ArrayBuffer\":\n      return iterableEqual(new Uint8Array(leftHandOperand), new Uint8Array(rightHandOperand), options);\n    case \"Set\":\n      return entriesEqual(leftHandOperand, rightHandOperand, options);\n    case \"Map\":\n      return entriesEqual(leftHandOperand, rightHandOperand, options);\n    case \"Temporal.PlainDate\":\n    case \"Temporal.PlainTime\":\n    case \"Temporal.PlainDateTime\":\n    case \"Temporal.Instant\":\n    case \"Temporal.ZonedDateTime\":\n    case \"Temporal.PlainYearMonth\":\n    case \"Temporal.PlainMonthDay\":\n      return leftHandOperand.equals(rightHandOperand);\n    case \"Temporal.Duration\":\n      return leftHandOperand.total(\"nanoseconds\") === rightHandOperand.total(\"nanoseconds\");\n    case \"Temporal.TimeZone\":\n    case \"Temporal.Calendar\":\n      return leftHandOperand.toString() === rightHandOperand.toString();\n    default:\n      return objectEqual(leftHandOperand, rightHandOperand, options);\n  }\n}\n__name(extensiveDeepEqualByType, \"extensiveDeepEqualByType\");\nfunction regexpEqual(leftHandOperand, rightHandOperand) {\n  return leftHandOperand.toString() === rightHandOperand.toString();\n}\n__name(regexpEqual, \"regexpEqual\");\nfunction entriesEqual(leftHandOperand, rightHandOperand, options) {\n  try {\n    if (leftHandOperand.size !== rightHandOperand.size) {\n      return false;\n    }\n    if (leftHandOperand.size === 0) {\n      return true;\n    }\n  } catch (sizeError) {\n    return false;\n  }\n  var leftHandItems = [];\n  var rightHandItems = [];\n  leftHandOperand.forEach(/* @__PURE__ */ __name(function gatherEntries(key, value) {\n    leftHandItems.push([key, value]);\n  }, \"gatherEntries\"));\n  rightHandOperand.forEach(/* @__PURE__ */ __name(function gatherEntries(key, value) {\n    rightHandItems.push([key, value]);\n  }, \"gatherEntries\"));\n  return iterableEqual(leftHandItems.sort(), rightHandItems.sort(), options);\n}\n__name(entriesEqual, \"entriesEqual\");\nfunction iterableEqual(leftHandOperand, rightHandOperand, options) {\n  var length = leftHandOperand.length;\n  if (length !== rightHandOperand.length) {\n    return false;\n  }\n  if (length === 0) {\n    return true;\n  }\n  var index = -1;\n  while (++index < length) {\n    if (deepEqual(leftHandOperand[index], rightHandOperand[index], options) === false) {\n      return false;\n    }\n  }\n  return true;\n}\n__name(iterableEqual, \"iterableEqual\");\nfunction generatorEqual(leftHandOperand, rightHandOperand, options) {\n  return iterableEqual(getGeneratorEntries(leftHandOperand), getGeneratorEntries(rightHandOperand), options);\n}\n__name(generatorEqual, \"generatorEqual\");\nfunction hasIteratorFunction(target) {\n  return typeof Symbol !== \"undefined\" && typeof target === \"object\" && typeof Symbol.iterator !== \"undefined\" && typeof target[Symbol.iterator] === \"function\";\n}\n__name(hasIteratorFunction, \"hasIteratorFunction\");\nfunction getIteratorEntries(target) {\n  if (hasIteratorFunction(target)) {\n    try {\n      return getGeneratorEntries(target[Symbol.iterator]());\n    } catch (iteratorError) {\n      return [];\n    }\n  }\n  return [];\n}\n__name(getIteratorEntries, \"getIteratorEntries\");\nfunction getGeneratorEntries(generator) {\n  var generatorResult = generator.next();\n  var accumulator = [generatorResult.value];\n  while (generatorResult.done === false) {\n    generatorResult = generator.next();\n    accumulator.push(generatorResult.value);\n  }\n  return accumulator;\n}\n__name(getGeneratorEntries, \"getGeneratorEntries\");\nfunction getEnumerableKeys(target) {\n  var keys = [];\n  for (var key in target) {\n    keys.push(key);\n  }\n  return keys;\n}\n__name(getEnumerableKeys, \"getEnumerableKeys\");\nfunction getEnumerableSymbols(target) {\n  var keys = [];\n  var allKeys = Object.getOwnPropertySymbols(target);\n  for (var i = 0; i < allKeys.length; i += 1) {\n    var key = allKeys[i];\n    if (Object.getOwnPropertyDescriptor(target, key).enumerable) {\n      keys.push(key);\n    }\n  }\n  return keys;\n}\n__name(getEnumerableSymbols, \"getEnumerableSymbols\");\nfunction keysEqual(leftHandOperand, rightHandOperand, keys, options) {\n  var length = keys.length;\n  if (length === 0) {\n    return true;\n  }\n  for (var i = 0; i < length; i += 1) {\n    if (deepEqual(leftHandOperand[keys[i]], rightHandOperand[keys[i]], options) === false) {\n      return false;\n    }\n  }\n  return true;\n}\n__name(keysEqual, \"keysEqual\");\nfunction objectEqual(leftHandOperand, rightHandOperand, options) {\n  var leftHandKeys = getEnumerableKeys(leftHandOperand);\n  var rightHandKeys = getEnumerableKeys(rightHandOperand);\n  var leftHandSymbols = getEnumerableSymbols(leftHandOperand);\n  var rightHandSymbols = getEnumerableSymbols(rightHandOperand);\n  leftHandKeys = leftHandKeys.concat(leftHandSymbols);\n  rightHandKeys = rightHandKeys.concat(rightHandSymbols);\n  if (leftHandKeys.length && leftHandKeys.length === rightHandKeys.length) {\n    if (iterableEqual(mapSymbols(leftHandKeys).sort(), mapSymbols(rightHandKeys).sort()) === false) {\n      return false;\n    }\n    return keysEqual(leftHandOperand, rightHandOperand, leftHandKeys, options);\n  }\n  var leftHandEntries = getIteratorEntries(leftHandOperand);\n  var rightHandEntries = getIteratorEntries(rightHandOperand);\n  if (leftHandEntries.length && leftHandEntries.length === rightHandEntries.length) {\n    leftHandEntries.sort();\n    rightHandEntries.sort();\n    return iterableEqual(leftHandEntries, rightHandEntries, options);\n  }\n  if (leftHandKeys.length === 0 && leftHandEntries.length === 0 && rightHandKeys.length === 0 && rightHandEntries.length === 0) {\n    return true;\n  }\n  return false;\n}\n__name(objectEqual, \"objectEqual\");\nfunction isPrimitive(value) {\n  return value === null || typeof value !== \"object\";\n}\n__name(isPrimitive, \"isPrimitive\");\nfunction mapSymbols(arr) {\n  return arr.map(/* @__PURE__ */ __name(function mapSymbol(entry) {\n    if (typeof entry === \"symbol\") {\n      return entry.toString();\n    }\n    return entry;\n  }, \"mapSymbol\"));\n}\n__name(mapSymbols, \"mapSymbols\");\n\n// node_modules/pathval/index.js\nfunction hasProperty(obj, name) {\n  if (typeof obj === \"undefined\" || obj === null) {\n    return false;\n  }\n  return name in Object(obj);\n}\n__name(hasProperty, \"hasProperty\");\nfunction parsePath(path) {\n  const str = path.replace(/([^\\\\])\\[/g, \"$1.[\");\n  const parts = str.match(/(\\\\\\.|[^.]+?)+/g);\n  return parts.map((value) => {\n    if (value === \"constructor\" || value === \"__proto__\" || value === \"prototype\") {\n      return {};\n    }\n    const regexp = /^\\[(\\d+)\\]$/;\n    const mArr = regexp.exec(value);\n    let parsed = null;\n    if (mArr) {\n      parsed = { i: parseFloat(mArr[1]) };\n    } else {\n      parsed = { p: value.replace(/\\\\([.[\\]])/g, \"$1\") };\n    }\n    return parsed;\n  });\n}\n__name(parsePath, \"parsePath\");\nfunction internalGetPathValue(obj, parsed, pathDepth) {\n  let temporaryValue = obj;\n  let res = null;\n  pathDepth = typeof pathDepth === \"undefined\" ? parsed.length : pathDepth;\n  for (let i = 0; i < pathDepth; i++) {\n    const part = parsed[i];\n    if (temporaryValue) {\n      if (typeof part.p === \"undefined\") {\n        temporaryValue = temporaryValue[part.i];\n      } else {\n        temporaryValue = temporaryValue[part.p];\n      }\n      if (i === pathDepth - 1) {\n        res = temporaryValue;\n      }\n    }\n  }\n  return res;\n}\n__name(internalGetPathValue, \"internalGetPathValue\");\nfunction getPathInfo(obj, path) {\n  const parsed = parsePath(path);\n  const last = parsed[parsed.length - 1];\n  const info = {\n    parent: parsed.length > 1 ? internalGetPathValue(obj, parsed, parsed.length - 1) : obj,\n    name: last.p || last.i,\n    value: internalGetPathValue(obj, parsed)\n  };\n  info.exists = hasProperty(info.parent, info.name);\n  return info;\n}\n__name(getPathInfo, \"getPathInfo\");\n\n// lib/chai/assertion.js\nvar _Assertion = class _Assertion {\n  /**\n   * Creates object for chaining.\n   * `Assertion` objects contain metadata in the form of flags. Three flags can\n   * be assigned during instantiation by passing arguments to this constructor:\n   *\n   * - `object`: This flag contains the target of the assertion. For example, in\n   * the assertion `expect(numKittens).to.equal(7);`, the `object` flag will\n   * contain `numKittens` so that the `equal` assertion can reference it when\n   * needed.\n   *\n   * - `message`: This flag contains an optional custom error message to be\n   * prepended to the error message that's generated by the assertion when it\n   * fails.\n   *\n   * - `ssfi`: This flag stands for \"start stack function indicator\". It\n   * contains a function reference that serves as the starting point for\n   * removing frames from the stack trace of the error that's created by the\n   * assertion when it fails. The goal is to provide a cleaner stack trace to\n   * end users by removing Chai's internal functions. Note that it only works\n   * in environments that support `Error.captureStackTrace`, and only when\n   * `Chai.config.includeStack` hasn't been set to `false`.\n   *\n   * - `lockSsfi`: This flag controls whether or not the given `ssfi` flag\n   * should retain its current value, even as assertions are chained off of\n   * this object. This is usually set to `true` when creating a new assertion\n   * from within another assertion. It's also temporarily set to `true` before\n   * an overwritten assertion gets called by the overwriting assertion.\n   *\n   * - `eql`: This flag contains the deepEqual function to be used by the assertion.\n   *\n   * @param {unknown} obj target of the assertion\n   * @param {string} [msg] (optional) custom error message\n   * @param {Function} [ssfi] (optional) starting point for removing stack frames\n   * @param {boolean} [lockSsfi] (optional) whether or not the ssfi flag is locked\n   */\n  constructor(obj, msg, ssfi, lockSsfi) {\n    /** @type {{}} */\n    __publicField(this, \"__flags\", {});\n    flag(this, \"ssfi\", ssfi || _Assertion);\n    flag(this, \"lockSsfi\", lockSsfi);\n    flag(this, \"object\", obj);\n    flag(this, \"message\", msg);\n    flag(this, \"eql\", config.deepEqual || deep_eql_default);\n    return proxify(this);\n  }\n  /** @returns {boolean} */\n  static get includeStack() {\n    console.warn(\n      \"Assertion.includeStack is deprecated, use chai.config.includeStack instead.\"\n    );\n    return config.includeStack;\n  }\n  /** @param {boolean} value */\n  static set includeStack(value) {\n    console.warn(\n      \"Assertion.includeStack is deprecated, use chai.config.includeStack instead.\"\n    );\n    config.includeStack = value;\n  }\n  /** @returns {boolean} */\n  static get showDiff() {\n    console.warn(\n      \"Assertion.showDiff is deprecated, use chai.config.showDiff instead.\"\n    );\n    return config.showDiff;\n  }\n  /** @param {boolean} value */\n  static set showDiff(value) {\n    console.warn(\n      \"Assertion.showDiff is deprecated, use chai.config.showDiff instead.\"\n    );\n    config.showDiff = value;\n  }\n  /**\n   * @param {string} name\n   * @param {Function} fn\n   */\n  static addProperty(name, fn) {\n    addProperty(this.prototype, name, fn);\n  }\n  /**\n   * @param {string} name\n   * @param {Function} fn\n   */\n  static addMethod(name, fn) {\n    addMethod(this.prototype, name, fn);\n  }\n  /**\n   * @param {string} name\n   * @param {Function} fn\n   * @param {Function} chainingBehavior\n   */\n  static addChainableMethod(name, fn, chainingBehavior) {\n    addChainableMethod(this.prototype, name, fn, chainingBehavior);\n  }\n  /**\n   * @param {string} name\n   * @param {Function} fn\n   */\n  static overwriteProperty(name, fn) {\n    overwriteProperty(this.prototype, name, fn);\n  }\n  /**\n   * @param {string} name\n   * @param {Function} fn\n   */\n  static overwriteMethod(name, fn) {\n    overwriteMethod(this.prototype, name, fn);\n  }\n  /**\n   * @param {string} name\n   * @param {Function} fn\n   * @param {Function} chainingBehavior\n   */\n  static overwriteChainableMethod(name, fn, chainingBehavior) {\n    overwriteChainableMethod(this.prototype, name, fn, chainingBehavior);\n  }\n  /**\n   * ### .assert(expression, message, negateMessage, expected, actual, showDiff)\n   *\n   * Executes an expression and check expectations. Throws AssertionError for reporting if test doesn't pass.\n   *\n   * @name assert\n   * @param {unknown} _expr to be tested\n   * @param {string | Function} msg or function that returns message to display if expression fails\n   * @param {string | Function} _negateMsg or function that returns negatedMessage to display if negated expression fails\n   * @param {unknown} expected value (remember to check for negation)\n   * @param {unknown} _actual (optional) will default to `this.obj`\n   * @param {boolean} showDiff (optional) when set to `true`, assert will display a diff in addition to the message if expression fails\n   * @returns {void}\n   */\n  assert(_expr, msg, _negateMsg, expected, _actual, showDiff) {\n    const ok = test(this, arguments);\n    if (false !== showDiff) showDiff = true;\n    if (void 0 === expected && void 0 === _actual) showDiff = false;\n    if (true !== config.showDiff) showDiff = false;\n    if (!ok) {\n      msg = getMessage2(this, arguments);\n      const actual = getActual(this, arguments);\n      const assertionErrorObjectProperties = {\n        actual,\n        expected,\n        showDiff\n      };\n      const operator = getOperator(this, arguments);\n      if (operator) {\n        assertionErrorObjectProperties.operator = operator;\n      }\n      throw new AssertionError(\n        msg,\n        assertionErrorObjectProperties,\n        // @ts-expect-error Not sure what to do about these types yet\n        config.includeStack ? this.assert : flag(this, \"ssfi\")\n      );\n    }\n  }\n  /**\n   * Quick reference to stored `actual` value for plugin developers.\n   *\n   * @returns {unknown}\n   */\n  get _obj() {\n    return flag(this, \"object\");\n  }\n  /**\n   * Quick reference to stored `actual` value for plugin developers.\n   *\n   * @param {unknown} val\n   */\n  set _obj(val) {\n    flag(this, \"object\", val);\n  }\n};\n__name(_Assertion, \"Assertion\");\nvar Assertion = _Assertion;\n\n// lib/chai/utils/events.js\nvar events = new EventTarget();\nvar _PluginEvent = class _PluginEvent extends Event {\n  constructor(type3, name, fn) {\n    super(type3);\n    this.name = String(name);\n    this.fn = fn;\n  }\n};\n__name(_PluginEvent, \"PluginEvent\");\nvar PluginEvent = _PluginEvent;\n\n// lib/chai/utils/isProxyEnabled.js\nfunction isProxyEnabled() {\n  return config.useProxy && typeof Proxy !== \"undefined\" && typeof Reflect !== \"undefined\";\n}\n__name(isProxyEnabled, \"isProxyEnabled\");\n\n// lib/chai/utils/addProperty.js\nfunction addProperty(ctx, name, getter) {\n  getter = getter === void 0 ? function() {\n  } : getter;\n  Object.defineProperty(ctx, name, {\n    get: /* @__PURE__ */ __name(function propertyGetter() {\n      if (!isProxyEnabled() && !flag(this, \"lockSsfi\")) {\n        flag(this, \"ssfi\", propertyGetter);\n      }\n      let result = getter.call(this);\n      if (result !== void 0) return result;\n      let newAssertion = new Assertion();\n      transferFlags(this, newAssertion);\n      return newAssertion;\n    }, \"propertyGetter\"),\n    configurable: true\n  });\n  events.dispatchEvent(new PluginEvent(\"addProperty\", name, getter));\n}\n__name(addProperty, \"addProperty\");\n\n// lib/chai/utils/addLengthGuard.js\nvar fnLengthDesc = Object.getOwnPropertyDescriptor(function() {\n}, \"length\");\nfunction addLengthGuard(fn, assertionName, isChainable) {\n  if (!fnLengthDesc.configurable) return fn;\n  Object.defineProperty(fn, \"length\", {\n    get: /* @__PURE__ */ __name(function() {\n      if (isChainable) {\n        throw Error(\n          \"Invalid Chai property: \" + assertionName + '.length. Due to a compatibility issue, \"length\" cannot directly follow \"' + assertionName + '\". Use \"' + assertionName + '.lengthOf\" instead.'\n        );\n      }\n      throw Error(\n        \"Invalid Chai property: \" + assertionName + '.length. See docs for proper usage of \"' + assertionName + '\".'\n      );\n    }, \"get\")\n  });\n  return fn;\n}\n__name(addLengthGuard, \"addLengthGuard\");\n\n// lib/chai/utils/getProperties.js\nfunction getProperties(object) {\n  let result = Object.getOwnPropertyNames(object);\n  function addProperty2(property) {\n    if (result.indexOf(property) === -1) {\n      result.push(property);\n    }\n  }\n  __name(addProperty2, \"addProperty\");\n  let proto = Object.getPrototypeOf(object);\n  while (proto !== null) {\n    Object.getOwnPropertyNames(proto).forEach(addProperty2);\n    proto = Object.getPrototypeOf(proto);\n  }\n  return result;\n}\n__name(getProperties, \"getProperties\");\n\n// lib/chai/utils/proxify.js\nvar builtins = [\"__flags\", \"__methods\", \"_obj\", \"assert\"];\nfunction proxify(obj, nonChainableMethodName) {\n  if (!isProxyEnabled()) return obj;\n  return new Proxy(obj, {\n    get: /* @__PURE__ */ __name(function proxyGetter(target, property) {\n      if (typeof property === \"string\" && config.proxyExcludedKeys.indexOf(property) === -1 && !Reflect.has(target, property)) {\n        if (nonChainableMethodName) {\n          throw Error(\n            \"Invalid Chai property: \" + nonChainableMethodName + \".\" + property + '. See docs for proper usage of \"' + nonChainableMethodName + '\".'\n          );\n        }\n        let suggestion = null;\n        let suggestionDistance = 4;\n        getProperties(target).forEach(function(prop) {\n          if (\n            // we actually mean to check `Object.prototype` here\n            // eslint-disable-next-line no-prototype-builtins\n            !Object.prototype.hasOwnProperty(prop) && builtins.indexOf(prop) === -1\n          ) {\n            let dist = stringDistanceCapped(property, prop, suggestionDistance);\n            if (dist < suggestionDistance) {\n              suggestion = prop;\n              suggestionDistance = dist;\n            }\n          }\n        });\n        if (suggestion !== null) {\n          throw Error(\n            \"Invalid Chai property: \" + property + '. Did you mean \"' + suggestion + '\"?'\n          );\n        } else {\n          throw Error(\"Invalid Chai property: \" + property);\n        }\n      }\n      if (builtins.indexOf(property) === -1 && !flag(target, \"lockSsfi\")) {\n        flag(target, \"ssfi\", proxyGetter);\n      }\n      return Reflect.get(target, property);\n    }, \"proxyGetter\")\n  });\n}\n__name(proxify, \"proxify\");\nfunction stringDistanceCapped(strA, strB, cap) {\n  if (Math.abs(strA.length - strB.length) >= cap) {\n    return cap;\n  }\n  let memo = [];\n  for (let i = 0; i <= strA.length; i++) {\n    memo[i] = Array(strB.length + 1).fill(0);\n    memo[i][0] = i;\n  }\n  for (let j = 0; j < strB.length; j++) {\n    memo[0][j] = j;\n  }\n  for (let i = 1; i <= strA.length; i++) {\n    let ch = strA.charCodeAt(i - 1);\n    for (let j = 1; j <= strB.length; j++) {\n      if (Math.abs(i - j) >= cap) {\n        memo[i][j] = cap;\n        continue;\n      }\n      memo[i][j] = Math.min(\n        memo[i - 1][j] + 1,\n        memo[i][j - 1] + 1,\n        memo[i - 1][j - 1] + (ch === strB.charCodeAt(j - 1) ? 0 : 1)\n      );\n    }\n  }\n  return memo[strA.length][strB.length];\n}\n__name(stringDistanceCapped, \"stringDistanceCapped\");\n\n// lib/chai/utils/addMethod.js\nfunction addMethod(ctx, name, method) {\n  let methodWrapper = /* @__PURE__ */ __name(function() {\n    if (!flag(this, \"lockSsfi\")) {\n      flag(this, \"ssfi\", methodWrapper);\n    }\n    let result = method.apply(this, arguments);\n    if (result !== void 0) return result;\n    let newAssertion = new Assertion();\n    transferFlags(this, newAssertion);\n    return newAssertion;\n  }, \"methodWrapper\");\n  addLengthGuard(methodWrapper, name, false);\n  ctx[name] = proxify(methodWrapper, name);\n  events.dispatchEvent(new PluginEvent(\"addMethod\", name, method));\n}\n__name(addMethod, \"addMethod\");\n\n// lib/chai/utils/overwriteProperty.js\nfunction overwriteProperty(ctx, name, getter) {\n  let _get = Object.getOwnPropertyDescriptor(ctx, name), _super = /* @__PURE__ */ __name(function() {\n  }, \"_super\");\n  if (_get && \"function\" === typeof _get.get) _super = _get.get;\n  Object.defineProperty(ctx, name, {\n    get: /* @__PURE__ */ __name(function overwritingPropertyGetter() {\n      if (!isProxyEnabled() && !flag(this, \"lockSsfi\")) {\n        flag(this, \"ssfi\", overwritingPropertyGetter);\n      }\n      let origLockSsfi = flag(this, \"lockSsfi\");\n      flag(this, \"lockSsfi\", true);\n      let result = getter(_super).call(this);\n      flag(this, \"lockSsfi\", origLockSsfi);\n      if (result !== void 0) {\n        return result;\n      }\n      let newAssertion = new Assertion();\n      transferFlags(this, newAssertion);\n      return newAssertion;\n    }, \"overwritingPropertyGetter\"),\n    configurable: true\n  });\n}\n__name(overwriteProperty, \"overwriteProperty\");\n\n// lib/chai/utils/overwriteMethod.js\nfunction overwriteMethod(ctx, name, method) {\n  let _method = ctx[name], _super = /* @__PURE__ */ __name(function() {\n    throw new Error(name + \" is not a function\");\n  }, \"_super\");\n  if (_method && \"function\" === typeof _method) _super = _method;\n  let overwritingMethodWrapper = /* @__PURE__ */ __name(function() {\n    if (!flag(this, \"lockSsfi\")) {\n      flag(this, \"ssfi\", overwritingMethodWrapper);\n    }\n    let origLockSsfi = flag(this, \"lockSsfi\");\n    flag(this, \"lockSsfi\", true);\n    let result = method(_super).apply(this, arguments);\n    flag(this, \"lockSsfi\", origLockSsfi);\n    if (result !== void 0) {\n      return result;\n    }\n    let newAssertion = new Assertion();\n    transferFlags(this, newAssertion);\n    return newAssertion;\n  }, \"overwritingMethodWrapper\");\n  addLengthGuard(overwritingMethodWrapper, name, false);\n  ctx[name] = proxify(overwritingMethodWrapper, name);\n}\n__name(overwriteMethod, \"overwriteMethod\");\n\n// lib/chai/utils/addChainableMethod.js\nvar canSetPrototype = typeof Object.setPrototypeOf === \"function\";\nvar testFn = /* @__PURE__ */ __name(function() {\n}, \"testFn\");\nvar excludeNames = Object.getOwnPropertyNames(testFn).filter(function(name) {\n  let propDesc = Object.getOwnPropertyDescriptor(testFn, name);\n  if (typeof propDesc !== \"object\") return true;\n  return !propDesc.configurable;\n});\nvar call = Function.prototype.call;\nvar apply = Function.prototype.apply;\nvar _PluginAddChainableMethodEvent = class _PluginAddChainableMethodEvent extends PluginEvent {\n  constructor(type3, name, fn, chainingBehavior) {\n    super(type3, name, fn);\n    this.chainingBehavior = chainingBehavior;\n  }\n};\n__name(_PluginAddChainableMethodEvent, \"PluginAddChainableMethodEvent\");\nvar PluginAddChainableMethodEvent = _PluginAddChainableMethodEvent;\nfunction addChainableMethod(ctx, name, method, chainingBehavior) {\n  if (typeof chainingBehavior !== \"function\") {\n    chainingBehavior = /* @__PURE__ */ __name(function() {\n    }, \"chainingBehavior\");\n  }\n  let chainableBehavior = {\n    method,\n    chainingBehavior\n  };\n  if (!ctx.__methods) {\n    ctx.__methods = {};\n  }\n  ctx.__methods[name] = chainableBehavior;\n  Object.defineProperty(ctx, name, {\n    get: /* @__PURE__ */ __name(function chainableMethodGetter() {\n      chainableBehavior.chainingBehavior.call(this);\n      let chainableMethodWrapper = /* @__PURE__ */ __name(function() {\n        if (!flag(this, \"lockSsfi\")) {\n          flag(this, \"ssfi\", chainableMethodWrapper);\n        }\n        let result = chainableBehavior.method.apply(this, arguments);\n        if (result !== void 0) {\n          return result;\n        }\n        let newAssertion = new Assertion();\n        transferFlags(this, newAssertion);\n        return newAssertion;\n      }, \"chainableMethodWrapper\");\n      addLengthGuard(chainableMethodWrapper, name, true);\n      if (canSetPrototype) {\n        let prototype = Object.create(this);\n        prototype.call = call;\n        prototype.apply = apply;\n        Object.setPrototypeOf(chainableMethodWrapper, prototype);\n      } else {\n        let asserterNames = Object.getOwnPropertyNames(ctx);\n        asserterNames.forEach(function(asserterName) {\n          if (excludeNames.indexOf(asserterName) !== -1) {\n            return;\n          }\n          let pd = Object.getOwnPropertyDescriptor(ctx, asserterName);\n          Object.defineProperty(chainableMethodWrapper, asserterName, pd);\n        });\n      }\n      transferFlags(this, chainableMethodWrapper);\n      return proxify(chainableMethodWrapper);\n    }, \"chainableMethodGetter\"),\n    configurable: true\n  });\n  events.dispatchEvent(\n    new PluginAddChainableMethodEvent(\n      \"addChainableMethod\",\n      name,\n      method,\n      chainingBehavior\n    )\n  );\n}\n__name(addChainableMethod, \"addChainableMethod\");\n\n// lib/chai/utils/overwriteChainableMethod.js\nfunction overwriteChainableMethod(ctx, name, method, chainingBehavior) {\n  let chainableBehavior = ctx.__methods[name];\n  let _chainingBehavior = chainableBehavior.chainingBehavior;\n  chainableBehavior.chainingBehavior = /* @__PURE__ */ __name(function overwritingChainableMethodGetter() {\n    let result = chainingBehavior(_chainingBehavior).call(this);\n    if (result !== void 0) {\n      return result;\n    }\n    let newAssertion = new Assertion();\n    transferFlags(this, newAssertion);\n    return newAssertion;\n  }, \"overwritingChainableMethodGetter\");\n  let _method = chainableBehavior.method;\n  chainableBehavior.method = /* @__PURE__ */ __name(function overwritingChainableMethodWrapper() {\n    let result = method(_method).apply(this, arguments);\n    if (result !== void 0) {\n      return result;\n    }\n    let newAssertion = new Assertion();\n    transferFlags(this, newAssertion);\n    return newAssertion;\n  }, \"overwritingChainableMethodWrapper\");\n}\n__name(overwriteChainableMethod, \"overwriteChainableMethod\");\n\n// lib/chai/utils/compareByInspect.js\nfunction compareByInspect(a, b) {\n  return inspect2(a) < inspect2(b) ? -1 : 1;\n}\n__name(compareByInspect, \"compareByInspect\");\n\n// lib/chai/utils/getOwnEnumerablePropertySymbols.js\nfunction getOwnEnumerablePropertySymbols(obj) {\n  if (typeof Object.getOwnPropertySymbols !== \"function\") return [];\n  return Object.getOwnPropertySymbols(obj).filter(function(sym) {\n    return Object.getOwnPropertyDescriptor(obj, sym).enumerable;\n  });\n}\n__name(getOwnEnumerablePropertySymbols, \"getOwnEnumerablePropertySymbols\");\n\n// lib/chai/utils/getOwnEnumerableProperties.js\nfunction getOwnEnumerableProperties(obj) {\n  return Object.keys(obj).concat(getOwnEnumerablePropertySymbols(obj));\n}\n__name(getOwnEnumerableProperties, \"getOwnEnumerableProperties\");\n\n// lib/chai/utils/isNaN.js\nvar isNaN2 = Number.isNaN;\n\n// lib/chai/utils/getOperator.js\nfunction isObjectType(obj) {\n  let objectType = type(obj);\n  let objectTypes = [\"Array\", \"Object\", \"Function\"];\n  return objectTypes.indexOf(objectType) !== -1;\n}\n__name(isObjectType, \"isObjectType\");\nfunction getOperator(obj, args) {\n  let operator = flag(obj, \"operator\");\n  let negate = flag(obj, \"negate\");\n  let expected = args[3];\n  let msg = negate ? args[2] : args[1];\n  if (operator) {\n    return operator;\n  }\n  if (typeof msg === \"function\") msg = msg();\n  msg = msg || \"\";\n  if (!msg) {\n    return void 0;\n  }\n  if (/\\shave\\s/.test(msg)) {\n    return void 0;\n  }\n  let isObject = isObjectType(expected);\n  if (/\\snot\\s/.test(msg)) {\n    return isObject ? \"notDeepStrictEqual\" : \"notStrictEqual\";\n  }\n  return isObject ? \"deepStrictEqual\" : \"strictEqual\";\n}\n__name(getOperator, \"getOperator\");\n\n// lib/chai/utils/index.js\nfunction getName(fn) {\n  return fn.name;\n}\n__name(getName, \"getName\");\nfunction isRegExp2(obj) {\n  return Object.prototype.toString.call(obj) === \"[object RegExp]\";\n}\n__name(isRegExp2, \"isRegExp\");\nfunction isNumeric(obj) {\n  return [\"Number\", \"BigInt\"].includes(type(obj));\n}\n__name(isNumeric, \"isNumeric\");\n\n// lib/chai/core/assertions.js\nvar { flag: flag2 } = utils_exports;\n[\n  \"to\",\n  \"be\",\n  \"been\",\n  \"is\",\n  \"and\",\n  \"has\",\n  \"have\",\n  \"with\",\n  \"that\",\n  \"which\",\n  \"at\",\n  \"of\",\n  \"same\",\n  \"but\",\n  \"does\",\n  \"still\",\n  \"also\"\n].forEach(function(chain) {\n  Assertion.addProperty(chain);\n});\nAssertion.addProperty(\"not\", function() {\n  flag2(this, \"negate\", true);\n});\nAssertion.addProperty(\"deep\", function() {\n  flag2(this, \"deep\", true);\n});\nAssertion.addProperty(\"nested\", function() {\n  flag2(this, \"nested\", true);\n});\nAssertion.addProperty(\"own\", function() {\n  flag2(this, \"own\", true);\n});\nAssertion.addProperty(\"ordered\", function() {\n  flag2(this, \"ordered\", true);\n});\nAssertion.addProperty(\"any\", function() {\n  flag2(this, \"any\", true);\n  flag2(this, \"all\", false);\n});\nAssertion.addProperty(\"all\", function() {\n  flag2(this, \"all\", true);\n  flag2(this, \"any\", false);\n});\nvar functionTypes = {\n  function: [\n    \"function\",\n    \"asyncfunction\",\n    \"generatorfunction\",\n    \"asyncgeneratorfunction\"\n  ],\n  asyncfunction: [\"asyncfunction\", \"asyncgeneratorfunction\"],\n  generatorfunction: [\"generatorfunction\", \"asyncgeneratorfunction\"],\n  asyncgeneratorfunction: [\"asyncgeneratorfunction\"]\n};\nfunction an(type3, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  type3 = type3.toLowerCase();\n  let obj = flag2(this, \"object\"), article = ~[\"a\", \"e\", \"i\", \"o\", \"u\"].indexOf(type3.charAt(0)) ? \"an \" : \"a \";\n  const detectedType = type(obj).toLowerCase();\n  if (functionTypes[\"function\"].includes(type3)) {\n    this.assert(\n      functionTypes[type3].includes(detectedType),\n      \"expected #{this} to be \" + article + type3,\n      \"expected #{this} not to be \" + article + type3\n    );\n  } else {\n    this.assert(\n      type3 === detectedType,\n      \"expected #{this} to be \" + article + type3,\n      \"expected #{this} not to be \" + article + type3\n    );\n  }\n}\n__name(an, \"an\");\nAssertion.addChainableMethod(\"an\", an);\nAssertion.addChainableMethod(\"a\", an);\nfunction SameValueZero(a, b) {\n  return isNaN2(a) && isNaN2(b) || a === b;\n}\n__name(SameValueZero, \"SameValueZero\");\nfunction includeChainingBehavior() {\n  flag2(this, \"contains\", true);\n}\n__name(includeChainingBehavior, \"includeChainingBehavior\");\nfunction include(val, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), objType = type(obj).toLowerCase(), flagMsg = flag2(this, \"message\"), negate = flag2(this, \"negate\"), ssfi = flag2(this, \"ssfi\"), isDeep = flag2(this, \"deep\"), descriptor = isDeep ? \"deep \" : \"\", isEql = isDeep ? flag2(this, \"eql\") : SameValueZero;\n  flagMsg = flagMsg ? flagMsg + \": \" : \"\";\n  let included = false;\n  switch (objType) {\n    case \"string\":\n      included = obj.indexOf(val) !== -1;\n      break;\n    case \"weakset\":\n      if (isDeep) {\n        throw new AssertionError(\n          flagMsg + \"unable to use .deep.include with WeakSet\",\n          void 0,\n          ssfi\n        );\n      }\n      included = obj.has(val);\n      break;\n    case \"map\":\n      obj.forEach(function(item) {\n        included = included || isEql(item, val);\n      });\n      break;\n    case \"set\":\n      if (isDeep) {\n        obj.forEach(function(item) {\n          included = included || isEql(item, val);\n        });\n      } else {\n        included = obj.has(val);\n      }\n      break;\n    case \"array\":\n      if (isDeep) {\n        included = obj.some(function(item) {\n          return isEql(item, val);\n        });\n      } else {\n        included = obj.indexOf(val) !== -1;\n      }\n      break;\n    default: {\n      if (val !== Object(val)) {\n        throw new AssertionError(\n          flagMsg + \"the given combination of arguments (\" + objType + \" and \" + type(val).toLowerCase() + \") is invalid for this assertion. You can use an array, a map, an object, a set, a string, or a weakset instead of a \" + type(val).toLowerCase(),\n          void 0,\n          ssfi\n        );\n      }\n      let props = Object.keys(val);\n      let firstErr = null;\n      let numErrs = 0;\n      props.forEach(function(prop) {\n        let propAssertion = new Assertion(obj);\n        transferFlags(this, propAssertion, true);\n        flag2(propAssertion, \"lockSsfi\", true);\n        if (!negate || props.length === 1) {\n          propAssertion.property(prop, val[prop]);\n          return;\n        }\n        try {\n          propAssertion.property(prop, val[prop]);\n        } catch (err) {\n          if (!check_error_exports.compatibleConstructor(err, AssertionError)) {\n            throw err;\n          }\n          if (firstErr === null) firstErr = err;\n          numErrs++;\n        }\n      }, this);\n      if (negate && props.length > 1 && numErrs === props.length) {\n        throw firstErr;\n      }\n      return;\n    }\n  }\n  this.assert(\n    included,\n    \"expected #{this} to \" + descriptor + \"include \" + inspect2(val),\n    \"expected #{this} to not \" + descriptor + \"include \" + inspect2(val)\n  );\n}\n__name(include, \"include\");\nAssertion.addChainableMethod(\"include\", include, includeChainingBehavior);\nAssertion.addChainableMethod(\"contain\", include, includeChainingBehavior);\nAssertion.addChainableMethod(\"contains\", include, includeChainingBehavior);\nAssertion.addChainableMethod(\"includes\", include, includeChainingBehavior);\nAssertion.addProperty(\"ok\", function() {\n  this.assert(\n    flag2(this, \"object\"),\n    \"expected #{this} to be truthy\",\n    \"expected #{this} to be falsy\"\n  );\n});\nAssertion.addProperty(\"true\", function() {\n  this.assert(\n    true === flag2(this, \"object\"),\n    \"expected #{this} to be true\",\n    \"expected #{this} to be false\",\n    flag2(this, \"negate\") ? false : true\n  );\n});\nAssertion.addProperty(\"numeric\", function() {\n  const object = flag2(this, \"object\");\n  this.assert(\n    [\"Number\", \"BigInt\"].includes(type(object)),\n    \"expected #{this} to be numeric\",\n    \"expected #{this} to not be numeric\",\n    flag2(this, \"negate\") ? false : true\n  );\n});\nAssertion.addProperty(\"callable\", function() {\n  const val = flag2(this, \"object\");\n  const ssfi = flag2(this, \"ssfi\");\n  const message = flag2(this, \"message\");\n  const msg = message ? `${message}: ` : \"\";\n  const negate = flag2(this, \"negate\");\n  const assertionMessage = negate ? `${msg}expected ${inspect2(val)} not to be a callable function` : `${msg}expected ${inspect2(val)} to be a callable function`;\n  const isCallable = [\n    \"Function\",\n    \"AsyncFunction\",\n    \"GeneratorFunction\",\n    \"AsyncGeneratorFunction\"\n  ].includes(type(val));\n  if (isCallable && negate || !isCallable && !negate) {\n    throw new AssertionError(assertionMessage, void 0, ssfi);\n  }\n});\nAssertion.addProperty(\"false\", function() {\n  this.assert(\n    false === flag2(this, \"object\"),\n    \"expected #{this} to be false\",\n    \"expected #{this} to be true\",\n    flag2(this, \"negate\") ? true : false\n  );\n});\nAssertion.addProperty(\"null\", function() {\n  this.assert(\n    null === flag2(this, \"object\"),\n    \"expected #{this} to be null\",\n    \"expected #{this} not to be null\"\n  );\n});\nAssertion.addProperty(\"undefined\", function() {\n  this.assert(\n    void 0 === flag2(this, \"object\"),\n    \"expected #{this} to be undefined\",\n    \"expected #{this} not to be undefined\"\n  );\n});\nAssertion.addProperty(\"NaN\", function() {\n  this.assert(\n    isNaN2(flag2(this, \"object\")),\n    \"expected #{this} to be NaN\",\n    \"expected #{this} not to be NaN\"\n  );\n});\nfunction assertExist() {\n  let val = flag2(this, \"object\");\n  this.assert(\n    val !== null && val !== void 0,\n    \"expected #{this} to exist\",\n    \"expected #{this} to not exist\"\n  );\n}\n__name(assertExist, \"assertExist\");\nAssertion.addProperty(\"exist\", assertExist);\nAssertion.addProperty(\"exists\", assertExist);\nAssertion.addProperty(\"empty\", function() {\n  let val = flag2(this, \"object\"), ssfi = flag2(this, \"ssfi\"), flagMsg = flag2(this, \"message\"), itemsCount;\n  flagMsg = flagMsg ? flagMsg + \": \" : \"\";\n  switch (type(val).toLowerCase()) {\n    case \"array\":\n    case \"string\":\n      itemsCount = val.length;\n      break;\n    case \"map\":\n    case \"set\":\n      itemsCount = val.size;\n      break;\n    case \"weakmap\":\n    case \"weakset\":\n      throw new AssertionError(\n        flagMsg + \".empty was passed a weak collection\",\n        void 0,\n        ssfi\n      );\n    case \"function\": {\n      const msg = flagMsg + \".empty was passed a function \" + getName(val);\n      throw new AssertionError(msg.trim(), void 0, ssfi);\n    }\n    default:\n      if (val !== Object(val)) {\n        throw new AssertionError(\n          flagMsg + \".empty was passed non-string primitive \" + inspect2(val),\n          void 0,\n          ssfi\n        );\n      }\n      itemsCount = Object.keys(val).length;\n  }\n  this.assert(\n    0 === itemsCount,\n    \"expected #{this} to be empty\",\n    \"expected #{this} not to be empty\"\n  );\n});\nfunction checkArguments() {\n  let obj = flag2(this, \"object\"), type3 = type(obj);\n  this.assert(\n    \"Arguments\" === type3,\n    \"expected #{this} to be arguments but got \" + type3,\n    \"expected #{this} to not be arguments\"\n  );\n}\n__name(checkArguments, \"checkArguments\");\nAssertion.addProperty(\"arguments\", checkArguments);\nAssertion.addProperty(\"Arguments\", checkArguments);\nfunction assertEqual(val, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\");\n  if (flag2(this, \"deep\")) {\n    let prevLockSsfi = flag2(this, \"lockSsfi\");\n    flag2(this, \"lockSsfi\", true);\n    this.eql(val);\n    flag2(this, \"lockSsfi\", prevLockSsfi);\n  } else {\n    this.assert(\n      val === obj,\n      \"expected #{this} to equal #{exp}\",\n      \"expected #{this} to not equal #{exp}\",\n      val,\n      this._obj,\n      true\n    );\n  }\n}\n__name(assertEqual, \"assertEqual\");\nAssertion.addMethod(\"equal\", assertEqual);\nAssertion.addMethod(\"equals\", assertEqual);\nAssertion.addMethod(\"eq\", assertEqual);\nfunction assertEql(obj, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let eql = flag2(this, \"eql\");\n  this.assert(\n    eql(obj, flag2(this, \"object\")),\n    \"expected #{this} to deeply equal #{exp}\",\n    \"expected #{this} to not deeply equal #{exp}\",\n    obj,\n    this._obj,\n    true\n  );\n}\n__name(assertEql, \"assertEql\");\nAssertion.addMethod(\"eql\", assertEql);\nAssertion.addMethod(\"eqls\", assertEql);\nfunction assertAbove(n, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), doLength = flag2(this, \"doLength\"), flagMsg = flag2(this, \"message\"), msgPrefix = flagMsg ? flagMsg + \": \" : \"\", ssfi = flag2(this, \"ssfi\"), objType = type(obj).toLowerCase(), nType = type(n).toLowerCase();\n  if (doLength && objType !== \"map\" && objType !== \"set\") {\n    new Assertion(obj, flagMsg, ssfi, true).to.have.property(\"length\");\n  }\n  if (!doLength && objType === \"date\" && nType !== \"date\") {\n    throw new AssertionError(\n      msgPrefix + \"the argument to above must be a date\",\n      void 0,\n      ssfi\n    );\n  } else if (!isNumeric(n) && (doLength || isNumeric(obj))) {\n    throw new AssertionError(\n      msgPrefix + \"the argument to above must be a number\",\n      void 0,\n      ssfi\n    );\n  } else if (!doLength && objType !== \"date\" && !isNumeric(obj)) {\n    let printObj = objType === \"string\" ? \"'\" + obj + \"'\" : obj;\n    throw new AssertionError(\n      msgPrefix + \"expected \" + printObj + \" to be a number or a date\",\n      void 0,\n      ssfi\n    );\n  }\n  if (doLength) {\n    let descriptor = \"length\", itemsCount;\n    if (objType === \"map\" || objType === \"set\") {\n      descriptor = \"size\";\n      itemsCount = obj.size;\n    } else {\n      itemsCount = obj.length;\n    }\n    this.assert(\n      itemsCount > n,\n      \"expected #{this} to have a \" + descriptor + \" above #{exp} but got #{act}\",\n      \"expected #{this} to not have a \" + descriptor + \" above #{exp}\",\n      n,\n      itemsCount\n    );\n  } else {\n    this.assert(\n      obj > n,\n      \"expected #{this} to be above #{exp}\",\n      \"expected #{this} to be at most #{exp}\",\n      n\n    );\n  }\n}\n__name(assertAbove, \"assertAbove\");\nAssertion.addMethod(\"above\", assertAbove);\nAssertion.addMethod(\"gt\", assertAbove);\nAssertion.addMethod(\"greaterThan\", assertAbove);\nfunction assertLeast(n, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), doLength = flag2(this, \"doLength\"), flagMsg = flag2(this, \"message\"), msgPrefix = flagMsg ? flagMsg + \": \" : \"\", ssfi = flag2(this, \"ssfi\"), objType = type(obj).toLowerCase(), nType = type(n).toLowerCase(), errorMessage, shouldThrow = true;\n  if (doLength && objType !== \"map\" && objType !== \"set\") {\n    new Assertion(obj, flagMsg, ssfi, true).to.have.property(\"length\");\n  }\n  if (!doLength && objType === \"date\" && nType !== \"date\") {\n    errorMessage = msgPrefix + \"the argument to least must be a date\";\n  } else if (!isNumeric(n) && (doLength || isNumeric(obj))) {\n    errorMessage = msgPrefix + \"the argument to least must be a number\";\n  } else if (!doLength && objType !== \"date\" && !isNumeric(obj)) {\n    let printObj = objType === \"string\" ? \"'\" + obj + \"'\" : obj;\n    errorMessage = msgPrefix + \"expected \" + printObj + \" to be a number or a date\";\n  } else {\n    shouldThrow = false;\n  }\n  if (shouldThrow) {\n    throw new AssertionError(errorMessage, void 0, ssfi);\n  }\n  if (doLength) {\n    let descriptor = \"length\", itemsCount;\n    if (objType === \"map\" || objType === \"set\") {\n      descriptor = \"size\";\n      itemsCount = obj.size;\n    } else {\n      itemsCount = obj.length;\n    }\n    this.assert(\n      itemsCount >= n,\n      \"expected #{this} to have a \" + descriptor + \" at least #{exp} but got #{act}\",\n      \"expected #{this} to have a \" + descriptor + \" below #{exp}\",\n      n,\n      itemsCount\n    );\n  } else {\n    this.assert(\n      obj >= n,\n      \"expected #{this} to be at least #{exp}\",\n      \"expected #{this} to be below #{exp}\",\n      n\n    );\n  }\n}\n__name(assertLeast, \"assertLeast\");\nAssertion.addMethod(\"least\", assertLeast);\nAssertion.addMethod(\"gte\", assertLeast);\nAssertion.addMethod(\"greaterThanOrEqual\", assertLeast);\nfunction assertBelow(n, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), doLength = flag2(this, \"doLength\"), flagMsg = flag2(this, \"message\"), msgPrefix = flagMsg ? flagMsg + \": \" : \"\", ssfi = flag2(this, \"ssfi\"), objType = type(obj).toLowerCase(), nType = type(n).toLowerCase(), errorMessage, shouldThrow = true;\n  if (doLength && objType !== \"map\" && objType !== \"set\") {\n    new Assertion(obj, flagMsg, ssfi, true).to.have.property(\"length\");\n  }\n  if (!doLength && objType === \"date\" && nType !== \"date\") {\n    errorMessage = msgPrefix + \"the argument to below must be a date\";\n  } else if (!isNumeric(n) && (doLength || isNumeric(obj))) {\n    errorMessage = msgPrefix + \"the argument to below must be a number\";\n  } else if (!doLength && objType !== \"date\" && !isNumeric(obj)) {\n    let printObj = objType === \"string\" ? \"'\" + obj + \"'\" : obj;\n    errorMessage = msgPrefix + \"expected \" + printObj + \" to be a number or a date\";\n  } else {\n    shouldThrow = false;\n  }\n  if (shouldThrow) {\n    throw new AssertionError(errorMessage, void 0, ssfi);\n  }\n  if (doLength) {\n    let descriptor = \"length\", itemsCount;\n    if (objType === \"map\" || objType === \"set\") {\n      descriptor = \"size\";\n      itemsCount = obj.size;\n    } else {\n      itemsCount = obj.length;\n    }\n    this.assert(\n      itemsCount < n,\n      \"expected #{this} to have a \" + descriptor + \" below #{exp} but got #{act}\",\n      \"expected #{this} to not have a \" + descriptor + \" below #{exp}\",\n      n,\n      itemsCount\n    );\n  } else {\n    this.assert(\n      obj < n,\n      \"expected #{this} to be below #{exp}\",\n      \"expected #{this} to be at least #{exp}\",\n      n\n    );\n  }\n}\n__name(assertBelow, \"assertBelow\");\nAssertion.addMethod(\"below\", assertBelow);\nAssertion.addMethod(\"lt\", assertBelow);\nAssertion.addMethod(\"lessThan\", assertBelow);\nfunction assertMost(n, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), doLength = flag2(this, \"doLength\"), flagMsg = flag2(this, \"message\"), msgPrefix = flagMsg ? flagMsg + \": \" : \"\", ssfi = flag2(this, \"ssfi\"), objType = type(obj).toLowerCase(), nType = type(n).toLowerCase(), errorMessage, shouldThrow = true;\n  if (doLength && objType !== \"map\" && objType !== \"set\") {\n    new Assertion(obj, flagMsg, ssfi, true).to.have.property(\"length\");\n  }\n  if (!doLength && objType === \"date\" && nType !== \"date\") {\n    errorMessage = msgPrefix + \"the argument to most must be a date\";\n  } else if (!isNumeric(n) && (doLength || isNumeric(obj))) {\n    errorMessage = msgPrefix + \"the argument to most must be a number\";\n  } else if (!doLength && objType !== \"date\" && !isNumeric(obj)) {\n    let printObj = objType === \"string\" ? \"'\" + obj + \"'\" : obj;\n    errorMessage = msgPrefix + \"expected \" + printObj + \" to be a number or a date\";\n  } else {\n    shouldThrow = false;\n  }\n  if (shouldThrow) {\n    throw new AssertionError(errorMessage, void 0, ssfi);\n  }\n  if (doLength) {\n    let descriptor = \"length\", itemsCount;\n    if (objType === \"map\" || objType === \"set\") {\n      descriptor = \"size\";\n      itemsCount = obj.size;\n    } else {\n      itemsCount = obj.length;\n    }\n    this.assert(\n      itemsCount <= n,\n      \"expected #{this} to have a \" + descriptor + \" at most #{exp} but got #{act}\",\n      \"expected #{this} to have a \" + descriptor + \" above #{exp}\",\n      n,\n      itemsCount\n    );\n  } else {\n    this.assert(\n      obj <= n,\n      \"expected #{this} to be at most #{exp}\",\n      \"expected #{this} to be above #{exp}\",\n      n\n    );\n  }\n}\n__name(assertMost, \"assertMost\");\nAssertion.addMethod(\"most\", assertMost);\nAssertion.addMethod(\"lte\", assertMost);\nAssertion.addMethod(\"lessThanOrEqual\", assertMost);\nAssertion.addMethod(\"within\", function(start, finish, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), doLength = flag2(this, \"doLength\"), flagMsg = flag2(this, \"message\"), msgPrefix = flagMsg ? flagMsg + \": \" : \"\", ssfi = flag2(this, \"ssfi\"), objType = type(obj).toLowerCase(), startType = type(start).toLowerCase(), finishType = type(finish).toLowerCase(), errorMessage, shouldThrow = true, range = startType === \"date\" && finishType === \"date\" ? start.toISOString() + \"..\" + finish.toISOString() : start + \"..\" + finish;\n  if (doLength && objType !== \"map\" && objType !== \"set\") {\n    new Assertion(obj, flagMsg, ssfi, true).to.have.property(\"length\");\n  }\n  if (!doLength && objType === \"date\" && (startType !== \"date\" || finishType !== \"date\")) {\n    errorMessage = msgPrefix + \"the arguments to within must be dates\";\n  } else if ((!isNumeric(start) || !isNumeric(finish)) && (doLength || isNumeric(obj))) {\n    errorMessage = msgPrefix + \"the arguments to within must be numbers\";\n  } else if (!doLength && objType !== \"date\" && !isNumeric(obj)) {\n    let printObj = objType === \"string\" ? \"'\" + obj + \"'\" : obj;\n    errorMessage = msgPrefix + \"expected \" + printObj + \" to be a number or a date\";\n  } else {\n    shouldThrow = false;\n  }\n  if (shouldThrow) {\n    throw new AssertionError(errorMessage, void 0, ssfi);\n  }\n  if (doLength) {\n    let descriptor = \"length\", itemsCount;\n    if (objType === \"map\" || objType === \"set\") {\n      descriptor = \"size\";\n      itemsCount = obj.size;\n    } else {\n      itemsCount = obj.length;\n    }\n    this.assert(\n      itemsCount >= start && itemsCount <= finish,\n      \"expected #{this} to have a \" + descriptor + \" within \" + range,\n      \"expected #{this} to not have a \" + descriptor + \" within \" + range\n    );\n  } else {\n    this.assert(\n      obj >= start && obj <= finish,\n      \"expected #{this} to be within \" + range,\n      \"expected #{this} to not be within \" + range\n    );\n  }\n});\nfunction assertInstanceOf(constructor, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let target = flag2(this, \"object\");\n  let ssfi = flag2(this, \"ssfi\");\n  let flagMsg = flag2(this, \"message\");\n  let isInstanceOf;\n  try {\n    isInstanceOf = target instanceof constructor;\n  } catch (err) {\n    if (err instanceof TypeError) {\n      flagMsg = flagMsg ? flagMsg + \": \" : \"\";\n      throw new AssertionError(\n        flagMsg + \"The instanceof assertion needs a constructor but \" + type(constructor) + \" was given.\",\n        void 0,\n        ssfi\n      );\n    }\n    throw err;\n  }\n  let name = getName(constructor);\n  if (name == null) {\n    name = \"an unnamed constructor\";\n  }\n  this.assert(\n    isInstanceOf,\n    \"expected #{this} to be an instance of \" + name,\n    \"expected #{this} to not be an instance of \" + name\n  );\n}\n__name(assertInstanceOf, \"assertInstanceOf\");\nAssertion.addMethod(\"instanceof\", assertInstanceOf);\nAssertion.addMethod(\"instanceOf\", assertInstanceOf);\nfunction assertProperty(name, val, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let isNested = flag2(this, \"nested\"), isOwn = flag2(this, \"own\"), flagMsg = flag2(this, \"message\"), obj = flag2(this, \"object\"), ssfi = flag2(this, \"ssfi\"), nameType = typeof name;\n  flagMsg = flagMsg ? flagMsg + \": \" : \"\";\n  if (isNested) {\n    if (nameType !== \"string\") {\n      throw new AssertionError(\n        flagMsg + \"the argument to property must be a string when using nested syntax\",\n        void 0,\n        ssfi\n      );\n    }\n  } else {\n    if (nameType !== \"string\" && nameType !== \"number\" && nameType !== \"symbol\") {\n      throw new AssertionError(\n        flagMsg + \"the argument to property must be a string, number, or symbol\",\n        void 0,\n        ssfi\n      );\n    }\n  }\n  if (isNested && isOwn) {\n    throw new AssertionError(\n      flagMsg + 'The \"nested\" and \"own\" flags cannot be combined.',\n      void 0,\n      ssfi\n    );\n  }\n  if (obj === null || obj === void 0) {\n    throw new AssertionError(\n      flagMsg + \"Target cannot be null or undefined.\",\n      void 0,\n      ssfi\n    );\n  }\n  let isDeep = flag2(this, \"deep\"), negate = flag2(this, \"negate\"), pathInfo = isNested ? getPathInfo(obj, name) : null, value = isNested ? pathInfo.value : obj[name], isEql = isDeep ? flag2(this, \"eql\") : (val1, val2) => val1 === val2;\n  let descriptor = \"\";\n  if (isDeep) descriptor += \"deep \";\n  if (isOwn) descriptor += \"own \";\n  if (isNested) descriptor += \"nested \";\n  descriptor += \"property \";\n  let hasProperty2;\n  if (isOwn) hasProperty2 = Object.prototype.hasOwnProperty.call(obj, name);\n  else if (isNested) hasProperty2 = pathInfo.exists;\n  else hasProperty2 = hasProperty(obj, name);\n  if (!negate || arguments.length === 1) {\n    this.assert(\n      hasProperty2,\n      \"expected #{this} to have \" + descriptor + inspect2(name),\n      \"expected #{this} to not have \" + descriptor + inspect2(name)\n    );\n  }\n  if (arguments.length > 1) {\n    this.assert(\n      hasProperty2 && isEql(val, value),\n      \"expected #{this} to have \" + descriptor + inspect2(name) + \" of #{exp}, but got #{act}\",\n      \"expected #{this} to not have \" + descriptor + inspect2(name) + \" of #{act}\",\n      val,\n      value\n    );\n  }\n  flag2(this, \"object\", value);\n}\n__name(assertProperty, \"assertProperty\");\nAssertion.addMethod(\"property\", assertProperty);\nfunction assertOwnProperty(_name, _value, _msg) {\n  flag2(this, \"own\", true);\n  assertProperty.apply(this, arguments);\n}\n__name(assertOwnProperty, \"assertOwnProperty\");\nAssertion.addMethod(\"ownProperty\", assertOwnProperty);\nAssertion.addMethod(\"haveOwnProperty\", assertOwnProperty);\nfunction assertOwnPropertyDescriptor(name, descriptor, msg) {\n  if (typeof descriptor === \"string\") {\n    msg = descriptor;\n    descriptor = null;\n  }\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\");\n  let actualDescriptor = Object.getOwnPropertyDescriptor(Object(obj), name);\n  let eql = flag2(this, \"eql\");\n  if (actualDescriptor && descriptor) {\n    this.assert(\n      eql(descriptor, actualDescriptor),\n      \"expected the own property descriptor for \" + inspect2(name) + \" on #{this} to match \" + inspect2(descriptor) + \", got \" + inspect2(actualDescriptor),\n      \"expected the own property descriptor for \" + inspect2(name) + \" on #{this} to not match \" + inspect2(descriptor),\n      descriptor,\n      actualDescriptor,\n      true\n    );\n  } else {\n    this.assert(\n      actualDescriptor,\n      \"expected #{this} to have an own property descriptor for \" + inspect2(name),\n      \"expected #{this} to not have an own property descriptor for \" + inspect2(name)\n    );\n  }\n  flag2(this, \"object\", actualDescriptor);\n}\n__name(assertOwnPropertyDescriptor, \"assertOwnPropertyDescriptor\");\nAssertion.addMethod(\"ownPropertyDescriptor\", assertOwnPropertyDescriptor);\nAssertion.addMethod(\"haveOwnPropertyDescriptor\", assertOwnPropertyDescriptor);\nfunction assertLengthChain() {\n  flag2(this, \"doLength\", true);\n}\n__name(assertLengthChain, \"assertLengthChain\");\nfunction assertLength(n, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), objType = type(obj).toLowerCase(), flagMsg = flag2(this, \"message\"), ssfi = flag2(this, \"ssfi\"), descriptor = \"length\", itemsCount;\n  switch (objType) {\n    case \"map\":\n    case \"set\":\n      descriptor = \"size\";\n      itemsCount = obj.size;\n      break;\n    default:\n      new Assertion(obj, flagMsg, ssfi, true).to.have.property(\"length\");\n      itemsCount = obj.length;\n  }\n  this.assert(\n    itemsCount == n,\n    \"expected #{this} to have a \" + descriptor + \" of #{exp} but got #{act}\",\n    \"expected #{this} to not have a \" + descriptor + \" of #{act}\",\n    n,\n    itemsCount\n  );\n}\n__name(assertLength, \"assertLength\");\nAssertion.addChainableMethod(\"length\", assertLength, assertLengthChain);\nAssertion.addChainableMethod(\"lengthOf\", assertLength, assertLengthChain);\nfunction assertMatch(re, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\");\n  this.assert(\n    re.exec(obj),\n    \"expected #{this} to match \" + re,\n    \"expected #{this} not to match \" + re\n  );\n}\n__name(assertMatch, \"assertMatch\");\nAssertion.addMethod(\"match\", assertMatch);\nAssertion.addMethod(\"matches\", assertMatch);\nAssertion.addMethod(\"string\", function(str, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), flagMsg = flag2(this, \"message\"), ssfi = flag2(this, \"ssfi\");\n  new Assertion(obj, flagMsg, ssfi, true).is.a(\"string\");\n  this.assert(\n    ~obj.indexOf(str),\n    \"expected #{this} to contain \" + inspect2(str),\n    \"expected #{this} to not contain \" + inspect2(str)\n  );\n});\nfunction assertKeys(keys) {\n  let obj = flag2(this, \"object\"), objType = type(obj), keysType = type(keys), ssfi = flag2(this, \"ssfi\"), isDeep = flag2(this, \"deep\"), str, deepStr = \"\", actual, ok = true, flagMsg = flag2(this, \"message\");\n  flagMsg = flagMsg ? flagMsg + \": \" : \"\";\n  let mixedArgsMsg = flagMsg + \"when testing keys against an object or an array you must give a single Array|Object|String argument or multiple String arguments\";\n  if (objType === \"Map\" || objType === \"Set\") {\n    deepStr = isDeep ? \"deeply \" : \"\";\n    actual = [];\n    obj.forEach(function(val, key) {\n      actual.push(key);\n    });\n    if (keysType !== \"Array\") {\n      keys = Array.prototype.slice.call(arguments);\n    }\n  } else {\n    actual = getOwnEnumerableProperties(obj);\n    switch (keysType) {\n      case \"Array\":\n        if (arguments.length > 1) {\n          throw new AssertionError(mixedArgsMsg, void 0, ssfi);\n        }\n        break;\n      case \"Object\":\n        if (arguments.length > 1) {\n          throw new AssertionError(mixedArgsMsg, void 0, ssfi);\n        }\n        keys = Object.keys(keys);\n        break;\n      default:\n        keys = Array.prototype.slice.call(arguments);\n    }\n    keys = keys.map(function(val) {\n      return typeof val === \"symbol\" ? val : String(val);\n    });\n  }\n  if (!keys.length) {\n    throw new AssertionError(flagMsg + \"keys required\", void 0, ssfi);\n  }\n  let len = keys.length, any = flag2(this, \"any\"), all = flag2(this, \"all\"), expected = keys, isEql = isDeep ? flag2(this, \"eql\") : (val1, val2) => val1 === val2;\n  if (!any && !all) {\n    all = true;\n  }\n  if (any) {\n    ok = expected.some(function(expectedKey) {\n      return actual.some(function(actualKey) {\n        return isEql(expectedKey, actualKey);\n      });\n    });\n  }\n  if (all) {\n    ok = expected.every(function(expectedKey) {\n      return actual.some(function(actualKey) {\n        return isEql(expectedKey, actualKey);\n      });\n    });\n    if (!flag2(this, \"contains\")) {\n      ok = ok && keys.length == actual.length;\n    }\n  }\n  if (len > 1) {\n    keys = keys.map(function(key) {\n      return inspect2(key);\n    });\n    let last = keys.pop();\n    if (all) {\n      str = keys.join(\", \") + \", and \" + last;\n    }\n    if (any) {\n      str = keys.join(\", \") + \", or \" + last;\n    }\n  } else {\n    str = inspect2(keys[0]);\n  }\n  str = (len > 1 ? \"keys \" : \"key \") + str;\n  str = (flag2(this, \"contains\") ? \"contain \" : \"have \") + str;\n  this.assert(\n    ok,\n    \"expected #{this} to \" + deepStr + str,\n    \"expected #{this} to not \" + deepStr + str,\n    expected.slice(0).sort(compareByInspect),\n    actual.sort(compareByInspect),\n    true\n  );\n}\n__name(assertKeys, \"assertKeys\");\nAssertion.addMethod(\"keys\", assertKeys);\nAssertion.addMethod(\"key\", assertKeys);\nfunction assertThrows(errorLike, errMsgMatcher, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), ssfi = flag2(this, \"ssfi\"), flagMsg = flag2(this, \"message\"), negate = flag2(this, \"negate\") || false;\n  new Assertion(obj, flagMsg, ssfi, true).is.a(\"function\");\n  if (isRegExp2(errorLike) || typeof errorLike === \"string\") {\n    errMsgMatcher = errorLike;\n    errorLike = null;\n  }\n  let caughtErr;\n  let errorWasThrown = false;\n  try {\n    obj();\n  } catch (err) {\n    errorWasThrown = true;\n    caughtErr = err;\n  }\n  let everyArgIsUndefined = errorLike === void 0 && errMsgMatcher === void 0;\n  let everyArgIsDefined = Boolean(errorLike && errMsgMatcher);\n  let errorLikeFail = false;\n  let errMsgMatcherFail = false;\n  if (everyArgIsUndefined || !everyArgIsUndefined && !negate) {\n    let errorLikeString = \"an error\";\n    if (errorLike instanceof Error) {\n      errorLikeString = \"#{exp}\";\n    } else if (errorLike) {\n      errorLikeString = check_error_exports.getConstructorName(errorLike);\n    }\n    let actual = caughtErr;\n    if (caughtErr instanceof Error) {\n      actual = caughtErr.toString();\n    } else if (typeof caughtErr === \"string\") {\n      actual = caughtErr;\n    } else if (caughtErr && (typeof caughtErr === \"object\" || typeof caughtErr === \"function\")) {\n      try {\n        actual = check_error_exports.getConstructorName(caughtErr);\n      } catch (_err) {\n      }\n    }\n    this.assert(\n      errorWasThrown,\n      \"expected #{this} to throw \" + errorLikeString,\n      \"expected #{this} to not throw an error but #{act} was thrown\",\n      errorLike && errorLike.toString(),\n      actual\n    );\n  }\n  if (errorLike && caughtErr) {\n    if (errorLike instanceof Error) {\n      let isCompatibleInstance = check_error_exports.compatibleInstance(\n        caughtErr,\n        errorLike\n      );\n      if (isCompatibleInstance === negate) {\n        if (everyArgIsDefined && negate) {\n          errorLikeFail = true;\n        } else {\n          this.assert(\n            negate,\n            \"expected #{this} to throw #{exp} but #{act} was thrown\",\n            \"expected #{this} to not throw #{exp}\" + (caughtErr && !negate ? \" but #{act} was thrown\" : \"\"),\n            errorLike.toString(),\n            caughtErr.toString()\n          );\n        }\n      }\n    }\n    let isCompatibleConstructor = check_error_exports.compatibleConstructor(\n      caughtErr,\n      errorLike\n    );\n    if (isCompatibleConstructor === negate) {\n      if (everyArgIsDefined && negate) {\n        errorLikeFail = true;\n      } else {\n        this.assert(\n          negate,\n          \"expected #{this} to throw #{exp} but #{act} was thrown\",\n          \"expected #{this} to not throw #{exp}\" + (caughtErr ? \" but #{act} was thrown\" : \"\"),\n          errorLike instanceof Error ? errorLike.toString() : errorLike && check_error_exports.getConstructorName(errorLike),\n          caughtErr instanceof Error ? caughtErr.toString() : caughtErr && check_error_exports.getConstructorName(caughtErr)\n        );\n      }\n    }\n  }\n  if (caughtErr && errMsgMatcher !== void 0 && errMsgMatcher !== null) {\n    let placeholder = \"including\";\n    if (isRegExp2(errMsgMatcher)) {\n      placeholder = \"matching\";\n    }\n    let isCompatibleMessage = check_error_exports.compatibleMessage(\n      caughtErr,\n      errMsgMatcher\n    );\n    if (isCompatibleMessage === negate) {\n      if (everyArgIsDefined && negate) {\n        errMsgMatcherFail = true;\n      } else {\n        this.assert(\n          negate,\n          \"expected #{this} to throw error \" + placeholder + \" #{exp} but got #{act}\",\n          \"expected #{this} to throw error not \" + placeholder + \" #{exp}\",\n          errMsgMatcher,\n          check_error_exports.getMessage(caughtErr)\n        );\n      }\n    }\n  }\n  if (errorLikeFail && errMsgMatcherFail) {\n    this.assert(\n      negate,\n      \"expected #{this} to throw #{exp} but #{act} was thrown\",\n      \"expected #{this} to not throw #{exp}\" + (caughtErr ? \" but #{act} was thrown\" : \"\"),\n      errorLike instanceof Error ? errorLike.toString() : errorLike && check_error_exports.getConstructorName(errorLike),\n      caughtErr instanceof Error ? caughtErr.toString() : caughtErr && check_error_exports.getConstructorName(caughtErr)\n    );\n  }\n  flag2(this, \"object\", caughtErr);\n}\n__name(assertThrows, \"assertThrows\");\nAssertion.addMethod(\"throw\", assertThrows);\nAssertion.addMethod(\"throws\", assertThrows);\nAssertion.addMethod(\"Throw\", assertThrows);\nfunction respondTo(method, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), itself = flag2(this, \"itself\"), context = \"function\" === typeof obj && !itself ? obj.prototype[method] : obj[method];\n  this.assert(\n    \"function\" === typeof context,\n    \"expected #{this} to respond to \" + inspect2(method),\n    \"expected #{this} to not respond to \" + inspect2(method)\n  );\n}\n__name(respondTo, \"respondTo\");\nAssertion.addMethod(\"respondTo\", respondTo);\nAssertion.addMethod(\"respondsTo\", respondTo);\nAssertion.addProperty(\"itself\", function() {\n  flag2(this, \"itself\", true);\n});\nfunction satisfy(matcher, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\");\n  let result = matcher(obj);\n  this.assert(\n    result,\n    \"expected #{this} to satisfy \" + objDisplay(matcher),\n    \"expected #{this} to not satisfy\" + objDisplay(matcher),\n    flag2(this, \"negate\") ? false : true,\n    result\n  );\n}\n__name(satisfy, \"satisfy\");\nAssertion.addMethod(\"satisfy\", satisfy);\nAssertion.addMethod(\"satisfies\", satisfy);\nfunction closeTo(expected, delta, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), flagMsg = flag2(this, \"message\"), ssfi = flag2(this, \"ssfi\");\n  new Assertion(obj, flagMsg, ssfi, true).is.numeric;\n  let message = \"A `delta` value is required for `closeTo`\";\n  if (delta == void 0) {\n    throw new AssertionError(\n      flagMsg ? `${flagMsg}: ${message}` : message,\n      void 0,\n      ssfi\n    );\n  }\n  new Assertion(delta, flagMsg, ssfi, true).is.numeric;\n  message = \"A `expected` value is required for `closeTo`\";\n  if (expected == void 0) {\n    throw new AssertionError(\n      flagMsg ? `${flagMsg}: ${message}` : message,\n      void 0,\n      ssfi\n    );\n  }\n  new Assertion(expected, flagMsg, ssfi, true).is.numeric;\n  const abs = /* @__PURE__ */ __name((x) => x < 0 ? -x : x, \"abs\");\n  const strip = /* @__PURE__ */ __name((number) => parseFloat(parseFloat(number).toPrecision(12)), \"strip\");\n  this.assert(\n    strip(abs(obj - expected)) <= delta,\n    \"expected #{this} to be close to \" + expected + \" +/- \" + delta,\n    \"expected #{this} not to be close to \" + expected + \" +/- \" + delta\n  );\n}\n__name(closeTo, \"closeTo\");\nAssertion.addMethod(\"closeTo\", closeTo);\nAssertion.addMethod(\"approximately\", closeTo);\nfunction isSubsetOf(_subset, _superset, cmp, contains, ordered) {\n  let superset = Array.from(_superset);\n  let subset = Array.from(_subset);\n  if (!contains) {\n    if (subset.length !== superset.length) return false;\n    superset = superset.slice();\n  }\n  return subset.every(function(elem, idx) {\n    if (ordered) return cmp ? cmp(elem, superset[idx]) : elem === superset[idx];\n    if (!cmp) {\n      let matchIdx = superset.indexOf(elem);\n      if (matchIdx === -1) return false;\n      if (!contains) superset.splice(matchIdx, 1);\n      return true;\n    }\n    return superset.some(function(elem2, matchIdx) {\n      if (!cmp(elem, elem2)) return false;\n      if (!contains) superset.splice(matchIdx, 1);\n      return true;\n    });\n  });\n}\n__name(isSubsetOf, \"isSubsetOf\");\nAssertion.addMethod(\"members\", function(subset, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\"), flagMsg = flag2(this, \"message\"), ssfi = flag2(this, \"ssfi\");\n  new Assertion(obj, flagMsg, ssfi, true).to.be.iterable;\n  new Assertion(subset, flagMsg, ssfi, true).to.be.iterable;\n  let contains = flag2(this, \"contains\");\n  let ordered = flag2(this, \"ordered\");\n  let subject, failMsg, failNegateMsg;\n  if (contains) {\n    subject = ordered ? \"an ordered superset\" : \"a superset\";\n    failMsg = \"expected #{this} to be \" + subject + \" of #{exp}\";\n    failNegateMsg = \"expected #{this} to not be \" + subject + \" of #{exp}\";\n  } else {\n    subject = ordered ? \"ordered members\" : \"members\";\n    failMsg = \"expected #{this} to have the same \" + subject + \" as #{exp}\";\n    failNegateMsg = \"expected #{this} to not have the same \" + subject + \" as #{exp}\";\n  }\n  let cmp = flag2(this, \"deep\") ? flag2(this, \"eql\") : void 0;\n  this.assert(\n    isSubsetOf(subset, obj, cmp, contains, ordered),\n    failMsg,\n    failNegateMsg,\n    subset,\n    obj,\n    true\n  );\n});\nAssertion.addProperty(\"iterable\", function(msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let obj = flag2(this, \"object\");\n  this.assert(\n    obj != void 0 && obj[Symbol.iterator],\n    \"expected #{this} to be an iterable\",\n    \"expected #{this} to not be an iterable\",\n    obj\n  );\n});\nfunction oneOf(list, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let expected = flag2(this, \"object\"), flagMsg = flag2(this, \"message\"), ssfi = flag2(this, \"ssfi\"), contains = flag2(this, \"contains\"), isDeep = flag2(this, \"deep\"), eql = flag2(this, \"eql\");\n  new Assertion(list, flagMsg, ssfi, true).to.be.an(\"array\");\n  if (contains) {\n    this.assert(\n      list.some(function(possibility) {\n        return expected.indexOf(possibility) > -1;\n      }),\n      \"expected #{this} to contain one of #{exp}\",\n      \"expected #{this} to not contain one of #{exp}\",\n      list,\n      expected\n    );\n  } else {\n    if (isDeep) {\n      this.assert(\n        list.some(function(possibility) {\n          return eql(expected, possibility);\n        }),\n        \"expected #{this} to deeply equal one of #{exp}\",\n        \"expected #{this} to deeply equal one of #{exp}\",\n        list,\n        expected\n      );\n    } else {\n      this.assert(\n        list.indexOf(expected) > -1,\n        \"expected #{this} to be one of #{exp}\",\n        \"expected #{this} to not be one of #{exp}\",\n        list,\n        expected\n      );\n    }\n  }\n}\n__name(oneOf, \"oneOf\");\nAssertion.addMethod(\"oneOf\", oneOf);\nfunction assertChanges(subject, prop, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let fn = flag2(this, \"object\"), flagMsg = flag2(this, \"message\"), ssfi = flag2(this, \"ssfi\");\n  new Assertion(fn, flagMsg, ssfi, true).is.a(\"function\");\n  let initial;\n  if (!prop) {\n    new Assertion(subject, flagMsg, ssfi, true).is.a(\"function\");\n    initial = subject();\n  } else {\n    new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop);\n    initial = subject[prop];\n  }\n  fn();\n  let final = prop === void 0 || prop === null ? subject() : subject[prop];\n  let msgObj = prop === void 0 || prop === null ? initial : \".\" + prop;\n  flag2(this, \"deltaMsgObj\", msgObj);\n  flag2(this, \"initialDeltaValue\", initial);\n  flag2(this, \"finalDeltaValue\", final);\n  flag2(this, \"deltaBehavior\", \"change\");\n  flag2(this, \"realDelta\", final !== initial);\n  this.assert(\n    initial !== final,\n    \"expected \" + msgObj + \" to change\",\n    \"expected \" + msgObj + \" to not change\"\n  );\n}\n__name(assertChanges, \"assertChanges\");\nAssertion.addMethod(\"change\", assertChanges);\nAssertion.addMethod(\"changes\", assertChanges);\nfunction assertIncreases(subject, prop, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let fn = flag2(this, \"object\"), flagMsg = flag2(this, \"message\"), ssfi = flag2(this, \"ssfi\");\n  new Assertion(fn, flagMsg, ssfi, true).is.a(\"function\");\n  let initial;\n  if (!prop) {\n    new Assertion(subject, flagMsg, ssfi, true).is.a(\"function\");\n    initial = subject();\n  } else {\n    new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop);\n    initial = subject[prop];\n  }\n  new Assertion(initial, flagMsg, ssfi, true).is.a(\"number\");\n  fn();\n  let final = prop === void 0 || prop === null ? subject() : subject[prop];\n  let msgObj = prop === void 0 || prop === null ? initial : \".\" + prop;\n  flag2(this, \"deltaMsgObj\", msgObj);\n  flag2(this, \"initialDeltaValue\", initial);\n  flag2(this, \"finalDeltaValue\", final);\n  flag2(this, \"deltaBehavior\", \"increase\");\n  flag2(this, \"realDelta\", final - initial);\n  this.assert(\n    final - initial > 0,\n    \"expected \" + msgObj + \" to increase\",\n    \"expected \" + msgObj + \" to not increase\"\n  );\n}\n__name(assertIncreases, \"assertIncreases\");\nAssertion.addMethod(\"increase\", assertIncreases);\nAssertion.addMethod(\"increases\", assertIncreases);\nfunction assertDecreases(subject, prop, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let fn = flag2(this, \"object\"), flagMsg = flag2(this, \"message\"), ssfi = flag2(this, \"ssfi\");\n  new Assertion(fn, flagMsg, ssfi, true).is.a(\"function\");\n  let initial;\n  if (!prop) {\n    new Assertion(subject, flagMsg, ssfi, true).is.a(\"function\");\n    initial = subject();\n  } else {\n    new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop);\n    initial = subject[prop];\n  }\n  new Assertion(initial, flagMsg, ssfi, true).is.a(\"number\");\n  fn();\n  let final = prop === void 0 || prop === null ? subject() : subject[prop];\n  let msgObj = prop === void 0 || prop === null ? initial : \".\" + prop;\n  flag2(this, \"deltaMsgObj\", msgObj);\n  flag2(this, \"initialDeltaValue\", initial);\n  flag2(this, \"finalDeltaValue\", final);\n  flag2(this, \"deltaBehavior\", \"decrease\");\n  flag2(this, \"realDelta\", initial - final);\n  this.assert(\n    final - initial < 0,\n    \"expected \" + msgObj + \" to decrease\",\n    \"expected \" + msgObj + \" to not decrease\"\n  );\n}\n__name(assertDecreases, \"assertDecreases\");\nAssertion.addMethod(\"decrease\", assertDecreases);\nAssertion.addMethod(\"decreases\", assertDecreases);\nfunction assertDelta(delta, msg) {\n  if (msg) flag2(this, \"message\", msg);\n  let msgObj = flag2(this, \"deltaMsgObj\");\n  let initial = flag2(this, \"initialDeltaValue\");\n  let final = flag2(this, \"finalDeltaValue\");\n  let behavior = flag2(this, \"deltaBehavior\");\n  let realDelta = flag2(this, \"realDelta\");\n  let expression;\n  if (behavior === \"change\") {\n    expression = Math.abs(final - initial) === Math.abs(delta);\n  } else {\n    expression = realDelta === Math.abs(delta);\n  }\n  this.assert(\n    expression,\n    \"expected \" + msgObj + \" to \" + behavior + \" by \" + delta,\n    \"expected \" + msgObj + \" to not \" + behavior + \" by \" + delta\n  );\n}\n__name(assertDelta, \"assertDelta\");\nAssertion.addMethod(\"by\", assertDelta);\nAssertion.addProperty(\"extensible\", function() {\n  let obj = flag2(this, \"object\");\n  let isExtensible = obj === Object(obj) && Object.isExtensible(obj);\n  this.assert(\n    isExtensible,\n    \"expected #{this} to be extensible\",\n    \"expected #{this} to not be extensible\"\n  );\n});\nAssertion.addProperty(\"sealed\", function() {\n  let obj = flag2(this, \"object\");\n  let isSealed = obj === Object(obj) ? Object.isSealed(obj) : true;\n  this.assert(\n    isSealed,\n    \"expected #{this} to be sealed\",\n    \"expected #{this} to not be sealed\"\n  );\n});\nAssertion.addProperty(\"frozen\", function() {\n  let obj = flag2(this, \"object\");\n  let isFrozen = obj === Object(obj) ? Object.isFrozen(obj) : true;\n  this.assert(\n    isFrozen,\n    \"expected #{this} to be frozen\",\n    \"expected #{this} to not be frozen\"\n  );\n});\nAssertion.addProperty(\"finite\", function(_msg) {\n  let obj = flag2(this, \"object\");\n  this.assert(\n    typeof obj === \"number\" && isFinite(obj),\n    \"expected #{this} to be a finite number\",\n    \"expected #{this} to not be a finite number\"\n  );\n});\nfunction compareSubset(expected, actual) {\n  if (expected === actual) {\n    return true;\n  }\n  if (typeof actual !== typeof expected) {\n    return false;\n  }\n  if (typeof expected !== \"object\" || expected === null) {\n    return expected === actual;\n  }\n  if (!actual) {\n    return false;\n  }\n  if (Array.isArray(expected)) {\n    if (!Array.isArray(actual)) {\n      return false;\n    }\n    return expected.every(function(exp) {\n      return actual.some(function(act) {\n        return compareSubset(exp, act);\n      });\n    });\n  }\n  if (expected instanceof Date) {\n    if (actual instanceof Date) {\n      return expected.getTime() === actual.getTime();\n    } else {\n      return false;\n    }\n  }\n  return Object.keys(expected).every(function(key) {\n    let expectedValue = expected[key];\n    let actualValue = actual[key];\n    if (typeof expectedValue === \"object\" && expectedValue !== null && actualValue !== null) {\n      return compareSubset(expectedValue, actualValue);\n    }\n    if (typeof expectedValue === \"function\") {\n      return expectedValue(actualValue);\n    }\n    return actualValue === expectedValue;\n  });\n}\n__name(compareSubset, \"compareSubset\");\nAssertion.addMethod(\"containSubset\", function(expected) {\n  const actual = flag(this, \"object\");\n  const showDiff = config.showDiff;\n  this.assert(\n    compareSubset(expected, actual),\n    \"expected #{act} to contain subset #{exp}\",\n    \"expected #{act} to not contain subset #{exp}\",\n    expected,\n    actual,\n    showDiff\n  );\n});\n\n// lib/chai/interface/expect.js\nfunction expect(val, message) {\n  return new Assertion(val, message);\n}\n__name(expect, \"expect\");\nexpect.fail = function(actual, expected, message, operator) {\n  if (arguments.length < 2) {\n    message = actual;\n    actual = void 0;\n  }\n  message = message || \"expect.fail()\";\n  throw new AssertionError(\n    message,\n    {\n      actual,\n      expected,\n      operator\n    },\n    expect.fail\n  );\n};\n\n// lib/chai/interface/should.js\nvar should_exports = {};\n__export(should_exports, {\n  Should: () => Should,\n  should: () => should\n});\nfunction loadShould() {\n  function shouldGetter() {\n    if (this instanceof String || this instanceof Number || this instanceof Boolean || typeof Symbol === \"function\" && this instanceof Symbol || typeof BigInt === \"function\" && this instanceof BigInt) {\n      return new Assertion(this.valueOf(), null, shouldGetter);\n    }\n    return new Assertion(this, null, shouldGetter);\n  }\n  __name(shouldGetter, \"shouldGetter\");\n  function shouldSetter(value) {\n    Object.defineProperty(this, \"should\", {\n      value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  }\n  __name(shouldSetter, \"shouldSetter\");\n  Object.defineProperty(Object.prototype, \"should\", {\n    set: shouldSetter,\n    get: shouldGetter,\n    configurable: true\n  });\n  let should2 = {};\n  should2.fail = function(actual, expected, message, operator) {\n    if (arguments.length < 2) {\n      message = actual;\n      actual = void 0;\n    }\n    message = message || \"should.fail()\";\n    throw new AssertionError(\n      message,\n      {\n        actual,\n        expected,\n        operator\n      },\n      should2.fail\n    );\n  };\n  should2.equal = function(actual, expected, message) {\n    new Assertion(actual, message).to.equal(expected);\n  };\n  should2.Throw = function(fn, errt, errs, msg) {\n    new Assertion(fn, msg).to.Throw(errt, errs);\n  };\n  should2.exist = function(val, msg) {\n    new Assertion(val, msg).to.exist;\n  };\n  should2.not = {};\n  should2.not.equal = function(actual, expected, msg) {\n    new Assertion(actual, msg).to.not.equal(expected);\n  };\n  should2.not.Throw = function(fn, errt, errs, msg) {\n    new Assertion(fn, msg).to.not.Throw(errt, errs);\n  };\n  should2.not.exist = function(val, msg) {\n    new Assertion(val, msg).to.not.exist;\n  };\n  should2[\"throw\"] = should2[\"Throw\"];\n  should2.not[\"throw\"] = should2.not[\"Throw\"];\n  return should2;\n}\n__name(loadShould, \"loadShould\");\nvar should = loadShould;\nvar Should = loadShould;\n\n// lib/chai/interface/assert.js\nfunction assert(express, errmsg) {\n  let test2 = new Assertion(null, null, assert, true);\n  test2.assert(express, errmsg, \"[ negation message unavailable ]\");\n}\n__name(assert, \"assert\");\nassert.fail = function(actual, expected, message, operator) {\n  if (arguments.length < 2) {\n    message = actual;\n    actual = void 0;\n  }\n  message = message || \"assert.fail()\";\n  throw new AssertionError(\n    message,\n    {\n      actual,\n      expected,\n      operator\n    },\n    assert.fail\n  );\n};\nassert.isOk = function(val, msg) {\n  new Assertion(val, msg, assert.isOk, true).is.ok;\n};\nassert.isNotOk = function(val, msg) {\n  new Assertion(val, msg, assert.isNotOk, true).is.not.ok;\n};\nassert.equal = function(act, exp, msg) {\n  let test2 = new Assertion(act, msg, assert.equal, true);\n  test2.assert(\n    exp == flag(test2, \"object\"),\n    \"expected #{this} to equal #{exp}\",\n    \"expected #{this} to not equal #{act}\",\n    exp,\n    act,\n    true\n  );\n};\nassert.notEqual = function(act, exp, msg) {\n  let test2 = new Assertion(act, msg, assert.notEqual, true);\n  test2.assert(\n    exp != flag(test2, \"object\"),\n    \"expected #{this} to not equal #{exp}\",\n    \"expected #{this} to equal #{act}\",\n    exp,\n    act,\n    true\n  );\n};\nassert.strictEqual = function(act, exp, msg) {\n  new Assertion(act, msg, assert.strictEqual, true).to.equal(exp);\n};\nassert.notStrictEqual = function(act, exp, msg) {\n  new Assertion(act, msg, assert.notStrictEqual, true).to.not.equal(exp);\n};\nassert.deepEqual = assert.deepStrictEqual = function(act, exp, msg) {\n  new Assertion(act, msg, assert.deepEqual, true).to.eql(exp);\n};\nassert.notDeepEqual = function(act, exp, msg) {\n  new Assertion(act, msg, assert.notDeepEqual, true).to.not.eql(exp);\n};\nassert.isAbove = function(val, abv, msg) {\n  new Assertion(val, msg, assert.isAbove, true).to.be.above(abv);\n};\nassert.isAtLeast = function(val, atlst, msg) {\n  new Assertion(val, msg, assert.isAtLeast, true).to.be.least(atlst);\n};\nassert.isBelow = function(val, blw, msg) {\n  new Assertion(val, msg, assert.isBelow, true).to.be.below(blw);\n};\nassert.isAtMost = function(val, atmst, msg) {\n  new Assertion(val, msg, assert.isAtMost, true).to.be.most(atmst);\n};\nassert.isTrue = function(val, msg) {\n  new Assertion(val, msg, assert.isTrue, true).is[\"true\"];\n};\nassert.isNotTrue = function(val, msg) {\n  new Assertion(val, msg, assert.isNotTrue, true).to.not.equal(true);\n};\nassert.isFalse = function(val, msg) {\n  new Assertion(val, msg, assert.isFalse, true).is[\"false\"];\n};\nassert.isNotFalse = function(val, msg) {\n  new Assertion(val, msg, assert.isNotFalse, true).to.not.equal(false);\n};\nassert.isNull = function(val, msg) {\n  new Assertion(val, msg, assert.isNull, true).to.equal(null);\n};\nassert.isNotNull = function(val, msg) {\n  new Assertion(val, msg, assert.isNotNull, true).to.not.equal(null);\n};\nassert.isNaN = function(val, msg) {\n  new Assertion(val, msg, assert.isNaN, true).to.be.NaN;\n};\nassert.isNotNaN = function(value, message) {\n  new Assertion(value, message, assert.isNotNaN, true).not.to.be.NaN;\n};\nassert.exists = function(val, msg) {\n  new Assertion(val, msg, assert.exists, true).to.exist;\n};\nassert.notExists = function(val, msg) {\n  new Assertion(val, msg, assert.notExists, true).to.not.exist;\n};\nassert.isUndefined = function(val, msg) {\n  new Assertion(val, msg, assert.isUndefined, true).to.equal(void 0);\n};\nassert.isDefined = function(val, msg) {\n  new Assertion(val, msg, assert.isDefined, true).to.not.equal(void 0);\n};\nassert.isCallable = function(value, message) {\n  new Assertion(value, message, assert.isCallable, true).is.callable;\n};\nassert.isNotCallable = function(value, message) {\n  new Assertion(value, message, assert.isNotCallable, true).is.not.callable;\n};\nassert.isObject = function(val, msg) {\n  new Assertion(val, msg, assert.isObject, true).to.be.a(\"object\");\n};\nassert.isNotObject = function(val, msg) {\n  new Assertion(val, msg, assert.isNotObject, true).to.not.be.a(\"object\");\n};\nassert.isArray = function(val, msg) {\n  new Assertion(val, msg, assert.isArray, true).to.be.an(\"array\");\n};\nassert.isNotArray = function(val, msg) {\n  new Assertion(val, msg, assert.isNotArray, true).to.not.be.an(\"array\");\n};\nassert.isString = function(val, msg) {\n  new Assertion(val, msg, assert.isString, true).to.be.a(\"string\");\n};\nassert.isNotString = function(val, msg) {\n  new Assertion(val, msg, assert.isNotString, true).to.not.be.a(\"string\");\n};\nassert.isNumber = function(val, msg) {\n  new Assertion(val, msg, assert.isNumber, true).to.be.a(\"number\");\n};\nassert.isNotNumber = function(val, msg) {\n  new Assertion(val, msg, assert.isNotNumber, true).to.not.be.a(\"number\");\n};\nassert.isNumeric = function(val, msg) {\n  new Assertion(val, msg, assert.isNumeric, true).is.numeric;\n};\nassert.isNotNumeric = function(val, msg) {\n  new Assertion(val, msg, assert.isNotNumeric, true).is.not.numeric;\n};\nassert.isFinite = function(val, msg) {\n  new Assertion(val, msg, assert.isFinite, true).to.be.finite;\n};\nassert.isBoolean = function(val, msg) {\n  new Assertion(val, msg, assert.isBoolean, true).to.be.a(\"boolean\");\n};\nassert.isNotBoolean = function(val, msg) {\n  new Assertion(val, msg, assert.isNotBoolean, true).to.not.be.a(\"boolean\");\n};\nassert.typeOf = function(val, type3, msg) {\n  new Assertion(val, msg, assert.typeOf, true).to.be.a(type3);\n};\nassert.notTypeOf = function(value, type3, message) {\n  new Assertion(value, message, assert.notTypeOf, true).to.not.be.a(type3);\n};\nassert.instanceOf = function(val, type3, msg) {\n  new Assertion(val, msg, assert.instanceOf, true).to.be.instanceOf(type3);\n};\nassert.notInstanceOf = function(val, type3, msg) {\n  new Assertion(val, msg, assert.notInstanceOf, true).to.not.be.instanceOf(\n    type3\n  );\n};\nassert.include = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.include, true).include(inc);\n};\nassert.notInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.notInclude, true).not.include(inc);\n};\nassert.deepInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.deepInclude, true).deep.include(inc);\n};\nassert.notDeepInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.notDeepInclude, true).not.deep.include(inc);\n};\nassert.nestedInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.nestedInclude, true).nested.include(inc);\n};\nassert.notNestedInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.notNestedInclude, true).not.nested.include(\n    inc\n  );\n};\nassert.deepNestedInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.deepNestedInclude, true).deep.nested.include(\n    inc\n  );\n};\nassert.notDeepNestedInclude = function(exp, inc, msg) {\n  new Assertion(\n    exp,\n    msg,\n    assert.notDeepNestedInclude,\n    true\n  ).not.deep.nested.include(inc);\n};\nassert.ownInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.ownInclude, true).own.include(inc);\n};\nassert.notOwnInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.notOwnInclude, true).not.own.include(inc);\n};\nassert.deepOwnInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.deepOwnInclude, true).deep.own.include(inc);\n};\nassert.notDeepOwnInclude = function(exp, inc, msg) {\n  new Assertion(exp, msg, assert.notDeepOwnInclude, true).not.deep.own.include(\n    inc\n  );\n};\nassert.match = function(exp, re, msg) {\n  new Assertion(exp, msg, assert.match, true).to.match(re);\n};\nassert.notMatch = function(exp, re, msg) {\n  new Assertion(exp, msg, assert.notMatch, true).to.not.match(re);\n};\nassert.property = function(obj, prop, msg) {\n  new Assertion(obj, msg, assert.property, true).to.have.property(prop);\n};\nassert.notProperty = function(obj, prop, msg) {\n  new Assertion(obj, msg, assert.notProperty, true).to.not.have.property(prop);\n};\nassert.propertyVal = function(obj, prop, val, msg) {\n  new Assertion(obj, msg, assert.propertyVal, true).to.have.property(prop, val);\n};\nassert.notPropertyVal = function(obj, prop, val, msg) {\n  new Assertion(obj, msg, assert.notPropertyVal, true).to.not.have.property(\n    prop,\n    val\n  );\n};\nassert.deepPropertyVal = function(obj, prop, val, msg) {\n  new Assertion(obj, msg, assert.deepPropertyVal, true).to.have.deep.property(\n    prop,\n    val\n  );\n};\nassert.notDeepPropertyVal = function(obj, prop, val, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.notDeepPropertyVal,\n    true\n  ).to.not.have.deep.property(prop, val);\n};\nassert.ownProperty = function(obj, prop, msg) {\n  new Assertion(obj, msg, assert.ownProperty, true).to.have.own.property(prop);\n};\nassert.notOwnProperty = function(obj, prop, msg) {\n  new Assertion(obj, msg, assert.notOwnProperty, true).to.not.have.own.property(\n    prop\n  );\n};\nassert.ownPropertyVal = function(obj, prop, value, msg) {\n  new Assertion(obj, msg, assert.ownPropertyVal, true).to.have.own.property(\n    prop,\n    value\n  );\n};\nassert.notOwnPropertyVal = function(obj, prop, value, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.notOwnPropertyVal,\n    true\n  ).to.not.have.own.property(prop, value);\n};\nassert.deepOwnPropertyVal = function(obj, prop, value, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.deepOwnPropertyVal,\n    true\n  ).to.have.deep.own.property(prop, value);\n};\nassert.notDeepOwnPropertyVal = function(obj, prop, value, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.notDeepOwnPropertyVal,\n    true\n  ).to.not.have.deep.own.property(prop, value);\n};\nassert.nestedProperty = function(obj, prop, msg) {\n  new Assertion(obj, msg, assert.nestedProperty, true).to.have.nested.property(\n    prop\n  );\n};\nassert.notNestedProperty = function(obj, prop, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.notNestedProperty,\n    true\n  ).to.not.have.nested.property(prop);\n};\nassert.nestedPropertyVal = function(obj, prop, val, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.nestedPropertyVal,\n    true\n  ).to.have.nested.property(prop, val);\n};\nassert.notNestedPropertyVal = function(obj, prop, val, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.notNestedPropertyVal,\n    true\n  ).to.not.have.nested.property(prop, val);\n};\nassert.deepNestedPropertyVal = function(obj, prop, val, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.deepNestedPropertyVal,\n    true\n  ).to.have.deep.nested.property(prop, val);\n};\nassert.notDeepNestedPropertyVal = function(obj, prop, val, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.notDeepNestedPropertyVal,\n    true\n  ).to.not.have.deep.nested.property(prop, val);\n};\nassert.lengthOf = function(exp, len, msg) {\n  new Assertion(exp, msg, assert.lengthOf, true).to.have.lengthOf(len);\n};\nassert.hasAnyKeys = function(obj, keys, msg) {\n  new Assertion(obj, msg, assert.hasAnyKeys, true).to.have.any.keys(keys);\n};\nassert.hasAllKeys = function(obj, keys, msg) {\n  new Assertion(obj, msg, assert.hasAllKeys, true).to.have.all.keys(keys);\n};\nassert.containsAllKeys = function(obj, keys, msg) {\n  new Assertion(obj, msg, assert.containsAllKeys, true).to.contain.all.keys(\n    keys\n  );\n};\nassert.doesNotHaveAnyKeys = function(obj, keys, msg) {\n  new Assertion(obj, msg, assert.doesNotHaveAnyKeys, true).to.not.have.any.keys(\n    keys\n  );\n};\nassert.doesNotHaveAllKeys = function(obj, keys, msg) {\n  new Assertion(obj, msg, assert.doesNotHaveAllKeys, true).to.not.have.all.keys(\n    keys\n  );\n};\nassert.hasAnyDeepKeys = function(obj, keys, msg) {\n  new Assertion(obj, msg, assert.hasAnyDeepKeys, true).to.have.any.deep.keys(\n    keys\n  );\n};\nassert.hasAllDeepKeys = function(obj, keys, msg) {\n  new Assertion(obj, msg, assert.hasAllDeepKeys, true).to.have.all.deep.keys(\n    keys\n  );\n};\nassert.containsAllDeepKeys = function(obj, keys, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.containsAllDeepKeys,\n    true\n  ).to.contain.all.deep.keys(keys);\n};\nassert.doesNotHaveAnyDeepKeys = function(obj, keys, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.doesNotHaveAnyDeepKeys,\n    true\n  ).to.not.have.any.deep.keys(keys);\n};\nassert.doesNotHaveAllDeepKeys = function(obj, keys, msg) {\n  new Assertion(\n    obj,\n    msg,\n    assert.doesNotHaveAllDeepKeys,\n    true\n  ).to.not.have.all.deep.keys(keys);\n};\nassert.throws = function(fn, errorLike, errMsgMatcher, msg) {\n  if (\"string\" === typeof errorLike || errorLike instanceof RegExp) {\n    errMsgMatcher = errorLike;\n    errorLike = null;\n  }\n  let assertErr = new Assertion(fn, msg, assert.throws, true).to.throw(\n    errorLike,\n    errMsgMatcher\n  );\n  return flag(assertErr, \"object\");\n};\nassert.doesNotThrow = function(fn, errorLike, errMsgMatcher, message) {\n  if (\"string\" === typeof errorLike || errorLike instanceof RegExp) {\n    errMsgMatcher = errorLike;\n    errorLike = null;\n  }\n  new Assertion(fn, message, assert.doesNotThrow, true).to.not.throw(\n    errorLike,\n    errMsgMatcher\n  );\n};\nassert.operator = function(val, operator, val2, msg) {\n  let ok;\n  switch (operator) {\n    case \"==\":\n      ok = val == val2;\n      break;\n    case \"===\":\n      ok = val === val2;\n      break;\n    case \">\":\n      ok = val > val2;\n      break;\n    case \">=\":\n      ok = val >= val2;\n      break;\n    case \"<\":\n      ok = val < val2;\n      break;\n    case \"<=\":\n      ok = val <= val2;\n      break;\n    case \"!=\":\n      ok = val != val2;\n      break;\n    case \"!==\":\n      ok = val !== val2;\n      break;\n    default:\n      msg = msg ? msg + \": \" : msg;\n      throw new AssertionError(\n        msg + 'Invalid operator \"' + operator + '\"',\n        void 0,\n        assert.operator\n      );\n  }\n  let test2 = new Assertion(ok, msg, assert.operator, true);\n  test2.assert(\n    true === flag(test2, \"object\"),\n    \"expected \" + inspect2(val) + \" to be \" + operator + \" \" + inspect2(val2),\n    \"expected \" + inspect2(val) + \" to not be \" + operator + \" \" + inspect2(val2)\n  );\n};\nassert.closeTo = function(act, exp, delta, msg) {\n  new Assertion(act, msg, assert.closeTo, true).to.be.closeTo(exp, delta);\n};\nassert.approximately = function(act, exp, delta, msg) {\n  new Assertion(act, msg, assert.approximately, true).to.be.approximately(\n    exp,\n    delta\n  );\n};\nassert.sameMembers = function(set1, set2, msg) {\n  new Assertion(set1, msg, assert.sameMembers, true).to.have.same.members(set2);\n};\nassert.notSameMembers = function(set1, set2, msg) {\n  new Assertion(\n    set1,\n    msg,\n    assert.notSameMembers,\n    true\n  ).to.not.have.same.members(set2);\n};\nassert.sameDeepMembers = function(set1, set2, msg) {\n  new Assertion(\n    set1,\n    msg,\n    assert.sameDeepMembers,\n    true\n  ).to.have.same.deep.members(set2);\n};\nassert.notSameDeepMembers = function(set1, set2, msg) {\n  new Assertion(\n    set1,\n    msg,\n    assert.notSameDeepMembers,\n    true\n  ).to.not.have.same.deep.members(set2);\n};\nassert.sameOrderedMembers = function(set1, set2, msg) {\n  new Assertion(\n    set1,\n    msg,\n    assert.sameOrderedMembers,\n    true\n  ).to.have.same.ordered.members(set2);\n};\nassert.notSameOrderedMembers = function(set1, set2, msg) {\n  new Assertion(\n    set1,\n    msg,\n    assert.notSameOrderedMembers,\n    true\n  ).to.not.have.same.ordered.members(set2);\n};\nassert.sameDeepOrderedMembers = function(set1, set2, msg) {\n  new Assertion(\n    set1,\n    msg,\n    assert.sameDeepOrderedMembers,\n    true\n  ).to.have.same.deep.ordered.members(set2);\n};\nassert.notSameDeepOrderedMembers = function(set1, set2, msg) {\n  new Assertion(\n    set1,\n    msg,\n    assert.notSameDeepOrderedMembers,\n    true\n  ).to.not.have.same.deep.ordered.members(set2);\n};\nassert.includeMembers = function(superset, subset, msg) {\n  new Assertion(superset, msg, assert.includeMembers, true).to.include.members(\n    subset\n  );\n};\nassert.notIncludeMembers = function(superset, subset, msg) {\n  new Assertion(\n    superset,\n    msg,\n    assert.notIncludeMembers,\n    true\n  ).to.not.include.members(subset);\n};\nassert.includeDeepMembers = function(superset, subset, msg) {\n  new Assertion(\n    superset,\n    msg,\n    assert.includeDeepMembers,\n    true\n  ).to.include.deep.members(subset);\n};\nassert.notIncludeDeepMembers = function(superset, subset, msg) {\n  new Assertion(\n    superset,\n    msg,\n    assert.notIncludeDeepMembers,\n    true\n  ).to.not.include.deep.members(subset);\n};\nassert.includeOrderedMembers = function(superset, subset, msg) {\n  new Assertion(\n    superset,\n    msg,\n    assert.includeOrderedMembers,\n    true\n  ).to.include.ordered.members(subset);\n};\nassert.notIncludeOrderedMembers = function(superset, subset, msg) {\n  new Assertion(\n    superset,\n    msg,\n    assert.notIncludeOrderedMembers,\n    true\n  ).to.not.include.ordered.members(subset);\n};\nassert.includeDeepOrderedMembers = function(superset, subset, msg) {\n  new Assertion(\n    superset,\n    msg,\n    assert.includeDeepOrderedMembers,\n    true\n  ).to.include.deep.ordered.members(subset);\n};\nassert.notIncludeDeepOrderedMembers = function(superset, subset, msg) {\n  new Assertion(\n    superset,\n    msg,\n    assert.notIncludeDeepOrderedMembers,\n    true\n  ).to.not.include.deep.ordered.members(subset);\n};\nassert.oneOf = function(inList, list, msg) {\n  new Assertion(inList, msg, assert.oneOf, true).to.be.oneOf(list);\n};\nassert.isIterable = function(obj, msg) {\n  if (obj == void 0 || !obj[Symbol.iterator]) {\n    msg = msg ? `${msg} expected ${inspect2(obj)} to be an iterable` : `expected ${inspect2(obj)} to be an iterable`;\n    throw new AssertionError(msg, void 0, assert.isIterable);\n  }\n};\nassert.changes = function(fn, obj, prop, msg) {\n  if (arguments.length === 3 && typeof obj === \"function\") {\n    msg = prop;\n    prop = null;\n  }\n  new Assertion(fn, msg, assert.changes, true).to.change(obj, prop);\n};\nassert.changesBy = function(fn, obj, prop, delta, msg) {\n  if (arguments.length === 4 && typeof obj === \"function\") {\n    let tmpMsg = delta;\n    delta = prop;\n    msg = tmpMsg;\n  } else if (arguments.length === 3) {\n    delta = prop;\n    prop = null;\n  }\n  new Assertion(fn, msg, assert.changesBy, true).to.change(obj, prop).by(delta);\n};\nassert.doesNotChange = function(fn, obj, prop, msg) {\n  if (arguments.length === 3 && typeof obj === \"function\") {\n    msg = prop;\n    prop = null;\n  }\n  return new Assertion(fn, msg, assert.doesNotChange, true).to.not.change(\n    obj,\n    prop\n  );\n};\nassert.changesButNotBy = function(fn, obj, prop, delta, msg) {\n  if (arguments.length === 4 && typeof obj === \"function\") {\n    let tmpMsg = delta;\n    delta = prop;\n    msg = tmpMsg;\n  } else if (arguments.length === 3) {\n    delta = prop;\n    prop = null;\n  }\n  new Assertion(fn, msg, assert.changesButNotBy, true).to.change(obj, prop).but.not.by(delta);\n};\nassert.increases = function(fn, obj, prop, msg) {\n  if (arguments.length === 3 && typeof obj === \"function\") {\n    msg = prop;\n    prop = null;\n  }\n  return new Assertion(fn, msg, assert.increases, true).to.increase(obj, prop);\n};\nassert.increasesBy = function(fn, obj, prop, delta, msg) {\n  if (arguments.length === 4 && typeof obj === \"function\") {\n    let tmpMsg = delta;\n    delta = prop;\n    msg = tmpMsg;\n  } else if (arguments.length === 3) {\n    delta = prop;\n    prop = null;\n  }\n  new Assertion(fn, msg, assert.increasesBy, true).to.increase(obj, prop).by(delta);\n};\nassert.doesNotIncrease = function(fn, obj, prop, msg) {\n  if (arguments.length === 3 && typeof obj === \"function\") {\n    msg = prop;\n    prop = null;\n  }\n  return new Assertion(fn, msg, assert.doesNotIncrease, true).to.not.increase(\n    obj,\n    prop\n  );\n};\nassert.increasesButNotBy = function(fn, obj, prop, delta, msg) {\n  if (arguments.length === 4 && typeof obj === \"function\") {\n    let tmpMsg = delta;\n    delta = prop;\n    msg = tmpMsg;\n  } else if (arguments.length === 3) {\n    delta = prop;\n    prop = null;\n  }\n  new Assertion(fn, msg, assert.increasesButNotBy, true).to.increase(obj, prop).but.not.by(delta);\n};\nassert.decreases = function(fn, obj, prop, msg) {\n  if (arguments.length === 3 && typeof obj === \"function\") {\n    msg = prop;\n    prop = null;\n  }\n  return new Assertion(fn, msg, assert.decreases, true).to.decrease(obj, prop);\n};\nassert.decreasesBy = function(fn, obj, prop, delta, msg) {\n  if (arguments.length === 4 && typeof obj === \"function\") {\n    let tmpMsg = delta;\n    delta = prop;\n    msg = tmpMsg;\n  } else if (arguments.length === 3) {\n    delta = prop;\n    prop = null;\n  }\n  new Assertion(fn, msg, assert.decreasesBy, true).to.decrease(obj, prop).by(delta);\n};\nassert.doesNotDecrease = function(fn, obj, prop, msg) {\n  if (arguments.length === 3 && typeof obj === \"function\") {\n    msg = prop;\n    prop = null;\n  }\n  return new Assertion(fn, msg, assert.doesNotDecrease, true).to.not.decrease(\n    obj,\n    prop\n  );\n};\nassert.doesNotDecreaseBy = function(fn, obj, prop, delta, msg) {\n  if (arguments.length === 4 && typeof obj === \"function\") {\n    let tmpMsg = delta;\n    delta = prop;\n    msg = tmpMsg;\n  } else if (arguments.length === 3) {\n    delta = prop;\n    prop = null;\n  }\n  return new Assertion(fn, msg, assert.doesNotDecreaseBy, true).to.not.decrease(obj, prop).by(delta);\n};\nassert.decreasesButNotBy = function(fn, obj, prop, delta, msg) {\n  if (arguments.length === 4 && typeof obj === \"function\") {\n    let tmpMsg = delta;\n    delta = prop;\n    msg = tmpMsg;\n  } else if (arguments.length === 3) {\n    delta = prop;\n    prop = null;\n  }\n  new Assertion(fn, msg, assert.decreasesButNotBy, true).to.decrease(obj, prop).but.not.by(delta);\n};\nassert.ifError = function(val) {\n  if (val) {\n    throw val;\n  }\n};\nassert.isExtensible = function(obj, msg) {\n  new Assertion(obj, msg, assert.isExtensible, true).to.be.extensible;\n};\nassert.isNotExtensible = function(obj, msg) {\n  new Assertion(obj, msg, assert.isNotExtensible, true).to.not.be.extensible;\n};\nassert.isSealed = function(obj, msg) {\n  new Assertion(obj, msg, assert.isSealed, true).to.be.sealed;\n};\nassert.isNotSealed = function(obj, msg) {\n  new Assertion(obj, msg, assert.isNotSealed, true).to.not.be.sealed;\n};\nassert.isFrozen = function(obj, msg) {\n  new Assertion(obj, msg, assert.isFrozen, true).to.be.frozen;\n};\nassert.isNotFrozen = function(obj, msg) {\n  new Assertion(obj, msg, assert.isNotFrozen, true).to.not.be.frozen;\n};\nassert.isEmpty = function(val, msg) {\n  new Assertion(val, msg, assert.isEmpty, true).to.be.empty;\n};\nassert.isNotEmpty = function(val, msg) {\n  new Assertion(val, msg, assert.isNotEmpty, true).to.not.be.empty;\n};\nassert.containsSubset = function(val, exp, msg) {\n  new Assertion(val, msg).to.containSubset(exp);\n};\nassert.doesNotContainSubset = function(val, exp, msg) {\n  new Assertion(val, msg).to.not.containSubset(exp);\n};\nvar aliases = [\n  [\"isOk\", \"ok\"],\n  [\"isNotOk\", \"notOk\"],\n  [\"throws\", \"throw\"],\n  [\"throws\", \"Throw\"],\n  [\"isExtensible\", \"extensible\"],\n  [\"isNotExtensible\", \"notExtensible\"],\n  [\"isSealed\", \"sealed\"],\n  [\"isNotSealed\", \"notSealed\"],\n  [\"isFrozen\", \"frozen\"],\n  [\"isNotFrozen\", \"notFrozen\"],\n  [\"isEmpty\", \"empty\"],\n  [\"isNotEmpty\", \"notEmpty\"],\n  [\"isCallable\", \"isFunction\"],\n  [\"isNotCallable\", \"isNotFunction\"],\n  [\"containsSubset\", \"containSubset\"]\n];\nfor (const [name, as] of aliases) {\n  assert[as] = assert[name];\n}\n\n// lib/chai.js\nvar used = [];\nfunction use(fn) {\n  const exports = {\n    use,\n    AssertionError,\n    util: utils_exports,\n    config,\n    expect,\n    assert,\n    Assertion,\n    ...should_exports\n  };\n  if (!~used.indexOf(fn)) {\n    fn(exports, utils_exports);\n    used.push(fn);\n  }\n  return exports;\n}\n__name(use, \"use\");\nexport {\n  Assertion,\n  AssertionError,\n  Should,\n  assert,\n  config,\n  expect,\n  should,\n  use,\n  utils_exports as util\n};\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon-chai/lib/sinon-chai.js":{"lineLengths":[105,5602,4,0,11278],"data":{"version":3,"mappings":";suBAAA,wIAAe,SAAR,mBAAkB,KAAM,MAAO,CACpC,MAAM,MAAQ,MAAM,UAAU,MAE9B,SAAS,MAAM,YAAa,CAC1B,OACE,OAAO,cAAgB,YACvB,OAAO,YAAY,UAAY,YAC/B,OAAO,YAAY,oBAAsB,UAE7C,CANS,sBAQT,SAAS,aAAa,MAAO,CAC3B,OAAQ,MAAO,CACb,IAAK,GAAG,CACN,MAAO,MACT,CACA,IAAK,GAAG,CACN,MAAO,OACT,CACA,IAAK,GAAG,CACN,MAAO,QACT,CACA,QAAS,CACP,OAAQ,OAAS,GAAK,QACxB,CACF,CACF,CAfS,oCAiBT,SAAS,OAAO,aAAc,CAC5B,OAAO,cAAgB,MAAM,aAAa,KAAK,CACjD,CAFS,wBAIT,SAAS,kBAAkB,UAAW,CACpC,GAAI,CAAC,MAAM,UAAU,IAAI,GAAK,CAAC,OAAO,UAAU,IAAI,EAAG,CACrD,MAAM,IAAI,UACR,MAAM,QAAQ,UAAU,IAAI,EAAI,mCAClC,CACF,CACF,CANS,8CAQT,SAAS,YAAY,IAAK,OAAQ,iBAAkB,OAAQ,KAAM,CAChE,IAAI,WAAa,OAAS,eAAiB,QAC3C,iBAAmB,kBAAoB,GACvC,GAAI,MAAM,IAAI,KAAK,EAAG,CACpB,IAAM,IAAI,KACZ,CAEA,SAAS,YAAY,MAAO,CAC1B,OAAO,IAAI,OAAO,MAAM,IAAK,KAAK,CACpC,CAFS,kCAIT,MAAO,CACL,YAAa,iBAAY,CACvB,OAAO,YACL,CAAC,kBAAoB,WAAa,OAAS,gBAAgB,EAAE,OAC3D,IACF,CACF,CACF,EANa,eAOb,SAAU,iBAAY,CACpB,OAAO,YACL,CAAC,sBAAwB,WAAa,MAAM,EAAE,OAAO,IAAI,CAC3D,CACF,EAJU,WAKZ,CACF,CAzBS,kCA2BT,SAAS,cAAc,KAAM,OAAQ,iBAAkB,CACrD,MAAM,YAAY,KAAK,UAAU,UAAW,KAAM,UAAY,CAC5D,kBAAkB,IAAI,EAEtB,IAAI,SAAW,YAAY,KAAK,KAAM,OAAQ,iBAAkB,KAAK,EACrE,KAAK,OAAO,KAAK,KAAK,IAAI,EAAG,SAAS,YAAa,SAAS,QAAQ,CACtE,CAAC,CACH,CAPS,sCAST,SAAS,6BAA6B,KAAM,OAAQ,iBAAkB,CACpE,MAAM,UAAU,KAAK,UAAU,UAAW,KAAM,SAAU,IAAK,CAC7D,kBAAkB,IAAI,EAEtB,IAAI,SAAW,YAAY,KAAK,KAAM,OAAQ,iBAAkB,MAAO,CACrE,aAAa,GAAG,CAClB,CAAC,EACD,KAAK,OACH,KAAK,KAAK,IAAI,IAAM,IACpB,SAAS,YACT,SAAS,QACX,CACF,CAAC,CACH,CAbS,oEAeT,SAAS,yBAAyB,UAAW,OAAQ,iBAAkB,CACrE,OAAO,UAAY,CACjB,kBAAkB,IAAI,EAEtB,IAAI,kBACF,SAAW,UAAU,CAAC,EAAE,YAAY,EAAI,UAAU,UAAU,CAAC,EAC/D,IAAI,eACF,MAAM,KAAK,KAAM,QAAQ,GACzB,OAAO,KAAK,KAAK,iBAAiB,IAAM,WAC1C,IAAI,gBAAkB,eAAiB,kBAAoB,UAE3D,IAAI,SAAW,YACb,KAAK,KACL,OACA,iBACA,eACA,MAAM,KAAK,SAAS,CACtB,EACA,KAAK,OACH,KAAK,KAAK,eAAe,EAAE,MAAM,KAAK,KAAM,SAAS,EACrD,SAAS,YACT,SAAS,QACX,CACF,CACF,CAxBS,4DA0BT,SAAS,sBAAsB,KAAM,OAAQ,iBAAkB,CAC7D,IAAI,QAAU,yBAAyB,KAAM,OAAQ,gBAAgB,EACrE,MAAM,YAAY,KAAK,UAAU,UAAW,KAAM,OAAO,CAC3D,CAHS,sDAKT,SAAS,uBACP,SACA,UACA,OACA,iBACA,CACA,IAAI,QAAU,yBAAyB,UAAW,OAAQ,gBAAgB,EAC1E,MAAM,UAAU,KAAK,UAAU,UAAW,SAAU,OAAO,CAC7D,CARS,wDAUT,SAAS,YAAY,KAAM,OAAQ,iBAAkB,CACnD,uBAAuB,KAAM,KAAM,OAAQ,gBAAgB,CAC7D,CAFS,kCAIT,MAAM,YAAY,KAAK,UAAU,UAAW,SAAU,UAAY,CAChE,MAAM,KAAK,KAAM,SAAU,IAAI,CACjC,CAAC,EAED,cACE,SACA,cACA,yCACF,EACA,6BACE,YACA,yBACA,0BACF,EACA,cACE,aACA,2BACA,0BACF,EACA,cACE,cACA,4BACA,0BACF,EACA,cACE,eACA,6BACA,0BACF,EACA,sBAAsB,gBAAiB,sBAAsB,EAC7D,YAAY,eAAgB,uBAAuB,EACnD,YAAY,cAAe,sBAAsB,EACjD,YAAY,0BAA2B,mCAAmC,EAC1E,YAAY,yBAA0B,kCAAkC,EACxE,YACE,WACA,8BACA,qCACF,EACA,YAAY,aAAc,gCAAiC,IAAI,EAC/D,YACE,iBACA,6CACA,IACF,EACA,YAAY,oBAAqB,sCAAuC,IAAI,EAC5E,YACE,wBACA,mDACA,IACF,EACA,YACE,kBACA,yCACA,IACF,EACA,YAAY,WAAY,aAAa,EACrC,uBAAuB,SAAU,QAAS,WAAW,CACvD,CAlMO","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/node_modules/sinon-chai/lib/sinon-chai.js"],"sourcesContent":["export default function (chai, utils) {\n  const slice = Array.prototype.slice;\n\n  function isSpy(putativeSpy) {\n    return (\n      typeof putativeSpy === 'function' &&\n      typeof putativeSpy.getCall === 'function' &&\n      typeof putativeSpy.calledWithExactly === 'function'\n    );\n  }\n\n  function timesInWords(count) {\n    switch (count) {\n      case 1: {\n        return 'once';\n      }\n      case 2: {\n        return 'twice';\n      }\n      case 3: {\n        return 'thrice';\n      }\n      default: {\n        return (count || 0) + ' times';\n      }\n    }\n  }\n\n  function isCall(putativeCall) {\n    return putativeCall && isSpy(putativeCall.proxy);\n  }\n\n  function assertCanWorkWith(assertion) {\n    if (!isSpy(assertion._obj) && !isCall(assertion._obj)) {\n      throw new TypeError(\n        utils.inspect(assertion._obj) + ' is not a spy or a call to a spy!'\n      );\n    }\n  }\n\n  function getMessages(spy, action, nonNegatedSuffix, always, args) {\n    var verbPhrase = always ? 'always have ' : 'have ';\n    nonNegatedSuffix = nonNegatedSuffix || '';\n    if (isSpy(spy.proxy)) {\n      spy = spy.proxy;\n    }\n\n    function printfArray(array) {\n      return spy.printf.apply(spy, array);\n    }\n\n    return {\n      affirmative: function () {\n        return printfArray(\n          ['expected %n to ' + verbPhrase + action + nonNegatedSuffix].concat(\n            args\n          )\n        );\n      },\n      negative: function () {\n        return printfArray(\n          ['expected %n to not ' + verbPhrase + action].concat(args)\n        );\n      }\n    };\n  }\n\n  function sinonProperty(name, action, nonNegatedSuffix) {\n    utils.addProperty(chai.Assertion.prototype, name, function () {\n      assertCanWorkWith(this);\n\n      var messages = getMessages(this._obj, action, nonNegatedSuffix, false);\n      this.assert(this._obj[name], messages.affirmative, messages.negative);\n    });\n  }\n\n  function sinonPropertyAsBooleanMethod(name, action, nonNegatedSuffix) {\n    utils.addMethod(chai.Assertion.prototype, name, function (arg) {\n      assertCanWorkWith(this);\n\n      var messages = getMessages(this._obj, action, nonNegatedSuffix, false, [\n        timesInWords(arg)\n      ]);\n      this.assert(\n        this._obj[name] === arg,\n        messages.affirmative,\n        messages.negative\n      );\n    });\n  }\n\n  function createSinonMethodHandler(sinonName, action, nonNegatedSuffix) {\n    return function () {\n      assertCanWorkWith(this);\n\n      var alwaysSinonMethod =\n        'always' + sinonName[0].toUpperCase() + sinonName.substring(1);\n      var shouldBeAlways =\n        utils.flag(this, 'always') &&\n        typeof this._obj[alwaysSinonMethod] === 'function';\n      var sinonMethodName = shouldBeAlways ? alwaysSinonMethod : sinonName;\n\n      var messages = getMessages(\n        this._obj,\n        action,\n        nonNegatedSuffix,\n        shouldBeAlways,\n        slice.call(arguments)\n      );\n      this.assert(\n        this._obj[sinonMethodName].apply(this._obj, arguments),\n        messages.affirmative,\n        messages.negative\n      );\n    };\n  }\n\n  function sinonMethodAsProperty(name, action, nonNegatedSuffix) {\n    var handler = createSinonMethodHandler(name, action, nonNegatedSuffix);\n    utils.addProperty(chai.Assertion.prototype, name, handler);\n  }\n\n  function exceptionalSinonMethod(\n    chaiName,\n    sinonName,\n    action,\n    nonNegatedSuffix\n  ) {\n    var handler = createSinonMethodHandler(sinonName, action, nonNegatedSuffix);\n    utils.addMethod(chai.Assertion.prototype, chaiName, handler);\n  }\n\n  function sinonMethod(name, action, nonNegatedSuffix) {\n    exceptionalSinonMethod(name, name, action, nonNegatedSuffix);\n  }\n\n  utils.addProperty(chai.Assertion.prototype, 'always', function () {\n    utils.flag(this, 'always', true);\n  });\n\n  sinonProperty(\n    'called',\n    'been called',\n    ' at least once, but it was never called'\n  );\n  sinonPropertyAsBooleanMethod(\n    'callCount',\n    'been called exactly %1',\n    ', but it was called %c%C'\n  );\n  sinonProperty(\n    'calledOnce',\n    'been called exactly once',\n    ', but it was called %c%C'\n  );\n  sinonProperty(\n    'calledTwice',\n    'been called exactly twice',\n    ', but it was called %c%C'\n  );\n  sinonProperty(\n    'calledThrice',\n    'been called exactly thrice',\n    ', but it was called %c%C'\n  );\n  sinonMethodAsProperty('calledWithNew', 'been called with new');\n  sinonMethod('calledBefore', 'been called before %1');\n  sinonMethod('calledAfter', 'been called after %1');\n  sinonMethod('calledImmediatelyBefore', 'been called immediately before %1');\n  sinonMethod('calledImmediatelyAfter', 'been called immediately after %1');\n  sinonMethod(\n    'calledOn',\n    'been called with %1 as this',\n    ', but it was called with %t instead'\n  );\n  sinonMethod('calledWith', 'been called with arguments %*', '%D');\n  sinonMethod(\n    'calledOnceWith',\n    'been called exactly once with arguments %*',\n    '%D'\n  );\n  sinonMethod('calledWithExactly', 'been called with exact arguments %*', '%D');\n  sinonMethod(\n    'calledOnceWithExactly',\n    'been called exactly once with exact arguments %*',\n    '%D'\n  );\n  sinonMethod(\n    'calledWithMatch',\n    'been called with arguments matching %*',\n    '%D'\n  );\n  sinonMethod('returned', 'returned %1');\n  exceptionalSinonMethod('thrown', 'threw', 'thrown %1');\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/types.ts":{"lineLengths":[76,10824,4,0,24086],"data":{"version":3,"mappings":"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","names":["Move","ChartMove","HandWinner","ChartType","GameStep","Suit","Rank","PlayerStrategy","BlackjackPayout","GameMode"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/types.ts"],"sourcesContent":["export enum Move {\n  AskInsurance,\n  Double,\n  Hit,\n  NoInsurance,\n  Split,\n  Stand,\n  Surrender,\n}\n\nexport enum ChartMove {\n  // TODO: DRY with `Move`?\n  AskInsurance,\n  Double,\n  Hit,\n  NoInsurance,\n  Split,\n  Stand,\n  Surrender,\n\n  DoubleOrHit,\n  DoubleOrStand,\n  SplitOrDouble,\n  SplitOrHit,\n  SplitOrStand,\n  SurrenderOrHit,\n  SurrenderOrSplit,\n  SurrenderOrStand,\n}\n\nexport enum HandWinner {\n  Player,\n  Dealer,\n  Push,\n}\n\nexport enum ChartType {\n  Hard,\n  Soft,\n  Splits,\n}\n\nexport enum GameStep {\n  PlayHandsLeft,\n  PlayHandsRight,\n  Start,\n  WaitingForInsuranceInput,\n  WaitingForNewGameInput,\n  WaitingForPlayInput,\n}\n\nexport enum Suit {\n  Hearts,\n  Diamonds,\n  Clubs,\n  Spades,\n}\n\nexport enum Rank {\n  Ace,\n  Two,\n  Three,\n  Four,\n  Five,\n  Six,\n  Seven,\n  Eight,\n  Nine,\n  Ten,\n  Jack,\n  Queen,\n  King,\n}\n\nexport enum PlayerStrategy {\n  UserInput,\n  BasicStrategy,\n  BasicStrategyI18,\n  BasicStrategyI18Fab4,\n  Dealer,\n}\n\nexport enum BlackjackPayout {\n  ThreeToTwo,\n  SixToFive,\n}\n\nexport enum GameMode {\n  Default,\n  Pairs,\n  Uncommon,\n  Deviations,\n}\n\nexport type playerTotal = number;\nexport type dealerCard = number;\n\nexport type Comparator = '<' | '>=';\ntype Index = number;\n\nexport type Deviation = {\n  correctMove: Move;\n  index: [Comparator, Index];\n  fab4?: boolean;\n};\n\nexport type Deviations = Map<playerTotal, Map<dealerCard, Deviation>>;\n\nexport type CheckResult =\n  | {\n      result: false;\n      code: Move;\n      hint: string;\n    }\n  | {\n      result: true;\n      code: null;\n      hint: null;\n    };\n\nexport type CheckDeviationResult = CheckResult & { deviation: Deviation };\n\nexport type BasicStrategyChart = Map<ChartType, ChartMove[][]>;\nexport type UncommonChart = Map<ChartType, Map<number, number[]>>;\n\nexport type SimpleObject = {\n  [key: string]: unknown;\n};\n\n// See https://github.com/microsoft/TypeScript/pull/12253#issuecomment-353494273\nexport function keys<T extends Record<string, unknown>>(o: T): (keyof T)[] {\n  return Object.keys(o) as (keyof T)[];\n}\n\n// See https://github.com/microsoft/TypeScript/pull/12253#issuecomment-479851685\nexport function entries<T extends Record<string, unknown>>(\n  o: T,\n): [keyof T, T[keyof T]][] {\n  return Object.entries(o) as [keyof T, T[keyof T]][];\n}\n\nexport function enumValues<T extends Record<string, unknown>>(\n  object: T,\n): T[keyof T][] {\n  return Object.values(object).filter(\n    (value) => typeof value === 'number',\n  ) as T[keyof T][];\n}\n\n// export const values = <_, T>(enum: T) => { Object.values(enum).filter(value => typeof value === 'number') }\n\n// export const values = Object.values as <T>(o: T) => T[keyof T][];\n\n// TODO: Consolidate types so we can remove this converter function?\nexport function cardValueToRank(value: number): Rank {\n  switch (value) {\n    case 2:\n      return Rank.Two;\n    case 3:\n      return Rank.Three;\n    case 4:\n      return Rank.Four;\n    case 5:\n      return Rank.Five;\n    case 6:\n      return Rank.Six;\n    case 7:\n      return Rank.Seven;\n    case 8:\n      return Rank.Eight;\n    case 9:\n      return Rank.Nine;\n    case 10:\n      // We could return `Rank.Jack`, `Rank.Queen` or `Rank.King` as well. We\n      // arbitrarily choose `Rank.Ten`.\n      return Rank.Ten;\n    case 1:\n    case 11:\n      return Rank.Ace;\n    default:\n      throw new Error(`Unexpected value ${value}`);\n  }\n}\n\n// TODO: Consolidate types so we can remove this converter function?\nexport function cardRankToValue(cardRank: Rank): number {\n  switch (cardRank) {\n    case Rank.Two:\n      return 2;\n    case Rank.Three:\n      return 3;\n    case Rank.Four:\n      return 4;\n    case Rank.Five:\n      return 5;\n    case Rank.Six:\n      return 6;\n    case Rank.Seven:\n      return 7;\n    case Rank.Eight:\n      return 8;\n    case Rank.Nine:\n      return 9;\n    case Rank.Ten:\n    case Rank.King:\n    case Rank.Queen:\n    case Rank.Jack:\n      return 10;\n    case Rank.Ace:\n      return 11;\n    default:\n      throw new Error(`Unexpected card rank ${cardRank}`);\n  }\n}\n\n// TODO: Consolidate types so we can remove this converter function?\nexport function chartMoveToCorrectMove(chartMove: ChartMove): Move {\n  switch (chartMove) {\n    case ChartMove.AskInsurance:\n      return Move.AskInsurance;\n    case ChartMove.Double:\n      return Move.Double;\n    case ChartMove.Hit:\n      return Move.Hit;\n    case ChartMove.NoInsurance:\n      return Move.NoInsurance;\n    case ChartMove.Split:\n      return Move.Split;\n    case ChartMove.Stand:\n      return Move.Stand;\n    case ChartMove.Surrender:\n      return Move.Surrender;\n    default:\n      throw new Error(`Unexpected chart move ${chartMove}`);\n  }\n}\n\n// TODO: Consolidate types so we can remove this converter functions?\nexport function actionDataKeyToCorrectMove(\n  actionDataKey: string,\n): Move | undefined {\n  if (!actionDataKey) {\n    return;\n  }\n\n  switch (actionDataKey) {\n    case 'y':\n      return Move.AskInsurance;\n    case 'd':\n      return Move.Double;\n    case 'n':\n      return Move.NoInsurance;\n    case 'p':\n      return Move.Split;\n    case 's':\n      return Move.Stand;\n    case 'r':\n      return Move.Surrender;\n    case 'h':\n      return Move.Hit;\n  }\n}\n\nfunction convertCodeToChartMove(code: string): ChartMove {\n  switch (code) {\n    case 'Y':\n      return ChartMove.AskInsurance;\n    case 'D':\n      return ChartMove.Double;\n    case 'H':\n      return ChartMove.Hit;\n    case 'N':\n      return ChartMove.NoInsurance;\n    case 'P':\n      return ChartMove.Split;\n    case 'S':\n      return ChartMove.Stand;\n    case 'R':\n      return ChartMove.Surrender;\n    case 'Dh':\n      return ChartMove.DoubleOrHit;\n    case 'Ds':\n      return ChartMove.DoubleOrStand;\n    case 'Pd':\n      return ChartMove.SplitOrDouble;\n    case 'Ph':\n      return ChartMove.SplitOrHit;\n    case 'Ps':\n      return ChartMove.SplitOrStand;\n    case 'Rh':\n      return ChartMove.SurrenderOrHit;\n    case 'Rp':\n      return ChartMove.SurrenderOrSplit;\n    case 'Rs':\n      return ChartMove.SurrenderOrStand;\n    default:\n      throw new Error(`Invalid code ${code}`);\n  }\n}\n\n// TODO: Check if AssemblyScript supports string enums. If so, can remove this.\nexport function handWinnerToString(handWinner: HandWinner): string {\n  switch (handWinner) {\n    case HandWinner.Dealer:\n      return 'dealer';\n    case HandWinner.Player:\n      return 'player';\n    case HandWinner.Push:\n      return 'push';\n    default:\n      throw new Error(`Unexpected hand winner ${handWinner}`);\n  }\n}\n\n// TODO: Check if AssemblyScript supports string enums. If so, can remove this.\nexport function suitToString(suit: Suit): string {\n  switch (suit) {\n    case Suit.Hearts:\n      return 'h';\n    case Suit.Diamonds:\n      return 'd';\n    case Suit.Clubs:\n      return 'c';\n    case Suit.Spades:\n      return 's';\n    default:\n      throw new Error(`Unexpected suit ${suit}`);\n  }\n}\n\n// TODO: Check if AssemblyScript supports string enums. If so, can remove this.\nexport function rankToString(rank: Rank): string {\n  switch (rank) {\n    case Rank.Ace:\n      return 'A';\n    case Rank.Two:\n      return '2';\n    case Rank.Three:\n      return '3';\n    case Rank.Four:\n      return '4';\n    case Rank.Five:\n      return '5';\n    case Rank.Six:\n      return '6';\n    case Rank.Seven:\n      return '7';\n    case Rank.Eight:\n      return '8';\n    case Rank.Nine:\n      return '9';\n    case Rank.Ten:\n      return 'T';\n    case Rank.Jack:\n      return 'J';\n    case Rank.Queen:\n      return 'Q';\n    case Rank.King:\n      return 'K';\n    default:\n      throw new Error(`Unexpected rank ${rank}`);\n  }\n}\n\n// TODO: Check if AssemblyScript supports string enums. If so, can remove this.\nexport function playerStrategyToString(playerStrategy: PlayerStrategy): string {\n  switch (playerStrategy) {\n    case PlayerStrategy.BasicStrategy:\n      return 'basic-strategy';\n    case PlayerStrategy.BasicStrategyI18:\n      return 'basic-strategy-i18';\n    case PlayerStrategy.BasicStrategyI18Fab4:\n      return 'basic-strategy-i18-fab4';\n    case PlayerStrategy.Dealer:\n      return 'dealer';\n    case PlayerStrategy.UserInput:\n      return 'user-input';\n    default:\n      throw new Error(`Unexpected player strategy ${playerStrategy}`);\n  }\n}\n\nexport function parsePlayerStrategy(\n  playerStrategy: string | undefined,\n): PlayerStrategy | undefined {\n  if (playerStrategy === undefined) {\n    return;\n  }\n\n  switch (playerStrategy) {\n    case 'basic-strategy-i18-fab4':\n      return PlayerStrategy.BasicStrategyI18Fab4;\n    case 'basic-strategy-i18':\n      return PlayerStrategy.BasicStrategyI18;\n    case 'basic-strategy':\n      return PlayerStrategy.BasicStrategy;\n    case 'dealer':\n      return PlayerStrategy.Dealer;\n    case 'user-input':\n      return PlayerStrategy.UserInput;\n    default:\n      throw new Error(`Unexpected player strategy ${playerStrategy}`);\n  }\n}\n\n// TODO: Check if AssemblyScript supports string enums. If so, can remove this.\nexport function moveToString(move: Move): string {\n  switch (move) {\n    case Move.AskInsurance:\n      return 'AskInsurance';\n    case Move.Double:\n      return 'Double';\n    case Move.Hit:\n      return 'Hit';\n    case Move.NoInsurance:\n      return 'NoInsurance';\n    case Move.Split:\n      return 'Split';\n    case Move.Stand:\n      return 'Stand';\n    case Move.Surrender:\n      return 'Surrender';\n    default:\n      throw new Error(`Unexpected move ${move}`);\n  }\n}\n\n// TODO: Check if AssemblyScript supports string enums. If so, can remove this.\nexport function blackjackPayoutToString(\n  blackjackPayout: BlackjackPayout,\n): string {\n  switch (blackjackPayout) {\n    case BlackjackPayout.ThreeToTwo:\n      return '3:2';\n    case BlackjackPayout.SixToFive:\n      return '6:5';\n    default:\n      throw new Error(`Unexpected blackjack payout ${blackjackPayout}`);\n  }\n}\n\nexport function parseBlackjackPayout(\n  blackjackPayout: string | undefined,\n): BlackjackPayout | undefined {\n  if (blackjackPayout === undefined) {\n    return;\n  }\n\n  switch (blackjackPayout) {\n    case '3:2':\n      return BlackjackPayout.ThreeToTwo;\n    case '6:5':\n      return BlackjackPayout.SixToFive;\n    default:\n      throw new Error(`Unexpected blackjack payout ${blackjackPayout}`);\n  }\n}\n\n// TODO: Check if AssemblyScript supports string enums. If so, can remove this.\nexport function gameModeToString(mode: GameMode): string {\n  switch (mode) {\n    case GameMode.Default:\n      return 'default';\n    case GameMode.Pairs:\n      return 'pairs';\n    case GameMode.Uncommon:\n      return 'uncommon';\n    case GameMode.Deviations:\n      return 'deviations';\n    default:\n      throw new Error(`Unexpected game mode ${mode}`);\n  }\n}\n\nexport function parseGameMode(mode: string | undefined): GameMode | undefined {\n  if (mode === undefined) {\n    return;\n  }\n\n  switch (mode) {\n    case 'default':\n      return GameMode.Default;\n    case 'pairs':\n      return GameMode.Pairs;\n    case 'uncommon':\n      return GameMode.Uncommon;\n    case 'deviations':\n      return GameMode.Deviations;\n    default:\n      throw new Error(`Unexpected game mode ${mode}`);\n  }\n}\n\nfunction convertSubChartToChartMove(\n  subchart: string[][] | undefined,\n): ChartMove[][] {\n  if (!subchart) {\n    throw new Error('Subchart not found');\n  }\n\n  return subchart.map((row) => row.map(convertCodeToChartMove));\n}\n\nexport function convertToChartMove(\n  chart: Map<ChartType, string[][]>,\n): BasicStrategyChart {\n  return new Map([\n    [ChartType.Hard, convertSubChartToChartMove(chart.get(ChartType.Hard))],\n    [ChartType.Soft, convertSubChartToChartMove(chart.get(ChartType.Soft))],\n    [ChartType.Splits, convertSubChartToChartMove(chart.get(ChartType.Splits))],\n  ]);\n}\n\nexport type TableRules = {\n  allowDoubleAfterSplit: boolean;\n  allowLateSurrender: boolean;\n  allowResplitAces: boolean;\n  blackjackPayout: BlackjackPayout;\n  deckCount: number;\n  hitSoft17: boolean;\n  maxHandsAllowed: number;\n  maximumBet: number;\n  minimumBet: number;\n  playerCount: number;\n  penetration: number;\n};\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/browser/player-input-reader.ts":{"lineLengths":[98,1789,4,0,2606],"data":{"version":3,"mappings":";mvBAAA,qKACA,iBAAiD,oBAEjD,MAAO,oBAAgE,CAHvE,MAGuE,qCACrE,UAAU,SAAwC,CAChD,MAAM,gBAAkB,OAAC,OAAyB,CAChD,MAAM,UAAS,yCAA2B,MAAM,GAAG,EACnD,GAAI,SAAW,OAAW,CACxB,SAAS,KAAK,oBAAoB,WAAY,eAAe,EAC7D,SAAS,KAAK,oBAAoB,QAAS,YAAY,EACvD,SAAS,MAAM,CACjB,CACF,EAPwB,mBASxB,SAAS,KAAK,iBAAiB,WAAY,eAAe,EAE1D,MAAM,aAAe,OAAC,OAAiB,CACrC,GAAI,EAAE,MAAM,kBAAkB,aAAc,CAC1C,MACF,CAEA,MAAM,UAAS,yCACb,MAAM,QAAQ,QAAQ,QAAU,EAClC,EAEA,GAAI,SAAW,OAAW,CACxB,SAAS,KAAK,oBAAoB,WAAY,eAAe,EAC7D,SAAS,KAAK,oBAAoB,QAAS,YAAY,EACvD,SAAS,MAAM,CACjB,CACF,EAdqB,gBAgBrB,SAAS,KAAK,iBAAiB,QAAS,YAAY,CACtD,CACF","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/browser/player-input-reader.ts"],"sourcesContent":["import PlayerInputReader from '../player-input-reader';\nimport { actionDataKeyToCorrectMove, Move } from '../types';\n\nexport default class DOMPlayerInputReader implements PlayerInputReader {\n  readInput(callback: (action: Move) => void): void {\n    const keypressHandler = (event: KeyboardEvent) => {\n      const action = actionDataKeyToCorrectMove(event.key);\n      if (action !== undefined) {\n        document.body.removeEventListener('keypress', keypressHandler);\n        document.body.removeEventListener('click', clickHandler);\n        callback(action);\n      }\n    };\n\n    document.body.addEventListener('keypress', keypressHandler);\n\n    const clickHandler = (event: Event) => {\n      if (!(event.target instanceof HTMLElement)) {\n        return;\n      }\n\n      const action = actionDataKeyToCorrectMove(\n        event.target?.dataset.action ?? '',\n      );\n\n      if (action !== undefined) {\n        document.body.removeEventListener('keypress', keypressHandler);\n        document.body.removeEventListener('click', clickHandler);\n        callback(action);\n      }\n    };\n\n    document.body.addEventListener('click', clickHandler);\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/card.ts":{"lineLengths":[80,2110,4,0,3310],"data":{"version":3,"mappings":";4uBAAA,gBAAuB,gBACvB,iBAAkB,0BAElB,gBAA0B,0BAC1B,gBAAiB,mCACjB,iBAAsC,2BAEtC,SAAS,kBAAmB,UAAY,CACtC,GAAG,iCAAkC,UAAY,CAC/C,MAAM,YAAc,OACpB,oBAAO,OAAM,8BAAgB,WAAW,CAAC,EAAE,GAAG,MAAM,sBAAsB,CAC5E,CAAC,CACH,CAAC,EAED,SAAS,YAAa,UAAY,CAChC,GAAG,iCAAkC,UAAY,CAC/C,MAAM,YAAc,OACpB,oBAAO,OAAM,uBAAU,WAAW,CAAC,EAAE,GAAG,MAAM,iBAAiB,CACjE,CAAC,CACH,CAAC,EAED,SAAS,YAAa,UAAY,CAChC,GAAG,2DAA4D,UAAY,CACzE,MAAM,KAAO,IAAI,YAAAA,QAAK,CAAE,YAAa,EAAG,oBAAqB,CAAE,CAAC,EAChE,MAAM,KAAO,KAAK,KAElB,MAAM,KAAO,KAAK,SAAS,CAAE,YAAa,KAAM,CAAC,EACjD,MAAM,eAAiB,KAAK,oBAE5B,oBAAO,KAAK,WAAW,EAAE,GAAG,MAAM,KAAK,EAEvC,MAAM,YAAc,aAAAC,QAAM,IAAI,KAAM,YAAY,EAChD,MAAM,YAAc,aAAAA,QAAM,IAAI,KAAM,YAAY,EAEhD,KAAK,KAAK,KAEV,oBAAO,KAAK,gBAAgB,EAAE,GAAG,MAAM,eAAiB,KAAK,SAAS,KACtE,oBAAO,YAAY,SAAS,EAAE,GAAG,MAAM,CAAC,KACxC,oBAAO,YAAY,SAAS,EAAE,GAAG,MAAM,CAAC,EAExC,YAAY,QAAQ,EACpB,YAAY,QAAQ,CACtB,CAAC,CACH,CAAC","names":["Game","sinon"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/card.ts"],"sourcesContent":["import { expect } from 'chai';\nimport sinon from 'sinon';\n\nimport { hiLoValue } from '../../src/card';\nimport Game from '../../src/game';\nimport { Rank, cardRankToValue } from '../../src/types';\n\ndescribe('cardRankToValue', function () {\n  it('throws for invalid rank values', function () {\n    const invalidRank = 999 as Rank;\n    expect(() => cardRankToValue(invalidRank)).to.throw('Unexpected card rank');\n  });\n});\n\ndescribe('hiLoValue', function () {\n  it('throws for invalid rank values', function () {\n    const invalidRank = 999 as Rank;\n    expect(() => hiLoValue(invalidRank)).to.throw('Unexpected rank');\n  });\n});\n\ndescribe('Card#flip', function () {\n  it('calls shoe.emitChange() after updating the running count', function () {\n    const game = new Game({ playerCount: 1, playerTablePosition: 1 });\n    const shoe = game.shoe;\n\n    const card = shoe.drawCard({ showingFace: false });\n    const countAfterDraw = shoe.hiLoRunningCount;\n\n    expect(card.showingFace).to.equal(false);\n\n    const shoeEmitSpy = sinon.spy(shoe, 'emitChange');\n    const cardEmitSpy = sinon.spy(card, 'emitChange');\n\n    card.flip();\n\n    expect(shoe.hiLoRunningCount).to.equal(countAfterDraw + card.hiLoValue);\n    expect(shoeEmitSpy.callCount).to.equal(1);\n    expect(cardEmitSpy.callCount).to.equal(1);\n\n    shoeEmitSpy.restore();\n    cardEmitSpy.restore();\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/card.ts":{"lineLengths":[75,2455,4,0,3662],"data":{"version":3,"mappings":";8/BAAA,uJAAuB,kCACvB,iBAAkB,4BAElB,iBAMO,mBASA,SAAS,UAAU,KAAoB,CAC5C,OAAQ,KAAM,CACZ,KAAK,kBAAK,IACV,KAAK,kBAAK,KACV,KAAK,kBAAK,MACV,KAAK,kBAAK,KACV,KAAK,kBAAK,IACR,MAAO,GACT,KAAK,kBAAK,KACV,KAAK,kBAAK,MACV,KAAK,kBAAK,MACR,MAAO,GACT,KAAK,kBAAK,IACV,KAAK,kBAAK,KACV,KAAK,kBAAK,KACV,KAAK,kBAAK,MACV,KAAK,kBAAK,IACR,MAAO,GACT,QACE,MAAM,IAAI,MAAM,mBAAmB,IAAI,EAAE,CAC7C,CACF,CArBgB,8BAuBhB,MAAO,aAA2B,mBAAAA,OAAW,CAW3C,YAAY,KAAY,KAAY,KAAY,CAC9C,MAAM,EAXR,gBAAa,OAaX,KAAK,GAAK,aAAAC,QAAM,SAAS,EACzB,KAAK,KAAO,KACZ,KAAK,KAAO,KACZ,KAAK,KAAO,KACZ,KAAK,YAAc,KACnB,KAAK,SAAQ,8BAAgB,IAAI,EACjC,KAAK,UAAY,UAAU,IAAI,CACjC,CA9DF,MAyC6C,qBAuB3C,MAAa,CACX,KAAK,YAAc,CAAC,KAAK,YACzB,KAAK,KAAK,mBAAqB,KAAK,YAAc,EAAI,IAAM,KAAK,UACjE,KAAK,KAAK,WAAW,EACrB,KAAK,WAAW,CAClB,CAEA,YAA6B,CAC3B,MAAO,CACL,GAAI,KAAK,GACT,QAAM,2BAAa,KAAK,IAAI,EAC5B,QAAM,2BAAa,KAAK,IAAI,EAC5B,YAAa,KAAK,WACpB,CACF,CACF","names":["GameObject","Utils"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/card.ts"],"sourcesContent":["import GameObject from './game-object';\nimport Utils from './utils';\nimport Shoe from './shoe';\nimport {\n  Suit,\n  Rank,\n  cardRankToValue,\n  suitToString,\n  rankToString,\n} from './types';\n\nexport type CardAttributes = {\n  id: string;\n  suit: string;\n  rank: string;\n  showingFace: boolean;\n};\n\nexport function hiLoValue(rank: Rank): number {\n  switch (rank) {\n    case Rank.Ace:\n    case Rank.King:\n    case Rank.Queen:\n    case Rank.Jack:\n    case Rank.Ten:\n      return -1;\n    case Rank.Nine:\n    case Rank.Eight:\n    case Rank.Seven:\n      return 0;\n    case Rank.Six:\n    case Rank.Five:\n    case Rank.Four:\n    case Rank.Three:\n    case Rank.Two:\n      return 1;\n    default:\n      throw new Error(`Unexpected rank ${rank}`);\n  }\n}\n\nexport default class Card extends GameObject {\n  entityName = 'card';\n\n  id: string;\n  suit: Suit;\n  rank: Rank;\n  shoe: Shoe;\n  showingFace: boolean;\n  value: number;\n  hiLoValue: number;\n\n  constructor(suit: Suit, rank: Rank, shoe: Shoe) {\n    super();\n\n    this.id = Utils.randomId();\n    this.suit = suit;\n    this.rank = rank;\n    this.shoe = shoe;\n    this.showingFace = true;\n    this.value = cardRankToValue(rank);\n    this.hiLoValue = hiLoValue(rank);\n  }\n\n  flip(): void {\n    this.showingFace = !this.showingFace;\n    this.shoe.hiLoRunningCount += (this.showingFace ? 1 : -1) * this.hiLoValue;\n    this.shoe.emitChange();\n    this.emitChange();\n  }\n\n  attributes(): CardAttributes {\n    return {\n      id: this.id,\n      suit: suitToString(this.suit),\n      rank: rankToString(this.rank),\n      showingFace: this.showingFace,\n    };\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/game-object.ts":{"lineLengths":[82,1573,4,0,1610],"data":{"version":3,"mappings":";8/BAAA,4JAAoC,oCAGpC,MAAO,mBAAiC,qBAAAA,OAAuB,CAA/D,kCAIE,gBAAa,GAEb,gBAAa,WAAY,CAGvB,GAAI,CAAC,qBAAAA,QAAa,cAAe,CAC/B,KAAK,KAAK,2BAAM,OAAQ,KAAK,WAAY,KAAK,WAAW,CAAC,CAC5D,CACF,EANa,cATf,MAG+D,2BAc7D,YAA0B,CACxB,MAAM,IAAI,MAAM,gBAAgB,CAClC,CACF","names":["EventEmitter"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/game-object.ts"],"sourcesContent":["import EventEmitter, { Event } from './event-emitter';\nimport type { EventMap, ChangeValue } from './event-types';\n\nexport default class GameObject extends EventEmitter<EventMap> {\n  // NOTE: Implement this in a subclass. We use an instance property instead of\n  // accessing the static via this.constructor because TypeScript types\n  // this.constructor as Function, which would require a cast.\n  entityName = '';\n\n  emitChange = (): void => {\n    // We need this here to prevent the expensive `attributes()` call during\n    // simulator runs.\n    if (!EventEmitter.disableEvents) {\n      this.emit(Event.Change, this.entityName, this.attributes());\n    }\n  };\n\n  attributes(): ChangeValue {\n    throw new Error('Implement this');\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/event-emitter.ts":{"lineLengths":[84,1980,4,0,3986],"data":{"version":3,"mappings":";mvBAAA,2JAIO,IAAK,OAAAA,QAAL,CACLA,cAAA,UAAS,GAAT,SACAA,cAAA,cAAa,GAAb,aACAA,cAAA,gBAAe,GAAf,eACAA,cAAA,WAAU,GAAV,UACAA,cAAA,cAAa,GAAb,aALU,OAAAA,SAAA,WAQZ,MAAO,YAEL,CAdF,MAcE,6BAKA,aAAc,CACZ,KAAK,OAAS,IAAI,GACpB,CAEA,GACE,MACA,SACM,CACN,GAAI,aAAa,cAAe,CAC9B,MACF,CAEA,GAAI,CAAC,KAAK,OAAO,IAAI,KAAK,EAAG,CAC3B,KAAK,OAAO,IAAI,MAAO,CAAC,CAAC,CAC3B,CAEA,MAAM,OAAS,KAAK,OAAO,IAAI,KAAK,EACpC,GAAI,CAAC,OAAQ,CACX,MACF,CAEA,OAAO,KAAK,QAAwC,CACtD,CAEA,eACE,MACA,SACM,CACN,GAAI,aAAa,cAAe,CAC9B,MACF,CAEA,MAAM,OAAS,KAAK,OAAO,IAAI,KAAK,EACpC,GAAI,CAAC,OAAQ,CACX,MACF,CAEA,MAAM,MAAQ,OAAO,QAAQ,QAAwC,EACrE,GAAI,QAAU,GAAI,CAChB,MACF,CAEA,OAAO,OAAO,MAAO,CAAC,CACxB,CAEA,mBAAkD,MAAgB,CAChE,GAAI,aAAa,cAAe,CAC9B,MACF,CAEA,KAAK,OAAO,OAAO,KAAK,CAC1B,CAEA,KAAoC,SAAa,KAAqB,CACpE,GAAI,aAAa,cAAe,CAC9B,MACF,CAEA,MAAM,OAAS,KAAK,OAAO,IAAI,KAAK,EACpC,GAAI,CAAC,OAAQ,CACX,MACF,CAEA,MAAM,UAAY,OAAO,MAAM,EAE/B,QAAS,EAAI,EAAG,EAAI,UAAU,OAAQ,GAAK,EAAG,CAC5C,UAAU,CAAC,EAAE,MAAM,KAAM,IAAI,CAC/B,CACF,CACF","names":["Event"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/event-emitter.ts"],"sourcesContent":["interface EventMapBase {\n  [key: number]: unknown[];\n}\n\nexport enum Event {\n  Change = 0,\n  HandWinner = 1,\n  CreateRecord = 2,\n  Shuffle = 3,\n  ResetState = 4,\n}\n\nexport default class EventEmitter<\n  TMap extends EventMapBase = Record<number, unknown[]>,\n> {\n  static disableEvents: boolean;\n\n  events: Map<number, ((...args: unknown[]) => void)[]>;\n\n  constructor() {\n    this.events = new Map();\n  }\n\n  on<E extends keyof TMap & number>(\n    event: E,\n    listener: (...args: TMap[E]) => void,\n  ): void {\n    if (EventEmitter.disableEvents) {\n      return;\n    }\n\n    if (!this.events.has(event)) {\n      this.events.set(event, []);\n    }\n\n    const events = this.events.get(event);\n    if (!events) {\n      return;\n    }\n\n    events.push(listener as (...args: unknown[]) => void);\n  }\n\n  removeListener<E extends keyof TMap & number>(\n    event: E,\n    listener: (...args: TMap[E]) => void,\n  ): void {\n    if (EventEmitter.disableEvents) {\n      return;\n    }\n\n    const events = this.events.get(event);\n    if (!events) {\n      return;\n    }\n\n    const index = events.indexOf(listener as (...args: unknown[]) => void);\n    if (index === -1) {\n      return;\n    }\n\n    events.splice(index, 1);\n  }\n\n  removeAllListeners<E extends keyof TMap & number>(event: E): void {\n    if (EventEmitter.disableEvents) {\n      return;\n    }\n\n    this.events.delete(event);\n  }\n\n  emit<E extends keyof TMap & number>(event: E, ...args: TMap[E]): void {\n    if (EventEmitter.disableEvents) {\n      return;\n    }\n\n    const events = this.events.get(event);\n    if (!events) {\n      return;\n    }\n\n    const listeners = events.slice();\n\n    for (let i = 0; i < listeners.length; i += 1) {\n      listeners[i].apply(this, args);\n    }\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/utils.ts":{"lineLengths":[76,4413,4,0,13594],"data":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/utils.ts"],"sourcesContent":["import {\n  SimpleObject,\n  Suit,\n  Rank,\n  Comparator,\n  enumValues,\n  entries,\n} from './types';\n\ntype Range<T> = { start: number; end: number; value: T };\n\nexport default class Utils {\n  // TODO: Move to stats utils.\n  static arraySum(data: number[]): number {\n    return data.reduce((acc, current) => acc + current, 0);\n  }\n\n  // TODO: Move to stats utils.\n  static arrayMean(data: number[]): number {\n    return this.arraySum(data) / data.length;\n  }\n\n  // TODO: Move to stats utils.\n  static arrayVariance(data: number[]): number {\n    const dataMean = this.arrayMean(data);\n    return (\n      this.arraySum(data.map((num) => (num - dataMean) ** 2)) /\n      (data.length - 1)\n    );\n  }\n\n  // Fisher–Yates shuffle algorithm.\n  // See https://stackoverflow.com/a/6274381/659910\n  static arrayShuffle<R>(array: R[]): R[] {\n    for (let i = array.length - 1; i > 0; i--) {\n      const j = Math.floor(Math.random() * (i + 1));\n      [array[i], array[j]] = [array[j], array[i]];\n    }\n\n    return array;\n  }\n\n  static arraySample<R>(array: R[]): R {\n    return array[this.random(0, array.length - 1)];\n  }\n\n  static arrayMove<R>(array: R[], fromIndex: number, toIndex: number): void {\n    const element = array[fromIndex];\n    array.splice(fromIndex, 1);\n    array.splice(toIndex, 0, element);\n  }\n\n  static arrayflatten<R>(array: R[][]): R[] {\n    return array.reduce((flatten: R[], arr: R[]) => [...flatten, ...arr]);\n  }\n\n  static random(min: number, max: number): number {\n    min = Math.ceil(min);\n    max = Math.floor(max);\n\n    return Math.floor(Math.random() * (max - min + 1)) + min;\n  }\n\n  static randomId(): string {\n    // TODO: Make the backend generate this.\n    // return crypto.randomBytes(16).toString('hex');\n    return Math.random().toString(36).substring(2);\n  }\n\n  // See https://stackoverflow.com/a/52584017/659910\n  static titleCase(str: string): string {\n    return str\n      .replace(/([A-Z])/g, (match) => ` ${match}`)\n      .replace(/^./, (match) => match.toUpperCase())\n      .trim();\n  }\n\n  static clamp(number: number, min: number, max: number): number {\n    return Math.max(Math.min(number, max), min);\n  }\n\n  // See https://stackoverflow.com/a/43532829\n  static round(value: number, digits = 2): number {\n    value = value * Math.pow(10, digits);\n    value = Math.round(value);\n    value = value / Math.pow(10, digits);\n\n    return value;\n  }\n\n  static compareRange(number: number, range: [Comparator, number]): boolean {\n    return range[0] === '>=' ? number >= range[1] : number < range[1];\n  }\n\n  // See https://stackoverflow.com/a/40724354/659910\n  static abbreviateNumber(number: number): string {\n    const SI_SYMBOL = ['', 'K', 'M', 'B', 'T'];\n\n    // Determine symbol.\n    const tier = (Math.log10(Math.abs(number)) / 3) | 0;\n\n    if (tier === 0) {\n      return number.toString();\n    }\n\n    const suffix = SI_SYMBOL[tier];\n    const scale = Math.pow(10, tier * 3);\n    const scaled = number / scale;\n    const fixed = scaled.toFixed(1);\n\n    return (fixed.includes('.0') ? scaled.toFixed(0) : fixed) + suffix;\n  }\n\n  static formatCents(\n    cents: number,\n    {\n      stripZeroCents = false,\n      stripCommas = false,\n    }: { stripZeroCents?: boolean; stripCommas?: boolean } = {},\n  ): string {\n    let value = new Intl.NumberFormat('en-US', {\n      style: 'currency',\n      currency: 'USD',\n    }).format(cents / 100);\n\n    if (stripCommas) {\n      value = value.replace(/,/g, '');\n    }\n\n    if (stripZeroCents && value.endsWith('.00')) {\n      return value.slice(0, value.length - 3);\n    } else {\n      return value;\n    }\n  }\n\n  static formatPercent(value: number): string {\n    return `${(value * 100).toFixed(2)}%`;\n  }\n\n  static formatTime(timeMs: number): string {\n    return `${(timeMs / 1000).toFixed(2)} seconds`;\n  }\n\n  static merge<T extends SimpleObject>(target: T, ...sources: Partial<T>[]): T {\n    return Object.assign(target, ...sources);\n  }\n\n  static copy<T extends SimpleObject>(object: T): T {\n    return Object.assign({}, object);\n  }\n\n  static arrayToRanges<T>(array: T[]): Range<T>[] {\n    const ranges: Range<T>[] = [];\n\n    let rangeStart = 0;\n    let rangeEnd = 0;\n    let prevItem = array[0];\n\n    const pushRange = () => {\n      ranges.push({\n        start: rangeStart,\n        end: rangeEnd - 1,\n        value: prevItem,\n      });\n    };\n\n    for (const item of array) {\n      if (item !== prevItem) {\n        pushRange();\n        rangeStart = rangeEnd;\n        prevItem = item;\n      }\n\n      rangeEnd += 1;\n    }\n\n    pushRange();\n\n    return ranges;\n  }\n\n  static rangeToString<T>(\n    range: Range<T>,\n    isOnly: boolean,\n    isLast: boolean,\n  ): string {\n    if (isOnly) {\n      return `${range.start}+`;\n    }\n\n    const rangeString =\n      range.start === range.end\n        ? range.start.toString()\n        : `${range.start}–${range.end}`;\n\n    return `${rangeString}${isLast ? '+' : ''}`;\n  }\n\n  static arrayToRangeString<T>(\n    array: T[],\n    formatter = (value: T): string => String(value),\n  ): string {\n    const ranges = Utils.arrayToRanges(array);\n\n    return Utils.arrayToRanges(array)\n      .map(\n        (range, index) =>\n          `TC ${Utils.rangeToString(\n            range,\n            ranges.length === 1,\n            index === ranges.length - 1,\n          )}: ${formatter(range.value)}`,\n      )\n      .join(', ');\n  }\n\n  static compact<T extends SimpleObject>(object: T): T {\n    Object.keys(object).forEach((key) => {\n      if (object[key] === null || typeof object[key] === 'undefined') {\n        delete object[key];\n      }\n    });\n\n    return object;\n  }\n\n  static mapValues<InputObject extends SimpleObject, MapReturnType>(\n    obj: InputObject,\n    map: (value: InputObject[keyof InputObject]) => MapReturnType,\n  ): { [P in keyof InputObject]: MapReturnType } {\n    const result = {} as { [P in keyof InputObject]: MapReturnType };\n\n    entries(obj).forEach(([key, value]) => {\n      result[key] = map(value);\n    });\n\n    return result;\n  }\n\n  static randomSuit(): Suit {\n    return Utils.arraySample(enumValues(Suit));\n  }\n\n  static randomRank(): Rank {\n    return Utils.arraySample(enumValues(Rank));\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/game.ts":{"lineLengths":[75,14172,4,0,41262],"data":{"version":3,"mappings":"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","names":["EventEmitter","Utils","Shoe","Dealer","Player","HiLoDeviationChecker","BasicStrategyChecker"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/game.ts"],"sourcesContent":["import EventEmitter, { Event } from './event-emitter';\nimport Utils from './utils';\nimport Shoe, { OutOfCardsError } from './shoe';\nimport Dealer from './dealer';\nimport Player from './player';\nimport BasicStrategyChecker from './basic-strategy-checker';\nimport HiLoDeviationChecker from './hi-lo-deviation-checker';\nimport Hand from './hand';\nimport { hasAttributes } from './event-types';\nimport type { EventMap } from './event-types';\nimport {\n  Move,\n  SimpleObject,\n  TableRules,\n  GameStep,\n  HandWinner,\n  PlayerStrategy,\n  BlackjackPayout,\n  GameMode,\n  CheckDeviationResult,\n  CheckResult,\n} from './types';\n\nexport type GameSettings = {\n  autoDeclineInsurance: boolean;\n  disableEvents: boolean;\n  checkDeviations: boolean;\n  mode: GameMode;\n  debug: boolean;\n  playerBankroll: number;\n  playerTablePosition: number;\n  playerStrategyOverride: {\n    [index: number]: PlayerStrategy;\n  };\n\n  element?: string;\n} & TableRules;\n\ntype GameState = {\n  playCorrection: string;\n  step: GameStep;\n  sessionMovesTotal: number;\n  sessionMovesCorrect: number;\n  focusedHandIndex: number;\n};\n\nfunction defaultSettings(minimumBet = 10 * 100): GameSettings {\n  return {\n    autoDeclineInsurance: false,\n    disableEvents: false,\n    checkDeviations: false,\n\n    // Can be one of 'GameMode.Default', 'GameMode.Pairs', 'GameMode.Uncommon',\n    // 'GameMode.Deviations'. If the mode is set to 'GameMode.Deviations',\n    // `checkDeviations` will be forced to true.\n    mode: GameMode.Default,\n    debug: false,\n\n    playerBankroll: minimumBet * 1000 * 1000,\n    playerTablePosition: 1,\n    playerStrategyOverride: {},\n\n    // Table rules\n    allowDoubleAfterSplit: true,\n    allowLateSurrender: false,\n    allowResplitAces: false,\n    blackjackPayout: BlackjackPayout.ThreeToTwo,\n    deckCount: 2,\n    hitSoft17: true,\n    maxHandsAllowed: 4,\n    maximumBet: minimumBet * 100,\n    minimumBet,\n    playerCount: 1,\n    penetration: 0.75,\n  };\n}\n\nexport const SETTINGS_DEFAULTS = defaultSettings();\nexport let settings: GameSettings;\n\nexport default class Game extends EventEmitter<EventMap> {\n  _state!: GameState;\n  betAmount!: number;\n  spotCount!: number;\n  dealer!: Dealer;\n  gameId!: string;\n  player!: Player;\n  players!: Player[];\n  playersLeft!: Player[];\n  playersRight!: Player[];\n  shoe!: Shoe;\n  state!: GameState;\n\n  constructor(gameSettings: Partial<GameSettings> = SETTINGS_DEFAULTS) {\n    super();\n\n    settings = defaultSettings();\n    this.updateSettings(gameSettings);\n    this.betAmount = settings.minimumBet;\n    this.spotCount = 1;\n\n    if (settings.disableEvents) {\n      EventEmitter.disableEvents = true;\n    }\n\n    this.setupState();\n  }\n\n  get focusedHand(): Hand {\n    return this.player.getHand(this.state.focusedHandIndex);\n  }\n\n  get settings(): GameSettings {\n    return settings;\n  }\n\n  updateSettings(gameSettings: Partial<GameSettings>): GameSettings {\n    return Utils.merge(settings, gameSettings);\n  }\n\n  setupState(): void {\n    // We assign a random ID to each game so that we can link hand results with\n    // wrong moves in the database.\n    this.gameId = Utils.randomId();\n\n    this.shoe = this.chainEmitChange(new Shoe());\n    this.dealer = this.chainEmitChange(\n      new Dealer({\n        handsMax: settings.maxHandsAllowed,\n        debug: settings.debug,\n        strategy: PlayerStrategy.Dealer,\n      }),\n    );\n\n    this.players = Array.from(\n      { length: settings.playerCount },\n      (_item, index) =>\n        this.chainEmitChange(\n          new Player({\n            handsMax: settings.maxHandsAllowed,\n            balance: settings.playerBankroll,\n            blackjackPayout: settings.blackjackPayout,\n            debug: settings.debug,\n            // TODO: Make this configurable for each player.\n            strategy:\n              settings.playerStrategyOverride[index + 1] ??\n              (index === settings.playerTablePosition - 1\n                ? PlayerStrategy.UserInput\n                : PlayerStrategy.BasicStrategy),\n          }),\n        ),\n    );\n\n    // We reverse the players array for convenience since reverse iteration in\n    // JS is difficult.\n    this.players.reverse();\n\n    const reversedTablePosition =\n      this.players.length - settings.playerTablePosition + 1;\n\n    this.player = this.players[reversedTablePosition - 1];\n    this.playersLeft = this.players.slice(reversedTablePosition);\n    this.playersRight = this.players.slice(0, reversedTablePosition - 1);\n\n    this.player.on(Event.HandWinner, (hand, winner) => {\n      this.emit(Event.CreateRecord, 'hand-result', {\n        createdAt: Date.now(),\n        gameId: this.gameId,\n        dealerHand: this.dealer.firstHand.serialize({ showHidden: true }),\n        playerHand: hand.serialize(),\n        winner,\n      });\n    });\n\n    this._state = {\n      focusedHandIndex: 0,\n      playCorrection: '',\n      sessionMovesCorrect: 0,\n      sessionMovesTotal: 0,\n      step: GameStep.Start,\n    };\n\n    const hasKey = <T extends SimpleObject>(\n      obj: T,\n      k: string | number | symbol,\n    ): k is keyof T => k in obj;\n\n    this.state = settings.disableEvents\n      ? this._state\n      : new Proxy(this._state, {\n          set: (target, key, value: unknown) => {\n            if (hasKey(target, key)) {\n              Reflect.set(target, key, value);\n            }\n\n            if (hasAttributes(value)) {\n              this.emit(Event.Change, String(key), value.attributes());\n            } else if (typeof value === 'string' || typeof value === 'number') {\n              this.emit(Event.Change, String(key), value);\n            }\n\n            return true;\n          },\n        });\n  }\n\n  resetState(): void {\n    this.setupState();\n    this.emit(Event.ResetState);\n  }\n\n  allPlayerHandsBusted(): boolean {\n    return this.players.every((player) =>\n      player.hands.every((hand) => hand.busted || hand.blackjack),\n    );\n  }\n\n  chainEmitChange<T extends EventEmitter<EventMap>>(object: T): T {\n    object.on(Event.Change, (name, value) =>\n      this.emit(Event.Change, name, value),\n    );\n    return object;\n  }\n\n  getCheckerResult(\n    hiLoResult: CheckDeviationResult | undefined,\n    basicStrategyResult: CheckResult,\n    input: Move,\n  ): CheckDeviationResult | CheckResult {\n    // A basic strategy split takes priority over any deviation.\n    // For example pair 6s vs 2 should be a split even though I18 says to hit.\n    if (input === Move.Split && basicStrategyResult.result) {\n      return basicStrategyResult;\n    }\n\n    // A basic strategy surrender takes priority over non-Fab4 deviations.\n    // For example 15v10 should be a surrender even though I18 says to hit.\n    if (input === Move.Surrender && basicStrategyResult.result) {\n      return hiLoResult?.deviation.fab4 === true\n        ? hiLoResult\n        : basicStrategyResult;\n    }\n\n    return hiLoResult || basicStrategyResult;\n  }\n\n  validateInput(input: Move, hand: Hand): void {\n    const hiLoResult = HiLoDeviationChecker.check(this, hand, input);\n    const basicStrategyResult = BasicStrategyChecker.check(this, hand, input);\n\n    const checkerResult = this.getCheckerResult(\n      hiLoResult,\n      basicStrategyResult,\n      input,\n    );\n\n    if (checkerResult.hint != null) {\n      this.state.playCorrection = checkerResult.hint;\n    } else {\n      this.state.sessionMovesCorrect += 1;\n    }\n\n    this.state.sessionMovesTotal += 1;\n\n    this.emit(Event.CreateRecord, 'move', {\n      createdAt: Date.now(),\n      gameId: this.gameId,\n      dealerHand: this.dealer.firstHand.serialize({ showHidden: true }),\n      playerHand: this.focusedHand.serialize(),\n      move: input,\n      correction: typeof checkerResult === 'object' ? checkerResult.code : null,\n    });\n  }\n\n  isValidPlayHandsInput(input: Move | undefined): input is Move {\n    if (this.player.isNPC) {\n      return true;\n    }\n\n    if (\n      input === undefined ||\n      ![Move.Hit, Move.Stand, Move.Double, Move.Split, Move.Surrender].includes(\n        input,\n      )\n    ) {\n      return false;\n    }\n\n    if (input === Move.Surrender && !this.focusedHand.allowSurrender) {\n      return false;\n    }\n\n    if (input === Move.Split && !this.focusedHand.allowSplit) {\n      return false;\n    }\n\n    if (input === Move.Double && !this.focusedHand.allowDouble) {\n      return false;\n    }\n\n    return true;\n  }\n\n  isValidInsuranceInput(input: Move | undefined): input is Move {\n    if (this.player.isNPC) {\n      return true;\n    }\n\n    return (\n      input !== undefined &&\n      [Move.AskInsurance, Move.NoInsurance].includes(input)\n    );\n  }\n\n  step(input?: Move): GameStep {\n    let step: GameStep = this.state.step;\n\n    try {\n      switch (step) {\n        case GameStep.Start:\n          step = this.dealInitialCards();\n          break;\n\n        case GameStep.WaitingForInsuranceInput:\n          if (!this.isValidInsuranceInput(input)) {\n            break;\n          }\n\n          if (\n            settings.checkDeviations === true ||\n            settings.mode === GameMode.Deviations\n          ) {\n            this.validateInput(input, this.focusedHand);\n          }\n\n          this.askInsurance(input, this.player, ...this.playersLeft);\n\n          if (this.dealer.holeCard.value === 10) {\n            // Flip hole card before payout so the dealer's blackjack state\n            // is set when setHandWinner emits the change event.\n            this.dealer.firstHand.incrementTotalsForCard(this.dealer.cards[0]);\n            this.dealer.cards[0].flip();\n            this.payoutInsurance(input);\n            step = GameStep.WaitingForNewGameInput;\n          } else {\n            this.payoutInsurance(input);\n            step = GameStep.PlayHandsRight;\n          }\n\n          break;\n\n        case GameStep.PlayHandsRight:\n          this.playNPCHands(...this.playersRight);\n          step = this.setblackjackWinner(this.player, this.focusedHand)\n            ? GameStep.PlayHandsLeft\n            : GameStep.WaitingForPlayInput;\n          break;\n\n        case GameStep.WaitingForPlayInput:\n          if (!this.isValidPlayHandsInput(input)) {\n            break;\n          }\n\n          if (this.player.isUser) {\n            step = this.playUserHands(input);\n          } else {\n            this.playNPCHands(this.player);\n            step = GameStep.PlayHandsLeft;\n          }\n\n          break;\n\n        case GameStep.PlayHandsLeft:\n          this.playNPCHands(...this.playersLeft);\n          this.playDealer();\n          step = GameStep.WaitingForNewGameInput;\n          break;\n\n        case GameStep.WaitingForNewGameInput:\n          if (this.player.isUser && input === undefined) {\n            break;\n          }\n          this.removeCards();\n          step = GameStep.Start;\n      }\n    } catch (error) {\n      if (error instanceof OutOfCardsError) {\n        this.pushAllPlayersHands();\n        step = GameStep.WaitingForNewGameInput;\n      } else {\n        throw error;\n      }\n    }\n\n    this.state.step = step;\n\n    return step;\n  }\n\n  run(betAmount: number, spotCount: number): void {\n    this.betAmount = betAmount;\n    this.spotCount = spotCount;\n\n    let nextStep: GameStep = this.state.step;\n\n    do {\n      nextStep = this.step();\n    } while (nextStep !== GameStep.Start);\n  }\n\n  dealInitialCards(): GameStep {\n    if (settings.debug) {\n      console.log(`> Starting new hand (player ID ${this.player.id})`);\n      console.log('Shoe:', this.shoe.serialize());\n    }\n\n    for (const player of this.players) {\n      // Clears the result from the previous iteration. Otherwise this object\n      // will grow indefinitely over subsequent `step()` calls.\n      player.handWinner = new Map();\n\n      for (\n        let i = 0;\n        i < (player === this.player ? this.spotCount : 1);\n        i += 1\n      ) {\n        // TODO: Make NPCs bet more realistically than minimum bet.\n        const hand = player.addHand(\n          player === this.player ? this.betAmount : settings.minimumBet,\n        );\n\n        // Draw card for each player face up (upcard).\n        player.takeCard(this.shoe.drawCard(), { hand });\n      }\n    }\n\n    // Draw card for dealer face up.\n    this.dealer.addHand();\n    this.dealer.takeCard(this.shoe.drawCard());\n\n    // Draw card for each player face up again (upcard).\n    for (const player of this.players) {\n      player.eachHand((hand) => {\n        player.takeCard(this.shoe.drawCard(), { hand });\n      });\n    }\n\n    // Draw card for dealer face down (hole card).\n    this.dealer.takeCard(this.shoe.drawCard({ showingFace: false }), {\n      prepend: true,\n    });\n\n    // Dealer peeks at the hole card if the upcard is 10 to check blackjack.\n    if (this.dealer.upcard.value === 10 && this.dealer.holeCard.value === 11) {\n      this.dealer.firstHand.incrementTotalsForCard(this.dealer.cards[0]);\n      this.dealer.cards[0].flip();\n\n      for (const player of this.players) {\n        player.eachHand((hand) => {\n          player.setHandWinner({\n            winner: hand.blackjack ? HandWinner.Push : HandWinner.Dealer,\n            hand,\n          });\n        });\n      }\n\n      return GameStep.WaitingForNewGameInput;\n    }\n\n    // Dealer peeks at the hole card if the upcard is ace to ask insurance.\n    if (this.dealer.upcard.value === 11) {\n      this.askInsurance(null, ...this.playersRight);\n\n      if (!settings.autoDeclineInsurance) {\n        return GameStep.WaitingForInsuranceInput;\n      }\n    }\n\n    return GameStep.PlayHandsRight;\n  }\n\n  askInsurance(userInput: Move | null | undefined, ...players: Player[]): void {\n    for (const player of players) {\n      player.eachHand((hand) => {\n        const input =\n          player.isUser && userInput != null\n            ? userInput\n            : player.getNPCInput(this, hand);\n\n        // TODO: Make insurance amount configurable. Currently uses half the bet\n        // size as insurance to recover full bet amount.\n        const amount =\n          player === this.player ? this.betAmount : settings.minimumBet;\n\n        if (input === Move.AskInsurance) {\n          player.useChips(amount / 2, { hand });\n        }\n      });\n    }\n  }\n\n  payoutInsurance(userInput: Move | undefined): void {\n    if (this.dealer.holeCard?.value !== 10) {\n      return;\n    }\n\n    for (const player of this.players) {\n      player.eachHand((hand) => {\n        player.setHandWinner({\n          winner: hand.blackjack ? HandWinner.Push : HandWinner.Dealer,\n          hand,\n        });\n\n        // TODO: Store this in state so we don't have to check it again.\n        const input = player.isUser\n          ? userInput\n          : player.getNPCInput(this, hand);\n\n        if (input === Move.AskInsurance) {\n          // Insurance costs half the bet and pays 2:1. Return the stake plus\n          // winnings: (bet / 2) * 3 = bet * 1.5.\n          const bet =\n            player === this.player ? this.betAmount : settings.minimumBet;\n          player.addChips(bet * 1.5);\n        }\n      });\n    }\n  }\n\n  setblackjackWinner(player: Player, hand: Hand): boolean {\n    if (this.dealer.blackjack && hand.blackjack) {\n      player.setHandWinner({ winner: HandWinner.Push, hand });\n      return true;\n    } else if (this.dealer.blackjack) {\n      player.setHandWinner({ winner: HandWinner.Dealer, hand });\n      return true;\n    } else if (hand.blackjack) {\n      player.setHandWinner({ winner: HandWinner.Player, hand });\n      return true;\n    }\n\n    return false;\n  }\n\n  stepHand(\n    player: Player,\n    hand: Hand,\n    betAmount: number,\n    input: Move,\n  ): boolean {\n    if (this.setblackjackWinner(player, hand)) {\n      return true;\n    }\n\n    if (hand.fromAceSplit && !hand.allowSplit) {\n      return true;\n    }\n\n    if (hand.cardTotal <= 21) {\n      if (!player.isNPC) {\n        this.validateInput(input, hand);\n      }\n\n      if (input === Move.Hit) {\n        player.takeCard(this.shoe.drawCard(), { hand });\n      }\n\n      if (input === Move.Stand) {\n        return true;\n      }\n\n      if (input === Move.Double) {\n        player.useChips(betAmount, { hand });\n        player.takeCard(this.shoe.drawCard(), { hand });\n      }\n\n      if (input === Move.Split && hand.allowSplit) {\n        const newHandCard = hand.removeCard();\n        const newHand = player.addHand(betAmount, [newHandCard]);\n\n        hand.splitCount += 1;\n        newHand.splitCount = hand.splitCount;\n\n        player.takeCard(this.shoe.drawCard(), { hand });\n        player.takeCard(this.shoe.drawCard(), { hand: newHand });\n\n        if (hand.hasAces) {\n          return true;\n        }\n      }\n\n      if (input === Move.Surrender) {\n        player.setHandWinner({\n          winner: HandWinner.Dealer,\n          hand,\n          surrender: true,\n        });\n\n        return true;\n      }\n    }\n\n    if (hand.busted) {\n      if (settings.debug) {\n        console.log(`Busted ${player.id} ${hand.cardTotal}`);\n      }\n\n      player.setHandWinner({ winner: HandWinner.Dealer, hand });\n\n      return true;\n    }\n\n    if (input === Move.Double) {\n      return true;\n    }\n\n    if (hand.cardTotal === 21) {\n      return true;\n    }\n\n    return false;\n  }\n\n  playNPCHands(...players: Player[]): void {\n    for (const player of players) {\n      player.eachHand((hand) => {\n        let handFinished = false;\n\n        while (!handFinished) {\n          handFinished = this.stepHand(\n            player,\n            hand,\n            player === this.player ? this.betAmount : settings.minimumBet,\n            player.getNPCInput(this, hand),\n          );\n        }\n      });\n    }\n  }\n\n  playUserHands(input: Move): GameStep {\n    const handFinished = this.stepHand(\n      this.player,\n      this.focusedHand,\n      this.betAmount,\n      input,\n    );\n\n    if (handFinished) {\n      if (this.state.focusedHandIndex < this.player.handsCount - 1) {\n        this.state.focusedHandIndex += 1;\n      } else {\n        return GameStep.PlayHandsLeft;\n      }\n    }\n\n    // If aces were split, we may have to advance focus multiple times.\n    while (\n      this.state.focusedHandIndex < this.player.handsCount - 1 &&\n      this.focusedHand.finished\n    ) {\n      this.state.focusedHandIndex += 1;\n    }\n\n    return this.focusedHand.finished\n      ? GameStep.PlayHandsLeft\n      : GameStep.WaitingForPlayInput;\n  }\n\n  playDealer(): void {\n    this.dealer.firstHand.incrementTotalsForCard(this.dealer.cards[0]);\n    this.dealer.cards[0].flip();\n\n    // Dealer draws cards until they reach 17. However, if all player hands have\n    // busted, this step is skipped.\n    // TODO: Move this into `getNPCInput()` for `PlayerStrategy.DEALER`.\n    if (!this.allPlayerHandsBusted()) {\n      while (this.dealer.cardTotal <= 17 && !this.dealer.blackjack) {\n        if (\n          this.dealer.cardTotal === 17 &&\n          (this.dealer.isHard || !settings.hitSoft17)\n        ) {\n          break;\n        }\n\n        this.dealer.takeCard(this.shoe.drawCard());\n      }\n    }\n\n    for (const player of this.players) {\n      player.eachHand((hand) => {\n        if (player.handWinner.get(hand.id) !== undefined) {\n          return;\n        }\n\n        if (this.dealer.busted) {\n          player.setHandWinner({ winner: HandWinner.Player, hand });\n        } else if (this.dealer.cardTotal > hand.cardTotal) {\n          player.setHandWinner({ winner: HandWinner.Dealer, hand });\n        } else if (hand.cardTotal > this.dealer.cardTotal) {\n          player.setHandWinner({ winner: HandWinner.Player, hand });\n        } else {\n          player.setHandWinner({ winner: HandWinner.Push, hand });\n        }\n      });\n    }\n  }\n\n  pushAllPlayersHands(): void {\n    for (const player of this.players) {\n      player.eachHand((hand) => {\n        player.setHandWinner({ winner: HandWinner.Push, hand });\n      });\n    }\n  }\n\n  removeCards(): void {\n    this.state.playCorrection = '';\n    this.state.focusedHandIndex = 0;\n\n    for (const player of this.players) {\n      player.removeCards();\n    }\n\n    this.dealer.removeCards();\n\n    if (this.shoe.needsReset) {\n      if (settings.debug) {\n        console.log('Cut card reached');\n      }\n      this.shoe.resetCards();\n      this.emit(Event.Shuffle);\n    }\n\n    if (settings.debug) {\n      console.log('End of hand', this.shoe.serialize());\n      console.log();\n    }\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/shoe.ts":{"lineLengths":[75,7155,4,0,18438],"data":{"version":3,"mappings":"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","names":["ExtendableError","GameObject","Utils","Deck","BasicStrategyChecker"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/shoe.ts"],"sourcesContent":["import Utils from './utils';\nimport Deck from './deck';\nimport Card from './card';\nimport GameObject from './game-object';\nimport BasicStrategyChecker from './basic-strategy-checker';\nimport ExtendableError from './extendable-error';\nimport {\n  illustrious18Deviations,\n  fab4Deviations,\n} from './hi-lo-deviation-checker';\nimport { settings } from './game';\nimport type { ShoeAttributes } from './event-types';\nimport {\n  Rank,\n  ChartType,\n  cardValueToRank,\n  rankToString,\n  GameMode,\n  Move,\n  Deviation,\n} from './types';\n\nexport class OutOfCardsError extends ExtendableError {}\n\nexport default class Shoe extends GameObject {\n  entityName = 'shoe';\n\n  cards!: Card[];\n  currentCardIndex!: number;\n  hiLoRunningCount!: number;\n\n  constructor() {\n    super();\n\n    this.setCards(this._setupCards());\n    this.shuffle();\n  }\n\n  setCards(cards: Card[]): void {\n    this.hiLoRunningCount = 0;\n    this.currentCardIndex = cards.length - 1;\n\n    for (const card of cards) {\n      this.hiLoRunningCount -= card.hiLoValue;\n      card.showingFace = false;\n    }\n\n    this.cards = cards;\n    this.emitChange();\n  }\n\n  resetCards(): void {\n    this.hiLoRunningCount = 0;\n    this.currentCardIndex = this.cards.length - 1;\n    this.shuffle();\n  }\n\n  shuffle(): void {\n    Utils.arrayShuffle(this.cards);\n\n    if (settings.mode === GameMode.Pairs) {\n      this._setupPairsMode();\n    }\n\n    if (settings.mode === GameMode.Uncommon) {\n      this._setupUncommonMode();\n    }\n\n    if (settings.mode === GameMode.Deviations) {\n      this._setupDeviationsMode();\n    }\n\n    if (settings.debug) {\n      console.log('Shoe shuffled');\n    }\n  }\n\n  drawCard({ showingFace = true } = {}): Card {\n    // This is an edge case that will rarely be reached during game mode. It can\n    // happen if the pen is sufficiently deep and player count is large enough.\n    // It does occur frequently in simulation mode where large amounts of hands\n    // are played. Casinos seem to deal with it in varying ways. We handle it by\n    // pushing all player hands and reshuffling.\n    if (this.currentCardIndex < 0) {\n      throw new OutOfCardsError();\n    }\n\n    const card = this.cards[this.currentCardIndex];\n\n    this.currentCardIndex -= 1;\n\n    card.showingFace = showingFace;\n\n    if (showingFace) {\n      this.hiLoRunningCount += card.hiLoValue;\n    }\n\n    this.emitChange();\n\n    return card;\n  }\n\n  remainingCards(): Card[] {\n    return this.cards.slice(0, this.currentCardIndex + 1);\n  }\n\n  attributes(): ShoeAttributes {\n    return Utils.copy({\n      penetration: Utils.round(this.penetration, 2),\n      hiLoRunningCount: this.hiLoRunningCount,\n      hiLoTrueCount: Utils.round(this.hiLoTrueCount, 2),\n      cards: this.remainingCards().map((card) => card.attributes()),\n    });\n  }\n\n  serialize(): string {\n    return (\n      `(${this.cardCount} card${this.cardCount > 1 ? 's' : ''}): ` +\n      this.remainingCards()\n        .map((card) => rankToString(card.rank))\n        .reverse()\n        .join(' ')\n    );\n  }\n\n  get cardCount(): number {\n    return this.currentCardIndex + 1;\n  }\n\n  get maxCards(): number {\n    return settings.deckCount * 52;\n  }\n\n  get needsReset(): boolean {\n    if (settings.mode !== GameMode.Default) {\n      return true;\n    }\n\n    return this.cardCount / this.maxCards < 1 - settings.penetration;\n  }\n\n  get cardsRemainingRatio(): number {\n    return this.cardCount / this.maxCards;\n  }\n\n  get penetration(): number {\n    return (1 - this.cardsRemainingRatio) * 100;\n  }\n\n  get decksRemaining(): number {\n    return this.cardsRemainingRatio * settings.deckCount;\n  }\n\n  get hiLoTrueCount(): number {\n    return this.hiLoRunningCount / this.decksRemaining;\n  }\n\n  setupDeviationScenario(\n    playerTotal: number,\n    dealerTotal: number,\n    deviation: Deviation,\n  ): void {\n    let total =\n      deviation.correctMove === Move.AskInsurance\n        ? Utils.random(2, 20)\n        : playerTotal;\n\n    const pair = deviation.correctMove === Move.Split;\n\n    // TODO: Make the splits format just equal the player total.\n    if (pair) {\n      total = total / 2;\n    }\n\n    const [rank1, rank2] = this._playerTotalToTwoCardRank(\n      total,\n      pair ? ChartType.Splits : ChartType.Hard,\n    );\n\n    this._moveCardsToFront(rank1, rank2, dealerTotal);\n\n    // Include all face up cards in the count from the opening hand.\n    const i1 = this.cards[this.cards.length - 1].hiLoValue;\n    const i2 = this.cards[this.cards.length - 2].hiLoValue;\n    const i3 = this.cards[this.cards.length - 3].hiLoValue;\n\n    // We artificially set the running count so that the true count works out to\n    // what is required to act on the current deviation. We use the formula\n    // `true_count = running_count / decks_remaining`. We are careful to\n    // subtract the next 3 cards from the running count since they are about to\n    // be drawn by the dealer.\n    let runningCount =\n      deviation.index[1] *\n        (((this.maxCards - 3) * settings.deckCount) / this.maxCards) -\n      i1 -\n      i2 -\n      i3;\n\n    const lt = deviation.index[0][0] === '<';\n\n    // Since we forced the true count to a nice number, the running count will\n    // be a decimal. We round it up or down depending on whether the deviation\n    // acts on indices going further negative or positive.\n    runningCount = Math[lt ? 'floor' : 'ceil'](runningCount);\n\n    // Force the true count one point less for the '<' comparison since it\n    // is an exclusive equality check.\n    if (deviation.index[0].includes('<')) {\n      runningCount -= this.decksRemaining;\n    }\n\n    this.hiLoRunningCount = runningCount;\n  }\n\n  _setupCards(): Card[] {\n    const decks = [];\n    for (let i = 0; i < settings.deckCount; i += 1) {\n      decks.push(new Deck(this));\n    }\n\n    let cards: Card[] = [];\n    while (decks.length > 0) {\n      const deck = decks.pop();\n      if (deck) {\n        cards = cards.concat(...deck.cards);\n      }\n    }\n\n    return cards;\n  }\n\n  _moveCardsToFront(\n    playerRank1: Rank,\n    playerRank2: Rank,\n    dealerUpcard?: number,\n  ): void {\n    // Move the first two cards to the 0th and 2nd spot so they are dealt to the\n    // player at the start of the game.\n    Utils.arrayMove(\n      this.cards,\n      this.cards.findIndex((card) => card.rank === playerRank1),\n      this.cards.length - 1,\n    );\n\n    if (dealerUpcard !== undefined) {\n      Utils.arrayMove(\n        this.cards,\n        this.cards.findIndex((card) => card.value === dealerUpcard),\n        this.cards.length - 1 - 1,\n      );\n    }\n\n    Utils.arrayMove(\n      this.cards,\n      this.cards.findIndex((card) => card.rank === playerRank2),\n      this.cards.length - 1 - 2,\n    );\n  }\n\n  _playerTotalToTwoCardRank(total: number, chartType: ChartType): [Rank, Rank] {\n    const [rank1, rank2] = this._playerTotalToTwoCardValues(total, chartType);\n    return [cardValueToRank(rank1), cardValueToRank(rank2)];\n  }\n\n  _playerTotalToTwoCardValues(\n    total: number,\n    chartType: ChartType,\n  ): [number, number] {\n    switch (chartType) {\n      case ChartType.Hard: {\n        const value = total > 11 ? 10 : 2;\n        return [value, total - value];\n      }\n\n      case ChartType.Soft:\n        return [11, total - 11];\n\n      default:\n      case ChartType.Splits:\n        return [total, total];\n    }\n  }\n\n  _setupPairsMode(): void {\n    const rank = Utils.randomRank();\n    this._moveCardsToFront(rank, rank);\n  }\n\n  _setupUncommonMode(): void {\n    const [chartType, chart] = Utils.arraySample(\n      Array.from(BasicStrategyChecker.uncommonHands(settings).entries()),\n    );\n\n    const [playerTotal, dealerUpcards] = Utils.arraySample(\n      Array.from(chart.entries()),\n    );\n\n    // TODO: Remove this once we have uncommon values defined for all charts.\n    if (dealerUpcards.length === 0) {\n      return;\n    }\n\n    const dealerUpcard = Utils.arraySample(dealerUpcards);\n    const [rank1, rank2] = this._playerTotalToTwoCardRank(\n      playerTotal,\n      chartType,\n    );\n\n    this._moveCardsToFront(rank1, rank2, dealerUpcard);\n  }\n\n  _setupDeviationsMode(): void {\n    const illustrious18DeviationsArray = Array.from(\n      illustrious18Deviations.entries(),\n    );\n    const fab4DeviationsArray = settings.allowLateSurrender\n      ? Array.from(fab4Deviations.entries())\n      : [];\n\n    const [playerTotal, entries] = Utils.arraySample([\n      ...illustrious18DeviationsArray,\n      ...fab4DeviationsArray,\n    ]);\n\n    const [dealerTotal, deviation] = Utils.arraySample(Array.from(entries));\n\n    this.setupDeviationScenario(playerTotal, dealerTotal, deviation);\n\n    const lt = deviation.index[0][0] === '<';\n\n    // Half time time we randomly alter the running count to something\n    // incorrect to be able to test the user's knowledge.\n    if (Utils.random(0, 1) === 0) {\n      this.hiLoRunningCount += this.decksRemaining * (lt ? 1 : -1);\n    }\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/deck.ts":{"lineLengths":[75,1737,4,0,1702],"data":{"version":3,"mappings":";8/BAAA,wHAAiB,2BACjB,iBAAkB,4BAClB,uBAAuB,kCAEvB,iBAAuC,mBAEvC,MAAO,aAA2B,mBAAAA,OAAW,CAM3C,YAAY,KAAY,CACtB,MAAM,EANR,gBAAa,OAQX,KAAK,KAAO,KACZ,KAAK,MAAQ,KAAK,WAAW,CAC/B,CAjBF,MAM6C,qBAa3C,YAAqB,CACnB,MAAM,MAAgB,CAAC,KAEvB,yBAAW,iBAAI,EAAE,QAAS,SACxB,yBAAW,iBAAI,EAAE,QAAS,MACxB,MAAM,KAAK,IAAI,YAAAC,QAAK,KAAM,KAAM,KAAK,IAAI,CAAC,CAC5C,CACF,EAEA,aAAAC,QAAM,aAAa,KAAK,EAExB,OAAO,KACT,CACF","names":["GameObject","Card","Utils"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/deck.ts"],"sourcesContent":["import Card from './card';\nimport Utils from './utils';\nimport GameObject from './game-object';\nimport Shoe from './shoe';\nimport { Suit, Rank, enumValues } from './types';\n\nexport default class Deck extends GameObject {\n  entityName = 'deck';\n\n  shoe: Shoe;\n  cards: Card[];\n\n  constructor(shoe: Shoe) {\n    super();\n\n    this.shoe = shoe;\n    this.cards = this.setupCards();\n  }\n\n  setupCards(): Card[] {\n    const cards: Card[] = [];\n\n    enumValues(Suit).forEach((suit) =>\n      enumValues(Rank).forEach((rank) =>\n        cards.push(new Card(suit, rank, this.shoe)),\n      ),\n    );\n\n    Utils.arrayShuffle(cards);\n\n    return cards;\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/basic-strategy-checker.ts":{"lineLengths":[93,5357,4,0,10630],"data":{"version":3,"mappings":"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","names":["import_utils","gameSettings","Utils"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/basic-strategy-checker.ts"],"sourcesContent":["import Utils from './utils';\nimport Game, { settings as gameSettings, GameSettings } from './game';\nimport Hand from './hand';\nimport { selectCharts } from './charts/utils';\nimport {\n  ChartType,\n  CheckResult,\n  Move,\n  ChartMove,\n  UncommonChart,\n  chartMoveToCorrectMove,\n  GameStep,\n} from './types';\n\nconst CHART_MIN_MAX: Record<ChartType, [number, number]> = {\n  [ChartType.Hard]: [7, 18],\n  [ChartType.Soft]: [13, 20],\n  [ChartType.Splits]: [2, 11],\n};\n\nfunction chartMinMax(chartType: ChartType): [number, number] {\n  return CHART_MIN_MAX[chartType];\n}\n\ntype SubCharts = Record<ChartType, ChartMove[][]>;\n\nlet cachedSubCharts: SubCharts | undefined;\nlet cachedCacheKey: string | undefined;\n\nfunction chartCacheKey(settings: GameSettings): string {\n  return `${settings.deckCount}:${settings.hitSoft17}`;\n}\n\nfunction getSubCharts(settings: GameSettings): SubCharts {\n  const key = chartCacheKey(settings);\n  if (cachedSubCharts !== undefined && cachedCacheKey === key) {\n    return cachedSubCharts;\n  }\n\n  const { chart: chartGroup } = selectCharts(settings);\n  const hard = chartGroup.get(ChartType.Hard);\n  const soft = chartGroup.get(ChartType.Soft);\n  const splits = chartGroup.get(ChartType.Splits);\n\n  if (!hard || !soft || !splits) {\n    throw new Error('Subchart not found');\n  }\n\n  cachedSubCharts = {\n    [ChartType.Hard]: hard,\n    [ChartType.Soft]: soft,\n    [ChartType.Splits]: splits,\n  };\n  cachedCacheKey = key;\n\n  return cachedSubCharts;\n}\n\nexport default class BasicStrategyChecker {\n  static uncommonHands(settings: GameSettings): UncommonChart {\n    return selectCharts(settings).uncommon;\n  }\n\n  static suggest(game: Game, hand: Hand): Move {\n    if (game.state.step === GameStep.WaitingForInsuranceInput) {\n      return Move.NoInsurance;\n    }\n\n    const subCharts = getSubCharts(gameSettings);\n    const chartType = this._chartType(hand);\n    const [chartMin, chartMax] = chartMinMax(chartType);\n\n    const playerTotal = Utils.clamp(\n      hand.allowSplit ? hand.cards[0].value : hand.cardTotal,\n      chartMin,\n      chartMax,\n    );\n\n    const chart = subCharts[chartType];\n\n    const dealerHints = chart[playerTotal - chartMin];\n    const dealersCard = game.dealer.upcard.value;\n    const correctMove = dealerHints[dealersCard - 2];\n\n    if (\n      correctMove === ChartMove.DoubleOrHit ||\n      correctMove === ChartMove.DoubleOrStand\n    ) {\n      if (hand.allowDouble) {\n        return Move.Double;\n      } else {\n        return correctMove === ChartMove.DoubleOrHit ? Move.Hit : Move.Stand;\n      }\n    }\n\n    if (\n      correctMove === ChartMove.SplitOrHit ||\n      correctMove === ChartMove.SplitOrDouble ||\n      correctMove === ChartMove.SplitOrStand\n    ) {\n      if (gameSettings.allowDoubleAfterSplit) {\n        return Move.Split;\n      } else {\n        switch (correctMove) {\n          case ChartMove.SplitOrHit:\n            return Move.Hit;\n          case ChartMove.SplitOrDouble:\n            return Move.Double;\n          case ChartMove.SplitOrStand:\n            return Move.Stand;\n        }\n      }\n    }\n\n    if (correctMove === ChartMove.SurrenderOrSplit) {\n      return hand.allowSurrender ? Move.Surrender : Move.Split;\n    }\n\n    if (\n      correctMove === ChartMove.SurrenderOrHit ||\n      correctMove === ChartMove.SurrenderOrStand\n    ) {\n      if (hand.allowSurrender) {\n        return Move.Surrender;\n      } else {\n        return correctMove === ChartMove.SurrenderOrHit ? Move.Hit : Move.Stand;\n      }\n    }\n\n    return chartMoveToCorrectMove(correctMove);\n  }\n\n  static check(game: Game, hand: Hand, input: Move): CheckResult {\n    const correctMove = this.suggest(game, hand);\n    if (correctMove == null) {\n      return { result: true, code: null, hint: null };\n    }\n\n    let hint;\n\n    // TODO: Add rationale for each hint.\n    if (correctMove === Move.NoInsurance && input !== Move.NoInsurance) {\n      hint = 'decline insurance';\n    }\n\n    if (correctMove === Move.Hit && input !== Move.Hit) {\n      hint = 'hit';\n    }\n\n    if (correctMove === Move.Stand && input !== Move.Stand) {\n      hint = 'stand';\n    }\n\n    if (correctMove === Move.Double && input !== Move.Double) {\n      hint = 'double';\n    }\n\n    if (correctMove === Move.Split && input !== Move.Split) {\n      hint = 'split';\n    }\n\n    if (correctMove === Move.Surrender && input !== Move.Surrender) {\n      hint = 'surrender';\n    }\n\n    if (hint === undefined) {\n      return { result: true, code: null, hint: null };\n    }\n\n    return {\n      result: false,\n      code: correctMove,\n      hint: `Basic strategy: last play should have been ${hint}!`,\n    };\n  }\n\n  static _chartType(hand: Hand): ChartType {\n    if (hand.allowSplit) {\n      return ChartType.Splits;\n    } else if (hand.isSoft) {\n      return ChartType.Soft;\n    } else {\n      return ChartType.Hard;\n    }\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/utils.ts":{"lineLengths":[83,1593,4,0,2406],"data":{"version":3,"mappings":";mvBAAA,wHAEA,aAaO,aAEA,SAAS,aAAa,SAG3B,CACA,GAAI,SAAS,YAAc,EAAG,CAC5B,GAAI,SAAS,UAAW,CACtB,MAAO,CAAE,SAAU,0BAAkB,MAAO,sBAAc,CAC5D,KAAO,CACL,MAAO,CAAE,SAAU,0BAAkB,MAAO,sBAAc,CAC5D,CACF,CAEA,GAAI,SAAS,YAAc,EAAG,CAC5B,GAAI,SAAS,UAAW,CACtB,MAAO,CAAE,SAAU,0BAAkB,MAAO,sBAAc,CAC5D,KAAO,CACL,MAAO,CAAE,SAAU,0BAAkB,MAAO,sBAAc,CAC5D,CACF,CAEA,GAAI,SAAS,UAAW,CACtB,MAAO,CAAE,SAAU,8BAAsB,MAAO,0BAAkB,CACpE,KAAO,CACL,MAAO,CAAE,SAAU,8BAAsB,MAAO,0BAAkB,CACpE,CACF,CAzBgB","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/utils.ts"],"sourcesContent":["import { GameSettings } from '../game';\nimport { BasicStrategyChart, UncommonChart } from '../types';\nimport {\n  d1h17DasChart,\n  d1s17DasChart,\n  d1h17DasUncommon,\n  d1s17DasUncommon,\n  d2h17DasChart,\n  d2s17DasChart,\n  d2h17DasUncommon,\n  d2s17DasUncommon,\n  dMultiH17DasChart,\n  dMultiS17DasChart,\n  dMultiH17DasUncommon,\n  dMultiS17DasUncommon,\n} from '.';\n\nexport function selectCharts(settings: GameSettings): {\n  chart: BasicStrategyChart;\n  uncommon: UncommonChart;\n} {\n  if (settings.deckCount === 1) {\n    if (settings.hitSoft17) {\n      return { uncommon: d1h17DasUncommon, chart: d1h17DasChart };\n    } else {\n      return { uncommon: d1s17DasUncommon, chart: d1s17DasChart };\n    }\n  }\n\n  if (settings.deckCount === 2) {\n    if (settings.hitSoft17) {\n      return { uncommon: d2h17DasUncommon, chart: d2h17DasChart };\n    } else {\n      return { uncommon: d2s17DasUncommon, chart: d2s17DasChart };\n    }\n  }\n\n  if (settings.hitSoft17) {\n    return { uncommon: dMultiH17DasUncommon, chart: dMultiH17DasChart };\n  } else {\n    return { uncommon: dMultiS17DasUncommon, chart: dMultiS17DasChart };\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/index.ts":{"lineLengths":[83,1697,4,0,1058],"data":{"version":3,"mappings":";qqBAAA,qrBAKO,oBAEP,IAAAA,aAKO,oBAEP,sBAKO","names":["import_deck"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/index.ts"],"sourcesContent":["export {\n  h17DasChart as d1h17DasChart,\n  s17DasChart as d1s17DasChart,\n  h17DasUncommon as d1h17DasUncommon,\n  s17DasUncommon as d1s17DasUncommon,\n} from './1-deck';\n\nexport {\n  h17DasChart as d2h17DasChart,\n  s17DasChart as d2s17DasChart,\n  h17DasUncommon as d2h17DasUncommon,\n  s17DasUncommon as d2s17DasUncommon,\n} from './2-deck';\n\nexport {\n  h17DasChart as dMultiH17DasChart,\n  s17DasChart as dMultiS17DasChart,\n  h17DasUncommon as dMultiH17DasUncommon,\n  s17DasUncommon as dMultiS17DasUncommon,\n} from './multi-deck';\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/1-deck/index.ts":{"lineLengths":[90,1080,4,0,514],"data":{"version":3,"mappings":";qqBAAA,0QAAiE,qBACjE,mBAAiE","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/1-deck/index.ts"],"sourcesContent":["export { chart as h17DasChart, uncommon as h17DasUncommon } from './h17-das';\nexport { chart as s17DasChart, uncommon as s17DasUncommon } from './s17-das';\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/1-deck/h17-das.ts":{"lineLengths":[92,2520,4,0,7094],"data":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/1-deck/h17-das.ts"],"sourcesContent":["import {\n  BasicStrategyChart,\n  UncommonChart,\n  convertToChartMove,\n  ChartType,\n} from '../../types';\n\n// Chart symbols:\n// H:  Hit\n// S:  Stand\n// Dh: Double if allowed, otherwise hit\n// Ds: Double if allowed, otherwise split\n// P:  Split\n// Ph: Split if double after split is allowed, otherwise hit\n// Pd: Split if double after split is allowed, otherwise double\n// Rh: Surrender if allowed, otherwise hit\n// Rs: Surrender if allowed, otherwise stand\n// Rp: Surrender if allowed and double after split not allowed, otherwise split\n//\n// See https://wizardofodds.com/blackjack/images/bj_1d_h17.gif\n\nexport const chart: BasicStrategyChart = convertToChartMove(\n  // prettier-ignore\n  new Map([\n    [ChartType.Hard, [\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh'],\n    ['H',  'H',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'Rh'],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'Rh', 'Rh'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'Rs'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Soft, [\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'Ds', 'Ds', 'Ds', 'Ds', 'S',  'S',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'Ds', 'S',  'S',  'S',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'Ds', 'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Splits, [\n    ['Ph', 'P',  'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'Ph', 'H',  'H',  'H' ],\n    ['H',  'H',  'Ph', 'Pd', 'Pd', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'Ph', 'H',  'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'Ph', 'H',  'Rs', 'Rh'],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n    ['P',  'P',  'P',  'P',  'P',  'S',  'P',  'P',  'S',  'Ps'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n  ]],\n  ]),\n);\n\nexport const uncommon: UncommonChart = new Map([\n  [ChartType.Hard, new Map()],\n  [ChartType.Soft, new Map()],\n  [ChartType.Splits, new Map()],\n]);\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/1-deck/s17-das.ts":{"lineLengths":[92,2515,4,0,7094],"data":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/1-deck/s17-das.ts"],"sourcesContent":["import {\n  BasicStrategyChart,\n  UncommonChart,\n  convertToChartMove,\n  ChartType,\n} from '../../types';\n\n// Chart symbols:\n// H:  Hit\n// S:  Stand\n// Dh: Double if allowed, otherwise hit\n// Ds: Double if allowed, otherwise split\n// P:  Split\n// Ph: Split if double after split is allowed, otherwise hit\n// Pd: Split if double after split is allowed, otherwise double\n// Rh: Surrender if allowed, otherwise hit\n// Rs: Surrender if allowed, otherwise stand\n// Rp: Surrender if allowed and double after split not allowed, otherwise split\n//\n// See https://wizardofodds.com/blackjack/images/bj_1d_s17.gif\n\nexport const chart: BasicStrategyChart = convertToChartMove(\n  // prettier-ignore\n  new Map([\n    [ChartType.Hard, [\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh'],\n    ['H',  'H',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'Rh', 'Rh'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Soft, [\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'Ds', 'Ds', 'Ds', 'Ds', 'S',  'S',  'H',  'H',  'S' ],\n    ['S',  'S',  'S',  'S',  'Ds', 'S',  'S',  'S',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Splits, [\n    ['Ph', 'P',  'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'Ph', 'H',  'H',  'H' ],\n    ['H',  'H',  'Ph', 'Pd', 'Pd', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'Ph', 'H',  'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'Ph', 'H',  'Rs', 'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n    ['P',  'P',  'P',  'P',  'P',  'S',  'P',  'P',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n  ]],\n  ]),\n);\n\nexport const uncommon: UncommonChart = new Map([\n  [ChartType.Hard, new Map()],\n  [ChartType.Soft, new Map()],\n  [ChartType.Splits, new Map()],\n]);\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/2-deck/index.ts":{"lineLengths":[90,1080,4,0,514],"data":{"version":3,"mappings":";qqBAAA,0QAAiE,qBACjE,mBAAiE","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/2-deck/index.ts"],"sourcesContent":["export { chart as h17DasChart, uncommon as h17DasUncommon } from './h17-das';\nexport { chart as s17DasChart, uncommon as s17DasUncommon } from './s17-das';\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/2-deck/h17-das.ts":{"lineLengths":[92,2763,4,0,8822],"data":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/2-deck/h17-das.ts"],"sourcesContent":["import {\n  BasicStrategyChart,\n  UncommonChart,\n  convertToChartMove,\n  ChartType,\n} from '../../types';\n\n// Chart symbols:\n// H:  Hit\n// S:  Stand\n// Dh: Double if allowed, otherwise hit\n// Ds: Double if allowed, otherwise split\n// P:  Split\n// Ph: Split if double after split is allowed, otherwise hit\n// Pd: Split if double after split is allowed, otherwise double\n// Rh: Surrender if allowed, otherwise hit\n// Rs: Surrender if allowed, otherwise stand\n// Rp: Surrender if allowed and double after split not allowed, otherwise split\n//\n// See https://wizardofodds.com/blackjack/images/bj_2d_h17.gif\n\nexport const chart: BasicStrategyChart = convertToChartMove(\n  // prettier-ignore\n  new Map([\n    [ChartType.Hard, [\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh'],\n    ['H',  'H',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'Rh', 'Rh'],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'Rh', 'Rh'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'Rs'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Soft, [\n    ['H',  'H',  'H',  'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Ds', 'Ds', 'Ds', 'Ds', 'Ds', 'S',  'S',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'Ds', 'S',  'S',  'S',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Splits, [\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'Ph', 'Ph', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'Ph', 'H',  'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'Ph', 'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'Rp'],\n    ['P',  'P',  'P',  'P',  'P',  'S',  'P',  'P',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n  ]],\n  ]),\n);\n\nexport const uncommon: UncommonChart = new Map([\n  [\n    ChartType.Hard,\n    new Map([\n      [9, [7]],\n      [10, [9]],\n      [12, [2, 3]],\n      [15, [10, 11]],\n      [16, [10, 11]],\n      [17, [10, 11]],\n    ]),\n  ],\n  [\n    ChartType.Soft,\n    new Map([\n      [13, [2, 3, 4, 5]],\n      [14, [2, 3, 4]],\n      [15, [2, 3, 4]],\n      [16, [2, 3, 4]],\n      [17, [2, 3, 4]],\n      [18, [2, 7, 8, 9]],\n      [19, [5, 6, 7]],\n    ]),\n  ],\n  [\n    ChartType.Splits,\n    new Map([\n      [2, [7, 8]],\n      [3, [7, 8]],\n      [4, [2, 3, 4, 5, 6, 7]],\n      [7, [9]],\n      [8, [10, 11]],\n      [9, [6, 7, 8, 9, 10, 11]],\n    ]),\n  ],\n]);\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/2-deck/s17-das.ts":{"lineLengths":[92,2509,4,0,7094],"data":{"version":3,"mappings":";qqBAAA,uJAKO,uBAgBA,MAAM,SAA4B,iCAEvC,IAAI,IAAI,CACN,CAAC,uBAAU,KAAM,CACjB,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,GAAI,EAC3D,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KAAM,IAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,CAC7D,CAAC,EAEC,CAAC,uBAAU,KAAM,CACjB,CAAC,IAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,CAC7D,CAAC,EAEC,CAAC,uBAAU,OAAQ,CACnB,CAAC,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,KAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,EAC3D,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI,CAC7D,CAAC,CACD,CAAC,CACH,EAEO,MAAM,SAA0B,IAAI,IAAI,CAC7C,CAAC,uBAAU,KAAM,IAAI,GAAK,EAC1B,CAAC,uBAAU,KAAM,IAAI,GAAK,EAC1B,CAAC,uBAAU,OAAQ,IAAI,GAAK,CAC9B,CAAC","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/2-deck/s17-das.ts"],"sourcesContent":["import {\n  BasicStrategyChart,\n  UncommonChart,\n  convertToChartMove,\n  ChartType,\n} from '../../types';\n\n// Chart symbols:\n// H:  Hit\n// S:  Stand\n// Dh: Double if allowed, otherwise hit\n// Ds: Double if allowed, otherwise split\n// P:  Split\n// Ph: Split if double after split is allowed, otherwise hit\n// Pd: Split if double after split is allowed, otherwise double\n// Rh: Surrender if allowed, otherwise hit\n// Rs: Surrender if allowed, otherwise stand\n// Rp: Surrender if allowed and double after split not allowed, otherwise split\n//\n// See https://wizardofodds.com/blackjack/images/bj_2d_s17.gif\n\nexport const chart: BasicStrategyChart = convertToChartMove(\n  // prettier-ignore\n  new Map([\n    [ChartType.Hard, [\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh'],\n    ['H',  'H',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'Rh', 'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'Rh', 'Rh'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Soft, [\n    ['H',  'H',  'H',  'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'Ds', 'Ds', 'Ds', 'Ds', 'S',  'S',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Splits, [\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'Ph', 'Ph', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'Ph', 'H',  'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'Ph', 'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n    ['P',  'P',  'P',  'P',  'P',  'S',  'P',  'P',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n  ]],\n  ]),\n);\n\nexport const uncommon: UncommonChart = new Map([\n  [ChartType.Hard, new Map()],\n  [ChartType.Soft, new Map()],\n  [ChartType.Splits, new Map()],\n]);\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/multi-deck/index.ts":{"lineLengths":[94,1098,4,0,518],"data":{"version":3,"mappings":";qqBAAA,4RAAiE,qBACjE,mBAAiE","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/multi-deck/index.ts"],"sourcesContent":["export { chart as h17DasChart, uncommon as h17DasUncommon } from './h17-das';\nexport { chart as s17DasChart, uncommon as s17DasUncommon } from './s17-das';\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/multi-deck/h17-das.ts":{"lineLengths":[96,2512,4,0,7098],"data":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/multi-deck/h17-das.ts"],"sourcesContent":["import {\n  BasicStrategyChart,\n  UncommonChart,\n  convertToChartMove,\n  ChartType,\n} from '../../types';\n\n// Chart symbols:\n// H:  Hit\n// S:  Stand\n// Dh: Double if allowed, otherwise hit\n// Ds: Double if allowed, otherwise split\n// P:  Split\n// Ph: Split if double after split is allowed, otherwise hit\n// Pd: Split if double after split is allowed, otherwise double\n// Rh: Surrender if allowed, otherwise hit\n// Rs: Surrender if allowed, otherwise stand\n// Rp: Surrender if allowed and double after split not allowed, otherwise split\n//\n// See https://wizardofodds.com/blackjack/images/bj_4d_h17.gif\n\nexport const chart: BasicStrategyChart = convertToChartMove(\n  // prettier-ignore\n  new Map([\n    [ChartType.Hard, [\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh'],\n    ['H',  'H',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'Rh', 'Rh'],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'Rh', 'Rh', 'Rh'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'Rs'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Soft, [\n    ['H',  'H',  'H',  'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Ds', 'Ds', 'Ds', 'Ds', 'Ds', 'S',  'S',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'Ds', 'S',  'S',  'S',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Splits, [\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'Ph', 'Ph', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'Rp'],\n    ['P',  'P',  'P',  'P',  'P',  'S',  'P',  'P',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n  ]],\n  ]),\n);\n\nexport const uncommon: UncommonChart = new Map([\n  [ChartType.Hard, new Map()],\n  [ChartType.Soft, new Map()],\n  [ChartType.Splits, new Map()],\n]);\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/charts/multi-deck/s17-das.ts":{"lineLengths":[96,2506,4,0,7098],"data":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/charts/multi-deck/s17-das.ts"],"sourcesContent":["import {\n  BasicStrategyChart,\n  UncommonChart,\n  convertToChartMove,\n  ChartType,\n} from '../../types';\n\n// Chart symbols:\n// H:  Hit\n// S:  Stand\n// Dh: Double if allowed, otherwise hit\n// Ds: Double if allowed, otherwise split\n// P:  Split\n// Ph: Split if double after split is allowed, otherwise hit\n// Pd: Split if double after split is allowed, otherwise double\n// Rh: Surrender if allowed, otherwise hit\n// Rs: Surrender if allowed, otherwise stand\n// Rp: Surrender if allowed and double after split not allowed, otherwise split\n//\n// See https://wizardofodds.com/blackjack/images/bj_4d_s17.gif\n\nexport const chart: BasicStrategyChart = convertToChartMove(\n  // prettier-ignore\n  new Map([\n    [ChartType.Hard, [\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H' ],\n    ['H',  'H',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'H',  'Rh', 'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'H',  'H',  'Rh', 'Rh', 'Rh'],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Soft, [\n    ['H',  'H',  'H',  'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['H',  'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H',  'H',  'H',  'H' ],\n    ['S',  'Ds', 'Ds', 'Ds', 'Ds', 'S',  'S',  'H',  'H',  'H' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n  ]],\n\n    [ChartType.Splits, [\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['Ph', 'Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['H',  'H',  'H',  'Ph', 'Ph', 'H',  'H',  'H',  'H',  'H' ],\n    ['Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'Dh', 'H',  'H' ],\n    ['Ph', 'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'H',  'H',  'H',  'H' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n    ['P',  'P',  'P',  'P',  'P',  'S',  'P',  'P',  'S',  'S' ],\n    ['S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S',  'S' ],\n    ['P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P',  'P' ],\n  ]],\n  ]),\n);\n\nexport const uncommon: UncommonChart = new Map([\n  [ChartType.Hard, new Map()],\n  [ChartType.Soft, new Map()],\n  [ChartType.Splits, new Map()],\n]);\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/extendable-error.ts":{"lineLengths":[87,1189,4,0,1014],"data":{"version":3,"mappings":";mvBAAA,6JAAO,wBAAsC,KAAM,CAAnD,MAAmD,gCACjD,YAAY,QAAU,GAAI,CACxB,MAAM,OAAO,EACb,KAAK,KAAO,KAAK,YAAY,KAE7B,GAAI,OAAO,MAAM,oBAAsB,WAAY,CACjD,MAAM,kBAAkB,KAAM,KAAK,WAAW,CAChD,KAAO,CACL,KAAK,MAAQ,IAAI,MAAM,OAAO,EAAE,KAClC,CACF,CACF","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/extendable-error.ts"],"sourcesContent":["export default class ExtendableError extends Error {\n  constructor(message = '') {\n    super(message);\n    this.name = this.constructor.name;\n\n    if (typeof Error.captureStackTrace === 'function') {\n      Error.captureStackTrace(this, this.constructor);\n    } else {\n      this.stack = new Error(message).stack;\n    }\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/hi-lo-deviation-checker.ts":{"lineLengths":[94,6088,4,0,14806],"data":{"version":3,"mappings":"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","names":["playerTotal","Utils","gameSettings"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/hi-lo-deviation-checker.ts"],"sourcesContent":["import Utils from './utils';\nimport Game, { settings as gameSettings } from './game';\nimport Hand from './hand';\nimport {\n  Move,\n  GameStep,\n  GameMode,\n  PlayerStrategy,\n  Deviation,\n  Deviations,\n  playerTotal,\n  dealerCard,\n  CheckDeviationResult,\n} from './types';\n\n// TODO: Consider different deviations for deck counts and s17?\n// prettier-ignore\nexport const illustrious18Deviations: Deviations = new Map<playerTotal, Map<dealerCard, Deviation>>([\n  [0,  new Map([\n    [11, { correctMove: Move.AskInsurance, index: ['>=', 3] }],\n  ]),\n  ],\n  [9,  new Map([\n    [2,  { correctMove: Move.Hit,    index: ['<',   1] }],\n    [7,  { correctMove: Move.Double, index: ['>=',  3] }],\n  ]),\n  ],\n  [10, new Map([\n    [10, { correctMove: Move.Double, index: ['>=',  4] }],\n    [11, { correctMove: Move.Double, index: ['>=',  4] }],\n  ]),\n  ],\n  [11, new Map([\n    [11, { correctMove: Move.Hit,    index: ['<',   1] }],\n  ])\n  ],\n  [12, new Map([\n    [2,  { correctMove: Move.Stand,  index: ['>=',  3] }],\n    [3,  { correctMove: Move.Stand,  index: ['>=',  2] }],\n    [4,  { correctMove: Move.Hit,    index: ['<',   0] }],\n    [5,  { correctMove: Move.Hit,    index: ['<',  -2] }],\n    [6,  { correctMove: Move.Hit,    index: ['<',  -1] }],\n  ]),\n  ],\n  [13, new Map([\n    [2,  { correctMove: Move.Hit,    index: ['<',  -1] }],\n    [3,  { correctMove: Move.Hit,    index: ['<',  -2] }],\n  ]),\n  ],\n  [15, new Map([\n    [10, { correctMove: Move.Stand,  index: ['>=', 4] }]\n  ])\n  ],\n  [16, new Map([\n    [9,  { correctMove: Move.Stand,  index: ['>=', 5] }],\n    [10, { correctMove: Move.Stand,  index: ['>=', 0] }],\n  ]),\n  ],\n  [20, new Map([\n    [5,  { correctMove: Move.Split,  index: ['>=', 5] }],\n    [6,  { correctMove: Move.Split,  index: ['>=', 4] }],\n  ]),\n  ],\n]);\n\n// prettier-ignore\nexport const fab4Deviations: Deviations = new Map<playerTotal, Map<dealerCard, Deviation>>([\n  [14,  new Map([\n    [10, { correctMove: Move.Surrender, index: ['>=',  3], fab4: true }],\n  ]),\n  ],\n  [15,  new Map([\n    [9,  { correctMove: Move.Hit, index: ['<',  2], fab4: true }],\n    [10, { correctMove: Move.Hit, index: ['<',  0], fab4: true }],\n    [11, { correctMove: Move.Hit, index: ['<',  1], fab4: true }],\n  ])],\n]);\n\nexport default class HiLoDeviationChecker {\n  static _getDeviation(\n    deviations: Deviations,\n    playerTotal: playerTotal,\n    dealersCard: dealerCard,\n  ): Deviation | undefined {\n    return deviations.get(playerTotal)?.get(dealersCard);\n  }\n\n  static _suggest(\n    game: Game,\n    hand: Hand,\n    suggestFab4 = true,\n  ): Deviation | undefined {\n    const trueCount = game.shoe.hiLoTrueCount;\n\n    if (game.dealer.upcard == null || hand.isSoft) {\n      return;\n    }\n\n    const playerTotal =\n      game.state.step === GameStep.WaitingForInsuranceInput\n        ? 0\n        : hand.cardTotal;\n    const dealersCard = game.dealer.upcard.value;\n\n    const deviation =\n      hand.allowSurrender && suggestFab4\n        ? (this._getDeviation(fab4Deviations, playerTotal, dealersCard) ??\n          this._getDeviation(illustrious18Deviations, playerTotal, dealersCard))\n        : this._getDeviation(illustrious18Deviations, playerTotal, dealersCard);\n\n    if (\n      !deviation ||\n      (deviation.correctMove === Move.Double && !hand.firstMove) ||\n      (deviation.correctMove === Move.Split && !hand.allowSplit) ||\n      (deviation.correctMove === Move.Surrender && !hand.allowSurrender) ||\n      !Utils.compareRange(trueCount, deviation.index)\n    ) {\n      return;\n    }\n\n    return deviation;\n  }\n\n  static suggest(game: Game, hand: Hand): Move | undefined {\n    return this._suggest(\n      game,\n      hand,\n      hand.player.strategy === PlayerStrategy.BasicStrategyI18Fab4,\n    )?.correctMove;\n  }\n\n  // Insurance is purely a counting play (basic strategy always says decline).\n  // The deviation checker owns both directions: buy at TC >= 3, decline below.\n  static _checkInsurance(\n    deviation: Deviation | undefined,\n    input: Move,\n  ): CheckDeviationResult {\n    const noInsuranceDeviation: Deviation = {\n      correctMove: Move.NoInsurance,\n      index: ['<', 3],\n    };\n\n    if (deviation !== undefined) {\n      if (input === Move.AskInsurance) {\n        return { result: true, code: null, hint: null, deviation };\n      }\n      return {\n        result: false,\n        code: Move.AskInsurance,\n        hint: `Illustrious 18 deviation: last play should have been buy insurance for true counts ${deviation.index[0]} ${deviation.index[1]}`,\n        deviation,\n      };\n    }\n\n    if (input === Move.AskInsurance) {\n      return {\n        result: false,\n        code: Move.NoInsurance,\n        hint: `Illustrious 18 deviation: should not buy insurance for true counts ${noInsuranceDeviation.index[0]} ${noInsuranceDeviation.index[1]}`,\n        deviation: noInsuranceDeviation,\n      };\n    }\n    return {\n      result: true,\n      code: null,\n      hint: null,\n      deviation: noInsuranceDeviation,\n    };\n  }\n\n  // Returns undefined if a deviation was not present. Otherwise returns a\n  // `CheckDeviationResult` object.\n  static check(\n    game: Game,\n    hand: Hand,\n    input: Move,\n  ): CheckDeviationResult | undefined {\n    if (\n      !gameSettings.checkDeviations &&\n      gameSettings.mode !== GameMode.Deviations\n    ) {\n      return;\n    }\n\n    const deviation = this._suggest(game, hand);\n\n    if (game.state.step === GameStep.WaitingForInsuranceInput) {\n      return this._checkInsurance(deviation, input);\n    }\n\n    if (!deviation) {\n      return;\n    }\n\n    let hint;\n    const { correctMove, index } = deviation;\n\n    if (correctMove === Move.AskInsurance && input !== Move.AskInsurance) {\n      hint = 'buy insurance';\n    }\n\n    if (correctMove === Move.Hit && input !== Move.Hit) {\n      hint = 'hit';\n    }\n\n    if (correctMove === Move.Stand && input !== Move.Stand) {\n      hint = 'stand';\n    }\n\n    if (correctMove === Move.Double && input !== Move.Double) {\n      hint = 'double';\n    }\n\n    if (correctMove === Move.Split && input !== Move.Split) {\n      hint = 'split';\n    }\n\n    if (hint === undefined) {\n      return { result: true, code: null, hint: null, deviation };\n    }\n\n    const deviationType = deviation.fab4 === true ? 'Fab 4' : 'Illustrious 18';\n    const hintMessage = `${deviationType} deviation: last play should have been ${hint} for true counts ${index[0]} ${index[1]}`;\n\n    return {\n      result: false,\n      code: correctMove,\n      hint: hintMessage,\n      deviation,\n    };\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/dealer.ts":{"lineLengths":[77,1383,4,0,830],"data":{"version":3,"mappings":";8/BAAA,kIAAmB,6BAGnB,MAAO,eAA6B,cAAAA,OAAO,CAA3C,kCACE,gBAAa,SAJf,MAG2C,uBAGzC,IAAI,QAAe,CACjB,OAAO,KAAK,MAAM,CAAC,CACrB,CAEA,IAAI,UAAiB,CACnB,OAAO,KAAK,MAAM,CAAC,CACrB,CACF","names":["Player"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/dealer.ts"],"sourcesContent":["import Player from './player';\nimport Card from './card';\n\nexport default class Dealer extends Player {\n  entityName = 'dealer';\n\n  get upcard(): Card {\n    return this.cards[1];\n  }\n\n  get holeCard(): Card {\n    return this.cards[0];\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/player.ts":{"lineLengths":[77,5913,4,0,15702],"data":{"version":3,"mappings":"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","names":["GameObject","Utils","Hand","HiLoDeviationChecker","BasicStrategyChecker","hand"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/player.ts"],"sourcesContent":["import Utils from './utils';\nimport { Event } from './event-emitter';\nimport GameObject from './game-object';\nimport Game from './game';\nimport Hand from './hand';\nimport Card from './card';\nimport BasicStrategyChecker from './basic-strategy-checker';\nimport HiLoDeviationChecker from './hi-lo-deviation-checker';\nimport type { PlayerAttributes } from './event-types';\nimport {\n  HandWinner,\n  Move,\n  BlackjackPayout,\n  PlayerStrategy,\n  handWinnerToString,\n  playerStrategyToString,\n  moveToString,\n} from './types';\n\nexport default class Player extends GameObject {\n  entityName = 'player';\n\n  balance: number;\n  blackjackPayout: BlackjackPayout;\n  debug: boolean;\n  handsCount: number;\n  handsMax: number;\n  handWinner: Map<string, HandWinner>;\n  id: string;\n  strategy: PlayerStrategy;\n\n  _hands: Hand[];\n\n  constructor({\n    balance = 10000 * 100,\n    blackjackPayout = BlackjackPayout.ThreeToTwo,\n    debug = false,\n    handsMax,\n    strategy,\n  }: {\n    balance?: number;\n    blackjackPayout?: BlackjackPayout;\n    debug?: boolean;\n    handsMax: number;\n    strategy: PlayerStrategy;\n  }) {\n    super();\n\n    this.balance = balance;\n    this.blackjackPayout = blackjackPayout;\n    this.debug = debug;\n    this.handsCount = 0;\n    this.handsMax = handsMax;\n    this.handWinner = new Map();\n    this.id = Utils.randomId();\n    this.strategy = strategy;\n\n    // TODO: We need two settings here. One is max resplits allowed and the\n    // other is max spots allowed. Assuming max spots allowed is 4 (`handsMax`\n    // is how many resplits are allowed).\n    this._hands = Array.from({ length: handsMax * 4 }, () => {\n      // TODO: Use `chainEmitChange`.\n      const hand = new Hand(this);\n      hand.on(Event.Change, () => this.emitChange());\n      return hand;\n    });\n  }\n\n  getHand(index: number): Hand {\n    return this._hands[index];\n  }\n\n  eachHand(callback: (hand: Hand) => void): void {\n    for (let i = 0; i < this.handsCount; i += 1) {\n      callback(this._hands[i]);\n    }\n  }\n\n  getNPCInput(game: Game, hand: Hand): Move {\n    let correctMove: Move;\n\n    if (\n      this.strategy === PlayerStrategy.BasicStrategyI18 ||\n      this.strategy === PlayerStrategy.BasicStrategyI18Fab4\n    ) {\n      correctMove =\n        HiLoDeviationChecker.suggest(game, hand) ??\n        BasicStrategyChecker.suggest(game, hand);\n    } else {\n      correctMove = BasicStrategyChecker.suggest(game, hand);\n    }\n\n    if (this.debug) {\n      console.log(\n        playerStrategyToString(this.strategy),\n        this.id,\n        handWinnerToString(HandWinner.Dealer),\n        game.dealer.firstHand.serialize(),\n        handWinnerToString(HandWinner.Player),\n        hand.serialize(),\n        `(${hand.cardTotal})`,\n        moveToString(correctMove),\n      );\n    }\n\n    return correctMove;\n  }\n\n  addHand(betAmount = 0, cards: Card[] = []): Hand {\n    this.handsCount += 1;\n\n    if (this.handsCount > this._hands.length) {\n      const hand = new Hand(this);\n      hand.on(Event.Change, () => this.emitChange());\n      this._hands.push(hand);\n    }\n\n    const hand = this._hands[this.handsCount - 1];\n    hand.takeCards(cards);\n\n    if (betAmount !== 0) {\n      this.useChips(betAmount, { hand });\n    }\n\n    this.emitChange();\n\n    return hand;\n  }\n\n  takeCard(\n    card: Card,\n    { hand, prepend = false }: { hand?: Hand; prepend?: boolean } = {},\n  ): void {\n    const targetHand = hand ?? this._hands[0];\n    targetHand.takeCard(card, { prepend });\n\n    if (this.debug) {\n      console.log(\n        Utils.titleCase(this.entityName),\n        this.id,\n        'draws card',\n        targetHand.serialize({ showHidden: true }),\n        `(${targetHand.cardTotal})`,\n      );\n    }\n\n    this.emitChange();\n  }\n\n  removeCards(): void {\n    for (let i = 0; i < this.handsCount; i += 1) {\n      this._hands[i].removeCards();\n    }\n\n    this.handsCount = 0;\n  }\n\n  attributes(): PlayerAttributes {\n    const handWinner: Record<string, string> = {};\n\n    for (const [key, value] of this.handWinner.entries()) {\n      if (typeof value !== 'undefined') {\n        handWinner[key] = handWinnerToString(value);\n      }\n    }\n\n    return {\n      id: this.id,\n      balance: this.balance,\n      hands: this.hands.map((hand) => hand.attributes()),\n      handWinner,\n    };\n  }\n\n  useChips(betAmount: number, { hand }: { hand?: Hand } = {}): void {\n    if (!hand) {\n      hand = this._hands[0];\n    }\n\n    if (hand === undefined) {\n      throw new Error(`Player ${this.id} has no hand to add chips to`);\n    }\n\n    if (this.balance < betAmount) {\n      // TODO: Format cents.\n      throw new Error(\n        `Insufficient player balance: ${this.balance} < ${betAmount}`,\n      );\n    }\n\n    hand.betAmount += betAmount;\n    this.balance -= betAmount;\n\n    if (this.debug) {\n      console.log(\n        'Subtracted',\n        betAmount,\n        'from player',\n        this.id,\n        'balance:',\n        this.balance,\n      );\n    }\n  }\n\n  addChips(betAmount: number): void {\n    this.balance += betAmount;\n\n    if (this.debug) {\n      console.log('Adding balance', this.id, this.balance, betAmount);\n    }\n  }\n\n  setHandWinner({\n    hand = this._hands[0],\n    winner,\n    surrender = false,\n  }: {\n    hand?: Hand;\n    winner: HandWinner;\n    surrender?: boolean;\n  }): void {\n    if (this.handWinner.has(hand.id)) {\n      return;\n    }\n\n    this.handWinner.set(hand.id, winner);\n\n    if (this.debug) {\n      console.log(\n        'Hand result',\n        this.id,\n        'winner:',\n        winner,\n        hand.blackjack ? 'blackjack' : '',\n      );\n    }\n\n    if (winner === HandWinner.Player) {\n      const [ratioNumerator, ratioDenominator] = hand.blackjack\n        ? this._blackjackNumeratorDenominator()\n        : [1, 1];\n\n      this.addChips(\n        hand.betAmount + hand.betAmount * (ratioNumerator / ratioDenominator),\n      );\n    } else if (winner === HandWinner.Push) {\n      this.addChips(hand.betAmount);\n    } else if (winner === HandWinner.Dealer && surrender) {\n      this.addChips(hand.betAmount / 2);\n    }\n\n    this.emit(Event.HandWinner, hand, winner);\n    this.emitChange();\n  }\n\n  _blackjackNumeratorDenominator(): number[] {\n    switch (this.blackjackPayout) {\n      case BlackjackPayout.SixToFive:\n        return [6, 5];\n      case BlackjackPayout.ThreeToTwo:\n        return [3, 2];\n    }\n  }\n\n  get hands(): Hand[] {\n    return this._hands.slice(0, this.handsCount);\n  }\n\n  get firstHand(): Hand {\n    return this._hands[0];\n  }\n\n  get isUser(): boolean {\n    return this.strategy === PlayerStrategy.UserInput;\n  }\n\n  get isNPC(): boolean {\n    return !this.isUser;\n  }\n\n  // TODO: Consider using `Proxy`.\n  get cards(): Card[] {\n    return this._hands[0].cards;\n  }\n\n  // TODO: Consider using `Proxy`.\n  get busted(): boolean {\n    return this._hands[0].busted;\n  }\n\n  // TODO: Consider using `Proxy`.\n  get blackjack(): boolean {\n    return this._hands[0].blackjack;\n  }\n\n  // TODO: Consider using `Proxy`.\n  get cardTotal(): number {\n    return this._hands[0].cardTotal;\n  }\n\n  // TODO: Consider using `Proxy`.\n  get hasPairs(): boolean {\n    return this._hands[0].hasPairs;\n  }\n\n  // TODO: Consider using `Proxy`.\n  get isSoft(): boolean {\n    return this._hands[0].isSoft;\n  }\n\n  // TODO: Consider using `Proxy`.\n  get isHard(): boolean {\n    return this._hands[0].isHard;\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/hand.ts":{"lineLengths":[75,4467,4,0,11174],"data":{"version":3,"mappings":"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","names":["import_event_emitter","GameObject","Utils","EventEmitter"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/hand.ts"],"sourcesContent":["import { settings } from './game';\nimport GameObject from './game-object';\nimport { Event } from './event-emitter';\nimport Utils from './utils';\nimport Player from './player';\nimport Card, { CardAttributes } from './card';\nimport { Rank, rankToString } from './types';\nimport EventEmitter from './event-emitter';\n\nexport type HandAttributes = {\n  id: string;\n  cards: CardAttributes[];\n  hasPairs: boolean;\n  cardTotal: number;\n  blackjack: boolean;\n  firstMove: boolean;\n};\n\nexport default class Hand extends GameObject {\n  static entity = 'hand';\n\n  acesCount!: number;\n  betAmount!: number;\n  cardHighTotal!: number;\n  cardLowTotal!: number;\n  cards!: Card[];\n  splitCount: number;\n  id: string;\n  player: Player;\n\n  constructor(player: Player, cards: Card[] = []) {\n    super();\n\n    this.reset();\n\n    this.id = Utils.randomId();\n    this.player = player;\n    this.splitCount = 0;\n\n    for (const card of cards) {\n      this.takeCard(card);\n    }\n  }\n\n  reset(): void {\n    this.acesCount = 0;\n    this.betAmount = 0;\n    this.cardHighTotal = 0;\n    this.cardLowTotal = 0;\n    this.cards = [];\n    this.splitCount = 0;\n  }\n\n  takeCards(cards: Card[]): void {\n    this.cards = cards;\n\n    for (const card of cards) {\n      if (card.showingFace) {\n        this.incrementTotalsForCard(card);\n      }\n    }\n\n    this.emitChange();\n  }\n\n  takeCard(card: Card, { prepend = false } = {}): void {\n    card.on(Event.Change, this.emitChange);\n\n    if (prepend) {\n      this.cards.unshift(card);\n    } else {\n      this.cards.push(card);\n    }\n\n    if (card.showingFace) {\n      this.incrementTotalsForCard(card);\n    }\n\n    this.emitChange();\n  }\n\n  removeCard(): Card {\n    const card = this.cards.pop();\n\n    if (!card) {\n      throw new Error('No cards left!');\n    }\n\n    this.decrementTotalsForCard(card);\n\n    return card;\n  }\n\n  incrementTotalsForCard(card: Card): void {\n    if (card.rank === Rank.Ace) {\n      this.acesCount += 1;\n      this.cardLowTotal += 1;\n\n      if (this.cardHighTotal + 11 <= 21) {\n        this.cardHighTotal += 11;\n      } else {\n        this.cardHighTotal += 1;\n      }\n    } else {\n      this.cardHighTotal += card.value;\n      this.cardLowTotal += card.value;\n    }\n  }\n\n  decrementTotalsForCard(card: Card): void {\n    if (card.rank === Rank.Ace) {\n      this.acesCount -= 1;\n      this.cardLowTotal -= 1;\n\n      if (this.acesCount > 0 && this.cardHighTotal + 11 > 21) {\n        this.cardHighTotal -= 1;\n      } else {\n        this.cardHighTotal -= 11;\n      }\n    } else {\n      this.cardHighTotal -= card.value;\n      this.cardLowTotal -= card.value;\n    }\n  }\n\n  removeCards(): Card[] {\n    const cards = this.cards;\n\n    if (!EventEmitter.disableEvents) {\n      for (const card of cards) {\n        card.removeListener(Event.Change, this.emitChange);\n      }\n    }\n\n    this.reset();\n    this.emitChange();\n\n    return cards;\n  }\n\n  serialize({ showHidden = false } = {}): string {\n    return this.cards\n      .map((card) =>\n        card.showingFace || showHidden ? rankToString(card.rank) : '?',\n      )\n      .join(' ');\n  }\n\n  attributes(): HandAttributes {\n    return {\n      id: this.id,\n      cards: this.cards.map((card) => card.attributes()),\n      hasPairs: this.hasPairs,\n      cardTotal: this.cardTotal,\n      blackjack: this.blackjack,\n      firstMove: this.firstMove,\n    };\n  }\n\n  get allowSplit(): boolean {\n    if (!this.hasPairs || this.splitCount >= settings.maxHandsAllowed - 1) {\n      return false;\n    }\n\n    if (this.hasAces && this.fromSplit && !settings.allowResplitAces) {\n      return false;\n    }\n\n    return true;\n  }\n\n  get fromSplit(): boolean {\n    return this.splitCount > 0;\n  }\n\n  get fromAceSplit(): boolean {\n    return this.fromSplit && this.cards[0].rank === Rank.Ace;\n  }\n\n  get allowSurrender(): boolean {\n    return this.firstMove && settings.allowLateSurrender;\n  }\n\n  get allowDouble(): boolean {\n    return this.firstMove;\n  }\n\n  get cardTotal(): number {\n    return this.cardHighTotal > 21 ? this.cardLowTotal : this.cardHighTotal;\n  }\n\n  get firstMove(): boolean {\n    return this.cards.length <= 2;\n  }\n\n  get busted(): boolean {\n    return this.cardTotal > 21;\n  }\n\n  get blackjack(): boolean {\n    return (\n      this.cards.length === 2 && this.cardHighTotal === 21 && !this.fromSplit\n    );\n  }\n\n  get finished(): boolean {\n    return (\n      this.busted || this.blackjack || (this.fromAceSplit && !this.hasAces)\n    );\n  }\n\n  get hasPairs(): boolean {\n    return (\n      this.cards.length === 2 && this.cards[0].value === this.cards[1].value\n    );\n  }\n\n  // A hand is \"soft\" if there is an ace and the next card will not bust:\n  // 1. there's at least one ace\n  // 2. counting the aces as value 1, the total is <= 11\n  get isSoft(): boolean {\n    return this.acesCount > 0 && this.cardLowTotal <= 11;\n  }\n\n  get isHard(): boolean {\n    return !this.isSoft;\n  }\n\n  get hasAces(): boolean {\n    return (\n      this.cards.length === 2 &&\n      this.cards[0].rank === Rank.Ace &&\n      this.cards[1].rank === Rank.Ace\n    );\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/event-types.ts":{"lineLengths":[82,1408,4,0,2874],"data":{"version":3,"mappings":";mvBAAA,sLA8BO,SAAS,mBACd,MAC2B,CAC3B,OACE,OAAO,QAAU,UACjB,QAAU,MACV,UAAW,OACX,eAAgB,KAEpB,CATgB,gDAYhB,SAAS,SAAS,MAAkD,CAClE,OAAO,OAAO,QAAU,UAAY,QAAU,IAChD,CAFS,4BAIF,SAAS,cACd,MAC4C,CAC5C,OACE,SAAS,KAAK,GACd,eAAgB,OAChB,OAAO,MAAM,aAAe,UAEhC,CARgB","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/event-types.ts"],"sourcesContent":["import { Event } from './event-emitter';\nimport Hand, { HandAttributes } from './hand';\nimport { CardAttributes } from './card';\nimport { HandWinner } from './types';\n\n// Attributes returned by each GameObject subclass.\nexport type PlayerAttributes = {\n  id: string;\n  balance: number;\n  hands: HandAttributes[];\n  handWinner: { [id: string]: string };\n};\n\nexport type ShoeAttributes = {\n  cards: CardAttributes[];\n  hiLoRunningCount: number;\n  hiLoTrueCount: number;\n  penetration: number;\n};\n\n// Union of all possible values emitted with Event.Change.\nexport type ChangeValue =\n  | PlayerAttributes\n  | HandAttributes\n  | CardAttributes\n  | ShoeAttributes\n  | string\n  | number;\n\n// Type guard for narrowing ChangeValue to PlayerAttributes.\nexport function isPlayerAttributes(\n  value: ChangeValue,\n): value is PlayerAttributes {\n  return (\n    typeof value === 'object' &&\n    value !== null &&\n    'hands' in value &&\n    'handWinner' in value\n  );\n}\n\n// Type guard for objects with an attributes() method (e.g. GameObject subclasses).\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return typeof value === 'object' && value !== null;\n}\n\nexport function hasAttributes(\n  value: unknown,\n): value is { attributes: () => ChangeValue } {\n  return (\n    isRecord(value) &&\n    'attributes' in value &&\n    typeof value.attributes === 'function'\n  );\n}\n\n// Maps each Event enum member to its argument tuple.\nexport type EventMap = {\n  [Event.Change]: [string, ChangeValue];\n  [Event.HandWinner]: [Hand, HandWinner];\n  [Event.CreateRecord]: [string, Record<string, unknown>];\n  [Event.Shuffle]: [];\n  [Event.ResetState]: [];\n};\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/cli-renderer.ts":{"lineLengths":[88,2788,4,0,6190],"data":{"version":3,"mappings":";0zBAAA,gBAAuB,gBAEvB,gBAAiB,mCACjB,wBAAwB,2CACxB,gBAAiB,mCACjB,iBAAuD,2BAEvD,SAAS,eAAgB,CACvB,MAAM,KAAO,IAAI,YAAAA,QAAK,CACpB,MAAO,QAAQ,IAAI,OAAS,MAAQ,QAAQ,IAAI,QAAU,GAC1D,oBAAqB,EACrB,YAAa,CACf,CAAC,EAED,MAAM,OAAS,KAAK,KAAK,MAAM,OAC/B,MAAM,QAAU,QAAC,MAAe,OAAqB,CACnD,KAAK,KAAK,MAAM,OAAS,MAAQ,CAAC,EAAI,IAAI,YAAAC,QACxC,kBAAK,OACL,KACA,KAAK,IACP,CACF,EANgB,WAUhB,QAAQ,EAAG,kBAAK,GAAG,EACnB,QAAQ,EAAG,kBAAK,IAAI,EACpB,QAAQ,EAAG,kBAAK,KAAK,EACrB,QAAQ,EAAG,kBAAK,IAAI,EAEpB,OAAO,IACT,CAxBS,sCA0BT,SAAS,cAAe,UAAY,CAClC,SAAS,mBAAoB,UAAY,CACvC,QAAQ,iCAAkC,UAAY,CACpD,IAAI,SACJ,IAAI,KAEJ,OAAO,UAAY,CACjB,KAAO,cAAc,EACrB,KAAK,UAAY,GAAK,IAItB,oBAAAC,QAAY,UAAU,eAAiB,UAAY,CAEnD,EACA,oBAAAA,QAAY,UAAU,aAAe,UAAY,CAEjD,EAEA,SAAW,IAAI,oBAAAA,QAAY,IAAI,EAG/B,KAAK,KAAK,EAGV,KAAK,KAAK,EAGV,KAAK,KAAK,kBAAK,KAAK,EAGpB,KAAK,KAAK,KAGV,oBAAO,KAAK,MAAM,IAAI,EAAE,GAAG,MAAM,sBAAS,sBAAsB,KAChE,oBAAO,KAAK,OAAO,WAAW,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MACtD,wBAAW,IACb,CACF,CAAC,EAED,GAAG,wDAAyD,UAAY,CACtE,MAAM,aAAe,SAAS,cAAc,KAI5C,oBAAO,YAAY,EAAE,GAAG,GAAG,EAAE,QAAQ,KACrC,oBAAO,YAAY,EAAE,GAAG,QAAQ,MAAM,KACtC,oBAAO,YAAY,EAAE,IAAI,GAAG,MAAM,OAAO,CAC3C,CAAC,EAED,GAAG,2CAA4C,UAAY,CACzD,MAAM,MAAQ,SAAS,YAGvB,MAAM,aAAe,MAAM,MAAM,OAAS,CAAC,KAC3C,oBAAO,YAAY,EAAE,GAAG,GAAG,EAAE,QAAQ,KACrC,oBAAO,YAAY,EAAE,GAAG,QAAQ,MAAM,CACxC,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC","names":["Game","Card","CLIRenderer"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/cli-renderer.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport Game from '../../src/game';\nimport CLIRenderer from '../../src/cli-renderer';\nimport Card from '../../src/card';\nimport { Suit, Rank, GameStep, Move, HandWinner } from '../../src/types';\n\nfunction setupPushGame() {\n  const game = new Game({\n    debug: process.env.DEBUG != null && process.env.DEBUG !== '',\n    playerTablePosition: 1,\n    playerCount: 1,\n  });\n\n  const length = game.shoe.cards.length;\n  const setCard = (index: number, rank: Rank): void => {\n    game.shoe.cards[length - index - 1] = new Card(\n      Suit.Hearts,\n      rank,\n      game.shoe,\n    );\n  };\n\n  // Set up a scenario where both player and dealer have 20 (push).\n  // Deal order: player card 1, dealer upcard, player card 2, dealer hole card.\n  setCard(0, Rank.Ten); // Player first card: Ten (10)\n  setCard(1, Rank.King); // Dealer upcard: King (10)\n  setCard(2, Rank.Queen); // Player second card: Queen (10)\n  setCard(3, Rank.Jack); // Dealer hole card: Jack (10)\n\n  return game;\n}\n\ndescribe('CLIRenderer', function () {\n  describe('#_questionLine()', function () {\n    context('when the hand result is a push', function () {\n      let renderer: CLIRenderer;\n      let game: Game;\n\n      before(function () {\n        game = setupPushGame();\n        game.betAmount = 10 * 100;\n\n        // Override _setupCliInput and _renderLine since we are in a test\n        // environment without a TTY.\n        CLIRenderer.prototype._setupCliInput = function () {\n          // no-op\n        };\n        CLIRenderer.prototype._renderLines = function () {\n          // no-op\n        };\n\n        renderer = new CLIRenderer(game);\n\n        // Step through the game: deal cards.\n        game.step();\n\n        // Play right-side NPCs (none in single player).\n        game.step();\n\n        // Player stands with 20.\n        game.step(Move.Stand);\n\n        // Play left-side NPCs and dealer. Dealer also has 20, so it's a push.\n        game.step();\n\n        // Now the game should be in WaitingForNewGameInput.\n        expect(game.state.step).to.equal(GameStep.WaitingForNewGameInput);\n        expect(game.player.handWinner.values().next().value).to.equal(\n          HandWinner.Push,\n        );\n      });\n\n      it('should return a string containing \"Push\" not a number', function () {\n        const questionLine = renderer._questionLine();\n\n        // The bug: HandWinner.Push is a numeric enum value (2), so the old\n        // code returned the number 2 instead of the string \"Push\".\n        expect(questionLine).to.be.a('string');\n        expect(questionLine).to.include('Push');\n        expect(questionLine).not.to.match(/\\b2\\b/);\n      });\n\n      it('should include \"Push\" in the outputLines', function () {\n        const lines = renderer.outputLines;\n\n        // The question line is the last element.\n        const questionLine = lines[lines.length - 1];\n        expect(questionLine).to.be.a('string');\n        expect(questionLine).to.include('Push');\n      });\n    });\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/cli-renderer.ts":{"lineLengths":[83,4005,4,0,9130],"data":{"version":3,"mappings":"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","names":["gameSettings"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/cli-renderer.ts"],"sourcesContent":["import * as readline from 'readline';\n\nimport Renderer from './renderer';\nimport Game, { settings as gameSettings } from './game';\nimport Player from './player';\nimport Hand from './hand';\nimport { HandWinner, GameStep, handWinnerToString } from './types';\n\nconst PLAY_CORRECTION_VISIBLE_TIME_MS = 4000;\n\n// Renders the game state to the terminal.\nexport default class CLIRenderer implements Renderer {\n  game: Game;\n\n  constructor(game: Game) {\n    this.game = game;\n\n    this._setupCliInput();\n\n    // Creates space for further output during rendering.\n    console.log();\n    console.log();\n    console.log();\n  }\n\n  get outputLines(): string[] {\n    return [\n      this._playerLine(this.game.dealer, HandWinner.Dealer),\n      this._playerLine(this.game.player, HandWinner.Player),\n      this._statsLine(),\n      this._questionLine(),\n    ];\n  }\n\n  render(): void {\n    const lines = this.outputLines;\n\n    if (this.game.state.playCorrection) {\n      lines[2] = this.game.state.playCorrection;\n\n      setTimeout(() => {\n        this._renderLines(this.outputLines);\n      }, PLAY_CORRECTION_VISIBLE_TIME_MS);\n    }\n\n    this._renderLines(lines);\n  }\n\n  _renderLines(lines: string[]): void {\n    lines.forEach((line, i) => {\n      this._renderLine(line, lines.length - i - 1);\n    });\n  }\n\n  _setupCliInput(): void {\n    // Allows collecting keypress events in `getPlayerMoveInput`.\n    readline.emitKeypressEvents(process.stdin);\n\n    if (process.stdin.isTTY) {\n      process.stdin.setRawMode(true);\n    }\n  }\n\n  _playerLine(player: Player, type: HandWinner): string {\n    const line = player.hands\n      .map((hand) => {\n        const padding = hand.cardTotal < 10 ? ' ' : '';\n        const handFocus = this.game.focusedHand === hand ? '>' : ' ';\n\n        return `${handFocus} (total ${\n          hand.cardTotal\n        }): ${padding}${this._colorizeHand(hand.serialize())}`;\n      })\n      .join('   ');\n\n    return `${handWinnerToString(type)} ${line}`;\n  }\n\n  _statsLine(): string {\n    return `TC: ${this.game.shoe.hiLoTrueCount.toFixed(2)}`;\n  }\n\n  _questionLine(): string {\n    if (this.game.state.step == null) {\n      return '';\n    }\n\n    let question;\n\n    if (this.game.state.step === GameStep.WaitingForPlayInput) {\n      const choices = ['H (hit)', 'S (stand)'];\n\n      if (this.game.focusedHand.firstMove) {\n        choices.push('D (double)');\n\n        if (gameSettings.allowLateSurrender) {\n          choices.push('R (surrender)');\n        }\n      }\n\n      if (this.game.focusedHand.allowSplit) {\n        choices.push('P (split)');\n      }\n\n      question = choices.join(', ') + '? ';\n    } else if (this.game.state.step === GameStep.WaitingForInsuranceInput) {\n      question = 'Y (buy insurance), N (no insurance)? ';\n    } else if (this.game.state.step === GameStep.WaitingForNewGameInput) {\n      const getGameResult = (hand: Hand) => {\n        switch (this.game.player.handWinner.get(hand.id)) {\n          case HandWinner.Player: {\n            const blackjack =\n              hand.blackjack && !this.game.dealer.blackjack\n                ? 'Blackjack! '\n                : '';\n            return `${blackjack}Player wins`;\n          }\n          case HandWinner.Dealer: {\n            const blackjack = this.game.dealer.blackjack ? ' (blackjack)' : '';\n            return `Dealer wins${blackjack}`;\n          }\n          case HandWinner.Push:\n            return 'Push';\n        }\n      };\n\n      // TODO: Align these results with the hands above.\n      const result = this.game.player.hands\n        .map((hand) => getGameResult(hand))\n        .join(', ');\n\n      question = `${result} (press any key for next hand)`;\n    }\n\n    return question ?? '';\n  }\n\n  _renderLine(text: string, yPosBottom = 0): void {\n    if (text == null) {\n      return;\n    }\n\n    readline.cursorTo(process.stdout, 0, process.stdout.rows - yPosBottom - 1);\n    readline.clearLine(process.stdout, 0);\n\n    process.stdout.write(text);\n  }\n\n  // Alters the text with ANSI escape codes. For example, bold ace cards.\n  _colorizeHand(serializedHand: string): string {\n    const boldEscape = '\\u001b[1m';\n    const resetEscape = '\\u001b[0m';\n\n    return serializedHand.replace(/A/g, `${boldEscape}A${resetEscape}`);\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/file-storage.ts":{"lineLengths":[88,2596,4,0,5118],"data":{"version":3,"mappings":";4uBAAA,gBAAuB,gBACvB,OAAoB,uBACpB,SAAsB,yBACtB,OAAoB,uBAEpB,wBAAwB,2CAExB,SAAS,cAAe,UAAY,CAClC,IAAI,QACJ,IAAI,QAEJ,WAAW,UAAY,CACrB,QAAU,GAAG,YAAY,KAAK,KAAK,GAAG,OAAO,EAAG,iBAAiB,CAAC,EAClE,QAAU,IAAI,oBAAAA,QAAY,OAAO,CACnC,CAAC,EAED,UAAU,UAAY,CACpB,GAAG,OAAO,QAAS,CAAE,UAAW,KAAM,MAAO,IAAK,CAAC,CACrD,CAAC,EAED,SAAS,kBAAmB,UAAY,CACtC,GAAG,uDAAwD,UAAY,CACrE,MAAM,KAAO,CAAE,OAAQ,MAAO,OAAQ,KAAM,EAC5C,QAAQ,aAAa,cAAe,IAAI,EAExC,MAAM,SAAW,KAAK,KAAK,QAAS,iBAAiB,KACrD,oBAAO,GAAG,WAAW,QAAQ,CAAC,EAAE,GAAG,GAAG,KAEtC,MAAM,SAAW,GAAG,aAAa,SAAU,OAAO,EAAE,KAAK,KACzD,oBAAO,KAAK,MAAM,QAAQ,CAAC,EAAE,GAAG,KAAK,MAAM,IAAI,CACjD,CAAC,EAED,GAAG,4DAA6D,UAAY,CAG1E,GAAG,OAAO,QAAS,CAAE,UAAW,KAAM,MAAO,IAAK,CAAC,EAEnD,MAAM,KAAO,CAAE,OAAQ,OAAQ,OAAQ,IAAK,EAC5C,QAAQ,aAAa,cAAe,IAAI,EAExC,MAAM,SAAW,KAAK,KAAK,QAAS,iBAAiB,KACrD,oBAAO,GAAG,WAAW,QAAQ,CAAC,EAAE,GAAG,GAAG,KAEtC,MAAM,SAAW,GAAG,aAAa,SAAU,OAAO,EAAE,KAAK,KACzD,oBAAO,KAAK,MAAM,QAAQ,CAAC,EAAE,GAAG,KAAK,MAAM,IAAI,CACjD,CAAC,EAED,GAAG,kDAAmD,UAAY,CAChE,MAAM,MAAQ,CAAE,OAAQ,MAAO,OAAQ,KAAM,EAC7C,MAAM,MAAQ,CAAE,OAAQ,OAAQ,OAAQ,IAAK,EAE7C,QAAQ,aAAa,cAAe,KAAK,EACzC,QAAQ,aAAa,cAAe,KAAK,EAEzC,MAAM,SAAW,KAAK,KAAK,QAAS,iBAAiB,EACrD,MAAM,MAAQ,GAAG,aAAa,SAAU,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,KAElE,oBAAO,KAAK,EAAE,GAAG,KAAK,SAAS,CAAC,KAChC,oBAAO,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,KAAK,KAChD,oBAAO,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,KAAK,CAClD,CAAC,CACH,CAAC,CACH,CAAC","names":["FileStorage"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/file-storage.ts"],"sourcesContent":["import { expect } from 'chai';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as os from 'os';\n\nimport FileStorage from '../../src/file-storage';\n\ndescribe('FileStorage', function () {\n  let tempDir: string;\n  let storage: FileStorage;\n\n  beforeEach(function () {\n    tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'blackjack-test-'));\n    storage = new FileStorage(tempDir);\n  });\n\n  afterEach(function () {\n    fs.rmSync(tempDir, { recursive: true, force: true });\n  });\n\n  describe('#createRecord()', function () {\n    it('should write a record file to the database directory', function () {\n      const data = { result: 'win', amount: '100' };\n      storage.createRecord('test-record', data);\n\n      const filePath = path.join(tempDir, 'test-record.txt');\n      expect(fs.existsSync(filePath)).to.be.true;\n\n      const contents = fs.readFileSync(filePath, 'utf-8').trim();\n      expect(JSON.parse(contents)).to.deep.equal(data);\n    });\n\n    it('should create the database directory if it does not exist', function () {\n      // Remove the temp dir to simulate a fresh state where the directory\n      // does not exist yet.\n      fs.rmSync(tempDir, { recursive: true, force: true });\n\n      const data = { result: 'loss', amount: '50' };\n      storage.createRecord('test-record', data);\n\n      const filePath = path.join(tempDir, 'test-record.txt');\n      expect(fs.existsSync(filePath)).to.be.true;\n\n      const contents = fs.readFileSync(filePath, 'utf-8').trim();\n      expect(JSON.parse(contents)).to.deep.equal(data);\n    });\n\n    it('should append multiple records to the same file', function () {\n      const data1 = { result: 'win', amount: '100' };\n      const data2 = { result: 'loss', amount: '50' };\n\n      storage.createRecord('test-record', data1);\n      storage.createRecord('test-record', data2);\n\n      const filePath = path.join(tempDir, 'test-record.txt');\n      const lines = fs.readFileSync(filePath, 'utf-8').trim().split('\\n');\n\n      expect(lines).to.have.lengthOf(2);\n      expect(JSON.parse(lines[0])).to.deep.equal(data1);\n      expect(JSON.parse(lines[1])).to.deep.equal(data2);\n    });\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/file-storage.ts":{"lineLengths":[83,1575,4,4,0,1514],"data":{"version":3,"mappings":";8/BAAA,8IAAoB,uBACpB,SAAsB,yBAItB,MAAM,qBAAuB,KAAK,KAAK,UAAW,KAAM,IAAI,EAE5D,MAAO,WAA6C,CAPpD,MAOoD,4BAGlD,YAAY,YAAsB,CAChC,KAAK,YAAc,aAAe,oBACpC,CAEA,aAAa,WAAoB,KAAqC,CACpE,GAAG,UAAU,KAAK,YAAa,CAAE,UAAW,IAAK,CAAC,EAClD,GAAG,eACD,KAAK,KAAK,KAAK,YAAa,GAAG,UAAU,MAAM,EAC/C,GAAG,KAAK,UAAU,IAAI,CAAC;AAAA,CACzB,CACF,CACF","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/file-storage.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\n\nimport Storage from './storage';\n\nconst DEFAULT_DATABASE_DIR = path.join(__dirname, '..', 'db');\n\nexport default class FileStorage implements Storage {\n  private databaseDir: string;\n\n  constructor(databaseDir?: string) {\n    this.databaseDir = databaseDir ?? DEFAULT_DATABASE_DIR;\n  }\n\n  createRecord(recordName: string, data: Record<string, unknown>): void {\n    fs.mkdirSync(this.databaseDir, { recursive: true });\n    fs.appendFileSync(\n      path.join(this.databaseDir, `${recordName}.txt`),\n      `${JSON.stringify(data)}\\n`,\n    );\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/game.ts":{"lineLengths":[80,35682,4,0,99742],"data":{"version":3,"mappings":"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","names":["sinonChai","Utils","Game","Card","game","sinon","BasicStrategyChecker","HiLoDeviationChecker"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/game.ts"],"sourcesContent":["import { expect, use } from 'chai';\nimport sinonChai from 'sinon-chai';\nimport sinon from 'sinon';\n\nimport BasicStrategyChecker from '../../src/basic-strategy-checker';\nimport HiLoDeviationChecker, {\n  illustrious18Deviations,\n} from '../../src/hi-lo-deviation-checker';\nimport { Event } from '../../src/event-emitter';\nimport Game, { GameSettings } from '../../src/game';\nimport Card from '../../src/card';\nimport Utils from '../../src/utils';\nimport { isPlayerAttributes } from '../../src/event-types';\nimport {\n  Suit,\n  Rank,\n  GameStep,\n  Move,\n  HandWinner,\n  GameMode,\n  cardRankToValue,\n  CheckDeviationResult,\n} from '../../src/types';\n\nuse(sinonChai);\n\ntype GameSetupOptions = {\n  settings: Partial<GameSettings>;\n  setupDeviationScenario: boolean;\n  playerCards: Rank[];\n  dealerCards: Rank[];\n};\n\nfunction setupGame(options: Partial<GameSetupOptions> = {}) {\n  const defaults: GameSetupOptions = {\n    settings: {\n      debug: process.env.DEBUG != null && process.env.DEBUG !== '',\n      playerTablePosition: 1,\n      playerCount: 1,\n    },\n    setupDeviationScenario: false,\n    playerCards: [],\n    dealerCards: [Rank.Six],\n  };\n\n  const mergedOptions = Utils.merge(defaults, options);\n  const game = new Game(mergedOptions.settings);\n\n  if (mergedOptions.setupDeviationScenario) {\n    const playerTotal =\n      cardRankToValue(mergedOptions.playerCards[0]) +\n      cardRankToValue(mergedOptions.playerCards[1]);\n    const dealerTotal = cardRankToValue(mergedOptions.dealerCards[0]);\n\n    const deviation = illustrious18Deviations\n      .get(playerTotal)\n      ?.get(dealerTotal);\n\n    if (!deviation) {\n      throw new Error(\n        `No deviation found for ${playerTotal} vs ${dealerTotal}`,\n      );\n    }\n    game.shoe.setupDeviationScenario(playerTotal, dealerTotal, deviation);\n  } else {\n    const length = game.shoe.cards.length;\n    const setCard = (index: number, rank: Rank): void => {\n      if (typeof rank === 'undefined') {\n        return;\n      }\n\n      game.shoe.cards[length - index - 1] = new Card(\n        Suit.Hearts,\n        rank,\n        game.shoe,\n      );\n    };\n\n    setCard(0, mergedOptions.playerCards[0]);\n    setCard(1, mergedOptions.dealerCards[0]);\n    setCard(2, mergedOptions.playerCards[1]);\n    setCard(3, mergedOptions.dealerCards[1]);\n\n    for (let i = 2; i <= mergedOptions.playerCards.length - 1; i += 1) {\n      setCard(i + 2, mergedOptions.playerCards[i]);\n    }\n  }\n\n  return game;\n}\n\nfunction runGame(\n  game: Game,\n  {\n    repeatPlayerInput = false,\n    input = [],\n  }: {\n    repeatPlayerInput?: boolean;\n    input?: Partial<{ [key in GameStep]: Move }>[];\n  } = {},\n) {\n  game.betAmount = 10 * 100;\n\n  let callCount = 0;\n\n  do {\n    let playerInput: Move | undefined;\n\n    const inputChoices = input[callCount];\n    if (inputChoices !== undefined) {\n      playerInput = inputChoices[game.state.step];\n      if (playerInput === undefined && game.state.step >= 3) {\n        throw new Error(`No action provided for game step ${game.state.step}`);\n      }\n    } else if (!repeatPlayerInput) {\n      break;\n    }\n\n    if (!repeatPlayerInput && playerInput !== undefined) {\n      callCount += 1;\n    }\n\n    game.step(playerInput);\n  } while (game.state.step !== GameStep.Start);\n}\n\ndescribe('Game', function () {\n  let game: Game;\n\n  before(function () {\n    game = setupGame();\n  });\n\n  describe('#settings', function () {\n    it('should expose current game settings as an instance property', function () {\n      const customGame = new Game({\n        playerCount: 1,\n        playerTablePosition: 1,\n        deckCount: 6,\n        hitSoft17: false,\n        maxHandsAllowed: 2,\n      });\n\n      expect(customGame.settings).to.be.an('object');\n      expect(customGame.settings.deckCount).to.equal(6);\n      expect(customGame.settings.hitSoft17).to.equal(false);\n      expect(customGame.settings.maxHandsAllowed).to.equal(2);\n    });\n\n    it('should reflect updates from updateSettings', function () {\n      const customGame = new Game({\n        playerCount: 1,\n        playerTablePosition: 1,\n      });\n\n      customGame.updateSettings({ deckCount: 8 });\n      expect(customGame.settings.deckCount).to.equal(8);\n    });\n  });\n\n  describe('#run()', function () {\n    context('when the shoe needs to be reset', function () {\n      let cardsBefore: number;\n\n      before(function () {\n        cardsBefore = game.shoe.cards.length;\n\n        let shuffled = false;\n        game.on(Event.Shuffle, () => (shuffled = true));\n\n        while (!shuffled) {\n          runGame(game, {\n            repeatPlayerInput: true,\n            input: [\n              {\n                [GameStep.WaitingForNewGameInput]: Move.Hit,\n                [GameStep.WaitingForPlayInput]: Move.Hit,\n                [GameStep.WaitingForInsuranceInput]: Move.NoInsurance,\n              },\n            ],\n          });\n        }\n      });\n\n      it('should move all the cards from the discard tray back to the shoe', function () {\n        expect(cardsBefore).to.equal(game.shoe.cards.length);\n      });\n\n      it('should reset the hi-lo running count', function () {\n        expect(game.shoe.hiLoRunningCount).to.equal(0);\n      });\n    });\n\n    context('when the player bets and wins', function () {\n      let playerBalanceBefore: number;\n      let emittedHandWinner = false;\n\n      const game = setupGame({\n        // Force a winning hand for the player (blackjack with A-J).\n        dealerCards: [Rank.Two, Rank.Two],\n        playerCards: [Rank.Ace, Rank.Jack],\n      });\n\n      before(function () {\n        playerBalanceBefore = game.player.balance;\n\n        game.on(Event.Change, (name, value) => {\n          if (\n            name === 'player' &&\n            isPlayerAttributes(value) &&\n            value.handWinner[value.hands[0].id] === 'player'\n          ) {\n            emittedHandWinner = true;\n          }\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForNewGameInput]: Move.Hit,\n            },\n          ],\n        });\n      });\n\n      it('should increase the player balance', function () {\n        expect(game.player.balance).to.equal(\n          playerBalanceBefore + game.betAmount * (3 / 2),\n        );\n      });\n\n      it('should emit the correct handWinner state', () => {\n        expect(emittedHandWinner).to.be.true;\n      });\n    });\n\n    context('when autoDeclineInsurance is enabled', function () {\n      before(function () {\n        game = setupGame({\n          settings: { autoDeclineInsurance: true },\n          // Force a hand that prompts for insurance (dealer Ace).\n          dealerCards: [Rank.Ace],\n          playerCards: [Rank.Two],\n        });\n\n        runGame(game, {\n          repeatPlayerInput: true,\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Hit,\n              [GameStep.WaitingForNewGameInput]: Move.Hit,\n            },\n          ],\n        });\n      });\n\n      it('should not pause for player input', function () {\n        expect(game.state.step).not.to.equal(GameStep.WaitingForInsuranceInput);\n      });\n    });\n\n    context('when late surrender is enabled', function () {\n      context('when only two cards are dealt', function () {\n        before(function () {\n          game = setupGame({\n            settings: {\n              allowLateSurrender: true,\n            },\n            dealerCards: [Rank.Queen, Rank.Jack],\n            playerCards: [Rank.Six, Rank.Jack],\n          });\n\n          runGame(game, {\n            input: [\n              {\n                [GameStep.WaitingForPlayInput]: Move.Surrender,\n              },\n              {\n                [GameStep.WaitingForNewGameInput]: Move.Hit,\n              },\n            ],\n          });\n        });\n\n        it('should allow late surrender', function () {\n          expect(game.state.step).to.equal(GameStep.Start);\n          expect(game.player.handWinner.values().next().value).to.equal(\n            HandWinner.Dealer,\n          );\n        });\n      });\n\n      context('when more than two cards are dealt', function () {\n        before(function () {\n          game = setupGame({\n            settings: {\n              allowLateSurrender: true,\n            },\n            // Force a hand where the player has 16v10 and the next card will\n            // not bust the player.\n            dealerCards: [Rank.Queen, Rank.Jack],\n            playerCards: [Rank.Six, Rank.Jack, Rank.Two],\n          });\n\n          runGame(game, {\n            input: [\n              {\n                [GameStep.WaitingForPlayInput]: Move.Hit,\n              },\n              {\n                [GameStep.WaitingForPlayInput]: Move.Surrender,\n              },\n            ],\n          });\n        });\n\n        it('should not allow late surrender', function () {\n          expect(game.state.step).to.equal(GameStep.WaitingForPlayInput);\n        });\n      });\n    });\n\n    context('when six deck, stay soft 17 is enabled', function () {\n      before(function () {\n        game = setupGame({\n          settings: {\n            hitSoft17: false,\n            deckCount: 6,\n            allowLateSurrender: true,\n          },\n          dealerCards: [Rank.Ace, Rank.Six],\n          playerCards: [Rank.Six, Rank.Ten, Rank.Ten],\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForInsuranceInput]: Move.NoInsurance,\n            },\n            {\n              [GameStep.WaitingForPlayInput]: Move.Hit,\n            },\n            {\n              [GameStep.WaitingForNewGameInput]: Move.Hit,\n            },\n          ],\n        });\n      });\n\n      it('should use the six deck, stay soft 17 chart (allow 16vA hit)', function () {\n        expect(game.state.step).to.equal(GameStep.Start);\n      });\n    });\n\n    context('when dealt 8,8 vs Ace with DAS and late surrender', function () {\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            hitSoft17: true,\n            allowDoubleAfterSplit: true,\n            allowLateSurrender: true,\n          },\n          dealerCards: [Rank.Ace, Rank.Seven],\n          playerCards: [Rank.Eight, Rank.Eight],\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForInsuranceInput]: Move.NoInsurance,\n            },\n            {\n              [GameStep.WaitingForPlayInput]: Move.Surrender,\n            },\n          ],\n        });\n      });\n\n      it('should suggest surrender over split', function () {\n        expect(game.state.sessionMovesTotal).to.equal(1);\n        expect(game.state.sessionMovesCorrect).to.equal(1);\n      });\n    });\n\n    context('when surrender is allowed', function () {\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            allowLateSurrender: true,\n            mode: GameMode.Deviations,\n          },\n          setupDeviationScenario: true,\n          dealerCards: [Rank.Ten],\n          playerCards: [Rank.Six, Rank.Ten],\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Surrender,\n            },\n          ],\n        });\n      });\n\n      it('should take priority over illustrious 18', function () {\n        expect(game.state.sessionMovesTotal).to.equal(1);\n        expect(game.state.sessionMovesCorrect).to.equal(1);\n      });\n    });\n\n    context('when splitting is allowed', function () {\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            mode: GameMode.Deviations,\n          },\n          dealerCards: [Rank.Two],\n          playerCards: [Rank.Six, Rank.Six],\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Split,\n            },\n          ],\n        });\n      });\n\n      it('should take priority over illustrious 18', function () {\n        expect(game.state.sessionMovesTotal).to.equal(1);\n        expect(game.state.sessionMovesCorrect).to.equal(1);\n      });\n    });\n\n    context('when resplit aces is disabled', function () {\n      before(function () {\n        game = setupGame({\n          settings: {\n            allowResplitAces: false,\n          },\n          // Force a hand where the player has AAv20 (the dealer total is\n          // irrelevant). And after splitting, the player is dealt another ace\n          // on both hands.\n          dealerCards: [Rank.Queen, Rank.Jack],\n          playerCards: [Rank.Ace, Rank.Ace, Rank.Ace, Rank.Ace],\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Split,\n            },\n            {\n              [GameStep.WaitingForPlayInput]: Move.Split,\n            },\n          ],\n        });\n      });\n\n      it('should allow splitting but not resplitting', function () {\n        expect(game.player.hands).to.have.lengthOf(2);\n      });\n    });\n\n    context('when the player is dealt a pair of 5s', function () {\n      before(function () {\n        game = setupGame({\n          dealerCards: [Rank.Six],\n          playerCards: [Rank.Five, Rank.Five],\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Hit,\n            },\n          ],\n        });\n      });\n\n      it('should suggest double as the correct move', function () {\n        expect(game.state.sessionMovesTotal).to.equal(1);\n        expect(game.state.sessionMovesCorrect).to.equal(0);\n        expect(game.state.playCorrection).to.include('double');\n      });\n    });\n\n    context('when the dealer is dealt a blackjack', function () {\n      let emittedBlackjack = false;\n\n      before(function () {\n        game = setupGame({\n          dealerCards: [Rank.Jack, Rank.Ace],\n          playerCards: [Rank.Five, Rank.Five],\n        });\n\n        game.on(Event.Change, (name, value) => {\n          if (\n            name === 'dealer' &&\n            isPlayerAttributes(value) &&\n            value.hands[0].blackjack\n          ) {\n            emittedBlackjack = true;\n          }\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.Start]: Move.Hit,\n            },\n          ],\n        });\n      });\n\n      after(function () {\n        game.removeAllListeners(Event.Change);\n      });\n\n      it('should emit correct state for dealer.blackjack', function () {\n        expect(emittedBlackjack).to.be.true;\n      });\n    });\n\n    context(\n      'when dealer has blackjack with ace up and autoDeclineInsurance is false',\n      function () {\n        let playerBalanceBefore: number;\n\n        before(function () {\n          game = setupGame({\n            settings: {\n              autoDeclineInsurance: false,\n            },\n            dealerCards: [Rank.Ace, Rank.Ten],\n            playerCards: [Rank.Five, Rank.Five],\n          });\n\n          playerBalanceBefore = game.player.balance;\n\n          // Step to deal initial cards.\n          game.step();\n        });\n\n        it('should prompt for insurance input', function () {\n          expect(game.state.step).to.equal(GameStep.WaitingForInsuranceInput);\n        });\n\n        it('should end the round after insurance is declined', function () {\n          game.step(Move.NoInsurance);\n          expect(game.state.step).to.equal(GameStep.WaitingForNewGameInput);\n        });\n\n        it('should mark all hands as dealer wins', function () {\n          expect(game.player.handWinner.values().next().value).to.equal(\n            HandWinner.Dealer,\n          );\n        });\n\n        it('should only deduct the initial bet from the player', function () {\n          expect(playerBalanceBefore - game.player.balance).to.equal(\n            game.betAmount,\n          );\n        });\n      },\n    );\n\n    context(\n      'when player accepts insurance at TC < 3 with checkDeviations on',\n      function () {\n        before(function () {\n          game = setupGame({\n            settings: {\n              deckCount: 6,\n              autoDeclineInsurance: false,\n              checkDeviations: true,\n            },\n            dealerCards: [Rank.Ace, Rank.Seven],\n            playerCards: [Rank.Five, Rank.Five],\n          });\n\n          // Deal — prompts for insurance.\n          game.step();\n\n          // Set TC to 0 (well below 3).\n          game.shoe.hiLoRunningCount = 0;\n\n          // Accept insurance (wrong at TC < 3).\n          game.step(Move.AskInsurance);\n        });\n\n        it('should show a deviation correction', function () {\n          expect(game.state.playCorrection).to.include('insurance');\n        });\n\n        it('should count as an incorrect move', function () {\n          expect(game.state.sessionMovesTotal).to.equal(1);\n          expect(game.state.sessionMovesCorrect).to.equal(0);\n        });\n      },\n    );\n\n    context(\n      'when player declines insurance at TC >= 3 with checkDeviations on',\n      function () {\n        before(function () {\n          game = setupGame({\n            settings: {\n              deckCount: 6,\n              autoDeclineInsurance: false,\n              checkDeviations: true,\n            },\n            dealerCards: [Rank.Ace, Rank.Seven],\n            playerCards: [Rank.Five, Rank.Five],\n          });\n\n          game.step();\n\n          // Set TC to 3.\n          game.shoe.hiLoRunningCount = game.shoe.decksRemaining * 3;\n\n          // Decline insurance (wrong at TC >= 3).\n          game.step(Move.NoInsurance);\n        });\n\n        it('should show a deviation correction', function () {\n          expect(game.state.playCorrection).to.include('insurance');\n        });\n\n        it('should count as an incorrect move', function () {\n          expect(game.state.sessionMovesTotal).to.equal(1);\n          expect(game.state.sessionMovesCorrect).to.equal(0);\n        });\n      },\n    );\n\n    context(\n      'when player correctly declines insurance at TC < 3 with checkDeviations on',\n      function () {\n        before(function () {\n          game = setupGame({\n            settings: {\n              deckCount: 6,\n              autoDeclineInsurance: false,\n              checkDeviations: true,\n            },\n            dealerCards: [Rank.Ace, Rank.Seven],\n            playerCards: [Rank.Five, Rank.Five],\n          });\n\n          game.step();\n          game.shoe.hiLoRunningCount = 0;\n\n          // Decline insurance (correct at TC < 3).\n          game.step(Move.NoInsurance);\n        });\n\n        it('should not show a deviation correction', function () {\n          expect(game.state.playCorrection).to.equal('');\n        });\n\n        it('should count as a correct move', function () {\n          expect(game.state.sessionMovesTotal).to.equal(1);\n          expect(game.state.sessionMovesCorrect).to.equal(1);\n        });\n      },\n    );\n\n    context(\n      'when dealer has blackjack with ace up and player accepts insurance',\n      function () {\n        let playerBalanceBefore: number;\n\n        before(function () {\n          game = setupGame({\n            settings: {\n              autoDeclineInsurance: false,\n            },\n            dealerCards: [Rank.Ace, Rank.Ten],\n            playerCards: [Rank.Five, Rank.Five],\n          });\n\n          playerBalanceBefore = game.player.balance;\n\n          // Deal — prompts for insurance.\n          game.step();\n          // Accept insurance.\n          game.step(Move.AskInsurance);\n        });\n\n        it('should break even (insurance 2:1 payout covers lost bet)', function () {\n          // Bet = 1000, insurance = 500 (half bet).\n          // Dealer has blackjack: bet lost (-1000), insurance pays 2:1 (+1000),\n          // insurance stake returned (+500). Net = 0.\n          expect(game.player.balance).to.equal(playerBalanceBefore);\n        });\n      },\n    );\n\n    context(\n      'when dealer has blackjack with ace up, hole card should be revealed and count updated',\n      function () {\n        let hiLoCountAfterInsurance: number;\n        let holeCardShowingFace: boolean;\n\n        before(function () {\n          game = setupGame({\n            settings: {\n              autoDeclineInsurance: false,\n            },\n            dealerCards: [Rank.Ace, Rank.Ten],\n            playerCards: [Rank.Five, Rank.Five],\n          });\n\n          // Deal initial cards — prompts for insurance.\n          game.step();\n          expect(game.state.step).to.equal(GameStep.WaitingForInsuranceInput);\n\n          // Decline insurance — dealer has blackjack.\n          game.step(Move.NoInsurance);\n\n          hiLoCountAfterInsurance = game.shoe.hiLoRunningCount;\n          holeCardShowingFace = game.dealer.cards[0].showingFace;\n        });\n\n        it('should flip the hole card face up', function () {\n          expect(holeCardShowingFace).to.be.true;\n        });\n\n        it('should include the hole card in the hi-lo running count', function () {\n          // Ace (upcard) = -1, Ten (hole) = -1, Five + Five (player) = +1 +1 = 0 total\n          // If hole card was NOT counted, running count would be missing the -1 for the Ten.\n          expect(hiLoCountAfterInsurance).to.equal(0);\n        });\n      },\n    );\n\n    context(\n      'when dealer has blackjack with ace up, dealer.blackjack should be true when handWinner emits',\n      function () {\n        let dealerBlackjackAtEmit: boolean;\n\n        before(function () {\n          dealerBlackjackAtEmit = false;\n\n          game = setupGame({\n            settings: {\n              autoDeclineInsurance: false,\n            },\n            dealerCards: [Rank.Ace, Rank.Ten],\n            playerCards: [Rank.Five, Rank.Five],\n          });\n\n          game.on(Event.Change, (name: unknown, value: unknown) => {\n            if (\n              name === 'player' &&\n              isPlayerAttributes(value) &&\n              value.handWinner[value.hands[0].id] === 'dealer'\n            ) {\n              // Capture dealer blackjack state at the moment handWinner is emitted.\n              dealerBlackjackAtEmit = game.dealer.firstHand.blackjack;\n            }\n          });\n\n          game.step();\n          game.step(Move.NoInsurance);\n        });\n\n        after(function () {\n          game.removeAllListeners(Event.Change);\n        });\n\n        it('should have dealer.blackjack true when handWinner change fires', function () {\n          expect(dealerBlackjackAtEmit).to.be.true;\n        });\n      },\n    );\n\n    context('when the player splits aces without more aces', function () {\n      before(function () {\n        game = setupGame({\n          dealerCards: [Rank.Six],\n          playerCards: [Rank.Ace, Rank.Ace, Rank.Three, Rank.Four],\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Split,\n            },\n          ],\n        });\n      });\n\n      it('should not allow further action', function () {\n        expect(game.state.sessionMovesTotal).to.equal(1);\n        expect(game.state.sessionMovesCorrect).to.equal(1);\n        expect(game.state.step).to.equal(GameStep.PlayHandsLeft);\n      });\n    });\n\n    context('when the player splits non-aces', function () {\n      before(function () {\n        game = setupGame({\n          dealerCards: [Rank.Six],\n          playerCards: [Rank.Six, Rank.Six, Rank.Ten, Rank.Ten],\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Split,\n            },\n            {\n              [GameStep.WaitingForPlayInput]: Move.Stand,\n            },\n          ],\n        });\n      });\n\n      it('should allow further action', function () {\n        expect(game.state.sessionMovesTotal).to.equal(2);\n        expect(game.state.sessionMovesCorrect).to.equal(2);\n        expect(game.state.step).to.equal(GameStep.WaitingForPlayInput);\n        expect(game.state.focusedHandIndex).to.equal(1);\n      });\n    });\n\n    context('when addHand exceeds pre-allocated hands array', function () {\n      it('should not crash', function () {\n        game = setupGame({\n          settings: {\n            maxHandsAllowed: 4,\n          },\n          dealerCards: [Rank.Six],\n          playerCards: [Rank.Eight, Rank.Eight],\n        });\n\n        // Simulate repeatedly adding hands beyond the pre-allocated limit.\n        // The pre-allocated array has maxHandsAllowed * 4 = 16 entries.\n        // This should not crash even if handsCount exceeds that.\n        const player = game.player;\n        for (let i = player.handsCount; i < 20; i += 1) {\n          expect(() => player.addHand()).to.not.throw();\n        }\n      });\n    });\n\n    context('when a typical hand is played', function () {\n      before(function () {\n        sinon.spy(BasicStrategyChecker, 'check');\n        sinon.spy(HiLoDeviationChecker, 'check');\n\n        game = setupGame({\n          dealerCards: [Rank.Nine],\n          playerCards: [Rank.Five, Rank.Three],\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Hit,\n            },\n          ],\n        });\n      });\n\n      it('checked deviations and basic strategy', function () {\n        expect(BasicStrategyChecker.check).to.have.been.calledOnce;\n        expect(HiLoDeviationChecker.check).to.have.been.calledOnce;\n      });\n    });\n\n    context('when resplitting is not allowed', function () {\n      before(function () {\n        game = setupGame({\n          dealerCards: [Rank.Six],\n          playerCards: [Rank.Ten, Rank.Ten],\n          settings: {\n            maxHandsAllowed: 1,\n          },\n        });\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Stand,\n            },\n          ],\n        });\n      });\n\n      it('should use the hard totals chart for suggestions', function () {\n        expect(game.state.sessionMovesTotal).to.equal(1);\n        expect(game.state.sessionMovesCorrect).to.equal(1);\n        expect(game.state.playCorrection).to.equal('');\n      });\n    });\n\n    context(\n      'when dealer has 10-up blackjack and player also has blackjack',\n      function () {\n        let playerBalanceBefore: number;\n\n        before(function () {\n          game = setupGame({\n            // Dealer: Jack up, Ace hole = blackjack\n            // Player: Ace, King = blackjack\n            dealerCards: [Rank.Jack, Rank.Ace],\n            playerCards: [Rank.Ace, Rank.King],\n          });\n\n          playerBalanceBefore = game.player.balance;\n\n          runGame(game, {\n            input: [\n              {\n                [GameStep.Start]: Move.Hit,\n              },\n            ],\n          });\n        });\n\n        it('should be a push (not dealer win)', function () {\n          expect(game.player.handWinner.values().next().value).to.equal(\n            HandWinner.Push,\n          );\n        });\n\n        it('should return the full bet to the player', function () {\n          expect(game.player.balance).to.equal(playerBalanceBefore);\n        });\n      },\n    );\n\n    context(\n      'when dealer has Ace-up blackjack and player also has blackjack',\n      function () {\n        let playerBalanceBefore: number;\n\n        before(function () {\n          game = setupGame({\n            settings: {\n              autoDeclineInsurance: false,\n            },\n            // Dealer: Ace up, Ten hole = blackjack\n            // Player: Ace, Jack = blackjack\n            dealerCards: [Rank.Ace, Rank.Ten],\n            playerCards: [Rank.Ace, Rank.Jack],\n          });\n\n          playerBalanceBefore = game.player.balance;\n\n          // Step to deal initial cards (will prompt for insurance since dealer has Ace up).\n          game.step();\n          // Decline insurance.\n          game.step(Move.NoInsurance);\n        });\n\n        it('should be a push (not dealer win)', function () {\n          expect(game.player.handWinner.values().next().value).to.equal(\n            HandWinner.Push,\n          );\n        });\n\n        it('should return the full bet to the player', function () {\n          expect(game.player.balance).to.equal(playerBalanceBefore);\n        });\n      },\n    );\n\n    // Deviation boundary tests for every '<' deviation.\n    // Each tests two scenarios:\n    //   (a) At TC = index exactly: deviation should NOT fire (opposite action is correct)\n    //   (b) At TC = index - 0.5 (fractional): deviation SHOULD fire (hit is correct)\n    //\n    // Helper: setTrueCount sets hiLoRunningCount so that TC = target.\n    // TC = runningCount / decksRemaining, so runningCount = TC * decksRemaining.\n\n    function setTrueCount(game: Game, tc: number): void {\n      game.shoe.hiLoRunningCount = game.shoe.decksRemaining * tc;\n    }\n\n    function dealToPlayInput(game: Game): void {\n      while (game.state.step !== GameStep.WaitingForPlayInput) {\n        game.step();\n      }\n    }\n\n    // --- I18: 9 vs 2, hit < 1 ---\n\n    context('I18 9v2: at TC = 1, double should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Two],\n          playerCards: [Rank.Four, Rank.Five],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 1);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Double,\n        );\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('I18 9v2: at TC = 0.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Two],\n          playerCards: [Rank.Four, Rank.Five],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 0.5);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Double,\n        );\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    // --- I18: 11 vs A, hit < 1 ---\n\n    context('I18 11vA: at TC = 1, double should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            checkDeviations: true,\n            autoDeclineInsurance: true,\n          },\n          dealerCards: [Rank.Ace],\n          playerCards: [Rank.Five, Rank.Six],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 1);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Double,\n        );\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('I18 11vA: at TC = 0.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            checkDeviations: true,\n            autoDeclineInsurance: true,\n          },\n          dealerCards: [Rank.Ace],\n          playerCards: [Rank.Five, Rank.Six],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 0.5);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Double,\n        );\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    // --- I18: 12 vs 4, hit < 0 ---\n\n    context('I18 12v4: at TC = 0, stand should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Four],\n          playerCards: [Rank.Five, Rank.Seven],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 0);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('I18 12v4: at TC = -0.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Four],\n          playerCards: [Rank.Five, Rank.Seven],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -0.5);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    // --- I18: 12 vs 5, hit < -2 ---\n\n    context('I18 12v5: at TC = -2, stand should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Five],\n          playerCards: [Rank.Four, Rank.Eight],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -2);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('I18 12v5: at TC = -2.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Five],\n          playerCards: [Rank.Four, Rank.Eight],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -2.5);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    // --- I18: 12 vs 6, hit < -1 ---\n\n    context('I18 12v6: at TC = -1, stand should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Six],\n          playerCards: [Rank.Four, Rank.Eight],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -1);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('I18 12v6: at TC = -1.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Six],\n          playerCards: [Rank.Four, Rank.Eight],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -1.5);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    // --- I18: 13 vs 2, hit < -1 ---\n\n    context('I18 13v2: at TC = -1, stand should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Two],\n          playerCards: [Rank.Six, Rank.Seven],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -1);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('I18 13v2: at TC = -1.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Two],\n          playerCards: [Rank.Six, Rank.Seven],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -1.5);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    // --- I18: 13 vs 3, hit < -2 ---\n\n    context('I18 13v3: at TC = -2, stand should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Three],\n          playerCards: [Rank.Six, Rank.Seven],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -2);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('I18 13v3: at TC = -2.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: { deckCount: 6, checkDeviations: true },\n          dealerCards: [Rank.Three],\n          playerCards: [Rank.Six, Rank.Seven],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -2.5);\n        result = HiLoDeviationChecker.check(game, game.focusedHand, Move.Stand);\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    // --- Fab 4: 15 vs 10, hit < 0 (surrender at TC >= 0) ---\n\n    context('Fab4 15v10: at TC = 0, surrender should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            checkDeviations: true,\n            allowLateSurrender: true,\n          },\n          dealerCards: [Rank.Ten, Rank.Seven],\n          playerCards: [Rank.Five, Rank.Ten],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 0);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Surrender,\n        );\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('Fab4 15v10: at TC = -0.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            checkDeviations: true,\n            allowLateSurrender: true,\n          },\n          dealerCards: [Rank.Ten, Rank.Seven],\n          playerCards: [Rank.Five, Rank.Ten],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, -0.5);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Surrender,\n        );\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    // --- Fab 4: 15 vs 9, hit < 2 (surrender at TC >= 2) ---\n\n    context('Fab4 15v9: at TC = 2, surrender should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            checkDeviations: true,\n            allowLateSurrender: true,\n          },\n          dealerCards: [Rank.Nine],\n          playerCards: [Rank.Five, Rank.Ten],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 2);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Surrender,\n        );\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('Fab4 15v9: at TC = 1.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            checkDeviations: true,\n            allowLateSurrender: true,\n          },\n          dealerCards: [Rank.Nine],\n          playerCards: [Rank.Five, Rank.Ten],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 1.5);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Surrender,\n        );\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    // --- Fab 4: 15 vs A, hit < 1 (surrender at TC >= 1) ---\n\n    context('Fab4 15vA: at TC = 1, surrender should be correct', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            checkDeviations: true,\n            allowLateSurrender: true,\n            autoDeclineInsurance: true,\n          },\n          dealerCards: [Rank.Ace],\n          playerCards: [Rank.Five, Rank.Ten],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 1);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Surrender,\n        );\n      });\n      it('should not fire hit deviation', function () {\n        expect(result).to.satisfy(\n          (r: CheckDeviationResult | undefined) =>\n            r === undefined || r.result === true,\n        );\n      });\n    });\n\n    context('Fab4 15vA: at TC = 0.5, hit deviation should fire', function () {\n      let result: CheckDeviationResult | undefined;\n      before(function () {\n        game = setupGame({\n          settings: {\n            deckCount: 6,\n            checkDeviations: true,\n            allowLateSurrender: true,\n            autoDeclineInsurance: true,\n          },\n          dealerCards: [Rank.Ace],\n          playerCards: [Rank.Five, Rank.Ten],\n        });\n        dealToPlayInput(game);\n        setTrueCount(game, 0.5);\n        result = HiLoDeviationChecker.check(\n          game,\n          game.focusedHand,\n          Move.Surrender,\n        );\n      });\n      it('should suggest hit', function () {\n        expect(result).to.be.an('object');\n        expect((result as CheckDeviationResult).result).to.be.false;\n        expect((result as CheckDeviationResult).code).to.equal(Move.Hit);\n      });\n    });\n\n    context(\n      'when switching from 2-deck to 6-deck, 6,6 vs 7 should change from split to hit',\n      function () {\n        before(function () {\n          // First game: 2-deck. 6,6 vs 7 with DAS = Split (Ph).\n          game = setupGame({\n            settings: { deckCount: 2, hitSoft17: true },\n            dealerCards: [Rank.Seven],\n            playerCards: [Rank.Six, Rank.Six],\n          });\n          dealToPlayInput(game);\n          game.step(Move.Split);\n          expect(game.state.sessionMovesCorrect).to.equal(1);\n        });\n\n        it('should suggest hit for 6,6 vs 7 in 6-deck', function () {\n          // Second game: 6-deck. 6,6 vs 7 = Hit.\n          game = setupGame({\n            settings: { deckCount: 6, hitSoft17: true },\n            dealerCards: [Rank.Seven],\n            playerCards: [Rank.Six, Rank.Six],\n          });\n          dealToPlayInput(game);\n          game.step(Move.Hit);\n          expect(game.state.sessionMovesCorrect).to.equal(1);\n          expect(game.state.playCorrection).to.equal('');\n        });\n      },\n    );\n\n    context('when an NPC splits aces and receives non-ace cards', function () {\n      let npcPlayer: InstanceType<typeof Game>['players'][number];\n\n      before(function () {\n        // Set up a 2-player game: user at position 1, NPC at position 2.\n        // The NPC is in playersRight and plays before the user.\n        game = new Game({\n          debug: process.env.DEBUG != null && process.env.DEBUG !== '',\n          playerTablePosition: 1,\n          playerCount: 2,\n        });\n\n        const length = game.shoe.cards.length;\n        const setCard = (index: number, rank: Rank): void => {\n          game.shoe.cards[length - index - 1] = new Card(\n            Suit.Hearts,\n            rank,\n            game.shoe,\n          );\n        };\n\n        // Deal order for 2 players (players array reversed: [NPC, User]):\n        // Draw 0: NPC first card\n        // Draw 1: User first card\n        // Draw 2: Dealer upcard\n        // Draw 3: NPC second card\n        // Draw 4: User second card\n        // Draw 5: Dealer hole card\n        // Draw 6: NPC first hand card after split\n        // Draw 7: NPC new hand card after split\n\n        setCard(0, Rank.Ace); // NPC first card: Ace\n        setCard(1, Rank.Ten); // User first card: Ten\n        setCard(2, Rank.Six); // Dealer upcard: Six\n        setCard(3, Rank.Ace); // NPC second card: Ace\n        setCard(4, Rank.Ten); // User second card: Ten\n        setCard(5, Rank.Two); // Dealer hole card: Two\n        setCard(6, Rank.Seven); // NPC first hand after split: Seven\n        setCard(7, Rank.Eight); // NPC new hand after split: Eight\n\n        // Identify the NPC player (playersRight[0]).\n        npcPlayer = game.playersRight[0];\n\n        runGame(game, {\n          input: [\n            {\n              [GameStep.WaitingForPlayInput]: Move.Stand,\n            },\n          ],\n        });\n      });\n\n      it('should stop NPC hands after one card each (2 cards total per hand)', function () {\n        // After splitting aces, each NPC hand should have exactly 2 cards:\n        // one ace + one dealt card. The NPC should not hit further.\n        expect(npcPlayer.hands).to.have.lengthOf(2);\n        expect(npcPlayer.hands[0].cards).to.have.lengthOf(2);\n        expect(npcPlayer.hands[1].cards).to.have.lengthOf(2);\n      });\n    });\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/hand.ts":{"lineLengths":[80,3118,4,0,5786],"data":{"version":3,"mappings":";0zBAAA,gBAAuB,gBAEvB,gBAAiB,mCACjB,iBAAqB,2BAErB,qBAA2C,wBAE3C,SAAS,aAAa,UAAyB,CAC7C,OAAO,IAAI,YAAAA,QACT,+BAAc,MAAM,EACpB,UAAU,IAAK,MAAS,6BAAY,MAAM,CAAE,IAAK,CAAC,CAAC,CACrD,CACF,CALS,8BAOT,SAAS,eAAe,MAAe,eAAgC,CACrE,MAAM,KAAO,UAAU,KAEvB,oBAAO,KAAK,SAAS,EAAE,GAAG,MAAM,CAAC,EAEjC,QAAS,EAAI,EAAG,EAAI,MAAM,OAAQ,GAAK,EAAG,CACxC,KAAK,SAAS,6BAAY,MAAM,CAAE,KAAM,MAAM,CAAC,CAAE,CAAC,CAAC,KACnD,oBAAO,KAAK,SAAS,EAAE,GAAG,MAAM,eAAe,CAAC,CAAC,CACnD,CAEA,QAAS,EAAI,MAAM,OAAS,EAAG,GAAK,EAAG,GAAK,EAAG,IAC7C,oBAAO,KAAK,SAAS,EAAE,GAAG,MAAM,eAAe,CAAC,CAAC,EACjD,KAAK,WAAW,CAClB,IAEA,oBAAO,KAAK,SAAS,EAAE,GAAG,MAAM,CAAC,EAEjC,QAAS,EAAI,EAAG,EAAI,MAAM,OAAQ,GAAK,EAAG,CACxC,KAAK,SAAS,6BAAY,MAAM,CAAE,KAAM,MAAM,CAAC,CAAE,CAAC,CAAC,CACrD,CAEA,OAAO,IACT,CAtBS,wCAwBT,SAAS,OAAQ,IAAM,CACrB,SAAS,aAAc,IAAM,CAC3B,GAAG,yDAA0D,IAAM,CACjE,MAAM,KAAO,UAAU,kBAAK,KAAM,kBAAK,GAAG,KAC1C,oBAAO,KAAK,SAAS,EAAE,GAAG,GAAG,QAC7B,oBAAO,KAAK,aAAa,EAAE,GAAG,MAAM,EAAE,CACxC,CAAC,CACH,CAAC,EAED,SAAS,aAAc,IAAM,CAC3B,GAAG,4DAA6D,IAAM,CACpE,MAAM,KAAO,eAAe,CAAC,kBAAK,MAAO,kBAAK,IAAI,EAAG,CAAC,EAAG,EAAE,CAAC,KAC5D,oBAAO,KAAK,MAAM,EAAE,GAAG,GAAG,IAC5B,CAAC,EAED,GAAG,oEAAqE,IAAM,CAC5E,MAAM,KAAO,eACX,CAAC,kBAAK,IAAK,kBAAK,KAAM,kBAAK,GAAG,EAC9B,CAAC,GAAI,GAAI,EAAE,CACb,KACA,oBAAO,KAAK,MAAM,EAAE,GAAG,GAAG,IAC5B,CAAC,EAED,GAAG,0EAA2E,IAAM,CAClF,MAAM,KAAO,eACX,CAAC,kBAAK,MAAO,kBAAK,IAAK,kBAAK,IAAK,kBAAK,MAAO,kBAAK,KAAK,EACvD,CAAC,EAAG,GAAI,GAAI,GAAI,EAAE,CACpB,KACA,oBAAO,KAAK,MAAM,EAAE,GAAG,GAAG,IAC5B,CAAC,EAED,GAAG,mEAAoE,IAAM,CAC3E,MAAM,KAAO,eACX,MAAM,KAAK,CAAE,OAAQ,EAAG,EAAG,IAAM,kBAAK,GAAG,EACzC,CACE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAChE,GAAI,GAAI,GAAI,EACd,CACF,KACA,oBAAO,KAAK,MAAM,EAAE,GAAG,GAAG,IAC5B,CAAC,CACH,CAAC,CACH,CAAC","names":["Hand"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/hand.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport Hand from '../../src/hand';\nimport { Rank } from '../../src/types';\n\nimport { PlayerFactory, CardFactory } from '../factories';\n\nfunction setupHand(...cardRanks: Rank[]): Hand {\n  return new Hand(\n    PlayerFactory.build(),\n    cardRanks.map((rank) => CardFactory.build({ rank })),\n  );\n}\n\nfunction testCardTotals(ranks: Rank[], expectedTotals: number[]): Hand {\n  const hand = setupHand();\n\n  expect(hand.cardTotal).to.equal(0);\n\n  for (let i = 0; i < ranks.length; i += 1) {\n    hand.takeCard(CardFactory.build({ rank: ranks[i] }));\n    expect(hand.cardTotal).to.equal(expectedTotals[i]);\n  }\n\n  for (let i = ranks.length - 1; i >= 0; i -= 1) {\n    expect(hand.cardTotal).to.equal(expectedTotals[i]);\n    hand.removeCard();\n  }\n\n  expect(hand.cardTotal).to.equal(0);\n\n  for (let i = 0; i < ranks.length; i += 1) {\n    hand.takeCard(CardFactory.build({ rank: ranks[i] }));\n  }\n\n  return hand;\n}\n\ndescribe('Hand', () => {\n  describe('#blackjack', () => {\n    it('should be true when the hand contains blackjack (J, A)', () => {\n      const hand = setupHand(Rank.Jack, Rank.Ace);\n      expect(hand.blackjack).to.be.true;\n      expect(hand.cardHighTotal).to.equal(21);\n    });\n  });\n\n  describe('#cardTotal', () => {\n    it('should count correctly when the player is dealt 11 (7, 4)', () => {\n      const hand = testCardTotals([Rank.Seven, Rank.Four], [7, 11]);\n      expect(hand.isHard).to.be.true;\n    });\n\n    it('should count correctly when the player is dealt hard 21 (T, 9, 2)', () => {\n      const hand = testCardTotals(\n        [Rank.Ten, Rank.Nine, Rank.Two],\n        [10, 19, 21],\n      );\n      expect(hand.isHard).to.be.true;\n    });\n\n    it('should count correctly when the player is dealt soft 21 (3, A, A, 3, 3)', () => {\n      const hand = testCardTotals(\n        [Rank.Three, Rank.Ace, Rank.Ace, Rank.Three, Rank.Three],\n        [3, 14, 15, 18, 21],\n      );\n      expect(hand.isSoft).to.be.true;\n    });\n\n    it('should count correctly when the player is dealt 21 with all aces', () => {\n      const hand = testCardTotals(\n        Array.from({ length: 21 }, () => Rank.Ace),\n        [\n          11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 12, 13, 14, 15, 16, 17,\n          18, 19, 20, 21,\n        ],\n      );\n      expect(hand.isHard).to.be.true;\n    });\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/factories/index.ts":{"lineLengths":[87,1472,4,0,630],"data":{"version":3,"mappings":";m6BAAA,oSAA+C,oCAC/C,gBAAuC,2BACvC,kBAAyC,6BACzC,gBAAuC","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/factories/index.ts"],"sourcesContent":["export { default as GameSettingsFactory } from './game-settings';\nexport { default as CardFactory } from './card';\nexport { default as PlayerFactory } from './player';\nexport { default as ShoeFactory } from './shoe';\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/factories/game-settings.ts":{"lineLengths":[95,897,4,0,494],"data":{"version":3,"mappings":";wpBAAA,qKAAwB,iBAGxB,IAAO,sBAAQ,IAAI","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/factories/game-settings.ts"],"sourcesContent":["import { Factory } from 'rosie';\nimport { GameSettings } from '../../src/game';\n\nexport default new Factory<GameSettings>();\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/factories/card.ts":{"lineLengths":[86,1613,4,0,1510],"data":{"version":3,"mappings":";i/BAAA,iIAAwB,iBAExB,iBAAkB,oCAClB,iBAAgC,2BAEhC,IAAO,aAAQ,IAAI,qBAAc,EAC9B,SAAS,IAAI,EACb,MAAM,CACL,KAAM,aAAAA,QAAM,WAAW,EACvB,KAAM,aAAAA,QAAM,WAAW,EACvB,YAAa,KACb,GAAI,WAAM,IAAM,OAAZ,KACN,CAAC,EACA,KACC,aACA,CAAC,KAAM,OAAQ,OAAQ,aAAa,EACpC,CAAC,GAAI,KAAM,KAAM,cAAgB,KAAO,CACtC,GACA,KACA,KACA,WACF,EACF,EACC,KAAK,QAAS,CAAC,MAAM,EAAG,4BAAe","names":["Utils"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/factories/card.ts"],"sourcesContent":["import { Factory } from 'rosie';\nimport Card from '../../src/card';\nimport Utils from '../../src/utils';\nimport { cardRankToValue } from '../../src/types';\n\nexport default new Factory<Card>()\n  .sequence('id')\n  .attrs({\n    suit: Utils.randomSuit(),\n    rank: Utils.randomRank(),\n    showingFace: true,\n    on: () => () => undefined,\n  })\n  .attr(\n    'attributes',\n    ['id', 'suit', 'rank', 'showingFace'],\n    (id, suit, rank, showingFace) => () => ({\n      id,\n      suit,\n      rank,\n      showingFace,\n    }),\n  )\n  .attr('value', ['rank'], cardRankToValue);\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/factories/player.ts":{"lineLengths":[88,879,4,0,514],"data":{"version":3,"mappings":";wpBAAA,yIAAwB,iBAGxB,IAAO,eAAQ,IAAI,qBAAgB,EAAE,SAAS,IAAI","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/factories/player.ts"],"sourcesContent":["import { Factory } from 'rosie';\nimport Player from '../../src/player';\n\nexport default new Factory<Player>().sequence('id');\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/factories/shoe.ts":{"lineLengths":[86,852,4,0,454],"data":{"version":3,"mappings":";wpBAAA,iIAAwB,iBAGxB,IAAO,aAAQ,IAAI","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/factories/shoe.ts"],"sourcesContent":["import { Factory } from 'rosie';\nimport Shoe from '../../src/shoe';\n\nexport default new Factory<Shoe>();\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/player.ts":{"lineLengths":[82,1706,4,0,3598],"data":{"version":3,"mappings":";4uBAAA,gBAAuB,gBAEvB,kBAAmB,qCACnB,iBAA+B,2BAE/B,SAAS,SAAU,IAAM,CACvB,SAAS,cAAe,IAAM,CAC5B,GAAG,gFAAiF,IAAM,CACxF,MAAM,OAAS,IAAI,cAAAA,QAAO,CACxB,QAAS,EACT,SAAU,EACV,SAAU,4BAAe,aAC3B,CAAC,EAGD,OAAO,QAAQ,CAAC,EAEhB,MAAM,KAAO,OAAO,UAQpB,OAAO,QAAU,EACjB,KAAK,UAAY,KAKjB,oBAAO,IAAM,OAAO,SAAS,GAAI,CAAE,IAAK,CAAC,CAAC,EAAE,GAAG,MAC7C,6BACF,CACF,CAAC,EAED,GAAG,8CAA+C,IAAM,CACtD,MAAM,OAAS,IAAI,cAAAA,QAAO,CACxB,QAAS,IACT,SAAU,EACV,SAAU,4BAAe,aAC3B,CAAC,EAED,OAAO,QAAQ,EAAE,EAEjB,MAAM,KAAO,OAAO,aAGpB,oBAAO,IAAM,OAAO,SAAS,GAAI,CAAE,IAAK,CAAC,CAAC,EAAE,GAAG,IAAI,MAAM,KACzD,oBAAO,OAAO,OAAO,EAAE,GAAG,MAAM,EAAE,KAClC,oBAAO,KAAK,SAAS,EAAE,GAAG,MAAM,EAAE,CACpC,CAAC,CACH,CAAC,CACH,CAAC","names":["Player"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/player.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport Player from '../../src/player';\nimport { PlayerStrategy } from '../../src/types';\n\ndescribe('Player', () => {\n  describe('#useChips()', () => {\n    it('should throw when betAmount exceeds balance even if hand.betAmount is smaller', () => {\n      const player = new Player({\n        balance: 8,\n        handsMax: 1,\n        strategy: PlayerStrategy.BasicStrategy,\n      });\n\n      // Add a hand with a small initial bet of 5.\n      player.addHand(5);\n\n      const hand = player.firstHand;\n\n      // hand.betAmount is now 5, balance is 3.\n      // Attempting to bet 10 more should fail since balance (3) < betAmount (10).\n      // Bug: the check uses hand.betAmount (5) instead of betAmount (10),\n      // so it incorrectly compares 3 < 5 which throws, but for the wrong reason.\n      // To isolate the bug, set balance so that balance < betAmount but\n      // balance >= hand.betAmount.\n      player.balance = 8;\n      hand.betAmount = 5;\n\n      // balance=8, hand.betAmount=5, betAmount=10\n      // Bug check: 8 < 5 => false (no throw, balance goes negative)\n      // Fixed check: 8 < 10 => true (throws correctly)\n      expect(() => player.useChips(10, { hand })).to.throw(\n        'Insufficient player balance',\n      );\n    });\n\n    it('should allow bet when balance is sufficient', () => {\n      const player = new Player({\n        balance: 100,\n        handsMax: 1,\n        strategy: PlayerStrategy.BasicStrategy,\n      });\n\n      player.addHand(10);\n\n      const hand = player.firstHand;\n\n      // balance is now 90, bet another 10 which should succeed.\n      expect(() => player.useChips(10, { hand })).to.not.throw();\n      expect(player.balance).to.equal(80);\n      expect(hand.betAmount).to.equal(20);\n    });\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/shoe.ts":{"lineLengths":[80,1564,4,0,2186],"data":{"version":3,"mappings":";4uBAAA,gBAAuB,gBAEvB,gBAAiB,mCAGjB,qBAA4B,wBAE5B,SAAS,OAAQ,UAAY,CAC3B,IAAI,KACJ,IAAI,MAEJ,WAAW,UAAY,CACrB,KAAO,IAAI,YAAAA,QACX,MAAQ,CACN,6BAAY,MAAM,EAClB,6BAAY,MAAM,EAClB,6BAAY,MAAM,EAClB,6BAAY,MAAM,CACpB,EACA,KAAK,SAAS,KAAK,CACrB,CAAC,EAED,GAAG,uBAAwB,UAAY,IACrC,oBAAO,KAAK,SAAS,CAAC,EAAE,OAAO,MAAM,CAAC,CAAC,KACvC,oBAAO,KAAK,SAAS,CAAC,EAAE,OAAO,MAAM,CAAC,CAAC,KACvC,oBAAO,KAAK,SAAS,CAAC,EAAE,OAAO,MAAM,CAAC,CAAC,KACvC,oBAAO,KAAK,SAAS,CAAC,EAAE,OAAO,MAAM,CAAC,CAAC,CACzC,CAAC,EAED,GAAG,uBAAwB,UAAY,CACrC,MAAM,WAAa,KAAK,WAAW,KACnC,oBAAO,WAAW,MAAM,MAAM,EAAE,OAAO,MAAM,MAAM,CACrD,CAAC,CACH,CAAC","names":["Shoe"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/shoe.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport Shoe from '../../src/shoe';\nimport Card from '../../src/card';\n\nimport { CardFactory } from '../factories';\n\ndescribe('Shoe', function () {\n  let shoe: Shoe;\n  let cards: Card[];\n\n  beforeEach(function () {\n    shoe = new Shoe();\n    cards = [\n      CardFactory.build(),\n      CardFactory.build(),\n      CardFactory.build(),\n      CardFactory.build(),\n    ];\n    shoe.setCards(cards);\n  });\n\n  it('adds and draws cards', function () {\n    expect(shoe.drawCard()).equals(cards[3]);\n    expect(shoe.drawCard()).equals(cards[2]);\n    expect(shoe.drawCard()).equals(cards[1]);\n    expect(shoe.drawCard()).equals(cards[0]);\n  });\n\n  it('gets shoe attributes', function () {\n    const attributes = shoe.attributes();\n    expect(attributes.cards.length).equals(cards.length);\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/simulator.ts":{"lineLengths":[85,1945,4,0,4134],"data":{"version":3,"mappings":";4uBAAA,gBAAuB,gBAEvB,qBAAsB,wCAEtB,SAAS,YAAa,UAAY,CAChC,IAAI,UAEJ,OAAO,UAAY,CACjB,UAAY,IAAI,iBAAAA,QAAU,CACxB,MAAO,QAAQ,IAAI,OAAS,MAAQ,QAAQ,IAAI,QAAU,GAC1D,MAAO,IAAM,CACf,CAAC,CACH,CAAC,EAED,GAAG,OAAQ,UAAY,CACrB,MAAM,OAAS,UAAU,IAAI,KAE7B,oBAAO,MAAM,EAAE,GAAG,KAAK,IAAI,KACzB,eACA,gBACA,eACA,mBACA,YACA,cACA,cACA,WACA,cACA,aACA,aACF,CACF,CAAC,EAED,GAAG,uDAAwD,UAAY,CAErE,MAAM,IAAM,IAAI,iBAAAA,QAAU,CACxB,MAAO,QAAQ,IAAI,OAAS,MAAQ,QAAQ,IAAI,QAAU,GAC1D,MAAO,IAEP,gBAAiB,CAAC,GAAK,GAAG,EAC1B,YAAa,CAAC,CAAC,CACjB,CAAC,EAGD,MAAM,QAAoB,CAAC,EAC3B,MAAM,QAAU,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,EAC1C,IAAI,KAAK,IAAM,CAAC,UAAmB,YAAsB,CACvD,MAAMC,QAAS,IAAI,KAAK,OAAO,QAC/B,QAAQ,UAAW,SAAS,EAC5B,QAAQ,KAAK,IAAI,KAAK,OAAO,QAAUA,OAAM,CAC/C,EAEA,MAAM,OAAS,IAAI,IAAI,EAGvB,MAAM,EAAI,QAAQ,OAClB,MAAM,KAAO,QAAQ,OAAO,CAAC,EAAG,IAAM,EAAI,EAAG,CAAC,EAAI,EAClD,MAAM,iBACJ,QAAQ,OAAO,CAAC,IAAK,IAAM,KAAO,EAAI,OAAS,EAAG,CAAC,GAAK,EAAI,MAG9D,oBAAO,OAAO,gBAAgB,EAAE,GAAG,GAAG,QAAQ,iBAAkB,CAAC,CACnE,CAAC,CACH,CAAC","names":["Simulator","before"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/simulator.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport Simulator from '../../src/simulator';\n\ndescribe('Simulator', function () {\n  let simulator: Simulator;\n\n  before(function () {\n    simulator = new Simulator({\n      debug: process.env.DEBUG != null && process.env.DEBUG !== '',\n      hands: 10 ** 3,\n    });\n  });\n\n  it('runs', function () {\n    const result = simulator.run();\n\n    expect(result).to.have.all.keys(\n      'amountEarned',\n      'amountWagered',\n      'bankrollMean',\n      'bankrollVariance',\n      'handsLost',\n      'handsPlayed',\n      'handsPushed',\n      'handsWon',\n      'hoursPlayed',\n      'riskOfRuin',\n      'timeElapsed',\n    );\n  });\n\n  it('computes bankrollVariance correctly for known inputs', function () {\n    // Run a short simulation and verify the variance matches a naive calculation.\n    const sim = new Simulator({\n      debug: process.env.DEBUG != null && process.env.DEBUG !== '',\n      hands: 100,\n      // Flat bet, single spot, no spread — simplest case.\n      playerBetSpread: [10 * 100],\n      playerSpots: [1],\n    });\n\n    // Monkey-patch to record per-round bankroll changes.\n    const changes: number[] = [];\n    const origRun = sim.game.run.bind(sim.game);\n    sim.game.run = (betAmount: number, spotCount: number) => {\n      const before = sim.game.player.balance;\n      origRun(betAmount, spotCount);\n      changes.push(sim.game.player.balance - before);\n    };\n\n    const result = sim.run();\n\n    // Compute expected variance from recorded changes using the standard formula.\n    const n = changes.length;\n    const mean = changes.reduce((a, b) => a + b, 0) / n;\n    const expectedVariance =\n      changes.reduce((sum, x) => sum + (x - mean) ** 2, 0) / (n - 1);\n\n    // The simulator's bankrollVariance should match.\n    expect(result.bankrollVariance).to.be.closeTo(expectedVariance, 1);\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/src/simulator.ts":{"lineLengths":[80,9656,4,0,26214],"data":{"version":3,"mappings":"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","names":["Utils","Game","gameSettings"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/src/simulator.ts"],"sourcesContent":["import Game, { settings as gameSettings } from './game';\nimport Utils from './utils';\nimport {\n  TableRules,\n  HandWinner,\n  PlayerStrategy,\n  BlackjackPayout,\n  blackjackPayoutToString,\n  playerStrategyToString,\n} from './types';\n\nexport type SimulatorSettings = {\n  debug: boolean;\n  raw: boolean;\n  playerStrategy: PlayerStrategy;\n  playerBetSpread: number[];\n  playerSpots: number[];\n  playerTablePosition: number;\n  playerBankroll: number;\n  playerWongOutTrueCount: number;\n  hands: number;\n} & TableRules;\n\nexport type SimulatorResult = {\n  amountEarned: number;\n  amountWagered: number;\n  bankrollMean: number;\n  bankrollVariance: number;\n  handsLost: number;\n  handsPlayed: number;\n  handsPushed: number;\n  handsWon: number;\n  hoursPlayed: number;\n  riskOfRuin: number;\n  timeElapsed: number;\n};\n\nexport type AugmentedSimulatorResult = SimulatorResult & {\n  bankrollRqd: number;\n  expectedValue: number;\n  houseEdge: number;\n  stdDeviation: number;\n};\n\nexport type FormattedResult = {\n  [key: string]: string;\n};\n\nexport interface FormattedSimulatorIntro extends FormattedResult {\n  betSpread: string;\n  penetration: string;\n  spotsPlayed: string;\n  tableRules: string;\n  strategy: string;\n  wongOut: string;\n}\n\nexport interface FormattedSimulatorResult extends FormattedResult {\n  amountEarned: string;\n  amountWagered: string;\n  bankrollRqd: string;\n  riskOfRuin: string;\n  expectedValue: string;\n  handsLost: string;\n  handsPlayed: string;\n  handsPushed: string;\n  handsWon: string;\n  houseEdge: string;\n  stdDeviation: string;\n  timeElapsed: string;\n}\n\nfunction getChipUnit(minimumBet: number): number {\n  const chipSizes = [5000, 1000, 500, 100, 25, 5, 1].map(\n    (chipSize) => chipSize * 100,\n  );\n\n  for (const chipSize of chipSizes) {\n    if (minimumBet % chipSize === 0) {\n      return chipSize;\n    }\n  }\n\n  return chipSizes.find((chipSize) => chipSize < minimumBet) ?? 100;\n}\n\nfunction roundToIncrement(increment: number, value: number) {\n  return value;\n  // return Math.round(value / increment) * increment;\n}\n\n// Use a lower bet size per spot to keep RoR consistent. Values are taken from\n// Blackjack Attack (table 2.4).\nfunction spotCountBetMultiplier(spotCount: number): number {\n  switch (spotCount) {\n    case 1:\n      return 1;\n    case 2:\n      return 0.73;\n    default:\n    case 3:\n      return 0.57;\n  }\n}\n\nfunction defaultSettings({\n  minimumBet = 10 * 100,\n  playerSpots,\n}: Partial<\n  Pick<SimulatorSettings, 'minimumBet' | 'playerSpots'>\n> = {}): SimulatorSettings {\n  const maxTrueCount = 4;\n  const maxBetMultiplier = 10;\n  const unit = minimumBet;\n  const spreadStep = (unit * (maxBetMultiplier - 1)) / (maxTrueCount - 1);\n  const chipUnit = getChipUnit(minimumBet);\n  const playerSpotsSetting =\n    playerSpots ?? Array.from({ length: maxTrueCount + 1 }, () => 1);\n\n  return {\n    // Simulator-only settings.\n    hands: 10 ** 7,\n    playerStrategy: PlayerStrategy.BasicStrategyI18Fab4,\n\n    // TODO: Allow computing optimal bet spreads (use kelly if a bankroll is\n    // specified: edge * bankroll / 1.15^2).\n    //\n    // TODO: Look into computing the edge and 1.15 sd value precisely instead of\n    // hard-coding constants. How can we compute player edge and variance\n    // irrespective of bet spread?\n    //\n    // Simple linear bet spread example: for a $10 minimum where 1 unit is the\n    // table minimum, spread 1-12 or $10-$120:\n    //\n    // TC 0: $10 * 2^0 = $10\n    // TC 1: $10 * 2^1 = $10\n    // TC 2: $10 * 2^2 = $40\n    // TC 3: $10 * 2^3 = $65\n    // TC 4: $10 * 2^3 = $95\n    // TC 5: $10 * 2^3 = $120\n    playerBetSpread: Array.from(\n      { length: maxTrueCount + 1 },\n      (item, hiLoTrueCount) =>\n        roundToIncrement(\n          chipUnit,\n          unit +\n            spreadStep *\n              Math.max(0, hiLoTrueCount - 1) *\n              spotCountBetMultiplier(playerSpotsSetting[hiLoTrueCount]),\n        ),\n    ),\n    playerSpots: playerSpotsSetting,\n\n    debug: false,\n    playerTablePosition: 1,\n    // We make the bankroll sufficiently large here to prevent ever going\n    // bankrupt for the purpose of simulation.\n    // TODO: Add support for infinite bankroll in the game module.\n    playerBankroll: minimumBet * 10 ** 7,\n    playerWongOutTrueCount: -Infinity,\n\n    // Table rules\n    allowDoubleAfterSplit: true,\n    allowLateSurrender: false,\n    allowResplitAces: false,\n    blackjackPayout: BlackjackPayout.ThreeToTwo,\n    deckCount: 2,\n    hitSoft17: true,\n    maxHandsAllowed: 4,\n    maximumBet: minimumBet * 100,\n    minimumBet,\n    playerCount: 1,\n    penetration: 0.75,\n    raw: false,\n  };\n}\n\nexport const SETTINGS_DEFAULTS = defaultSettings();\n\n// Calculates bankroll required given a risk of ruin. Based on equation 9 in\n// Sileo's paper: http://www12.plala.or.jp/doubledown/poker/sileo.pdf\nexport function bankrollRequired(\n  riskOfRuin: number,\n  variancePerHand: number,\n  expectationPerHand: number,\n): number {\n  return variancePerHand === 0\n    ? 0\n    : -(variancePerHand / (2 * expectationPerHand)) * Math.log(riskOfRuin);\n}\n\nfunction formatTableRules(tableRules: TableRules) {\n  return [\n    `${Utils.formatCents(tableRules.minimumBet, {\n      stripZeroCents: true,\n    })}–${Utils.formatCents(tableRules.maximumBet, { stripZeroCents: true })}`,\n    `${tableRules.deckCount}D`,\n    blackjackPayoutToString(tableRules.blackjackPayout),\n    tableRules.hitSoft17 ? 'H17' : 'S17',\n    tableRules.allowDoubleAfterSplit ? 'DAS' : 'NDAS',\n    tableRules.allowLateSurrender ? 'LS' : 'NLS',\n    tableRules.allowResplitAces ? 'RSA' : 'NRSA',\n  ]\n    .filter(Boolean)\n    .join(' ');\n}\n\nfunction formatPlayerStrategy(playerStrategy: PlayerStrategy) {\n  switch (playerStrategy) {\n    case PlayerStrategy.BasicStrategyI18Fab4:\n      return 'Basic Strategy + Illustrious 18 + Fab 4';\n    case PlayerStrategy.BasicStrategyI18:\n      return 'Basic Strategy + Illustrious 18';\n    case PlayerStrategy.BasicStrategy:\n      return 'Basic Strategy';\n    default:\n      throw new Error(`Unexpected player strategy ${playerStrategy}`);\n  }\n}\n\nfunction formatWongOutTrueCount(wongOutTrueCount: number) {\n  return wongOutTrueCount === -Infinity ? '' : `TC ${wongOutTrueCount}`;\n}\n\n// Hands per hour estimation based on:\n// https://wizardofodds.com/ask-the-wizard/136/\n// TODO: Add consideration for pitch games.\n// TODO: Add consideration for `spotCount`.\nfunction estimateHandsPerHour(playerCount: number): number {\n  switch (playerCount) {\n    case 1:\n      return 209;\n    case 2:\n      return 139;\n    case 3:\n      return 105;\n    case 4:\n      return 84;\n    case 5:\n      return 70;\n    case 6:\n      return 60;\n    case 7:\n      return 52;\n    default:\n      throw new Error(`Unexpected player count ${playerCount}`);\n  }\n}\n\nexport function mergeResults(results: SimulatorResult[]): SimulatorResult {\n  // Calculates the variance of several datasets (population variance).\n  // See https://stats.stackexchange.com/a/389925\n  const totalHandsPlayed = Utils.arraySum(results.map((r) => r.handsPlayed));\n  const average =\n    Utils.arraySum(results.map((r) => r.handsPlayed * r.bankrollMean)) /\n    totalHandsPlayed;\n  const betweenGroupVariance = Utils.arraySum(\n    results.map((r) => r.handsPlayed * (r.bankrollMean - average) ** 2),\n  );\n  const withinGroupVariance = Utils.arraySum(\n    results.map((r) => r.handsPlayed * r.bankrollVariance),\n  );\n  const bankrollVariance =\n    (betweenGroupVariance + withinGroupVariance) / totalHandsPlayed;\n\n  return results.reduce(\n    (previousValue, currentValue) => ({\n      ...previousValue,\n\n      amountEarned: previousValue.amountEarned + currentValue.amountEarned,\n      amountWagered: previousValue.amountWagered + currentValue.amountWagered,\n      hoursPlayed: previousValue.hoursPlayed + currentValue.hoursPlayed,\n      handsLost: previousValue.handsLost + currentValue.handsLost,\n      handsPlayed: previousValue.handsPlayed + currentValue.handsPlayed,\n      handsPushed: previousValue.handsPushed + currentValue.handsPushed,\n      handsWon: previousValue.handsWon + currentValue.handsWon,\n      timeElapsed: Math.max(\n        previousValue.timeElapsed,\n        currentValue.timeElapsed,\n      ),\n    }),\n    {\n      bankrollMean: average,\n      bankrollVariance,\n\n      // Pass along relevant settings.\n      riskOfRuin: results[0].riskOfRuin,\n\n      amountEarned: 0,\n      amountWagered: 0,\n      hoursPlayed: 0,\n      handsLost: 0,\n      handsPlayed: 0,\n      handsPushed: 0,\n      handsWon: 0,\n      timeElapsed: 0,\n    },\n  );\n}\n\nexport default class Simulator {\n  settings: SimulatorSettings;\n  game: Game;\n  intro: FormattedSimulatorIntro;\n\n  constructor(settings: Partial<SimulatorSettings>) {\n    this.settings = Utils.merge(\n      defaultSettings({\n        minimumBet: settings.minimumBet,\n        playerSpots: settings.playerSpots,\n      }),\n      settings,\n    );\n\n    this.game = new Game({\n      ...this.settings,\n\n      debug: this.settings.debug,\n      disableEvents: true,\n      playerStrategyOverride: {\n        [this.settings.playerTablePosition]: this.settings.playerStrategy,\n      },\n    });\n\n    this.intro = {\n      tableRules: formatTableRules({\n        allowDoubleAfterSplit: gameSettings.allowDoubleAfterSplit,\n        allowLateSurrender: gameSettings.allowLateSurrender,\n        allowResplitAces: gameSettings.allowResplitAces,\n        blackjackPayout: gameSettings.blackjackPayout,\n        deckCount: gameSettings.deckCount,\n        hitSoft17: gameSettings.hitSoft17,\n        maxHandsAllowed: gameSettings.maxHandsAllowed,\n        maximumBet: gameSettings.maximumBet,\n        minimumBet: gameSettings.minimumBet,\n        penetration: gameSettings.penetration,\n        playerCount: gameSettings.playerCount,\n      }),\n      penetration:\n        settings.raw === true\n          ? gameSettings.penetration.toString()\n          : Utils.formatPercent(gameSettings.penetration),\n      betSpread:\n        settings.raw === true\n          ? this.settings.playerBetSpread.join()\n          : Utils.arrayToRangeString(this.settings.playerBetSpread, (amount) =>\n              Utils.formatCents(amount, { stripZeroCents: true }),\n            ),\n      spotsPlayed:\n        settings.raw === true\n          ? this.settings.playerSpots.join()\n          : Utils.arrayToRangeString(this.settings.playerSpots),\n      strategy:\n        settings.raw === true\n          ? playerStrategyToString(this.settings.playerStrategy)\n          : formatPlayerStrategy(this.settings.playerStrategy),\n      wongOut:\n        settings.raw === true\n          ? this.settings.playerWongOutTrueCount.toString()\n          : formatWongOutTrueCount(this.settings.playerWongOutTrueCount),\n    };\n  }\n\n  clampToArray(index: number, array: number[]): number {\n    return array[Utils.clamp(Math.floor(index), 0, array.length - 1)];\n  }\n\n  betAmount(hiLoTrueCount: number): number {\n    return hiLoTrueCount <= this.settings.playerWongOutTrueCount\n      ? 0\n      : this.clampToArray(hiLoTrueCount, this.settings.playerBetSpread);\n  }\n\n  spotCount(hiLoTrueCount: number): number {\n    return hiLoTrueCount <= this.settings.playerWongOutTrueCount\n      ? 0\n      : this.clampToArray(hiLoTrueCount, this.settings.playerSpots);\n  }\n\n  run(): SimulatorResult {\n    const startTime = Date.now();\n\n    const bankrollStart = this.game.player.balance;\n\n    let bankrollMean = 0;\n    let bankrollVariance = 0;\n    let bankrollValues = 0;\n\n    let handsWon = 0;\n    let handsLost = 0;\n    let handsPushed = 0;\n    let handsPlayed = 0;\n    let amountWagered = 0;\n\n    // TODO: Fix `handsPlayed` going slightly over the limit if the next\n    // iteration involves playing more than one hand.\n    while (handsPlayed < this.settings.hands) {\n      const betAmount = this.betAmount(this.game.shoe.hiLoTrueCount);\n      const spotCount = this.spotCount(this.game.shoe.hiLoTrueCount);\n\n      const prevBalance = this.game.player.balance;\n\n      this.game.run(betAmount, spotCount);\n\n      // We calculate mean and variance from a stream of values since a large\n      // dataset (100M+ hands) will not fit in memory.\n      // See https://math.stackexchange.com/a/116344\n      // TODO: Update this value per `handWinner`. Currently one change can\n      // correspond to multiple hands due to splits.\n      const bankrollChangeValue = this.game.player.balance - prevBalance;\n      const prevBankrollMean = bankrollMean;\n      bankrollValues += 1;\n      bankrollMean =\n        bankrollMean + (bankrollChangeValue - bankrollMean) / bankrollValues;\n\n      bankrollVariance =\n        bankrollVariance +\n        (bankrollChangeValue - prevBankrollMean) *\n          (bankrollChangeValue - bankrollMean);\n\n      for (const result of this.game.player.handWinner.values()) {\n        handsPlayed += 1;\n        // TODO: Fix this. betAmount is wrong since splits and doubles can\n        // happen. This should come from `hand.betAmount`. Consider refactoring\n        // `handWinner` to hold more data like `hand.betAmount`.\n        amountWagered += betAmount;\n\n        switch (result) {\n          case HandWinner.Player:\n            handsWon += 1;\n            break;\n          case HandWinner.Dealer:\n            handsLost += 1;\n            break;\n          case HandWinner.Push:\n            handsPushed += 1;\n            break;\n        }\n      }\n    }\n\n    bankrollVariance /= bankrollValues - 1;\n\n    const amountEarned = this.game.player.balance - bankrollStart;\n    const handsPerHour = estimateHandsPerHour(this.settings.playerCount);\n    const hoursPlayed = handsPlayed / handsPerHour;\n\n    // TODO: Make RoR configurable.\n    const riskOfRuin = 0.05;\n\n    return {\n      amountEarned,\n      amountWagered,\n      bankrollMean,\n      bankrollVariance,\n      handsLost,\n      handsPlayed,\n      handsPushed,\n      handsWon,\n      hoursPlayed,\n      riskOfRuin,\n      timeElapsed: Date.now() - startTime,\n    };\n  }\n}\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/types.ts":{"lineLengths":[81,1059,4,0,2310],"data":{"version":3,"mappings":";AAAA,gBAAuB,gBAEvB,iBAAwC,2BAExC,SAAS,gBAAiB,UAAY,CACpC,GAAG,yCAA0C,UAAY,IACvD,uBAAO,4BAAc,SAAS,CAAC,EAAE,GAAG,MAAM,sBAAS,OAAO,CAC5D,CAAC,EAED,GAAG,qCAAsC,UAAY,IACnD,uBAAO,4BAAc,OAAO,CAAC,EAAE,GAAG,MAAM,sBAAS,KAAK,CACxD,CAAC,EAED,GAAG,2CAA4C,UAAY,IACzD,uBAAO,4BAAc,UAAU,CAAC,EAAE,GAAG,MAAM,sBAAS,QAAQ,CAC9D,CAAC,EAED,GAAG,+CAAgD,UAAY,IAC7D,uBAAO,4BAAc,YAAY,CAAC,EAAE,GAAG,MAAM,sBAAS,UAAU,CAClE,CAAC,EAED,GAAG,wCAAyC,UAAY,IACtD,uBAAO,4BAAc,MAAS,CAAC,EAAE,GAAG,GAAG,SACzC,CAAC,EAED,GAAG,+BAAgC,UAAY,IAC7C,oBAAO,OAAM,4BAAc,SAAS,CAAC,EAAE,GAAG,MAAM,sBAAsB,CACxE,CAAC,CACH,CAAC","names":[],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/types.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport { GameMode, parseGameMode } from '../../src/types';\n\ndescribe('parseGameMode', function () {\n  it('returns GameMode.Default for \"default\"', function () {\n    expect(parseGameMode('default')).to.equal(GameMode.Default);\n  });\n\n  it('returns GameMode.Pairs for \"pairs\"', function () {\n    expect(parseGameMode('pairs')).to.equal(GameMode.Pairs);\n  });\n\n  it('returns GameMode.Uncommon for \"uncommon\"', function () {\n    expect(parseGameMode('uncommon')).to.equal(GameMode.Uncommon);\n  });\n\n  it('returns GameMode.Deviations for \"deviations\"', function () {\n    expect(parseGameMode('deviations')).to.equal(GameMode.Deviations);\n  });\n\n  it('returns undefined for undefined input', function () {\n    expect(parseGameMode(undefined)).to.be.undefined;\n  });\n\n  it('throws for unknown game mode', function () {\n    expect(() => parseGameMode('invalid')).to.throw('Unexpected game mode');\n  });\n});\n"],"sourceRoot":""},"url":null},"file:///Users/mhluska/projects/blackjack-simulator/test/src/utils.ts":{"lineLengths":[81,3155,4,0,5714],"data":{"version":3,"mappings":";4uBAAA,gBAAuB,gBAEvB,iBAAkB,oCAGlB,SAAS,qBAAsB,UAAY,CACzC,GAAG,wDAAyD,UAAY,CACtE,MAAM,WAAyB,QAC/B,oBAAO,aAAAA,QAAM,aAAa,EAAG,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,QACrD,oBAAO,aAAAA,QAAM,aAAa,EAAG,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IACvD,CAAC,EAED,GAAG,wDAAyD,UAAY,CACtE,MAAM,WAAyB,QAC/B,oBAAO,aAAAA,QAAM,aAAa,EAAG,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KACvD,CAAC,EAED,GAAG,sDAAuD,UAAY,CACpE,MAAM,WAAyB,OAC/B,oBAAO,aAAAA,QAAM,aAAa,EAAG,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,QACrD,oBAAO,aAAAA,QAAM,aAAa,GAAI,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IACxD,CAAC,EAED,GAAG,wDAAyD,UAAY,CACtE,MAAM,WAAyB,OAC/B,oBAAO,aAAAA,QAAM,aAAa,EAAG,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,SACrD,oBAAO,aAAAA,QAAM,aAAa,EAAG,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KACvD,CAAC,EAED,GAAG,yDAA0D,UAAY,CACvE,MAAM,WAAyB,OAC/B,oBAAO,aAAAA,QAAM,aAAa,IAAM,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,QACxD,oBAAO,aAAAA,QAAM,aAAa,GAAK,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,QACvD,oBAAO,aAAAA,QAAM,aAAa,IAAM,CAAC,WAAY,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,KAC3D,CAAC,EAED,GAAG,0CAA2C,UAAY,CACxD,MAAM,aAA2B,KACjC,MAAM,aAA2B,OACjC,oBAAO,aAAAA,QAAM,aAAa,GAAI,CAAC,aAAc,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,QACzD,oBAAO,aAAAA,QAAM,aAAa,GAAI,CAAC,aAAc,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,QACzD,oBAAO,aAAAA,QAAM,aAAa,GAAI,CAAC,aAAc,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,SACzD,oBAAO,aAAAA,QAAM,aAAa,GAAI,CAAC,aAAc,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,KAC3D,CAAC,EAED,GAAG,sCAAuC,UAAY,CACpD,MAAM,aAA2B,KACjC,MAAM,aAA2B,OACjC,oBAAO,aAAAA,QAAM,aAAa,EAAG,CAAC,aAAc,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,QACvD,oBAAO,aAAAA,QAAM,aAAa,GAAI,CAAC,aAAc,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,QACxD,oBAAO,aAAAA,QAAM,aAAa,EAAG,CAAC,aAAc,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,SACvD,oBAAO,aAAAA,QAAM,aAAa,GAAI,CAAC,aAAc,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAC1D,CAAC,CACH,CAAC","names":["Utils"],"ignoreList":[],"sources":["file:///Users/mhluska/projects/blackjack-simulator/test/src/utils.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport Utils from '../../src/utils';\nimport { Comparator } from '../../src/types';\n\ndescribe('Utils.compareRange', function () {\n  it('returns true when number >= index for \">=\" comparator', function () {\n    const comparator: Comparator = '>=';\n    expect(Utils.compareRange(5, [comparator, 3])).to.be.true;\n    expect(Utils.compareRange(3, [comparator, 3])).to.be.true;\n  });\n\n  it('returns false when number < index for \">=\" comparator', function () {\n    const comparator: Comparator = '>=';\n    expect(Utils.compareRange(2, [comparator, 3])).to.be.false;\n  });\n\n  it('returns true when number < index for \"<\" comparator', function () {\n    const comparator: Comparator = '<';\n    expect(Utils.compareRange(1, [comparator, 3])).to.be.true;\n    expect(Utils.compareRange(-1, [comparator, 0])).to.be.true;\n  });\n\n  it('returns false when number >= index for \"<\" comparator', function () {\n    const comparator: Comparator = '<';\n    expect(Utils.compareRange(3, [comparator, 3])).to.be.false;\n    expect(Utils.compareRange(4, [comparator, 3])).to.be.false;\n  });\n\n  it('handles fractional values correctly for \"<\" comparator', function () {\n    const comparator: Comparator = '<';\n    expect(Utils.compareRange(-0.5, [comparator, 0])).to.be.true;\n    expect(Utils.compareRange(0.5, [comparator, 1])).to.be.true;\n    expect(Utils.compareRange(-0.5, [comparator, -1])).to.be.false;\n  });\n\n  it('handles negative index values correctly', function () {\n    const geComparator: Comparator = '>=';\n    const ltComparator: Comparator = '<';\n    expect(Utils.compareRange(-1, [geComparator, -2])).to.be.true;\n    expect(Utils.compareRange(-3, [ltComparator, -2])).to.be.true;\n    expect(Utils.compareRange(-3, [geComparator, -2])).to.be.false;\n    expect(Utils.compareRange(-1, [ltComparator, -2])).to.be.false;\n  });\n\n  it('handles zero index values correctly', function () {\n    const geComparator: Comparator = '>=';\n    const ltComparator: Comparator = '<';\n    expect(Utils.compareRange(0, [geComparator, 0])).to.be.true;\n    expect(Utils.compareRange(-1, [ltComparator, 0])).to.be.true;\n    expect(Utils.compareRange(0, [ltComparator, 0])).to.be.false;\n    expect(Utils.compareRange(-1, [geComparator, 0])).to.be.false;\n  });\n});\n"],"sourceRoot":""},"url":null}}}