{"version":3,"sources":["webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/jsonwebtoken/verify.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/jsonwebtoken/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/jsonwebtoken/sign.js","webpack:///./node_modules/jsonwebtoken/lib/JsonWebTokenError.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/jsonwebtoken/decode.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/has-binary2/index.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/jsonwebtoken/lib/TokenExpiredError.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/evp_bytestokey/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/has-cors/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/has-binary2/node_modules/isarray/index.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/indexof/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/jsonwebtoken/lib/psSupported.js","webpack:///./node_modules/jsonwebtoken/lib/NotBeforeError.js","webpack:///./node_modules/jsonwebtoken/lib/timespan.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js"],"names":["utils","SHA256","SHA224","this","call","h","inherits","module","exports","blockSize","outSize","hmacStrength","padLength","prototype","_digest","enc","toHex32","slice","split32","Transform","_require$codes","codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","Duplex","afterTransform","er","data","ts","_transformState","transforming","cb","writecb","emit","writechunk","push","rs","_readableState","reading","needReadable","length","highWaterMark","_read","options","bind","needTransform","writeencoding","sync","transform","_transform","flush","_flush","on","prefinish","_this","destroyed","done","stream","_writableState","chunk","encoding","_write","n","_destroy","err","err2","PassThrough","JsonWebTokenError","NotBeforeError","TokenExpiredError","decode","timespan","PS_SUPPORTED","jws","PUB_KEY_ALGS","RSA_KEY_ALGS","HS_ALGS","splice","jwtString","secretOrPublicKey","callback","Object","assign","clockTimestamp","undefined","nonce","trim","Math","floor","Date","now","decodedToken","parts","split","complete","getSecret","header","secretCallback","message","valid","hasSignature","algorithms","toString","indexOf","alg","verify","e","payload","nbf","ignoreNotBefore","clockTolerance","exp","ignoreExpiration","audience","audiences","Array","isArray","target","aud","match","some","targetAudience","RegExp","test","join","issuer","invalid_issuer","iss","subject","sub","jwtid","jti","maxAge","iat","maxAgeTimestamp","signature","common","shaCommon","rotl32","sum32","sum32_5","ft_1","BlockHash","sha1_K","SHA1","W","_update","msg","start","i","a","b","c","d","s","t","sign","CorkedRequest","state","next","entry","finish","onCorkedFinish","Writable","WritableState","internalUtil","deprecate","Stream","Buffer","OurUint8Array","global","Uint8Array","_uint8ArrayToBuffer","from","_isUint8Array","obj","isBuffer","realHasInstance","destroyImpl","_require","getHighWaterMark","ERR_INVALID_ARG_TYPE","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","errorOrDestroy","nop","isDuplex","objectMode","writableObjectMode","finalCalled","needDrain","ending","ended","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","emitClose","autoDestroy","bufferedRequestCount","corkedRequestsFree","writable","write","writev","_writev","destroy","final","_final","writeAfterEnd","process","nextTick","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","len","ret","last","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","l","buffer","holder","count","allBuffers","callFinal","need","rState","endEmitted","endWritable","once","corkReq","getBuffer","current","out","defineProperty","get","_","Symbol","hasInstance","Function","value","object","pipe","cork","uncork","setDefaultEncoding","toLowerCase","enumerable","end","set","_undestroy","undestroy","assert","Hmac","hash","key","Hash","inner","outer","_init","toArray","update","digest","includes","isBoolean","isInteger","isNumber","isPlainObject","isString","SUPPORTED_ALGS","sign_options_schema","expiresIn","isValid","notBefore","algorithm","noTimestamp","keyid","mutatePayload","registered_claims_schema","validate","schema","allowUnknown","parameterName","Error","keys","forEach","validator","validateOptions","validatePayload","options_to_payload","options_for_objects","secretOrPrivateKey","isObjectPayload","typ","kid","failure","error","invalid_options","filter","opt","timestamp","claim","secret","createSign","privateKey","captureStackTrace","constructor","name","create","Readable","pipeline","jwt","decoded","JSON","parse","ctor","superCtor","super_","configurable","TempCtor","_Object$setPrototypeO","_defineProperty","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","resolve","read","onReadable","wrapForNext","lastPromise","reject","then","AsyncIteratorPrototype","getPrototypeOf","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","Promise","promise","asyncIterator","_this2","createReadableStreamAsyncIterator","_Object$create","iterator","code","ReadableState","EventEmitter","EElistenerCount","emitter","type","listeners","debug","debugUtil","debuglog","StringDecoder","BufferList","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","prependListener","event","fn","_events","unshift","readableObjectMode","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","readable","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","isPaused","setEncoding","p","head","content","clear","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","src","updateReadableListening","self","listenerCount","resume","nReadingNextTick","resume_","fromList","shift","first","concat","consume","endReadable","endReadableNT","wState","xs","x","parseInt","nOrig","doRead","dest","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","removeListener","onclose","onfinish","onerror","ondata","pause","dests","index","ev","res","addListener","removeAllListeners","apply","arguments","wrap","method","_fromList","iterable","opts","readableDestroyed","writableDestroyed","emitErrorNT","emitCloseNT","emitErrorAndCloseNT","withNativeBlob","Blob","withNativeFile","File","hasBinary","ArrayBuffer","toJSON","hasOwnProperty","sha1","sha224","sha256","sha384","sha512","HmacDRBG","predResist","outLen","minEntropy","_reseed","reseedInterval","K","V","entropy","entropyEnc","nonceEnc","pers","persEnc","seed","_hmac","hmac","kmac","reseed","add","addEnc","generate","temp","encode","expiredAt","sum32_4","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","k","f","g","T1","T2","sha","ripemd","ripemd160","SHA512","SHA384","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","NaN","Infinity","pow","rt","abs","isNaN","log","LN2","throwIfNotStringOrBuffer","val","prefix","TypeError","HashBase","_block","allocUnsafe","_blockSize","_blockOffset","_length","_finalized","block","j","carry","fill","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","source","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_require2","inspect","custom","copyBuffer","copy","tail","v","alloc","hasStrings","_getString","_getBuffer","str","nb","buf","depth","customInspect","_inheritsLoose","subClass","superClass","__proto__","createErrorType","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","oneOf","expected","thing","map","String","startsWith","search","pos","substr","endsWith","this_len","substring","actual","determiner","replace","arg","rotr32","y","z","p32","MD5","EVP_BytesToKey","password","salt","keyBits","ivLen","RangeError","keyLen","iv","tmp","used","keyStart","min","ivStart","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","zh","r","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","c0_hi","c1_hi","c2_hi","s0_512_lo","c0_lo","c1_lo","c2_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c3_hi","c3_lo","ah","al","bh","bl","ch","cl","dh","dl","eh","el","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","ERR_INVALID_OPT_VALUE","highWaterMarkFrom","duplexKey","hwm","isFinite","sum32_3","RIPEMD160","endian","Kh","A","B","C","D","E","Ah","Bh","Ch","Dh","Eh","T","rh","sh","isSurrogatePair","charCodeAt","toHex","zero2","htonl","w","zero8","word","join32","lo","hi","num","XMLHttpRequest","arr","objectKeys","allowHalfOpen","onEndNT","pending","pendingTotal","_delta8","_delta32","_pad","bytes","ERR_STREAM_PREMATURE_CLOSE","called","_len","args","_key","noop","isRequest","setHeader","abort","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","req","semver","satisfies","version","date","ms","time","milliseconds","ERR_MISSING_ARGS","destroyer","closed","to","popCallback","streams","pop","destroys","reduce"],"mappings":"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","file":"js/chunk-vendors~db300d2f.535de282.js","sourcesContent":["'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var JsonWebTokenError = require('./lib/JsonWebTokenError');\nvar NotBeforeError = require('./lib/NotBeforeError');\nvar TokenExpiredError = require('./lib/TokenExpiredError');\nvar decode = require('./decode');\nvar timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\n\nvar PUB_KEY_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512'];\nvar RSA_KEY_ALGS = ['RS256', 'RS384', 'RS512'];\nvar HS_ALGS = ['HS256', 'HS384', 'HS512'];\n\nif (PS_SUPPORTED) {\n PUB_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n RSA_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nmodule.exports = function (jwtString, secretOrPublicKey, options, callback) {\n if ((typeof options === 'function') && !callback) {\n callback = options;\n options = {};\n }\n\n if (!options) {\n options = {};\n }\n\n //clone this object since we are going to mutate it.\n options = Object.assign({}, options);\n\n var done;\n\n if (callback) {\n done = callback;\n } else {\n done = function(err, data) {\n if (err) throw err;\n return data;\n };\n }\n\n if (options.clockTimestamp && typeof options.clockTimestamp !== 'number') {\n return done(new JsonWebTokenError('clockTimestamp must be a number'));\n }\n\n if (options.nonce !== undefined && (typeof options.nonce !== 'string' || options.nonce.trim() === '')) {\n return done(new JsonWebTokenError('nonce must be a non-empty string'));\n }\n\n var clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1000);\n\n if (!jwtString){\n return done(new JsonWebTokenError('jwt must be provided'));\n }\n\n if (typeof jwtString !== 'string') {\n return done(new JsonWebTokenError('jwt must be a string'));\n }\n\n var parts = jwtString.split('.');\n\n if (parts.length !== 3){\n return done(new JsonWebTokenError('jwt malformed'));\n }\n\n var decodedToken;\n\n try {\n decodedToken = decode(jwtString, { complete: true });\n } catch(err) {\n return done(err);\n }\n\n if (!decodedToken) {\n return done(new JsonWebTokenError('invalid token'));\n }\n\n var header = decodedToken.header;\n var getSecret;\n\n if(typeof secretOrPublicKey === 'function') {\n if(!callback) {\n return done(new JsonWebTokenError('verify must be called asynchronous if secret or public key is provided as a callback'));\n }\n\n getSecret = secretOrPublicKey;\n }\n else {\n getSecret = function(header, secretCallback) {\n return secretCallback(null, secretOrPublicKey);\n };\n }\n\n return getSecret(header, function(err, secretOrPublicKey) {\n if(err) {\n return done(new JsonWebTokenError('error in secret or public key callback: ' + err.message));\n }\n\n var hasSignature = parts[2].trim() !== '';\n\n if (!hasSignature && secretOrPublicKey){\n return done(new JsonWebTokenError('jwt signature is required'));\n }\n\n if (hasSignature && !secretOrPublicKey) {\n return done(new JsonWebTokenError('secret or public key must be provided'));\n }\n\n if (!hasSignature && !options.algorithms) {\n options.algorithms = ['none'];\n }\n\n if (!options.algorithms) {\n options.algorithms = ~secretOrPublicKey.toString().indexOf('BEGIN CERTIFICATE') ||\n ~secretOrPublicKey.toString().indexOf('BEGIN PUBLIC KEY') ? PUB_KEY_ALGS :\n ~secretOrPublicKey.toString().indexOf('BEGIN RSA PUBLIC KEY') ? RSA_KEY_ALGS : HS_ALGS;\n\n }\n\n if (!~options.algorithms.indexOf(decodedToken.header.alg)) {\n return done(new JsonWebTokenError('invalid algorithm'));\n }\n\n var valid;\n\n try {\n valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey);\n } catch (e) {\n return done(e);\n }\n\n if (!valid) {\n return done(new JsonWebTokenError('invalid signature'));\n }\n\n var payload = decodedToken.payload;\n\n if (typeof payload.nbf !== 'undefined' && !options.ignoreNotBefore) {\n if (typeof payload.nbf !== 'number') {\n return done(new JsonWebTokenError('invalid nbf value'));\n }\n if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) {\n return done(new NotBeforeError('jwt not active', new Date(payload.nbf * 1000)));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && !options.ignoreExpiration) {\n if (typeof payload.exp !== 'number') {\n return done(new JsonWebTokenError('invalid exp value'));\n }\n if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000)));\n }\n }\n\n if (options.audience) {\n var audiences = Array.isArray(options.audience) ? options.audience : [options.audience];\n var target = Array.isArray(payload.aud) ? payload.aud : [payload.aud];\n\n var match = target.some(function (targetAudience) {\n return audiences.some(function (audience) {\n return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience;\n });\n });\n\n if (!match) {\n return done(new JsonWebTokenError('jwt audience invalid. expected: ' + audiences.join(' or ')));\n }\n }\n\n if (options.issuer) {\n var invalid_issuer =\n (typeof options.issuer === 'string' && payload.iss !== options.issuer) ||\n (Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1);\n\n if (invalid_issuer) {\n return done(new JsonWebTokenError('jwt issuer invalid. expected: ' + options.issuer));\n }\n }\n\n if (options.subject) {\n if (payload.sub !== options.subject) {\n return done(new JsonWebTokenError('jwt subject invalid. expected: ' + options.subject));\n }\n }\n\n if (options.jwtid) {\n if (payload.jti !== options.jwtid) {\n return done(new JsonWebTokenError('jwt jwtid invalid. expected: ' + options.jwtid));\n }\n }\n\n if (options.nonce) {\n if (payload.nonce !== options.nonce) {\n return done(new JsonWebTokenError('jwt nonce invalid. expected: ' + options.nonce));\n }\n }\n\n if (options.maxAge) {\n if (typeof payload.iat !== 'number') {\n return done(new JsonWebTokenError('iat required when maxAge is specified'));\n }\n\n var maxAgeTimestamp = timespan(options.maxAge, payload.iat);\n if (typeof maxAgeTimestamp === 'undefined') {\n return done(new JsonWebTokenError('\"maxAge\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('maxAge exceeded', new Date(maxAgeTimestamp * 1000)));\n }\n }\n\n if (options.complete === true) {\n var signature = decodedToken.signature;\n\n return done(null, {\n header: header,\n payload: payload,\n signature: signature\n });\n }\n\n return done(null, payload);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","module.exports = {\n decode: require('./decode'),\n verify: require('./verify'),\n sign: require('./sign'),\n JsonWebTokenError: require('./lib/JsonWebTokenError'),\n NotBeforeError: require('./lib/NotBeforeError'),\n TokenExpiredError: require('./lib/TokenExpiredError'),\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","var timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\nvar includes = require('lodash.includes');\nvar isBoolean = require('lodash.isboolean');\nvar isInteger = require('lodash.isinteger');\nvar isNumber = require('lodash.isnumber');\nvar isPlainObject = require('lodash.isplainobject');\nvar isString = require('lodash.isstring');\nvar once = require('lodash.once');\n\nvar SUPPORTED_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none']\nif (PS_SUPPORTED) {\n SUPPORTED_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nvar sign_options_schema = {\n expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"expiresIn\" should be a number of seconds or string representing a timespan' },\n notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"notBefore\" should be a number of seconds or string representing a timespan' },\n audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '\"audience\" must be a string or array' },\n algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '\"algorithm\" must be a valid string enum value' },\n header: { isValid: isPlainObject, message: '\"header\" must be an object' },\n encoding: { isValid: isString, message: '\"encoding\" must be a string' },\n issuer: { isValid: isString, message: '\"issuer\" must be a string' },\n subject: { isValid: isString, message: '\"subject\" must be a string' },\n jwtid: { isValid: isString, message: '\"jwtid\" must be a string' },\n noTimestamp: { isValid: isBoolean, message: '\"noTimestamp\" must be a boolean' },\n keyid: { isValid: isString, message: '\"keyid\" must be a string' },\n mutatePayload: { isValid: isBoolean, message: '\"mutatePayload\" must be a boolean' }\n};\n\nvar registered_claims_schema = {\n iat: { isValid: isNumber, message: '\"iat\" should be a number of seconds' },\n exp: { isValid: isNumber, message: '\"exp\" should be a number of seconds' },\n nbf: { isValid: isNumber, message: '\"nbf\" should be a number of seconds' }\n};\n\nfunction validate(schema, allowUnknown, object, parameterName) {\n if (!isPlainObject(object)) {\n throw new Error('Expected \"' + parameterName + '\" to be a plain object.');\n }\n Object.keys(object)\n .forEach(function(key) {\n var validator = schema[key];\n if (!validator) {\n if (!allowUnknown) {\n throw new Error('\"' + key + '\" is not allowed in \"' + parameterName + '\"');\n }\n return;\n }\n if (!validator.isValid(object[key])) {\n throw new Error(validator.message);\n }\n });\n}\n\nfunction validateOptions(options) {\n return validate(sign_options_schema, false, options, 'options');\n}\n\nfunction validatePayload(payload) {\n return validate(registered_claims_schema, true, payload, 'payload');\n}\n\nvar options_to_payload = {\n 'audience': 'aud',\n 'issuer': 'iss',\n 'subject': 'sub',\n 'jwtid': 'jti'\n};\n\nvar options_for_objects = [\n 'expiresIn',\n 'notBefore',\n 'noTimestamp',\n 'audience',\n 'issuer',\n 'subject',\n 'jwtid',\n];\n\nmodule.exports = function (payload, secretOrPrivateKey, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n } else {\n options = options || {};\n }\n\n var isObjectPayload = typeof payload === 'object' &&\n !Buffer.isBuffer(payload);\n\n var header = Object.assign({\n alg: options.algorithm || 'HS256',\n typ: isObjectPayload ? 'JWT' : undefined,\n kid: options.keyid\n }, options.header);\n\n function failure(err) {\n if (callback) {\n return callback(err);\n }\n throw err;\n }\n\n if (!secretOrPrivateKey && options.algorithm !== 'none') {\n return failure(new Error('secretOrPrivateKey must have a value'));\n }\n\n if (typeof payload === 'undefined') {\n return failure(new Error('payload is required'));\n } else if (isObjectPayload) {\n try {\n validatePayload(payload);\n }\n catch (error) {\n return failure(error);\n }\n if (!options.mutatePayload) {\n payload = Object.assign({},payload);\n }\n } else {\n var invalid_options = options_for_objects.filter(function (opt) {\n return typeof options[opt] !== 'undefined';\n });\n\n if (invalid_options.length > 0) {\n return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload'));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') {\n return failure(new Error('Bad \"options.expiresIn\" option the payload already has an \"exp\" property.'));\n }\n\n if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') {\n return failure(new Error('Bad \"options.notBefore\" option the payload already has an \"nbf\" property.'));\n }\n\n try {\n validateOptions(options);\n }\n catch (error) {\n return failure(error);\n }\n\n var timestamp = payload.iat || Math.floor(Date.now() / 1000);\n\n if (options.noTimestamp) {\n delete payload.iat;\n } else if (isObjectPayload) {\n payload.iat = timestamp;\n }\n\n if (typeof options.notBefore !== 'undefined') {\n try {\n payload.nbf = timespan(options.notBefore, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.nbf === 'undefined') {\n return failure(new Error('\"notBefore\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') {\n try {\n payload.exp = timespan(options.expiresIn, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.exp === 'undefined') {\n return failure(new Error('\"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n Object.keys(options_to_payload).forEach(function (key) {\n var claim = options_to_payload[key];\n if (typeof options[key] !== 'undefined') {\n if (typeof payload[claim] !== 'undefined') {\n return failure(new Error('Bad \"options.' + key + '\" option. The payload already has an \"' + claim + '\" property.'));\n }\n payload[claim] = options[key];\n }\n });\n\n var encoding = options.encoding || 'utf8';\n\n if (typeof callback === 'function') {\n callback = callback && once(callback);\n\n jws.createSign({\n header: header,\n privateKey: secretOrPrivateKey,\n payload: payload,\n encoding: encoding\n }).once('error', callback)\n .once('done', function (signature) {\n callback(null, signature);\n });\n } else {\n return jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding});\n }\n};\n","var JsonWebTokenError = function (message, error) {\n Error.call(this, message);\n if(Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = 'JsonWebTokenError';\n this.message = message;\n if (error) this.inner = error;\n};\n\nJsonWebTokenError.prototype = Object.create(Error.prototype);\nJsonWebTokenError.prototype.constructor = JsonWebTokenError;\n\nmodule.exports = JsonWebTokenError;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var jws = require('jws');\n\nmodule.exports = function (jwt, options) {\n options = options || {};\n var decoded = jws.decode(jwt, options);\n if (!decoded) { return null; }\n var payload = decoded.payload;\n\n //try parse the payload\n if(typeof payload === 'string') {\n try {\n var obj = JSON.parse(payload);\n if(obj !== null && typeof obj === 'object') {\n payload = obj;\n }\n } catch (e) { }\n }\n\n //return header if `complete` option is enabled. header includes claims\n //such as `kid` and `alg` used to select the key within a JWKS needed to\n //verify the signature\n if (options.complete === true) {\n return {\n header: decoded.header,\n payload: payload,\n signature: decoded.signature\n };\n }\n return payload;\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' ||\n typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof File === 'function' ||\n typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (isArray(obj)) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n\n if ((typeof Buffer === 'function' && Buffer.isBuffer && Buffer.isBuffer(obj)) ||\n (typeof ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)\n ) {\n return true;\n }\n\n // see: https://github.com/Automattic/has-binary/pull/4\n if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar TokenExpiredError = function (message, expiredAt) {\n JsonWebTokenError.call(this, message);\n this.name = 'TokenExpiredError';\n this.expiredAt = expiredAt;\n};\n\nTokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype);\n\nTokenExpiredError.prototype.constructor = TokenExpiredError;\n\nmodule.exports = TokenExpiredError;","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n module.exports = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","var semver = require('semver');\n\nmodule.exports = semver.satisfies(process.version, '^6.12.0 || >=8.0.0');\n","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar NotBeforeError = function (message, date) {\n JsonWebTokenError.call(this, message);\n this.name = 'NotBeforeError';\n this.date = date;\n};\n\nNotBeforeError.prototype = Object.create(JsonWebTokenError.prototype);\n\nNotBeforeError.prototype.constructor = NotBeforeError;\n\nmodule.exports = NotBeforeError;","var ms = require('ms');\n\nmodule.exports = function (time, iat) {\n var timestamp = iat || Math.floor(Date.now() / 1000);\n\n if (typeof time === 'string') {\n var milliseconds = ms(time);\n if (typeof milliseconds === 'undefined') {\n return;\n }\n return Math.floor(timestamp + milliseconds / 1000);\n } else if (typeof time === 'number') {\n return timestamp + time;\n } else {\n return;\n }\n\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;"],"sourceRoot":""}