![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/dceprojects.corals.io/node_modules/unbzip2-stream/lib/ |
var BITMASK = [0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF]; // returns a function that reads bits. // takes a buffer iterator as input module.exports = function bitIterator(nextBuffer) { var bit = 0, byte = 0; var bytes = nextBuffer(); var f = function(n) { if (n === null && bit != 0) { // align to byte boundary bit = 0 byte++; return; } var result = 0; while(n > 0) { if (byte >= bytes.length) { byte = 0; bytes = nextBuffer(); } var left = 8 - bit; if (bit === 0 && n > 0) f.bytesRead++; if (n >= left) { result <<= left; result |= (BITMASK[left] & bytes[byte++]); bit = 0; n -= left; } else { result <<= n; result |= ((bytes[byte] & (BITMASK[n] << (8 - n - bit))) >> (8 - n - bit)); bit += n; n = 0; } } return result; }; f.bytesRead = 0; return f; };