%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict' var crypto = require('crypto') var fs = require('fs') var alloc = require('buffer-alloc') var BUFFER_SIZE = 8192 function md5FileSync (filename) { var fd = fs.openSync(filename, 'r') var hash = crypto.createHash('md5') var buffer = alloc(BUFFER_SIZE) try { var bytesRead do { bytesRead = fs.readSync(fd, buffer, 0, BUFFER_SIZE) hash.update(buffer.slice(0, bytesRead)) } while (bytesRead === BUFFER_SIZE) } finally { fs.closeSync(fd) } return hash.digest('hex') } function md5File (filename, cb) { if (typeof cb !== 'function') throw new TypeError('Argument cb must be a function') var output = crypto.createHash('md5') var input = fs.createReadStream(filename) input.on('error', function (err) { cb(err) }) output.once('readable', function () { cb(null, output.read().toString('hex')) }) input.pipe(output) } module.exports = md5File module.exports.sync = md5FileSync