{"ast":null,"code":"import { ParseUint32, ParseUint8Array } from \"./exrLoader.core.js\";\nimport { HUF_DECBITS, HUF_DECMASK, HUF_DECSIZE, HUF_ENCSIZE, LONG_ZEROCODE_RUN, SHORT_ZEROCODE_RUN, SHORTEST_LONG_RUN, USHORT_RANGE } from \"./exrLoader.interfaces.js\";\n/**\n * Inspired by https://github.com/sciecode/three.js/blob/dev/examples/jsm/loaders/EXRLoader.js\n * Referred to the original Industrial Light & Magic OpenEXR implementation and the TinyEXR / Syoyo Fujita\n * implementation.\n */\n// /*\n// Copyright (c) 2014 - 2017, Syoyo Fujita\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of the Syoyo Fujita nor the\n// names of its contributors may be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n// DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n// */\n// // TinyEXR contains some OpenEXR code, which is licensed under ------------\n// ///////////////////////////////////////////////////////////////////////////\n// //\n// // Copyright (c) 2002, Industrial Light & Magic, a division of Lucas\n// // Digital Ltd. LLC\n// //\n// // All rights reserved.\n// //\n// // Redistribution and use in source and binary forms, with or without\n// // modification, are permitted provided that the following conditions are\n// // met:\n// // * Redistributions of source code must retain the above copyright\n// // notice, this list of conditions and the following disclaimer.\n// // * Redistributions in binary form must reproduce the above\n// // copyright notice, this list of conditions and the following disclaimer\n// // in the documentation and/or other materials provided with the\n// // distribution.\n// // * Neither the name of Industrial Light & Magic nor the names of\n// // its contributors may be used to endorse or promote products derived\n// // from this software without specific prior written permission.\n// //\n// // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// // \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n// //\n// ///////////////////////////////////////////////////////////////////////////\n// // End of OpenEXR license -------------------------------------------------\nconst NBITS = 16;\nconst A_OFFSET = 1 << NBITS - 1;\nconst MOD_MASK = (1 << NBITS) - 1;\n/** @internal */\nexport function ReverseLutFromBitmap(bitmap, lut) {\n let k = 0;\n for (let i = 0; i < USHORT_RANGE; ++i) {\n if (i == 0 || bitmap[i >> 3] & 1 << (i & 7)) {\n lut[k++] = i;\n }\n }\n const n = k - 1;\n while (k < USHORT_RANGE) lut[k++] = 0;\n return n;\n}\nfunction HufClearDecTable(hdec) {\n for (let i = 0; i < HUF_DECSIZE; i++) {\n hdec[i] = {};\n hdec[i].len = 0;\n hdec[i].lit = 0;\n hdec[i].p = null;\n }\n}\nfunction GetBits(nBits, c, lc, array, offset) {\n while (lc < nBits) {\n c = c << 8 | ParseUint8Array(array, offset);\n lc += 8;\n }\n lc -= nBits;\n return {\n l: c >> lc & (1 << nBits) - 1,\n c,\n lc\n };\n}\nfunction GetChar(c, lc, array, offset) {\n c = c << 8 | ParseUint8Array(array, offset);\n lc += 8;\n return {\n c,\n lc\n };\n}\nfunction GetCode(po, rlc, c, lc, array, offset, outBuffer, outBufferOffset, outBufferEndOffset) {\n if (po == rlc) {\n if (lc < 8) {\n const gc = GetChar(c, lc, array, offset);\n c = gc.c;\n lc = gc.lc;\n }\n lc -= 8;\n let cs = c >> lc;\n cs = new Uint8Array([cs])[0];\n if (outBufferOffset.value + cs > outBufferEndOffset) {\n return null;\n }\n const s = outBuffer[outBufferOffset.value - 1];\n while (cs-- > 0) {\n outBuffer[outBufferOffset.value++] = s;\n }\n } else if (outBufferOffset.value < outBufferEndOffset) {\n outBuffer[outBufferOffset.value++] = po;\n } else {\n return null;\n }\n return {\n c,\n lc\n };\n}\nconst HufTableBuffer = new Array(59);\nfunction HufCanonicalCodeTable(hcode) {\n for (let i = 0; i <= 58; ++i) HufTableBuffer[i] = 0;\n for (let i = 0; i < HUF_ENCSIZE; ++i) HufTableBuffer[hcode[i]] += 1;\n let c = 0;\n for (let i = 58; i > 0; --i) {\n const nc = c + HufTableBuffer[i] >> 1;\n HufTableBuffer[i] = c;\n c = nc;\n }\n for (let i = 0; i < HUF_ENCSIZE; ++i) {\n const l = hcode[i];\n if (l > 0) hcode[i] = l | HufTableBuffer[l]++ << 6;\n }\n}\nfunction HufUnpackEncTable(array, offset, ni, im, iM, hcode) {\n const p = offset;\n let c = 0;\n let lc = 0;\n for (; im <= iM; im++) {\n if (p.value - offset.value > ni) {\n return;\n }\n let gb = GetBits(6, c, lc, array, p);\n const l = gb.l;\n c = gb.c;\n lc = gb.lc;\n hcode[im] = l;\n if (l == LONG_ZEROCODE_RUN) {\n if (p.value - offset.value > ni) {\n throw new Error(\"Error in HufUnpackEncTable\");\n }\n gb = GetBits(8, c, lc, array, p);\n let zerun = gb.l + SHORTEST_LONG_RUN;\n c = gb.c;\n lc = gb.lc;\n if (im + zerun > iM + 1) {\n throw new Error(\"Error in HufUnpackEncTable\");\n }\n while (zerun--) hcode[im++] = 0;\n im--;\n } else if (l >= SHORT_ZEROCODE_RUN) {\n let zerun = l - SHORT_ZEROCODE_RUN + 2;\n if (im + zerun > iM + 1) {\n throw new Error(\"Error in HufUnpackEncTable\");\n }\n while (zerun--) hcode[im++] = 0;\n im--;\n }\n }\n HufCanonicalCodeTable(hcode);\n}\nfunction HufLength(code) {\n return code & 63;\n}\nfunction HufCode(code) {\n return code >> 6;\n}\nfunction HufBuildDecTable(hcode, im, iM, hdecod) {\n for (; im <= iM; im++) {\n const c = HufCode(hcode[im]);\n const l = HufLength(hcode[im]);\n if (c >> l) {\n throw new Error(\"Invalid table entry\");\n }\n if (l > HUF_DECBITS) {\n const pl = hdecod[c >> l - HUF_DECBITS];\n if (pl.len) {\n throw new Error(\"Invalid table entry\");\n }\n pl.lit++;\n if (pl.p) {\n const p = pl.p;\n pl.p = new Array(pl.lit);\n for (let i = 0; i < pl.lit - 1; ++i) {\n pl.p[i] = p[i];\n }\n } else {\n pl.p = new Array(1);\n }\n pl.p[pl.lit - 1] = im;\n } else if (l) {\n let plOffset = 0;\n for (let i = 1 << HUF_DECBITS - l; i > 0; i--) {\n const pl = hdecod[(c << HUF_DECBITS - l) + plOffset];\n if (pl.len || pl.p) {\n throw new Error(\"Invalid table entry\");\n }\n pl.len = l;\n pl.lit = im;\n plOffset++;\n }\n }\n }\n return true;\n}\nfunction HufDecode(encodingTable, decodingTable, array, offset, ni, rlc, no, outBuffer, outOffset) {\n let c = 0;\n let lc = 0;\n const outBufferEndOffset = no;\n const inOffsetEnd = Math.trunc(offset.value + (ni + 7) / 8);\n while (offset.value < inOffsetEnd) {\n let gc = GetChar(c, lc, array, offset);\n c = gc.c;\n lc = gc.lc;\n while (lc >= HUF_DECBITS) {\n const index = c >> lc - HUF_DECBITS & HUF_DECMASK;\n const pl = decodingTable[index];\n if (pl.len) {\n lc -= pl.len;\n const gCode = GetCode(pl.lit, rlc, c, lc, array, offset, outBuffer, outOffset, outBufferEndOffset);\n if (gCode) {\n c = gCode.c;\n lc = gCode.lc;\n }\n } else {\n if (!pl.p) {\n throw new Error(\"hufDecode issues\");\n }\n let j;\n for (j = 0; j < pl.lit; j++) {\n const l = HufLength(encodingTable[pl.p[j]]);\n while (lc < l && offset.value < inOffsetEnd) {\n gc = GetChar(c, lc, array, offset);\n c = gc.c;\n lc = gc.lc;\n }\n if (lc >= l) {\n if (HufCode(encodingTable[pl.p[j]]) == (c >> lc - l & (1 << l) - 1)) {\n lc -= l;\n const gCode = GetCode(pl.p[j], rlc, c, lc, array, offset, outBuffer, outOffset, outBufferEndOffset);\n if (gCode) {\n c = gCode.c;\n lc = gCode.lc;\n }\n break;\n }\n }\n }\n if (j == pl.lit) {\n throw new Error(\"HufDecode issues\");\n }\n }\n }\n }\n const i = 8 - ni & 7;\n c >>= i;\n lc -= i;\n while (lc > 0) {\n const pl = decodingTable[c << HUF_DECBITS - lc & HUF_DECMASK];\n if (pl.len) {\n lc -= pl.len;\n const gCode = GetCode(pl.lit, rlc, c, lc, array, offset, outBuffer, outOffset, outBufferEndOffset);\n if (gCode) {\n c = gCode.c;\n lc = gCode.lc;\n }\n } else {\n throw new Error(\"HufDecode issues\");\n }\n }\n return true;\n}\n/** @internal */\nexport function HufUncompress(array, dataView, offset, nCompressed, outBuffer, nRaw) {\n const outOffset = {\n value: 0\n };\n const initialInOffset = offset.value;\n const im = ParseUint32(dataView, offset);\n const iM = ParseUint32(dataView, offset);\n offset.value += 4;\n const nBits = ParseUint32(dataView, offset);\n offset.value += 4;\n if (im < 0 || im >= HUF_ENCSIZE || iM < 0 || iM >= HUF_ENCSIZE) {\n throw new Error(\"Wrong HUF_ENCSIZE\");\n }\n const freq = new Array(HUF_ENCSIZE);\n const hdec = new Array(HUF_DECSIZE);\n HufClearDecTable(hdec);\n const ni = nCompressed - (offset.value - initialInOffset);\n HufUnpackEncTable(array, offset, ni, im, iM, freq);\n if (nBits > 8 * (nCompressed - (offset.value - initialInOffset))) {\n throw new Error(\"Wrong hufUncompress\");\n }\n HufBuildDecTable(freq, im, iM, hdec);\n HufDecode(freq, hdec, array, offset, nBits, iM, nRaw, outBuffer, outOffset);\n}\nfunction UInt16(value) {\n return value & 0xffff;\n}\nfunction Int16(value) {\n const ref = UInt16(value);\n return ref > 0x7fff ? ref - 0x10000 : ref;\n}\nfunction Wdec14(l, h) {\n const ls = Int16(l);\n const hs = Int16(h);\n const hi = hs;\n const ai = ls + (hi & 1) + (hi >> 1);\n const as = ai;\n const bs = ai - hi;\n return {\n a: as,\n b: bs\n };\n}\nfunction Wdec16(l, h) {\n const m = UInt16(l);\n const d = UInt16(h);\n const bb = m - (d >> 1) & MOD_MASK;\n const aa = d + bb - A_OFFSET & MOD_MASK;\n return {\n a: aa,\n b: bb\n };\n}\n/** @internal */\nexport function Wav2Decode(buffer, j, nx, ox, ny, oy, mx) {\n const w14 = mx < 1 << 14;\n const n = nx > ny ? ny : nx;\n let p = 1;\n let p2;\n let py;\n while (p <= n) p <<= 1;\n p >>= 1;\n p2 = p;\n p >>= 1;\n while (p >= 1) {\n py = 0;\n const ey = py + oy * (ny - p2);\n const oy1 = oy * p;\n const oy2 = oy * p2;\n const ox1 = ox * p;\n const ox2 = ox * p2;\n let i00, i01, i10, i11;\n for (; py <= ey; py += oy2) {\n let px = py;\n const ex = py + ox * (nx - p2);\n for (; px <= ex; px += ox2) {\n const p01 = px + ox1;\n const p10 = px + oy1;\n const p11 = p10 + ox1;\n if (w14) {\n let result = Wdec14(buffer[px + j], buffer[p10 + j]);\n i00 = result.a;\n i10 = result.b;\n result = Wdec14(buffer[p01 + j], buffer[p11 + j]);\n i01 = result.a;\n i11 = result.b;\n result = Wdec14(i00, i01);\n buffer[px + j] = result.a;\n buffer[p01 + j] = result.b;\n result = Wdec14(i10, i11);\n buffer[p10 + j] = result.a;\n buffer[p11 + j] = result.b;\n } else {\n let result = Wdec16(buffer[px + j], buffer[p10 + j]);\n i00 = result.a;\n i10 = result.b;\n result = Wdec16(buffer[p01 + j], buffer[p11 + j]);\n i01 = result.a;\n i11 = result.b;\n result = Wdec16(i00, i01);\n buffer[px + j] = result.a;\n buffer[p01 + j] = result.b;\n result = Wdec16(i10, i11);\n buffer[p10 + j] = result.a;\n buffer[p11 + j] = result.b;\n }\n }\n if (nx & p) {\n const p10 = px + oy1;\n let result;\n if (w14) {\n result = Wdec14(buffer[px + j], buffer[p10 + j]);\n } else {\n result = Wdec16(buffer[px + j], buffer[p10 + j]);\n }\n i00 = result.a;\n buffer[p10 + j] = result.b;\n buffer[px + j] = i00;\n }\n }\n if (ny & p) {\n let px = py;\n const ex = py + ox * (nx - p2);\n for (; px <= ex; px += ox2) {\n const p01 = px + ox1;\n let result;\n if (w14) {\n result = Wdec14(buffer[px + j], buffer[p01 + j]);\n } else {\n result = Wdec16(buffer[px + j], buffer[p01 + j]);\n }\n i00 = result.a;\n buffer[p01 + j] = result.b;\n buffer[px + j] = i00;\n }\n }\n p2 = p;\n p >>= 1;\n }\n return py;\n}\n/** @internal */\nexport function ApplyLut(lut, data, nData) {\n for (let i = 0; i < nData; ++i) {\n data[i] = lut[data[i]];\n }\n}","map":{"version":3,"names":["ParseUint32","ParseUint8Array","HUF_DECBITS","HUF_DECMASK","HUF_DECSIZE","HUF_ENCSIZE","LONG_ZEROCODE_RUN","SHORT_ZEROCODE_RUN","SHORTEST_LONG_RUN","USHORT_RANGE","NBITS","A_OFFSET","MOD_MASK","ReverseLutFromBitmap","bitmap","lut","k","i","n","HufClearDecTable","hdec","len","lit","p","GetBits","nBits","c","lc","array","offset","l","GetChar","GetCode","po","rlc","outBuffer","outBufferOffset","outBufferEndOffset","gc","cs","Uint8Array","value","s","HufTableBuffer","Array","HufCanonicalCodeTable","hcode","nc","HufUnpackEncTable","ni","im","iM","gb","Error","zerun","HufLength","code","HufCode","HufBuildDecTable","hdecod","pl","plOffset","HufDecode","encodingTable","decodingTable","no","outOffset","inOffsetEnd","Math","trunc","index","gCode","j","HufUncompress","dataView","nCompressed","nRaw","initialInOffset","freq","UInt16","Int16","ref","Wdec14","h","ls","hs","hi","ai","as","bs","a","b","Wdec16","m","d","bb","aa","Wav2Decode","buffer","nx","ox","ny","oy","mx","w14","p2","py","ey","oy1","oy2","ox1","ox2","i00","i01","i10","i11","px","ex","p01","p10","p11","result","ApplyLut","data","nData"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Textures/Loaders/EXR/exrLoader.compression.huf.js"],"sourcesContent":["import { ParseUint32, ParseUint8Array } from \"./exrLoader.core.js\";\nimport { HUF_DECBITS, HUF_DECMASK, HUF_DECSIZE, HUF_ENCSIZE, LONG_ZEROCODE_RUN, SHORT_ZEROCODE_RUN, SHORTEST_LONG_RUN, USHORT_RANGE } from \"./exrLoader.interfaces.js\";\n/**\n * Inspired by https://github.com/sciecode/three.js/blob/dev/examples/jsm/loaders/EXRLoader.js\n * Referred to the original Industrial Light & Magic OpenEXR implementation and the TinyEXR / Syoyo Fujita\n * implementation.\n */\n// /*\n// Copyright (c) 2014 - 2017, Syoyo Fujita\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of the Syoyo Fujita nor the\n// names of its contributors may be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n// DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n// */\n// // TinyEXR contains some OpenEXR code, which is licensed under ------------\n// ///////////////////////////////////////////////////////////////////////////\n// //\n// // Copyright (c) 2002, Industrial Light & Magic, a division of Lucas\n// // Digital Ltd. LLC\n// //\n// // All rights reserved.\n// //\n// // Redistribution and use in source and binary forms, with or without\n// // modification, are permitted provided that the following conditions are\n// // met:\n// // * Redistributions of source code must retain the above copyright\n// // notice, this list of conditions and the following disclaimer.\n// // * Redistributions in binary form must reproduce the above\n// // copyright notice, this list of conditions and the following disclaimer\n// // in the documentation and/or other materials provided with the\n// // distribution.\n// // * Neither the name of Industrial Light & Magic nor the names of\n// // its contributors may be used to endorse or promote products derived\n// // from this software without specific prior written permission.\n// //\n// // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// // \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n// //\n// ///////////////////////////////////////////////////////////////////////////\n// // End of OpenEXR license -------------------------------------------------\nconst NBITS = 16;\nconst A_OFFSET = 1 << (NBITS - 1);\nconst MOD_MASK = (1 << NBITS) - 1;\n/** @internal */\nexport function ReverseLutFromBitmap(bitmap, lut) {\n let k = 0;\n for (let i = 0; i < USHORT_RANGE; ++i) {\n if (i == 0 || bitmap[i >> 3] & (1 << (i & 7))) {\n lut[k++] = i;\n }\n }\n const n = k - 1;\n while (k < USHORT_RANGE)\n lut[k++] = 0;\n return n;\n}\nfunction HufClearDecTable(hdec) {\n for (let i = 0; i < HUF_DECSIZE; i++) {\n hdec[i] = {};\n hdec[i].len = 0;\n hdec[i].lit = 0;\n hdec[i].p = null;\n }\n}\nfunction GetBits(nBits, c, lc, array, offset) {\n while (lc < nBits) {\n c = (c << 8) | ParseUint8Array(array, offset);\n lc += 8;\n }\n lc -= nBits;\n return {\n l: (c >> lc) & ((1 << nBits) - 1),\n c,\n lc,\n };\n}\nfunction GetChar(c, lc, array, offset) {\n c = (c << 8) | ParseUint8Array(array, offset);\n lc += 8;\n return {\n c,\n lc,\n };\n}\nfunction GetCode(po, rlc, c, lc, array, offset, outBuffer, outBufferOffset, outBufferEndOffset) {\n if (po == rlc) {\n if (lc < 8) {\n const gc = GetChar(c, lc, array, offset);\n c = gc.c;\n lc = gc.lc;\n }\n lc -= 8;\n let cs = c >> lc;\n cs = new Uint8Array([cs])[0];\n if (outBufferOffset.value + cs > outBufferEndOffset) {\n return null;\n }\n const s = outBuffer[outBufferOffset.value - 1];\n while (cs-- > 0) {\n outBuffer[outBufferOffset.value++] = s;\n }\n }\n else if (outBufferOffset.value < outBufferEndOffset) {\n outBuffer[outBufferOffset.value++] = po;\n }\n else {\n return null;\n }\n return { c, lc };\n}\nconst HufTableBuffer = new Array(59);\nfunction HufCanonicalCodeTable(hcode) {\n for (let i = 0; i <= 58; ++i)\n HufTableBuffer[i] = 0;\n for (let i = 0; i < HUF_ENCSIZE; ++i)\n HufTableBuffer[hcode[i]] += 1;\n let c = 0;\n for (let i = 58; i > 0; --i) {\n const nc = (c + HufTableBuffer[i]) >> 1;\n HufTableBuffer[i] = c;\n c = nc;\n }\n for (let i = 0; i < HUF_ENCSIZE; ++i) {\n const l = hcode[i];\n if (l > 0)\n hcode[i] = l | (HufTableBuffer[l]++ << 6);\n }\n}\nfunction HufUnpackEncTable(array, offset, ni, im, iM, hcode) {\n const p = offset;\n let c = 0;\n let lc = 0;\n for (; im <= iM; im++) {\n if (p.value - offset.value > ni) {\n return;\n }\n let gb = GetBits(6, c, lc, array, p);\n const l = gb.l;\n c = gb.c;\n lc = gb.lc;\n hcode[im] = l;\n if (l == LONG_ZEROCODE_RUN) {\n if (p.value - offset.value > ni) {\n throw new Error(\"Error in HufUnpackEncTable\");\n }\n gb = GetBits(8, c, lc, array, p);\n let zerun = gb.l + SHORTEST_LONG_RUN;\n c = gb.c;\n lc = gb.lc;\n if (im + zerun > iM + 1) {\n throw new Error(\"Error in HufUnpackEncTable\");\n }\n while (zerun--)\n hcode[im++] = 0;\n im--;\n }\n else if (l >= SHORT_ZEROCODE_RUN) {\n let zerun = l - SHORT_ZEROCODE_RUN + 2;\n if (im + zerun > iM + 1) {\n throw new Error(\"Error in HufUnpackEncTable\");\n }\n while (zerun--)\n hcode[im++] = 0;\n im--;\n }\n }\n HufCanonicalCodeTable(hcode);\n}\nfunction HufLength(code) {\n return code & 63;\n}\nfunction HufCode(code) {\n return code >> 6;\n}\nfunction HufBuildDecTable(hcode, im, iM, hdecod) {\n for (; im <= iM; im++) {\n const c = HufCode(hcode[im]);\n const l = HufLength(hcode[im]);\n if (c >> l) {\n throw new Error(\"Invalid table entry\");\n }\n if (l > HUF_DECBITS) {\n const pl = hdecod[c >> (l - HUF_DECBITS)];\n if (pl.len) {\n throw new Error(\"Invalid table entry\");\n }\n pl.lit++;\n if (pl.p) {\n const p = pl.p;\n pl.p = new Array(pl.lit);\n for (let i = 0; i < pl.lit - 1; ++i) {\n pl.p[i] = p[i];\n }\n }\n else {\n pl.p = new Array(1);\n }\n pl.p[pl.lit - 1] = im;\n }\n else if (l) {\n let plOffset = 0;\n for (let i = 1 << (HUF_DECBITS - l); i > 0; i--) {\n const pl = hdecod[(c << (HUF_DECBITS - l)) + plOffset];\n if (pl.len || pl.p) {\n throw new Error(\"Invalid table entry\");\n }\n pl.len = l;\n pl.lit = im;\n plOffset++;\n }\n }\n }\n return true;\n}\nfunction HufDecode(encodingTable, decodingTable, array, offset, ni, rlc, no, outBuffer, outOffset) {\n let c = 0;\n let lc = 0;\n const outBufferEndOffset = no;\n const inOffsetEnd = Math.trunc(offset.value + (ni + 7) / 8);\n while (offset.value < inOffsetEnd) {\n let gc = GetChar(c, lc, array, offset);\n c = gc.c;\n lc = gc.lc;\n while (lc >= HUF_DECBITS) {\n const index = (c >> (lc - HUF_DECBITS)) & HUF_DECMASK;\n const pl = decodingTable[index];\n if (pl.len) {\n lc -= pl.len;\n const gCode = GetCode(pl.lit, rlc, c, lc, array, offset, outBuffer, outOffset, outBufferEndOffset);\n if (gCode) {\n c = gCode.c;\n lc = gCode.lc;\n }\n }\n else {\n if (!pl.p) {\n throw new Error(\"hufDecode issues\");\n }\n let j;\n for (j = 0; j < pl.lit; j++) {\n const l = HufLength(encodingTable[pl.p[j]]);\n while (lc < l && offset.value < inOffsetEnd) {\n gc = GetChar(c, lc, array, offset);\n c = gc.c;\n lc = gc.lc;\n }\n if (lc >= l) {\n if (HufCode(encodingTable[pl.p[j]]) == ((c >> (lc - l)) & ((1 << l) - 1))) {\n lc -= l;\n const gCode = GetCode(pl.p[j], rlc, c, lc, array, offset, outBuffer, outOffset, outBufferEndOffset);\n if (gCode) {\n c = gCode.c;\n lc = gCode.lc;\n }\n break;\n }\n }\n }\n if (j == pl.lit) {\n throw new Error(\"HufDecode issues\");\n }\n }\n }\n }\n const i = (8 - ni) & 7;\n c >>= i;\n lc -= i;\n while (lc > 0) {\n const pl = decodingTable[(c << (HUF_DECBITS - lc)) & HUF_DECMASK];\n if (pl.len) {\n lc -= pl.len;\n const gCode = GetCode(pl.lit, rlc, c, lc, array, offset, outBuffer, outOffset, outBufferEndOffset);\n if (gCode) {\n c = gCode.c;\n lc = gCode.lc;\n }\n }\n else {\n throw new Error(\"HufDecode issues\");\n }\n }\n return true;\n}\n/** @internal */\nexport function HufUncompress(array, dataView, offset, nCompressed, outBuffer, nRaw) {\n const outOffset = { value: 0 };\n const initialInOffset = offset.value;\n const im = ParseUint32(dataView, offset);\n const iM = ParseUint32(dataView, offset);\n offset.value += 4;\n const nBits = ParseUint32(dataView, offset);\n offset.value += 4;\n if (im < 0 || im >= HUF_ENCSIZE || iM < 0 || iM >= HUF_ENCSIZE) {\n throw new Error(\"Wrong HUF_ENCSIZE\");\n }\n const freq = new Array(HUF_ENCSIZE);\n const hdec = new Array(HUF_DECSIZE);\n HufClearDecTable(hdec);\n const ni = nCompressed - (offset.value - initialInOffset);\n HufUnpackEncTable(array, offset, ni, im, iM, freq);\n if (nBits > 8 * (nCompressed - (offset.value - initialInOffset))) {\n throw new Error(\"Wrong hufUncompress\");\n }\n HufBuildDecTable(freq, im, iM, hdec);\n HufDecode(freq, hdec, array, offset, nBits, iM, nRaw, outBuffer, outOffset);\n}\nfunction UInt16(value) {\n return value & 0xffff;\n}\nfunction Int16(value) {\n const ref = UInt16(value);\n return ref > 0x7fff ? ref - 0x10000 : ref;\n}\nfunction Wdec14(l, h) {\n const ls = Int16(l);\n const hs = Int16(h);\n const hi = hs;\n const ai = ls + (hi & 1) + (hi >> 1);\n const as = ai;\n const bs = ai - hi;\n return { a: as, b: bs };\n}\nfunction Wdec16(l, h) {\n const m = UInt16(l);\n const d = UInt16(h);\n const bb = (m - (d >> 1)) & MOD_MASK;\n const aa = (d + bb - A_OFFSET) & MOD_MASK;\n return { a: aa, b: bb };\n}\n/** @internal */\nexport function Wav2Decode(buffer, j, nx, ox, ny, oy, mx) {\n const w14 = mx < 1 << 14;\n const n = nx > ny ? ny : nx;\n let p = 1;\n let p2;\n let py;\n while (p <= n)\n p <<= 1;\n p >>= 1;\n p2 = p;\n p >>= 1;\n while (p >= 1) {\n py = 0;\n const ey = py + oy * (ny - p2);\n const oy1 = oy * p;\n const oy2 = oy * p2;\n const ox1 = ox * p;\n const ox2 = ox * p2;\n let i00, i01, i10, i11;\n for (; py <= ey; py += oy2) {\n let px = py;\n const ex = py + ox * (nx - p2);\n for (; px <= ex; px += ox2) {\n const p01 = px + ox1;\n const p10 = px + oy1;\n const p11 = p10 + ox1;\n if (w14) {\n let result = Wdec14(buffer[px + j], buffer[p10 + j]);\n i00 = result.a;\n i10 = result.b;\n result = Wdec14(buffer[p01 + j], buffer[p11 + j]);\n i01 = result.a;\n i11 = result.b;\n result = Wdec14(i00, i01);\n buffer[px + j] = result.a;\n buffer[p01 + j] = result.b;\n result = Wdec14(i10, i11);\n buffer[p10 + j] = result.a;\n buffer[p11 + j] = result.b;\n }\n else {\n let result = Wdec16(buffer[px + j], buffer[p10 + j]);\n i00 = result.a;\n i10 = result.b;\n result = Wdec16(buffer[p01 + j], buffer[p11 + j]);\n i01 = result.a;\n i11 = result.b;\n result = Wdec16(i00, i01);\n buffer[px + j] = result.a;\n buffer[p01 + j] = result.b;\n result = Wdec16(i10, i11);\n buffer[p10 + j] = result.a;\n buffer[p11 + j] = result.b;\n }\n }\n if (nx & p) {\n const p10 = px + oy1;\n let result;\n if (w14) {\n result = Wdec14(buffer[px + j], buffer[p10 + j]);\n }\n else {\n result = Wdec16(buffer[px + j], buffer[p10 + j]);\n }\n i00 = result.a;\n buffer[p10 + j] = result.b;\n buffer[px + j] = i00;\n }\n }\n if (ny & p) {\n let px = py;\n const ex = py + ox * (nx - p2);\n for (; px <= ex; px += ox2) {\n const p01 = px + ox1;\n let result;\n if (w14) {\n result = Wdec14(buffer[px + j], buffer[p01 + j]);\n }\n else {\n result = Wdec16(buffer[px + j], buffer[p01 + j]);\n }\n i00 = result.a;\n buffer[p01 + j] = result.b;\n buffer[px + j] = i00;\n }\n }\n p2 = p;\n p >>= 1;\n }\n return py;\n}\n/** @internal */\nexport function ApplyLut(lut, data, nData) {\n for (let i = 0; i < nData; ++i) {\n data[i] = lut[data[i]];\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}