-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathjsColorEngineWeb.js
More file actions
2 lines (2 loc) · 281 KB
/
Copy pathjsColorEngineWeb.js
File metadata and controls
2 lines (2 loc) · 281 KB
1
2
/*! For license information please see jsColorEngineWeb.js.LICENSE.txt */
var jsColorEngine;(()=>{var t={231:t=>{"use strict";t.exports=require("fs")},685:t=>{"use strict";t.exports=require("http")},155:(t,e,a)=>{let i=a(577);t.exports=class{constructor(){this.profiles=[],this.loadCount=0,this.errorCount=0}add(t,e,a){let r=new i;return this.profiles.push({profile:r,url:t,preload:!0===a,key:void 0===e?t:e}),r}async loadProfileIndex(t){let e=this.profiles[t].profile;if(e.loaded)return!0;if(!e.loadError)try{return await e.load(this.profiles[t].url)}catch(t){return!1}return!1}async loadAll(){for(let t of this.profiles)t.preload&&!t.profile.loaded&&await t.profile.loadPromise(t.url);this.loadCount=0,this.errorCount=0;let t=0;for(let e=0;e<this.profiles.length;e++)if(this.profiles[e].preload){t++;let a=this.profiles[e].profile;a.loadError?this.errorCount++:a.loaded&&this.loadCount++}console.log("Loaded "+this.loadCount+" profiles with "+this.errorCount+" errors out of "+t+" profiles")}async get(t){let e=-1;for(let a=0;a<this.profiles.length;a++)if(this.profiles[a].key===t){e=a;break}if(-1===e)throw new Error("Loader.get: no profile registered under key '"+t+"'");let a=this.profiles[e].profile;if(a.loaded)return a;if(await this.loadProfileIndex(e),a.loaded)return a;let i=a.lastError&&a.lastError.text?a.lastError.text:"unknown error";throw new Error("Loader.get: failed to load profile '"+t+"': "+i)}findByKey(t){for(let e=0;e<this.profiles.length;e++)if(this.profiles[e].key===t)return this.profiles[e].profile;return!1}findByURL(t){for(let e=0;e<this.profiles.length;e++)if(this.profiles[e].url===t)return this.profiles[e].profile;return!1}}},577:(t,e,a)=>{"use strict";const i=a(618),r=a(362),n=r.eIntent,s=r.eProfileType,o=a(153);function h(){try{if(process&&process.versions&&process.versions.node)return!0}catch(t){}return!1}function u(t){if(h()){const e=Buffer.from(t,"base64");return new Uint8Array(e)}let e=window.atob(t),a=e.length,i=new Uint8Array(a);for(let t=0;t<a;t++)i[t]=e.charCodeAt(t);return i}t.exports=class{constructor(t,e){this.loaded=!1,this.loadError=!1,this.type=0,this.name="",this.header={},this.intent=0,this.tags=[],this.description="",this.tagDescription="",this.copyright="",this.technology="",this.viewingConditions="",this.characterizationTarget="",this.mediaWhitePoint=null,this.PCSEncode=2,this.PCSDecode=2,this.PCS8BitScale=0,this.version=0,this.pcs=!1,this.blackPoint=null,this.luminance=null,this.chromaticAdaptation=null,this.virutalProfileUsesD50AdaptedPrimaries=!0,this.virtualProfileUsesD50AdaptedPrimaries=!0,this.unsuportedTags=[],this.unsupportedTags=this.unsuportedTags,this.Gray={kTRC:null,inv_kTRC:null},this.rgb={rTRC:null,rTRCInv:null,gTRC:null,gTRCInv:null,bTRC:null,bTRCInv:null,rXYZ:null,gXYZ:null,bXYZ:null},this.RGBMatrix={gamma:0,cRx:0,cRy:0,cGx:0,cGy:0,cBx:0,cBy:0},this.PCSWhitepoint=i.d50,this.outputChannels=0,this.lastError={err:0,text:"No Error"},this.B2D=[null,null,null,null],this.D2B=[null,null,null,null],this.A2B=[null,null,null],this.B2A=[null,null,null],this.absoluteAdaptationIn={Xa:1,Ya:1,Za:1},this.absoluteAdaptationOut={Xa:1,Ya:1,Za:1},t&&this.load(t,e)}loadPromise(t){return new Promise(((e,a)=>{this.load(t,(t=>{t?e(t):a(new Error("Profile failed to load"))}))}))}load(t,e){this.loaded=!1,this.loadError=!1,"[object Uint8Array]"===Object.prototype.toString.call(t)?this.loadBinary(t,e):"*"===t.substring(0,1)?this.loadVirtualProfile(t,e):"file:"===t.substring(0,5).toLowerCase()?this.loadFile(t,e):"data:"===t.substring(0,5).toLowerCase()?this.loadBase64(t,e):this.loadURL(t,e)}loadBinary(t,e,a){this.loaded=this.readICCProfile(t,a),this.loadError=!this.loaded,"function"==typeof e&&e(this)}loadFile(t,e){"file:"===t.substring(0,5).toLowerCase()&&(t=t.substring(5,t.length));var a=this.readBinaryFile(t);!1!==a?(this.loaded=this.readICCProfile(a),this.loadError=!this.loaded):(this.loadError=!0,this.loaded=!1),"function"==typeof e&&e(this)}loadBase64(t,e){"data:"===t.substring(0,5).toLowerCase()&&(t=t.substring(5,t.length));var a=u(t);this.loaded=this.readICCProfile(a),this.loadError=!this.loaded,"function"==typeof e&&e(this)}loadURL(t,e){var i=this;function r(t,a){i.lastError={err:""===a?0:-1,text:a},t?(i.loaded=i.readICCProfile(t),i.loadError=!i.loaded):(i.loaded=!1,i.loadError=!0),"function"==typeof e&&e(i)}h()?function(t,e){a(685).get(t,(t=>{if(t.statusCode<200||t.statusCode>=300)return e(!1,"Response status was "+t.statusCode);const a=[];t.on("data",(t=>{a.push(t)})),t.on("end",(()=>{const t=Buffer.concat(a);e(new Uint8Array(t),"")}))})).on("error",(t=>{e(!1,t.message)}))}(t,r):function(t,e){var a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){if(200===this.status){var t=a.response;if(t){var i=new Uint8Array(t);e(i,"")}else e(!1,"Invalid arrayBuffer")}else e(!1,"Server Status "+this.status)},a.ontimeout=function(){e(!1,"Timeout")},a.onerror=function(){e(!1,"XHR Error")},a.send()}(t,r)}loadVirtualProfile(t,e){"*"===t.substring(0,1)&&(t=t.substring(1,t.length)),this.loaded=this.createVirtualProfile(t),this.loadError=!this.loaded,"function"==typeof e&&e(this)}readBinaryFile(t){let e;if(function(){try{if(window.cep)return!0}catch(t){}return!1}()&&window.cep&&window.cep.fs&&window.cep.fs.readFile){let e=window.cep.fs.readFile(t,cep.encoding.Base64);return 0===e.err?u(e.data):(this.lastError={err:e.err,text:e.errorString=["NO_ERROR","ERR_UNKNOWN","ERR_INVALID_PARAMS","ERR_NOT_FOUND","ERR_CANT_READ","ERR_UNSUPPORTED_ENCODING","ERR_CANT_WRITE","ERR_OUT_OF_SPACE","ERR_NOT_FILE","ERR_NOT_DIRECTORY","ERR_FILE_EXISTS","UNABLE TO PARSE FILE","ERR_DIRECTORY_NOT_FOUND"][e.err]||"UNKNOWN ERROR "+e.err},!1)}if(h()){const i=a(231);try{e=i.readFileSync(t,{encoding:"base64"})}catch(t){return this.lastError={err:t,text:t.message},!1}return u(e)}throw new Error("readBinaryFile not supported in this environment")}createVirtualProfile(t){var e,a,r,n;switch(this.virtualProfileUsesD50AdaptedPrimaries!==this.virutalProfileUsesD50AdaptedPrimaries&&(this.virutalProfileUsesD50AdaptedPrimaries=this.virtualProfileUsesD50AdaptedPrimaries),this.outputChannels=3,this.version=4,this.pcs="XYZ",this.colorSpace="RGB",this.header={profileSize:0,cmmType:0,version:4,pClass:"mntr",space:"rgb",pcs:"XYZ",date:new Date,signature:"",platform:"",flags:0,attributes:0,intent:3,PCSilluminant:i.d50},String(t).replace(" ","").toLowerCase()){case"labd50":case"lab":return this.type=s.Lab,this.name=this.description="Lab D50 Profile",this.PCSWhitepoint=i.d50,this.mediaWhitePoint=i.d50,this.pcs="LAB",this.colorSpace="LAB",this.header={profileSize:0,cmmType:0,version:4,pClass:"abst",space:"Lab",pcs:"LAB",date:new Date,signature:"",platform:"",flags:0,attributes:0,intent:3,PCSilluminant:i.d50},!0;case"labd65":return this.type=s.Lab,this.name=this.description="Lab D65 Profile",this.PCSWhitepoint=i.d50,this.mediaWhitePoint=i.d65,this.pcs="LAB",this.colorSpace="LAB",this.header={profileSize:0,cmmType:0,version:4,pClass:"abst",space:"Lab",pcs:"LAB",date:new Date,signature:"",platform:"",flags:0,attributes:0,intent:3,PCSilluminant:i.d50},!0;case"srgb":return this.virutalProfileUsesD50AdaptedPrimaries?(e=i.xyY(.648431,.330856,.222491),a=i.xyY(.321152,.597871,.716888),r=i.xyY(.155886,.066044,.060621),n=i.d50):(e=i.xyY(.64,.33,.212656),a=i.xyY(.3,.6,.715158),r=i.xyY(.15,.06,.072186),n=i.d65),this.name="sRGB",this.description="RGB is a standard RGB color space created cooperatively by HP and Microsoft in 1996 for use on monitors, printers and the Internet<br><br>Note that sRGB's small Gamut is not suitable for graphic production.<br><br>Encompasses roughly 35% of the visible colors specified by the Lab color space",this.mediaWhitePoint=n,o(this,2.2,e,a,r,!0),!0;case"adobe1998":case"adobe":case"adobergb":case"adobe1998rgb":return this.virutalProfileUsesD50AdaptedPrimaries?(e=i.xyY(.648431,.330856,.311114),a=i.xyY(.230154,.701572,.625662),r=i.xyY(.155886,.066044,.063224),n=i.d50):(e=i.xyY(.64,.33,.297361),a=i.xyY(.21,.71,.627355),r=i.xyY(.15,.06,.075285),n=i.d65),this.name="Adobe RGB (1998)",this.description="Developed by Adobe Systems, Inc. in 1998. It was designed to encompass most of the colors achievable on CMYK color printers, but by using RGB primary colors on a device such as a computer display. The Adobe RGB (1998) improves upon the gamut of the sRGB color space, primarily in cyan-green hues<br>Encompasses roughly 50% of the visible colors specified by the Lab color space",this.mediaWhitePoint=n,o(this,2.2,e,a,r,!1),!0;case"apple":case"applergb":return this.virutalProfileUsesD50AdaptedPrimaries?(e=i.xyY(.634756,.340596,.255166),a=i.xyY(.301775,.597511,.672578),r=i.xyY(.162897,.079001,.072256),n=i.d50):(e=i.xyY(.625,.34,.244634),a=i.xyY(.28,.595,.672034),r=i.xyY(.155,.07,.083332),n=i.d65),this.name="Apple RGB",this.description='Apple RGB is based on the classic Apple 13" RGB monitor. Because of its popularity and similar Trinitronbased monitors that followed, many key publishing applications, including Adobe Photoshop and Illustrator, used it as the default RGB space in the past.<br>Encompasses roughly 33.5% of the visible colors specified by the Lab color space',this.mediaWhitePoint=n,o(this,2.2,e,a,r,!1),!0;case"colormatchrgb":case"colormatch":return e=i.xyY(.63,.34,.274884),a=i.xyY(.295,.605,.658132),r=i.xyY(.15,.075,.066985),this.name="ColorMatch RGB",this.description="An RGB profile with a D50 whitepoint used for prepress<br>Encompasses roughly 35.2% of the visible colors specified by the Lab color space",this.mediaWhitePoint=i.d50,o(this,1.8,e,a,r,!1),!0;case"prophoto":case"prophotorgb":return e=i.xyY(.7347,.2653,.28804),a=i.xyY(.1596,.8404,.711874),r=i.xyY(.0366,1e-4,86e-6),this.name="ProPhoto RGB",this.description="The ProPhoto RGB color space, also known as ROMM RGB (Reference Output Medium Metric), is an output referred RGB color space developed by Kodak. It offers an especially large gamut designed for use with photographic output in mind.<br>Encompasses roughly 91.2% of the visible colors specified by the Lab color space",this.mediaWhitePoint=i.d50,o(this,1.8,e,a,r,!1),!0;default:return this.lastError={err:100,text:"Unsupported Virtual Profile ["+t+"]"},!1}function o(t,e,a,r,n,o){t.type=s.RGBMatrix,t.PCSWhitepoint=i.d50,t.rgb.rXYZ=i.xyY2XYZ(a),t.rgb.gXYZ=i.xyY2XYZ(r),t.rgb.bXYZ=i.xyY2XYZ(n),t.RGBMatrix={gamma:e,issRGB:!0===o,cRx:a.x,cRy:a.y,cGx:r.x,cGy:r.y,cBx:n.x,cBy:n.y};var h={m00:t.RGBMatrix.cRx/t.RGBMatrix.cRy,m01:t.RGBMatrix.cGx/t.RGBMatrix.cGy,m02:t.RGBMatrix.cBx/t.RGBMatrix.cBy,m10:1,m11:1,m12:1,m20:(1-t.RGBMatrix.cRx-t.RGBMatrix.cRy)/t.RGBMatrix.cRy,m21:(1-t.RGBMatrix.cGx-t.RGBMatrix.cGy)/t.RGBMatrix.cGy,m22:(1-t.RGBMatrix.cBx-t.RGBMatrix.cBy)/t.RGBMatrix.cBy},u=i.invertMatrix(h),l=t.mediaWhitePoint.X*u.m00+t.mediaWhitePoint.Y*u.m01+t.mediaWhitePoint.Z*u.m02,m=t.mediaWhitePoint.X*u.m10+t.mediaWhitePoint.Y*u.m11+t.mediaWhitePoint.Z*u.m12,c=t.mediaWhitePoint.X*u.m20+t.mediaWhitePoint.Y*u.m21+t.mediaWhitePoint.Z*u.m22;t.RGBMatrix.matrixV4={m00:l*h.m00,m01:m*h.m01,m02:c*h.m02,m10:l*h.m10,m11:m*h.m11,m12:c*h.m12,m20:l*h.m20,m21:m*h.m21,m22:c*h.m22},t.RGBMatrix.matrixInv=i.invertMatrix(t.RGBMatrix.matrixV4),t.RGBMatrix.XYZMatrix={m00:t.rgb.rXYZ.X,m01:t.rgb.gXYZ.X,m02:t.rgb.bXYZ.X,m10:t.rgb.rXYZ.Y,m11:t.rgb.gXYZ.Y,m12:t.rgb.bXYZ.Y,m20:t.rgb.rXYZ.Z,m21:t.rgb.gXYZ.Z,m22:t.rgb.bXYZ.Z},t.RGBMatrix.XYZMatrixInv=i.invertMatrix(t.RGBMatrix.XYZMatrix)}}readICCProfile(t,e){h()&&t instanceof Buffer&&(t=new Uint8Array(t));var a=this,r=0;return(!e||-1!==(r=s(t,0,[73,67,67,95,80,82,79,70,73,76,69])))&&(-1!==s(t,r,[97,99,115,112])&&(!0===this.decodeFile(t)?(this.PCSWhitepoint=i.getWhitePointFromIlluminant(this.header.PCSilluminant),this.absoluteAdaptationIn={Xa:this.mediaWhitePoint.X/this.header.PCSilluminant.X,Ya:this.mediaWhitePoint.Y/this.header.PCSilluminant.Y,Za:this.mediaWhitePoint.Z/this.header.PCSilluminant.Z},this.absoluteAdaptationOut={Xa:this.header.PCSilluminant.X/this.mediaWhitePoint.X,Ya:this.header.PCSilluminant.Y/this.mediaWhitePoint.Y,Za:this.header.PCSilluminant.Z/this.mediaWhitePoint.Z},"RGB "===a.header.space&&null===a.A2B[n.relative]&&null===a.B2A[n.relative]&&a.rgb.gXYZ&&a.rgb.rXYZ&&a.rgb.bXYZ&&a.rgb.rTRC&&a.rgb.gTRC&&a.rgb.bTRC&&this.createRGBMatrix(),this.loaded=!0,!0):(this.loaded=!1,!1)));function s(t,e,a){for(var i=e;i<t.length-a.length;i++){for(var r=!0,n=0;n<a.length;n++)if(t[i+n]!==a[n]){r=!1;break}if(r)return i}return-1}}createRGBMatrix(){this.PCSWhitepoint=this.header.PCSilluminant;var t=i.d50,e=i.XYZ2xyY(i.adaptation(this.rgb.rXYZ,t,this.mediaWhitePoint),this.PCSWhitepoint),a=i.XYZ2xyY(i.adaptation(this.rgb.gXYZ,t,this.mediaWhitePoint),this.PCSWhitepoint),r=i.XYZ2xyY(i.adaptation(this.rgb.bXYZ,t,this.mediaWhitePoint),this.PCSWhitepoint);this.type=s.RGBMatrix,this.RGBMatrix={gamma:this.rgb.rTRC.gamma,issRGB:"sRGB"===this.name.substr(0,4),cRx:e.x,cRy:e.y,cGx:a.x,cGy:a.y,cBx:r.x,cBy:r.y},i.computeMatrix(this)}decodeHeader(t){var e={};e.profileSize=o.uint32(t,0),e.cmmType=o.chars(t,4,4),e.versionMajor=t[8];var a=t[9];e.version=e.versionMajor+"."+(a>>4&15)+"."+(15&a),e.pClass=o.chars(t,12,4),e.space=o.chars(t,16,4),e.pcs=o.chars(t,20,4);var i=o.uint16(t,24);return e.date=0===i?null:new Date(Date.UTC(i,o.uint16(t,26)-1,o.uint16(t,28),o.uint16(t,30),o.uint16(t,32),o.uint16(t,34))),e.signature=o.chars(t,36,4),e.platform=o.chars(t,40,4),e.flags=o.array(t,44,4),e.attributes=o.array(t,56,8),e.intent=o.uint32(t,64),e.PCSilluminant=o.XYZNumber(t,68),e}decodeTags(t){for(var e=[],a=o.uint32(t,128),i=132,r=0;r<a;r++)e.push({sig:o.chars(t,i,4),offset:o.uint32(t,i+4),length:o.uint32(t,i+8)}),i+=12;return e}decodeFile(t){if(this.header=this.decodeHeader(t),this.unsuportedTags=[],this.unsupportedTags=this.unsuportedTags,this.version=this.header.versionMajor,this.pcs=this.header.pcs.trim().toUpperCase(),this.colorSpace=this.header.space.trim().toUpperCase(),"LAB"!==this.pcs&&"XYZ"!==this.pcs)return this.lastError={err:100,text:"Unsupported PCS ["+this.pcs+"]"},!1;if(2!==this.version&&4!==this.version)return this.lastError={err:101,text:"Unsupported Profile Version ["+this.version+"]"},!1;switch(this.header.space){case"GRAY":this.outputChannels=1,this.type=s.Gray;break;case"2CLR":this.outputChannels=2,this.type=s.Duo;break;case"3CLR":case"CMY ":case"RGB ":this.outputChannels=3,this.type=s.RGBLut;break;case"4CLR":case"CMYK":this.outputChannels=4,this.type=s.CMYK;break;default:return this.lastError={err:110,text:"Unsupported Profile Colorspace ["+this.header.space+"]"},!1}this.tags=this.decodeTags(t);for(var e=0;e<this.tags.length;e++){var a=this.tags[e];switch(a.sig){case"rXYZ":this.rgb.rXYZ=o.XYZType(t,a.offset);break;case"gXYZ":this.rgb.gXYZ=o.XYZType(t,a.offset);break;case"bXYZ":this.rgb.bXYZ=o.XYZType(t,a.offset);break;case"rTRC":this.rgb.rTRC=o.curve(t,a.offset),this.rgb.rTRCInv=o.curve(t,a.offset,!0);break;case"gTRC":this.rgb.gTRC=o.curve(t,a.offset),this.rgb.gTRCInv=o.curve(t,a.offset,!0);break;case"bTRC":this.rgb.bTRC=o.curve(t,a.offset),this.rgb.bTRCInv=o.curve(t,a.offset,!0);break;case"kTRC":this.Gray.kTRC=o.curve(t,a.offset),this.Gray.inv_kTRC=o.curve(t,a.offset,!0);break;case"wtpt":this.mediaWhitePoint=o.XYZType(t,a.offset);break;case"A2B0":this.A2B[0]=o.lut(t,a.offset);break;case"A2B1":this.A2B[1]=o.lut(t,a.offset);break;case"A2B2":this.A2B[2]=o.lut(t,a.offset);break;case"B2A0":this.B2A[0]=o.lut(t,a.offset);break;case"B2A1":this.B2A[1]=o.lut(t,a.offset);break;case"B2A2":this.B2A[2]=o.lut(t,a.offset);break;case"desc":this.name=o.text(t,a.offset).text;break;case"cprt":this.copyright=o.text(t,a.offset).text;break;case"tech":this.technology=this.techSignatureString(o.chars(t,a.offset,4));break;case"vued":this.viewingConditions=o.text(t,a.offset);break;case"targ":this.characterizationTarget=o.text(t,a.offset);break;case"bkpt":this.blackPoint=o.XYZType(t,a.offset);break;case"lumi":this.luminance=o.XYZType(t,a.offset);break;case"chad":this.chromaticAdaptation=o.s15Array(t,a.offset,a.length);break;case"view":this.viewingConditions=o.viewingConditions(t,a.offset);break;case"gamt":case"calt":case"chrm":case"cicp":case"clro":case"clrt":case"ciis":case"dmnd":case"dmdd":case"meas":case"meta":case"ncl2":case"resp":case"rig0":case"pre0":case"pre1":case"pre2":case"pseq":case"psid":case"rig2":break;case"B2D0":this.B2D[0]=o.multiProcessElement(t,a.offset);break;case"B2D1":this.B2D[1]=o.multiProcessElement(t,a.offset);break;case"B2D2":this.B2D[2]=o.multiProcessElement(t,a.offset);break;case"B2D3":this.B2D[3]=o.multiProcessElement(t,a.offset);break;case"D2B0":this.D2B[0]=o.multiProcessElement(t,a.offset);break;case"D2B1":this.D2B[1]=o.multiProcessElement(t,a.offset);break;case"D2B2":this.D2B[2]=o.multiProcessElement(t,a.offset);break;case"D2B3":this.D2B[3]=o.multiProcessElement(t,a.offset);break;case"Info":this.info=o.text(t,a.offset);break;default:this.unsuportedTags.push(a)}}return null===this.B2A[n.perceptual]&&(this.B2A[n.perceptual]=this.B2A[n.relative]),null===this.B2A[n.saturation]&&(this.B2A[n.saturation]=this.B2A[n.perceptual]),null===this.A2B[n.perceptual]&&(this.A2B[n.perceptual]=this.A2B[n.relative]),null===this.A2B[n.saturation]&&(this.A2B[n.saturation]=this.A2B[n.perceptual]),"prtr"===this.header.pClass||"mntr"===this.header.pClass||"scnr"===this.header.pClass||"spac"===this.header.pClass||"abst"===this.header.pClass||(this.lastError={err:100,text:"profile class not "+this.header.pClass+" supported"},!1)}techSignatureString(t){for(var e=[{desc:"Film Scanner",sig:"fscn"},{desc:"Digital Camera",sig:"dcam"},{desc:"Reflective Scanner",sig:"rscn"},{desc:"Ink Jet Printer",sig:"ijet"},{desc:"Thermal Wax Printer",sig:"twax"},{desc:"Electrophotographic Printer",sig:"epho"},{desc:"Electrostatic Printer",sig:"esta"},{desc:"Dye Sublimation Printer",sig:"dsub"},{desc:"Photographic Paper Printer",sig:"rpho"},{desc:"Film Writer",sig:"fprn"},{desc:"Video Monitor",sig:"vidm"},{desc:"Video Camera",sig:"vidc"},{desc:"Projection Television",sig:"pjtv"},{desc:"Cathode Ray Tube Display",sig:"CRT "},{desc:"Passive Matrix Display",sig:"PMD "},{desc:"Active Matrix Display",sig:"AMD "},{desc:"Photo CD",sig:"KPCD"},{desc:"PhotoImageSetter",sig:"imgs"},{desc:"Gravure",sig:"grav"},{desc:"Offset Lithography",sig:"offs"},{desc:"Silkscreen",sig:"silk"},{desc:"Flexography",sig:"flex"}],a=0;a<e.length;a++)if(e[a].sig===t)return e[a].desc;return"<Unknown Technology Signature>"}}},706:(t,e,a)=>{"use strict";var i=a(618),r=[{name:"A",description:"# CIE standard Illuminant A, a typical tungsten-filament light with relative spectral power distribution of 2856K, at 1nm resolution",startnm:300,endnm:830,step:1,range:1e3,temp:2856.1,whitePoint:i.a,data:[.930483,.967643,1.00597,1.04549,1.08623,1.12821,1.17147,1.21602,1.26188,1.3091,1.35769,1.40768,1.4591,1.51198,1.56633,1.62219,1.67959,1.73855,1.7991,1.86127,1.92508,1.99057,2.05776,2.12667,2.19734,2.2698,2.34406,2.42017,2.49814,2.57801,2.65981,2.74355,2.82928,2.91701,3.00678,3.09861,3.19253,3.28857,3.38676,3.48712,3.58968,3.69447,3.80152,3.91085,4.0225,4.13648,4.25282,4.37156,4.49272,4.61631,4.74238,4.87095,5.00204,5.13568,5.27189,5.4107,5.55213,5.69622,5.84298,5.99244,6.14462,6.29955,6.45724,6.61774,6.78105,6.9472,7.11621,7.28811,7.46292,7.64066,7.82135,8.00501,8.19167,8.38134,8.57404,8.7698,8.96864,9.17056,9.37561,9.58378,9.7951,10.0096,10.2273,10.4481,10.6722,10.8996,11.1302,11.364,11.6012,11.8416,12.0853,12.3324,12.5828,12.8366,13.0938,13.3543,13.6182,13.8855,14.1563,14.4304,14.708,14.9891,15.2736,15.5616,15.853,16.148,16.4464,16.7484,17.0538,17.3628,17.6753,17.9913,18.3108,18.6339,18.9605,19.2907,19.6244,19.9617,20.3026,20.647,20.995,21.3465,21.7016,22.0603,22.4225,22.7883,23.1577,23.5307,23.9072,24.2873,24.6709,25.0581,25.4489,25.8432,26.2411,26.6425,27.0475,27.456,27.8681,28.2836,28.7027,29.1253,29.5515,29.9811,30.4142,30.8508,31.2909,31.7345,32.1815,32.632,33.0859,33.5432,34.004,34.4682,34.9358,35.4068,35.8811,36.3588,36.8399,37.3243,37.8121,38.3031,38.7975,39.2951,39.796,40.3002,40.8076,41.3182,41.832,42.3491,42.8693,43.3926,43.9192,44.4488,44.9816,45.5174,46.0563,46.5983,47.1433,47.6913,48.2423,48.7963,49.3533,49.9132,50.476,51.0418,51.6104,52.1818,52.7561,53.3332,53.9132,54.4958,55.0813,55.6694,56.2603,56.8539,57.4501,58.0489,58.6504,59.2545,59.8611,60.4703,61.082,61.6962,62.3128,62.932,63.5535,64.1775,64.8038,65.4325,66.0635,66.6968,67.3324,67.9702,68.6102,69.2525,69.8969,70.5435,71.1922,71.843,72.4959,73.1508,73.8077,74.4666,75.1275,75.7903,76.4551,77.1217,77.7902,78.4605,79.1326,79.8065,80.4821,81.1595,81.8386,82.5193,83.2017,83.8856,84.5712,85.2584,85.947,86.6372,87.3288,88.0219,88.7165,89.4124,90.1097,90.8083,91.5082,92.2095,92.912,93.6157,94.3206,95.0267,95.7339,96.4423,97.1518,97.8623,98.5739,99.2864,100,100.715,101.43,102.146,102.864,103.582,104.301,105.02,105.741,106.462,107.184,107.906,108.63,109.354,110.078,110.803,111.529,112.255,112.982,113.709,114.436,115.164,115.893,116.622,117.351,118.08,118.81,119.54,120.27,121.001,121.731,122.462,123.193,123.924,124.655,125.386,126.118,126.849,127.58,128.312,129.043,129.774,130.505,131.236,131.966,132.697,133.427,134.157,134.887,135.617,136.346,137.075,137.804,138.532,139.26,139.988,140.715,141.441,142.167,142.893,143.618,144.343,145.067,145.79,146.513,147.235,147.957,148.678,149.398,150.117,150.836,151.554,152.271,152.988,153.704,154.418,155.132,155.845,156.558,157.269,157.979,158.689,159.397,160.104,160.811,161.516,162.221,162.924,163.626,164.327,165.028,165.726,166.424,167.121,167.816,168.51,169.203,169.895,170.586,171.275,171.963,172.65,173.335,174.019,174.702,175.383,176.063,176.741,177.419,178.094,178.769,179.441,180.113,180.783,181.451,182.118,182.783,183.447,184.109,184.77,185.429,186.087,186.743,187.397,188.05,188.701,189.35,189.998,190.644,191.288,191.931,192.572,193.211,193.849,194.484,195.118,195.75,196.381,197.009,197.636,198.261,198.884,199.506,200.125,200.743,201.359,201.972,202.584,203.195,203.803,204.409,205.013,205.616,206.216,206.815,207.411,208.006,208.599,209.189,209.778,210.365,210.949,211.532,212.112,212.691,213.268,213.842,214.415,214.985,215.553,216.12,216.684,217.246,217.806,218.364,218.92,219.473,220.025,220.574,221.122,221.667,222.21,222.751,223.29,223.826,224.361,224.893,225.423,225.951,226.477,227,227.522,228.041,228.558,229.073,229.585,230.096,230.604,231.11,231.614,232.115,232.615,233.112,233.606,234.099,234.589,235.078,235.564,236.047,236.529,237.008,237.485,237.959,238.432,238.902,239.37,239.836,240.299,240.76,241.219,241.675,242.13,242.582,243.031,243.479,243.924,244.367,244.808,245.246,245.682,246.116,246.548,246.977,247.404,247.829,248.251,248.671,249.089,249.505,249.918,250.329,250.738,251.144,251.548,251.95,252.35,252.747,253.142,253.535,253.925,254.314,254.7,255.083,255.465,255.844,256.221,256.595,256.968,257.338,257.706,258.071,258.434,258.795,259.154,259.511,259.865,260.217,260.567,260.914,261.259,261.602]},{name:"C",description:"CIE deprecated standard Illuminant C, approximately 6774K, at 5nm resolution",startnm:380,endnm:780,step:5,range:1e3,temp:6769.2,whitePoint:i.c,data:[33,39.92,47.4,55.17,63.3,71.81,80.6,89.53,98.1,105.8,112.4,117.75,121.5,123.45,124,123.6,123.1,123.3,123.8,124.09,123.9,122.92,120.7,116.9,112.1,106.98,102.3,98.81,96.9,96.78,98,99.94,102.1,103.95,105.2,105.67,105.3,104.11,102.3,100.15,97.8,95.43,93.2,91.22,89.7,88.83,88.4,88.19,88.1,88.06,88,87.86,87.8,87.99,88.2,88.2,87.9,87.22,86.3,85.3,84,82.21,80.2,78.24,76.3,74.36,72.4,70.4,68.3,66.3,64.4,62.8,61.5,60.2,59.2,58.5,58.1,58,58.2,58.5,59.1]},{name:"D50",description:"CIE standard D50 illuminator, approximating light at the horizon at 5nm resolution",isDefault:!0,startnm:380,endnm:780,step:5,range:1e3,temp:5e3,whitePoint:i.d50,data:[24.5,27.2,29.8,39.6,49.3,52.9,56.5,58.3,60,58.9,57.8,66.3,74.8,81,87.2,88.9,90.6,91,91.4,93.3,95.2,93.6,92,93.9,95.7,96.2,96.6,96.9,97.1,99.6,102.1,101.5,100.8,101.6,102.3,101.2,100,98.9,97.7,98.3,98.9,96.2,93.5,95.6,97.7,98.5,99.3,99.2,99,97.4,95.7,97.3,98.8,97.3,95.7,97,98.2,100.6,103,101.1,99.1,93.3,87.4,89.5,91.6,92.3,92.9,84.9,76.8,81.7,86.6,89.6,92.6,85.4,78.2,68,57.7,70.3,82.9,80.6,78.3]},{name:"D55",description:"CIE standard Illuminant D55, mid-morning/mid-afternoon daylight, at 5nm resolution",startnm:380,endnm:780,step:5,range:1e3,temp:5500,whitePoint:i.d55,data:[32.58,35.34,38.09,49.52,60.95,64.75,68.55,70.07,71.58,69.75,67.91,76.76,85.61,91.8,97.99,99.23,100.46,100.19,99.91,101.33,102.74,100.41,98.08,99.38,100.68,100.69,100.7,100.34,99.99,102.1,104.21,103.16,102.1,102.53,102.97,101.48,100,98.61,97.22,97.48,97.75,94.59,91.43,92.93,94.42,94.78,95.14,94.68,94.22,92.33,90.45,91.39,92.33,90.59,88.85,89.59,90.32,92.13,93.95,91.95,89.96,84.82,79.68,81.26,82.84,83.84,84.84,77.54,70.24,74.77,79.3,82.15,84.99,78.44,71.88,62.34,52.79,64.36,75.93,73.87,71.82]},{name:"D65",description:"CIE standard Illuminant D65, at 5nm resolution",startnm:300,endnm:830,step:5,range:1e3,temp:6500,whitePoint:i.d65,data:[.0341,1.6643,3.2945,11.7652,20.236,28.6447,37.0535,38.5011,39.9488,42.4302,44.9117,45.775,46.6383,49.3637,52.0891,51.0323,49.9755,52.3118,54.6482,68.7015,82.7549,87.1204,91.486,92.4589,93.4318,90.057,86.6823,95.7736,104.865,110.936,117.008,117.41,117.812,116.336,114.861,115.392,115.923,112.367,108.811,109.082,109.354,108.578,107.802,106.296,104.79,106.239,107.689,106.047,104.405,104.225,104.046,102.023,100,98.1671,96.3342,96.0611,95.788,92.2368,88.6856,89.3459,90.0062,89.8026,89.5991,88.6489,87.6987,85.4936,83.2886,83.4939,83.6992,81.863,80.0268,80.1207,80.2146,81.2462,82.2778,80.281,78.2842,74.0027,69.7213,70.6652,71.6091,72.979,74.349,67.9765,61.604,65.7448,69.8856,72.4863,75.087,69.3398,63.5927,55.0054,46.4182,56.6118,66.8054,65.0941,63.3828,63.8434,64.304,61.8779,59.4519,55.7054,51.959,54.6998,57.4406,58.8765,60.3125]}],n=[{name:"2",description:"CIE 1931 standard 2° observer tristimulus response values",isDefault:!0,startnm:360,endnm:830,step:1,range:1e3,X:[1299e-7,1458e-7,1638e-7,184e-6,2067e-7,2321e-7,2607e-7,2931e-7,3294e-7,3699e-7,4149e-7,4642e-7,519e-6,5819e-7,6552e-7,7416e-7,845e-6,9645e-7,.0010949,.0012312,.001368,.0015021,.0016423,.0018024,.0019958,.002236,.0025354,.0028926,.0033008,.0037532,.004243,.0047624,.00533,.0059787,.0067411,.00765,.0087514,.0100289,.0114217,.012869,.01431,.0157044,.0171474,.0187812,.020748,.02319,.0262074,.0297825,.0338809,.0384682,.04351,.0489956,.0550226,.0617188,.069212,.07763,.0869581,.0971767,.1084063,.1207672,.13438,.1493582,.1653957,.1819831,.198611,.21477,.2301868,.2448797,.2587773,.2718079,.2839,.2949438,.3048965,.3137873,.3216454,.3285,.3343513,.3392101,.3431213,.3461296,.34828,.3495999,.3501474,.350013,.349287,.34806,.3463733,.3442624,.3418088,.3390941,.3362,.3331977,.3300411,.3266357,.3228868,.3187,.3140251,.308884,.3032904,.2972579,.2908,.2839701,.2767214,.2689178,.2604227,.2511,.2408475,.2298512,.2184072,.2068115,.19536,.1842136,.1733273,.1626881,.1522833,.1421,.1321786,.1225696,.1132752,.1042979,.09564,.0872996,.079308,.0717178,.064581,.05795,.0518621,.0462815,.0411509,.0364128,.03201,.0279172,.0241444,.020687,.0175404,.0147,.0121618,.00992,.0079672,.0062963,.0049,.0037772,.0029453,.0024249,.0022363,.0024,.0029255,.0038366,.0051748,.0069821,.0093,.0121495,.0155359,.0194775,.0239928,.0291,.0348149,.0411202,.047985,.0553786,.06327,.071635,.0804622,.08974,.0994565,.1096,.1201674,.1311145,.1423679,.1538542,.1655,.1772571,.18914,.2011694,.2133658,.2257499,.2383209,.2510668,.2639922,.2771017,.2904,.3038912,.3175726,.3314384,.3454828,.3597,.3740839,.3886396,.4033784,.4183115,.4334499,.4487953,.464336,.480064,.4959713,.5120501,.5282959,.5446916,.5612094,.5778215,.5945,.6112209,.6279758,.6447602,.6615697,.6784,.6952392,.7120586,.7288284,.7455188,.7621,.7785432,.7948256,.8109264,.8268248,.8425,.8579325,.8730816,.8878944,.9023181,.9163,.9297995,.9427984,.9552776,.9672179,.9786,.9893856,.9995488,1.0090892,1.0180064,1.0263,1.0339827,1.040986,1.047188,1.0524667,1.0567,1.0597944,1.0617992,1.0628068,1.0629096,1.0622,1.0607352,1.0584436,1.0552244,1.0509768,1.0456,1.0390369,1.0313608,1.0226662,1.0130477,1.0026,.9913675,.9793314,.9664916,.9528479,.9384,.923194,.907244,.890502,.87292,.8544499,.835084,.814946,.794186,.772954,.7514,.7295836,.7075888,.6856022,.6638104,.6424,.6215149,.6011138,.5811052,.5613977,.5419,.5225995,.5035464,.4847436,.4661939,.4479,.4298613,.412098,.394644,.3775333,.3608,.3444563,.3285168,.3130192,.2980011,.2835,.2695448,.2561184,.2431896,.2307272,.2187,.2070971,.1959232,.1851708,.1748323,.1649,.1553667,.14623,.13749,.1291467,.1212,.1136397,.106465,.0996904,.0933306,.0874,.081901,.0768043,.0720771,.0676866,.0636,.0598069,.0562822,.052971,.0498186,.04677,.0437841,.0408754,.0380726,.0354046,.0329,.0305642,.0283806,.0263448,.0244528,.0227,.0210843,.0195999,.0182373,.0169872,.01584,.0147906,.0138313,.0129487,.0121292,.0113592,.0106294,.0099388,.0092884,.0086789,.0081109,.0075824,.0070887,.0066273,.0061954,.0057903,.0054098,.0050526,.0047175,.0044035,.0041095,.0038339,.0035757,.0033343,.0031091,.0028993,.0027043,.002523,.0023542,.0021966,.0020492,.001911,.0017814,.0016601,.0015465,.00144,.00134,.0012463,.0011585,.0010764,9999e-7,9287e-7,8624e-7,8008e-7,7434e-7,6901e-7,6405e-7,5945e-7,5519e-7,5124e-7,476e-6,4425e-7,4115e-7,383e-6,3566e-7,3323e-7,3098e-7,2889e-7,2695e-7,2516e-7,2348e-7,2192e-7,2045e-7,1908e-7,1781e-7,1662e-7,155e-6,1446e-7,1349e-7,1259e-7,1174e-7,1096e-7,1022e-7,9539e-8,8902e-8,8308e-8,7751e-8,7231e-8,6746e-8,6293e-8,5871e-8,5477e-8,511e-7,4768e-8,4449e-8,4151e-8,3873e-8,3614e-8,3372e-8,3146e-8,2935e-8,2738e-8,2552e-8,2379e-8,2218e-8,2067e-8,1927e-8,1797e-8,1675e-8,1562e-8,1456e-8,1357e-8,1265e-8,118e-7,11e-6,1025e-8,956e-8,8912e-9,8308e-9,7746e-9,7221e-9,6732e-9,6276e-9,5851e-9,5455e-9,5086e-9,4741e-9,442e-8,4121e-9,3842e-9,3582e-9,3339e-9,3113e-9,2902e-9,2706e-9,2523e-9,2352e-9,2192e-9,2044e-9,1905e-9,1777e-9,1656e-9,1544e-9,1439e-9,1342e-9,1251e-9],Y:[3917e-9,4394e-9,493e-8,5532e-9,6208e-9,6965e-9,7813e-9,8767e-9,984e-8,1104e-8,1239e-8,1389e-8,1556e-8,1744e-8,1958e-8,2202e-8,2484e-8,2804e-8,3153e-8,3522e-8,39e-6,4283e-8,4691e-8,5159e-8,5718e-8,64e-6,7234e-8,8221e-8,9351e-8,1061e-7,12e-5,135e-6,1515e-7,1702e-7,1918e-7,217e-6,2469e-7,2812e-7,3185e-7,3573e-7,396e-6,4337e-7,473e-6,5179e-7,5722e-7,64e-5,7246e-7,8255e-7,9412e-7,.0010699,.00121,.0013621,.0015308,.0017204,.0019353,.00218,.0024548,.002764,.0031178,.0035264,.004,.0045462,.0051593,.0058293,.0065462,.0073,.0080865,.0089087,.0097677,.0106644,.0116,.0125732,.0135827,.0146297,.0157151,.01684,.0180074,.0192145,.0204539,.0217182,.023,.0242946,.0256102,.0269586,.0283513,.0298,.0313108,.0328837,.0345211,.0362257,.038,.0398467,.041768,.043766,.0458427,.048,.0502437,.052573,.0549806,.0574587,.06,.062602,.0652775,.0680421,.0709111,.0739,.077016,.0802664,.0836668,.0872328,.09098,.0949176,.0990458,.1033674,.1078846,.1126,.117532,.1226744,.1279928,.1334528,.13902,.1446764,.1504693,.1564619,.1627177,.1693,.1762431,.1835581,.1912735,.199418,.20802,.2171199,.2267345,.2368571,.2474812,.2586,.2701849,.2822939,.2950505,.308578,.323,.3384021,.3546858,.3716986,.3892875,.4073,.4256299,.4443096,.4633944,.4829395,.503,.5235693,.544512,.56569,.5869653,.6082,.6293456,.6503068,.6708752,.6908424,.71,.7281852,.7454636,.7619694,.7778368,.7932,.8081104,.8224962,.8363068,.8494916,.862,.8738108,.8849624,.8954936,.9054432,.9148501,.9237348,.9320924,.9399226,.9472252,.954,.9602561,.9660074,.9712606,.9760225,.9803,.9840924,.9874182,.9903128,.9928116,.9949501,.9967108,.9980983,.999112,.9997482,1,.9998567,.9993046,.9983255,.9968987,.995,.9926005,.9897426,.9864444,.9827241,.9786,.9740837,.9691712,.9638568,.9581349,.952,.9454504,.9384992,.9311628,.9234576,.9154,.9070064,.8982772,.8892048,.8797816,.87,.8598613,.849392,.838622,.8275813,.8163,.8047947,.793082,.781192,.7691547,.757,.7447541,.7324224,.7200036,.7074965,.6949,.6822192,.6694716,.6566744,.6438448,.631,.6181555,.6053144,.5924756,.5796379,.5668,.5539611,.5411372,.5283528,.5156323,.503,.4904688,.4780304,.4656776,.4534032,.4412,.42908,.417036,.405032,.393032,.381,.3689184,.3568272,.3447768,.3328176,.321,.3093381,.2978504,.2865936,.2756245,.265,.2547632,.2448896,.2353344,.2260528,.217,.2081616,.1995488,.1911552,.1829744,.175,.1672235,.1596464,.1522776,.1451259,.1382,.1315003,.1250248,.1187792,.1127691,.107,.1014762,.0961886,.091123,.0862649,.0816,.0771206,.0728255,.0687101,.0647698,.061,.0573962,.053955,.0506738,.0475497,.04458,.0417587,.039085,.0365638,.0342005,.032,.0299626,.0280766,.0263294,.0247081,.0232,.0218008,.0205011,.0192811,.0181207,.017,.0159038,.0148372,.0138107,.0128348,.01192,.0110683,.0102734,.0095333,.0088462,.00821,.0076238,.0070854,.0065915,.0061385,.005723,.0053431,.0049958,.0046764,.0043801,.004102,.0038385,.0035891,.0033542,.0031341,.002929,.0027381,.0025599,.0023932,.0022373,.002091,.0019536,.0018246,.0017036,.0015902,.001484,.0013845,.0012913,.0012041,.0011227,.001047,9766e-7,9111e-7,8501e-7,7932e-7,74e-5,6901e-7,6433e-7,5995e-7,5585e-7,52e-5,4839e-7,4501e-7,4183e-7,3887e-7,3611e-7,3354e-7,3114e-7,2892e-7,2685e-7,2492e-7,2313e-7,2147e-7,1993e-7,185e-6,1719e-7,1598e-7,1486e-7,1383e-7,1288e-7,12e-5,1119e-7,1043e-7,9734e-8,9085e-8,848e-7,7915e-8,7386e-8,6892e-8,643e-7,6e-5,5598e-8,5223e-8,4872e-8,4545e-8,424e-7,3956e-8,3692e-8,3445e-8,3215e-8,3e-5,2799e-8,2611e-8,2436e-8,2272e-8,212e-7,1978e-8,1845e-8,1722e-8,1606e-8,1499e-8,1399e-8,1305e-8,1218e-8,1136e-8,106e-7,9886e-9,9217e-9,8592e-9,8009e-9,7466e-9,696e-8,6488e-9,6049e-9,5639e-9,5258e-9,4902e-9,457e-8,426e-8,3972e-9,3703e-9,3452e-9,3218e-9,3e-6,2797e-9,2608e-9,2431e-9,2267e-9,2113e-9,197e-8,1837e-9,1712e-9,1596e-9,1488e-9,1387e-9,1293e-9,1206e-9,1124e-9,1048e-9,9.771e-7,9.109e-7,8.493e-7,7.917e-7,7.381e-7,6.881e-7,6.415e-7,5.981e-7,5.576e-7,5.198e-7,4.846e-7,4.518e-7],Z:[6061e-7,6809e-7,7651e-7,86e-5,9666e-7,.001086,.0012206,.0013727,.0015436,.0017343,.001946,.0021778,.0024358,.002732,.0030781,.003486,.0039752,.0045409,.0051583,.0058029,.00645,.0070832,.0077455,.0085012,.0094145,.01055,.0119658,.0136559,.0155881,.0177302,.02005,.0225114,.0252029,.0282797,.031897,.03621,.0414377,.0475037,.0541199,.060998,.06785,.0744863,.0813616,.0891536,.0985405,.1102,.1246133,.1417017,.1613035,.1832568,.2074,.2336921,.2626114,.2947746,.3307985,.3713,.4162091,.4654642,.5196948,.5795303,.6456,.7184838,.7967133,.8778459,.959439,1.0390501,1.1153673,1.1884971,1.2581233,1.3239296,1.3856,1.4426352,1.4948035,1.5421903,1.5848807,1.62296,1.6564048,1.6852959,1.7098745,1.7303821,1.74706,1.7600446,1.7696233,1.7762637,1.7804334,1.7826,1.7829682,1.7816998,1.7791982,1.7758671,1.77211,1.7682589,1.764039,1.7589438,1.7524663,1.7441,1.7335595,1.7208581,1.7059369,1.6887372,1.6692,1.6475287,1.6234127,1.5960223,1.564528,1.5281,1.4861114,1.4395215,1.3898799,1.3387362,1.28764,1.2374223,1.1878243,1.1387611,1.090148,1.0419,.9941976,.9473473,.9014531,.8566193,.8129501,.7705173,.7294448,.6899136,.6521049,.6162,.5823286,.5504162,.5203376,.4919673,.46518,.4399246,.4161836,.3938822,.3729459,.3533,.3348578,.3175521,.3013375,.2861686,.272,.2588171,.2464838,.2347718,.2234533,.2123,.2011692,.1901196,.1792254,.1685608,.1582,.1481383,.1383758,.1289942,.1200751,.1117,.1039048,.0966675,.0899827,.0838453,.07825,.073209,.0686782,.0645678,.0607884,.05725,.0539044,.0507466,.0477528,.0448986,.04216,.0395073,.0369356,.0344584,.0320887,.02984,.0277118,.0256944,.0237872,.0219893,.0203,.0187181,.0172404,.0158636,.0145846,.0134,.0123072,.0113019,.0103779,.0095293,.00875,.0080352,.0073816,.0067854,.0062428,.00575,.0053036,.0048998,.0045342,.0042024,.0039,.0036232,.0033706,.0031414,.0029348,.00275,.0025852,.0024386,.0023094,.0021968,.0021,.0020177,.0019482,.0018898,.0018409,.0018,.0017663,.0017378,.0017112,.0016831,.00165,.0016101,.0015644,.0015136,.0014585,.0014,.0013367,.00127,.001205,.0011467,.0011,.0010688,.0010494,.0010356,.0010212,.001,9686e-7,9299e-7,8869e-7,8426e-7,8e-4,761e-6,7237e-7,6859e-7,6454e-7,6e-4,5479e-7,4916e-7,4354e-7,3835e-7,34e-5,3073e-7,2832e-7,2654e-7,2518e-7,24e-5,2295e-7,2206e-7,212e-6,2022e-7,19e-5,1742e-7,1556e-7,136e-6,1169e-7,1e-4,8613e-8,746e-7,65e-6,5693e-8,5e-5,4416e-8,3948e-8,3572e-8,3264e-8,3e-5,2765e-8,2556e-8,2364e-8,2181e-8,2e-5,1813e-8,162e-7,142e-7,1213e-8,1e-5,7733e-9,54e-7,32e-7,1333e-9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{name:"10",description:"CIE 1964 10° standard observer tristimulus response values",startnm:360,endnm:830,step:1,range:1e3,X:[122e-9,185e-9,279e-9,417e-9,621e-9,919e-9,1352e-9,1977e-9,2872e-9,415e-8,5959e-9,8506e-9,12069e-9,17023e-9,23868e-9,33266e-9,46087e-9,63472e-9,86892e-9,118246e-9,159952e-9,21508e-8,28749e-8,38199e-8,50455e-8,66244e-8,8645e-7,.0011215,.00144616,.00185359,.0023616,.0029906,.0037645,.0047102,.0058581,.0072423,.0088996,.0108709,.0131989,.0159292,.0191097,.022788,.027011,.031829,.037278,.0434,.050223,.057764,.066038,.075033,.084736,.095041,.105836,.117066,.128682,.140638,.152893,.165416,.178191,.191214,.204492,.21765,.230267,.242311,.253793,.264737,.275195,.285301,.295143,.304869,.314679,.324355,.33357,.342243,.350312,.357719,.364482,.370493,.375727,.380158,.383734,.386327,.387858,.388396,.387978,.386726,.384696,.382006,.378709,.374915,.370702,.366089,.361045,.355518,.349486,.342957,.335893,.328284,.32015,.311475,.302273,.292858,.283502,.274044,.264263,.254085,.243392,.232187,.220488,.208198,.195618,.183034,.170222,.157348,.14465,.132349,.120584,.109456,.099042,.089388,.080507,.072034,.06371,.055694,.048117,.041072,.034642,.028896,.023876,.019628,.016172,.0133,.010759,.008542,.006661,.005132,.003982,.003239,.002934,.003114,.003816,.005095,.006936,.009299,.012147,.015444,.019156,.02325,.02769,.032444,.037465,.042956,.049114,.05592,.063349,.071358,.079901,.088909,.098293,.107949,.117749,.127839,.13845,.149516,.161041,.172953,.185209,.197755,.210538,.22346,.236491,.249633,.262972,.276515,.290269,.304213,.318361,.332705,.347232,.361926,.376772,.391683,.406594,.421539,.436517,.451584,.466782,.482147,.497738,.513606,.529826,.54644,.563426,.580726,.59829,.616053,.633948,.651901,.669824,.687632,.705224,.722773,.740483,.758273,.776083,.793832,.811436,.828822,.845879,.862525,.878655,.894208,.909206,.923672,.937638,.951162,.964283,.977068,.98959,1.002,1.014,1.026,1.039,1.051,1.063,1.074,1.085,1.095,1.104,1.112,1.119,1.124,1.128,1.131,1.133,1.134,1.134,1.133,1.131,1.128,1.124,1.119,1.113,1.106,1.098,1.089,1.079,1.068,1.057,1.044,1.03,1.016,1.001,.98479,.96808,.95074,.9328,.91434,.89539,.87603,.856297,.83635,.81629,.79605,.77561,.75493,.73399,.71278,.69129,.66952,.647467,.62511,.60252,.57989,.55737,.53511,.51324,.49186,.47108,.45096,.431567,.41287,.39475,.37721,.36019,.34369,.32769,.31217,.29711,.2825,.268329,.25459,.2413,.22848,.21614,.2043,.19295,.18211,.17177,.16192,.152568,.14367,.1352,.12713,.11948,.11221,.10531,.098786,.09261,.086773,.0812606,.076048,.071114,.066454,.062062,.05793,.05405,.050412,.047006,.043823,.0408508,.038072,.035468,.033031,.030753,.028623,.026635,.024781,.023052,.021441,.0199413,.018544,.017241,.016027,.014896,.013842,.012862,.011949,.0111,.010311,.00957688,.008894,.0082581,.0076664,.0071163,.0066052,.0061306,.0056903,.0052819,.0049033,.00455263,.0042275,.0039258,.0036457,.0033859,.0031447,.0029208,.002713,.0025202,.0023411,.00217496,.0020206,.0018773,.0017441,.0016205,.0015057,.0013992,.0013004,.0012087,.0011236,.00104476,97156e-8,9036e-7,84048e-8,78187e-8,72745e-8,6769e-7,62996e-8,58637e-8,54587e-8,508258e-9,4733e-7,4408e-7,41058e-8,38249e-8,35638e-8,33211e-8,30955e-8,28858e-8,26909e-8,250969e-9,23413e-8,21847e-8,20391e-8,19035e-8,17773e-8,16597e-8,15502e-8,1448e-7,13528e-8,12639e-8,1181e-7,11037e-8,10315e-8,96427e-9,90151e-9,84294e-9,7883e-8,73729e-9,68969e-9,64526e-9,60376e-9,565e-7,5288e-8,49498e-9,46339e-9,43389e-9,40634e-9,3806e-8,35657e-9,33412e-9,31315e-9,29355e-9,27524e-9,25811e-9,24209e-9,22711e-9,21308e-9,19994e-9,18764e-9,17612e-9,16532e-9,15521e-9,14574e-9,13686e-9,12855e-9,12075e-9,11345e-9,10659e-9,10017e-9,9414e-9,8848e-9,8317e-9,7819e-9,7352e-9,6913e-9,6502e-9,6115e-9,5753e-9,5413e-9,5093e-9,4794e-9,4512e-9,4248e-9,4e-6,3767e-9,3548e-9,3342e-9,3148e-9,2966e-9,2795e-9,2634e-9,2483e-9,2341e-9,2208e-9,2082e-9,1964e-9,1852e-9,1746e-9,1647e-9,1553e-9],Y:[13e-9,2e-8,31e-9,46e-9,68e-9,101e-9,148e-9,216e-9,314e-9,454e-9,651e-9,929e-9,1318e-9,1857e-9,2602e-9,3625e-9,5019e-9,6907e-9,9449e-9,12848e-9,17364e-9,23327e-9,3115e-8,4135e-8,5456e-8,7156e-8,933e-7,12087e-8,15564e-8,1992e-7,2534e-7,3202e-7,4024e-7,5023e-7,6232e-7,7685e-7,9417e-7,.0011478,.0013903,.001674,.0020044,.002386,.002822,.003319,.00388,.004509,.005209,.005985,.006833,.007757,.008756,.009816,.010918,.012058,.013237,.014456,.015717,.017025,.018399,.019848,.021391,.022992,.024598,.026213,.027841,.029497,.031195,.032927,.034738,.036654,.038676,.040792,.042946,.045114,.047333,.049602,.051934,.054337,.056822,.059399,.062077,.064737,.067285,.069764,.072218,.074704,.077272,.079979,.082874,.086,.089456,.092947,.096275,.099535,.102829,.106256,.109901,.113835,.118167,.122932,.128201,.133457,.138323,.143042,.147787,.152761,.158102,.163941,.170362,.177425,.18519,.193025,.200313,.207156,.213644,.21994,.22617,.232467,.239025,.245997,.253589,.261876,.270643,.279645,.288694,.297665,.306469,.315035,.323335,.331366,.339133,.34786,.358326,.370001,.382464,.395379,.408482,.421588,.434619,.447601,.460777,.47434,.4882,.50234,.51674,.53136,.54619,.56118,.57629,.5915,.606741,.62215,.63783,.65371,.66968,.68566,.70155,.71723,.73257,.74746,.761757,.77534,.78822,.80046,.81214,.82333,.83412,.8446,.85487,.86504,.875211,.88537,.89537,.90515,.91465,.92381,.93255,.94081,.94852,.9556,.961988,.96754,.97223,.97617,.97946,.9822,.98452,.98652,.98832,.99002,.991761,.99353,.99523,.99677,.99809,.99911,.99977,1,.99971,.99885,.99734,.99526,.99274,.98975,.9863,.98238,.97798,.97311,.96774,.96189,.955552,.948601,.940981,.932798,.924158,.915175,.905954,.896608,.887249,.877986,.868934,.860164,.851519,.842963,.834393,.825623,.816764,.807544,.797947,.787893,.777405,.76649,.755309,.743845,.73219,.720353,.708281,.696055,.683621,.671048,.658341,.645545,.632718,.619815,.606887,.593878,.580781,.567653,.55449,.541228,.527963,.514634,.501363,.488124,.474935,.461834,.448823,.435917,.423153,.410526,.398057,.385835,.373951,.362311,.350863,.339554,.328309,.317118,.305936,.294737,.283493,.272222,.26099,.249877,.238946,.228254,.217853,.20778,.198072,.188748,.179828,.171285,.163059,.155151,.147535,.140211,.13317,.1264,.119892,.11364,.107633,.10187,.096347,.091063,.08601,.081187,.076583,.072198,.068024,.064052,.060281,.056697,.053292,.050059,.046998,.044096,.041345,.0387507,.0362978,.0339832,.0318004,.0297395,.0277918,.0259551,.0242263,.0226017,.0210779,.0196505,.0183153,.0170686,.0159051,.0148183,.0138008,.0128495,.0119607,.0111303,.0103555,.0096332,.0089599,.0083324,.0077488,.0072046,.0066975,.0062251,.005785,.0053751,.0049941,.0046392,.0043093,.0040028,.00371774,.00345262,.00320583,.00297623,.00276281,.00256456,.00238048,.00220971,.00205132,.00190449,.00176847,.00164236,.00152535,.00141672,.00131595,.00122239,.00113555,.00105494,98014e-8,91066e-8,84619e-8,78629e-8,73068e-8,67899e-8,63101e-8,58644e-8,54511e-8,50672e-8,47111e-8,43805e-8,40741e-8,378962e-9,352543e-9,328001e-9,305208e-9,284041e-9,264375e-9,246109e-9,229143e-9,213376e-9,19873e-8,185115e-9,172454e-9,160678e-9,14973e-8,13955e-8,130086e-9,12129e-8,113106e-9,105501e-9,98428e-9,91853e-9,85738e-9,80048e-9,74751e-9,69819e-9,65222e-9,60939e-9,56942e-9,53217e-9,49737e-9,46491e-9,43464e-9,40635e-9,38e-6,3554e-8,33245e-9,31101e-9,29099e-9,27231e-9,25486e-9,23856e-9,22333e-9,2091e-8,19581e-9,18338e-9,17178e-9,16093e-9,1508e-8,14134e-9,13249e-9,12423e-9,1165e-8,10928e-9,10252e-9,962e-8,9028e-9,8474e-9,7955e-9,7469e-9,7013e-9,6586e-9,6186e-9,5811e-9,5459e-9,513e-8,4821e-9,4531e-9,4259e-9,4004e-9,3765e-9,354e-8,3329e-9,3131e-9,2945e-9,2771e-9,2607e-9,2453e-9,2309e-9,2173e-9,2046e-9,1927e-9,1814e-9,1709e-9,161e-8,1517e-9,1429e-9,1347e-9,1269e-9,1197e-9,1128e-9,1064e-9,1003e-9,946e-9,893e-9,842e-9,795e-9,75e-8,707e-9,667e-9,63e-8],Z:[535e-9,811e-9,1221e-9,1829e-9,2722e-9,4028e-9,5926e-9,8665e-9,12596e-9,18201e-9,26144e-9,3733e-8,52987e-9,74764e-9,10487e-8,14622e-8,20266e-8,27923e-8,38245e-8,52072e-8,704776e-9,94823e-8,.0012682,.0016861,.0022285,.0029278,.0038237,.0049642,.0064067,.0082193,.0104822,.013289,.016747,.02098,.026127,.032344,.039802,.048691,.05921,.071576,.0860109,.10274,.122,.14402,.16899,.19712,.22857,.26347,.3019,.34387,.389366,.43797,.48922,.5429,.59881,.65676,.71658,.77812,.84131,.90611,.972542,1.039,1.103,1.165,1.225,1.282,1.338,1.393,1.446,1.499,1.553,1.607,1.659,1.708,1.755,1.798,1.839,1.877,1.91,1.941,1.967,1.989,2.006,2.017,2.024,2.027,2.026,2.022,2.015,2.006,1.995,1.981,1.965,1.946,1.925,1.901,1.874,1.845,1.814,1.781,1.745,1.709,1.672,1.635,1.596,1.555,1.512,1.467,1.42,1.37,1.318,1.262,1.205,1.147,1.088,1.03,.97383,.91943,.86746,.81828,.772125,.72829,.68604,.64553,.60685,.57006,.53522,.50234,.4714,.44239,.415254,.390024,.366399,.344015,.322689,.302356,.283036,.264816,.247848,.232318,.218502,.205851,.193596,.181736,.170281,.159249,.148673,.138609,.129096,.120215,.112044,.10471,.098196,.092361,.087088,.082248,.077744,.073456,.069268,.06506,.060709,.056457,.052609,.049122,.045954,.04305,.040368,.037839,.035384,.032949,.030451,.028029,.025862,.02392,.022174,.020584,.019127,.01774,.016403,.015064,.013676,.012308,.011056,.009915,.008872,.007918,.00703,.006223,.005453,.004714,.003988,.003289,.002646,.002063,.001533,.001091,711e-6,407e-6,184e-6,47e-6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}];t.exports=class{constructor(){this.version="0.0.1",this.name="Spectral",this.description="Spectral data and calculations"}getIlluminants=function(){return r};getIlluminant=function(t){for(var e=0;e<r.length;e++)if(t===r[e].name)return r[e];return!1};getObservers=function(){return n};getObserver=function(t){for(var e=0;e<n.length;e++)if(t===n[e].name)return n[e];return!1};toSpectral=function(t,e,a,i){return i||(i=(t-e)/(a.length-1)),{startnm:t,endnm:e,step:i,data:a}};calculateXYZ=function(t,e,a){var r,n,s,o,h,u,l,m,c,A,g,d,p,C,_=t.startnm,I=t.endnm,f=0,M=0,v=0,B=0;_<e.startnm&&(_=e.startnm),_<a.startnm&&(_=a.startnm),I>e.endnm&&(I=e.endnm),I>a.endnm&&(I=a.endnm),s=(I-_)/t.step,n=(r=(_-t.startnm)/t.step)+s;for(var b=_,S=r;S<=n;S++){var E=(b-a.startnm)/a.step;E%1!=0?(h=E-(o=Math.floor(E)),g=a.X[o]*(1-h)+a.X[o+1]*h,d=a.Y[o]*(1-h)+a.Y[o+1]*h,p=a.Z[o]*(1-h)+a.Z[o+1]*h):(g=a.X[E],d=a.Y[E],p=a.Z[E]);var y=(b-e.startnm)/e.step;y%1!=0?(h=y-(o=Math.floor(y)),C=e.data[o]*(1-h)+e.data[o+1]*h):C=e.data[y],u=C*d,f+=g*C*t.data[S],M+=d*C*t.data[S],v+=p*C*t.data[S],B+=u,b+=t.step}return m=f*(l=100/B)/100,c=M*l/100,A=v*l/100,i.XYZ(m,c,A,e.whitePoint)}}},369:(t,e,a)=>{"use strict";var i=a(577),r=a(618),n=a(362),s=a(503),o=a(422),h=n.eIntent,u=n.eProfileType,l=n.eColourType,m=n.illuminant,c=n.encoding,A=n.encodingStr;class g{constructor(t){t=t||{},this.builtLut=!0===t.builtLut||!0===t.buildLut,t.lutGamutMode&&"none"!==t.lutGamutMode?this.lutGamutMode=t.lutGamutMode:this.lutGamutMode=!0===t.bakeLutGamut?"color":"none",this.lutGamutLimit=t.lutGamutLimit||5,this.lutGamutMapScale=t.lutGamutMapScale||25.5,this.lutGamutColor=t.lutGamutColor||this.Lab(0,127,127),this.gamutDeFn=t.gamutDeFn||r.deltaE1976,this.gamutTransforms={},this.gamutColorDevice=[],this.gamutWhiteDevice=[],this.lutGridPoints3D=isNaN(Number(t.lutGridPoints3D))?33:Number(t.lutGridPoints3D),this.lutGridPoints4D=isNaN(Number(t.lutGridPoints4D))?17:Number(t.lutGridPoints4D);var e=void 0===t.lutMode?"auto":""+t.lutMode;switch(e){case"float":case"int":case"int16":case"int-wasm-scalar":case"int-wasm-simd":case"int16-wasm-scalar":case"int16-wasm-simd":this.lutMode=e,this.lutModeRequested=e;break;case"auto":"int8"===t.dataFormat&&this.builtLut?this.lutMode="int-wasm-simd":"int16"===t.dataFormat&&this.builtLut?this.lutMode="int16-wasm-simd":this.lutMode="float",this.lutModeRequested="auto";break;default:!0===t.verbose&&console.warn('Unknown lutMode "'+e+'" — falling back to "auto". Valid values: auto, float, int, int16, int-wasm-scalar, int-wasm-simd, int16-wasm-scalar, int16-wasm-simd.'),"int8"===t.dataFormat&&this.builtLut?this.lutMode="int-wasm-simd":"int16"===t.dataFormat&&this.builtLut?this.lutMode="int16-wasm-simd":this.lutMode="float",this.lutModeRequested="auto"}this.wasmCache=t.wasmCache||null,this._wasmShrinkRatio=t.wasmShrinkRatio||0,this._wasmMaxMemory=void 0!==t.wasmMaxMemory?t.wasmMaxMemory:134217728,this.wasmTetra3D=null,this.wasmTetra3DSimd=null,this.wasmTetra3DInt16=null,this.wasmTetra3DInt16Simd=null,this.wasmTetra4D=null,this.wasmTetra4DInt16=null,this.wasmTetra4DInt16Simd=null,this.wasmTetra4DSimd=null,this._lutKernelBig=null,this._lutKernelSmall=null,this._lutKernelThreshold=0,this._lutKernelBigKey=null,this._lutKernelSmallKey=null,this._expectsU16=!1,this._isIntegerMode=!1,this._lutInputHooks=[],this._lutOutputHooks=[],"function"==typeof t.lutInputHook&&this._lutInputHooks.push(t.lutInputHook),"function"==typeof t.lutOutputHook&&this._lutOutputHooks.push(t.lutOutputHook),this.interpolation3D=t.interpolation3D?t.interpolation3D.toLowerCase():"tetrahedral",this.interpolation4D=t.interpolation4D?t.interpolation4D.toLowerCase():"tetrahedral",this.interpolationFast=!1!==t.interpolationFast,this.LUTinterpolation3D=t.LUTinterpolation3D?t.LUTinterpolation3D.toLowerCase():this.interpolation3D,this.LUTinterpolation4D=t.LUTinterpolation4D?t.LUTinterpolation4D.toLowerCase():this.interpolation4D,this.labAdaptation=!0===t.labAdaptation,this.displayChromaticAdaptation=!0===t.displayChromaticAdaptation,this.labInputAdaptation=!1!==t.labInputAdaptation,this.dataFormat=t.dataFormat||"object",t.dataFormat||t.useFloats&&(console.log("useFloats is obsolete, use dataFormat instead"),this.dataFormat="objectFloat");var a=!0;switch(this.dataFormat){case"object":case"int8":case"int16":a=!0;break;case"objectFloat":a=!0,this.useFloats=!0;break;case"device":a=!1;break;default:throw'Invalid dataFormat "'+this.dataFormat+'". Must be "object", "objectFloat", "int8", "int16" or "device"'}this.convertInputOutput=a,this.verbose=!0===t.verbose,this.verboseTiming=!0===t.verboseTiming,this.pipelineDebug=!0===t.pipelineDebug,this.optimise=!1!==t.optimise,this.optimiseDebug=[],this.roundOutput=!1!==t.roundOutput;var i=void 0!==t.precision?t.precision:t.precession;this.precision=isNaN(Number(i))?0:Number(i),this.precession=this.precision,Array.isArray(t.BPC)?this.useBPC=t.BPC:this.useBPC=!0===t.BPC,this._BPCAutoEnable=!0,this.usesBPC=!1,this.usesAdaptation=!1,this._expandRGBStages=!0,this._RGBMatrixWhiteAdadaptation=!1,this.clipRGBinPipeline=!0===t.clipRGBinPipeline,this.pipeline=[],this.pipelineHistory=[],this.pipelineCreated=!1,this.debugHistory=[],this.debugHistoryDecimals=6,this.lut=!1,this.inputProfile=null,this.outputProfile=null,this.chain=[],this.customStages=!1,this.inputChannels=0,this.outputChannels=0}getLut(t){var e;if(void 0===t||!1===t)e=this.lut.CLUT;else{var a=Math.pow(10,t);e=this.lut.CLUT.map((function(t){return Math.round(t*a)/a}))}var i=this.cloneLut([]);return i.CLUT=e,i.precision=null,i.inputScale=1,i.outputScale=1,i}getLut16(){for(var t=new Uint16Array(this.lut.CLUT.length),e=0;e<this.lut.CLUT.length;e++)t[e]=65535*this.lut.CLUT[e];var a=this.cloneLut(C(t),"base64");return a.precision=16,a.inputScale=1,a.outputScale=1/65535,a}getLut8(){for(var t=new Uint8Array(this.lut.CLUT.length),e=0;e<this.lut.CLUT.length;e++)t[e]=Math.round(255*this.lut.CLUT[e]);var a=this.cloneLut(p(t),"base64");return a.precision=8,a.inputScale=1,a.outputScale=1/255,a}setLut(t,e){if(this.lut=t,!Array.isArray(t.chain)||t.chain.length<3||t.chain.length%2==0)throw"Invalid LUT - chain must be [profile, intent, profile, ...] with odd length >= 3";for(var a=[],i=0;i<t.chain.length;i++){var r=t.chain[i];if(i%2==0)if(r&&"object"==typeof r&&r.hasOwnProperty("header"))a.push(r);else{if(!r||"object"!=typeof r||!r.hasOwnProperty("profile"))throw"Invalid LUT - chain["+i+"] is not a profile descriptor";a.push(r.profile)}else if("number"==typeof r)a.push(r);else{if(!r||"object"!=typeof r||!r.hasOwnProperty("intent"))throw"Invalid LUT - chain["+i+"] is not an intent";a.push(r.intent)}}t.chain=a,this.chain=a;var n=a[0],s=a[a.length-2],o=a[a.length-1];if(_(this.lut),e&&!0===e.verify&&this.lut.originalSignature){var h=f(this.lut);if(h!==this.lut.originalSignature)throw"Transform.setLut: signature mismatch — LUT has been mutated since it was stamped. Expected "+this.lut.originalSignature+", got "+h+". See `lut.meta.adjustments` for the edit history (if recorded)."}this.builtLut=!0,"auto"===this.lutModeRequested&&("int8"===this.dataFormat?this.lutMode="int-wasm-simd":"int16"===this.dataFormat?this.lutMode="int16-wasm-simd":this.lutMode="float"),this.create(n,o,s)}toJSON(t){if(!this.lut||!this.lut.CLUT)throw"Transform.toJSON: no LUT to serialise. Construct the Transform with `buildLut: true` so a LUT is built during create(), or call setLut() to install one. Auto-building on demand is intentionally not supported — it would silently swap the f64 pipeline (lossless) for a grid-sampled LUT path (~0.06 ΔE76 grid error).";return I(this.lut,t)}verifyLut(){return this.lut?g.verifyLut(this.lut):null}signLut(){return this.lut?f(this.lut):null}addLutInputHook(t,e){if("function"!=typeof t)throw"addLutInputHook: fn must be a function";return"before"===e?this._lutInputHooks.unshift(t):this._lutInputHooks.push(t),this}addLutOutputHook(t,e){if("function"!=typeof t)throw"addLutOutputHook: fn must be a function";return"before"===e?this._lutOutputHooks.unshift(t):this._lutOutputHooks.push(t),this}clearLutHooks(){return this._lutInputHooks.length=0,this._lutOutputHooks.length=0,this}_applyLutHooks(t,e,a){for(var i=0;i<t.length;i++)e=t[i](e,a);return e}cloneLut(t,e){return JSON.parse(JSON.stringify(this.lut,(function(a,i){return"CLUT"===a?t:"encoding"===a&&void 0!==e?e:i})))}create(t,e,a,i){return this.createMultiStage([t,a,e],i)}createMultiStage(t,e){if(e=e||[],!Array.isArray(t))throw"Invalid profileChain, must be an array";var a,r,n=t.length-1,o=1,u=1;for(r=0;r<t.length;r++)if(r%2==0){if("string"==typeof(a=t[r])){if("*"!==a.substring(0,1))throw"Profile "+o+' is a string. Virtual profiles must be prefixed with "*"';t[r]=new i(a)}o++}if(this.inputProfile=null,this.outputProfile=null,this.usesBPC=!1,this.usesAdaptation=!1,!1===this.lut){if(!Array.isArray(t))throw"Invalid profileChain, must be an array";if(t.length<3)throw"Invalid profileChain, must have at least 3 items [profile, intent, profile]";for(o=1,u=1,r=0;r<t.length;r++)if(a=t[r],r%2==0){if(!(a instanceof i))throw"Profile "+o+" in chain is not a Profile";if(!a.loaded)throw"Profile "+o+" in chain is not loaded";o++}else{if("number"!=typeof a)throw"Intent "+u+" in chain is not a number";if(a!==h.absolute&&a!==h.perceptual&&a!==h.relative&&a!==h.saturation)throw"Intent "+u+" in chain is not a valid intent";u++}if(!(t[0]instanceof i))throw"First step in chain is not a Profile";if(!(t[n]instanceof i))throw"Last step in chain is not a Profile"}else if(!this.lut||void 0===this.lut.CLUT||null===this.lut.CLUT)throw"Invalid LUT";if(this.chain=t,this.inputProfile=t[0],this.inputChannels=this.getProfileChannels(this.inputProfile),this.outputProfile=t[n],this.outputChannels=this.getProfileChannels(this.outputProfile),this.customStages=e,this.builtLut||!1!==this.lut){!1===this.lut&&(this.createPipeline(t,!1,!1,!1),this.verbose&&(this.optimise?console.log(this.optimiseInfo()):console.log(this.getStageNames(!1,!1)),console.log("Temp Pipeline Created, Building LUT ....")),this.pipelineCreated=!0,this.lut=this.createLut());var l=this.interpolation3D,m=this.interpolation4D;this.interpolation3D=this.LUTinterpolation3D,this.interpolation4D=this.LUTinterpolation4D,this.createPipeline(t,this.convertInputOutput,this.convertInputOutput,!0),this.interpolation3D=l,this.interpolation4D=m}else this.createPipeline(t,this.convertInputOutput,this.convertInputOutput,!1),this.lut=!1;if(this.pipelineCreated=!0,"int"!==this.lutMode&&"int16"!==this.lutMode&&"int-wasm-scalar"!==this.lutMode&&"int-wasm-simd"!==this.lutMode&&"int16-wasm-scalar"!==this.lutMode&&"int16-wasm-simd"!==this.lutMode||!this.lut||"int8"!==this.dataFormat&&"int16"!==this.dataFormat||this.buildIntLut(this.lut),"none"!==this.lutGamutMode&&(this.gamutTransforms={},this.gamutColorDevice=[]),"int-wasm-simd"===this.lutMode){var c=s.createTetra3DSimdState({wasmCache:this.wasmCache});if(null!==c){this.wasmTetra3DSimd=c;var A=s.createTetra3DState({wasmCache:this.wasmCache});null!==A&&(this.wasmTetra3D=A),this.verbose&&console.log(" lutMode=int-wasm-simd: WebAssembly SIMD kernel loaded"+(null!==A?" (+ scalar fallthrough)":" (scalar fallthrough unavailable)"))}else this.verbose&&console.warn(' lutMode=int-wasm-simd: WebAssembly SIMD unavailable — demoting to "int-wasm-scalar"'),this.lutMode="int-wasm-scalar"}if("int-wasm-scalar"===this.lutMode){var g=s.createTetra3DState({wasmCache:this.wasmCache});null!==g?(this.wasmTetra3D=g,this.verbose&&console.log(" lutMode=int-wasm-scalar: WebAssembly kernel loaded")):(this.verbose&&console.warn(' lutMode=int-wasm-scalar: WebAssembly unavailable — demoting to "int"'),this.lutMode="int")}if("int16-wasm-simd"===this.lutMode){var d=s.createTetra3DInt16SimdState({wasmCache:this.wasmCache});if(null!==d){this.wasmTetra3DInt16Simd=d;var p=s.createTetra3DInt16State({wasmCache:this.wasmCache});null!==p&&(this.wasmTetra3DInt16=p);var C=s.createTetra4DInt16SimdState({wasmCache:this.wasmCache});null!==C&&(this.wasmTetra4DInt16Simd=C);var _=s.createTetra4DInt16State({wasmCache:this.wasmCache});null!==_&&(this.wasmTetra4DInt16=_),this.verbose&&console.log(" lutMode=int16-wasm-simd: WebAssembly SIMD u16 kernels loaded (3D SIMD"+(null!==p?" + scalar fallthrough":" only")+", 4D "+(null!==C?"SIMD":"no SIMD")+(null!==_?" + scalar fallthrough":"")+")")}else this.verbose&&console.warn(' lutMode=int16-wasm-simd: WebAssembly SIMD unavailable — demoting to "int16-wasm-scalar"'),this.lutMode="int16-wasm-scalar"}if("int16-wasm-scalar"===this.lutMode){var I=s.createTetra3DInt16State({wasmCache:this.wasmCache});if(null!==I){this.wasmTetra3DInt16=I,this.verbose&&console.log(" lutMode=int16-wasm-scalar: WebAssembly 3D int16 kernel loaded");var f=s.createTetra4DInt16State({wasmCache:this.wasmCache});null!==f?(this.wasmTetra4DInt16=f,this.verbose&&console.log(" lutMode=int16-wasm-scalar: WebAssembly 4D int16 kernel loaded")):this.verbose&&console.warn(" lutMode=int16-wasm-scalar: WebAssembly 4D int16 kernel unavailable — 4D u16 inputs will use JS int16 fallback")}else this.verbose&&console.warn(' lutMode=int16-wasm-scalar: WebAssembly unavailable — demoting to "int16"'),this.lutMode="int16"}if("int-wasm-simd"===this.lutMode){var M=s.createTetra4DSimdState({wasmCache:this.wasmCache});null!==M?(this.wasmTetra4DSimd=M,this.verbose&&console.log(" lutMode=int-wasm-simd: WebAssembly 4D SIMD kernel loaded")):this.verbose&&console.warn(" lutMode=int-wasm-simd: WebAssembly 4D SIMD kernel unavailable — 4D inputs will use scalar 4D WASM or JS int fallback")}if("int-wasm-scalar"===this.lutMode||"int-wasm-simd"===this.lutMode){var v=s.createTetra4DState({wasmCache:this.wasmCache});null!==v?(this.wasmTetra4D=v,this.verbose&&console.log(" lutMode="+this.lutMode+": WebAssembly 4D scalar kernel loaded")):this.verbose&&console.warn(" lutMode="+this.lutMode+": WebAssembly 4D scalar kernel unavailable — 4D inputs will use JS int fallback")}this._propagateWasmMemorySettings(),this._resolveLutKernels();var B=this.lutMode;if(this._expectsU16="int16"===B||"int16-wasm-scalar"===B||"int16-wasm-simd"===B,this._isIntegerMode="int"===B||"int16"===B||"int-wasm-scalar"===B||"int-wasm-simd"===B||"int16-wasm-scalar"===B||"int16-wasm-simd"===B,this._isIntegerMode&&this.lut&&this.lut.intLut&&!this.isIntLutCompatible(this.lut.intLut))throw new Error("jsColorEngine: intLut format tag incompatible with this version. Got {version:"+this.lut.intLut.version+", dataType:"+JSON.stringify(this.lut.intLut.dataType)+", scale:"+this.lut.intLut.scale+", gpsPrecisionBits:"+this.lut.intLut.gpsPrecisionBits+", accWidth:"+this.lut.intLut.accWidth+'}. Rebuild the Transform via create() or set lutMode:"float".');this.verbose&&(this.optimise?console.log(this.optimiseInfo()):console.log(this.getStageNames(!1,!1)))}_propagateWasmMemorySettings(){for(var t=[this.wasmTetra3D,this.wasmTetra3DSimd,this.wasmTetra3DInt16,this.wasmTetra3DInt16Simd,this.wasmTetra4D,this.wasmTetra4DSimd,this.wasmTetra4DInt16,this.wasmTetra4DInt16Simd],e=this._wasmShrinkRatio,a=this._wasmMaxMemory,i=0;i<t.length;i++)t[i]&&(t[i].shrinkRatio=e,t[i].maxMemory=a)}setWasmShrinkRatio(t){this._wasmShrinkRatio=t||0,this._propagateWasmMemorySettings()}setWasmMaxMemory(t){this._wasmMaxMemory=t||0,this._propagateWasmMemorySettings()}_postRunWasmCheck(){if(!(this._wasmMaxMemory<=0&&this._wasmShrinkRatio<=0))for(var t=[this.wasmTetra3D,this.wasmTetra3DSimd,this.wasmTetra3DInt16,this.wasmTetra3DInt16Simd,this.wasmTetra4D,this.wasmTetra4DSimd,this.wasmTetra4DInt16,this.wasmTetra4DInt16Simd],e=0;e<t.length;e++)t[e]&&t[e].compactIfNeeded()}compactWasmMemory(){for(var t=[this.wasmTetra3D,this.wasmTetra3DSimd,this.wasmTetra3DInt16,this.wasmTetra3DInt16Simd,this.wasmTetra4D,this.wasmTetra4DSimd,this.wasmTetra4DInt16,this.wasmTetra4DInt16Simd],e=0;e<t.length;e++)t[e]&&t[e].compact()}releaseWasmMemory(){this.wasmTetra3D=null,this.wasmTetra3DSimd=null,this.wasmTetra3DInt16=null,this.wasmTetra3DInt16Simd=null,this.wasmTetra4D=null,this.wasmTetra4DSimd=null,this.wasmTetra4DInt16=null,this.wasmTetra4DInt16Simd=null,this._resolveLutKernels()}wasmMemoryBytes(){for(var t=0,e=[this.wasmTetra3D,this.wasmTetra3DSimd,this.wasmTetra3DInt16,this.wasmTetra3DInt16Simd,this.wasmTetra4D,this.wasmTetra4DSimd,this.wasmTetra4DInt16,this.wasmTetra4DInt16Simd],a=0;a<e.length;a++)e[a]&&(t+=e[a].memory.buffer.byteLength);return t}inputLab2Int16(t,e,a){if(!this.lut||!this.lut.inLab)throw"inputLab2Int16: input PCS is not Lab";return r.lab2Int16(t,e,a,this.lut.inLab)}outputLab2Int16(t,e,a){if(!this.lut||!this.lut.outLab)throw"outputLab2Int16: output PCS is not Lab";return r.lab2Int16(t,e,a,this.lut.outLab)}inputInt162Lab(t,e,a){if(!this.lut||!this.lut.inLab)throw"inputInt162Lab: input PCS is not Lab";return r.int162Lab(t,e,a,this.lut.inLab)}outputInt162Lab(t,e,a){if(!this.lut||!this.lut.outLab)throw"outputInt162Lab: output PCS is not Lab";return r.int162Lab(t,e,a,this.lut.outLab)}gamutCheck(t,e,a){let i=this.gamutTransforms.src2Lab.transform(this._gamutDeviceToObj(t,!0)),r=this.gamutTransforms.dest2Lab.transform(this._gamutDeviceToObj(e,!1)),n=this.gamutDeFn(i,r);if("map"===this.lutGamutMode){let t=Math.min(n/this.lutGamutMapScale,1),e=new Array(a);for(let i=0;i<a;i++)e[i]=t;return e}if("colorMap"===this.lutGamutMode){let t=Math.min(n/this.lutGamutMapScale,1),e=this.gamutWhiteDevice,i=this.gamutColorDevice,r=new Array(a);for(let n=0;n<a;n++)r[n]=e[n]*(1-t)+i[n]*t;return r}return n>this.lutGamutLimit?this.gamutColorDevice:e}_gamutDeviceToObj(t,e){let a=e?this.inputProfile:this.outputProfile;return a.type===u.Lab?{type:l.Lab,L:100*t[0],a:255*t[1]-128,b:255*t[2]-128,whitePoint:m.d50}:a.type===u.CMYK?{type:l.CMYK,C:100*t[0],M:100*t[1],Y:100*t[2],K:100*t[3]}:a.type===u.Gray?{type:l.Gray,G:255*t[0]}:{type:l.RGB,R:255*t[0],G:255*t[1],B:255*t[2]}}createGamutTransforms(){if(!this.inputProfile||!this.outputProfile)return!1;let t=this.inputProfile,e=this.outputProfile;if(!t.loaded||!e.loaded)return!1;let a=new g({dataFormat:"object"});a.create(t,"*lab",h.relative);let i=new g({dataFormat:"object"});if(i.create(e,"*lab",h.relative),this.gamutTransforms={src2Lab:a,dest2Lab:i},"color"===this.lutGamutMode||"colorMap"===this.lutGamutMode){let t=new g({dataFormat:"object"});t.create("*lab",e,h.relative);let a=t.transform(this.lutGamutColor),i=this.getProfileChannels(e);if(this.gamutColorDevice=4===i?[a.C/100,a.M/100,a.Y/100,a.K/100]:3===i?[a.R/255,a.G/255,a.B/255]:[a.G/255],"colorMap"===this.lutGamutMode){let e=this.Lab(100,0,0),a=t.transform(e);this.gamutWhiteDevice=4===i?[a.C/100,a.M/100,a.Y/100,a.K/100]:3===i?[a.R/255,a.G/255,a.B/255]:[a.G/255]}}return!0}createLut(){var t,e,a,n;switch("none"!==this.lutGamutMode&&(this.verboseTiming&&console.time("create Gamut Check Transforms"),this.createGamutTransforms(),this.verboseTiming&&console.timeEnd("create Gamut Check Transforms")),this.verboseTiming&&console.time("create Prebuilt Lut"),this.outputProfile.type){case u.Gray:n=1;break;case u.Duo:n=2;break;case u.Lab:case u.RGBMatrix:case u.RGBLut:n=3;break;case u.CMYK:n=4;break;default:throw"Create Lut Invalid output profile type "+this.outputProfile.type}switch(this.inputProfile.type){case u.Gray:a=1,t=this.create1DDeviceLUT(n,this.lutGridPoints3D),e=[this.lutGridPoints3D];break;case u.Duo:a=2,t=this.create2DDeviceLUT(n,this.lutGridPoints3D),e=[this.lutGridPoints3D,this.lutGridPoints3D];break;case u.Lab:case u.RGBMatrix:case u.RGBLut:a=3,t=this.create3DDeviceLUT(n,this.lutGridPoints3D),e=[this.lutGridPoints3D,this.lutGridPoints3D,this.lutGridPoints3D];break;case u.CMYK:a=4,t=this.create4DDeviceLUT(n,this.lutGridPoints4D),e=[this.lutGridPoints4D,this.lutGridPoints4D,this.lutGridPoints4D,this.lutGridPoints4D];break;default:throw"Create Lut Invalid input profile type "+this.inputProfile.type}this.verboseTiming&&console.timeEnd("create Prebuilt Lut");for(var s=[],o=0;o<this.chain.length;o++)this.chain[o]instanceof i?s.push(c(this.chain[o])):s.push(this.chain[o]);var h=e[0],l=h*(e[1]||0),m=l*(e[2]||0);return{chain:s,version:1,inputChannels:a,outputChannels:n,gridPoints:e,g1:h,g2:l,g3:m,go0:n,go1:h*n,go2:l*n,go3:m*n,CLUT:t,dataType:"f64",encoding:"number",precision:null,outputScale:1,inputScale:1,gamutMode:this.lutGamutMode,gamutLimit:"color"===this.lutGamutMode?this.lutGamutLimit:0,gamutMapScale:"map"===this.lutGamutMode||"colorMap"===this.lutGamutMode?this.lutGamutMapScale:0,inLab:this.inputProfile&&this.inputProfile.type===u.Lab?r.labEncoding[2===this.inputProfile.version?"v2":"v4"]:null,outLab:this.outputProfile&&this.outputProfile.type===u.Lab?r.labEncoding[2===this.outputProfile.version?"v2":"v4"]:null};function c(t){return{header:t.header,name:t.name,type:t.type,intent:t.intent,whitePoint:t.whitePoint,description:t.description,viewingConditions:t.viewingConditions,mediaWhitePoint:t.mediaWhitePoint,PCSEncode:t.PCSEncode,PCSDecode:t.PCSDecode,PCS8BitScale:t.PCS8BitScale,version:t.version}}}isIntLutCompatible(t){if(!t)return!1;if(1!==t.version)return!1;if("u16"!==t.dataType)return!1;var e=65280===t.scale&&16===t.gpsPrecisionBits,a=65535===t.scale&&13===t.gpsPrecisionBits;return!(!e&&!a||16!==t.accWidth&&20!==t.accWidth)}buildIntLut(t){if(t&&t.CLUT){var e=t.inputChannels,a=t.outputChannels,i=t.g1,r=4===e&&(3===a||4===a);if(3===e&&(3===a||4===a)||r){for(var n="int16"===this.lutMode||"int16-wasm-scalar"===this.lutMode||"int16-wasm-simd"===this.lutMode,s=n?65535:65280,o=n?13:16,h=t.CLUT,u=new Uint16Array(h.length),l=0;l<h.length;l++){var m=h[l]*s;m<0?m=0:m>s&&(m=s),u[l]=m+.5|0}var c=n?0:Math.round((i-1<<16)/255),A=n?Math.round((i-1<<13)/65535):0,g=(i-1)*t.go2,d=(i-1)*t.go1,p=(i-1)*t.go0,C=r?(i-1)*t.go3:0;if(t.intLut={version:1,dataType:"u16",scale:s,gpsPrecisionBits:o,accWidth:r?n?16:20:16,CLUT:u,gridPointsScale_fixed:c,gridPointsScale_fixed_u16:A,maxX:g,maxY:d,maxZ:p,maxK:C,inputChannels:e,outputChannels:a,g1:i,go0:t.go0,go1:t.go1,go2:t.go2,go3:r?t.go3:0,gamutMode:t.gamutMode||"none",gamutLimit:t.gamutLimit||0,gamutMapScale:t.gamutMapScale||0},this.verboseTiming){var _=r?"4D":"3D",I=r?"maxX/Y/Z/K="+g+"/"+d+"/"+p+"/"+C:"maxX/Y/Z="+g+"/"+d+"/"+p,f=n?"gps_u13="+A+" (Q0.13)":"gps_u16="+c+" (Q0.16)";console.log(" lutMode="+this.lutMode+": built u16 mirror ("+_+", scale="+s+") — "+(u.byteLength/1024).toFixed(1)+" KB ("+(h.byteLength/1024).toFixed(1)+" KB float source), "+f+", "+I)}}}}create1DDeviceLUT(t,e){var a,i,r=new Float64Array(this.outputProfile.outputChannels*e),n=0,s=1/(e-1),o=this._lutInputHooks,h=this._lutOutputHooks,u=o.length>0,l=h.length>0;for(a=0;a<e;a++){var m=[a*s];u&&(m=this._applyLutHooks(o,m));var c=this.forward(m);for(l&&(c=this._applyLutHooks(h,c,m)),i=0;i<t;i++)r[n++]=c[i]}return r}create2DDeviceLUT(t,e){var a,i,r,n,s=e*e,o=new Float64Array(this.outputProfile.outputChannels*s),h=0,u=1/(e-1),l=this._lutInputHooks,m=this._lutOutputHooks,c=l.length>0,A=m.length>0;for(a=0;a<e;a++)for(n=a*u,i=0;i<e;i++){var g=[n,i*u];c&&(g=this._applyLutHooks(l,g));var d=this.forward(g);for(A&&(d=this._applyLutHooks(m,d,g)),"none"!==this.lutGamutMode&&(d=this.gamutCheck(g,d,t)),r=0;r<t;r++)o[h++]=d[r]}return o}create3DDeviceLUT(t,e){var a,i,r,n,s,o,h=e*e*e,u=new Float64Array(this.outputProfile.outputChannels*h),l=0,m=1/(e-1),c=0,A=this._lutInputHooks,g=this._lutOutputHooks,d=A.length>0,p=g.length>0;for(a=0;a<e;a++)for(s=a*m,i=0;i<e;i++)for(o=i*m,r=0;r<e;r++){let e=[s,o,r*m];d&&(e=this._applyLutHooks(A,e));var C=this.forward(e);for(p&&(C=this._applyLutHooks(g,C,e)),"none"!==this.lutGamutMode&&(C=this.gamutCheck(e,C,t)),n=0;n<t;n++)u[l++]=C[n];c++}return this.verbose&&console.log("3D LUT size : "+c+" points @ "+e+" "+e+" "+e),u}create4DDeviceLUT(t,e){var a,i,r,n,s,o,h,u,l,m=e*e*e*e,c=new Float64Array(this.outputProfile.outputChannels*m),A=0,g=1/(e-1),d=this._lutInputHooks,p=this._lutOutputHooks,C=d.length>0,_=p.length>0;for(a=0;a<e;a++)for(o=a*g,i=0;i<e;i++)for(h=i*g,r=0;r<e;r++)for(u=r*g,n=0;n<e;n++){let e=[o,h,u,n*g];for(C&&(e=this._applyLutHooks(d,e)),l=this.forward(e),_&&(l=this._applyLutHooks(p,l,e)),"none"!==this.lutGamutMode&&(l=this.gamutCheck(e,l,t)),s=0;s<t;s++)c[A++]=l[s]}return c}forward(t){if(!this.pipelineCreated)throw"No Pipeline";var e,a,i,r=this.pipeline,n=r.length,s=t;if(this.pipelineDebug)for(this.pipelineHistory=[s],this.debugHistory=[],a=0;a<n;a++)e=(i=r[a]).funct.call(this,s,i.stageData,i),""!==i.debugFormat&&this.addDebugHistory(i.debugFormat,i.stageName,s,e),this.pipelineHistory.push(e),s=e;else for(a=0;a<n;a++)s=r[a].funct.call(this,s,r[a].stageData,r[a]);return s}transform(t){return this.forward(t)}transformArrayViaLUT_legacy(t,e,a,i,r){var n=this.lut;if(!n)throw"No LUT loaded";void 0===i&&(i=a&&e);var s=e?n.inputChannels+1:n.inputChannels,o=a?n.outputChannels+1:n.outputChannels;void 0===r&&(r=Math.floor(t.length/s));var h=this._expectsU16?new Uint16Array(r*o):new Uint8ClampedArray(r*o),u=n.inputChannels,l=n.outputChannels;switch(u){case 1:this.linearInterp1DArray_NCh_loop(t,0,h,0,r,n,e,a,i);break;case 2:this.bilinearInterp2DArray_NCh_loop(t,0,h,0,r,n,e,a,i);break;case 3:if("int-wasm-simd"===this.lutMode&&null!==this.wasmTetra3DSimd&&(3===l||4===l)&&n.intLut&&r>=g.WASM_DISPATCH_MIN_PIXELS){var m=e?4:3,c=a?l+1:l;this.wasmTetra3DSimd.bind(n.intLut,r,l,m,c),this.wasmTetra3DSimd.runTetra3D(t,0,h,0,r,n.intLut,l,e,a,i);break}if(("int-wasm-scalar"===this.lutMode||"int-wasm-simd"===this.lutMode)&&null!==this.wasmTetra3D&&n.intLut&&r>=g.WASM_DISPATCH_MIN_PIXELS){var A=e?4:3,d=a?l+1:l;this.wasmTetra3D.bind(n.intLut,r,l,A,d),this.wasmTetra3D.runTetra3D(t,0,h,0,r,n.intLut,l,e,a,i);break}if(("int16-wasm-scalar"===this.lutMode||"int16-wasm-simd"===this.lutMode)&&null!==this.wasmTetra3DInt16&&n.intLut&&r>=g.WASM_DISPATCH_MIN_PIXELS){var p=2*(e?4:3),C=2*(a?l+1:l);this.wasmTetra3DInt16.bind(n.intLut,r,l,p,C),this.wasmTetra3DInt16.runTetra3D(t,0,h,0,r,n.intLut,l,e,a,i);break}if(("int16"===this.lutMode||"int16-wasm-scalar"===this.lutMode||"int16-wasm-simd"===this.lutMode)&&n.intLut){switch(l){case 3:this.tetrahedralInterp3DArray_3Ch_intLut16_loop(t,0,h,0,r,n.intLut,e,a,i);break;case 4:this.tetrahedralInterp3DArray_4Ch_intLut16_loop(t,0,h,0,r,n.intLut,e,a,i);break;default:this.tetrahedralInterp3DArray_NCh_loop(t,0,h,0,r,n,e,a,i)}break}if(("int"===this.lutMode||"int-wasm-scalar"===this.lutMode||"int-wasm-simd"===this.lutMode)&&n.intLut){switch(l){case 3:this.tetrahedralInterp3DArray_3Ch_intLut_loop(t,0,h,0,r,n.intLut,e,a,i);break;case 4:this.tetrahedralInterp3DArray_4Ch_intLut_loop(t,0,h,0,r,n.intLut,e,a,i);break;default:this.tetrahedralInterp3DArray_NCh_loop(t,0,h,0,r,n,e,a,i)}break}switch(l){case 3:this.tetrahedralInterp3DArray_3Ch_loop(t,0,h,0,r,n,e,a,i);break;case 4:this.tetrahedralInterp3DArray_4Ch_loop(t,0,h,0,r,n,e,a,i);break;default:this.tetrahedralInterp3DArray_NCh_loop(t,0,h,0,r,n,e,a,i)}break;case 4:if("int-wasm-simd"===this.lutMode&&null!==this.wasmTetra4DSimd&&(3===l||4===l)&&n.intLut&&r>=g.WASM_DISPATCH_MIN_PIXELS){var _=e?5:4,I=a?l+1:l;this.wasmTetra4DSimd.bind(n.intLut,r,l,_,I),this.wasmTetra4DSimd.runTetra4D(t,0,h,0,r,n.intLut,l,e,a,i);break}if(("int-wasm-scalar"===this.lutMode||"int-wasm-simd"===this.lutMode)&&null!==this.wasmTetra4D&&n.intLut&&r>=g.WASM_DISPATCH_MIN_PIXELS){var f=e?5:4,M=a?l+1:l;this.wasmTetra4D.bind(n.intLut,r,l,f,M),this.wasmTetra4D.runTetra4D(t,0,h,0,r,n.intLut,l,e,a,i);break}if(("int16-wasm-scalar"===this.lutMode||"int16-wasm-simd"===this.lutMode)&&null!==this.wasmTetra4DInt16&&n.intLut&&r>=g.WASM_DISPATCH_MIN_PIXELS){var v=e?10:8,B=a?2*(l+1):2*l;this.wasmTetra4DInt16.bind(n.intLut,r,l,v,B),this.wasmTetra4DInt16.runTetra4D(t,0,h,0,r,n.intLut,l,e,a,i);break}if(("int16"===this.lutMode||"int16-wasm-scalar"===this.lutMode||"int16-wasm-simd"===this.lutMode)&&n.intLut){switch(l){case 3:this.tetrahedralInterp4DArray_3Ch_intLut16_loop(t,0,h,0,r,n.intLut,e,a,i);break;case 4:this.tetrahedralInterp4DArray_4Ch_intLut16_loop(t,0,h,0,r,n.intLut,e,a,i);break;default:this.tetrahedralInterp4DArray_NCh_loop(t,0,h,0,r,n,e,a,i)}break}if(("int"===this.lutMode||"int-wasm-scalar"===this.lutMode||"int-wasm-simd"===this.lutMode)&&n.intLut){switch(l){case 3:this.tetrahedralInterp4DArray_3Ch_intLut_loop(t,0,h,0,r,n.intLut,e,a,i);break;case 4:this.tetrahedralInterp4DArray_4Ch_intLut_loop(t,0,h,0,r,n.intLut,e,a,i);break;default:this.tetrahedralInterp4DArray_NCh_loop(t,0,h,0,r,n,e,a,i)}break}switch(l){case 3:this.tetrahedralInterp4DArray_3Ch_loop(t,0,h,0,r,n,e,a,i);break;case 4:this.tetrahedralInterp4DArray_4Ch_loop(t,0,h,0,r,n,e,a,i);break;default:this.tetrahedralInterp4DArray_NCh_loop(t,0,h,0,r,n,e,a,i)}break;default:throw"Invalid inputChannels "+u}return h}_resolveLutKernels(){this._lutKernelBig=null,this._lutKernelSmall=null,this._lutKernelThreshold=0,this._lutKernelBigKey=null,this._lutKernelSmallKey=null;var t=this.lut;if(t){var e=t.inputChannels,a=t.outputChannels;if(3===e||4===e){var i=o.LUT_MODE_SHORT[this.lutMode];if(void 0!==i){var r=o.makeKey(i,e,a),n=o.resolveLutKernel(this,t,r,1/0),s=o.resolveLutKernel(this,t,r,0);this._lutKernelBig=n.entry.run,this._lutKernelSmall=s.entry.run,this._lutKernelBigKey=n.key,this._lutKernelSmallKey=s.key,this._lutKernelThreshold=n.entry===s.entry?0:g.WASM_DISPATCH_MIN_PIXELS,this.verbose&&console.log(" lutKernelTable: "+r+" → big="+this._lutKernelBigKey+" small="+this._lutKernelSmallKey+" threshold="+this._lutKernelThreshold)}}}}transformArrayViaLUT(t,e,a,i,r,n){var s=this.lut;if(!s)throw"No LUT loaded";void 0===i&&(i=a&&e);var o=e?s.inputChannels+1:s.inputChannels,h=a?s.outputChannels+1:s.outputChannels;void 0===r&&(r=Math.floor(t.length/o));var u=r*h,l=this._expectsU16;if(void 0===n)n=l?new Uint16Array(u):new Uint8ClampedArray(u);else{if(l){if(!(n instanceof Uint16Array))throw new Error('transformArrayViaLUT: outputArray must be Uint16Array for lutMode="'+this.lutMode+'".')}else if(!(n instanceof Uint8ClampedArray))throw new Error('transformArrayViaLUT: outputArray must be Uint8ClampedArray for lutMode="'+this.lutMode+'".');if(n.length<u)throw new Error("transformArrayViaLUT: outputArray too small (got "+n.length+", need "+u+").")}var m=s.inputChannels;if(1===m)return this.linearInterp1DArray_NCh_loop(t,0,n,0,r,s,e,a,i),n;if(2===m)return this.bilinearInterp2DArray_NCh_loop(t,0,n,0,r,s,e,a,i),n;if(3!==m&&4!==m)throw"Invalid inputChannels "+m;if(null===this._lutKernelBig&&(this._resolveLutKernels(),null===this._lutKernelBig))throw"lutKernelTable: failed to resolve dispatcher for inputChannels="+m+", outputChannels="+s.outputChannels+", lutMode="+this.lutMode;return(r>=this._lutKernelThreshold?this._lutKernelBig:this._lutKernelSmall)(this,t,n,r,s,e,a,i),this._postRunWasmCheck(),n}transformArray(t,e,a,i,r,n,s){if(!this.pipelineCreated)throw"No Pipeline";if(("int8"===this.dataFormat||"int16"===this.dataFormat)&&!1!==this.lut)return this.transformArrayViaLUT(t,e,a,i,r,s);if("object"===this.dataFormat||"objectFloat"===this.dataFormat)throw"forwardArray can only be used with int8 or int16 dataFormat";if(i&&!e)throw"preserveAlpha is true but inputArray has no alpha channel";void 0===i&&(i=a&&e);var o,h,u,l,m,c,A,g,d=this.pipeline,p=d.length,C=0,_=0;if("object"===this.dataFormat||"objectFloat"===this.dataFormat){for(void 0===r&&(r=t.length),s=new Array(r),l=0;l<r;l++){for(o=t[l],h=0;h<p;h++)o=d[h].funct.call(this,o,d[h].stageData,d[h]);s[l]=o}return s}switch(m=this.inputChannels,c=this.outputChannels,A=e?this.inputChannels+1:this.inputChannels,g=i?this.outputChannels+1:this.outputChannels,void 0===r&&(r=Math.floor(t.length/A)),n){case"int8":s=new Uint8ClampedArray(r*g);break;case"int16":s=new Uint16Array(r*g);break;case"float32":s=new Float32Array(r*g);break;case"float64":s=new Float64Array(r*g);break;case"same":var I=t.constructor.name;switch(I){case"Uint8Array":s=new Uint8ClampedArray(r*g);break;case"Uint16Array":s=new Uint16Array(r*g);break;case"Float32Array":s=new Float32Array(r*g);break;case"Float64Array":s=new Float64Array(r*g);break;default:throw"Unknown inputArray type "+I}break;default:s=new Array(r*g)}switch(m){case 1:for(l=0;l<r;l++){for(o=[t[C++]],h=0;h<p;h++)o=d[h].funct.call(this,o,d[h].stageData,d[h]);for(u=0;u<c;u++)s[_++]=o[u];i?s[_++]=t[C++]:(e&&C++,a&&(s[_++]=255))}break;case 2:for(l=0;l<r;l++){for(o=[t[C++],t[C++]],h=0;h<p;h++)o=d[h].funct.call(this,o,d[h].stageData,d[h]);for(u=0;u<c;u++)s[_++]=o[u];i?s[_++]=t[C++]:(e&&C++,a&&(s[_++]=255))}break;case 3:for(l=0;l<r;l++){for(o=[t[C++],t[C++],t[C++]],h=0;h<p;h++)o=d[h].funct.call(this,o,d[h].stageData,d[h]);for(u=0;u<c;u++)s[_++]=o[u];i?s[_++]=t[C++]:(e&&C++,a&&(s[_++]=255))}break;case 4:for(l=0;l<r;l++){for(o=[t[C++],t[C++],t[C++],t[C++]],h=0;h<p;h++)o=d[h].funct.call(this,o,d[h].stageData,d[h]);for(u=0;u<c;u++)s[_++]=o[u];i?s[_++]=t[C++]:(e&&C++,a&&(s[_++]=255))}}return s}intent2LUTIndex(t){return[h.perceptual,h.relative,h.saturation,h.relative][t]}intent2String(t){return["perceptual","relative","saturation","relative"][t]||"unknown "+t}chainInfo(){for(var t="--------- PROFILE CHAIN ---------\n",e=0;e<this.chain.length;e++)this.chain[e]instanceof i?t+="Profile: "+this.chain[e].name+"\n":t+="Intent: "+this.intent2String(this.chain[e])+"\n";return t}historyInfo(){var t,e=0,a=["--------- PIPELINE HISTORY ---------"];for(t=0;t<this.debugHistory.length;t++)this.debugHistory[t].indexOf("|")>e&&(e=this.debugHistory[t].indexOf("|"));for(t=0;t<this.debugHistory.length;t++){var i=this.debugHistory[t].split("|");i.length>1&&(i[0]=(i[0]+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .").substring(0,e)+" ",i[1]=i[1].trim()),a.push(i.join(""))}return a.join("\n")}optimiseInfo=function(){return this.optimiseDebug.join("\n")};debugInfo(){return this.chainInfo()+"\n\n"+this.optimiseInfo()+"\n\n"+this.getStageNames(!0,!1)+(this.pipelineDebug?"\n\n"+this.historyInfo():"")}getStageNames(t,e){for(var a,i=[],r=0;r<this.pipeline.length;r++)a=t&&!1!==this.pipeline[r].inputEncoding?A[this.pipeline[r].inputEncoding]+" > "+this.pipeline[r].stageName+" > "+A[this.pipeline[r].outputEncoding]:this.pipeline[r].stageName,e&&(a+=" "+this.pipeline[r].debugFormat),i.push(r+": "+a);return i.join("\n")}createPipeline(t,e,a,i){this.pipeline=[];var r=t.length-1,n={pcsEncoding:null};if(this.pipelineDebug&&this.addStage(!1,"Start",this.stage_debug,"[PipeLine Input]| {data}",!1),e&&"device"!==this.dataFormat?(i||this.insertCustomStage("beforeInput2Device",n,!1),this.createPipeline_Input_to_Device(n,t[0])):n.pcsEncoding=this.getInput2DevicePCSInfo(t[0]),i){if(!1===this.lut)throw"No LUT";if(!Array.isArray(this.lut.chain))throw"LUT has no profile chain";if(this.lut.chain.length<2)throw"LUT chain is too short";var s=this.lut.chain[0],o=this.lut.chain[this.lut.chain.length-1];if(!s.hasOwnProperty("header")||!s.hasOwnProperty("name"))throw"LUT Chain does not start with a profile";if(!o.hasOwnProperty("header")||!o.hasOwnProperty("name"))throw"LUT Chain does not end with a profile";this.createPipeline_Device_to_Device_via_LUT(n,s,o)}else for(var u=0,l=0;l<t.length-1;l+=2){var m={inputProfile:t[l],intent:t[l+1],outputProfile:t[l+2]};if(this.insertCustomStage("beforeDevice2PCS",n,u),this.createPipeline_Device_to_PCS(n,m.inputProfile,m.outputProfile,m.intent),this.insertCustomStage("afterDevice2PCS",n,u),n.pcsEncoding===c.PCSXYZ||n.pcsEncoding===c.PCSv4||n.pcsEncoding===c.PCSv2){var A;if(A=Array.isArray(this.useBPC)?this.useBPC[u]:this.useBPC,this._BPCAutoEnable)switch(m.intent){case h.saturation:case h.perceptual:4!==m.inputProfile.version&&4!==m.outputProfile.version||(A=!0),this.isGreyTRCwithNOLUT(m.inputProfile,m.intent)&&(A=!0);break;case h.absolute:A=!1}A&&this.createPipeline_BlackPointCompensation(n,m.inputProfile,m.outputProfile,m.intent),this.insertCustomStage("PCS",n,u),this.createPipeline_chromaticAdaptation(n,m.inputProfile,m.outputProfile,m.intent)}this.insertCustomStage("beforePCS2Device",n,u),this.createPipeline_PCS_to_Device(n,m.inputProfile,m.outputProfile,m.intent),this.insertCustomStage("afterPCS2Device",n,u),u++}a&&"device"!==this.dataFormat&&(this.createPipeline_Device_to_Output(n,t[r]),i||this.insertCustomStage("afterDevice2Output",n,!1)),this.pipelineDebug&&this.addStage(!1,"END",this.stage_debug,"[PipeLine Output]| {data}",!1),this.optimise&&this.optimisePipeline(),this.verifyPipeline()}verifyPipeline(){for(var t=this.pipeline.length-1,e=0;e<t;e++)if(!1!==this.pipeline[e].outputEncoding&&!1!==this.pipeline[e+1].inputEncoding){if("function"!=typeof this.pipeline[e].funct)throw"No Function on stage @ "+e+" "+this.pipeline[e].stageName;if(this.pipeline[e].outputEncoding!==this.pipeline[e+1].inputEncoding)throw console.log(this.getStageNames(!0,!0)),"Incompatible Stages @ Stage "+e+" ("+this.pipeline[e].stageName+" "+A[this.pipeline[e].outputEncoding]+" > "+A[this.pipeline[e+1].inputEncoding]+" "+this.pipeline[e+1].stageName+")"}}optimisePipeline(){for(var t=this,e=!0,a=this.pipeline.length,i=this.getStageNames(),n=["linearInterp1D","bilinearInterp2D","trilinearInterp3D","tetrahedralInterp3D","trilinearInterp4D","tetrahedralInterp4D"];!0===e;){e=!1,e|=this.optimiseFindPattern("stage_null",!1,(function(t,e,a){return a.outputEncoding=e.inputEncoding,a.stageName+=" >> ALIAS "+A[e.inputEncoding],a.optimised=!0,[e]})),e|=this.optimiseFindPattern("stage_LabD50_to_PCSv4","stage_PCSv4_to_LabD50",(function(){return[]})),e|=this.optimiseFindPattern("stage_PCSv4_to_LabD50","stage_LabD50_to_PCSv4",(function(){return[]})),e|=this.optimiseFindPattern("stage_PCSv2_to_PCSv4","stage_PCSv4_to_PCSv2",(function(){return[]})),e|=this.optimiseFindPattern("stage_PCSv4_to_PCSv2","stage_PCSv2_to_PCSv4",(function(){return[]})),e|=this.optimiseFindPattern("stage_PCSXYZ_to_PCSv4","stage_PCSv4_to_PCSXYZ",(function(){return[]})),e|=this.optimiseFindPattern("stage_PCSXYZ_to_PCSv4","stage_PCSv4_to_PCSv2",(function(e,a){return[t.createStage(e.inputEncoding,"stage_PCSXYZ_to_PCSv2",t.stage_PCSXYZ_to_PCSv2,null,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]})),e|=this.optimiseFindPattern("stage_LabD50_to_PCSv4","stage_PCSv4_to_PCSXYZ",(function(e,a){return[t.createStage(e.inputEncoding,"stage_LabD50_to_PCSXYZ",t.stage_LabD50_to_PCSXYZ,null,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]})),e|=this.optimiseFindPattern("stage_PCSv2_to_PCSv4","stage_PCSv4_to_cmsLab",(function(e,a){return[t.createStage(e.inputEncoding,"stage_PCSv2_to_cmsLab",t.stage_PCSv2_to_cmsLab,null,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]})),e|=this.optimiseFindPattern("stage_LabD50_to_PCSv2","stage_PCSv2_to_PCSv4",(function(e,a){return[t.createStage(e.inputEncoding,"stage_LabD50_to_PCSv4",t.stage_LabD50_to_PCSv4,null,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]})),e|=this.optimiseFindPattern("stage_LabD50_to_PCSv4","stage_PCSv4_to_PCSv2",(function(e,a){return[t.createStage(e.inputEncoding,"stage_LabD50_to_PCSv2",t.stage_LabD50_to_PCSv2,null,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]})),e|=this.optimiseFindPattern("stage_LabD50_to_PCSv4","stage_PCSv4_to_cmsLab",(function(e,a){return[t.createStage(e.inputEncoding,"stage_LabD50_to_cmsLab",t.stage_LabD50_to_cmsLab,null,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]})),e|=this.optimiseFindPattern("stage_LabD50_to_PCSv2","stage_PCSv2_to_cmsLab",(function(e,a){return[t.createStage(e.inputEncoding,"stage_LabD50_to_cmsLab",t.stage_LabD50_to_cmsLab,null,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]})),e|=this.optimiseFindPattern("stage_matrix_rgb","stage_matrix_rgb",(function(e,a){var i=e.stageData,n=a.stageData,s=r.multiplyMatrices(n,i);return[t.createStage(e.inputEncoding,"stage_matrix_rgb",t.stage_matrix_rgb,s,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]}));for(var s=0;s<n.length;s++){var o=n[s];e|=this.optimiseFindPattern("stage_Int_to_Device",o,(function(e,a){var i=a.stageData,r=e.stageData;return i.inputScale=1/r,[t.createStage(e.inputEncoding,o,a.funct,i,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]})),e|=this.optimiseFindPattern(o,"stage_device_to_int",(function(e,a){var i=e.stageData,r=a.stageData;i.outputScale=i.outputScale*r,i.outputScale>.99&&i.outputScale<1.01&&(i.outputScale=1);var n="stage_device"+i.outputChannels+"_to_int";return[t.createStage(e.inputEncoding,o,e.funct,i,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0),t.createStage(a.outputEncoding,n,t[n],1,a.outputEncoding," *[optimised : {name}]|({last}) > ({data})",!0)]}))}}this.optimiseDebug=["==========================================================================================","** OPTIMISED PIPELINE - REMOVED "+(a-this.pipeline.length)+" STAGES **","BEFORE OPTIMISE\n"+i,"------------------------------------------------------------------------------------------","AFTER OPTIMISE\n"+this.getStageNames(),"=========================================================================================="]}optimiseFindPattern(t,e,a){for(var i=0;i<this.pipeline.length-1;i++)if(this.pipeline[i].stageName===t&&(this.pipeline[i+1].stageName===e||!1===e)){var r=i>1&&this.pipeline[i-1],n=this.pipeline[i+1],s=a(this.pipeline[i],n,r),o=this.pipeline.slice(0,i),h=this.pipeline.slice(i+2);return this.pipeline=o.concat(s,h),!0}return!1}createPipeline_Device_to_Device_via_LUT(t,e,a){if(!this.lut)throw"No LUT";switch(this.lut.inputChannels){case 1:this.addStageLUT(!1,this.getInput2DevicePCSInfo(e),this.lut,this.getDevice2OutputPCSInfo(a)," [Prebuilt LUT1D : {name}]|({last}) > ({data})");break;case 2:this.addStageLUT(!1,this.getInput2DevicePCSInfo(e),this.lut,this.getDevice2OutputPCSInfo(a)," [Prebuilt LUT2D : {name}]|({last}) > ({data})");break;case 3:this.addStageLUT(!1,this.getInput2DevicePCSInfo(e),this.lut,this.getDevice2OutputPCSInfo(a)," [Prebuilt LUT3D : {name}]|({last}) > ({data})");break;case 4:this.addStageLUT(!1,this.getInput2DevicePCSInfo(e),this.lut,this.getDevice2OutputPCSInfo(a)," [Prebuilt LUT4D : {name}]|({last}) > ({data})");break;default:throw"Can not use Prebuilt LUT - Unknown LUT inputChannels "+this.lut.inputChannels}t.pcsEncoding=this.getDevice2OutputPCSInfo(a)}createPipeline_Input_to_Device(t,e){switch(e.type){case u.XYZ:this.addStage(c.cmsXYZ,"stage_XYZ_to_PCSXYZ",this.stage_XYZ_to_PCSXYZ,null,c.PCSXYZ," [Input2Device : XYZ : {name}]|({last}) > ({data})"),t.pcsEncoding=c.PCSXYZ;break;case u.Lab:this.labInputAdaptation?(this.addStage(c.cmsLab,"stage_cmsLab_to_LabD50",this.stage_cmsLab_to_LabD50,null,c.LabD50," [Input2Device : Lab : {name}]| ({last}) > ({data})"),this.addStage(c.LabD50,"stage_LabD50_to_PCSv4",this.stage_LabD50_to_PCSv4,null,c.PCSv4," [Input2Device : Lab : {name}]|({last}) > ({data})")):this.addStage(c.cmsLab,"stage_LabD50_to_PCSv4",this.stage_LabD50_to_PCSv4,null,c.PCSv4," [Input2Device : Lab : {name}]|({last}) > ({data})"),t.pcsEncoding=c.PCSv4;break;case u.RGBMatrix:switch(t.pcsEncoding=c.device,this.dataFormat){case"object":case"objectFloat":this.addStage(c.cmsLab,"stage_RGB_to_Device",this.stage_RGB_to_Device,null,t.pcsEncoding," [Input2Device : RGBMatrix : {name}]|({last}) > ({data})");break;case"int8":this.addStage(c.cmsLab,"stage_Int_to_Device",this.stage_Int_to_Device,255,t.pcsEncoding," [int8 to Device : RGBMatrix : {name}]|({last}) > ({data})");break;case"int16":this.addStage(c.cmsLab,"stage_Int_to_Device",this.stage_Int_to_Device,65535,t.pcsEncoding," [int16 to Device : RGBMatrix : {name}]|({last}) > ({data})")}break;case u.Gray:switch(t.pcsEncoding=c.device,this.dataFormat){case"object":case"objectFloat":this.addStage(c.cmsRGB,"stage_Gray_to_Device",this.stage_Gray_to_Device,null,t.pcsEncoding," [Input2Device : Gray : {name}]|({last}) > ({data})");break;case"int8":this.addStage(c.cmsLab,"stage_Int_to_Device",this.stage_Int_to_Device,255,t.pcsEncoding," [in8 2Device : Gray : {name}]|({last}) > ({data})");break;case"int16":this.addStage(c.cmsLab,"stage_Int_to_Device",this.stage_Int_to_Device,65535,t.pcsEncoding," [in16 2Device : Gray : {name}]|({last}) > ({data})")}break;case u.Duo:switch(t.pcsEncoding=c.device,this.dataFormat){case"object":case"objectFloat":this.addStage(c.cmsRGB,"stage_Duo_to_Device",this.stage_Duo_to_Device,null,t.pcsEncoding," [Input2Device : Duo : {name}]|({last}) > ({data})");break;case"int8":this.addStage(c.cmsLab,"stage_Int_to_Device",this.stage_Int_to_Device,255,t.pcsEncoding," [in8 2Device : Duo : {name}]|({last}) > ({data})");break;case"int16":this.addStage(c.cmsLab,"stage_Int_to_Device",this.stage_Int_to_Device,65535,t.pcsEncoding," [in16 2Device : Duo : {name}]|({last}) > ({data})")}break;case u.RGBLut:switch(t.pcsEncoding=c.device,this.dataFormat){case"object":case"objectFloat":this.addStage(c.cmsRGB,"stage_RGB_to_Device",this.stage_RGB_to_Device,null,t.pcsEncoding," [Input2Device : RGBLut : {name}]|({last}) > ({data})");break;case"int8":this.addStage(c.cmsLab,"stage_Int_to_Device",this.stage_Int_to_Device,255,t.pcsEncoding," [in8 2Device : RGBLut : {name}]|({last}) > ({data})");break;case"int16":this.addStage(c.cmsLab,"stage_Int_to_Device",this.stage_Int_to_Device,65535,t.pcsEncoding," [in16 2Device : RGBLut : {name}]|({last}) > ({data})")}break;case u.CMYK:switch(t.pcsEncoding=c.device,this.dataFormat){case"object":case"objectFloat":this.addStage(c.cmsCMYK,"stage_CMYK_to_Device",this.stage_CMYK_to_Device,null,t.pcsEncoding," [Input2Device : CMYK : {name}]|({last}) > ({data})");break;case"int8":this.addStage(c.cmsCMYK,"stage_Int_to_Device",this.stage_Int_to_Device,255,t.pcsEncoding," [in8 2Device : CMYK : {name}]|({last}) > ({data})");break;case"int16":this.addStage(c.cmsCMYK,"stage_Int_to_Device",this.stage_Int_to_Device,65535,t.pcsEncoding," [in16 2Device : CMYK : {name}]|({last}) > ({data})")}}}getProfileChannels(t){switch(t.type){case u.Gray:return 1;case u.Duo:return 2;case u.XYZ:case u.Lab:case u.RGBMatrix:case u.RGBLut:return 3;case u.CMYK:return 4}throw"Unknown profile type "+t.type+"in getProfileChannels"}getInput2DevicePCSInfo(t){switch(t.type){case u.Lab:return c.PCSv4;case u.XYZ:return c.PCSXYZ;case u.Gray:case u.Duo:case u.RGBMatrix:case u.RGBLut:case u.CMYK:return c.device}throw"Unknown profile type "+profile.type+"in getInput2DevicePCSInfo"}getDevice2OutputPCSInfo(t){switch(t.type){case u.Lab:return 2===t.version?c.PCSv2:c.PCSv4;case u.XYZ:return c.PCSXYZ;case u.Gray:case u.Duo:case u.RGBMatrix:case u.RGBLut:case u.CMYK:return c.device}throw"Unknown profile type "+profile.type+"in getDevice2OutputPCSInfo"}isGreyTRCwithNOLUT(t,e){return t.Gray.kTRC&&!t.A2B[this.intent2LUTIndex(e)]}insertCustomStage(t,e,a){if(this.customStages&&this.customStages.length>0)for(var i=0;i<this.customStages.length;i++){var r=this.customStages[i];r.location===t&&this.addStage(e.pcsEncoding,"Custom:"+r.description,r.stageFn,r.stageData,e.pcsEncoding),!1!==a&&r.location+"("+a+")"===t&&this.addStage(e.pcsEncoding,"Custom:"+r.description,r.stageFn,r.stageData,e.pcsEncoding)}}createPipeline_chromaticAdaptation(t,e,a){this.displayChromaticAdaptation&&(r.compareWhitePoints(e.mediaWhitePoint,a.mediaWhitePoint)||(this.pipeline_Convert_PCS_to(t,c.PCSXYZ),this.addStage(c.PCSXYZ,"stage_ChromaticAdaptation",this.stage_chromaticAdaptation,{inputWhitePoint:e.mediaWhitePoint,outputWhitePoint:a.mediaWhitePoint},c.PCSXYZ," [ChromaticAdaptation : {name}]|({last}) > ({data})")))}createPipeline_BlackPointCompensation(t,e,a,i){if(a.type!==u.Duo&&e.type!==u.Duo&&(e.type!==u.RGBMatrix||a.type!==u.RGBMatrix)){var r=this.detectBlackpoint(e,i),n=this.detectOutputBlackpoint(a,i);if(!1!==r&&!1!==n&&(r.X!==n.X||r.Y!==n.Y||r.Z!==n.Z)){var s,o,h,l,m,A,g,d,p;this.pipeline_Convert_PCS_to(t,c.PCSXYZ),g=r.X-.9642,d=r.Y-1,p=r.Z-.8249;var C={scale:{X:s=(n.X-.9642)/g,Y:o=(n.Y-1)/d,Z:h=(n.Z-.8249)/p},offset:{X:l=-.9642*(n.X-r.X)/g,Y:m=-1*(n.Y-r.Y)/d,Z:A=-.8249*(n.Z-r.Z)/p}};if(this.pipelineDebug){var _=this.debugHistoryDecimals;this.addStage(c.PCSXYZ,"Black Point Info:",this.stage_history,"NaN scale.ax = "+s.toFixed(_)+" scale.ay = "+o.toFixed(_)+" scale.az = "+h.toFixed(_)+" offset.bx = "+l.toFixed(_)+" offset.by = "+m.toFixed(_)+" offset.bz = "+A.toFixed(_),c.PCSXYZ,"")}this.addStage(c.PCSXYZ,"stage_BPC",this.stage_ApplyBPCScale_PCSXYZ_to_PCSXYZ,C,c.PCSXYZ," [BPC : ApplyBPCScale : {name}]| ({last}) > {data}"),t.pcsEncoding=c.PCSXYZ,this.usesBPC=!0}}}createPipeline_Device_to_PCS(t,e,a,i){switch(e.type){case u.Lab:this.createPipeline_Device_to_PCS_via_Lab(t,e);break;case u.RGBMatrix:this.createPipeline_Device_to_PCS_via_RGBMatrix(t,e,a);break;case u.Gray:if(this.isGreyTRCwithNOLUT(e,i))return void this.createPipeline_Gray_to_PCS(t,e,a,i);case u.Duo:case u.RGBLut:case u.CMYK:2===e.version?this.createPipeline_Device_to_PCS_via_V2Lut(t,e,a,i):this.createPipeline_Device_to_PCS_via_V4Lut(t,e,a,i);break;default:throw"Unknown profile type "+e.type+"in createPipeline_Device_to_PCS"}return"XYZ"===e.pcs&&t.pcsEncoding===c.PCSXYZ&&(this.addStage(c.PCSXYZ,"stage_PCSXYZ_to_PCSv4",this.stage_PCSXYZ_to_PCSv4,null,c.PCSv4," [PCSv4_to_Device : XYZ : {name}]|({last}) > ({data})"),t.pcsEncoding=c.PCSv4),t}createPipeline_Device_to_PCS_via_Lab(t,e){switch(e.pcs){case"XYZ":this.pipeline_Convert_PCS_to(t,c.PCSXYZ);break;case"LAB":this.pipeline_Convert_PCS_to(t,c.PCSv4);break;default:throw"Unknown PCS "+e.pcs+" in createPipeline_Device_to_PCS_via_Lab"}}createPipeline_Device_to_PCS_via_RGBMatrix(t,e){if(t.pcsEncoding!==c.device)throw"Device to PSC RGBMatrix expects device encoding";if(this._expandRGBStages){var a=e.RGBMatrix.XYZMatrix,i=r.matrixScaleValues(a,.5000076295109483);e.rgb.rTRC&&e.rgb.rTRC.use?this.addStage(c.device,"stage_curves_v4",this.stage_curves_v4,[e.rgb.rTRC,e.rgb.gTRC,e.rgb.bTRC],c.device," *[optimised : {name}]|({last}) > ({data})",!0):this.addStage(c.device,"stage_Gamma_Inverse",this.stage_Gamma_Inverse,e.RGBMatrix,c.device," *[optimised : {name}]|({last}) > ({data})",!0),this.addStage(c.device,"stage_matrix_rgb",this.stage_matrix_rgb,i,c.PCSXYZ," *[optimised : {name}]|({last}) > ({data})",!0),t.pcsEncoding=c.PCSXYZ}else this.addStage(c.device,"stage_RGBDevice_to_PCSv4",this.stage_RGBDevice_to_PCSv4,e,c.PCSXYZ," [DevicetoPCS : RGBMatrix : {name}]|({last}) > ({data})"),t.pcsEncoding=c.PCSXYZ}createPipeline_Device_to_PCS_via_V2Lut(t,e,a,i){if(t.pcsEncoding!==c.device)throw console.log(this.getStageNames(!0)),"createPipeline_Version2_CH4toPCSv4: expects device encoding not "+A[t.pcsEncoding];var r=e.A2B[this.intent2LUTIndex(i)];switch(this.addStage(c.device,"stage_curve_v2",this.stage_curve_v2,r.inputCurve,c.device," [V2_Device_to_PCSv4 : {name}]| ({last}) > ({data})"),"XYZ"===e.pcs?t.pcsEncoding=c.PCSXYZ:t.pcsEncoding=2===e.PCSDecode?c.PCSv2:c.PCSv4,r.inputChannels){case 1:case 2:case 3:case 4:this.addStageLUT(!1,c.device,r,t.pcsEncoding," [V2_Device_to_PCSv4 : {name}]|({last}) > ({data})");break;default:throw"UnSupported number of Input Channels "+r.inputChannels}this.addStage(t.pcsEncoding,"stage_curve_v2",this.stage_curve_v2,r.outputCurve,t.pcsEncoding," [V2_Device_to_PCSv4 : {name}]|({last}) > ({data}) ({data:f>16})"),this.createPipeline_Absolute_Adaptation_Input(t,e,i)}createPipeline_Device_to_PCS_via_V4Lut(t,e,a,i){if(t.pcsEncoding!==c.device)throw console.log(this.getStageNames(!0)),"V4_CH4_to_PCSv4: expects device encoding not "+A[t.pcsEncoding];var r=e.A2B[this.intent2LUTIndex(i)];if(!r)throw"No LUT in createPipeline_Device_to_PCS_via_V4Lut for the intent "+i;if(!1===r.aCurves||this.isPassThrough(r.aCurves)||this.addStage(c.device,"stage_curves_v4",this.stage_curves_v4,r.aCurves,c.device," [V4_Device_to_PCSv4 : aCurves : {name}]|({last}) > ({data}) ({data:f>16})"),"XYZ"===e.pcs?t.pcsEncoding=c.PCSXYZ:t.pcsEncoding=c.PCSv4,!1!==r.CLUT4)switch(r.inputChannels){case 1:case 2:case 3:case 4:this.addStageLUT(!1,c.device,r,t.pcsEncoding," [V4_Device_to_PCSv4 : {name}]|({last}) > ({data})");break;default:throw"Unsupported number of Output Channels"}!1===r.mCurves||this.isPassThrough(r.mCurves)||this.addStage(t.pcsEncoding,"stage_curves_v4",this.stage_curves_v4,r.mCurves,t.pcsEncoding," [V4_Device_to_PCSv4 : mCurves : {name}]|({last}) > ({data}) ({data:f>16})"),!1!==r.matrix&&(this.isIdentityMatrix(r.matrix)||this.addStage(t.pcsEncoding,"stage_Matrix",this.matrixHasOffsets(r.matrix)?this.stage_matrix_v4:this.stage_matrix_v4_noOffsets,r.matrix,t.pcsEncoding," [V4_Device_to_PCSv4 : Matrix : {name}]|({last}) > ({data}) ({data:f>16})")),!1===r.bCurves||this.isPassThrough(r.bCurves)||this.addStage(t.pcsEncoding,"stage_curves_v4",this.stage_curves_v4,r.bCurves,t.pcsEncoding," [V4_Device_to_PCSv4 : bCurves : {name}]|({last}) > ({data}) ({data:f>16})"),this.createPipeline_Absolute_Adaptation_Input(t,e,i)}createPipeline_Gray_to_PCS(t,e,a,i){if(t.pcsEncoding!==c.device)throw console.log(this.getStageNames(!0)),"Gray_to_PCSv4: expects device encoding not "+A[t.pcsEncoding];"XYZ"===e.pcs?(this.addStage(c.device,"stage_grayTRC_to_PCSXYZ_Via_Y",this.stage_grayTRC_to_PCSXYZ_Via_Y,[e.Gray.kTRC],c.PCSXYZ," [Gray_to_PCSv4 : {name}]|({last}) > ({data}) ({data:f>16})"),i===h.absolute&&this.addStage(c.PCSXYZ,"stage_absoluteAdaptationIn_PCSXYZ_to_PCSXYZ",this.stage_absoluteAdaptationIn_PCSXYZ_to_PCSXYZ,e,c.PCSXYZ," [Gray_to_PCSv4 : {name}]|({last}) > ({data}) ({data:f>16})"),t.pcsEncoding=c.PCSXYZ):(this.addStage(c.device,"stage_curves_v4",this.stage_grayTRC_to_PCSV4_Via_L,[e.Gray.kTRC],c.PCSv4," [Gray_to_PCSv4 : {name}]|({last}) > ({data}) ({data:f>16})"),t.pcsEncoding=c.PCSv4,this.createPipeline_Absolute_Adaptation_Input(t,e,i))}isPassThrough(t){for(var e=!0,a=0;a<t.length;a++)e=e&&t[a].passThrough;return e}createPipeline_PCS_to_Device(t,e,a,i){if(t.pcsEncoding===c.PCSv4&&t.pcsEncoding===c.PCSXYZ)throw console.log(this.getStageNames(!0)),"createPipeline_PCS_to_Device: expects PCSv4 or PCSXYZ not "+A[t.pcsEncoding];switch(a.type){case u.Lab:return void this.createPipeline_PCS_to_Lab(t);case u.RGBMatrix:return void this.createPipeline_PCS_to_Device_via_RGBMatrix(t,e,a);case u.Gray:if(this.isGreyTRCwithNOLUT(a,i))return void this.createPipeline_PCS_to_Gray_via_kTRC(t,e,a,i);case u.Duo:case u.RGBLut:case u.CMYK:return 2===a.version?void this.createPipeline_PCS_to_Device_via_V2LUT(t,e,a,i):void this.createPipeline_PCS_to_Device_via_V4LUT(t,e,a,i);default:throw"Unknown profile type "+a.type+"in createPipeline_PCS_to_Device"}}createPipeline_PCS_to_Lab(t){this.pipeline_Convert_PCS_to(t,c.PCSv4)}createPipeline_PCS_to_Device_via_RGBMatrix(t,e,a){if(this._expandRGBStages){var i=a.RGBMatrix.XYZMatrixInv,n=r.matrixScaleValues(i,1.999969482421875);this.pipeline_Convert_PCS_to(t,c.PCSXYZ),this.addStage(c.PCSXYZ,"stage_matrix_rgb",this.stage_matrix_rgb,n,c.device," *[PCS_to_RGBDevice : {name}]|({last}) > ({data})",!0),a.rgb.rTRCInv&&a.rgb.rTRCInv.use?this.addStage(c.device,"stage_curves_v4",this.stage_curves_v4,[a.rgb.rTRCInv,a.rgb.gTRCInv,a.rgb.bTRCInv],c.device," *[optimised : {name}]|({last}) > ({data})",!0):this.addStage(c.device,"stage_Gamma",this.stage_Gamma,a.RGBMatrix,c.device," *[optimised : {name}]|({last}) > ({data})",!0)}else this.pipeline_Convert_PCS_to(t,c.PCSv4),this.addStage(c.PCSv4,"stage_PCSv4_to_RGBDevice",this.stage_PCSv4_to_RGBDevice,a,c.device," [PCS_to_RGBDevice : {name}]|({last}) > ({data})");t.pcsEncoding=c.device}createPipeline_PCS_to_Device_via_V4LUT(t,e,a,i){this.createPipeline_Absolute_Adaptation_Output_Any_to_PCSv4(t,a,i);var r=a.B2A[this.intent2LUTIndex(i)];this.pipelineConvert_PCSV4_to_OutputProfile_PCS(t,r,a),!1===r.bCurves||this.isPassThrough(r.bCurves)||this.addStage(t.pcsEncoding,"stage_curves_v4",this.stage_curves_v4,r.bCurves,t.pcsEncoding," [PCSv4_to_Device_via_V4LUT : bCurves : {name}]|({last}) > ({data}) ({data:f>16})"),!1!==r.matrix&&(this.isIdentityMatrix(r.matrix)||this.addStage(t.pcsEncoding,"stage_Matrix",this.matrixHasOffsets(r.matrix)?this.stage_matrix_v4:this.stage_matrix_v4_noOffsets,r.matrix,t.pcsEncoding," [PCSv4_to_Device_via_V4LUT : Matrix : {name}]|({last}) > ({data}) ({data:f>16})")),!1===r.mCurves||this.isPassThrough(r.mCurves)||this.addStage(t.pcsEncoding,"stage_curves_v4",this.stage_curves_v4,r.mCurves,t.pcsEncoding," [PCSv4_to_Device_via_V4LUT : mCurves : {name}]|({last}) > ({data}) ({data:f>16})"),!1!==r.CLUT4?this.addStageLUT(!0,t.pcsEncoding,r,c.device," [PCSv4_to_Device_via_V4LUT : LUT : {name}]|({last}) > ({data})"):t.pcsEncoding=c.device,!1===r.aCurves||this.isPassThrough(r.aCurves)||this.addStage(c.device,"stage_curves_v4",this.stage_curves_v4,r.aCurves,c.device," [PCSv4_to_Device_via_V4LUT : aCurves : {name}]|({last}) > ({data}) ({data:f>16})"),t.pcsEncoding=c.device}isIdentityMatrix(t){return 1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&1===t[4]&&0===t[5]&&0===t[6]&&0===t[7]&&1===t[8]&&0===t[9]&&0===t[10]&&0===t[11]}matrixHasOffsets(t){return 0!==t[9]||0!==t[10]||0!==t[11]}createPipeline_PCS_to_Device_via_V2LUT(t,e,a,i){this.createPipeline_Absolute_Adaptation_Output_Any_to_PCSv4(t,a,i);var r=a.B2A[this.intent2LUTIndex(i)];if(this.pipelineConvert_PCSV4_to_OutputProfile_PCS(t,r,a),t.pcsEncoding!==c.PCSv2&&t.pcsEncoding!==c.PCSXYZ)throw console.log(this.getStageNames(!0)),"createPipeline_PCS_to_Device_via_V2LUT: expects PCSv2 or PCSXYZ not "+A[t.pcsEncoding];this.addStage(t.pcsEncoding,"stage_curve_v2",this.stage_curve_v2,r.inputCurve,t.pcsEncoding," [PCSv4_to_Device_via_V2LUT : {name}]| ({last}) > ({data})"),this.addStageLUT(!0,t.pcsEncoding,r,c.device," [PCSv4_to_Device_via_V2LUT : {name}]|({last}) > ({data})"),t.pcsEncoding=c.device,this.addStage(c.device,"stage_curve_v2",this.stage_curve_v2,r.outputCurve,t.pcsEncoding," [PCSv4_to_Device_via_V2LUT : {name}]|({last}) > ({data}) ({data:f>16})")}createPipeline_PCS_to_Gray_via_kTRC(t,e,a,i){if(t.pcsEncoding!==c.PCSv2&&t.pcsEncoding!==c.PCSv4&&t.pcsEncoding!==c.PCSXYZ)throw console.log(this.getStageNames(!0)),"PCSv4_to_Gray: expects PCSv2,PCSv4,PCSXYZ encoding not "+A[t.pcsEncoding];"XYZ"===a.pcs?(this.pipeline_Convert_PCS_to(t,c.PCSXYZ),i===h.absolute&&this.addStage(c.PCSXYZ,"stage_absoluteAdaptationOut_PCSXYZ_to_PCSXYZ",this.stage_absoluteAdaptationOut_PCSXYZ_to_PCSXYZ,a,c.PCSXYZ," [PCSv4_to_Gray : {name}]|({last}) > ({data})"),this.addStage(c.PCSXYZ,"stage_PCSXYZ_to_grayTRC_via_Y",this.stage_PCSXYZ_to_grayTRC_via_Y,[a.Gray.inv_kTRC],c.device," [PCSv4_to_Gray : {name}]|({last}) > ({data}) ({data:f>16})"),t.pcsEncoding=c.device):(this.createPipeline_Absolute_Adaptation_Output_Any_to_PCSv4(t,a,i),this.addStage(t.pcsEncoding,"stage_PCSV4_to_grayTRC_via_L",this.stage_PCSV4_to_grayTRC_via_L,[a.Gray.inv_kTRC],c.device," [PCSv4_to_Gray : {name}]|({last}) > ({data}) ({data:f>16})"),t.pcsEncoding=c.device)}createPipeline_Absolute_Adaptation_Input(t,e,a){a===h.absolute&&(this.pipeline_Convert_PCS_to(t,c.PCSXYZ),this.pipelineDebug&&this.addStage(c.PCSXYZ,"Input_Absolute_Adaptation:",this.stage_history," [Input_Absolute_Adaptation] .................................. Xa = "+e.absoluteAdaptationIn.Xa+", Ya = "+e.absoluteAdaptationIn.Ya+", Za = "+e.absoluteAdaptationIn.Za,c.PCSXYZ,""),this.usesAdaptation=!0,this.addStage(c.PCSXYZ,"stage_absoluteAdaptationIn_PCSXYZ_to_PCSXYZ",this.stage_absoluteAdaptationIn_PCSXYZ_to_PCSXYZ,e,c.PCSXYZ," [InputAdaptation : {name}]| ({last}) > ({data})"),t.pcsEncoding=c.PCSXYZ)}createPipeline_Absolute_Adaptation_Output_Any_to_PCSv4(t,e,a){if(a===h.absolute){if(t.pcsEncoding!==c.PCSv2&&t.pcsEncoding!==c.PCSv4&&t.pcsEncoding!==c.PCSXYZ)throw"createPipeline_Absolute_Adaptation_Output_Any_to_PCSv4, Encoding must be PCSXYZ, PCSv2 or PVCSv4 not "+A[t.pcsEncoding];this.pipeline_Convert_PCS_to(t,c.PCSXYZ),this.pipelineDebug&&this.addStage(c.PCSXYZ,"Output_Absolute_Adaptation:",this.stage_history,"NaNXa = "+e.absoluteAdaptationOut.Xa+", Ya = "+e.absoluteAdaptationOut.Ya+", Za = "+e.absoluteAdaptationOut.Za,c.PCSXYZ,""),this.usesAdaptation=!0,this.addStage(c.PCSXYZ,"stage_absoluteAdaptationOut_PCSXYZ_to_PCSXYZ",this.stage_absoluteAdaptationOut_PCSXYZ_to_PCSXYZ,e,c.PCSXYZ," [OutputAdaptation : {name}]| ({last}) > ({data})"),this.addStage(c.PCSXYZ,"stage_PCSXYZ_to_PCSv4",this.stage_PCSXYZ_to_PCSv4,null,c.PCSv4," [OutputAdaptation : {name}]| ({last}) > ({data})"),t.pcsEncoding=c.PCSv4}}pipeline_Convert_PCS_to(t,e){var a=this.createConvert_PCS_stage(t,e);a&&this.pushStage(a)}createConvert_PCS_stage(t,e){switch(e){case c.PCSXYZ:switch(t.pcsEncoding){case c.PCSv2:return t.pcsEncoding=c.PCSXYZ,this.createStage(c.PCSv2,"stage_PCSv2_to_PCSXYZ",this.stage_PCSv2_to_PCSXYZ,null,c.PCSXYZ," [Convert PCS : stage_PCSv2_to_PCSXYZ] ({last}) > ({data})");case c.PCSv4:return t.pcsEncoding=c.PCSXYZ,this.createStage(c.PCSv4,"stage_PCSv4_to_PCSXYZ",this.stage_PCSv4_to_PCSXYZ,null,c.PCSXYZ," [Convert PCS : stage_PCSv4_to_PCSXYZ] ({last}) > ({data})");case c.PCSXYZ:return!1;default:throw"pipelineConvert_PCSV4_to_OutputProfile_PCS, unexpected XYZ encoding "+A[t.pcsEncoding]}case c.PCSv2:switch(t.pcsEncoding){case c.PCSv2:return!1;case c.PCSv4:return t.pcsEncoding=c.PCSv2,this.createStage(c.PCSv4,"stage_PCSv4_to_PCSv2",this.stage_PCSv4_to_PCSv2,null,t.pcsEncoding," [Convert PCS : {name}] ({last}) > ({data})");case c.PCSXYZ:return t.pcsEncoding=c.PCSv2,this.createStage(c.PCSXYZ,"stage_PCSXYZ_to_PCSv2",this.stage_PCSXYZ_to_PCSv2,null,c.PCSv2," [Convert PCS : {name}] ({last}) > ({data})");default:throw"CheckPCSVersion, Unexpected LAB Encoding "+A[t.pcsEncoding]}case c.PCSv4:switch(t.pcsEncoding){case c.PCSXYZ:return t.pcsEncoding=c.PCSv4,this.createStage(c.PCSXYZ,"stage_PCSXYZ_to_PCSv4",this.stage_PCSXYZ_to_PCSv4,null,c.PCSv4," [Convert PCS : {name}] ({last}) > ({data})");case c.PCSv2:return t.pcsEncoding=c.PCSv4,this.createStage(c.PCSv2,"stage_PCSv2_to_PCSv4",this.stage_PCSv2_to_PCSv4,null,c.PCSv4," [Convert PCS : {name}] ({last}) > ({data})");case c.PCSv4:return!1;default:throw"Convert PCS, Unexpected LAB Encoding "+A[t.pcsEncoding]}default:throw"pipelineConvert_PCS, unexpected destination PCS encoding "+A[e]}}pipelineConvert_PCSV4_to_OutputProfile_PCS(t,e,a){var i;switch(a.pcs){case"XYZ":this.pipeline_Convert_PCS_to(t,c.PCSXYZ);break;case"LAB":switch(a.version){case 2:8===e.precision?(i=this.createConvert_PCS_stage(t,c.PCSv4))?(t.pcsEncoding=c.PCSv2,i.outputEncoding=c.PCSv2):(t.pcsEncoding=c.PCSv2,this.addStage(c.PCSv4,"stage_null",this.stage_null,null,t.pcsEncoding," [CheckPCSVersion : {name}] ({last}) > ({data})")):i=this.createConvert_PCS_stage(t,c.PCSv2),i&&this.pushStage(i);break;case 4:this.pipeline_Convert_PCS_to(t,c.PCSv4);break;default:throw"pipelineConvert_PCSV4_to_OutputProfile_PCS, unexpected profile version "+a.version}}}createPipeline_Device_to_Output(t,e){var a,i,r;if("int8"===this.dataFormat||"int16"===this.dataFormat){switch(e.outputChannels){case 1:i=this.stage_device1_to_int,r="[stage_device1_to_int "+this.dataFormat+" : {name}]| ({last}) > {data}";break;case 2:i=this.stage_device2_to_int,r="[stage_device2_to_int "+this.dataFormat+" : {name}]| ({last}) > {data}";break;case 3:i=this.stage_device3_to_int,r="[stage_device3_to_int "+this.dataFormat+" : {name}]| ({last}) > {data}";break;case 4:i=this.stage_device4_to_int,r="[stage_device4_to_int "+this.dataFormat+" : {name}]| ({last}) > {data}";break;default:i=this.stage_deviceN_to_int,r="[stage_deviceN_to_int "+this.dataFormat+" : {name}]| ({last}) > {data}"}a="int8"===this.dataFormat?255:65535}switch(e.type){case u.Gray:if(t.pcsEncoding!==c.device)throw console.log(this.getStageNames(!0)),"[Device2Output: Gray ] Input must be Device not "+A[t.pcsEncoding];switch(this.dataFormat){case"object":this.addStage(c.device,(this.roundOutput,"stage_device_to_Gray"),this.roundOutput?this.stage_device_to_Gray_round:this.stage_device_to_Gray,this.precision,c.cmsRGB," [Device2Output : Gray : {name}]| ({last}) > {data}");break;case"objectFloat":this.addStage(c.device,"stage_device_to_Grayf",this.stage_device_to_Grayf,this.precision,c.cmsRGB," [Device2Output : Gray : {name}]| ({last}) > {data}");break;case"int8":case"int16":this.addStage(c.device,"stage_device_to_int",i,a,c.device,r)}break;case u.Duo:if(t.pcsEncoding!==c.device)throw console.log(this.getStageNames(!0)),"[Device2Output: Duo ] Input must be Device not "+A[t.pcsEncoding];switch(this.dataFormat){case"object":this.addStage(c.device,(this.roundOutput,"stage_device_to_Duo"),this.roundOutput?this.stage_device_to_Duo_round:this.stage_device_to_Duo,this.precision,c.cmsRGB," [Device2Output : Duo : {name}]| ({last}) > {data}");break;case"objectFloat":this.addStage(c.device,"stage_device_to_Duof",this.stage_device_to_Duof,this.precision,c.cmsRGB," [Device2Output : Duo : {name}]| ({last}) > {data}");break;case"int8":case"int16":this.addStage(c.device,"stage_device_to_int",i,a,c.device,r)}break;case u.Lab:if(t.pcsEncoding!==c.PCSv2&&t.pcsEncoding!==c.PCSv4)throw console.log(this.getStageNames(!0)),"[Device2Output: Lab ] Input must be PCS/V2 or PCS/V4 not "+A[t.pcsEncoding];switch(this.dataFormat){case"object":case"objectFloat":t.pcsEncoding===c.PCSv2?this.addStage(c.PCSv2,"stage_PCSv2_to_cmsLab",this.stage_PCSv2_to_cmsLab,null,c.cmsLab," [Device2Output : Lab : {name}]|({last:r}) / ({last}) > {data}"):this.addStage(c.PCSv4,"stage_PCSv4_to_cmsLab",this.stage_PCSv4_to_cmsLab,null,c.cmsLab," [Device2Output : Lab : {name}]| ({last}) > {data}");break;case"int8":case"int16":this.addStage(t.pcsEncoding,"stage_device_to_int",i,a,c.device,r)}break;case u.RGBMatrix:case u.RGBLut:if(t.pcsEncoding!==c.device)throw console.log(this.getStageNames(!0)),"[Device2Output: RGB ] Input must be Device not "+A[t.pcsEncoding];switch(this.dataFormat){case"object":this.addStage(c.device,(this.roundOutput,"stage_device_to_RGB"),this.roundOutput?this.stage_device_to_RGB_round:this.stage_device_to_RGB,this.precision,c.cmsRGB," [Device2Output : RGB : {name}]| ({last}) > {data}");break;case"objectFloat":this.addStage(c.device,"stage_device_to_RGBf",this.stage_device_to_RGBf,this.precision,c.cmsRGB," [Device2Output : RGB : {name}]| ({last}) > {data}");break;case"int8":case"int16":this.addStage(c.device,"stage_device_to_int",i,a,c.device,r)}break;case u.CMYK:if(t.pcsEncoding!==c.device)throw console.log(this.getStageNames(!0)),"[Device2Output: CMYK ] Input must be Device not "+A[t.pcsEncoding];switch(this.dataFormat){case"object":this.addStage(c.device,(this.roundOutput,"stage_device_to_CMYK"),this.roundOutput?this.stage_device_to_CMYK_round:this.stage_device_to_CMYK,this.precision,c.cmsCMYK," [Device2Output : CMYK : {name}]| ({last}) > {data}");break;case"objectFloat":this.addStage(c.device,"stage_device_to_CMYKf",this.stage_device_to_CMYKf,this.precision,c.cmsCMYK," [Device2Output : CMYK : {name}]| ({last}) > {data}");break;case"int8":case"int16":this.addStage(c.device,"stage_device_to_int",i,a,c.device,r)}}}addStageLUT(t,e,a,i,r){switch(a.inputChannels){case 1:this.addStage(e,"linearInterp1D",this.linearInterp1D_NCh,a,i,r);break;case 2:this.addStage(e,"bilinearInterp2D",this.bilinearInterp2D_NCh,a,i,r);break;case 3:var n=!t||e!==c.PCSv4&&e!==c.PCSv2?this.interpolation3D:"trilinear";switch(n){case"tetrahedral":if(this.interpolationFast){switch(a.outputChannels){case 3:this.addStage(e,"tetrahedralInterp3D",this.tetrahedralInterp3D_3Ch,a,i,r);break;case 4:this.addStage(e,"tetrahedralInterp3D",this.tetrahedralInterp3D_4Ch,a,i,r);break;default:this.addStage(e,"tetrahedralInterp3D",this.tetrahedralInterp3D_NCh,a,i,r)}break}this.addStage(e,"tetrahedralInterp3D",this.tetrahedralInterp3D_3or4Ch,a,i,r);break;case"trilinear":a.outputChannels,this.addStage(e,"trilinearInterp3D",this.trilinearInterp3D_NCh,a,i,r);break;default:throw'Unknown 3D interpolation method "'+n+'"'}break;case 4:switch(this.interpolation4D){case"tetrahedral":if(this.interpolationFast)switch(a.outputChannels){case 3:this.addStage(e,"tetrahedralInterp4D",this.tetrahedralInterp4D_3Ch,a,i,r);break;case 4:this.addStage(e,"tetrahedralInterp4D",this.tetrahedralInterp4D_4Ch,a,i,r);break;default:this.addStage(e,"tetrahedralInterp4D",this.tetrahedralInterp4D_NCh,a,i,r)}else this.addStage(e,"tetrahedralInterp4D",this.tetrahedralInterp4D_3or4Ch,a,i,r);break;case"trilinear":this.addStage(e,"trilinearInterp4D",this.trilinearInterp4D_3or4Ch,a,i,r);break;default:throw'Unknown 4D interpolation method "'+this.interpolation4D+'"'}break;default:throw'Unsupported number of input channels "'+a.inputChannels+'"'}}pushStage(t){this.pipeline.push(t)}addStage(t,e,a,i,r,n){this.pushStage(this.createStage(t,e,a,i,r,n,!1))}createStage(t,e,a,i,r,n,s){return{inputEncoding:t,funct:a,stageData:i,outputEncoding:r,stageName:e,debugFormat:n=n||"",optimised:s}}stage_debug(t,e){return this.addDebugHistory(e,"stage_debug",null,t),t}emit_js_stage_debug(t,e){var a=e&&e.stageName?e.stageName:"stage_debug",i="";e&&("string"==typeof e.stageData?i=e.stageData:"string"==typeof e.debugFormat&&(i=e.debugFormat));var r=i.replace(/\{[a-z]+\}/gi,"").replace(/\|/g," ").replace(/\s+/g," ").trim();return r.length>0?"// debug marker ("+a+"): "+r+" — compile-time no-op":"// debug marker ("+a+") — compile-time no-op"}addDebugHistory(t,e,a,i){t.indexOf("{name}")>=0&&(t=t.replace("{name}",e));for(var r=t.split("{"),n=1;n<r.length;n++){var s=r[n].split("}"),o=s[0].split(":");switch(o[0].toLowerCase()){case"last":s[0]=M(a,o[1],this.debugHistoryDecimals);break;case"data":s[0]=M(i,o[1],this.debugHistoryDecimals)}r[n]=s.join("")}this.debugHistory.push(r.join(""))}stage_null(t){return t}emit_js_stage_null(t,e){return""}stage_history(t,e){return this.debugHistory.push(e),t}emit_js_stage_history(t,e){var a=e&&e.stageName?e.stageName:"stage_history",i="";e&&"string"==typeof e.stageData&&(i=e.stageData);var r=i.replace(/\s+/g," ").trim();return r.length>120&&(r=r.slice(0,117)+"..."),r.length>0?"// history marker ("+a+"): "+r+" — compile-time no-op":"// history marker ("+a+") — compile-time no-op"}stage_device_to_Gray(t){return{G:255*t[0],type:l.Gray}}emit_js_stage_device_to_Gray(t,e){return"return {\nG: (device[0] * 255),\ntype: eColourType.Gray\n}\n"}stage_device_to_Grayf(t){return{Gf:t[0],type:l.Grayf}}emit_js_stage_device_to_Grayf(t,e){return"return {\nGf: device[0],\ntype: eColourType.Grayf\n}\n"}stage_device_to_Gray_round(t,e){return{G:d(255*t[0],e),type:l.Gray}}emit_js_stage_device_to_Gray_round(t,e){return"return {\nG: Math.round(device[0] * 255 * pp) / pp,\ntype: eColourType.Gray\n}\n"}stage_Gray_to_Device(t){if(t.type===l.Gray)return[t.G/255];throw"stage_Gray_to_Device: cmsInput expects _cmsGray"}emit_js_stage_Gray_to_Device(t,e){return"return [G / 255]\n"}stage_device_to_Duo(t){return{a:100*t[0],b:100*t[1],type:l.Duo}}emit_js_stage_device_to_Duo(t,e){return"return {\na: (device[0] * 100),\na: (device[1] * 100),\ntype: eColourType.Duo\n}\n"}stage_device_to_Duof(t){return{af:t[0],bf:t[1],type:l.Duof}}stage_device_to_Duo_round(t,e){return{a:d(100*t[0],e),b:d(100*t[1],e),type:l.Duo}}stage_Duo_to_Device(t){if(t.type===l.Duo)return[t.a/100,t.b/100];if(t.type===l.Duof)return[t.af,t.bf];throw"stage_Duo_to_Device: cmsInput expects _cmsDuo"}stage_device_to_RGB(t){return{R:255*t[0],G:255*t[1],B:255*t[2],type:l.RGB}}stage_device_to_RGB_round(t,e){return{R:d(255*t[0],e),G:d(255*t[1],e),B:d(255*t[2],e),type:l.RGB}}stage_device_to_RGBf(t){return{Rf:t[0],Gf:t[1],Bf:t[2],type:l.RGBf}}stage_RGB_to_Device(t){if(t.type===l.RGB)return[t.R/255,t.G/255,t.B/255];if(t.type===l.RGBf)return[t.Rf,t.Gf,t.Bf];throw"InputtoPCS: cmsInput is not of type RGB or RGBf"}stage_device_to_CMYKf(t){return{Cf:t[0],Mf:t[1],Yf:t[2],Kf:t[3],type:l.CMYKf}}stage_device_to_CMYK(t){return{C:100*t[0],M:100*t[1],Y:100*t[2],K:100*t[3],type:l.CMYK}}stage_device_to_CMYK_round(t,e){return{C:d(100*t[0],e),M:d(100*t[1],e),Y:d(100*t[2],e),K:d(100*t[3],e),type:l.CMYK}}stage_CMYK_to_Device(t){if(t.type===l.CMYK)return[t.C/100,t.M/100,t.Y/100,t.K/100];if(t.type===l.CMYKf)return[t.Cf,t.Mf,t.Yf,t.Kf];throw"stage_CMYK_to_Device: cmsInput expects _cmsCMYK or _cmsCMYKf "}stage_device1_to_int(t,e){return[Math.round(t[0]*e)]}stage_device2_to_int(t,e){return[Math.round(t[0]*e),Math.round(t[1]*e)]}stage_device3_to_int(t,e){return[Math.round(t[0]*e),Math.round(t[1]*e),Math.round(t[2]*e)]}stage_device4_to_int(t,e){return[Math.round(t[0]*e),Math.round(t[1]*e),Math.round(t[2]*e),Math.round(t[3]*e)]}stage_deviceN_to_int(t,e){for(var a=new Array(t.length),i=0;i<t.length;i++)a[i]=Math.round(t[i]*e);return a}stage_Int_to_Device(t,e){return 3===t.length?[t[0]/e,t[1]/e,t[2]/e]:[t[0]/e,t[1]/e,t[2]/e,t[3]/e]}XYZ(t,e,a){return{type:l.XYZ,X:t,Y:e,Z:a}}Lab(t,e,a,i){return{type:l.Lab,L:t,a:e,b:a,whitePoint:i||m.d50}}XYZ2Lab(t,e){var a=.008856451679035631;e=e||m.d50;var i=t.X/e.X,r=t.Y/e.Y,n=t.Z/e.Z;return i=i<=a?841/108*i+16/116:Math.pow(i,1/3),{L:116*(r=r<=a?841/108*r+16/116:Math.pow(r,1/3))-16,a:500*(i-r),b:200*(r-(n=n<=a?841/108*n+16/116:Math.pow(n,1/3))),whitePoint:e,type:l.Lab}}Lab2XYZ(t,e){e=e||t.whitePoint||m.d50;var a=24/116,i=(t.L+16)/116,r=i+.002*t.a,n=i-.005*t.b;return{X:(r<=a?108/841*(r-16/116):r*r*r)*e.X,Y:(i<=a?108/841*(i-16/116):i*i*i)*e.Y,Z:(n<=a?108/841*(n-16/116):n*n*n)*e.Z,type:l.XYZ}}Lab2PCSv4(t){return[t.L/100,(t.a+128)/255,(t.b+128)/255]}Lab2PCSv2(t){return[652.8*t.L/65535,256*(t.a+128)/65535,256*(t.b+128)/65535]}RGBDevice_to_PCSv4_or_LabD50(t,e,a,i){var n,s,o,h,u,l,c,A;if(e.rgb.rTRC&&e.rgb.rTRC.use?(l=(u=this.stage_curves_v4(t,[e.rgb.rTRC,e.rgb.rTRC,e.rgb.rTRC]))[0],c=u[1],A=u[2]):(l=Math.min(Math.max(t[0],0),1),c=Math.min(Math.max(t[1],0),1),A=Math.min(Math.max(t[2],0),1)),e.RGBMatrix.issRGB)n=r.sRGBGamma(l),s=r.sRGBGamma(c),o=r.sRGBGamma(A);else{var g=1/e.RGBMatrix.gamma;n=Math.pow(l,g),s=Math.pow(c,g),o=Math.pow(A,g)}var d={X:n*(h=i?e.RGBMatrix.matrixV4:e.RGBMatrix.XYZMatrix).m00+s*h.m01+o*h.m02,Y:n*h.m10+s*h.m11+o*h.m12,Z:n*h.m20+s*h.m21+o*h.m22};if(i){var p=this.d50;this.compareWhitePoints(p,e.mediaWhitePoint)||(d=r.adaptation(d,e.mediaWhitePoint,p))}if(a)return this.XYZ2Lab(d,m.d50);var C=this.XYZ2Lab(d,m.d50);return[C.L/100,(C.a+128)/255,(C.b+128)/255]}PCSv4_to_RGBDevice(t,e,a){var i,n,s,o,h=this.Lab2XYZ({L:100*t[0],a:255*t[1]-128,b:255*t[2]-128},m.d50);if(a){var u=m.d50;r.compareWhitePoints(u,e.mediaWhitePoint)||(h=r.adaptation(h,u,e.mediaWhitePoint)),o=e.RGBMatrix.matrixInv}else o=e.RGBMatrix.XYZMatrixInv;return i=h.X*o.m00+h.Y*o.m01+h.Z*o.m02,n=h.X*o.m10+h.Y*o.m11+h.Z*o.m12,s=h.X*o.m20+h.Y*o.m21+h.Z*o.m22,e.rgb.rTRCInv&&e.rgb.rTRCInv.use?this.stage_curves_v4([i,n,s],[e.rgb.rTRCInv,e.rgb.rTRCInv,e.rgb.rTRCInv]):(i=Math.min(Math.max(i,0),1),n=Math.min(Math.max(n,0),1),s=Math.min(Math.max(s,0),1),e.RGBMatrix.issRGB?[r.sRGBGammaInv(i),r.sRGBGammaInv(n),r.sRGBGammaInv(s)]:[Math.pow(i,e.RGBMatrix.gamma),Math.pow(n,e.RGBMatrix.gamma),Math.pow(s,e.RGBMatrix.gamma)])}RGBDevice_to_RGBDevice(t,e){var a,i,n,s,o,h,u,l;if(e.input.curvesInv){var m=this.stage_curves_v4(t,e.output.curvesInv);h=m[0],u=m[1],l=m[2]}else e.input.issRGB?(h=r.sRGBGammaInv(t[0]),u=r.sRGBGammaInv(t[1]),l=r.sRGBGammaInv(t[2])):(o=e.input.gamma,h=Math.pow(t[0],o),u=Math.pow(t[1],o),l=Math.pow(t[2],o));return a=h*(s=e.matrix).m00+u*s.m01+l*s.m02,i=h*s.m10+u*s.m11+l*s.m12,n=h*s.m20+u*s.m21+l*s.m22,a=Math.min(Math.max(a,0),1),i=Math.min(Math.max(i,0),1),n=Math.min(Math.max(n,0),1),e.output.curves?this.stage_curves_v4([a,i,n],e.output.curves):e.output.issRGB?[r.sRGBGamma(a),r.sRGBGamma(i),r.sRGBGamma(n)]:[Math.pow(a,1/e.output.gamma),Math.pow(i,1/e.output.gamma),Math.pow(n,1/e.output.gamma)]}stage_Gamma(t,e){var a=Math.min(Math.max(t[0],0),1),i=Math.min(Math.max(t[1],0),1),n=Math.min(Math.max(t[2],0),1);return e.issRGB?[r.sRGBGamma(a),r.sRGBGamma(i),r.sRGBGamma(n)]:[Math.pow(a,1/e.gamma),Math.pow(i,1/e.gamma),Math.pow(n,1/e.gamma)]}stage_Gamma_Inverse(t,e){var a=Math.min(Math.max(t[0],0),1),i=Math.min(Math.max(t[1],0),1),n=Math.min(Math.max(t[2],0),1);return e.issRGB?[r.sRGBGammaInv(a),r.sRGBGammaInv(i),r.sRGBGammaInv(n)]:[Math.pow(a,e.gamma),Math.pow(i,e.gamma),Math.pow(n,e.gamma)]}attachStore_js_stage_Gamma_Inverse(t,e,a,i){if(i&&i.useGammaLUT){var r=a.stageData,n=4096,s=new Float64Array(n);if(r.issRGB)for(var o=0;o<n;o++){var h=o/(n-1);s[o]=h<=.04045?h/12.92:Math.pow((h+.055)/1.055,2.4)}else for(var u=r.gamma,l=0;l<n;l++){var m=l/(n-1);s[l]=Math.pow(m,u)}t["s"+e+"_gammaLut"]=s,t["s"+e+"_gammaLutMax"]=n-1}}emit_js_stage_Gamma_Inverse(t,e,a,i){var r=e.stageData,n=!(!i||!i.useGammaLUT),s=[];if(s.push("{"),s.push(" let _r = r < 0 ? 0 : (r > 1 ? 1 : r);"),s.push(" let _g = g < 0 ? 0 : (g > 1 ? 1 : g);"),s.push(" let _b = b < 0 ? 0 : (b > 1 ? 1 : b);"),n){var o="_gl"+t,h=a["s"+t+"_gammaLutMax"];s.push(" // LUT-based inverse gamma — issRGB="+!!r.issRGB+", gamma="+r.gamma+" (4096-entry table, ~32-bit precision per lcms convention)"),s.push(" const "+o+" = store.s"+t+"_gammaLut;"),s.push(" r = "+o+"[(_r * "+h+") | 0];"),s.push(" g = "+o+"[(_g * "+h+") | 0];"),s.push(" b = "+o+"[(_b * "+h+") | 0];")}else r.issRGB?(s.push(" r = _r <= 0.04045 ? _r / 12.92 : Math.pow((_r + 0.055) / 1.055, 2.4);"),s.push(" g = _g <= 0.04045 ? _g / 12.92 : Math.pow((_g + 0.055) / 1.055, 2.4);"),s.push(" b = _b <= 0.04045 ? _b / 12.92 : Math.pow((_b + 0.055) / 1.055, 2.4);")):(s.push(" r = Math.pow(_r, "+r.gamma+");"),s.push(" g = Math.pow(_g, "+r.gamma+");"),s.push(" b = Math.pow(_b, "+r.gamma+");"));return s.push("}"),s.join("\n")}stage_matrix_rgb(t,e){var a,i,r;return a=t[0],i=t[1],r=t[2],[a*e.m00+i*e.m01+r*e.m02,a*e.m10+i*e.m11+r*e.m12,a*e.m20+i*e.m21+r*e.m22]}emit_js_stage_matrix_rgb(t,e){var a=e.stageData,i=[];return i.push("{"),i.push(" let _r = r, _g = g, _b = b;"),i.push(" X = _r * "+a.m00+" + _g * "+a.m01+" + _b * "+a.m02+";"),i.push(" Y = _r * "+a.m10+" + _g * "+a.m11+" + _b * "+a.m12+";"),i.push(" Z = _r * "+a.m20+" + _g * "+a.m21+" + _b * "+a.m22+";"),i.push("}"),i.join("\n")}stage_chromaticAdaptation(t,e){var a=this.XYZ(1.999969482421875*t[0],1.999969482421875*t[1],1.999969482421875*t[2]);return[(a=r.adaptation(a,e.inWhitePoint,e.outWhitePoint)).X/1.999969482421875,a.Y/1.999969482421875,a.Z/1.999969482421875]}stage_absoluteAdaptationIn_PCSXYZ_to_PCSXYZ(t,e){return[t[0]*=e.absoluteAdaptationIn.Xa,t[1]*=e.absoluteAdaptationIn.Ya,t[2]*=e.absoluteAdaptationIn.Za]}stage_absoluteAdaptationOut_PCSXYZ_to_PCSXYZ(t,e){return[t[0]*=e.absoluteAdaptationOut.Xa,t[1]*=e.absoluteAdaptationOut.Ya,t[2]*=e.absoluteAdaptationOut.Za]}stage_ApplyBPCScale_PCSXYZ_to_PCSXYZ(t,e){return[(e.scale.X*(1.999969482421875*t[0])+e.offset.X)/1.999969482421875,(e.scale.Y*(1.999969482421875*t[1])+e.offset.Y)/1.999969482421875,(e.scale.Z*(1.999969482421875*t[2])+e.offset.Z)/1.999969482421875]}stage_grayTRC_to_PCSXYZ_Via_Y(t,e){var a=this.stage_curves_v4([t[0]],e)[0];return[m.d50.X*a/1.999969482421875,m.d50.Y*a/1.999969482421875,m.d50.Z*a/1.999969482421875]}stage_grayTRC_to_PCSV4_Via_L(t,e){return[this.stage_curves_v4([t[0]],e)[0],.5,.5]}stage_PCSXYZ_to_grayTRC_via_Y(t,e){var a=1.999969482421875*t[1];return[this.stage_curves_v4([a],e)[0]]}stage_PCSV4_to_grayTRC_via_L(t,e){var a=t[0];return[this.stage_curves_v4([a],e)[0]]}stage_PCSv4_to_PCSv2(t){return[.9961089494163424*t[0],.9961089494163424*t[1],.9961089494163424*t[2]]}stage_PCSv2_to_PCSv4(t){return[1.00390625*t[0],1.00390625*t[1],1.00390625*t[2]]}stage_LabD50_to_PCSXYZ(t){var e=this.Lab2XYZ(t);return[e.X/1.999969482421875,e.Y/1.999969482421875,e.Z/1.999969482421875]}stage_XYZ_to_PCSXYZ(t){return[t.X/1.999969482421875,t.Y/1.999969482421875,t.Z/1.999969482421875]}stage_PCSv2_to_PCSXYZ(t){var e=this.Lab2XYZ(this.Lab(100.390625*t[0],255.99609375*t[1]-128,255.99609375*t[2]-128,m.d50));return[e.X/1.999969482421875,e.Y/1.999969482421875,e.Z/1.999969482421875]}stage_PCSv4_to_PCSXYZ(t){var e=this.Lab2XYZ(this.Lab(100*t[0],255*t[1]-128,255*t[2]-128,m.d50));return[e.X/1.999969482421875,e.Y/1.999969482421875,e.Z/1.999969482421875]}stage_PCSXYZ_to_PCSv4(t){var e=this.XYZ(1.999969482421875*t[0],1.999969482421875*t[1],1.999969482421875*t[2]),a=this.XYZ2Lab(e,m.d50);return[a.L/100,(a.a+128)/255,(a.b+128)/255]}stage_PCSXYZ_to_LabD50(t){var e=this.XYZ(1.999969482421875*t[0],1.999969482421875*t[1],1.999969482421875*t[2]);return this.XYZ2Lab(e,m.d50)}stage_PCSXYZ_to_PCSv2(t){var e=this.XYZ(1.999969482421875*t[0],1.999969482421875*t[1],1.999969482421875*t[2]),a=this.XYZ2Lab(e,m.d50);return[652.8*a.L/65535,256*(a.a+128)/65535,256*(a.b+128)/65535]}emit_js_stage_PCSXYZ_to_PCSv2(t,e){var a=1.999969482421875,i=.008856451679035631,r=841/108,n=16/116,s=256/65535,o=[];return o.push("{"),o.push(" // PCSXYZ -> XYZ relative to D50 (k/W literals baked in)"),o.push(" let _fx = X * "+a/.96422+";"),o.push(" let _fy = Y * "+a/1+";"),o.push(" let _fz = Z * "+a/.82521+";"),o.push(" // Lab perceptual curve: f(t) = t^(1/3) for t > (6/29)^3, else linear segment"),o.push(" _fx = _fx <= "+i+" ? "+r+" * _fx + "+n+" : Math.cbrt(_fx);"),o.push(" _fy = _fy <= "+i+" ? "+r+" * _fy + "+n+" : Math.cbrt(_fy);"),o.push(" _fz = _fz <= "+i+" ? "+r+" * _fz + "+n+" : Math.cbrt(_fz);"),o.push(" // CIE Lab (L:0..100, a/b:-128..127) packed into PCSv2 (all 0..1)."),o.push(" // Inlined the (_L,_a,_b) temps; V8 collapses them to the same SSA either way."),o.push(" pcsL = (116.0 * _fy - 16.0) * "+652.8/65535+"; // L"),o.push(" pcsa = (500.0 * (_fx - _fy) + 128) * "+s+"; // a"),o.push(" pcsb = (200.0 * (_fy - _fz) + 128) * "+s+"; // b"),o.push("}"),o.join("\n")}stage_PCSv2_to_LabD50(t){return{L:100.390625*t[0],a:255.99609375*t[1]-128,b:255.99609375*t[2]-128}}stage_PCSv2_to_cmsLab(t){return{L:100.390625*t[0],a:255.99609375*t[1]-128,b:255.99609375*t[2]-128,type:l.Lab,whitePoint:m.d50}}stage_PCSv4_to_LabD50(t){return{L:100*t[0],a:255*t[1]-128,b:255*t[2]-128}}stage_PCSv4_to_cmsLab(t){return{L:100*t[0],a:255*t[1]-128,b:255*t[2]-128,type:l.Lab,whitePoint:m.d50}}stage_cmsLab_to_LabD50(t){if(t.type===l.Lab)return r.Lab2LabD50(t);throw"stage_cmsLab_to_LabD50: input is not of type Lab"}stage_PCSv4_to_RGBDevice(t,e){return this.PCSv4_to_RGBDevice(t,e,this.RGBMatrixWhiteAdadaptation)}stage_RGBDevice_to_PCSv4(t,e){return this.RGBDevice_to_PCSv4_or_LabD50(t,e,!1,this.RGBMatrixWhiteAdadaptation)}stage_LabD50_to_PCSv4(t){return[t.L/100,(t.a+128)/255,(t.b+128)/255]}stage_LabD50_to_PCSv2(t){return[652.8*t.L/65535,256*(t.a+128)/65535,256*(t.b+128)/65535]}stage_LabD50_to_cmsLab(t){return{L:t.L,a:t.a,b:t.b,type:l.Lab,whitePoint:m.d50}}stage_matrix_v4(t,e){return[e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[9],e[3]*t[0]+e[4]*t[1]+e[5]*t[2]+e[10],e[6]*t[0]+e[7]*t[1]+e[8]*t[2]+e[11]]}stage_matrix_v4_noOffsets(t,e){return[e[0]*t[0]+e[1]*t[1]+e[2]*t[2],e[3]*t[0]+e[4]*t[1]+e[5]*t[2],e[6]*t[0]+e[7]*t[1]+e[8]*t[2]]}evalMatrix(t,e){return[e[0]*t[0]+e[1]*t[1]+e[2]*t[2],e[3]*t[0]+e[4]*t[1]+e[5]*t[2],e[6]*t[0]+e[7]*t[1]+e[8]*t[2]]}invertMatrix(t){var e=1/(t[0]*(t[8]*t[4]-t[7]*t[5])-t[3]*(t[8]*t[1]-t[7]*t[2])+t[6]*(t[5]*t[1]-t[4]*t[2]));return[e*(t[8]*t[4]-t[7]*t[5]),-e*(t[8]*t[1]-t[7]*t[2]),e*(t[5]*t[1]-t[4]*t[2]),-e*(t[8]*t[3]-t[6]*t[5]),e*(t[8]*t[0]-t[6]*t[2]),-e*(t[5]*t[0]-t[3]*t[2]),e*(t[7]*t[3]-t[6]*t[4]),-e*(t[7]*t[0]-t[6]*t[1]),e*(t[4]*t[0]-t[3]*t[1])]}invertMatrix3(t){var e=1/(t[0]*(t[9]*t[4]-t[7]*t[4])-t[3]*(t[9]*t[1]-t[7]*t[2])+t[6]*(t[4]*t[1]-t[4]*t[2]));return[e*(t[9]*t[4]-t[7]*t[4]),-e*(t[9]*t[1]-t[7]*t[2]),e*(t[4]*t[1]-t[4]*t[2]),-e*(t[9]*t[3]-t[6]*t[4]),e*(t[9]*t[0]-t[6]*t[2]),-e*(t[4]*t[0]-t[3]*t[2]),e*(t[7]*t[3]-t[6]*t[4]),-e*(t[7]*t[0]-t[6]*t[1]),e*(t[4]*t[0]-t[3]*t[1])]}stage_curves_parametric(t,e){for(var a=t.length,i=new Array(a),r=0;r<a;r++){var n=e[r];i[r]=n.curveFn(n.params,t[r])}return i}stage_curves_v4(t,e){var a,i=e.length;a=3===i?[0,0,0]:[0,0,0,0];for(var r=0;r<i;r++){var n=e[r];if(n.curveFn)a[r]=n.curveFn(n.params,t[r]);else{var s=n.count-1,o=t[r];if(o>=1)a[r]=n.dataf[s];else if(o<=0)a[r]=n.dataf[0];else{var h=o*s,u=Math.floor(h),l=e[r].dataf[u];a[r]=l+(h-u)*(e[r].dataf[u+1]-l)}}}return a}stage_curve_v2(t,e){for(var a=0,i=e.channels,r=e.entries,n=r-1,s=e.tablef,o=new Array(i),h=0;h<i;h++){var u=t[h];if(u>=1)o[h]=s[a+n];else if(u<=0)o[h]=s[a];else{var l=u*n,m=Math.floor(l),c=l-m,A=s[a+m],g=s[a+m+1];o[h]=A+(g-A)*c}a+=r}return o}attachStore_js_stage_curve_v2(t,e,a){t["s"+e+"_table"]=a.stageData.tablef}emit_js_stage_curve_v2(t,e){var a,i=e.stageData,r=i.entries,n=r-1,s=i.channels,o="s"+t+"_table",h=e.inputEncoding;a=1===h||2===h?["pcsL","pcsa","pcsb"].slice(0,s):["d0","d1","d2","d3","d4","d5","d6","d7"].slice(0,s);var u=[];u.push("{"),u.push(" const _t = store."+o+";");for(var l=0,m=0;m<s;m++){var c=a[m],A=l;u.push(" // ch "+m+" → "+c),u.push(" {"),u.push(" let _p = "+c+";"),u.push(" if (_p >= 1.0) "+c+" = _t["+(A+n)+"];"),u.push(" else if (_p <= 0.0) "+c+" = _t["+A+"];"),u.push(" else {"),u.push(" let _pX = _p * "+n+";"),u.push(" let _p0 = _pX | 0;"),u.push(" let _rr = _pX - _p0;"),u.push(" let _y0 = _t["+A+" + _p0];"),u.push(" let _y1 = _t["+A+" + _p0 + 1];"),u.push(" "+c+" = _y0 + (_y1 - _y0) * _rr;"),u.push(" }"),u.push(" }"),l+=r}return u.push("}"),u.join("\n")}attachStore_js_trilinearInterp3D(t,e,a){t["s"+e+"_clut"]=a.stageData.CLUT}emit_js_trilinearInterp3D(t,e){var a=e.stageData,i=a.outputChannels,r=a.g1-1,n=r*a.inputScale,s=a.outputScale,o=a.go0,h=a.go1,u=a.go2,l="s"+t+"_clut",m=["d0","d1","d2","d3","d4","d5","d6","d7"].slice(0,i),c=[];c.push("{"),c.push(" const _CLUT = store."+l+";"),c.push(" let _i0 = pcsL < 0 ? 0 : (pcsL > 1 ? 1 : pcsL);"),c.push(" let _i1 = pcsa < 0 ? 0 : (pcsa > 1 ? 1 : pcsa);"),c.push(" let _i2 = pcsb < 0 ? 0 : (pcsb > 1 ? 1 : pcsb);"),c.push(" let _px = _i0 * "+n+";"),c.push(" let _py = _i1 * "+n+";"),c.push(" let _pz = _i2 * "+n+";"),c.push(" let _X0 = ~~_px, _rx = _px - _X0;"),c.push(" let _Y0 = ~~_py, _ry = _py - _Y0;"),c.push(" let _Z0 = ~~_pz, _rz = _pz - _Z0;"),c.push(" let _X1, _Y1, _Z1;"),c.push(" if (_X0 === "+r+") { _X1 = _X0 *= "+u+"; } else { _X0 *= "+u+"; _X1 = _X0 + "+u+"; }"),c.push(" if (_Y0 === "+r+") { _Y1 = _Y0 *= "+h+"; } else { _Y0 *= "+h+"; _Y1 = _Y0 + "+h+"; }"),c.push(" if (_Z0 === "+r+") { _Z1 = _Z0 *= "+o+"; } else { _Z0 *= "+o+"; _Z1 = _Z0 + "+o+"; }");for(var A=0;A<i;A++){var g=m[A];c.push(" {"),c.push(" let _d000 = _CLUT[_X0 + _Y0 + _Z0 + "+A+"];"),c.push(" let _d001 = _CLUT[_X0 + _Y0 + _Z1 + "+A+"];"),c.push(" let _d010 = _CLUT[_X0 + _Y1 + _Z0 + "+A+"];"),c.push(" let _d011 = _CLUT[_X0 + _Y1 + _Z1 + "+A+"];"),c.push(" let _d100 = _CLUT[_X1 + _Y0 + _Z0 + "+A+"];"),c.push(" let _d101 = _CLUT[_X1 + _Y0 + _Z1 + "+A+"];"),c.push(" let _d110 = _CLUT[_X1 + _Y1 + _Z0 + "+A+"];"),c.push(" let _d111 = _CLUT[_X1 + _Y1 + _Z1 + "+A+"];"),c.push(" let _dx00 = _d000 + _rx * (_d100 - _d000);"),c.push(" let _dx01 = _d001 + _rx * (_d101 - _d001);"),c.push(" let _dx10 = _d010 + _rx * (_d110 - _d010);"),c.push(" let _dx11 = _d011 + _rx * (_d111 - _d011);"),c.push(" let _dxy0 = _dx00 + _ry * (_dx10 - _dx00);"),c.push(" let _dxy1 = _dx01 + _ry * (_dx11 - _dx01);"),c.push(" "+g+" = (_dxy0 + _rz * (_dxy1 - _dxy0)) * "+s+";"),c.push(" }")}return c.push("}"),c.join("\n")}trilinearInterp3D_NCh(t,e){var a,i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b=e.outputScale,S=e.outputChannels,E=e.g1-1,y=E*e.inputScale,P=e.CLUT,w=e.go0,L=e.go1,D=e.go2;a=(m=Math.min(Math.max(t[0],0),1)*y)-(n=~~m),s=n===E?n*=D:(n*=D)+D,i=(c=Math.min(Math.max(t[1],0),1)*y)-(o=~~c),h=o===E?o*=L:(o*=L)+L,r=(A=Math.min(Math.max(t[2],0),1)*y)-(u=~~A),l=u===E?u*=w:(u*=w)+w;for(var G=new Array(S),Q=0;Q<S;Q++)g=P[n+o+u],d=P[n+o+l],p=P[n+h+u],C=P[n+h+l],_=P[s+o+u],I=P[s+o+l],v=(f=g+a*(_-g))+i*(p+a*(P[s+h+u]-p)-f),B=(M=d+a*(I-d))+i*(C+a*(P[s+h+l]-C)-M),G[Q]=(v+r*(B-v))*b,n++,s++;return G}trilinearInterp3D_3or4Ch(t,e,a){a=void 0===a?0:a;var i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y=e.inputChannels,P=e.outputChannels,w=e.gridPoints[0],L=e.CLUT,D=w,G=w*D,Q=w*G,R=t[0]*e.inputScale,x=t[1]*e.inputScale,T=t[2]*e.inputScale;return R=Math.min(Math.max(R,0),1),x=Math.min(Math.max(x,0),1),T=Math.min(Math.max(T,0),1),x*=w-1,T*=w-1,u=(R*=w-1)-(i=Math.floor(R)),l=x-(r=Math.floor(x)),m=T-(n=Math.floor(T)),s=i+(t[0]>=1?0:1),o=r+(t[1]>=1?0:1),h=n+(t[2]>=1?0:1),c=k(i,r,n,a,L,y,P),A=k(i,r,h,a,L,y,P),g=k(i,o,n,a,L,y,P),d=k(i,o,h,a,L,y,P),p=k(s,r,n,a,L,y,P),C=k(s,r,h,a,L,y,P),_=k(s,o,n,a,L,y,P),I=k(s,o,h,a,L,y,P),f=Y(u,c,p),M=Y(u,A,C),v=Y(u,g,_),B=Y(u,d,I),b=Y(l,f,v),S=Y(l,M,B),E=Y(m,b,S),3===P?[E[0]*=e.outputScale,E[1]*=e.outputScale,E[2]*=e.outputScale]:[E[0]*=e.outputScale,E[1]*=e.outputScale,E[2]*=e.outputScale,E[3]*=e.outputScale];function Y(t,e,a){return 3===P?[e[0]+t*(a[0]-e[0]),e[1]+t*(a[1]-e[1]),e[2]+t*(a[2]-e[2])]:[e[0]+t*(a[0]-e[0]),e[1]+t*(a[1]-e[1]),e[2]+t*(a[2]-e[2]),e[3]+t*(a[3]-e[3])]}function k(t,e,a,i,r,n,s){var o;return o=3===n?(t*G+e*D+a)*s:(i*Q+t*G+e*D+a)*s,3===s?[r[o],r[o+1],r[o+2]]:[r[o],r[o+1],r[o+2],r[o+3]]}}trilinearInterp4D_3or4Ch(t,e){var a,i,r,n,s;r=n=Math.max(0,Math.min(1,t[0]*e.inputScale)),s=(n*=e.g1-1)-(a=Math.floor(n)),i=r>=1?a:a+1;var o=[t[1],t[2],t[3]],h=this.trilinearInterp3D_3or4Ch(o,e,a);if(0===s)return h;var u=this.trilinearInterp3D_3or4Ch(o,e,i);return 3===e.outputChannels?[h[0]+(u[0]-h[0])*s,h[1]+(u[1]-h[1])*s,h[2]+(u[2]-h[2])*s]:(h[0]=h[0]+(u[0]-h[0])*s,h[1]=h[1]+(u[1]-h[1])*s,h[2]=h[2]+(u[2]-h[2])*s,h[3]=h[3]+(u[3]-h[3])*s,h)}tetrahedralInterp3D_Master(t,e,a){var i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B=e.inputChannels,b=e.outputChannels,S=e.gridPoints[0],E=e.CLUT,y=S,P=S*y,w=S*P;return s=3===e.outputChannels?[0,0,0]:[0,0,0,0],f=C=t[0]*e.inputScale,M=_=t[1]*e.inputScale,v=I=t[2]*e.inputScale,C=Math.min(Math.max(C,0),1),_=Math.min(Math.max(_,0),1),I=Math.min(Math.max(I,0),1),_*=S-1,I*=S-1,i=(C*=S-1)-(m=Math.floor(C)),c=m+(f>=1?0:1),r=_-(A=Math.floor(_)),g=A+(M>=1?0:1),n=I-(d=Math.floor(I)),p=d+(v>=1?0:1),o=L(m,A,d,a),i>=r&&r>=n?(h=D(L(c,A,d,a),o),u=D(L(c,g,d,a),L(c,A,d,a)),l=D(L(c,g,p,a),L(c,g,d,a))):i>=n&&n>=r?(h=D(L(c,A,d,a),o),u=D(L(c,g,p,a),L(c,A,p,a)),l=D(L(c,A,p,a),L(c,A,d,a))):n>=i&&i>=r?(h=D(L(c,A,p,a),L(m,A,p,a)),u=D(L(c,g,p,a),L(c,A,p,a)),l=D(L(m,A,p,a),o)):r>=i&&i>=n?(h=D(L(c,g,d,a),L(m,g,d,a)),u=D(L(m,g,d,a),o),l=D(L(c,g,p,a),L(c,g,d,a))):r>=n&&n>=i?(h=D(L(c,g,p,a),L(m,g,p,a)),u=D(L(m,g,d,a),o),l=D(L(m,g,p,a),L(m,g,d,a))):n>=r&&r>=i?(h=D(L(c,g,p,a),L(m,g,p,a)),u=D(L(m,g,p,a),L(m,A,p,a)),l=D(L(m,A,p,a),o)):h=u=l=[0,0,0,0],s[0]=(o[0]+h[0]*i+u[0]*r+l[0]*n)*e.outputScale,s[1]=(o[1]+h[1]*i+u[1]*r+l[1]*n)*e.outputScale,s[2]=(o[2]+h[2]*i+u[2]*r+l[2]*n)*e.outputScale,3===e.outputChannels||(s[3]=(o[3]+h[3]*i+u[3]*r+l[3]*n)*e.outputScale),s;function L(t,a,i,r){var n;return n=3===B?(t*P+a*y+i)*b:(r*w+t*P+a*y+i)*b,3===e.outputChannels?[E[n],E[n+1],E[n+2]]:[E[n],E[n+1],E[n+2],E[n+3]]}function D(t,a){var i=[];return i[0]=t[0]-a[0],i[1]=t[1]-a[1],i[2]=t[2]-a[2],3===e.outputChannels||(i[3]=t[3]-a[3]),i}}tetrahedralInterp3D_3or4Ch(t,e,a){var i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y=e.inputScale,P=e.outputScale,w=e.inputChannels,L=e.outputChannels,D=e.g1-1,G=e.CLUT,Q=e.g1,R=e.g2,x=e.g3;return I=p=t[0]*y,f=C=t[1]*y,M=_=t[2]*y,p=Math.min(Math.max(p,0),1),C=Math.min(Math.max(C,0),1),_=Math.min(Math.max(_,0),1),C*=D,_*=D,i=(p*=D)-(l=Math.floor(p)),m=l+(I>=1?0:1),r=C-(c=Math.floor(C)),A=c+(f>=1?0:1),n=_-(g=Math.floor(_)),d=g+(M>=1?0:1),v=l,B=c,b=g,S=a,E=3===w?(v*R+B*Q+b)*L:(S*x+v*R+B*Q+b)*L,s=3===L?[G[E++],G[E++],G[E]]:[G[E++],G[E++],G[E++],G[E]],i>=r&&r>=n?(o=T(m,c,g,a,s),h=Y(m,A,g,a,m,c,g,a),u=Y(m,A,d,a,m,A,g,a)):i>=n&&n>=r?(o=T(m,c,g,a,s),h=Y(m,A,d,a,m,c,d,a),u=Y(m,c,d,a,m,c,g,a)):n>=i&&i>=r?(o=Y(m,c,d,a,l,c,d,a),h=Y(m,A,d,a,m,c,d,a),u=T(l,c,d,a,s)):r>=i&&i>=n?(o=Y(m,A,g,a,l,A,g,a),h=T(l,A,g,a,s),u=Y(m,A,d,a,m,A,g,a)):r>=n&&n>=i?(o=Y(m,A,d,a,l,A,d,a),h=T(l,A,g,a,s),u=Y(l,A,d,a,l,A,g,a)):n>=r&&r>=i?(o=Y(m,A,d,a,l,A,d,a),h=Y(l,A,d,a,l,c,d,a),u=T(l,c,d,a,s)):o=h=u=[0,0,0,0],3===L?[(s[0]+o[0]*i+h[0]*r+u[0]*n)*P,(s[1]+o[1]*i+h[1]*r+u[1]*n)*P,(s[2]+o[2]*i+h[2]*r+u[2]*n)*P]:[(s[0]+o[0]*i+h[0]*r+u[0]*n)*P,(s[1]+o[1]*i+h[1]*r+u[1]*n)*P,(s[2]+o[2]*i+h[2]*r+u[2]*n)*P,(s[3]+o[3]*i+h[3]*r+u[3]*n)*P];function T(t,e,a,i,r){var n,s,o,h;return n=3===w?(t*R+e*Q+a)*L:(i*x+t*R+e*Q+a)*L,s=G[n++]-r[0],o=G[n++]-r[1],h=G[n++]-r[2],3===L?[s,o,h]:[s,o,h,G[n]-r[3]]}function Y(t,e,a,i,r,n,s,o){var h,u,l,m,c;return 3===w?(h=(t*R+e*Q+a)*L,u=(r*R+n*Q+s)*L):(h=(i*x+t*R+e*Q+a)*L,u=(o*x+r*R+n*Q+s)*L),l=G[h++]-G[u++],m=G[h++]-G[u++],c=G[h++]-G[u++],3===L?[l,m,c]:[l,m,c,G[h]-G[u]]}}linearInterp1D_NCh(t,e){var a,i,r,n,s,o,h,u=e.outputScale,l=e.outputChannels,m=e.g1-1,c=m*e.inputScale,A=e.CLUT,g=e.go0;a=(i=Math.min(Math.max(t[0],0),1)*c)-(r=~~i),n=r===m?r*=g:(r*=g)+g;var d=new Array(l);for(h=0;h<l;h++)s=A[r++],o=A[n++],d[h]=(s+(o-s)*a)*u;return d}bilinearInterp2D_NCh(t,e){var a,i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f=e.outputScale,M=e.outputChannels,v=e.g1-1,B=v*e.inputScale,b=e.CLUT,S=e.go0,E=e.go1;a=(h=Math.min(Math.max(t[0],0),1)*B)-(r=~~h),n=r===v?r*=E:(r*=E)+E,i=(u=Math.min(Math.max(t[1],0),1)*B)-(s=~~u),o=s===v?s*=S:(s*=S)+S;var y=new Array(M);for(l=r+s,m=r+o,c=n+s,A=n+o,I=0;I<M;I++)g=b[l++],d=b[m++],p=b[c++],C=b[A++],_=g+(p-g)*a,y[I]=(_+(d+(C-d)*a-_)*i)*f;return y}tetrahedralInterp3D_NCh(t,e){var a,i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B=e.outputScale,b=e.outputChannels,S=e.g1-1,E=S*e.inputScale,y=e.CLUT,P=e.go0,w=e.go1,L=e.go2;a=(m=Math.min(Math.max(t[0],0),1)*E)-(n=~~m),s=n===S?n*=L:(n*=L)+L,i=(c=Math.min(Math.max(t[1],0),1)*E)-(o=~~c),h=o===S?o*=w:(o*=w)+w,r=(A=Math.min(Math.max(t[2],0),1)*E)-(u=~~A),l=u===S?u*=P:(u*=P)+P,g=n+o+u;var D=new Array(b);if(a>=i&&i>=r)for(d=s+o+u,p=s+h+u,_=s+h+l,v=0;v<b;v++)I=y[d++],f=y[p++],M=y[g++],D[v]=(M+(I-M)*a+(f-I)*i+(y[_++]-f)*r)*B;else if(a>=r&&r>=i)for(d=s+o+u,p=s+h+l,C=s+o+l,v=0;v<b;v++)I=y[C++],f=y[d++],M=y[g++],D[v]=(M+(f-M)*a+(y[p++]-I)*i+(I-f)*r)*B;else if(a>=i&&r>=a)for(d=s+o+l,p=n+o+l,C=s+h+l,v=0;v<b;v++)I=y[d++],f=y[p++],M=y[g++],D[v]=(M+(I-f)*a+(y[C++]-I)*i+(f-M)*r)*B;else if(i>=a&&a>=r)for(d=s+h+u,p=n+h+u,_=s+h+l,v=0;v<b;v++)I=y[p++],f=y[d++],M=y[g++],D[v]=(M+(f-I)*a+(I-M)*i+(y[_++]-f)*r)*B;else if(i>=r&&r>=a)for(d=s+h+l,p=n+h+l,C=n+h+u,v=0;v<b;v++)I=y[p++],f=y[C++],M=y[g++],D[v]=(M+(y[d++]-I)*a+(f-M)*i+(I-f)*r)*B;else if(r>=i&&i>=a)for(d=s+h+l,p=n+h+l,_=n+o+l,v=0;v<b;v++)I=y[p++],f=y[_++],M=y[g++],D[v]=(M+(y[d++]-I)*a+(I-f)*i+(f-M)*r)*B;else for(v=0;v<b;v++)D[v]=y[g++]*B;return D}tetrahedralInterp3D_4Ch(t,e){var a,i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b=e.outputScale,S=e.g1-1,E=S*e.inputScale,y=e.CLUT,P=e.go0,w=e.go1,L=e.go2;a=(m=Math.min(1,Math.max(0,t[0]))*E)-(n=~~m),s=n===S?n*=L:(n*=L)+L,i=(c=Math.min(1,Math.max(0,t[1]))*E)-(o=~~c),h=o===S?o*=w:(o*=w)+w,r=(A=Math.min(1,Math.max(0,t[2]))*E)-(u=~~A),l=u===S?u*=P:(u*=P)+P,g=n+o+u,_=y[g++],I=y[g++],f=y[g++],M=y[g];var D=new Array(4);return a>=i&&i>=r?(g=s+o+u,d=s+h+u,C=s+h+l,v=y[g++],B=y[d++],D[0]=(_+(v-_)*a+(B-v)*i+(y[C++]-B)*r)*b,v=y[g++],B=y[d++],D[1]=(I+(v-I)*a+(B-v)*i+(y[C++]-B)*r)*b,v=y[g++],B=y[d++],D[2]=(f+(v-f)*a+(B-v)*i+(y[C++]-B)*r)*b,v=y[g],B=y[d],D[3]=(M+(v-M)*a+(B-v)*i+(y[C]-B)*r)*b):a>=r&&r>=i?(g=s+o+u,d=s+h+l,p=s+o+l,v=y[p++],B=y[g++],D[0]=(_+(B-_)*a+(y[d++]-v)*i+(v-B)*r)*b,v=y[p++],B=y[g++],D[1]=(I+(B-I)*a+(y[d++]-v)*i+(v-B)*r)*b,v=y[p++],B=y[g++],D[2]=(f+(B-f)*a+(y[d++]-v)*i+(v-B)*r)*b,v=y[p],B=y[g],D[3]=(M+(B-M)*a+(y[d]-v)*i+(v-B)*r)*b):a>=i&&r>=a?(g=s+o+l,d=n+o+l,p=s+h+l,v=y[g++],B=y[d++],D[0]=(_+(v-B)*a+(y[p++]-v)*i+(B-_)*r)*b,v=y[g++],B=y[d++],D[1]=(I+(v-B)*a+(y[p++]-v)*i+(B-I)*r)*b,v=y[g++],B=y[d++],D[2]=(f+(v-B)*a+(y[p++]-v)*i+(B-f)*r)*b,v=y[g++],B=y[d++],D[3]=(M+(v-B)*a+(y[p]-v)*i+(B-M)*r)*b):i>=a&&a>=r?(g=s+h+u,d=n+h+u,C=s+h+l,v=y[d++],B=y[g++],D[0]=(_+(B-v)*a+(v-_)*i+(y[C++]-B)*r)*b,v=y[d++],B=y[g++],D[1]=(I+(B-v)*a+(v-I)*i+(y[C++]-B)*r)*b,v=y[d++],B=y[g++],D[2]=(f+(B-v)*a+(v-f)*i+(y[C++]-B)*r)*b,v=y[d],B=y[g],D[3]=(M+(B-v)*a+(v-M)*i+(y[C]-B)*r)*b):i>=r&&r>=a?(g=s+h+l,d=n+h+l,p=n+h+u,v=y[d++],B=y[p++],D[0]=(_+(y[g++]-v)*a+(B-_)*i+(v-B)*r)*b,v=y[d++],B=y[p++],D[1]=(I+(y[g++]-v)*a+(B-I)*i+(v-B)*r)*b,v=y[d++],B=y[p++],D[2]=(f+(y[g++]-v)*a+(B-f)*i+(v-B)*r)*b,v=y[d++],B=y[p++],D[3]=(M+(y[g++]-v)*a+(B-M)*i+(v-B)*r)*b):r>=i&&i>=a?(g=s+h+l,d=n+h+l,C=n+o+l,v=y[d++],B=y[C++],D[0]=(_+(y[g++]-v)*a+(v-B)*i+(B-_)*r)*b,v=y[d++],B=y[C++],D[1]=(I+(y[g++]-v)*a+(v-B)*i+(B-I)*r)*b,v=y[d++],B=y[C++],D[2]=(f+(y[g++]-v)*a+(v-B)*i+(B-f)*r)*b,v=y[d],B=y[C],D[3]=(M+(y[g]-v)*a+(v-B)*i+(B-M)*r)*b):(D[0]=_*b,D[1]=I*b,D[2]=f*b,D[3]=M*b),D}tetrahedralInterp3D_3Ch(t,e){var a,i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B=e.outputScale,b=e.g1-1,S=b*e.inputScale,E=e.CLUT,y=e.go0,P=e.go1,w=e.go2;a=(m=Math.min(1,Math.max(0,t[0]))*S)-(n=~~m),s=n===b?n*=w:(n*=w)+w,i=(c=Math.min(1,Math.max(0,t[1]))*S)-(o=~~c),h=o===b?o*=P:(o*=P)+P,r=(A=Math.min(1,Math.max(0,t[2]))*S)-(u=~~A),l=u===b?u*=y:(u*=y)+y,g=n+o+u,_=E[g++],I=E[g++],f=E[g];var L=new Array(3);return a>=i&&i>=r?(g=s+o+u,d=s+h+u,C=s+h+l,M=E[g++],v=E[d++],L[0]=(_+(M-_)*a+(v-M)*i+(E[C++]-v)*r)*B,M=E[g++],v=E[d++],L[1]=(I+(M-I)*a+(v-M)*i+(E[C++]-v)*r)*B,M=E[g],v=E[d],L[2]=(f+(M-f)*a+(v-M)*i+(E[C]-v)*r)*B):a>=r&&r>=i?(g=s+o+u,d=s+h+l,p=s+o+l,M=E[p++],v=E[g++],L[0]=(_+(v-_)*a+(E[d++]-M)*i+(M-v)*r)*B,M=E[p++],v=E[g++],L[1]=(I+(v-I)*a+(E[d++]-M)*i+(M-v)*r)*B,M=E[p],v=E[g],L[2]=(f+(v-f)*a+(E[d]-M)*i+(M-v)*r)*B):a>=i&&r>=a?(g=s+o+l,d=n+o+l,p=s+h+l,M=E[g++],v=E[d++],L[0]=(_+(M-v)*a+(E[p++]-M)*i+(v-_)*r)*B,M=E[g++],v=E[d++],L[1]=(I+(M-v)*a+(E[p++]-M)*i+(v-I)*r)*B,M=E[g],v=E[d],L[2]=(f+(M-v)*a+(E[p]-M)*i+(v-f)*r)*B):i>=a&&a>=r?(g=s+h+u,d=n+h+u,C=s+h+l,M=E[d++],v=E[g++],L[0]=(_+(v-M)*a+(M-_)*i+(E[C++]-v)*r)*B,M=E[d++],v=E[g++],L[1]=(I+(v-M)*a+(M-I)*i+(E[C++]-v)*r)*B,M=E[d],v=E[g],L[2]=(f+(v-M)*a+(M-f)*i+(E[C]-v)*r)*B):i>=r&&r>=a?(g=s+h+l,d=n+h+l,p=n+h+u,M=E[d++],v=E[p++],L[0]=(_+(E[g++]-M)*a+(v-_)*i+(M-v)*r)*B,M=E[d++],v=E[p++],L[1]=(I+(E[g++]-M)*a+(v-I)*i+(M-v)*r)*B,M=E[d],v=E[p],L[2]=(f+(E[g]-M)*a+(v-f)*i+(M-v)*r)*B):r>=i&&i>=a?(g=s+h+l,d=n+h+l,C=n+o+l,M=E[d++],v=E[C++],L[0]=(_+(E[g++]-M)*a+(M-v)*i+(v-_)*r)*B,M=E[d++],v=E[C++],L[1]=(I+(E[g++]-M)*a+(M-v)*i+(v-I)*r)*B,M=E[d],v=E[C],L[2]=(f+(E[g]-M)*a+(M-v)*i+(v-f)*r)*B):(L[0]=_*B,L[1]=I*B,L[2]=f*B),L}tetrahedralInterp4D_3Ch(t,e){var a,i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y,P,w,L,D,G,Q=e.outputScale,R=e.g1-1,x=R*e.inputScale,T=e.CLUT,Y=e.go0,k=e.go1,X=e.go2,U=e.go3,Z=U-e.outputChannels+1;c=(p=Math.min(1,Math.max(0,t[0]))*x)-(n=~~p),G=!(n===R),u=(A=Math.min(1,Math.max(0,t[1]))*x)-(a=~~A),i=a===R?a*=X:(a*=X)+X,l=(g=Math.min(1,Math.max(0,t[2]))*x)-(r=~~g),s=r===R?r*=k:(r*=k)+k,m=(d=Math.min(1,Math.max(0,t[3]))*x)-(o=~~d),h=o===R?o*=Y:(o*=Y)+Y,C=a+r+o+(n*=U),M=T[C++],v=T[C++],B=T[C],G&&(C+=Z,y=T[C++],P=T[C++],w=T[C]);var F=new Array(3);return u>=l&&l>=m?(C=i+r+o+n,_=i+s+o+n,f=i+s+h+n,b=M+((L=T[C++])-M)*u+((D=T[_++])-L)*l+(T[f++]-D)*m,S=v+((L=T[C++])-v)*u+((D=T[_++])-L)*l+(T[f++]-D)*m,E=B+((L=T[C])-B)*u+((D=T[_])-L)*l+(T[f]-D)*m,G?(C+=Z,_+=Z,f+=Z,L=T[C++],D=T[_++],F[0]=(b+(y+(L-y)*u+(D-L)*l+(T[f++]-D)*m-b)*c)*Q,L=T[C++],D=T[_++],F[1]=(S+(P+(L-P)*u+(D-L)*l+(T[f++]-D)*m-S)*c)*Q,L=T[C],D=T[_],F[2]=(E+(w+(L-w)*u+(D-L)*l+(T[f]-D)*m-E)*c)*Q):(F[0]=b*Q,F[1]=S*Q,F[2]=E*Q)):u>=m&&m>=l?(C=i+r+o+n,_=i+s+h+n,I=i+r+h+n,L=T[I++],b=M+((D=T[C++])-M)*u+(T[_++]-L)*l+(L-D)*m,L=T[I++],S=v+((D=T[C++])-v)*u+(T[_++]-L)*l+(L-D)*m,L=T[I],E=B+((D=T[C])-B)*u+(T[_]-L)*l+(L-D)*m,G?(I+=Z,C+=Z,_+=Z,L=T[I++],D=T[C++],F[0]=(b+(y+(D-y)*u+(T[_++]-L)*l+(L-D)*m-b)*c)*Q,L=T[I++],D=T[C++],F[1]=(S+(P+(D-P)*u+(T[_++]-L)*l+(L-D)*m-S)*c)*Q,L=T[I],D=T[C],F[2]=(E+(w+(D-w)*u+(T[_]-L)*l+(L-D)*m-E)*c)*Q):(F[0]=b*Q,F[1]=S*Q,F[2]=E*Q)):u>=l&&m>=u?(C=i+r+h+n,_=a+r+h+n,I=i+s+h+n,b=M+((L=T[C++])-(D=T[_++]))*u+(T[I++]-L)*l+(D-M)*m,S=v+((L=T[C++])-(D=T[_++]))*u+(T[I++]-L)*l+(D-v)*m,E=B+((L=T[C])-(D=T[_]))*u+(T[I]-L)*l+(D-B)*m,G?(C+=Z,_+=Z,I+=Z,L=T[C++],D=T[_++],F[0]=(b+(y+(L-D)*u+(T[I++]-L)*l+(D-y)*m-b)*c)*Q,L=T[C++],D=T[_++],F[1]=(S+(P+(L-D)*u+(T[I++]-L)*l+(D-P)*m-S)*c)*Q,L=T[C],D=T[_],F[2]=(E+(w+(L-D)*u+(T[I]-L)*l+(D-w)*m-E)*c)*Q):(F[0]=b*Q,F[1]=S*Q,F[2]=E*Q)):l>=u&&u>=m?(C=i+s+o+n,_=a+s+o+n,f=i+s+h+n,L=T[_++],b=M+((D=T[C++])-L)*u+(L-M)*l+(T[f++]-D)*m,L=T[_++],S=v+((D=T[C++])-L)*u+(L-v)*l+(T[f++]-D)*m,L=T[_],E=B+((D=T[C])-L)*u+(L-B)*l+(T[f]-D)*m,G?(C+=Z,_+=Z,f+=Z,L=T[_++],D=T[C++],F[0]=(b+(y+(D-L)*u+(L-y)*l+(T[f++]-D)*m-b)*c)*Q,L=T[_++],D=T[C++],F[1]=(S+(P+(D-L)*u+(L-P)*l+(T[f++]-D)*m-S)*c)*Q,L=T[_],D=T[C],F[2]=(E+(w+(D-L)*u+(L-w)*l+(T[f]-D)*m-E)*c)*Q):(F[0]=b*Q,F[1]=S*Q,F[2]=E*Q)):l>=m&&m>=u?(C=i+s+h+n,_=a+s+h+n,I=a+s+o+n,L=T[_++],D=T[I++],b=M+(T[C++]-L)*u+(D-M)*l+(L-D)*m,L=T[_++],D=T[I++],S=v+(T[C++]-L)*u+(D-v)*l+(L-D)*m,L=T[_],D=T[I],E=B+(T[C]-L)*u+(D-B)*l+(L-D)*m,G?(C+=Z,_+=Z,I+=Z,L=T[_++],D=T[I++],F[0]=(b+(y+(T[C++]-L)*u+(D-y)*l+(L-D)*m-b)*c)*Q,L=T[_++],D=T[I++],F[1]=(S+(P+(T[C++]-L)*u+(D-P)*l+(L-D)*m-S)*c)*Q,L=T[_],D=T[I],F[2]=(E+(w+(T[C]-L)*u+(D-w)*l+(L-D)*m-E)*c)*Q):(F[0]=b*Q,F[1]=S*Q,F[2]=E*Q)):m>=l&&l>=u?(C=i+s+h+n,_=a+s+h+n,f=a+r+h+n,L=T[_++],D=T[f++],b=M+(T[C++]-L)*u+(L-D)*l+(D-M)*m,L=T[_++],D=T[f++],S=v+(T[C++]-L)*u+(L-D)*l+(D-v)*m,L=T[_],D=T[f],E=B+(T[C]-L)*u+(L-D)*l+(D-B)*m,G?(C+=Z,_+=Z,f+=Z,L=T[_++],D=T[f++],F[0]=(b+(y+(T[C++]-L)*u+(L-D)*l+(D-y)*m-b)*c)*Q,L=T[_++],D=T[f++],F[1]=(S+(P+(T[C++]-L)*u+(L-D)*l+(D-P)*m-S)*c)*Q,L=T[_],D=T[f],F[2]=(E+(w+(T[C]-L)*u+(L-D)*l+(D-w)*m-E)*c)*Q):(F[0]=b*Q,F[1]=S*Q,F[2]=E*Q)):G?(F[0]=M+(y-M)*c*Q,F[1]=v+(P-v)*c*Q,F[2]=B+(w-B)*c*Q):(F[0]=M*Q,F[1]=v*Q,F[2]=B*Q),F}tetrahedralInterp4D_4Ch(t,e){var a,i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y,P,w,L,D,G,Q,R,x,T=e.outputScale,Y=e.g1-1,k=Y*e.inputScale,X=e.CLUT,U=e.go0,Z=e.go1,F=e.go2,q=e.go3,N=q-e.outputChannels+1;c=(p=Math.min(1,Math.max(0,t[0]))*k)-(n=~~p),x=!(n===Y),u=(A=Math.min(1,Math.max(0,t[1]))*k)-(a=~~A),i=a===Y?a*=F:(a*=F)+F,l=(g=Math.min(1,Math.max(0,t[2]))*k)-(r=~~g),s=r===Y?r*=Z:(r*=Z)+Z,m=(d=Math.min(1,Math.max(0,t[3]))*k)-(o=~~d),h=o===Y?o*=U:(o*=U)+U,C=a+r+o+(n*=q),M=X[C++],v=X[C++],B=X[C++],b=X[C],x&&(C+=N,w=X[C++],L=X[C++],D=X[C++],G=X[C]);var W=new Array(4);return u>=l&&l>=m?(C=i+r+o+n,_=i+s+o+n,f=i+s+h+n,S=M+((Q=X[C++])-M)*u+((R=X[_++])-Q)*l+(X[f++]-R)*m,E=v+((Q=X[C++])-v)*u+((R=X[_++])-Q)*l+(X[f++]-R)*m,y=B+((Q=X[C++])-B)*u+((R=X[_++])-Q)*l+(X[f++]-R)*m,P=b+((Q=X[C])-b)*u+((R=X[_])-Q)*l+(X[f]-R)*m,x?(C+=N,_+=N,f+=N,Q=X[C++],R=X[_++],W[0]=(S+(w+(Q-w)*u+(R-Q)*l+(X[f++]-R)*m-S)*c)*T,Q=X[C++],R=X[_++],W[1]=(E+(L+(Q-L)*u+(R-Q)*l+(X[f++]-R)*m-E)*c)*T,Q=X[C++],R=X[_++],W[2]=(y+(D+(Q-D)*u+(R-Q)*l+(X[f++]-R)*m-y)*c)*T,Q=X[C],R=X[_],W[3]=(P+(G+(Q-G)*u+(R-Q)*l+(X[f++]-R)*m-P)*c)*T):(W[0]=S*T,W[1]=E*T,W[2]=y*T,W[3]=P*T)):u>=m&&m>=l?(C=i+r+o+n,_=i+s+h+n,I=i+r+h+n,Q=X[I++],S=M+((R=X[C++])-M)*u+(X[_++]-Q)*l+(Q-R)*m,Q=X[I++],E=v+((R=X[C++])-v)*u+(X[_++]-Q)*l+(Q-R)*m,Q=X[I++],y=B+((R=X[C++])-B)*u+(X[_++]-Q)*l+(Q-R)*m,Q=X[I],P=b+((R=X[C])-b)*u+(X[_]-Q)*l+(Q-R)*m,x?(I+=N,C+=N,_+=N,Q=X[I++],R=X[C++],W[0]=(S+(w+(R-w)*u+(X[_++]-Q)*l+(Q-R)*m-S)*c)*T,Q=X[I++],R=X[C++],W[1]=(E+(L+(R-L)*u+(X[_++]-Q)*l+(Q-R)*m-E)*c)*T,Q=X[I++],R=X[C++],W[2]=(y+(D+(R-D)*u+(X[_++]-Q)*l+(Q-R)*m-y)*c)*T,Q=X[I++],R=X[C++],W[3]=(P+(G+(R-G)*u+(X[_]-Q)*l+(Q-R)*m-P)*c)*T):(W[0]=S*T,W[1]=E*T,W[2]=y*T,W[3]=P*T)):u>=l&&m>=u?(C=i+r+h+n,_=a+r+h+n,I=i+s+h+n,S=M+((Q=X[C++])-(R=X[_++]))*u+(X[I++]-Q)*l+(R-M)*m,E=v+((Q=X[C++])-(R=X[_++]))*u+(X[I++]-Q)*l+(R-v)*m,y=B+((Q=X[C++])-(R=X[_++]))*u+(X[I++]-Q)*l+(R-B)*m,P=b+((Q=X[C])-(R=X[_]))*u+(X[I]-Q)*l+(R-b)*m,x?(C+=N,_+=N,I+=N,Q=X[C++],R=X[_++],W[0]=(S+(w+(Q-R)*u+(X[I++]-Q)*l+(R-w)*m-S)*c)*T,Q=X[C++],R=X[_++],W[1]=(E+(L+(Q-R)*u+(X[I++]-Q)*l+(R-L)*m-E)*c)*T,Q=X[C++],R=X[_++],W[2]=(y+(D+(Q-R)*u+(X[I++]-Q)*l+(R-D)*m-y)*c)*T,Q=X[C],R=X[_],W[3]=(P+(G+(Q-R)*u+(X[I]-Q)*l+(R-G)*m-P)*c)*T):(W[0]=S*T,W[1]=E*T,W[2]=y*T,W[3]=P*T)):l>=u&&u>=m?(C=i+s+o+n,_=a+s+o+n,f=i+s+h+n,Q=X[_++],S=M+((R=X[C++])-Q)*u+(Q-M)*l+(X[f++]-R)*m,Q=X[_++],E=v+((R=X[C++])-Q)*u+(Q-v)*l+(X[f++]-R)*m,Q=X[_++],y=B+((R=X[C++])-Q)*u+(Q-B)*l+(X[f++]-R)*m,Q=X[_],P=b+((R=X[C])-Q)*u+(Q-b)*l+(X[f]-R)*m,x?(C+=N,_+=N,f+=N,Q=X[_++],R=X[C++],W[0]=(S+(w+(R-Q)*u+(Q-w)*l+(X[f++]-R)*m-S)*c)*T,Q=X[_++],R=X[C++],W[1]=(E+(L+(R-Q)*u+(Q-L)*l+(X[f++]-R)*m-E)*c)*T,Q=X[_++],R=X[C++],W[2]=(y+(D+(R-Q)*u+(Q-D)*l+(X[f++]-R)*m-y)*c)*T,Q=X[_],R=X[C],W[3]=(P+(G+(R-Q)*u+(Q-G)*l+(X[f]-R)*m-P)*c)*T):(W[0]=S*T,W[1]=E*T,W[2]=y*T,W[3]=P*T)):l>=m&&m>=u?(C=i+s+h+n,_=a+s+h+n,I=a+s+o+n,Q=X[_++],R=X[I++],S=M+(X[C++]-Q)*u+(R-M)*l+(Q-R)*m,Q=X[_++],R=X[I++],E=v+(X[C++]-Q)*u+(R-v)*l+(Q-R)*m,Q=X[_++],R=X[I++],y=B+(X[C++]-Q)*u+(R-B)*l+(Q-R)*m,Q=X[_],R=X[I],P=b+(X[C]-Q)*u+(R-b)*l+(Q-R)*m,x?(C+=N,_+=N,I+=N,Q=X[_++],R=X[I++],W[0]=(S+(w+(X[C++]-Q)*u+(R-w)*l+(Q-R)*m-S)*c)*T,Q=X[_++],R=X[I++],W[1]=(E+(L+(X[C++]-Q)*u+(R-L)*l+(Q-R)*m-E)*c)*T,Q=X[_++],R=X[I++],W[2]=(y+(D+(X[C++]-Q)*u+(R-D)*l+(Q-R)*m-y)*c)*T,Q=X[_],R=X[I],W[3]=(P+(G+(X[C++]-Q)*u+(R-G)*l+(Q-R)*m-P)*c)*T):(W[0]=S*T,W[1]=E*T,W[2]=y*T,W[3]=P*T)):m>=l&&l>=u?(C=i+s+h+n,_=a+s+h+n,f=a+r+h+n,Q=X[_++],R=X[f++],S=M+(X[C++]-Q)*u+(Q-R)*l+(R-M)*m,Q=X[_++],R=X[f++],E=v+(X[C++]-Q)*u+(Q-R)*l+(R-v)*m,Q=X[_++],R=X[f++],y=B+(X[C++]-Q)*u+(Q-R)*l+(R-B)*m,Q=X[_],R=X[f],P=b+(X[C]-Q)*u+(Q-R)*l+(R-b)*m,x?(C+=N,_+=N,f+=N,Q=X[_++],R=X[f++],W[0]=(S+(w+(X[C++]-Q)*u+(Q-R)*l+(R-w)*m-S)*c)*T,Q=X[_++],R=X[f++],W[1]=(E+(L+(X[C++]-Q)*u+(Q-R)*l+(R-L)*m-E)*c)*T,Q=X[_++],R=X[f++],W[2]=(y+(D+(X[C++]-Q)*u+(Q-R)*l+(R-D)*m-y)*c)*T,Q=X[_],R=X[f],W[3]=(P+(G+(X[C]-Q)*u+(Q-R)*l+(R-G)*m-P)*c)*T):(W[0]=S*T,W[1]=E*T,W[2]=y*T,W[3]=P*T)):x?(W[0]=M+(w-M)*c*T,W[1]=v+(L-v)*c*T,W[2]=B+(D-B)*c*T,W[3]=b+(G-b)*c*T):(W[0]=M*T,W[1]=v*T,W[2]=B*T,W[3]=b*T),W}tetrahedralInterp4D_NCh(t,e){var a,i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y,P=e.outputScale,w=e.g1-1,L=w*e.inputScale,D=e.outputChannels,G=e.CLUT,Q=e.go0,R=e.go1,x=e.go2,T=e.go3,Y=T-e.outputChannels;c=(p=Math.min(1,Math.max(0,t[0]))*L)-(n=~~p),u=(A=Math.min(1,Math.max(0,t[1]))*L)-(a=~~A),i=a===w?a*=x:(a*=x)+x,l=(g=Math.min(1,Math.max(0,t[2]))*L)-(r=~~g),s=r===w?r*=R:(r*=R)+R,m=(d=Math.min(1,Math.max(0,t[3]))*L)-(o=~~d),h=o===w?o*=Q:(o*=Q)+Q;var k=(y=!(n===w))?1:P;C=a+r+o+(n*=T);var X=new Array(D);if(u>=l&&l>=m){for(_=i+r+o+n,I=i+s+o+n,M=i+s+h+n,E=0;E<D;E++)v=G[_++],B=G[I++],b=G[C++],X[E]=(b+(v-b)*u+(B-v)*l+(G[M++]-B)*m)*k;if(y)for(C+=Y,_+=Y,I+=Y,M+=Y,E=0;E<D;E++)v=G[_++],B=G[I++],b=G[C++],S=X[E],X[E]=(S+(b+(v-b)*u+(B-v)*l+(G[M++]-B)*m-S)*c)*P}else if(u>=m&&m>=l){for(_=i+r+o+n,I=i+s+h+n,f=i+r+h+n,E=0;E<D;E++)v=G[f++],B=G[_++],b=G[C++],X[E]=(b+(B-b)*u+(G[I++]-v)*l+(v-B)*m)*k;if(y)for(C+=Y,_+=Y,I+=Y,f+=Y,E=0;E<D;E++)v=G[f++],B=G[_++],b=G[C++],S=X[E],X[E]=(S+(b+(B-b)*u+(G[I++]-v)*l+(v-B)*m-S)*c)*P}else if(u>=l&&m>=u){for(_=i+r+h+n,I=a+r+h+n,f=i+s+h+n,E=0;E<D;E++)v=G[_++],B=G[I++],b=G[C++],X[E]=(b+(v-B)*u+(G[f++]-v)*l+(B-b)*m)*k;if(y)for(C+=Y,_+=Y,I+=Y,f+=Y,E=0;E<D;E++)v=G[_++],B=G[I++],b=G[C++],S=X[E],X[E]=(S+(b+(v-B)*u+(G[f++]-v)*l+(B-b)*m-S)*c)*P}else if(l>=u&&u>=m){for(_=i+s+o+n,I=a+s+o+n,M=i+s+h+n,E=0;E<D;E++)v=G[I++],B=G[_++],b=G[C++],X[E]=(b+(B-v)*u+(v-b)*l+(G[M++]-B)*m)*k;if(y)for(C+=Y,_+=Y,I+=Y,M+=Y,E=0;E<D;E++)v=G[I++],B=G[_++],b=G[C++],S=X[E],X[E]=(S+(b+(B-v)*u+(v-b)*l+(G[M++]-B)*m-S)*c)*P}else if(l>=m&&m>=u){for(_=i+s+h+n,I=a+s+h+n,f=a+s+o+n,E=0;E<D;E++)v=G[I++],B=G[f++],b=G[C++],X[E]=(b+(G[_++]-v)*u+(B-b)*l+(v-B)*m)*k;if(y)for(C+=Y,_+=Y,I+=Y,f+=Y,E=0;E<D;E++)v=G[I++],B=G[f++],b=G[C++],S=X[E],X[E]=(S+(b+(G[_++]-v)*u+(B-b)*l+(v-B)*m-S)*c)*P}else if(m>=l&&l>=u){for(_=i+s+h+n,I=a+s+h+n,M=a+r+h+n,E=0;E<D;E++)v=G[I++],B=G[M++],b=G[C++],X[E]=(b+(G[_++]-v)*u+(v-B)*l+(B-b)*m)*k;if(y)for(C+=Y,_+=Y,I+=Y,M+=Y,E=0;E<D;E++)v=G[I++],B=G[M++],b=G[C++],S=X[E],X[E]=(S+(b+(G[_++]-v)*u+(v-B)*l+(B-b)*m-S)*c)*P}else if(y){for(E=0;E<D;E++)X[E]=G[C++];for(C+=Y,E=0;E<D;E++)b=G[C++],X[E]=(b+(X[E]-b)*c)*P}else for(E=0;E<D;E++)X[E]=G[C++]*P;return X}tetrahedralInterp3DArray_4Ch_loop(t,e,a,i,r,n,s,o,h){for(var u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y,P,w,L,D,G,Q,R=n.outputScale,x=(n.g1-1)*n.inputScale,T=n.CLUT,Y=n.go0,k=n.go1,X=n.go2,U=0;U<r;U++)u=(_=(M=t[e++])*x)-(c=~~_),c*=X,A=255===M?c:c+X,l=(I=(v=t[e++])*x)-(g=~~I),g*=k,d=255===v?g:g+k,m=(f=(B=t[e++])*x)-(p=~~f),p*=Y,C=255===B?p:p+Y,b=c+g+p,P=T[b++],w=T[b++],L=T[b++],D=T[b],u>=l&&l>=m?(b=A+g+p,S=A+d+p,y=A+d+C,G=T[b++],Q=T[S++],a[i++]=(P+(G-P)*u+(Q-G)*l+(T[y++]-Q)*m)*R,G=T[b++],Q=T[S++],a[i++]=(w+(G-w)*u+(Q-G)*l+(T[y++]-Q)*m)*R,G=T[b++],Q=T[S++],a[i++]=(L+(G-L)*u+(Q-G)*l+(T[y++]-Q)*m)*R,G=T[b],Q=T[S],a[i++]=(D+(G-D)*u+(Q-G)*l+(T[y]-Q)*m)*R):u>=m&&m>=l?(b=A+g+p,S=A+d+C,E=A+g+C,G=T[E++],Q=T[b++],a[i++]=(P+(Q-P)*u+(T[S++]-G)*l+(G-Q)*m)*R,G=T[E++],Q=T[b++],a[i++]=(w+(Q-w)*u+(T[S++]-G)*l+(G-Q)*m)*R,G=T[E++],Q=T[b++],a[i++]=(L+(Q-L)*u+(T[S++]-G)*l+(G-Q)*m)*R,G=T[E],Q=T[b],a[i++]=(D+(Q-D)*u+(T[S]-G)*l+(G-Q)*m)*R):u>=l&&m>=u?(b=A+g+C,S=c+g+C,E=A+d+C,G=T[b++],Q=T[S++],a[i++]=(P+(G-Q)*u+(T[E++]-G)*l+(Q-P)*m)*R,G=T[b++],Q=T[S++],a[i++]=(w+(G-Q)*u+(T[E++]-G)*l+(Q-w)*m)*R,G=T[b++],Q=T[S++],a[i++]=(L+(G-Q)*u+(T[E++]-G)*l+(Q-L)*m)*R,G=T[b++],Q=T[S++],a[i++]=(D+(G-Q)*u+(T[E]-G)*l+(Q-D)*m)*R):l>=u&&u>=m?(b=A+d+p,S=c+d+p,y=A+d+C,G=T[S++],Q=T[b++],a[i++]=(P+(Q-G)*u+(G-P)*l+(T[y++]-Q)*m)*R,G=T[S++],Q=T[b++],a[i++]=(w+(Q-G)*u+(G-w)*l+(T[y++]-Q)*m)*R,G=T[S++],Q=T[b++],a[i++]=(L+(Q-G)*u+(G-L)*l+(T[y++]-Q)*m)*R,G=T[S],Q=T[b],a[i++]=(D+(Q-G)*u+(G-D)*l+(T[y]-Q)*m)*R):l>=m&&m>=u?(b=A+d+C,S=c+d+C,E=c+d+p,G=T[S++],Q=T[E++],a[i++]=(P+(T[b++]-G)*u+(Q-P)*l+(G-Q)*m)*R,G=T[S++],Q=T[E++],a[i++]=(w+(T[b++]-G)*u+(Q-w)*l+(G-Q)*m)*R,G=T[S++],Q=T[E++],a[i++]=(L+(T[b++]-G)*u+(Q-L)*l+(G-Q)*m)*R,G=T[S++],Q=T[E++],a[i++]=(D+(T[b++]-G)*u+(Q-D)*l+(G-Q)*m)*R):m>=l&&l>=u?(b=A+d+C,S=c+d+C,y=c+g+C,G=T[S++],Q=T[y++],a[i++]=(P+(T[b++]-G)*u+(G-Q)*l+(Q-P)*m)*R,G=T[S++],Q=T[y++],a[i++]=(w+(T[b++]-G)*u+(G-Q)*l+(Q-w)*m)*R,G=T[S++],Q=T[y++],a[i++]=(L+(T[b++]-G)*u+(G-Q)*l+(Q-L)*m)*R,G=T[S],Q=T[y],a[i++]=(D+(T[b]-G)*u+(G-Q)*l+(Q-D)*m)*R):(a[i++]=P*R,a[i++]=w*R,a[i++]=L*R,a[i++]=D*R),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}tetrahedralInterp3DArray_4Ch_intLut_loop(t,e,a,i,r,n,s,o,h){for(var u=0,l=0,m=0,c=0,A=0,g=0,d=0,p=0,C=0,_=0,I=0,f=0,M=0,v=0,B=0,b=0,S=0,E=0,y=0,P=0,w=0,L=0,D=0,G=0,Q=0,R=0|n.gridPointsScale_fixed,x=n.CLUT,T=0|n.go0,Y=0|n.go1,k=0|n.go2,X=0|n.maxX,U=0|n.maxY,Z=0|n.maxZ,F=0;F<r;F++)M=t[e++],v=t[e++],B=t[e++],_=Math.imul(M,R),I=Math.imul(v,R),f=Math.imul(B,R),255===M?(c=X,A=X,u=0):(c=_>>>16,u=_>>>8&255,A=(c=Math.imul(c,k))+k),255===v?(g=U,d=U,l=0):(g=I>>>16,l=I>>>8&255,d=(g=Math.imul(g,Y))+Y),255===B?(p=Z,C=Z,m=0):(p=f>>>16,m=f>>>8&255,C=(p=Math.imul(p,T))+T),b=c+g+p,P=x[b++],w=x[b++],L=x[b++],D=x[b],u>=l&&l>=m?(b=A+g+p,S=A+d+p,y=A+d+C,G=x[b++],Q=x[S++],a[i++]=P+(Math.imul(G-P,u)+Math.imul(Q-G,l)+Math.imul(x[y++]-Q,m)+128>>8)+128>>8,G=x[b++],Q=x[S++],a[i++]=w+(Math.imul(G-w,u)+Math.imul(Q-G,l)+Math.imul(x[y++]-Q,m)+128>>8)+128>>8,G=x[b++],Q=x[S++],a[i++]=L+(Math.imul(G-L,u)+Math.imul(Q-G,l)+Math.imul(x[y++]-Q,m)+128>>8)+128>>8,G=x[b],Q=x[S],a[i++]=D+(Math.imul(G-D,u)+Math.imul(Q-G,l)+Math.imul(x[y]-Q,m)+128>>8)+128>>8):u>=m&&m>=l?(b=A+g+p,S=A+d+C,E=A+g+C,G=x[E++],Q=x[b++],a[i++]=P+(Math.imul(Q-P,u)+Math.imul(x[S++]-G,l)+Math.imul(G-Q,m)+128>>8)+128>>8,G=x[E++],Q=x[b++],a[i++]=w+(Math.imul(Q-w,u)+Math.imul(x[S++]-G,l)+Math.imul(G-Q,m)+128>>8)+128>>8,G=x[E++],Q=x[b++],a[i++]=L+(Math.imul(Q-L,u)+Math.imul(x[S++]-G,l)+Math.imul(G-Q,m)+128>>8)+128>>8,G=x[E],Q=x[b],a[i++]=D+(Math.imul(Q-D,u)+Math.imul(x[S]-G,l)+Math.imul(G-Q,m)+128>>8)+128>>8):u>=l&&m>=u?(b=A+g+C,S=c+g+C,E=A+d+C,G=x[b++],Q=x[S++],a[i++]=P+(Math.imul(G-Q,u)+Math.imul(x[E++]-G,l)+Math.imul(Q-P,m)+128>>8)+128>>8,G=x[b++],Q=x[S++],a[i++]=w+(Math.imul(G-Q,u)+Math.imul(x[E++]-G,l)+Math.imul(Q-w,m)+128>>8)+128>>8,G=x[b++],Q=x[S++],a[i++]=L+(Math.imul(G-Q,u)+Math.imul(x[E++]-G,l)+Math.imul(Q-L,m)+128>>8)+128>>8,G=x[b++],Q=x[S++],a[i++]=D+(Math.imul(G-Q,u)+Math.imul(x[E]-G,l)+Math.imul(Q-D,m)+128>>8)+128>>8):l>=u&&u>=m?(b=A+d+p,S=c+d+p,y=A+d+C,G=x[S++],Q=x[b++],a[i++]=P+(Math.imul(Q-G,u)+Math.imul(G-P,l)+Math.imul(x[y++]-Q,m)+128>>8)+128>>8,G=x[S++],Q=x[b++],a[i++]=w+(Math.imul(Q-G,u)+Math.imul(G-w,l)+Math.imul(x[y++]-Q,m)+128>>8)+128>>8,G=x[S++],Q=x[b++],a[i++]=L+(Math.imul(Q-G,u)+Math.imul(G-L,l)+Math.imul(x[y++]-Q,m)+128>>8)+128>>8,G=x[S],Q=x[b],a[i++]=D+(Math.imul(Q-G,u)+Math.imul(G-D,l)+Math.imul(x[y]-Q,m)+128>>8)+128>>8):l>=m&&m>=u?(b=A+d+C,S=c+d+C,E=c+d+p,G=x[S++],Q=x[E++],a[i++]=P+(Math.imul(x[b++]-G,u)+Math.imul(Q-P,l)+Math.imul(G-Q,m)+128>>8)+128>>8,G=x[S++],Q=x[E++],a[i++]=w+(Math.imul(x[b++]-G,u)+Math.imul(Q-w,l)+Math.imul(G-Q,m)+128>>8)+128>>8,G=x[S++],Q=x[E++],a[i++]=L+(Math.imul(x[b++]-G,u)+Math.imul(Q-L,l)+Math.imul(G-Q,m)+128>>8)+128>>8,G=x[S],Q=x[E],a[i++]=D+(Math.imul(x[b]-G,u)+Math.imul(Q-D,l)+Math.imul(G-Q,m)+128>>8)+128>>8):m>=l&&l>=u?(b=A+d+C,S=c+d+C,y=c+g+C,G=x[S++],Q=x[y++],a[i++]=P+(Math.imul(x[b++]-G,u)+Math.imul(G-Q,l)+Math.imul(Q-P,m)+128>>8)+128>>8,G=x[S++],Q=x[y++],a[i++]=w+(Math.imul(x[b++]-G,u)+Math.imul(G-Q,l)+Math.imul(Q-w,m)+128>>8)+128>>8,G=x[S++],Q=x[y++],a[i++]=L+(Math.imul(x[b++]-G,u)+Math.imul(G-Q,l)+Math.imul(Q-L,m)+128>>8)+128>>8,G=x[S],Q=x[y],a[i++]=D+(Math.imul(x[b]-G,u)+Math.imul(G-Q,l)+Math.imul(Q-D,m)+128>>8)+128>>8):(a[i++]=P+128>>8,a[i++]=w+128>>8,a[i++]=L+128>>8,a[i++]=D+128>>8),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}linearInterp1DArray_NCh_loop(t,e,a,i,r,n,s,o,h){for(var u,l,m=n.outputChannels,c=0;c<r;c++){for(u=this.linearInterp1D_NCh([t[e++]],n),l=0;l<m;l++)a[i++]=u[l];h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}}bilinearInterp2DArray_NCh_loop(t,e,a,i,r,n,s,o,h){var u,l,m,c=n.outputChannels;u=new Uint8ClampedArray(2);for(var A=0;A<r;A++){for(u[0]=t[e++],u[1]=t[e++],l=this.bilinearInterp2D_NCh(u,n),m=0;m<c;m++)a[i++]=l[m];h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}}tetrahedralInterp3DArray_NCh_loop(t,e,a,i,r,n,s,o,h){var u,l,m,c=n.outputChannels;u=new Uint8ClampedArray(3);for(var A=0;A<r;A++){for(u[0]=t[e++],u[1]=t[e++],u[2]=t[e++],l=this.tetrahedralInterp3D_NCh(u,n),m=0;m<c;m++)a[i++]=l[m];h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}}tetrahedralInterp4DArray_NCh_loop(t,e,a,i,r,n,s,o,h){var u,l,m,c=n.outputChannels;u=new Uint8ClampedArray(4);for(var A=0;A<r;A++){for(u[0]=t[e++],u[1]=t[e++],u[2]=t[e++],u[3]=t[e++],l=this.tetrahedralInterp4D_NCh(u,n),m=0;m<c;m++)a[i++]=l[m];h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}}tetrahedralInterp3DArray_3Ch_loop(t,e,a,i,r,n,s,o,h){for(var u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y,P,w,L,D,G,Q=n.outputScale,R=(n.g1-1)*n.inputScale,x=n.CLUT,T=n.go0,Y=n.go1,k=n.go2,X=0;X<r;X++)u=(_=(M=t[e++])*R)-(c=~~_),c*=k,A=255===M?c:c+k,l=(I=(v=t[e++])*R)-(g=~~I),g*=Y,d=255===v?g:g+Y,m=(f=(B=t[e++])*R)-(p=~~f),p*=T,C=255===B?p:p+T,b=c+g+p,P=x[b++],w=x[b++],L=x[b],u>=l&&l>=m?(b=A+g+p,S=A+d+p,y=A+d+C,D=x[b++],G=x[S++],a[i++]=(P+(D-P)*u+(G-D)*l+(x[y++]-G)*m)*Q,D=x[b++],G=x[S++],a[i++]=(w+(D-w)*u+(G-D)*l+(x[y++]-G)*m)*Q,D=x[b],G=x[S],a[i++]=(L+(D-L)*u+(G-D)*l+(x[y]-G)*m)*Q):u>=m&&m>=l?(b=A+g+p,S=A+d+C,E=A+g+C,D=x[E++],G=x[b++],a[i++]=(P+(G-P)*u+(x[S++]-D)*l+(D-G)*m)*Q,D=x[E++],G=x[b++],a[i++]=(w+(G-w)*u+(x[S++]-D)*l+(D-G)*m)*Q,D=x[E],G=x[b],a[i++]=(L+(G-L)*u+(x[S]-D)*l+(D-G)*m)*Q):u>=l&&m>=u?(b=A+g+C,S=c+g+C,E=A+d+C,D=x[b++],G=x[S++],a[i++]=(P+(D-G)*u+(x[E++]-D)*l+(G-P)*m)*Q,D=x[b++],G=x[S++],a[i++]=(w+(D-G)*u+(x[E++]-D)*l+(G-w)*m)*Q,D=x[b],G=x[S],a[i++]=(L+(D-G)*u+(x[E]-D)*l+(G-L)*m)*Q):l>=u&&u>=m?(b=A+d+p,S=c+d+p,y=A+d+C,D=x[S++],G=x[b++],a[i++]=(P+(G-D)*u+(D-P)*l+(x[y++]-G)*m)*Q,D=x[S++],G=x[b++],a[i++]=(w+(G-D)*u+(D-w)*l+(x[y++]-G)*m)*Q,D=x[S],G=x[b],a[i++]=(L+(G-D)*u+(D-L)*l+(x[y]-G)*m)*Q):l>=m&&m>=u?(b=A+d+C,S=c+d+C,E=c+d+p,D=x[S++],G=x[E++],a[i++]=(P+(x[b++]-D)*u+(G-P)*l+(D-G)*m)*Q,D=x[S++],G=x[E++],a[i++]=(w+(x[b++]-D)*u+(G-w)*l+(D-G)*m)*Q,D=x[S],G=x[E],a[i++]=(L+(x[b]-D)*u+(G-L)*l+(D-G)*m)*Q):m>=l&&l>=u?(b=A+d+C,S=c+d+C,y=c+g+C,D=x[S++],G=x[y++],a[i++]=(P+(x[b++]-D)*u+(D-G)*l+(G-P)*m)*Q,D=x[S++],G=x[y++],a[i++]=(w+(x[b++]-D)*u+(D-G)*l+(G-w)*m)*Q,D=x[S],G=x[y],a[i++]=(L+(x[b]-D)*u+(D-G)*l+(G-L)*m)*Q):(a[i++]=P*Q,a[i++]=w*Q,a[i++]=L*Q),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}tetrahedralInterp3DArray_3Ch_intLut_loop(t,e,a,i,r,n,s,o,h){for(var u=0,l=0,m=0,c=0,A=0,g=0,d=0,p=0,C=0,_=0,I=0,f=0,M=0,v=0,B=0,b=0,S=0,E=0,y=0,P=0,w=0,L=0,D=0,G=0,Q=0|n.gridPointsScale_fixed,R=n.CLUT,x=0|n.go0,T=0|n.go1,Y=0|n.go2,k=0|n.maxX,X=0|n.maxY,U=0|n.maxZ,Z=0;Z<r;Z++)M=t[e++],v=t[e++],B=t[e++],_=Math.imul(M,Q),I=Math.imul(v,Q),f=Math.imul(B,Q),255===M?(c=k,A=k,u=0):(c=_>>>16,u=_>>>8&255,A=(c=Math.imul(c,Y))+Y),255===v?(g=X,d=X,l=0):(g=I>>>16,l=I>>>8&255,d=(g=Math.imul(g,T))+T),255===B?(p=U,C=U,m=0):(p=f>>>16,m=f>>>8&255,C=(p=Math.imul(p,x))+x),b=c+g+p,P=R[b++],w=R[b++],L=R[b],u>=l&&l>=m?(b=A+g+p,S=A+d+p,y=A+d+C,D=R[b++],G=R[S++],a[i++]=P+(Math.imul(D-P,u)+Math.imul(G-D,l)+Math.imul(R[y++]-G,m)+128>>8)+128>>8,D=R[b++],G=R[S++],a[i++]=w+(Math.imul(D-w,u)+Math.imul(G-D,l)+Math.imul(R[y++]-G,m)+128>>8)+128>>8,D=R[b],G=R[S],a[i++]=L+(Math.imul(D-L,u)+Math.imul(G-D,l)+Math.imul(R[y]-G,m)+128>>8)+128>>8):u>=m&&m>=l?(b=A+g+p,S=A+d+C,E=A+g+C,D=R[E++],G=R[b++],a[i++]=P+(Math.imul(G-P,u)+Math.imul(R[S++]-D,l)+Math.imul(D-G,m)+128>>8)+128>>8,D=R[E++],G=R[b++],a[i++]=w+(Math.imul(G-w,u)+Math.imul(R[S++]-D,l)+Math.imul(D-G,m)+128>>8)+128>>8,D=R[E],G=R[b],a[i++]=L+(Math.imul(G-L,u)+Math.imul(R[S]-D,l)+Math.imul(D-G,m)+128>>8)+128>>8):u>=l&&m>=u?(b=A+g+C,S=c+g+C,E=A+d+C,D=R[b++],G=R[S++],a[i++]=P+(Math.imul(D-G,u)+Math.imul(R[E++]-D,l)+Math.imul(G-P,m)+128>>8)+128>>8,D=R[b++],G=R[S++],a[i++]=w+(Math.imul(D-G,u)+Math.imul(R[E++]-D,l)+Math.imul(G-w,m)+128>>8)+128>>8,D=R[b],G=R[S],a[i++]=L+(Math.imul(D-G,u)+Math.imul(R[E]-D,l)+Math.imul(G-L,m)+128>>8)+128>>8):l>=u&&u>=m?(b=A+d+p,S=c+d+p,y=A+d+C,D=R[S++],G=R[b++],a[i++]=P+(Math.imul(G-D,u)+Math.imul(D-P,l)+Math.imul(R[y++]-G,m)+128>>8)+128>>8,D=R[S++],G=R[b++],a[i++]=w+(Math.imul(G-D,u)+Math.imul(D-w,l)+Math.imul(R[y++]-G,m)+128>>8)+128>>8,D=R[S],G=R[b],a[i++]=L+(Math.imul(G-D,u)+Math.imul(D-L,l)+Math.imul(R[y]-G,m)+128>>8)+128>>8):l>=m&&m>=u?(b=A+d+C,S=c+d+C,E=c+d+p,D=R[S++],G=R[E++],a[i++]=P+(Math.imul(R[b++]-D,u)+Math.imul(G-P,l)+Math.imul(D-G,m)+128>>8)+128>>8,D=R[S++],G=R[E++],a[i++]=w+(Math.imul(R[b++]-D,u)+Math.imul(G-w,l)+Math.imul(D-G,m)+128>>8)+128>>8,D=R[S],G=R[E],a[i++]=L+(Math.imul(R[b]-D,u)+Math.imul(G-L,l)+Math.imul(D-G,m)+128>>8)+128>>8):m>=l&&l>=u?(b=A+d+C,S=c+d+C,y=c+g+C,D=R[S++],G=R[y++],a[i++]=P+(Math.imul(R[b++]-D,u)+Math.imul(D-G,l)+Math.imul(G-P,m)+128>>8)+128>>8,D=R[S++],G=R[y++],a[i++]=w+(Math.imul(R[b++]-D,u)+Math.imul(D-G,l)+Math.imul(G-w,m)+128>>8)+128>>8,D=R[S],G=R[y],a[i++]=L+(Math.imul(R[b]-D,u)+Math.imul(D-G,l)+Math.imul(G-L,m)+128>>8)+128>>8):(a[i++]=P+128>>8,a[i++]=w+128>>8,a[i++]=L+128>>8),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}tetrahedralInterp4DArray_3Ch_loop(t,e,a,i,r,n,s,o,h){for(var u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y,P,w,L,D,G,Q,R,x,T,Y,k,X,U,Z,F,q,N=n.outputScale,W=(n.g1-1)*n.inputScale,H=n.CLUT,K=n.go0,J=n.go1,O=n.go2,V=n.go3,j=V-n.outputChannels+1,z=0;z<r;z++)I=(B=(y=t[e++])*W)-(c=~~B),p=(f=(b=t[e++])*W)-(u=~~f),u*=O,l=255===b?u:u+O,C=(M=(S=t[e++])*W)-(m=~~M),m*=J,A=255===S?m:m+J,_=(v=(E=t[e++])*W)-(g=~~v),g*=K,d=255===E?g:g+K,P=u+m+g+(c*=V),G=H[P++],Q=H[P++],R=H[P],255===y||0===I?q=!1:(P+=j,k=H[P++],X=H[P++],U=H[P],q=!0),p>=C&&C>=_?(P=l+m+g+c,w=l+A+g+c,D=l+A+d+c,x=G+((Z=H[P++])-G)*p+((F=H[w++])-Z)*C+(H[D++]-F)*_,T=Q+((Z=H[P++])-Q)*p+((F=H[w++])-Z)*C+(H[D++]-F)*_,Y=R+((Z=H[P])-R)*p+((F=H[w])-Z)*C+(H[D]-F)*_,q?(P+=j,w+=j,D+=j,Z=H[P++],F=H[w++],a[i++]=(x+(k+(Z-k)*p+(F-Z)*C+(H[D++]-F)*_-x)*I)*N,Z=H[P++],F=H[w++],a[i++]=(T+(X+(Z-X)*p+(F-Z)*C+(H[D++]-F)*_-T)*I)*N,Z=H[P++],F=H[w++],a[i++]=(Y+(U+(Z-U)*p+(F-Z)*C+(H[D++]-F)*_-Y)*I)*N):(a[i++]=x*N,a[i++]=T*N,a[i++]=Y*N)):p>=_&&_>=C?(P=l+m+g+c,w=l+A+d+c,L=l+m+d+c,Z=H[L++],x=G+((F=H[P++])-G)*p+(H[w++]-Z)*C+(Z-F)*_,Z=H[L++],T=Q+((F=H[P++])-Q)*p+(H[w++]-Z)*C+(Z-F)*_,Z=H[L],Y=R+((F=H[P])-R)*p+(H[w]-Z)*C+(Z-F)*_,q?(L+=j,P+=j,w+=j,Z=H[L++],F=H[P++],a[i++]=(x+(k+(F-k)*p+(H[w++]-Z)*C+(Z-F)*_-x)*I)*N,Z=H[L++],F=H[P++],a[i++]=(T+(X+(F-X)*p+(H[w++]-Z)*C+(Z-F)*_-T)*I)*N,Z=H[L++],F=H[P++],a[i++]=(Y+(U+(F-U)*p+(H[w++]-Z)*C+(Z-F)*_-Y)*I)*N):(a[i++]=x*N,a[i++]=T*N,a[i++]=Y*N)):p>=C&&_>=p?(P=l+m+d+c,w=u+m+d+c,L=l+A+d+c,x=G+((Z=H[P++])-(F=H[w++]))*p+(H[L++]-Z)*C+(F-G)*_,T=Q+((Z=H[P++])-(F=H[w++]))*p+(H[L++]-Z)*C+(F-Q)*_,Y=R+((Z=H[P])-(F=H[w]))*p+(H[L]-Z)*C+(F-R)*_,q?(P+=j,w+=j,L+=j,Z=H[P++],F=H[w++],a[i++]=(x+(k+(Z-F)*p+(H[L++]-Z)*C+(F-k)*_-x)*I)*N,Z=H[P++],F=H[w++],a[i++]=(T+(X+(Z-F)*p+(H[L++]-Z)*C+(F-X)*_-T)*I)*N,Z=H[P++],F=H[w++],a[i++]=(Y+(U+(Z-F)*p+(H[L++]-Z)*C+(F-U)*_-Y)*I)*N):(a[i++]=x*N,a[i++]=T*N,a[i++]=Y*N)):C>=p&&p>=_?(P=l+A+g+c,w=u+A+g+c,D=l+A+d+c,Z=H[w++],x=G+((F=H[P++])-Z)*p+(Z-G)*C+(H[D++]-F)*_,Z=H[w++],T=Q+((F=H[P++])-Z)*p+(Z-Q)*C+(H[D++]-F)*_,Z=H[w],Y=R+((F=H[P])-Z)*p+(Z-R)*C+(H[D]-F)*_,q?(P+=j,w+=j,D+=j,Z=H[w++],F=H[P++],a[i++]=(x+(k+(F-Z)*p+(Z-k)*C+(H[D++]-F)*_-x)*I)*N,Z=H[w++],F=H[P++],a[i++]=(T+(X+(F-Z)*p+(Z-X)*C+(H[D++]-F)*_-T)*I)*N,Z=H[w++],F=H[P++],a[i++]=(Y+(U+(F-Z)*p+(Z-U)*C+(H[D++]-F)*_-Y)*I)*N):(a[i++]=x*N,a[i++]=T*N,a[i++]=Y*N)):C>=_&&_>=p?(P=l+A+d+c,w=u+A+d+c,L=u+A+g+c,Z=H[w++],F=H[L++],x=G+(H[P++]-Z)*p+(F-G)*C+(Z-F)*_,Z=H[w++],F=H[L++],T=Q+(H[P++]-Z)*p+(F-Q)*C+(Z-F)*_,Z=H[w],F=H[L],Y=R+(H[P]-Z)*p+(F-R)*C+(Z-F)*_,q?(P+=j,w+=j,L+=j,Z=H[w++],F=H[L++],a[i++]=(x+(k+(H[P++]-Z)*p+(F-k)*C+(Z-F)*_-x)*I)*N,Z=H[w++],F=H[L++],a[i++]=(T+(X+(H[P++]-Z)*p+(F-X)*C+(Z-F)*_-T)*I)*N,Z=H[w++],F=H[L++],a[i++]=(Y+(U+(H[P++]-Z)*p+(F-U)*C+(Z-F)*_-Y)*I)*N):(a[i++]=x*N,a[i++]=T*N,a[i++]=Y*N)):_>=C&&C>=p?(P=l+A+d+c,w=u+A+d+c,D=u+m+d+c,Z=H[w++],F=H[D++],x=G+(H[P++]-Z)*p+(Z-F)*C+(F-G)*_,Z=H[w++],F=H[D++],T=Q+(H[P++]-Z)*p+(Z-F)*C+(F-Q)*_,Z=H[w],F=H[D],Y=R+(H[P]-Z)*p+(Z-F)*C+(F-R)*_,q?(P+=j,w+=j,D+=j,Z=H[w++],F=H[D++],a[i++]=(x+(k+(H[P++]-Z)*p+(Z-F)*C+(F-k)*_-x)*I)*N,Z=H[w++],F=H[D++],a[i++]=(T+(X+(H[P++]-Z)*p+(Z-F)*C+(F-X)*_-T)*I)*N,Z=H[w++],F=H[D++],a[i++]=(Y+(U+(H[P++]-Z)*p+(Z-F)*C+(F-U)*_-Y)*I)*N):(a[i++]=x*N,a[i++]=T*N,a[i++]=Y*N)):q?(a[i++]=G+(k-G)*I*N,a[i++]=Q+(X-Q)*I*N,a[i++]=R+(U-R)*I*N):(a[i++]=G*N,a[i++]=Q*N,a[i++]=R*N),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}tetrahedralInterp4DArray_4Ch_loop(t,e,a,i,r,n,s,o,h){for(var u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y,P,w,L,D,G,Q,R,x,T,Y,k,X,U,Z,F,q,N,W,H,K=n.outputScale,J=(n.g1-1)*n.inputScale,O=n.CLUT,V=n.go0,j=n.go1,z=n.go2,$=n.go3,tt=$-n.outputChannels+1,et=0;et<r;et++)I=(B=(y=t[e++])*J)-(c=~~B),p=(f=(b=t[e++])*J)-(u=~~f),u*=z,l=255===b?u:u+z,C=(M=(S=t[e++])*J)-(m=~~M),m*=j,A=255===S?m:m+j,_=(v=(E=t[e++])*J)-(g=~~v),g*=V,d=255===E?g:g+V,P=u+m+g+(c*=$),P=u+m+g+c,G=O[P++],Q=O[P++],R=O[P++],x=O[P],255===y||0===I?H=!1:(P+=tt,U=O[P++],Z=O[P++],F=O[P++],q=O[P],H=!0),p>=C&&C>=_?(P=l+m+g+c,w=l+A+g+c,D=l+A+d+c,T=G+((N=O[P++])-G)*p+((W=O[w++])-N)*C+(O[D++]-W)*_,Y=Q+((N=O[P++])-Q)*p+((W=O[w++])-N)*C+(O[D++]-W)*_,k=R+((N=O[P++])-R)*p+((W=O[w++])-N)*C+(O[D++]-W)*_,X=x+((N=O[P])-x)*p+((W=O[w])-N)*C+(O[D]-W)*_,H?(P+=tt,w+=tt,D+=tt,N=O[P++],W=O[w++],a[i++]=(T+(U+(N-U)*p+(W-N)*C+(O[D++]-W)*_-T)*I)*K,N=O[P++],W=O[w++],a[i++]=(Y+(Z+(N-Z)*p+(W-N)*C+(O[D++]-W)*_-Y)*I)*K,N=O[P++],W=O[w++],a[i++]=(k+(F+(N-F)*p+(W-N)*C+(O[D++]-W)*_-k)*I)*K,N=O[P],W=O[w],a[i++]=(X+(q+(N-q)*p+(W-N)*C+(O[D++]-W)*_-X)*I)*K):(a[i++]=T*K,a[i++]=Y*K,a[i++]=k*K,a[i++]=X*K)):p>=_&&_>=C?(P=l+m+g+c,w=l+A+d+c,L=l+m+d+c,N=O[L++],T=G+((W=O[P++])-G)*p+(O[w++]-N)*C+(N-W)*_,N=O[L++],Y=Q+((W=O[P++])-Q)*p+(O[w++]-N)*C+(N-W)*_,N=O[L++],k=R+((W=O[P++])-R)*p+(O[w++]-N)*C+(N-W)*_,N=O[L],X=x+((W=O[P])-x)*p+(O[w]-N)*C+(N-W)*_,H?(L+=tt,P+=tt,w+=tt,N=O[L++],W=O[P++],a[i++]=(T+(U+(W-U)*p+(O[w++]-N)*C+(N-W)*_-T)*I)*K,N=O[L++],W=O[P++],a[i++]=(Y+(Z+(W-Z)*p+(O[w++]-N)*C+(N-W)*_-Y)*I)*K,N=O[L++],W=O[P++],a[i++]=(k+(F+(W-F)*p+(O[w++]-N)*C+(N-W)*_-k)*I)*K,N=O[L++],W=O[P++],a[i++]=(X+(q+(W-q)*p+(O[w]-N)*C+(N-W)*_-X)*I)*K):(a[i++]=T*K,a[i++]=Y*K,a[i++]=k*K,a[i++]=X*K)):p>=C&&_>=p?(P=l+m+d+c,w=u+m+d+c,L=l+A+d+c,T=G+((N=O[P++])-(W=O[w++]))*p+(O[L++]-N)*C+(W-G)*_,Y=Q+((N=O[P++])-(W=O[w++]))*p+(O[L++]-N)*C+(W-Q)*_,k=R+((N=O[P++])-(W=O[w++]))*p+(O[L++]-N)*C+(W-R)*_,X=x+((N=O[P])-(W=O[w]))*p+(O[L]-N)*C+(W-x)*_,H?(P+=tt,w+=tt,L+=tt,N=O[P++],W=O[w++],a[i++]=(T+(U+(N-W)*p+(O[L++]-N)*C+(W-U)*_-T)*I)*K,N=O[P++],W=O[w++],a[i++]=(Y+(Z+(N-W)*p+(O[L++]-N)*C+(W-Z)*_-Y)*I)*K,N=O[P++],W=O[w++],a[i++]=(k+(F+(N-W)*p+(O[L++]-N)*C+(W-F)*_-k)*I)*K,N=O[P],W=O[w],a[i++]=(X+(q+(N-W)*p+(O[L]-N)*C+(W-q)*_-X)*I)*K):(a[i++]=T*K,a[i++]=Y*K,a[i++]=k*K,a[i++]=X*K)):C>=p&&p>=_?(P=l+A+g+c,w=u+A+g+c,D=l+A+d+c,N=O[w++],T=G+((W=O[P++])-N)*p+(N-G)*C+(O[D++]-W)*_,N=O[w++],Y=Q+((W=O[P++])-N)*p+(N-Q)*C+(O[D++]-W)*_,N=O[w++],k=R+((W=O[P++])-N)*p+(N-R)*C+(O[D++]-W)*_,N=O[w],X=x+((W=O[P])-N)*p+(N-x)*C+(O[D]-W)*_,H?(P+=tt,w+=tt,D+=tt,N=O[w++],W=O[P++],a[i++]=(T+(U+(W-N)*p+(N-U)*C+(O[D++]-W)*_-T)*I)*K,N=O[w++],W=O[P++],a[i++]=(Y+(Z+(W-N)*p+(N-Z)*C+(O[D++]-W)*_-Y)*I)*K,N=O[w++],W=O[P++],a[i++]=(k+(F+(W-N)*p+(N-F)*C+(O[D++]-W)*_-k)*I)*K,N=O[w],W=O[P],a[i++]=(X+(q+(W-N)*p+(N-q)*C+(O[D]-W)*_-X)*I)*K):(a[i++]=T*K,a[i++]=Y*K,a[i++]=k*K,a[i++]=X*K)):C>=_&&_>=p?(P=l+A+d+c,w=u+A+d+c,L=u+A+g+c,N=O[w++],W=O[L++],T=G+(O[P++]-N)*p+(W-G)*C+(N-W)*_,N=O[w++],W=O[L++],Y=Q+(O[P++]-N)*p+(W-Q)*C+(N-W)*_,N=O[w++],W=O[L++],k=R+(O[P++]-N)*p+(W-R)*C+(N-W)*_,N=O[w],W=O[L],X=x+(O[P]-N)*p+(W-x)*C+(N-W)*_,H?(P+=tt,w+=tt,L+=tt,N=O[w++],W=O[L++],a[i++]=(T+(U+(O[P++]-N)*p+(W-U)*C+(N-W)*_-T)*I)*K,N=O[w++],W=O[L++],a[i++]=(Y+(Z+(O[P++]-N)*p+(W-Z)*C+(N-W)*_-Y)*I)*K,N=O[w++],W=O[L++],a[i++]=(k+(F+(O[P++]-N)*p+(W-F)*C+(N-W)*_-k)*I)*K,N=O[w],W=O[L],a[i++]=(X+(q+(O[P++]-N)*p+(W-q)*C+(N-W)*_-X)*I)*K):(a[i++]=T*K,a[i++]=Y*K,a[i++]=k*K,a[i++]=X*K)):_>=C&&C>=p?(P=l+A+d+c,w=u+A+d+c,D=u+m+d+c,N=O[w++],W=O[D++],T=G+(O[P++]-N)*p+(N-W)*C+(W-G)*_,N=O[w++],W=O[D++],Y=Q+(O[P++]-N)*p+(N-W)*C+(W-Q)*_,N=O[w++],W=O[D++],k=R+(O[P++]-N)*p+(N-W)*C+(W-R)*_,N=O[w],W=O[D],X=x+(O[P]-N)*p+(N-W)*C+(W-x)*_,H?(P+=tt,w+=tt,D+=tt,N=O[w++],W=O[D++],a[i++]=(T+(U+(O[P++]-N)*p+(N-W)*C+(W-U)*_-T)*I)*K,N=O[w++],W=O[D++],a[i++]=(Y+(Z+(O[P++]-N)*p+(N-W)*C+(W-Z)*_-Y)*I)*K,N=O[w++],W=O[D++],a[i++]=(k+(F+(O[P++]-N)*p+(N-W)*C+(W-F)*_-k)*I)*K,N=O[w],W=O[D],a[i++]=(X+(q+(O[P]-N)*p+(N-W)*C+(W-q)*_-X)*I)*K):(a[i++]=T*K,a[i++]=Y*K,a[i++]=k*K,a[i++]=X*K)):H?(a[i++]=G+(U-G)*I*K,a[i++]=Q+(Z-Q)*I*K,a[i++]=R+(F-R)*I*K,a[i++]=x+(q-x)*I*K):(a[i++]=G*K,a[i++]=Q*K,a[i++]=R*K,a[i++]=x*K),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}tetrahedralInterp4DArray_3Ch_intLut_loop(t,e,a,i,r,n,s,o,h){for(var u=0,l=0,m=0,c=0,A=0,g=0,d=0,p=0,C=0,_=0,I=0,f=0,M=0,v=0,B=0,b=0,S=0,E=0,y=0,P=0,w=0,L=0,D=0,G=0,Q=0,R=0,x=0,T=0,Y=0,k=0,X=0,U=0,Z=0,F=0,q=!1,N=0|n.gridPointsScale_fixed,W=n.CLUT,H=0|n.go0,K=0|n.go1,J=0|n.go2,O=0|n.go3,V=0|n.maxX,j=0|n.maxY,z=0|n.maxZ,$=0|n.maxK,tt=O-n.outputChannels+1|0,et=0;et<r;et++)y=t[e++],b=t[e++],S=t[e++],E=t[e++],B=Math.imul(y,N),255===y?(d=$,I=0):(d=B>>>16,I=B>>>8&255,d=Math.imul(d,O)),f=Math.imul(b,N),255===b?(u=V,l=V,p=0):(u=f>>>16,p=f>>>8&255,l=(u=Math.imul(u,J))+J),M=Math.imul(S,N),255===S?(m=j,c=j,C=0):(m=M>>>16,C=M>>>8&255,c=(m=Math.imul(m,K))+K),v=Math.imul(E,N),255===E?(A=z,g=z,_=0):(A=v>>>16,_=v>>>8&255,g=(A=Math.imul(A,H))+H),P=u+m+A+d,G=W[P++],Q=W[P++],R=W[P],255===y||0===I?q=!1:(P+=tt,x=W[P++],T=W[P++],Y=W[P],q=!0),p>=C&&C>=_?(P=l+m+A+d,w=l+c+A+d,D=l+c+g+d,Z=W[P++],F=W[w++],k=(G<<4)+(Math.imul(Z-G,p)+Math.imul(F-Z,C)+Math.imul(W[D++]-F,_)+8>>4),Z=W[P++],F=W[w++],X=(Q<<4)+(Math.imul(Z-Q,p)+Math.imul(F-Z,C)+Math.imul(W[D++]-F,_)+8>>4),Z=W[P],F=W[w],U=(R<<4)+(Math.imul(Z-R,p)+Math.imul(F-Z,C)+Math.imul(W[D]-F,_)+8>>4),q?(P+=tt,w+=tt,D+=tt,Z=W[P++],F=W[w++],a[i++]=(k<<8)+Math.imul((x<<4)+(Math.imul(Z-x,p)+Math.imul(F-Z,C)+Math.imul(W[D++]-F,_)+8>>4)-k,I)+524288>>20,Z=W[P++],F=W[w++],a[i++]=(X<<8)+Math.imul((T<<4)+(Math.imul(Z-T,p)+Math.imul(F-Z,C)+Math.imul(W[D++]-F,_)+8>>4)-X,I)+524288>>20,Z=W[P++],F=W[w++],a[i++]=(U<<8)+Math.imul((Y<<4)+(Math.imul(Z-Y,p)+Math.imul(F-Z,C)+Math.imul(W[D++]-F,_)+8>>4)-U,I)+524288>>20):(a[i++]=k+2048>>12,a[i++]=X+2048>>12,a[i++]=U+2048>>12)):p>=_&&_>=C?(P=l+m+A+d,w=l+c+g+d,L=l+m+g+d,Z=W[L++],F=W[P++],k=(G<<4)+(Math.imul(F-G,p)+Math.imul(W[w++]-Z,C)+Math.imul(Z-F,_)+8>>4),Z=W[L++],F=W[P++],X=(Q<<4)+(Math.imul(F-Q,p)+Math.imul(W[w++]-Z,C)+Math.imul(Z-F,_)+8>>4),Z=W[L],F=W[P],U=(R<<4)+(Math.imul(F-R,p)+Math.imul(W[w]-Z,C)+Math.imul(Z-F,_)+8>>4),q?(L+=tt,P+=tt,w+=tt,Z=W[L++],F=W[P++],a[i++]=(k<<8)+Math.imul((x<<4)+(Math.imul(F-x,p)+Math.imul(W[w++]-Z,C)+Math.imul(Z-F,_)+8>>4)-k,I)+524288>>20,Z=W[L++],F=W[P++],a[i++]=(X<<8)+Math.imul((T<<4)+(Math.imul(F-T,p)+Math.imul(W[w++]-Z,C)+Math.imul(Z-F,_)+8>>4)-X,I)+524288>>20,Z=W[L++],F=W[P++],a[i++]=(U<<8)+Math.imul((Y<<4)+(Math.imul(F-Y,p)+Math.imul(W[w++]-Z,C)+Math.imul(Z-F,_)+8>>4)-U,I)+524288>>20):(a[i++]=k+2048>>12,a[i++]=X+2048>>12,a[i++]=U+2048>>12)):p>=C&&_>=p?(P=l+m+g+d,w=u+m+g+d,L=l+c+g+d,Z=W[P++],F=W[w++],k=(G<<4)+(Math.imul(Z-F,p)+Math.imul(W[L++]-Z,C)+Math.imul(F-G,_)+8>>4),Z=W[P++],F=W[w++],X=(Q<<4)+(Math.imul(Z-F,p)+Math.imul(W[L++]-Z,C)+Math.imul(F-Q,_)+8>>4),Z=W[P],F=W[w],U=(R<<4)+(Math.imul(Z-F,p)+Math.imul(W[L]-Z,C)+Math.imul(F-R,_)+8>>4),q?(P+=tt,w+=tt,L+=tt,Z=W[P++],F=W[w++],a[i++]=(k<<8)+Math.imul((x<<4)+(Math.imul(Z-F,p)+Math.imul(W[L++]-Z,C)+Math.imul(F-x,_)+8>>4)-k,I)+524288>>20,Z=W[P++],F=W[w++],a[i++]=(X<<8)+Math.imul((T<<4)+(Math.imul(Z-F,p)+Math.imul(W[L++]-Z,C)+Math.imul(F-T,_)+8>>4)-X,I)+524288>>20,Z=W[P++],F=W[w++],a[i++]=(U<<8)+Math.imul((Y<<4)+(Math.imul(Z-F,p)+Math.imul(W[L++]-Z,C)+Math.imul(F-Y,_)+8>>4)-U,I)+524288>>20):(a[i++]=k+2048>>12,a[i++]=X+2048>>12,a[i++]=U+2048>>12)):C>=p&&p>=_?(P=l+c+A+d,w=u+c+A+d,D=l+c+g+d,Z=W[w++],F=W[P++],k=(G<<4)+(Math.imul(F-Z,p)+Math.imul(Z-G,C)+Math.imul(W[D++]-F,_)+8>>4),Z=W[w++],F=W[P++],X=(Q<<4)+(Math.imul(F-Z,p)+Math.imul(Z-Q,C)+Math.imul(W[D++]-F,_)+8>>4),Z=W[w],F=W[P],U=(R<<4)+(Math.imul(F-Z,p)+Math.imul(Z-R,C)+Math.imul(W[D]-F,_)+8>>4),q?(P+=tt,w+=tt,D+=tt,Z=W[w++],F=W[P++],a[i++]=(k<<8)+Math.imul((x<<4)+(Math.imul(F-Z,p)+Math.imul(Z-x,C)+Math.imul(W[D++]-F,_)+8>>4)-k,I)+524288>>20,Z=W[w++],F=W[P++],a[i++]=(X<<8)+Math.imul((T<<4)+(Math.imul(F-Z,p)+Math.imul(Z-T,C)+Math.imul(W[D++]-F,_)+8>>4)-X,I)+524288>>20,Z=W[w++],F=W[P++],a[i++]=(U<<8)+Math.imul((Y<<4)+(Math.imul(F-Z,p)+Math.imul(Z-Y,C)+Math.imul(W[D++]-F,_)+8>>4)-U,I)+524288>>20):(a[i++]=k+2048>>12,a[i++]=X+2048>>12,a[i++]=U+2048>>12)):C>=_&&_>=p?(P=l+c+g+d,w=u+c+g+d,L=u+c+A+d,Z=W[w++],F=W[L++],k=(G<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(F-G,C)+Math.imul(Z-F,_)+8>>4),Z=W[w++],F=W[L++],X=(Q<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(F-Q,C)+Math.imul(Z-F,_)+8>>4),Z=W[w],F=W[L],U=(R<<4)+(Math.imul(W[P]-Z,p)+Math.imul(F-R,C)+Math.imul(Z-F,_)+8>>4),q?(P+=tt,w+=tt,L+=tt,Z=W[w++],F=W[L++],a[i++]=(k<<8)+Math.imul((x<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(F-x,C)+Math.imul(Z-F,_)+8>>4)-k,I)+524288>>20,Z=W[w++],F=W[L++],a[i++]=(X<<8)+Math.imul((T<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(F-T,C)+Math.imul(Z-F,_)+8>>4)-X,I)+524288>>20,Z=W[w++],F=W[L++],a[i++]=(U<<8)+Math.imul((Y<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(F-Y,C)+Math.imul(Z-F,_)+8>>4)-U,I)+524288>>20):(a[i++]=k+2048>>12,a[i++]=X+2048>>12,a[i++]=U+2048>>12)):_>=C&&C>=p?(P=l+c+g+d,w=u+c+g+d,D=u+m+g+d,Z=W[w++],F=W[D++],k=(G<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-G,_)+8>>4),Z=W[w++],F=W[D++],X=(Q<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-Q,_)+8>>4),Z=W[w],F=W[D],U=(R<<4)+(Math.imul(W[P]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-R,_)+8>>4),q?(P+=tt,w+=tt,D+=tt,Z=W[w++],F=W[D++],a[i++]=(k<<8)+Math.imul((x<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-x,_)+8>>4)-k,I)+524288>>20,Z=W[w++],F=W[D++],a[i++]=(X<<8)+Math.imul((T<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-T,_)+8>>4)-X,I)+524288>>20,Z=W[w++],F=W[D++],a[i++]=(U<<8)+Math.imul((Y<<4)+(Math.imul(W[P++]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-Y,_)+8>>4)-U,I)+524288>>20):(a[i++]=k+2048>>12,a[i++]=X+2048>>12,a[i++]=U+2048>>12)):q?(a[i++]=(G<<8)+Math.imul(x-G,I)+32768>>16,a[i++]=(Q<<8)+Math.imul(T-Q,I)+32768>>16,a[i++]=(R<<8)+Math.imul(Y-R,I)+32768>>16):(a[i++]=G+128>>8,a[i++]=Q+128>>8,a[i++]=R+128>>8),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}tetrahedralInterp4DArray_4Ch_intLut_loop(t,e,a,i,r,n,s,o,h){for(var u=0,l=0,m=0,c=0,A=0,g=0,d=0,p=0,C=0,_=0,I=0,f=0,M=0,v=0,B=0,b=0,S=0,E=0,y=0,P=0,w=0,L=0,D=0,G=0,Q=0,R=0,x=0,T=0,Y=0,k=0,X=0,U=0,Z=0,F=0,q=0,N=0,W=0,H=!1,K=0|n.gridPointsScale_fixed,J=n.CLUT,O=0|n.go0,V=0|n.go1,j=0|n.go2,z=0|n.go3,$=0|n.maxX,tt=0|n.maxY,et=0|n.maxZ,at=0|n.maxK,it=z-n.outputChannels+1|0,rt=0;rt<r;rt++)y=t[e++],b=t[e++],S=t[e++],E=t[e++],B=Math.imul(y,K),255===y?(d=at,I=0):(d=B>>>16,I=B>>>8&255,d=Math.imul(d,z)),f=Math.imul(b,K),255===b?(u=$,l=$,p=0):(u=f>>>16,p=f>>>8&255,l=(u=Math.imul(u,j))+j),M=Math.imul(S,K),255===S?(m=tt,c=tt,C=0):(m=M>>>16,C=M>>>8&255,c=(m=Math.imul(m,V))+V),v=Math.imul(E,K),255===E?(A=et,g=et,_=0):(A=v>>>16,_=v>>>8&255,g=(A=Math.imul(A,O))+O),P=u+m+A+d,G=J[P++],Q=J[P++],R=J[P++],x=J[P],255===y||0===I?H=!1:(P+=it,T=J[P++],Y=J[P++],k=J[P++],X=J[P],H=!0),p>=C&&C>=_?(P=l+m+A+d,w=l+c+A+d,D=l+c+g+d,N=J[P++],W=J[w++],U=(G<<4)+(Math.imul(N-G,p)+Math.imul(W-N,C)+Math.imul(J[D++]-W,_)+8>>4),N=J[P++],W=J[w++],Z=(Q<<4)+(Math.imul(N-Q,p)+Math.imul(W-N,C)+Math.imul(J[D++]-W,_)+8>>4),N=J[P++],W=J[w++],F=(R<<4)+(Math.imul(N-R,p)+Math.imul(W-N,C)+Math.imul(J[D++]-W,_)+8>>4),N=J[P],W=J[w],q=(x<<4)+(Math.imul(N-x,p)+Math.imul(W-N,C)+Math.imul(J[D]-W,_)+8>>4),H?(P+=it,w+=it,D+=it,N=J[P++],W=J[w++],a[i++]=(U<<8)+Math.imul((T<<4)+(Math.imul(N-T,p)+Math.imul(W-N,C)+Math.imul(J[D++]-W,_)+8>>4)-U,I)+524288>>20,N=J[P++],W=J[w++],a[i++]=(Z<<8)+Math.imul((Y<<4)+(Math.imul(N-Y,p)+Math.imul(W-N,C)+Math.imul(J[D++]-W,_)+8>>4)-Z,I)+524288>>20,N=J[P++],W=J[w++],a[i++]=(F<<8)+Math.imul((k<<4)+(Math.imul(N-k,p)+Math.imul(W-N,C)+Math.imul(J[D++]-W,_)+8>>4)-F,I)+524288>>20,N=J[P],W=J[w],a[i++]=(q<<8)+Math.imul((X<<4)+(Math.imul(N-X,p)+Math.imul(W-N,C)+Math.imul(J[D]-W,_)+8>>4)-q,I)+524288>>20):(a[i++]=U+2048>>12,a[i++]=Z+2048>>12,a[i++]=F+2048>>12,a[i++]=q+2048>>12)):p>=_&&_>=C?(P=l+m+A+d,w=l+c+g+d,L=l+m+g+d,N=J[L++],W=J[P++],U=(G<<4)+(Math.imul(W-G,p)+Math.imul(J[w++]-N,C)+Math.imul(N-W,_)+8>>4),N=J[L++],W=J[P++],Z=(Q<<4)+(Math.imul(W-Q,p)+Math.imul(J[w++]-N,C)+Math.imul(N-W,_)+8>>4),N=J[L++],W=J[P++],F=(R<<4)+(Math.imul(W-R,p)+Math.imul(J[w++]-N,C)+Math.imul(N-W,_)+8>>4),N=J[L],W=J[P],q=(x<<4)+(Math.imul(W-x,p)+Math.imul(J[w]-N,C)+Math.imul(N-W,_)+8>>4),H?(L+=it,P+=it,w+=it,N=J[L++],W=J[P++],a[i++]=(U<<8)+Math.imul((T<<4)+(Math.imul(W-T,p)+Math.imul(J[w++]-N,C)+Math.imul(N-W,_)+8>>4)-U,I)+524288>>20,N=J[L++],W=J[P++],a[i++]=(Z<<8)+Math.imul((Y<<4)+(Math.imul(W-Y,p)+Math.imul(J[w++]-N,C)+Math.imul(N-W,_)+8>>4)-Z,I)+524288>>20,N=J[L++],W=J[P++],a[i++]=(F<<8)+Math.imul((k<<4)+(Math.imul(W-k,p)+Math.imul(J[w++]-N,C)+Math.imul(N-W,_)+8>>4)-F,I)+524288>>20,N=J[L],W=J[P],a[i++]=(q<<8)+Math.imul((X<<4)+(Math.imul(W-X,p)+Math.imul(J[w]-N,C)+Math.imul(N-W,_)+8>>4)-q,I)+524288>>20):(a[i++]=U+2048>>12,a[i++]=Z+2048>>12,a[i++]=F+2048>>12,a[i++]=q+2048>>12)):p>=C&&_>=p?(P=l+m+g+d,w=u+m+g+d,L=l+c+g+d,N=J[P++],W=J[w++],U=(G<<4)+(Math.imul(N-W,p)+Math.imul(J[L++]-N,C)+Math.imul(W-G,_)+8>>4),N=J[P++],W=J[w++],Z=(Q<<4)+(Math.imul(N-W,p)+Math.imul(J[L++]-N,C)+Math.imul(W-Q,_)+8>>4),N=J[P++],W=J[w++],F=(R<<4)+(Math.imul(N-W,p)+Math.imul(J[L++]-N,C)+Math.imul(W-R,_)+8>>4),N=J[P],W=J[w],q=(x<<4)+(Math.imul(N-W,p)+Math.imul(J[L]-N,C)+Math.imul(W-x,_)+8>>4),H?(P+=it,w+=it,L+=it,N=J[P++],W=J[w++],a[i++]=(U<<8)+Math.imul((T<<4)+(Math.imul(N-W,p)+Math.imul(J[L++]-N,C)+Math.imul(W-T,_)+8>>4)-U,I)+524288>>20,N=J[P++],W=J[w++],a[i++]=(Z<<8)+Math.imul((Y<<4)+(Math.imul(N-W,p)+Math.imul(J[L++]-N,C)+Math.imul(W-Y,_)+8>>4)-Z,I)+524288>>20,N=J[P++],W=J[w++],a[i++]=(F<<8)+Math.imul((k<<4)+(Math.imul(N-W,p)+Math.imul(J[L++]-N,C)+Math.imul(W-k,_)+8>>4)-F,I)+524288>>20,N=J[P],W=J[w],a[i++]=(q<<8)+Math.imul((X<<4)+(Math.imul(N-W,p)+Math.imul(J[L]-N,C)+Math.imul(W-X,_)+8>>4)-q,I)+524288>>20):(a[i++]=U+2048>>12,a[i++]=Z+2048>>12,a[i++]=F+2048>>12,a[i++]=q+2048>>12)):C>=p&&p>=_?(P=l+c+A+d,w=u+c+A+d,D=l+c+g+d,N=J[w++],W=J[P++],U=(G<<4)+(Math.imul(W-N,p)+Math.imul(N-G,C)+Math.imul(J[D++]-W,_)+8>>4),N=J[w++],W=J[P++],Z=(Q<<4)+(Math.imul(W-N,p)+Math.imul(N-Q,C)+Math.imul(J[D++]-W,_)+8>>4),N=J[w++],W=J[P++],F=(R<<4)+(Math.imul(W-N,p)+Math.imul(N-R,C)+Math.imul(J[D++]-W,_)+8>>4),N=J[w],W=J[P],q=(x<<4)+(Math.imul(W-N,p)+Math.imul(N-x,C)+Math.imul(J[D]-W,_)+8>>4),H?(P+=it,w+=it,D+=it,N=J[w++],W=J[P++],a[i++]=(U<<8)+Math.imul((T<<4)+(Math.imul(W-N,p)+Math.imul(N-T,C)+Math.imul(J[D++]-W,_)+8>>4)-U,I)+524288>>20,N=J[w++],W=J[P++],a[i++]=(Z<<8)+Math.imul((Y<<4)+(Math.imul(W-N,p)+Math.imul(N-Y,C)+Math.imul(J[D++]-W,_)+8>>4)-Z,I)+524288>>20,N=J[w++],W=J[P++],a[i++]=(F<<8)+Math.imul((k<<4)+(Math.imul(W-N,p)+Math.imul(N-k,C)+Math.imul(J[D++]-W,_)+8>>4)-F,I)+524288>>20,N=J[w],W=J[P],a[i++]=(q<<8)+Math.imul((X<<4)+(Math.imul(W-N,p)+Math.imul(N-X,C)+Math.imul(J[D]-W,_)+8>>4)-q,I)+524288>>20):(a[i++]=U+2048>>12,a[i++]=Z+2048>>12,a[i++]=F+2048>>12,a[i++]=q+2048>>12)):C>=_&&_>=p?(P=l+c+g+d,w=u+c+g+d,L=u+c+A+d,N=J[w++],W=J[L++],U=(G<<4)+(Math.imul(J[P++]-N,p)+Math.imul(W-G,C)+Math.imul(N-W,_)+8>>4),N=J[w++],W=J[L++],Z=(Q<<4)+(Math.imul(J[P++]-N,p)+Math.imul(W-Q,C)+Math.imul(N-W,_)+8>>4),N=J[w++],W=J[L++],F=(R<<4)+(Math.imul(J[P++]-N,p)+Math.imul(W-R,C)+Math.imul(N-W,_)+8>>4),N=J[w],W=J[L],q=(x<<4)+(Math.imul(J[P]-N,p)+Math.imul(W-x,C)+Math.imul(N-W,_)+8>>4),H?(P+=it,w+=it,L+=it,N=J[w++],W=J[L++],a[i++]=(U<<8)+Math.imul((T<<4)+(Math.imul(J[P++]-N,p)+Math.imul(W-T,C)+Math.imul(N-W,_)+8>>4)-U,I)+524288>>20,N=J[w++],W=J[L++],a[i++]=(Z<<8)+Math.imul((Y<<4)+(Math.imul(J[P++]-N,p)+Math.imul(W-Y,C)+Math.imul(N-W,_)+8>>4)-Z,I)+524288>>20,N=J[w++],W=J[L++],a[i++]=(F<<8)+Math.imul((k<<4)+(Math.imul(J[P++]-N,p)+Math.imul(W-k,C)+Math.imul(N-W,_)+8>>4)-F,I)+524288>>20,N=J[w],W=J[L],a[i++]=(q<<8)+Math.imul((X<<4)+(Math.imul(J[P]-N,p)+Math.imul(W-X,C)+Math.imul(N-W,_)+8>>4)-q,I)+524288>>20):(a[i++]=U+2048>>12,a[i++]=Z+2048>>12,a[i++]=F+2048>>12,a[i++]=q+2048>>12)):_>=C&&C>=p?(P=l+c+g+d,w=u+c+g+d,D=u+m+g+d,N=J[w++],W=J[D++],U=(G<<4)+(Math.imul(J[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-G,_)+8>>4),N=J[w++],W=J[D++],Z=(Q<<4)+(Math.imul(J[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-Q,_)+8>>4),N=J[w++],W=J[D++],F=(R<<4)+(Math.imul(J[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-R,_)+8>>4),N=J[w],W=J[D],q=(x<<4)+(Math.imul(J[P]-N,p)+Math.imul(N-W,C)+Math.imul(W-x,_)+8>>4),H?(P+=it,w+=it,D+=it,N=J[w++],W=J[D++],a[i++]=(U<<8)+Math.imul((T<<4)+(Math.imul(J[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-T,_)+8>>4)-U,I)+524288>>20,N=J[w++],W=J[D++],a[i++]=(Z<<8)+Math.imul((Y<<4)+(Math.imul(J[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-Y,_)+8>>4)-Z,I)+524288>>20,N=J[w++],W=J[D++],a[i++]=(F<<8)+Math.imul((k<<4)+(Math.imul(J[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-k,_)+8>>4)-F,I)+524288>>20,N=J[w],W=J[D],a[i++]=(q<<8)+Math.imul((X<<4)+(Math.imul(J[P]-N,p)+Math.imul(N-W,C)+Math.imul(W-X,_)+8>>4)-q,I)+524288>>20):(a[i++]=U+2048>>12,a[i++]=Z+2048>>12,a[i++]=F+2048>>12,a[i++]=q+2048>>12)):H?(a[i++]=(G<<8)+Math.imul(T-G,I)+32768>>16,a[i++]=(Q<<8)+Math.imul(Y-Q,I)+32768>>16,a[i++]=(R<<8)+Math.imul(k-R,I)+32768>>16,a[i++]=(x<<8)+Math.imul(X-x,I)+32768>>16):(a[i++]=G+128>>8,a[i++]=Q+128>>8,a[i++]=R+128>>8,a[i++]=x+128>>8),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=255))}tetrahedralInterp3DArray_3Ch_intLut16_loop(t,e,a,i,r,n,s,o,h){for(var u=0,l=0,m=0,c=0,A=0,g=0,d=0,p=0,C=0,_=0,I=0,f=0,M=0,v=0,B=0,b=0,S=0,E=0,y=0,P=0,w=0,L=0,D=0,G=0,Q=0|n.gridPointsScale_fixed_u16,R=n.CLUT,x=0|n.go0,T=0|n.go1,Y=0|n.go2,k=0|n.maxX,X=0|n.maxY,U=0|n.maxZ,Z=0;Z<r;Z++)M=t[e++],v=t[e++],B=t[e++],_=Math.imul(M,Q),I=Math.imul(v,Q),f=Math.imul(B,Q),65535===M?(c=k,A=k,u=0):(c=_>>>13,u=8191&_,A=(c=Math.imul(c,Y))+Y),65535===v?(g=X,d=X,l=0):(g=I>>>13,l=8191&I,d=(g=Math.imul(g,T))+T),65535===B?(p=U,C=U,m=0):(p=f>>>13,m=8191&f,C=(p=Math.imul(p,x))+x),b=c+g+p,P=R[b++],w=R[b++],L=R[b],u>=l&&l>=m?(b=A+g+p,S=A+d+p,y=A+d+C,D=R[b++],G=R[S++],a[i++]=P+(Math.imul(D-P,u)+Math.imul(G-D,l)+Math.imul(R[y++]-G,m)+4096>>13),D=R[b++],G=R[S++],a[i++]=w+(Math.imul(D-w,u)+Math.imul(G-D,l)+Math.imul(R[y++]-G,m)+4096>>13),D=R[b],G=R[S],a[i++]=L+(Math.imul(D-L,u)+Math.imul(G-D,l)+Math.imul(R[y]-G,m)+4096>>13)):u>=m&&m>=l?(b=A+g+p,S=A+d+C,E=A+g+C,D=R[E++],G=R[b++],a[i++]=P+(Math.imul(G-P,u)+Math.imul(R[S++]-D,l)+Math.imul(D-G,m)+4096>>13),D=R[E++],G=R[b++],a[i++]=w+(Math.imul(G-w,u)+Math.imul(R[S++]-D,l)+Math.imul(D-G,m)+4096>>13),D=R[E],G=R[b],a[i++]=L+(Math.imul(G-L,u)+Math.imul(R[S]-D,l)+Math.imul(D-G,m)+4096>>13)):u>=l&&m>=u?(b=A+g+C,S=c+g+C,E=A+d+C,D=R[b++],G=R[S++],a[i++]=P+(Math.imul(D-G,u)+Math.imul(R[E++]-D,l)+Math.imul(G-P,m)+4096>>13),D=R[b++],G=R[S++],a[i++]=w+(Math.imul(D-G,u)+Math.imul(R[E++]-D,l)+Math.imul(G-w,m)+4096>>13),D=R[b],G=R[S],a[i++]=L+(Math.imul(D-G,u)+Math.imul(R[E]-D,l)+Math.imul(G-L,m)+4096>>13)):l>=u&&u>=m?(b=A+d+p,S=c+d+p,y=A+d+C,D=R[S++],G=R[b++],a[i++]=P+(Math.imul(G-D,u)+Math.imul(D-P,l)+Math.imul(R[y++]-G,m)+4096>>13),D=R[S++],G=R[b++],a[i++]=w+(Math.imul(G-D,u)+Math.imul(D-w,l)+Math.imul(R[y++]-G,m)+4096>>13),D=R[S],G=R[b],a[i++]=L+(Math.imul(G-D,u)+Math.imul(D-L,l)+Math.imul(R[y]-G,m)+4096>>13)):l>=m&&m>=u?(b=A+d+C,S=c+d+C,E=c+d+p,D=R[S++],G=R[E++],a[i++]=P+(Math.imul(R[b++]-D,u)+Math.imul(G-P,l)+Math.imul(D-G,m)+4096>>13),D=R[S++],G=R[E++],a[i++]=w+(Math.imul(R[b++]-D,u)+Math.imul(G-w,l)+Math.imul(D-G,m)+4096>>13),D=R[S],G=R[E],a[i++]=L+(Math.imul(R[b]-D,u)+Math.imul(G-L,l)+Math.imul(D-G,m)+4096>>13)):m>=l&&l>=u?(b=A+d+C,S=c+d+C,y=c+g+C,D=R[S++],G=R[y++],a[i++]=P+(Math.imul(R[b++]-D,u)+Math.imul(D-G,l)+Math.imul(G-P,m)+4096>>13),D=R[S++],G=R[y++],a[i++]=w+(Math.imul(R[b++]-D,u)+Math.imul(D-G,l)+Math.imul(G-w,m)+4096>>13),D=R[S],G=R[y],a[i++]=L+(Math.imul(R[b]-D,u)+Math.imul(D-G,l)+Math.imul(G-L,m)+4096>>13)):(a[i++]=P,a[i++]=w,a[i++]=L),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=65535))}tetrahedralInterp3DArray_4Ch_intLut16_loop(t,e,a,i,r,n,s,o,h){for(var u=0,l=0,m=0,c=0,A=0,g=0,d=0,p=0,C=0,_=0,I=0,f=0,M=0,v=0,B=0,b=0,S=0,E=0,y=0,P=0,w=0,L=0,D=0,G=0,Q=0,R=0|n.gridPointsScale_fixed_u16,x=n.CLUT,T=0|n.go0,Y=0|n.go1,k=0|n.go2,X=0|n.maxX,U=0|n.maxY,Z=0|n.maxZ,F=0;F<r;F++)M=t[e++],v=t[e++],B=t[e++],_=Math.imul(M,R),I=Math.imul(v,R),f=Math.imul(B,R),65535===M?(c=X,A=X,u=0):(c=_>>>13,u=8191&_,A=(c=Math.imul(c,k))+k),65535===v?(g=U,d=U,l=0):(g=I>>>13,l=8191&I,d=(g=Math.imul(g,Y))+Y),65535===B?(p=Z,C=Z,m=0):(p=f>>>13,m=8191&f,C=(p=Math.imul(p,T))+T),b=c+g+p,P=x[b++],w=x[b++],L=x[b++],D=x[b],u>=l&&l>=m?(b=A+g+p,S=A+d+p,y=A+d+C,G=x[b++],Q=x[S++],a[i++]=P+(Math.imul(G-P,u)+Math.imul(Q-G,l)+Math.imul(x[y++]-Q,m)+4096>>13),G=x[b++],Q=x[S++],a[i++]=w+(Math.imul(G-w,u)+Math.imul(Q-G,l)+Math.imul(x[y++]-Q,m)+4096>>13),G=x[b++],Q=x[S++],a[i++]=L+(Math.imul(G-L,u)+Math.imul(Q-G,l)+Math.imul(x[y++]-Q,m)+4096>>13),G=x[b],Q=x[S],a[i++]=D+(Math.imul(G-D,u)+Math.imul(Q-G,l)+Math.imul(x[y]-Q,m)+4096>>13)):u>=m&&m>=l?(b=A+g+p,S=A+d+C,E=A+g+C,G=x[E++],Q=x[b++],a[i++]=P+(Math.imul(Q-P,u)+Math.imul(x[S++]-G,l)+Math.imul(G-Q,m)+4096>>13),G=x[E++],Q=x[b++],a[i++]=w+(Math.imul(Q-w,u)+Math.imul(x[S++]-G,l)+Math.imul(G-Q,m)+4096>>13),G=x[E++],Q=x[b++],a[i++]=L+(Math.imul(Q-L,u)+Math.imul(x[S++]-G,l)+Math.imul(G-Q,m)+4096>>13),G=x[E],Q=x[b],a[i++]=D+(Math.imul(Q-D,u)+Math.imul(x[S]-G,l)+Math.imul(G-Q,m)+4096>>13)):u>=l&&m>=u?(b=A+g+C,S=c+g+C,E=A+d+C,G=x[b++],Q=x[S++],a[i++]=P+(Math.imul(G-Q,u)+Math.imul(x[E++]-G,l)+Math.imul(Q-P,m)+4096>>13),G=x[b++],Q=x[S++],a[i++]=w+(Math.imul(G-Q,u)+Math.imul(x[E++]-G,l)+Math.imul(Q-w,m)+4096>>13),G=x[b++],Q=x[S++],a[i++]=L+(Math.imul(G-Q,u)+Math.imul(x[E++]-G,l)+Math.imul(Q-L,m)+4096>>13),G=x[b],Q=x[S],a[i++]=D+(Math.imul(G-Q,u)+Math.imul(x[E]-G,l)+Math.imul(Q-D,m)+4096>>13)):l>=u&&u>=m?(b=A+d+p,S=c+d+p,y=A+d+C,G=x[S++],Q=x[b++],a[i++]=P+(Math.imul(Q-G,u)+Math.imul(G-P,l)+Math.imul(x[y++]-Q,m)+4096>>13),G=x[S++],Q=x[b++],a[i++]=w+(Math.imul(Q-G,u)+Math.imul(G-w,l)+Math.imul(x[y++]-Q,m)+4096>>13),G=x[S++],Q=x[b++],a[i++]=L+(Math.imul(Q-G,u)+Math.imul(G-L,l)+Math.imul(x[y++]-Q,m)+4096>>13),G=x[S],Q=x[b],a[i++]=D+(Math.imul(Q-G,u)+Math.imul(G-D,l)+Math.imul(x[y]-Q,m)+4096>>13)):l>=m&&m>=u?(b=A+d+C,S=c+d+C,E=c+d+p,G=x[S++],Q=x[E++],a[i++]=P+(Math.imul(x[b++]-G,u)+Math.imul(Q-P,l)+Math.imul(G-Q,m)+4096>>13),G=x[S++],Q=x[E++],a[i++]=w+(Math.imul(x[b++]-G,u)+Math.imul(Q-w,l)+Math.imul(G-Q,m)+4096>>13),G=x[S++],Q=x[E++],a[i++]=L+(Math.imul(x[b++]-G,u)+Math.imul(Q-L,l)+Math.imul(G-Q,m)+4096>>13),G=x[S],Q=x[E],a[i++]=D+(Math.imul(x[b]-G,u)+Math.imul(Q-D,l)+Math.imul(G-Q,m)+4096>>13)):m>=l&&l>=u?(b=A+d+C,S=c+d+C,y=c+g+C,G=x[S++],Q=x[y++],a[i++]=P+(Math.imul(x[b++]-G,u)+Math.imul(G-Q,l)+Math.imul(Q-P,m)+4096>>13),G=x[S++],Q=x[y++],a[i++]=w+(Math.imul(x[b++]-G,u)+Math.imul(G-Q,l)+Math.imul(Q-w,m)+4096>>13),G=x[S++],Q=x[y++],a[i++]=L+(Math.imul(x[b++]-G,u)+Math.imul(G-Q,l)+Math.imul(Q-L,m)+4096>>13),G=x[S],Q=x[y],a[i++]=D+(Math.imul(x[b]-G,u)+Math.imul(G-Q,l)+Math.imul(Q-D,m)+4096>>13)):(a[i++]=P,a[i++]=w,a[i++]=L,a[i++]=D),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=65535))}tetrahedralInterp4DArray_3Ch_intLut16_loop(t,e,a,i,r,n,s,o,h){for(var u=0,l=0,m=0,c=0,A=0,g=0,d=0,p=0,C=0,_=0,I=0,f=0,M=0,v=0,B=0,b=0,S=0,E=0,y=0,P=0,w=0,L=0,D=0,G=0,Q=0,R=0,x=0,T=0,Y=0,k=0,X=0,U=0,Z=0,F=0,q=0,N=!1,W=0|n.gridPointsScale_fixed_u16,H=n.CLUT,K=0|n.go0,J=0|n.go1,O=0|n.go2,V=0|n.go3,j=0|n.maxX,z=0|n.maxY,$=0|n.maxZ,tt=0|n.maxK,et=V-n.outputChannels+1|0,at=0;at<r;at++)y=t[e++],b=t[e++],S=t[e++],E=t[e++],B=Math.imul(y,W),65535===y?(d=tt,I=0):(d=B>>>13,I=8191&B,d=Math.imul(d,V)),f=Math.imul(b,W),65535===b?(u=j,l=j,p=0):(u=f>>>13,p=8191&f,l=(u=Math.imul(u,O))+O),M=Math.imul(S,W),65535===S?(m=z,c=z,C=0):(m=M>>>13,C=8191&M,c=(m=Math.imul(m,J))+J),v=Math.imul(E,W),65535===E?(A=$,g=$,_=0):(A=v>>>13,_=8191&v,g=(A=Math.imul(A,K))+K),P=u+m+A+d,G=H[P++],Q=H[P++],R=H[P],65535===y||0===I?N=!1:(P+=et,x=H[P++],T=H[P++],Y=H[P],N=!0),p>=C&&C>=_?(P=l+m+A+d,w=l+c+A+d,D=l+c+g+d,Z=H[P++],F=H[w++],k=G+(Math.imul(Z-G,p)+Math.imul(F-Z,C)+Math.imul(H[D++]-F,_)+4096>>13),Z=H[P++],F=H[w++],X=Q+(Math.imul(Z-Q,p)+Math.imul(F-Z,C)+Math.imul(H[D++]-F,_)+4096>>13),Z=H[P],F=H[w],U=R+(Math.imul(Z-R,p)+Math.imul(F-Z,C)+Math.imul(H[D]-F,_)+4096>>13),N?(P+=et,w+=et,D+=et,Z=H[P++],F=H[w++],q=x+(Math.imul(Z-x,p)+Math.imul(F-Z,C)+Math.imul(H[D++]-F,_)+4096>>13),a[i++]=k+(Math.imul(q-k,I)+4096>>13),Z=H[P++],F=H[w++],q=T+(Math.imul(Z-T,p)+Math.imul(F-Z,C)+Math.imul(H[D++]-F,_)+4096>>13),a[i++]=X+(Math.imul(q-X,I)+4096>>13),Z=H[P],F=H[w],q=Y+(Math.imul(Z-Y,p)+Math.imul(F-Z,C)+Math.imul(H[D]-F,_)+4096>>13),a[i++]=U+(Math.imul(q-U,I)+4096>>13)):(a[i++]=k,a[i++]=X,a[i++]=U)):p>=_&&_>=C?(P=l+m+A+d,w=l+c+g+d,L=l+m+g+d,Z=H[L++],F=H[P++],k=G+(Math.imul(F-G,p)+Math.imul(H[w++]-Z,C)+Math.imul(Z-F,_)+4096>>13),Z=H[L++],F=H[P++],X=Q+(Math.imul(F-Q,p)+Math.imul(H[w++]-Z,C)+Math.imul(Z-F,_)+4096>>13),Z=H[L],F=H[P],U=R+(Math.imul(F-R,p)+Math.imul(H[w]-Z,C)+Math.imul(Z-F,_)+4096>>13),N?(L+=et,P+=et,w+=et,Z=H[L++],F=H[P++],q=x+(Math.imul(F-x,p)+Math.imul(H[w++]-Z,C)+Math.imul(Z-F,_)+4096>>13),a[i++]=k+(Math.imul(q-k,I)+4096>>13),Z=H[L++],F=H[P++],q=T+(Math.imul(F-T,p)+Math.imul(H[w++]-Z,C)+Math.imul(Z-F,_)+4096>>13),a[i++]=X+(Math.imul(q-X,I)+4096>>13),Z=H[L],F=H[P],q=Y+(Math.imul(F-Y,p)+Math.imul(H[w]-Z,C)+Math.imul(Z-F,_)+4096>>13),a[i++]=U+(Math.imul(q-U,I)+4096>>13)):(a[i++]=k,a[i++]=X,a[i++]=U)):p>=C&&_>=p?(P=l+m+g+d,w=u+m+g+d,L=l+c+g+d,Z=H[P++],F=H[w++],k=G+(Math.imul(Z-F,p)+Math.imul(H[L++]-Z,C)+Math.imul(F-G,_)+4096>>13),Z=H[P++],F=H[w++],X=Q+(Math.imul(Z-F,p)+Math.imul(H[L++]-Z,C)+Math.imul(F-Q,_)+4096>>13),Z=H[P],F=H[w],U=R+(Math.imul(Z-F,p)+Math.imul(H[L]-Z,C)+Math.imul(F-R,_)+4096>>13),N?(P+=et,w+=et,L+=et,Z=H[P++],F=H[w++],q=x+(Math.imul(Z-F,p)+Math.imul(H[L++]-Z,C)+Math.imul(F-x,_)+4096>>13),a[i++]=k+(Math.imul(q-k,I)+4096>>13),Z=H[P++],F=H[w++],q=T+(Math.imul(Z-F,p)+Math.imul(H[L++]-Z,C)+Math.imul(F-T,_)+4096>>13),a[i++]=X+(Math.imul(q-X,I)+4096>>13),Z=H[P],F=H[w],q=Y+(Math.imul(Z-F,p)+Math.imul(H[L]-Z,C)+Math.imul(F-Y,_)+4096>>13),a[i++]=U+(Math.imul(q-U,I)+4096>>13)):(a[i++]=k,a[i++]=X,a[i++]=U)):C>=p&&p>=_?(P=l+c+A+d,w=u+c+A+d,D=l+c+g+d,Z=H[w++],F=H[P++],k=G+(Math.imul(F-Z,p)+Math.imul(Z-G,C)+Math.imul(H[D++]-F,_)+4096>>13),Z=H[w++],F=H[P++],X=Q+(Math.imul(F-Z,p)+Math.imul(Z-Q,C)+Math.imul(H[D++]-F,_)+4096>>13),Z=H[w],F=H[P],U=R+(Math.imul(F-Z,p)+Math.imul(Z-R,C)+Math.imul(H[D]-F,_)+4096>>13),N?(P+=et,w+=et,D+=et,Z=H[w++],F=H[P++],q=x+(Math.imul(F-Z,p)+Math.imul(Z-x,C)+Math.imul(H[D++]-F,_)+4096>>13),a[i++]=k+(Math.imul(q-k,I)+4096>>13),Z=H[w++],F=H[P++],q=T+(Math.imul(F-Z,p)+Math.imul(Z-T,C)+Math.imul(H[D++]-F,_)+4096>>13),a[i++]=X+(Math.imul(q-X,I)+4096>>13),Z=H[w],F=H[P],q=Y+(Math.imul(F-Z,p)+Math.imul(Z-Y,C)+Math.imul(H[D]-F,_)+4096>>13),a[i++]=U+(Math.imul(q-U,I)+4096>>13)):(a[i++]=k,a[i++]=X,a[i++]=U)):C>=_&&_>=p?(P=l+c+g+d,w=u+c+g+d,L=u+c+A+d,Z=H[w++],F=H[L++],k=G+(Math.imul(H[P++]-Z,p)+Math.imul(F-G,C)+Math.imul(Z-F,_)+4096>>13),Z=H[w++],F=H[L++],X=Q+(Math.imul(H[P++]-Z,p)+Math.imul(F-Q,C)+Math.imul(Z-F,_)+4096>>13),Z=H[w],F=H[L],U=R+(Math.imul(H[P]-Z,p)+Math.imul(F-R,C)+Math.imul(Z-F,_)+4096>>13),N?(P+=et,w+=et,L+=et,Z=H[w++],F=H[L++],q=x+(Math.imul(H[P++]-Z,p)+Math.imul(F-x,C)+Math.imul(Z-F,_)+4096>>13),a[i++]=k+(Math.imul(q-k,I)+4096>>13),Z=H[w++],F=H[L++],q=T+(Math.imul(H[P++]-Z,p)+Math.imul(F-T,C)+Math.imul(Z-F,_)+4096>>13),a[i++]=X+(Math.imul(q-X,I)+4096>>13),Z=H[w],F=H[L],q=Y+(Math.imul(H[P]-Z,p)+Math.imul(F-Y,C)+Math.imul(Z-F,_)+4096>>13),a[i++]=U+(Math.imul(q-U,I)+4096>>13)):(a[i++]=k,a[i++]=X,a[i++]=U)):_>=C&&C>=p?(P=l+c+g+d,w=u+c+g+d,D=u+m+g+d,Z=H[w++],F=H[D++],k=G+(Math.imul(H[P++]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-G,_)+4096>>13),Z=H[w++],F=H[D++],X=Q+(Math.imul(H[P++]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-Q,_)+4096>>13),Z=H[w],F=H[D],U=R+(Math.imul(H[P]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-R,_)+4096>>13),N?(P+=et,w+=et,D+=et,Z=H[w++],F=H[D++],q=x+(Math.imul(H[P++]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-x,_)+4096>>13),a[i++]=k+(Math.imul(q-k,I)+4096>>13),Z=H[w++],F=H[D++],q=T+(Math.imul(H[P++]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-T,_)+4096>>13),a[i++]=X+(Math.imul(q-X,I)+4096>>13),Z=H[w],F=H[D],q=Y+(Math.imul(H[P]-Z,p)+Math.imul(Z-F,C)+Math.imul(F-Y,_)+4096>>13),a[i++]=U+(Math.imul(q-U,I)+4096>>13)):(a[i++]=k,a[i++]=X,a[i++]=U)):N?(a[i++]=G+(Math.imul(x-G,I)+4096>>13),a[i++]=Q+(Math.imul(T-Q,I)+4096>>13),a[i++]=R+(Math.imul(Y-R,I)+4096>>13)):(a[i++]=G,a[i++]=Q,a[i++]=R),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=65535))}tetrahedralInterp4DArray_4Ch_intLut16_loop(t,e,a,i,r,n,s,o,h){for(var u=0,l=0,m=0,c=0,A=0,g=0,d=0,p=0,C=0,_=0,I=0,f=0,M=0,v=0,B=0,b=0,S=0,E=0,y=0,P=0,w=0,L=0,D=0,G=0,Q=0,R=0,x=0,T=0,Y=0,k=0,X=0,U=0,Z=0,F=0,q=0,N=0,W=0,H=0,K=!1,J=0|n.gridPointsScale_fixed_u16,O=n.CLUT,V=0|n.go0,j=0|n.go1,z=0|n.go2,$=0|n.go3,tt=0|n.maxX,et=0|n.maxY,at=0|n.maxZ,it=0|n.maxK,rt=$-n.outputChannels+1|0,nt=0;nt<r;nt++)y=t[e++],b=t[e++],S=t[e++],E=t[e++],B=Math.imul(y,J),65535===y?(d=it,I=0):(d=B>>>13,I=8191&B,d=Math.imul(d,$)),f=Math.imul(b,J),65535===b?(u=tt,l=tt,p=0):(u=f>>>13,p=8191&f,l=(u=Math.imul(u,z))+z),M=Math.imul(S,J),65535===S?(m=et,c=et,C=0):(m=M>>>13,C=8191&M,c=(m=Math.imul(m,j))+j),v=Math.imul(E,J),65535===E?(A=at,g=at,_=0):(A=v>>>13,_=8191&v,g=(A=Math.imul(A,V))+V),P=u+m+A+d,G=O[P++],Q=O[P++],R=O[P++],x=O[P],65535===y||0===I?K=!1:(P+=rt,T=O[P++],Y=O[P++],k=O[P++],X=O[P],K=!0),p>=C&&C>=_?(P=l+m+A+d,w=l+c+A+d,D=l+c+g+d,N=O[P++],W=O[w++],U=G+(Math.imul(N-G,p)+Math.imul(W-N,C)+Math.imul(O[D++]-W,_)+4096>>13),N=O[P++],W=O[w++],Z=Q+(Math.imul(N-Q,p)+Math.imul(W-N,C)+Math.imul(O[D++]-W,_)+4096>>13),N=O[P++],W=O[w++],F=R+(Math.imul(N-R,p)+Math.imul(W-N,C)+Math.imul(O[D++]-W,_)+4096>>13),N=O[P],W=O[w],q=x+(Math.imul(N-x,p)+Math.imul(W-N,C)+Math.imul(O[D]-W,_)+4096>>13),K?(P+=rt,w+=rt,D+=rt,N=O[P++],W=O[w++],H=T+(Math.imul(N-T,p)+Math.imul(W-N,C)+Math.imul(O[D++]-W,_)+4096>>13),a[i++]=U+(Math.imul(H-U,I)+4096>>13),N=O[P++],W=O[w++],H=Y+(Math.imul(N-Y,p)+Math.imul(W-N,C)+Math.imul(O[D++]-W,_)+4096>>13),a[i++]=Z+(Math.imul(H-Z,I)+4096>>13),N=O[P++],W=O[w++],H=k+(Math.imul(N-k,p)+Math.imul(W-N,C)+Math.imul(O[D++]-W,_)+4096>>13),a[i++]=F+(Math.imul(H-F,I)+4096>>13),N=O[P],W=O[w],H=X+(Math.imul(N-X,p)+Math.imul(W-N,C)+Math.imul(O[D]-W,_)+4096>>13),a[i++]=q+(Math.imul(H-q,I)+4096>>13)):(a[i++]=U,a[i++]=Z,a[i++]=F,a[i++]=q)):p>=_&&_>=C?(P=l+m+A+d,w=l+c+g+d,L=l+m+g+d,N=O[L++],W=O[P++],U=G+(Math.imul(W-G,p)+Math.imul(O[w++]-N,C)+Math.imul(N-W,_)+4096>>13),N=O[L++],W=O[P++],Z=Q+(Math.imul(W-Q,p)+Math.imul(O[w++]-N,C)+Math.imul(N-W,_)+4096>>13),N=O[L++],W=O[P++],F=R+(Math.imul(W-R,p)+Math.imul(O[w++]-N,C)+Math.imul(N-W,_)+4096>>13),N=O[L],W=O[P],q=x+(Math.imul(W-x,p)+Math.imul(O[w]-N,C)+Math.imul(N-W,_)+4096>>13),K?(L+=rt,P+=rt,w+=rt,N=O[L++],W=O[P++],H=T+(Math.imul(W-T,p)+Math.imul(O[w++]-N,C)+Math.imul(N-W,_)+4096>>13),a[i++]=U+(Math.imul(H-U,I)+4096>>13),N=O[L++],W=O[P++],H=Y+(Math.imul(W-Y,p)+Math.imul(O[w++]-N,C)+Math.imul(N-W,_)+4096>>13),a[i++]=Z+(Math.imul(H-Z,I)+4096>>13),N=O[L++],W=O[P++],H=k+(Math.imul(W-k,p)+Math.imul(O[w++]-N,C)+Math.imul(N-W,_)+4096>>13),a[i++]=F+(Math.imul(H-F,I)+4096>>13),N=O[L],W=O[P],H=X+(Math.imul(W-X,p)+Math.imul(O[w]-N,C)+Math.imul(N-W,_)+4096>>13),a[i++]=q+(Math.imul(H-q,I)+4096>>13)):(a[i++]=U,a[i++]=Z,a[i++]=F,a[i++]=q)):p>=C&&_>=p?(P=l+m+g+d,w=u+m+g+d,L=l+c+g+d,N=O[P++],W=O[w++],U=G+(Math.imul(N-W,p)+Math.imul(O[L++]-N,C)+Math.imul(W-G,_)+4096>>13),N=O[P++],W=O[w++],Z=Q+(Math.imul(N-W,p)+Math.imul(O[L++]-N,C)+Math.imul(W-Q,_)+4096>>13),N=O[P++],W=O[w++],F=R+(Math.imul(N-W,p)+Math.imul(O[L++]-N,C)+Math.imul(W-R,_)+4096>>13),N=O[P],W=O[w],q=x+(Math.imul(N-W,p)+Math.imul(O[L]-N,C)+Math.imul(W-x,_)+4096>>13),K?(P+=rt,w+=rt,L+=rt,N=O[P++],W=O[w++],H=T+(Math.imul(N-W,p)+Math.imul(O[L++]-N,C)+Math.imul(W-T,_)+4096>>13),a[i++]=U+(Math.imul(H-U,I)+4096>>13),N=O[P++],W=O[w++],H=Y+(Math.imul(N-W,p)+Math.imul(O[L++]-N,C)+Math.imul(W-Y,_)+4096>>13),a[i++]=Z+(Math.imul(H-Z,I)+4096>>13),N=O[P++],W=O[w++],H=k+(Math.imul(N-W,p)+Math.imul(O[L++]-N,C)+Math.imul(W-k,_)+4096>>13),a[i++]=F+(Math.imul(H-F,I)+4096>>13),N=O[P],W=O[w],H=X+(Math.imul(N-W,p)+Math.imul(O[L]-N,C)+Math.imul(W-X,_)+4096>>13),a[i++]=q+(Math.imul(H-q,I)+4096>>13)):(a[i++]=U,a[i++]=Z,a[i++]=F,a[i++]=q)):C>=p&&p>=_?(P=l+c+A+d,w=u+c+A+d,D=l+c+g+d,N=O[w++],W=O[P++],U=G+(Math.imul(W-N,p)+Math.imul(N-G,C)+Math.imul(O[D++]-W,_)+4096>>13),N=O[w++],W=O[P++],Z=Q+(Math.imul(W-N,p)+Math.imul(N-Q,C)+Math.imul(O[D++]-W,_)+4096>>13),N=O[w++],W=O[P++],F=R+(Math.imul(W-N,p)+Math.imul(N-R,C)+Math.imul(O[D++]-W,_)+4096>>13),N=O[w],W=O[P],q=x+(Math.imul(W-N,p)+Math.imul(N-x,C)+Math.imul(O[D]-W,_)+4096>>13),K?(P+=rt,w+=rt,D+=rt,N=O[w++],W=O[P++],H=T+(Math.imul(W-N,p)+Math.imul(N-T,C)+Math.imul(O[D++]-W,_)+4096>>13),a[i++]=U+(Math.imul(H-U,I)+4096>>13),N=O[w++],W=O[P++],H=Y+(Math.imul(W-N,p)+Math.imul(N-Y,C)+Math.imul(O[D++]-W,_)+4096>>13),a[i++]=Z+(Math.imul(H-Z,I)+4096>>13),N=O[w++],W=O[P++],H=k+(Math.imul(W-N,p)+Math.imul(N-k,C)+Math.imul(O[D++]-W,_)+4096>>13),a[i++]=F+(Math.imul(H-F,I)+4096>>13),N=O[w],W=O[P],H=X+(Math.imul(W-N,p)+Math.imul(N-X,C)+Math.imul(O[D]-W,_)+4096>>13),a[i++]=q+(Math.imul(H-q,I)+4096>>13)):(a[i++]=U,a[i++]=Z,a[i++]=F,a[i++]=q)):C>=_&&_>=p?(P=l+c+g+d,w=u+c+g+d,L=u+c+A+d,N=O[w++],W=O[L++],U=G+(Math.imul(O[P++]-N,p)+Math.imul(W-G,C)+Math.imul(N-W,_)+4096>>13),N=O[w++],W=O[L++],Z=Q+(Math.imul(O[P++]-N,p)+Math.imul(W-Q,C)+Math.imul(N-W,_)+4096>>13),N=O[w++],W=O[L++],F=R+(Math.imul(O[P++]-N,p)+Math.imul(W-R,C)+Math.imul(N-W,_)+4096>>13),N=O[w],W=O[L],q=x+(Math.imul(O[P]-N,p)+Math.imul(W-x,C)+Math.imul(N-W,_)+4096>>13),K?(P+=rt,w+=rt,L+=rt,N=O[w++],W=O[L++],H=T+(Math.imul(O[P++]-N,p)+Math.imul(W-T,C)+Math.imul(N-W,_)+4096>>13),a[i++]=U+(Math.imul(H-U,I)+4096>>13),N=O[w++],W=O[L++],H=Y+(Math.imul(O[P++]-N,p)+Math.imul(W-Y,C)+Math.imul(N-W,_)+4096>>13),a[i++]=Z+(Math.imul(H-Z,I)+4096>>13),N=O[w++],W=O[L++],H=k+(Math.imul(O[P++]-N,p)+Math.imul(W-k,C)+Math.imul(N-W,_)+4096>>13),a[i++]=F+(Math.imul(H-F,I)+4096>>13),N=O[w],W=O[L],H=X+(Math.imul(O[P]-N,p)+Math.imul(W-X,C)+Math.imul(N-W,_)+4096>>13),a[i++]=q+(Math.imul(H-q,I)+4096>>13)):(a[i++]=U,a[i++]=Z,a[i++]=F,a[i++]=q)):_>=C&&C>=p?(P=l+c+g+d,w=u+c+g+d,D=u+m+g+d,N=O[w++],W=O[D++],U=G+(Math.imul(O[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-G,_)+4096>>13),N=O[w++],W=O[D++],Z=Q+(Math.imul(O[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-Q,_)+4096>>13),N=O[w++],W=O[D++],F=R+(Math.imul(O[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-R,_)+4096>>13),N=O[w],W=O[D],q=x+(Math.imul(O[P]-N,p)+Math.imul(N-W,C)+Math.imul(W-x,_)+4096>>13),K?(P+=rt,w+=rt,D+=rt,N=O[w++],W=O[D++],H=T+(Math.imul(O[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-T,_)+4096>>13),a[i++]=U+(Math.imul(H-U,I)+4096>>13),N=O[w++],W=O[D++],H=Y+(Math.imul(O[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-Y,_)+4096>>13),a[i++]=Z+(Math.imul(H-Z,I)+4096>>13),N=O[w++],W=O[D++],H=k+(Math.imul(O[P++]-N,p)+Math.imul(N-W,C)+Math.imul(W-k,_)+4096>>13),a[i++]=F+(Math.imul(H-F,I)+4096>>13),N=O[w],W=O[D],H=X+(Math.imul(O[P]-N,p)+Math.imul(N-W,C)+Math.imul(W-X,_)+4096>>13),a[i++]=q+(Math.imul(H-q,I)+4096>>13)):(a[i++]=U,a[i++]=Z,a[i++]=F,a[i++]=q)):K?(a[i++]=G+(Math.imul(T-G,I)+4096>>13),a[i++]=Q+(Math.imul(Y-Q,I)+4096>>13),a[i++]=R+(Math.imul(k-R,I)+4096>>13),a[i++]=x+(Math.imul(X-x,I)+4096>>13)):(a[i++]=G,a[i++]=Q,a[i++]=R,a[i++]=x),h?a[i++]=t[e++]:(s&&e++,o&&(a[i++]=65535))}tetrahedralInterp3DArray_4Ch_16bit(t,e,a,i,r,n){for(var s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B,b,S,E,y,P,w,L,D,G,Q,R,x,T,Y,k,X=n.outputScale,U=n.outputChannels,Z=n.g1-1,F=n.CLUT,q=n.go1,N=n.go2,W=0;W<r;W++){if(d=(_=t[e++])*Z/255,p=(I=t[e++])*Z/255,C=(f=t[e++])*Z/255,u=Math.floor(d),s=_,l=255===_?u:u+1,m=Math.floor(p),o=I,c=255===I?m:m+1,A=Math.floor(C),h=f,g=255===f?A:A+1,g*=U,M=u*N+m*q+(A*=U),B=F[M++],b=F[M++],S=F[M++],E=F[M],s>=o&&o>=h)M=l*N+m*q+A,y=F[M++]-B,P=F[M++]-b,w=F[M++]-S,L=F[M]-E,M=l*N+c*q+A,v=l*N+m*q+A,D=F[M++]-F[v++],G=F[M++]-F[v++],Q=F[M++]-F[v++],R=F[M]-F[v],M=l*N+c*q+g,v=l*N+c*q+A,x=F[M++]-F[v++],T=F[M++]-F[v++],Y=F[M++]-F[v++],k=F[M]-F[v];else if(s>=h&&h>=o)M=l*N+m*q+A,y=F[M++]-B,P=F[M++]-b,w=F[M++]-S,L=F[M]-E,M=l*N+c*q+g,v=l*N+m*q+g,D=F[M++]-F[v++],G=F[M++]-F[v++],Q=F[M++]-F[v++],R=F[M]-F[v],M=l*N+m*q+g,v=l*N+m*q+A,x=F[M++]-F[v++],T=F[M++]-F[v++],Y=F[M++]-F[v++],k=F[M]-F[v];else if(h>=s&&s>=o)M=l*N+m*q+g,v=u*N+m*q+g,y=F[M++]-F[v++],P=F[M++]-F[v++],w=F[M++]-F[v++],L=F[M]-F[v],M=l*N+c*q+g,v=l*N+m*q+g,D=F[M++]-F[v++],G=F[M++]-F[v++],Q=F[M++]-F[v++],R=F[M]-F[v],M=u*N+m*q+g,x=F[M++]-B,T=F[M++]-b,Y=F[M++]-S,k=F[M]-E;else if(o>=s&&s>=h)M=l*N+c*q+A,v=u*N+c*q+A,y=F[M++]-F[v++],P=F[M++]-F[v++],w=F[M++]-F[v++],L=F[M++]-F[v],M=u*N+c*q+A,D=F[M++]-B,G=F[M++]-b,Q=F[M++]-S,R=F[M]-E,M=l*N+c*q+g,v=l*N+c*q+A,x=F[M++]-F[v++],T=F[M++]-F[v++],Y=F[M++]-F[v++],k=F[M]-F[v];else if(o>=h&&h>=s)M=l*N+c*q+g,v=u*N+c*q+g,y=F[M++]-F[v++],P=F[M++]-F[v++],w=F[M++]-F[v++],L=F[M]-F[v],M=u*N+c*q+A,D=F[M++]-B,G=F[M++]-b,Q=F[M++]-S,R=F[M]-E,M=u*N+c*q+g,v=u*N+c*q+A,x=F[M++]-F[v++],T=F[M++]-F[v++],Y=F[M++]-F[v++],k=F[M]-F[v];else{if(!(h>=o&&o>=s)){a[i++]=B*X,a[i++]=b*X,a[i++]=S*X,a[i++]=E*X;continue}M=l*N+c*q+g,v=u*N+c*q+g,y=F[M++]-F[v++],P=F[M++]-F[v++],w=F[M++]-F[v++],L=F[M]-F[v],M=u*N+c*q+g,v=u*N+m*q+g,D=F[M++]-F[v++],G=F[M++]-F[v++],Q=F[M++]-F[v++],R=F[M]-F[v],M=u*N+m*q+g,x=F[M++]-B,T=F[M++]-b,Y=F[M++]-S,k=F[M]-E}var H;H=y*s+D*o+x*h+32769,a[i++]=256*B+H+(H>>16)>>16,H=P*s+G*o+T*h+32769,a[i++]=256*b+H+(H>>16)>>16,H=w*s+Q*o+Y*h+32769,a[i++]=256*S+H+(H>>16)>>16,H=L*s+R*o+k*h+32769,a[i++]=256*E+H+(H>>16)>>16}}tetrahedralInterp3D_NCh_F16(t,e){var a,i,r,n,s,o,h,u,l,m,c,A,g,d,p,C,_,I,f,M,v,B=e.outputScale,b=e.outputChannels,S=e.g1-1,E=e.CLUT,y=e.go0,P=e.go1,w=e.go2;a=(m=Math.min(Math.max(t[0],0),65535)*S/65535)-(n=~~m),s=n===S?n*=w:(n*=w)+w,i=(c=Math.min(Math.max(t[1],0),65535)*S/65535)-(o=~~c),h=o===S?o*=P:(o*=P)+P,r=(A=Math.min(Math.max(t[2],0),65535)*S/65535)-(u=~~A),l=u===S?u*=y:(u*=y)+y,g=n+o+u;var L=new Array(b);if(a>=i&&i>=r)for(d=s+o+u,p=s+h+u,_=s+h+l,v=0;v<b;v++)I=E[d++],f=E[p++],M=E[g++],L[v]=(M+(I-M)*a+(f-I)*i+(E[_++]-f)*r)*B;else if(a>=r&&r>=i)for(d=s+o+u,p=s+h+l,C=s+o+l,v=0;v<b;v++)I=E[C++],f=E[d++],M=E[g++],L[v]=(M+(f-M)*a+(E[p++]-I)*i+(I-f)*r)*B;else if(a>=i&&r>=a)for(d=s+o+l,p=n+o+l,C=s+h+l,v=0;v<b;v++)I=E[d++],f=E[p++],M=E[g++],L[v]=(M+(I-f)*a+(E[C++]-I)*i+(f-M)*r)*B;else if(i>=a&&a>=r)for(d=s+h+u,p=n+h+u,_=s+h+l,v=0;v<b;v++)I=E[p++],f=E[d++],M=E[g++],L[v]=(M+(f-I)*a+(I-M)*i+(E[_++]-f)*r)*B;else if(i>=r&&r>=a)for(d=s+h+l,p=n+h+l,C=n+h+u,v=0;v<b;v++)I=E[p++],f=E[C++],M=E[g++],L[v]=(M+(E[d++]-I)*a+(f-M)*i+(I-f)*r)*B;else if(r>=i&&i>=a)for(d=s+h+l,p=n+h+l,_=n+o+l,v=0;v<b;v++)I=E[p++],f=E[_++],M=E[g++],L[v]=(M+(E[d++]-I)*a+(I-f)*i+(f-M)*r)*B;else for(v=0;v<b;v++)L[v]=E[g++]*B;return L}tetrahedralInterp4D_3or4Ch_Master(t,e){var a,i,r,n,s;r=n=Math.max(0,Math.min(1,t[0]*e.inputScale)),s=(n*=e.g1-1)-(a=Math.floor(n)),i=r>=1?a:a+1;var o=[t[1],t[2],t[3]],h=this.tetrahedralInterp3D_Master(o,e,a);if(0===s)return h;var u=this.tetrahedralInterp3D_Master(o,e,i);return h[0]=h[0]+(u[0]-h[0])*s,h[1]=h[1]+(u[1]-h[1])*s,h[2]=h[2]+(u[2]-h[2])*s,3===e.outputChannels||(h[3]=h[3]+(u[3]-h[3])*s),h}tetrahedralInterp4D_3or4Ch(t,e){var a,i,r,n,s;r=n=Math.max(0,Math.min(1,t[0]*e.inputScale)),s=(n*=e.g1-1)-(a=Math.floor(n)),i=r>=1?a:a+1;var o=[t[1],t[2],t[3]],h=this.tetrahedralInterp3D_3or4Ch(o,e,a);if(0===s)return h;var u=this.tetrahedralInterp3D_3or4Ch(o,e,i);return h[0]=h[0]+(u[0]-h[0])*s,h[1]=h[1]+(u[1]-h[1])*s,h[2]=h[2]+(u[2]-h[2])*s,3===e.outputChannels||(h[3]=h[3]+(u[3]-h[3])*s),h}detectOutputBlackpoint(t,e){var a,r=this,n=this.XYZ(0,0,0);if(!t)return n;if("link"===t.header.pClass||"abst"===t.header.pClass||"nmcl"===t.header.pClass)return n;if(e===h.absolute)return n;if(t.type===u.RGBMatrix)return n;if(4===t.version&&(e===h.perceptual||e===h.saturation))return t.type===u.RGBMatrix?(a=this.RGBDevice_to_PCSv4_or_LabD50([0,0,0],t,!0),this.Lab2XYZ(a)):this.XYZ(.00336,.0034731,.00287);var s,o=!!t.B2A[this.intent2LUTIndex(e)];if(t.type!==u.Gray&&t.type!==u.RGBLut&&t.type!==u.CMYK||!o)return this.detectBlackpoint(t,e);s=e===h.relative?this.XYZ2Lab(this.detectBlackpoint(t,e),m.d50):this.Lab(0,0,0);var l=new i("*Lab"),c=new g({precision:3}),A=new g({precision:3});c._BPCAutoEnable=!1,A._BPCAutoEnable=!1,c.create(l,t,e),A.create(t,l,h.relative);var d=[],p=[],C=this.Lab(0,0,0);C.a=Math.min(50,Math.max(-50,s.a)),C.b=Math.min(50,Math.max(-50,s.b));for(var _=0;_<256;_++){C.L=100*_/255;var I=c.forward(C),f=A.forward(I);d[_]=C.L,p[_]=f.L}for(_=254;_>0;--_)p[_]=Math.min(p[_],p[_+1]);if(!(p[0]<p[255]))return n;var M=!0,v=p[0],B=p[255];if(e===h.relative){for(_=0;_<256;_++)if(!(d[_]<=v+.2*(B-v)||d[_]-p[_]<4)){M=!1;break}if(M)return this.Lab2XYZ(s)}var b,S,E=[];for(_=0;_<256;_++)E[_]=(p[_]-v)/(B-v);e===h.relative?(S=.1,b=.5):(S=.03,b=.25);var y=0,P=[],w=[];for(_=0;_<256;_++){var L=E[_];L>=S&&L<b&&(P[y]=d[_],w[y]=E[_],y++)}return y<3?n:(C.L=function(t,e,a){var i,n,s,o,h,u=0,l=0,m=0,c=0,A=0,g=0,d=0;if(t<4)return 0;for(h=0;h<t;h++){var p=e[h],C=a[h];u+=p,l+=p*p,m+=p*p*p,c+=p*p*p*p,A+=C,g+=C*p,d+=C*p*p}var _=[t,u,l,u,l,m,l,m,c],I=r.invertMatrix(_),f=r.evalMatrix([A,g,d],I);if(n=f[2],s=f[1],o=f[0],n<1e-10)return Math.min(0,Math.max(50,-o/s));if((i=s*s-4*n*o)<=0)return 0;var M=(-s+Math.sqrt(i))/(2*n);return Math.max(0,Math.min(50,M))}(y,P,w),C.L<0&&(C.L=0),C.a=s.a,C.b=s.b,this.Lab2XYZ(C))}detectBlackpoint(t,e){var a=this.XYZ(0,0,0);return t?"link"===t.header.pClass||"abst"===t.header.pClass||"nmcl"===t.header.pClass||e===h.absolute||t.type===u.RGBMatrix?a:4!==t.version||e!==h.perceptual&&e!==h.saturation?"prtr"===t.header.pClass&&t.type===u.CMYK&&e===h.relative?this.Lab2XYZ(this.findInkLimitedBlackpoint(t)):this.Lab2XYZ(this.findMaxColourantBlackpoint(t,e)):t.type===u.RGBMatrix?this.Lab2XYZ(this.RGBDevice_to_PCSv4_or_LabD50([0,0,0],t,!0)):this.XYZ(.00336,.0034731,.00287):a}findMaxColourantBlackpoint(t,e){var a,n;switch(t.type){case u.Gray:a=r.Gray(100),n=r.Gray(0);break;case u.Duo:a=r.Duo(100,100),n=r.Duo(0,0);break;case u.RGBLut:a=r.RGB(255,255,255),n=r.RGB(0,0,0);break;case u.CMYK:a=r.CMYK(0,0,0,0),n=r.CMYK(100,100,100,100);break;case u.Lab:throw new Error("Lab profiles not supported by Black Point Compensation");default:throw new Error(t.type+" not supported by Black Point Compensation")}var s=new i("*Lab"),o=new g({precision:3});o._BPCAutoEnable=!1,o.create(t,s,e);var h=o.forward(n),l=o.forward(a);return l.L<h.L&&(h=l),h.a=0,h.b=0,(h.L>50||h.L<0)&&(h.L=0),h}findInkLimitedBlackpoint(t){var e=new i("*Lab"),a=new g({precision:3}),r=new g({precision:3});r._BPCAutoEnable=!1,r._BPCAutoEnable=!1,a.create(e,t,h.perceptual),r.create(t,e,h.relative);var n=a.forward(this.Lab(0,0,0)),s=r.forward(n);return s.L>50&&(s.L=50),s.a=s.b=0,s}compile(t){var e=(t=t||{}).target||"js",a=!0===t.instrument,i=!0===t.profilable,r=!1!==t.useGammaLUT,n=!1!==t.strict,s=!0===t.hotLoop;if(a&&i)throw new Error("compile(): instrument and profilable are mutually exclusive");if(s&&i)throw new Error("compile(): hotLoop and profilable are mutually exclusive");if(s&&a)throw new Error("compile(): hotLoop and instrument are mutually exclusive");var o={target:e,instrument:a,profilable:i,useGammaLUT:r,strict:n,hotLoop:s};if(!this.pipelineCreated||0===this.pipeline.length)throw"No pipeline to compile";var h={_version:"1.2.0-poc"},u=[],l={emitted:[],fallback:[]};if(a){var m="undefined"!=typeof process&&process.hrtime&&process.hrtime.bigint?process.hrtime.bigint:function(){return BigInt(Math.round(1e6*("undefined"!=typeof performance?performance.now():Date.now())))};h._instHr=m,h._instCount=0,h._instTime=new Float64Array(this.pipeline.length),h._instCalls=new Uint32Array(this.pipeline.length),h._instLabels=new Array(this.pipeline.length)}for(var c=0;c<this.pipeline.length;c++){var A=this.pipeline[c],g=A.stageName,d=g;A.funct===this.stage_debug?d="stage_debug":A.funct===this.stage_history&&(d="stage_history");var p="attachStore_"+e+"_"+d,C="emit_"+e+"_"+d;"function"==typeof this[p]&&this[p](h,c,A,o),a&&(h._instLabels[c]=g);var _,I="// ----- stage "+c+" : "+g+" -----";if("function"==typeof this[C])l.emitted.push(c+":"+g),_=this[C](c,A,h,o);else{if(l.fallback.push(c+":"+g),n)throw new Error("compile(): no JS emitter for stage '"+g+"' (index "+c+"). Add Transform.prototype.emit_"+e+"_"+d+" (and optionally attachStore_"+e+"_"+d+") or pass { strict: false } to use the runtime fallback (best-effort, may produce wrong output across encoding boundaries).");h["_fb_"+c+"_funct"]=A.funct,h["_fb_"+c+"_stageData"]=A.stageData,h["_fb_"+c+"_self"]=this,I="// ----- stage "+c+" : "+g+" (RUNTIME FALLBACK — best-effort) -----",_=this._compile_emit_runtime_fallback(c,A)}u.push({idx:c,sname:g,header:I,body:_})}var f,M,v=this.pipeline[this.pipeline.length-1],B=this._compile_emit_return(v),b="// jsColorEngine compiled transform — target="+e+(a?" [INSTRUMENTED — perf measurements only, do not ship]":"")+(i?" [PROFILABLE — named per-stage fns for CPU profiler attribution]":"")+(s?" [HOTLOOP — array-in / array-out tight loop wrapper]":"")+(r?" [GAMMA-LUT — 4096-entry LUT replacing Math.pow (lcms parity, ~32-bit precision)]":"")+"\n// chain: "+this.pipeline.map((function(t){return t.stageName})).join(" > ")+"\n// inputs assumed: device RGB floats in input[0..2], 0..1\n",S=i?"profilable":s?"hotLoop":a?"instrument":"plain";if(s){for(var E=this._compile_output_basis(),y=E.length,P=[],w=0;w<u.length;w++){var L=u[w];P.push(" "+L.header),P.push(L.body)}for(var D=[],G=0;G<E.length;G++)D.push(" output[_oi + "+G+"] = "+E[G]+";");f=b+'"use strict";\nreturn function compiledTransformLoop(input, output, n) {\n let r = 0, g = 0, b = 0;\n let X = 0, Y = 0, Z = 0;\n let pcsL = 0, pcsa = 0, pcsb = 0;\n let d0 = 0, d1 = 0, d2 = 0, d3 = 0, d4 = 0, d5 = 0, d6 = 0, d7 = 0;\n for (let _i = 0; _i < n; _i++) {\n const _ii = _i * 3;\n const _oi = _i * '+y+";\n r = input[_ii]; g = input[_ii + 1]; b = input[_ii + 2];\n"+P.join("\n")+"\n"+D.join("\n")+"\n }\n return output;\n};\n",M=new Function("store",f)(h)}else if(i){for(var Q=[],R=[],x=0;x<u.length;x++){var T=u[x],Y="_s"+T.idx+"_"+T.sname.replace(/[^A-Za-z0-9_]/g,"_");Q.push(" "+T.header),Q.push(" function "+Y+"() {"),Q.push(T.body),Q.push(" }"),Q.push(""),R.push(" "+Y+"();")}var k=b+'"use strict";\n// shared state at factory scope — closed over by both stage fns and the per-pixel entry\nvar r = 0, g = 0, b = 0;\nvar X = 0, Y = 0, Z = 0;\nvar pcsL = 0, pcsa = 0, pcsb = 0;\nvar d0 = 0, d1 = 0, d2 = 0, d3 = 0, d4 = 0, d5 = 0, d6 = 0, d7 = 0;\n\n'+Q.join("\n")+"\nreturn function compiledTransform(input) {\n r = input[0]; g = input[1]; b = input[2];\n"+R.join("\n")+"\n "+B+"\n};\n";f=k,M=new Function("store",k)(h)}else{for(var X=a?"// instrumentation aliases (per-stage hrtime taps)\nconst _hr = store._instHr;\nconst _instTime = store._instTime;\nconst _instCalls = store._instCalls;\nstore._instCount++;\n":"",U=[],Z=0;Z<u.length;Z++){var F=u[Z];U.push(F.header),a?(U.push("{ const _tB = _hr();"),U.push(F.body),U.push(" const _tA = _hr(); _instTime["+F.idx+"] += Number(_tA - _tB); _instCalls["+F.idx+"]++; }")):U.push(F.body)}f=b+'"use strict";\nvar r = input[0], g = input[1], b = input[2];\nvar X = 0, Y = 0, Z = 0;\nvar pcsL = 0, pcsa = 0, pcsb = 0;\nvar d0 = 0, d1 = 0, d2 = 0, d3 = 0, d4 = 0, d5 = 0, d6 = 0, d7 = 0;\n\n'+X+U.join("\n")+"\n"+B+"\n",M=new Function("store","input",f).bind(null,h)}return{source:f,store:h,fn:M,mode:S,options:o,coverage:l}}static instrumentReport(t){var e=t&&t.store;if(!e||!e._instTime)return"instrumentReport: this compiled fn was not built with { instrument: true }";for(var a=0|e._instCount,i=e._instLabels||[],r=e._instTime,n=e._instCalls,s=0,o=0;o<r.length;o++)s+=r[o];var h=[],u=[];for(h.push("===== per-stage instrumentation report ====="),h.push("runs: "+a+" calls of compiled fn"),h.push("total time: "+(s/1e6).toFixed(2)+" ms across all stages"),h.push("per-call: "+(a>0?(s/a).toFixed(1):"?")+" ns/pixel (sum of stages, includes timer overhead)"),h.push(""),h.push(" idx stage calls % ns/call"),h.push(" --- ------------------------------------------ ---------- ------- --------"),o=0;o<r.length;o++){var l=s>0?100*r[o]/s:0,m=n[o]>0?r[o]/n[o]:0,c=i[o]||"?";c.length>42&&(c=c.slice(0,39)+"..."),c=c.padEnd(42," ");var A=String(o).padStart(3," "),g=String(n[o]).padStart(10," "),d=l.toFixed(2).padStart(6," ")+"%",p=m.toFixed(1).padStart(8," ");h.push(" "+A+" "+c+" "+g+" "+d+" "+p),u.push({stageName:i[o],calls:n[o],totalNs:r[o],perCallNs:m,percent:l})}return{text:h.join("\n"),rows:u,totalNs:s,runs:a}}static instrumentReset(t){var e=t&&t.store;e&&e._instTime&&(e._instCount=0,e._instTime.fill(0),e._instCalls.fill(0))}_compile_emit_runtime_fallback(t,e){var a=e.inputEncoding,i=e.outputEncoding,r=this._compile_basis_for(a),n=this._compile_basis_for(i),s=[];s.push("{"),s.push(" var _in = ["+r.join(", ")+"];"),s.push(" var _out = store._fb_"+t+"_funct.call(store._fb_"+t+"_self, _in, store._fb_"+t+"_stageData, null);");for(var o=0;o<n.length;o++)s.push(" "+n[o]+" = _out["+o+"];");return s.push("}"),s.join("\n")}_compile_basis_for(t){return 3===t?["X","Y","Z"]:1===t||2===t?["pcsL","pcsa","pcsb"]:["d0","d1","d2","d3"]}_compile_output_basis(){var t=this.pipeline[this.pipeline.length-1],e=t&&t.outputEncoding,a=this._compile_basis_for(e);if(!1===e||null==e)for(var i=this.pipeline.length-1;i>=0;i--)if(!1!==this.pipeline[i].outputEncoding&&null!=this.pipeline[i].outputEncoding){a=this._compile_basis_for(this.pipeline[i].outputEncoding);break}return a}_compile_emit_return(t){return"return ["+this._compile_output_basis().join(", ")+"];"}}function d(t,e){var a=Math.pow(10,e);return Math.round(t*a)/a}function p(t){var e="";for(var a of t)e+=String.fromCharCode(a);return btoa(e)}function C(t){var e=new Uint8Array(t.buffer),a="";for(var i of e)a+=String.fromCharCode(i);return btoa(a)}function _(t){"base64"===t.encoding&&(16===t.precision||"u16"===t.dataType?t.CLUT=function(t){let e=atob(t),a=e.length,i=new Uint8Array(a);for(let t=0;t<a;t++)i[t]=e.charCodeAt(t);return new Uint16Array(i.buffer)}(t.CLUT):t.CLUT=function(t){let e=atob(t),a=e.length,i=new Uint8ClampedArray(a);for(let t=0;t<a;t++)i[t]=e.charCodeAt(t);return i}(t.CLUT),t.encoding="number");var e=t.CLUT;if(e instanceof Uint16Array){for(var a=new Float64Array(e.length),i=0;i<e.length;i++)a[i]=e[i]/65535;t.CLUT=a}else if(e instanceof Uint8Array||e instanceof Uint8ClampedArray){for(a=new Float64Array(e.length),i=0;i<e.length;i++)a[i]=e[i]/255;t.CLUT=a}if(t.dataType="f64",t.gridPoints&&void 0!==t.outputChannels){var r=t.gridPoints,n=t.outputChannels,s=r[0],o=r.length>=2?s*r[1]:0,h=r.length>=3?o*r[2]:0;t.g1=s,t.g2=o,t.g3=h,t.go0=n,t.go1=s*n,t.go2=o*n,t.go3=h*n}return t}function I(t,e){if(!t||!t.CLUT)throw"lutToJSON: input has no CLUT";var a=(e=e||{}).dataType||"u16";if("u16"!==a&&"u8"!==a)throw'lutToJSON: dataType must be "u16" or "u8", got "'+a+'"';var i,r,n=t.CLUT,s=n.length;if("u16"===a){var o=new Uint16Array(s);if(n instanceof Uint16Array)o.set(n);else if(n instanceof Uint8Array||n instanceof Uint8ClampedArray)for(var h=0;h<s;h++)o[h]=257*n[h];else for(h=0;h<s;h++)o[h]=Math.round(65535*Math.min(1,Math.max(0,n[h])));i=C(o),r=16}else{var u=new Uint8Array(s);if(n instanceof Uint8Array||n instanceof Uint8ClampedArray)u.set(n);else if(n instanceof Uint16Array)for(h=0;h<s;h++)u[h]=Math.round(n[h]/65535*255);else for(h=0;h<s;h++)u[h]=Math.round(255*Math.min(1,Math.max(0,n[h])));i=p(u),r=8}var l={g1:1,g2:1,g3:1,go0:1,go1:1,go2:1,go3:1,inputScale:1,outputScale:1},m={created:(new Date).toISOString(),generator:e.generator||"jsColorEngine"};for(var c in t)"CLUT"===c||"intLut"===c||l[c]||(m[c]=t[c]);return m.dataType=a,m.precision=r,m.encoding="base64",m.inputScale=1,m.outputScale=1,m.CLUT=i,m.originalSignature=t.originalSignature||f(t),m}function f(t){return"FNV1A:"+function(t){for(var e=2166136261,a=0;a<t.length;a++)e=Math.imul(e^t[a],16777619);return(e>>>0).toString(16).padStart(8,"0")}(function(t){var e="";if(Array.isArray(t.chain)){for(var a=[],i=0;i<t.chain.length;i++){var r=t.chain[i];"number"==typeof r?a.push("I"+r):r&&(r.header||r.name)&&a.push((r.name||"")+"|"+(0|r.type)+"|"+(0|r.version))}e=a.join("::")}var n,s=function(t){for(var e=new Uint8Array(t.length),a=0;a<t.length;a++)e[a]=255&t.charCodeAt(a);return e}("IO:"+(0|t.inputChannels)+":"+(0|t.outputChannels)+";GP:"+(t.gridPoints?t.gridPoints.join(","):"")+";CH:"+e+";CLUT:"),o=t.CLUT;if(o instanceof Uint16Array)n=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);else if(o instanceof Uint8Array||o instanceof Uint8ClampedArray){var h=new Uint16Array(o.length);for(i=0;i<o.length;i++)h[i]=257*o[i];n=new Uint8Array(h.buffer)}else{var u=new Uint16Array(o.length);for(i=0;i<o.length;i++)u[i]=Math.round(65535*Math.min(1,Math.max(0,o[i])));n=new Uint8Array(u.buffer)}var l=new Uint8Array(s.length+n.length);return l.set(s,0),l.set(n,s.length),l}(t))}function M(t,e,a){if(void 0===a&&(a=6),null===t)return"<NULL>";if(t.type)return r.cmsColor2String(t);if(t.hasOwnProperty("L"))return"LabD50: "+s(t.L)+", "+s(t.a)+", "+s(t.b);for(var i="",n=0;n<t.length;n++){switch(e){case"r":case"round":i+=Math.round(t[n]);break;case"f>16":case"float>16":i+=Math.round(65535*t[n]);break;default:i+=s(t[n])}n<t.length-1&&(i+=", ")}return i;function s(t){return isNaN(t)?t:t.toFixed(a)}}g.WASM_DISPATCH_MIN_PIXELS=256,g.lutToJSON=function(t,e){return I(t,e)},g.jsonToLut=function(t){if(null==t)throw"Transform.jsonToLut: input is required";var e="string"==typeof t?JSON.parse(t):t;if(!e.CLUT)throw"Transform.jsonToLut: input has no CLUT";var a=Object.assign({},e);return _(a),a},g.fromJSON=function(t,e){if(null==t)throw"Transform.fromJSON: input is required";var a="string"==typeof t?JSON.parse(t):t,i=Object.assign({},a),r=new g(e||{});return r.setLut(i,e),r},g.signLut=function(t){return f(t)},g.verifyLut=function(t){if(null==t)return null;var e="string"==typeof t?JSON.parse(t):t;return e.originalSignature?f("base64"===e.encoding?g.jsonToLut(Object.assign({},e)):e)===e.originalSignature:null},t.exports=g},618:(t,e,a)=>{"use strict";var i=a(362),r=i.eIntent,n=i.eColourType;function s(t,e){var a=Math.pow(10,e);return Math.round(t*a)/a}var o={intent2String:function(t){switch(t){case r.perceptual:return"Perceptual";case r.relative:return"Relative";case r.saturation:return"Saturation";case r.absolute:return"Absolute"}return"Unknown"}};o.BradfordMtxAdapt=Object.freeze({m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296}),o.BradfordMtxAdaptInv=Object.freeze({m00:.9869929,m01:.4323053,m02:-.0085287,m10:-.1470543,m11:.5183603,m12:.0400428,m20:.1599627,m21:.0492912,m22:.9684867}),o.getBradfordMtxAdapt=function(){return o.BradfordMtxAdapt},o.getBradfordMtxAdaptInv=function(){return o.BradfordMtxAdaptInv},o.cmsColor2String=function(t,e){switch(void 0===e&&(e=4),t.type){case n.CMYK:return a("CMYK",t,["C","M","Y","K"]);case n.CMYKf:return a("CMYKf",t,["Cf","Mf","Yf","Kf"]);case n.RGB:return a("RGB",t,["R","G","B"]);case n.RGBf:return a("RGBf",t,["Rf","Gf","Bf"]);case n.Gray:return a("Gray",t,["G"]);case n.Lab:return a("Lab",t,["L","a","b"])+(t.whitePoint?" ("+t.whitePoint.desc+")":"");case n.LCH:return a("LCH",t,["L","C","H"])+(t.whitePoint?" ("+t.whitePoint.desc+")":"");case n.XYZ:return a("XYZ",t,["X","Y","Z"]);default:return t.toString()}function a(t,a,i,r){for(var n=[],o=0;o<i.length;o++)r?n.push(i[o]+": "+s(a[i[o]],e)):n.push(s(a[i[o]],e));return t+": "+n.join(", ")}},o.whitepoint2String=function(t){return"(White "+t.desc+" X"+t.X.toFixed(4)+" Y"+t.Y.toFixed(4)+" Z"+t.Z.toFixed(4)+")"},o.XYZ=function(t,e,a,i){return{type:n.XYZ,X:t,Y:e,Z:a,whitePoint:i||this.d50}},o.Lab=function(t,e,a,i,r){return!1===r?{type:n.Lab,L:t,a:e,b:a,whitePoint:i||this.d50}:{type:n.Lab,L:t>100?100:t<0?0:t,a:e>127?127:e<-128?-128:e,b:a>127?127:a<-128?-128:a,whitePoint:i||this.d50}},o.Lch=function(t,e,a,i){return{type:n.LCH,L:t>100?100:t<0?0:t,C:e<0?0:e,H:a>360?a%360:a<0?(a+3600)%360:a,whitePoint:i||this.d50}},o.LCH=o.Lch,o.Gray=function(t,e){return!1===e?{type:n.Gray,G:t}:{type:n.Gray,G:t>255?255:t<0?0:Math.round(t)}},o.Duo=function(t,e,a){return!1===a?{type:n.Duo,a:t,b:e}:{type:n.Duo,a:t>100?100:t<0?0:Math.round(t),b:e>100?100:e<0?0:Math.round(e)}},o.RGB2Hex=function(t){return"#"+((1<<24)+(t.R<<16)+(t.G<<8)+t.B|0).toString(16).slice(1)},o.RGB=function(t,e,a,i){return!1===i?{type:n.RGB,R:t,G:e,B:a}:{type:n.RGB,R:t>255?255:t<0?0:Math.round(t),G:e>255?255:e<0?0:Math.round(e),B:a>255?255:a<0?0:Math.round(a)}},o.RGBf=function(t,e,a){return{type:n.RGBf,Rf:t,Gf:e,Bf:a}},o.RGBFloat=function(t,e,a){return{type:n.RGBf,Rf:t,Gf:e,Bf:a}},o.RGBbyte2Float=function(t,e,a){return{type:n.RGBf,Rf:t/255,Gf:e/255,Bf:a/255}},o.CMYK=function(t,e,a,i,r){return!1===r?{type:n.CMYK,C:t,M:e,Y:a,K:i}:{type:n.CMYK,C:t>100?100:t<0?0:Math.round(t),M:e>100?100:e<0?0:Math.round(e),Y:a>100?100:a<0?0:Math.round(a),K:i>100?100:i<0?0:Math.round(i)}},o.CMYKf=function(t,e,a,i){return{type:n.CMYKf,Cf:t,Mf:e,Yf:a,Kf:i}},o.xyY=function(t,e,a){return{type:n.xyY,x:t,y:e,Y:a}},o.getWhitePoint=function(t){switch(t.toLowerCase()){case"a":return this.a;case"b":return this.b;case"c":return this.c;case"d50":return this.d50;case"d55":return this.d55;case"d75":return this.d75;case"e":return this.e;case"f2":return this.f2;case"f7":return this.f7;case"f11":return this.f11;default:return this.d65}},o.a={desc:"a",Y:1,X:1.0985,Z:.35585},o.b={desc:"b",Y:1,X:.99072,Z:.85223},o.c={desc:"c",Y:1,X:.98074,Z:1.18232},o.d50={desc:"d50",Y:1,X:.96422,Z:.82521},o.d55={desc:"d55",Y:1,X:.95682,Z:.92149},o.d65={desc:"d65",Y:1,X:.95047,Z:1.08883},o.d75={desc:"d75",Y:1,X:.94972,Z:1.22638},o.e={desc:"e",Y:1,X:1,Z:1},o.f2={desc:"f2",Y:1,X:.99186,Z:.67393},o.f7={desc:"f7",Y:1,X:.95041,Z:1.08747},o.f11={desc:"f11",Y:1,X:1.00962,Z:.6435},o.getWhitePointFromIlluminant=function(t){return e(t.X,1.0985)?this.a:e(t.X,.9907)?this.b:e(t.X,.98074)?this.c:e(t.X,.96422)?this.d50:e(t.X,.95682)?this.d55:e(t.X,.94972)?this.d75:e(t.X,1)?this.e:e(t.X,.99186)?this.f2:e(t.X,.95041)?this.f7:e(t.X,1.00962)?this.f11:{desc:"",Y:t.Y,X:t.X,Z:t.Z};function e(t,e){return t>e-.001&&t<e+.001}},o.XYZ2xyY=function(t,e){var a=t.X+t.Y+t.Z,i={x:0,y:0,Y:0};return a>0?(i.x=t.X/a,i.y=t.Y/a):(i.x=e.X/(e.X+1+e.Z),i.y=1/(e.X+1+e.Z)),i.Y=t.Y,this.xyY(i.x,i.y,i.Y)},o.xyY2XYZ=function(t){var e,a,i;return t.y<1e-6?e=a=i=0:(e=t.x*t.Y/t.y,a=t.Y,i=(1-t.x-t.y)*t.Y/t.y),this.XYZ(e,a,i)},o.XYZ2Lab=function(t,e){var a=216/24389,i=24389/27,r=t.X/e.X,s=t.Y,o=t.Z/e.Z,h=r>a?Math.pow(r,1/3):(i*r+16)/116,u=s>a?Math.pow(s,1/3):(i*s+16)/116;return{L:116*u-16,a:500*(h-u),b:200*(u-(o>a?Math.pow(o,1/3):(i*o+16)/116)),whitePoint:e,type:n.Lab}},o.Lab2XYZ=function(t){var e=216/24389,a=24389/27,i=(t.L+16)/116,r=.002*t.a+i,s=i-.005*t.b,o=r*r*r,h=s*s*s,u=o>e?o:(116*r-16)/a,l=t.L>8?Math.pow((t.L+16)/116,3):t.L/a,m=h>e?h:(116*s-16)/a,c=t.whitePoint||this.d50;return{X:u*c.X,Y:l,Z:m*c.Z,type:n.XYZ}},o.Lab2LabD50=function(t){var e=this.d50;if(!this.compareWhitePoints(e,t.whitePoint)){var a=o.Lab2XYZ(t);a=o.adaptation(a,t.whitePoint,e),t=o.XYZ2Lab(a,e)}return{L:t.L,a:t.a,b:t.b}},o.Lab2Lab=function(t,e){if(t.whitePoint.X!==e.X||t.whitePoint.Z!==e.Z){var a=o.Lab2XYZ(t);return a=o.adaptation(a,t.whitePoint,e),o.XYZ2Lab(a,e)}return t},o.Lab2LCH=function(t){var e=Math.sqrt(t.a*t.a+t.b*t.b),a=180*Math.atan2(t.b,t.a)/Math.PI;return a<0&&(a+=360),this.Lch(t.L,e,a)},o.LCH2Lab=function(t){var e=t.C*Math.cos(t.H*Math.PI/180),a=t.C*Math.sin(t.H*Math.PI/180);return this.Lab(t.L,e,a)},o.RGB2Lab=function(t,e,a){a||(a=e.mediaWhitePoint);var i=this.RGBf2XYZ({Rf:t.R/255,Gf:t.G/255,Bf:t.B/255},e,a);return this.XYZ2Lab(i,a)},o.RGB2XYZ_bytes=function(t,e,a){return this.RGBf2XYZ({Rf:t.R/255,Gf:t.G/255,Bf:t.B/255,type:n.RGBf},e,a)},o.XYZ2RGB_bytes=function(t,e,a){return o.RGB2byte(o.XYZ2RGBf(t,e,a,!0))},o.Lab2RGBf=function(t,e,a){var i=this.Lab2XYZ(t);return this.XYZ2RGBf(i,t.whitePoint,e,a)},o.RGB2byte=function(t){return this.RGB(255*t.Rf,255*t.Gf,255*t.Bf)},o.cmsRGB2Hex=function(t){return"#"+(t.R<=15?"0"+t.R.toString(16):t.R.toString(16))+(t.G<=15?"0"+t.G.toString(16):t.G.toString(16))+(t.B<=15?"0"+t.B.toString(16):t.B.toString(16))},o.adaptation=function(t,e,a){var i=this.BradfordMtxAdapt,r=this.BradfordMtxAdaptInv,s=e.X*i.m00+i.m10+e.Z*i.m20,o=e.X*i.m01+i.m11+e.Z*i.m21,h=e.X*i.m02+i.m12+e.Z*i.m22,u=a.X*i.m00+i.m10+a.Z*i.m20,l=a.X*i.m01+i.m11+a.Z*i.m21,m=a.X*i.m02+i.m12+a.Z*i.m22,c=t.X*i.m00+t.Y*i.m10+t.Z*i.m20,A=t.X*i.m01+t.Y*i.m11+t.Z*i.m21,g=t.X*i.m02+t.Y*i.m12+t.Z*i.m22;return A*=l/o,g*=m/h,{X:(c*=u/s)*r.m00+A*r.m10+g*r.m20,Y:c*r.m01+A*r.m11+g*r.m21,Z:c*r.m02+A*r.m12+g*r.m22,type:n.XYZ}},o.XYZ2RGBDevice=function(t,e,a,i){this.compareWhitePoints(e,a.mediaWhitePoint)||(t=this.adaptation(t,e,a.mediaWhitePoint));var r=a.RGBMatrix.matrixInv,n=t.X*r.m00+t.Y*r.m01+t.Z*r.m02,s=t.X*r.m10+t.Y*r.m11+t.Z*r.m12,o=t.X*r.m20+t.Y*r.m21+t.Z*r.m22;return!1!==i&&(n=(n=n>1?1:n)<0?0:n,s=(s=s>1?1:s)<0?0:s,o=(o=o>1?1:o)<0?0:o),a.RGBMatrix.issRGB?(n=this.sRGBGamma(n),s=this.sRGBGamma(s),o=this.sRGBGamma(o)):(n=this.gamma(n,a.RGBMatrix.gamma),s=this.gamma(s,a.RGBMatrix.gamma),o=this.gamma(o,a.RGBMatrix.gamma)),[n,s,o]},o.XYZ2RGBf=function(t,e,a,i){e=e||this.D50,this.compareWhitePoints(e,a.mediaWhitePoint)||(t=this.adaptation(t,e,a.mediaWhitePoint));var r=a.RGBMatrix.matrixInv,n=t.X*r.m00+t.Y*r.m01+t.Z*r.m02,s=t.X*r.m10+t.Y*r.m11+t.Z*r.m12,o=t.X*r.m20+t.Y*r.m21+t.Z*r.m22;return!1!==i&&(n=(n=n>1?1:n)<0?0:n,s=(s=s>1?1:s)<0?0:s,o=(o=o>1?1:o)<0?0:o),a.RGBMatrix.issRGB?(n=this.sRGBGamma(n),s=this.sRGBGamma(s),o=this.sRGBGamma(o)):(n=this.gamma(n,a.RGBMatrix.gamma),s=this.gamma(s,a.RGBMatrix.gamma),o=this.gamma(o,a.RGBMatrix.gamma)),this.RGBFloat(n,s,o)},o.RGBDevice2XYZ=function(t,e,a){var i,r,s;e.RGBMatrix.issRGB?(i=this.sRGBGammaInv(t[0]),r=this.sRGBGammaInv(t[1]),s=this.sRGBGammaInv(t[2])):(i=this.gammaInv(t[0],e.RGBMatrix.gamma),r=this.gammaInv(t[1],e.RGBMatrix.gamma),s=this.gammaInv(t[2],e.RGBMatrix.gamma));var o=e.RGBMatrix.matrixV4,h={X:i*o.m00+r*o.m01+s*o.m02,Y:i*o.m10+r*o.m11+s*o.m12,Z:i*o.m20+r*o.m21+s*o.m22,type:n.XYZ};return this.compareWhitePoints(a,e.mediaWhitePoint)||(h=this.adaptation(h,e.mediaWhitePoint,a)),h},o.RGBf2XYZ=function(t,e,a){var i=t.Rf,r=t.Gf,s=t.Bf;e.RGBMatrix.issRGB?(i=this.sRGBGammaInv(i),r=this.sRGBGammaInv(r),s=this.sRGBGammaInv(s)):(i=this.gammaInv(i,e.RGBMatrix.gamma),r=this.gammaInv(r,e.RGBMatrix.gamma),s=this.gammaInv(s,e.RGBMatrix.gamma));var o=e.RGBMatrix.matrixV4,h={X:i*o.m00+r*o.m01+s*o.m02,Y:i*o.m10+r*o.m11+s*o.m12,Z:i*o.m20+r*o.m21+s*o.m22,type:n.XYZ};return this.compareWhitePoints(a,e.mediaWhitePoint)||(h=this.adaptation(h,e.mediaWhitePoint,a)),h},o.Lab2RGB=function(t,e,a){a=a||0;var i=this.Lab2RGBDevice(t,e);return{R:s(255*i[0],a),G:s(255*i[1],a),B:s(255*i[2],a),type:n.RGB}},o.Lab2sRGB=function(t){var e=(t.L+16)/116,a=t.a/500+e,i=e-t.b/200;e=Math.pow(e,3)>.008856?Math.pow(e,3):(e-16/116)/7.787,a=Math.pow(a,3)>.008856?Math.pow(a,3):(a-16/116)/7.787,i=Math.pow(i,3)>.008856?Math.pow(i,3):(i-16/116)/7.787;var r=3.2406*(a*=.95047)+-1.5372*e+-.4986*(i*=1.08883),n=-.9689*a+1.8758*e+.0415*i,s=.0557*a+-.204*e+1.057*i;return r>.0031308?r=1.055*Math.pow(r,1/2.4)-.055:r*=12.92,n>.0031308?n=1.055*Math.pow(n,1/2.4)-.055:n*=12.92,s>.0031308?s=1.055*Math.pow(s,1/2.4)-.055:s*=12.92,{R:r=Math.min(255,Math.max(0,Math.round(255*r))),G:n=Math.min(255,Math.max(0,Math.round(255*n))),B:s=Math.min(255,Math.max(0,Math.round(255*s)))}},o.Lab2RGBDevice=function(t,e){var a=216/24389,i=24389/27,r=(t.L+16)/116,s=.002*t.a+r,h=r-.005*t.b,u=s*s*s,l=h*h*h,m=u>a?u:(116*s-16)/i,c=t.L>8?Math.pow((t.L+16)/116,3):t.L/i,A=l>a?l:(116*h-16)/i,g=t.whitePoint||o.d50,d={X:m*g.X,Y:c,Z:A*g.Z,type:n.XYZ};this.compareWhitePoints(g,e.mediaWhitePoint)||(d=this.adaptation(d,g,e.mediaWhitePoint));var p=e.RGBMatrix.matrixInv,C=d.X*p.m00+d.Y*p.m01+d.Z*p.m02,_=d.X*p.m10+d.Y*p.m11+d.Z*p.m12,I=d.X*p.m20+d.Y*p.m21+d.Z*p.m22;return C=(C=C>1?1:C)<0?0:C,_=(_=_>1?1:_)<0?0:_,I=(I=I>1?1:I)<0?0:I,e.RGBMatrix.issRGB?(C=this.sRGBGamma(C),_=this.sRGBGamma(_),I=this.sRGBGamma(I)):(C=this.gamma(C,e.RGBMatrix.gamma),_=this.gamma(_,e.RGBMatrix.gamma),I=this.gamma(I,e.RGBMatrix.gamma)),[C,_,I]},o.compareWhitePoints=function(t,e,a){return a=a||.001,!(Math.abs(t.X-e.X)>a)&&!(Math.abs(t.Y-e.Y)>a)&&Math.abs(t.Z-e.Z)<=a},o.RGBDevice2LabD50=function(t,e){var a,i,r;e.RGBMatrix.issRGB?(a=this.sRGBGammaInv(t[0]),i=this.sRGBGammaInv(t[1]),r=this.sRGBGammaInv(t[2])):(a=this.gammaInv(t[0],e.RGBMatrix.gamma),i=this.gammaInv(t[1],e.RGBMatrix.gamma),r=this.gammaInv(t[2],e.RGBMatrix.gamma));var s=e.RGBMatrix.matrixV4,o={X:a*s.m00+i*s.m01+r*s.m02,Y:a*s.m10+i*s.m11+r*s.m12,Z:a*s.m20+i*s.m21+r*s.m22},h=this.d50;this.compareWhitePoints(h,e.mediaWhitePoint)||(o=this.adaptation(o,e.mediaWhitePoint,h));var u=216/24389,l=24389/27,m=o.X/h.X,c=o.Y,A=o.Z/h.Z,g=m>u?Math.pow(m,1/3):(l*m+16)/116,d=c>u?Math.pow(c,1/3):(l*c+16)/116;return{L:116*d-16,a:500*(g-d),b:200*(d-(A>u?Math.pow(A,1/3):(l*A+16)/116)),type:n.Lab,whitePoint:h}},o.RGBf2Lab=function(t,e,a){var i,r,s;e.RGBMatrix.issRGB?(i=this.sRGBGammaInv(t.Rf),r=this.sRGBGammaInv(t.Gf),s=this.sRGBGammaInv(t.Bf)):(i=this.gammaInv(t.Rf,e.RGBMatrix.gamma),r=this.gammaInv(t.Gf,e.RGBMatrix.gamma),s=this.gammaInv(t.Bf,e.RGBMatrix.gamma));var o=e.RGBMatrix.matrixV4,h={X:i*o.m00+r*o.m01+s*o.m02,Y:i*o.m10+r*o.m11+s*o.m12,Z:i*o.m20+r*o.m21+s*o.m22};a?this.compareWhitePoints(a,e.mediaWhitePoint)||(h=this.adaptation(h,e.mediaWhitePoint,a)):a=e.mediaWhitePoint;var u=216/24389,l=24389/27,m=h.X/a.X,c=h.Y,A=h.Z/a.Z,g=m>u?Math.pow(m,1/3):(l*m+16)/116,d=c>u?Math.pow(c,1/3):(l*c+16)/116;return{L:116*d-16,a:500*(g-d),b:200*(d-(A>u?Math.pow(A,1/3):(l*A+16)/116)),type:n.Lab,whitePoint:a}},o.gamma=function(t,e){return Math.pow(t,1/e)},o.gammaInv=function(t,e){return Math.pow(t,e)},o.sRGBGamma=function(t){return t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055},o.sRGBGammaInv=function(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},o.computeMatrix=function(t){var e={m00:t.RGBMatrix.cRx/t.RGBMatrix.cRy,m01:t.RGBMatrix.cGx/t.RGBMatrix.cGy,m02:t.RGBMatrix.cBx/t.RGBMatrix.cBy,m10:1,m11:1,m12:1,m20:(1-t.RGBMatrix.cRx-t.RGBMatrix.cRy)/t.RGBMatrix.cRy,m21:(1-t.RGBMatrix.cGx-t.RGBMatrix.cGy)/t.RGBMatrix.cGy,m22:(1-t.RGBMatrix.cBx-t.RGBMatrix.cBy)/t.RGBMatrix.cBy},a=this.invertMatrix(e),i=t.mediaWhitePoint.X*a.m00+t.mediaWhitePoint.Y*a.m01+t.mediaWhitePoint.Z*a.m02,r=t.mediaWhitePoint.X*a.m10+t.mediaWhitePoint.Y*a.m11+t.mediaWhitePoint.Z*a.m12,n=t.mediaWhitePoint.X*a.m20+t.mediaWhitePoint.Y*a.m21+t.mediaWhitePoint.Z*a.m22;t.RGBMatrix.matrixV4={m00:i*e.m00,m01:r*e.m01,m02:n*e.m02,m10:i*e.m10,m11:r*e.m11,m12:n*e.m12,m20:i*e.m20,m21:r*e.m21,m22:n*e.m22},t.RGBMatrix.matrixInv=this.invertMatrix(t.RGBMatrix.matrixV4),t.RGBMatrix.XYZMatrix={m00:t.rgb.rXYZ.X,m01:t.rgb.gXYZ.X,m02:t.rgb.bXYZ.X,m10:t.rgb.rXYZ.Y,m11:t.rgb.gXYZ.Y,m12:t.rgb.bXYZ.Y,m20:t.rgb.rXYZ.Z,m21:t.rgb.gXYZ.Z,m22:t.rgb.bXYZ.Z},t.RGBMatrix.XYZMatrixInv=this.invertMatrix(t.RGBMatrix.XYZMatrix)},o.invertMatrix=function(t){var e=1/(t.m00*(t.m22*t.m11-t.m21*t.m12)-t.m10*(t.m22*t.m01-t.m21*t.m02)+t.m20*(t.m12*t.m01-t.m11*t.m02));return{m00:e*(t.m22*t.m11-t.m21*t.m12),m01:-e*(t.m22*t.m01-t.m21*t.m02),m02:e*(t.m12*t.m01-t.m11*t.m02),m10:-e*(t.m22*t.m10-t.m20*t.m12),m11:e*(t.m22*t.m00-t.m20*t.m02),m12:-e*(t.m12*t.m00-t.m10*t.m02),m20:e*(t.m21*t.m10-t.m20*t.m11),m21:-e*(t.m21*t.m00-t.m20*t.m01),m22:e*(t.m11*t.m00-t.m10*t.m01)}},o.matrixScaleValues=function(t,e){return{m00:t.m00*e,m01:t.m01*e,m02:t.m02*e,m10:t.m10*e,m11:t.m11*e,m12:t.m12*e,m20:t.m20*e,m21:t.m21*e,m22:t.m22*e}},o.matrix2Object=function(t){return{m00:t[0][0],m01:t[0][1],m02:t[0][2],m10:t[1][0],m11:t[1][1],m12:t[1][2],m20:t[2][0],m21:t[2][1],m22:t[2][2]}},o.objectToMatrix=function(t){return[[t.m00,t.m01,t.m02],[t.m10,t.m11,t.m12],[t.m20,t.m21,t.m22]]},o.multiplyMatrices=function(t,e){return this.matrix2Object(this.multiplyMatricesArray(this.objectToMatrix(t),this.objectToMatrix(e)))},o.multiplyMatricesArray=function(t,e){let a=[];for(let i=0;i<t.length;i++){a[i]=[];for(let r=0;r<e[0].length;r++){let n=0;for(let a=0;a<t[0].length;a++)n+=t[i][a]*e[a][r];a[i][r]=n}}return a},o.transpose=function(t){var e=t.m01;t.m01=t.m10,t.m10=e,e=t.m02,t.m02=t.m20,t.m20=e,e=t.m12,t.m12=t.m21,t.m21=e},o.deltaE1976=function(t,e){var a=t.L-e.L,i=t.a-e.a,r=t.b-e.b;return Math.sqrt(a*a+i*i+r*r)},o.deltaE1994=function(t,e,a){var i=!0===a?.048:.045,r=!0===a?.014:.015,n=!0===a?2:1,s=Math.sqrt(t.a*t.a+t.b*t.b),o=Math.sqrt(e.a*e.a+e.b*e.b),h=t.a-e.a,u=t.b-e.b,l=s-o,m=h*h+u*u-l*l,c=m>0?Math.sqrt(m):0,A=(t.L-e.L)/(1*n),g=l/(1*(1+i*s)),d=c/(1*(1+r*s));return Math.sqrt(A*A+g*g+d*d)},o.deltaE2000=function(t,e){var a=.5*(t.L+e.L),i=.5*(Math.sqrt(t.a*t.a+t.b*t.b)+Math.sqrt(e.a*e.a+e.b*e.b)),r=i*i*i*i*i*i*i,n=.5*(1-Math.sqrt(r/(r+6103515625))),s=t.a*(1+n),o=e.a*(1+n),h=Math.sqrt(s*s+t.b*t.b),u=Math.sqrt(o*o+e.b*e.b),l=.5*(h+u),m=180*Math.atan2(t.b,s)/Math.PI;m<0&&(m+=360);var c=180*Math.atan2(e.b,o)/Math.PI;c<0&&(c+=360);var A,g=Math.abs(m-c)>180?.5*(m+c+360):.5*(m+c),d=1-.17*Math.cos(Math.PI*(g-30)/180)+.24*Math.cos(Math.PI*(2*g)/180)+.32*Math.cos(Math.PI*(3*g+6)/180)-.2*Math.cos(Math.PI*(4*g-63)/180);A=Math.abs(c-m)<=180?c-m:c<=m?c-m+360:c-m-360;var p=e.L-t.L,C=u-h,_=2*Math.sqrt(h*u)*Math.sin(Math.PI*(.5*A)/180),I=1+.015*(a-50)*(a-50)/Math.sqrt(20+(a-50)*(a-50)),f=1+.045*l,M=1+.015*l*d,v=30*Math.exp(-(g-275)/25*((g-275)/25)),B=l*l*l*l*l*l*l,b=-2*Math.sqrt(B/(B+6103515625))*Math.sin(Math.PI*(2*v)/180);return Math.sqrt(p/(1*I)*(p/(1*I))+C/(1*f)*(C/(1*f))+_/(1*M)*(_/(1*M))+C/(1*f)*(_/(1*M))*b)},o.deltaECMC=function(t,e,a,i){void 0===a&&(a=2),void 0===i&&(i=1);for(var r=Math.sqrt(t.a*t.a+t.b*t.b),n=Math.sqrt(e.a*e.a+e.b*e.b),s=t.L<16?.511:.040975*t.L/(1+.01765*t.L),o=.0638*r/(1+.0131*r)+.638,h=r<1e-6?0:180*Math.atan2(t.b,t.a)/Math.PI;h<0;)h+=360;for(;h>=360;)h-=360;var u=h>=164&&h<=345?.56+Math.abs(.2*Math.cos(Math.PI*(h+168)/180)):.36+Math.abs(.4*Math.cos(Math.PI*(h+35)/180)),l=r*r*r*r,m=Math.sqrt(l/(l+1900)),c=o*(m*u+1-m),A=t.L-e.L,g=r-n,d=t.a-e.a,p=t.b-e.b,C=d*d+p*p-g*g,_=A/(a*s),I=g/(i*o),f=c;return Math.sqrt(_*_+I*I+C/(f*f))},o.wavelength2RGB=function(t){var e,a,i,r;return t>=380&&t<440?(e=-(t-440)/60,a=0,i=1):t>=440&&t<490?(e=0,a=(t-440)/50,i=1):t>=490&&t<510?(e=0,a=1,i=-(t-510)/20):t>=510&&t<580?(e=(t-510)/70,a=1,i=0):t>=580&&t<645?(e=1,a=-(t-645)/65,i=0):t>=645&&t<781?(e=1,a=0,i=0):(e=0,a=0,i=0),r=t>=380&&t<420?.3+.7*(t-380)/40:t>=420&&t<701?1:t>=701&&t<781?.3+.7*(780-t)/80:0,{type:n.RGB,R:0===e?0:Math.round(255*Math.pow(e*r,.8)),G:0===a?0:Math.round(255*Math.pow(a*r,.8)),B:0===i?0:Math.round(255*Math.pow(i*r,.8))}};var h=Object.freeze({pcsVersion:2,labNumerator:65280,lMul:652.8,abMul:256,lInvMul:100/65280,abInvMul:255/65280}),u=Object.freeze({pcsVersion:4,labNumerator:65535,lMul:655.35,abMul:257,lInvMul:100/65535,abInvMul:255/65535});function l(t){if("string"==typeof t){if("v2"===t)return h;if("v4"===t)return u;throw new Error('Unknown Lab encoding: "'+t+'". Use "v2", "v4", or an encoding object.')}return t}o.labEncoding={v2:h,v4:u},o.lab2Int16=function(t,e,a,i){var r=l(i);return[Math.max(0,Math.min(65535,Math.round(t*r.lMul))),Math.max(0,Math.min(65535,Math.round((e+128)*r.abMul))),Math.max(0,Math.min(65535,Math.round((a+128)*r.abMul)))]},o.int162Lab=function(t,e,a,i){var r=l(i);return{type:n.Lab,L:t*r.lInvMul,a:e*r.abInvMul-128,b:a*r.abInvMul-128,whitePoint:o.d50}},t.exports=o},153:t=>{t.exports={XYZNumber:function(t,e){return{X:this.s15Fixed16Number(this.uint32(t,e)),Y:this.s15Fixed16Number(this.uint32(t,e+4)),Z:this.s15Fixed16Number(this.uint32(t,e+8))}},chars:function(t,e,a){for(var i="",r=0;r<a;r++)i+=String.fromCharCode(t[e]),e++;return i},unicodeChars:function(t,e,a){for(var i="",r=0;r<a;r++)i+=String.fromCharCode((t[e]<<8)+t[e+1]),e+=2;return i},array:function(t,e,a){for(var i=[],r=0;r<a;r++)i.push(t[e]),e++;return i},uInt8Array:function(t,e,a){return new Uint8Array(t.buffer.slice(e,e+a))},uInt16Array:function(t,e,a){for(var i=2*a,r=new Uint8Array(t.buffer.slice(e,e+i)),n=0;n<i;n+=2){var s=r[n];r[n]=r[n+1],r[n+1]=s}return new Uint16Array(r.buffer)},uint32:function(t,e){return t[e+3]+(t[e+2]<<8)+(t[e+1]<<16)+(t[e]<<24)},uint16:function(t,e){return t[e+1]+(t[e]<<8)},u8Fixed8Number:function(t,e){return t[e]+t[e+1]/256},s15Fixed16Number:function(t){return t>2147483648?(4294967296-t)/-65536:t/65536},float32:function(t,e){return new DataView(t.buffer).getFloat32(e)},float64:function(t,e){return new DataView(t.buffer).getFloat64(e)},s15Array:function(t,e,a){for(var i=[],r=8;r<a;r+=4)i.push(this.s15Fixed16Number(this.uint32(t,e+r)));return{sig:this.chars(t,e,4),values:i}},XYZType:function(t,e){return this.XYZNumber(t,e+8)},text:function(t,e){var a=this.chars(t,e,4);switch(a){case"desc":return this._textDescriptionType(t,e);case"text":return this._textType(t,e);case"mluc":return this._multiLocalizedUnicodeText(t,e);default:return console.warn('decodeICC: unknown text tag type "'+a+'" at offset '+e),{sig:a,text:"<Unknown Text Type>"}}},_multiLocalizedUnicodeText:function(t,e){for(var a=this.uint32(t,e+8),i=this.uint32(t,e+12),r=[],n=e+16,s="",o=0;o<a;o++){var h=this.chars(t,n,2),u=this.uint32(t,n+4)/2,l=this.uint32(t,n+8),m=this.unicodeChars(t,e+l,u);"en"===h&&""===s&&(s=m),r.push({languageCode:h,countryCode:this.chars(t,n+2,2),text:m}),n+=i}return""===s&&(s=r[0].text),{sig:this.chars(t,e,4),text:s,languages:r}},_textType:function(t,e){return{sig:this.chars(t,e,4),text:this.nts(t,e+8)}},_textDescriptionType:function(t,e){var a=this.uint32(t,e+8);return{sig:this.chars(t,e,4),text:this.nts(t,e+12),length:a}},nts:function(t,e,a){a=a||1024;for(var i="",r=0;r<a;r++){if(0===t[e])return i;i+=String.fromCharCode(t[e]),e++}return i},matrixV2:function(t,e){for(var a=[],i=0;i<9;i++)a[i]=this.s15Fixed16Number(this.uint32(t,e)),e+=4;return a},matrixV4:function(t,e){for(var a=[],i=0;i<12;i++)a[i]=this.s15Fixed16Number(this.uint32(t,e)),e+=4;return a},viewingConditions:function(t,e){return{sig:this.chars(t,e,4),illuminant:this.XYZNumber(t,e+8),surround:this.XYZNumber(t,e+20),measurement:this.illuminant2Text(this.uint32(t,e+32))}},measurement:function(t,e){return{sig:this.chars(t,e,4),observer:this.observer2Text(this.uint32(t,e+8)),tristimulus:this.XYZNumber(t,e+12),geometry:this.geometry2Text(this.uint32(t,e+24)),flare:this.flare2Text(this.uint32(t,e+28)),illuminant:this.illuminant2Text(this.uint32(t,e+32))}},observer2Text:function(t){switch(t){case 1:return"CIE 1931 standard colorimetric observer";case 2:return"CIE 1964 standard colorimetric observer";default:return"Unknown"}},geometry2Text:function(t){switch(t){case 1:return"0°:45° or 45°:0°";case 2:return"0°:d or d:0°";default:return"Unknown"}},flare2Text:function(t){return 0===t?"0 (0 %)":"1,0 (or 100 %)"},illuminant2Text:function(t){return["Unknown","D50","D65","D93","F2","D55","A","Equi-Power (E)","F8"][t]},curves:function(t,e,a,i){for(var r=[],n=e,s=0;s<a;s++){var o=this.curve(t,n,i);r.push(o);var h=o.byteLength;if(!1===h)break;h%4!=0&&(h+=4-h%4),n+=h}return r},inverseCurve:function(t,e){for(var a,i,r,n,s=1/(e-1),o=[],h=0,u=0,l=t.length-1,m=t[0]<t[l],c=0;c<e;c++){var A=c*s,g=p(A,t);if(g>=0){if(r=g/l,n=(g+1)/l,(a=t[g])===(i=t[g+1])){o.push(m?n:r);continue}u=n-(h=(n-r)/(i-a))*i}var d=Math.min(1,Math.max(0,h*A+u));o.push(d)}return o;function p(t,e){if(e.length<=1)return-1;var a;if(e[0]<e[e.length-1])for(a=0;a<e.length-2;a++){if(t>=e[a]&&t<=e[a+1])return a;if(e[a+1]<e[a]&&t>=e[a+1]&&t<=e[a])return a}else for(a=0;a<e.length-2;a++)if(e[a]<=e[a+1]){if(t>=e[a]&&t<=e[a+1])return a}else if(e[a+1]<e[a]&&t>=e[a+1]&&t<=e[a])return a;return-1}},curve:function(t,e,a,i){var r=this.chars(t,e,4),n={use:!1,count:0,data:!1,dataf:[],gamma:0,inverted:a,passThrough:!1,curveFn:!1,params:!1,byteLength:!1};switch(r){case"curv":if(n.count=this.uint32(t,e+8),n.byteLength=12+2*n.count,0===n.count)n.gamma=1,n.passThrough=!0;else if(1===n.count)n.gamma=this.u8Fixed8Number(t,e+12);else{for(n.use=!0,n.data=this.uInt16Array(t,e+12,n.count),n.dataf=new Float64Array(n.count),o=0;o<n.data.length;o++)n.dataf[o]=n.data[o]/65535;if(a&&(i=i||4096,n.dataf=this.inverseCurve(n.dataf,i),n.count=n.dataf.length),n.count>3){var s=n.data[Math.floor(n.count/2)];n.gamma=0-Math.log(s/65535)/.69315}2===n.count&&0===n.data[0]&&65535===n.data[1]&&(n.passThrough=!0)}break;case"para":var o;n.use=!0;var h=this.uint16(t,e+8),u=[1,3,4,5,7][h];if(void 0===u){console.warn("decodeICC: unknown parametricCurveType function type "+h+" at offset "+e);break}for(n.byteLength=12+4*u,n.params=[],o=0;o<u;o++){var l=e+12+4*o;n.params.push(this.s15Fixed16Number(this.uint32(t,l)))}switch(h){case 0:n.gamma=n.params[0],1===n.gamma&&(n.passThrough=!0);break;case 1:n.curveFn=a?function(t,e){return(Math.pow(e,1/t[0])-t[2])/t[1]}:function(t,e){if(e>=-t[2]/t[1]){var a=t[1]*e+t[2];return a>0?Math.pow(a,t[0]):0}return 0};break;case 2:n.curveFn=a?function(t,e){var a=t[1]*t[4]+t[2],i=0;return a>=0&&(i=Math.pow(a,t[0])),e>=i?(Math.pow(e,1/t[0])-t[2])/t[1]:e/t[3]}:function(t,e){if(e>=t[4]){var a=t[1]*e+t[2];return a>0?Math.pow(a,t[0]):0}return t[3]*e};break;case 3:n.curveFn=a?function(t,e){return e>=t[3]*t[4]?e<0?0:(Math.pow(e,1/t[0])-t[2])/t[1]:e/t[3]}:function(t,e){if(e>=t[4]){var a=t[1]*e+t[2];return a>0?Math.pow(a,t[0]):0}return t[3]*e};break;case 4:n.curveFn=a?function(t,e){if(e>=t[3]*t[4]+t[6]){var a=e-t[5];return a<0||t[0]<1e-4||t[1]<1e-4?0:(Math.pow(a,1/t[0])-t[2])/t[1]}return t[3]<1e-4?0:(e-t[6])/t[3]}:function(t,e){if(e>=t[4]){var a=t[1]*e+t[2];return a>0?Math.pow(a,t[0])+t[5]:t[5]}return e*t[3]+t[6]};break;default:throw"parametricCurveType function type "+h+" not implemented"}break;default:throw"Unknown CURVE type"+r}return n},lut:function(t,e){var a,i,r,n,s,o,h,u,l,m,c=this.chars(t,e,4),A={type:c},g=[];switch(c){case"mft2":for(A.precision=16,A.inputScale=1,A.outputScale=1/65535,A.inputChannels=t[e+8],A.outputChannels=t[e+9],a=t[e+10],i=0;i<A.inputChannels;i++)g.push(a);A.gridPoints=g,A.matrix=this.matrixV2(t,e+12),A.inputTableEntries=this.uint16(t,e+48),A.outputTableEntries=this.uint16(t,e+50);var d=e+52;for(u=A.inputTableEntries*A.inputChannels,A.inputCurve={channels:A.inputChannels,entries:this.uint16(t,e+48),table:this.uInt16Array(t,d,u),tablef:new Float64Array(u),outputScale:1/65535},d+=2*u,i=0;i<A.inputCurve.table.length;i++)A.inputCurve.tablef[i]=A.inputCurve.table[i]/65535;for(m=Math.pow(A.gridPoints[0],A.inputChannels)*A.outputChannels,A.CLUT=this.uInt16Array(t,d,m),d+=2*m,l=A.outputTableEntries*A.outputChannels,A.outputCurve={channels:A.outputChannels,entries:this.uint16(t,e+50),table:this.uInt16Array(t,d,l),tablef:new Float64Array(l),outputScale:1/65535},i=0;i<A.outputCurve.table.length;i++)A.outputCurve.tablef[i]=A.outputCurve.table[i]/65535;break;case"mft1":for(A.precision=8,A.inputScale=1,A.outputScale=1/255,A.inputChannels=t[e+8],A.outputChannels=t[e+9],a=t[e+10],i=0;i<A.inputChannels;i++)g.push(a);for(A.gridPoints=g,A.matrix=this.matrixV2(t,e+12),A.inputTableEntries=256,A.outputTableEntries=256,u=A.inputTableEntries*A.inputChannels,A.inputCurve={channels:A.inputChannels,entries:256,table:this.uInt8Array(t,e+48,u),tablef:new Float64Array(u),outputScale:1/255},i=0;i<A.inputCurve.table.length;i++)A.inputCurve.tablef[i]=A.inputCurve.table[i]/255;for(m=Math.pow(A.gridPoints[0],A.inputChannels)*A.outputChannels,A.CLUT=this.uInt8Array(t,e+48+u,m),l=A.outputTableEntries*A.outputChannels,A.outputCurve={channels:A.outputChannels,entries:256,table:this.uInt8Array(t,e+48+u+m,l),tablef:new Float64Array(l),outputScale:1/255},i=0;i<A.outputCurve.table.length;i++)A.outputCurve.tablef[i]=A.outputCurve.table[i]/255;break;case"mAB ":A.inputChannels=t[e+8],A.outputChannels=t[e+9],r=this.uint32(t,e+12),n=this.uint32(t,e+16),s=this.uint32(t,e+20),o=this.uint32(t,e+24),h=this.uint32(t,e+28),A.bCurves=0!==r&&this.curves(t,e+r,A.outputChannels,!1),A.matrix=0!==n&&this.matrixV4(t,e+n),0===o?A.CLUT=!1:this.CLUT4(A,t,e+o,A.inputChannels,A.outputChannels),A.mCurves=0!==s&&this.curves(t,e+s,A.outputChannels,!1),A.aCurves=0!==h&&this.curves(t,e+h,A.inputChannels,!1);break;case"mBA ":A.inputChannels=t[e+8],A.outputChannels=t[e+9],r=this.uint32(t,e+12),n=this.uint32(t,e+16),s=this.uint32(t,e+20),o=this.uint32(t,e+24),h=this.uint32(t,e+28),A.bCurves=0!==r&&this.curves(t,e+r,A.inputChannels,!1),A.matrix=0!==n&&this.matrixV4(t,e+n),0===o?A.CLUT=!1:this.CLUT4(A,t,e+o,A.inputChannels,A.outputChannels),A.mCurves=0!==s&&this.curves(t,e+s,A.inputChannels,!1),A.aCurves=0!==h&&this.curves(t,e+h,A.outputChannels,!1);break;default:console.warn('decodeICC: unsupported LUT tag type "'+c+'" at offset '+e),A.invalid=!0,A.errorReason='unsupported LUT type "'+c+'"',A.inputChannels=3,A.outputChannels=3,A.precision=8,A.inputScale=1,A.outputScale=1/255,A.gridPoints=[2,2,2],A.CLUT=new Uint8Array(24),A.inputCurve=!1,A.outputCurve=!1,A.matrix=!1,A.bCurves=!1,A.mCurves=!1,A.aCurves=!1}return A.g1=A.gridPoints[0],A.g2=A.g1*A.gridPoints[1],A.g3=A.g2*A.gridPoints[2],A.g4=A.g3*A.gridPoints[3],A.go0=A.outputChannels,A.go1=A.g1*A.outputChannels,A.go2=A.g2*A.outputChannels,A.go3=A.g3*A.outputChannels,A},CLUT4:function(t,e,a,i,r){for(var n=[],s=e[a+16],o=0;o<i;o++)n.push(e[a+o]);var h=n[0];for(o=1;o<i;o++)h*=n[o];1===s?(t.CLUT=this.uInt8Array(e,a+20,h*r),t.inputScale=1,t.outputScale=1/255):(t.CLUT=this.uInt16Array(e,a+20,h*r),t.inputScale=1,t.outputScale=1/65535),t.precision=8*s,t.gridPoints=n},multiProcessElement:function(t,e){for(var a=[],i=this.uint16(t,e+8),r=this.uint16(t,e+10),n=this.uint32(t,e+12),s=[],o=0;o<n;o++)s.push({offset:this.uint32(t,e+16+4*o),size:this.uint32(t,e+16+4*o+4)});for(o=0;o<n;o++){var h=e+s[o].offset,u=this.chars(t,h,4);switch(u){case"cvst":case"matf":case"clut":a.push({sig:u});break;case"bACS":case"eACS":break;default:console.warn('decodeICC: unknown MultiProcess element "'+u+'" at offset '+h)}}return{inputChannels:i,outputChannels:r,elements:a}}}},362:t=>{t.exports={eColourType:{None:0,XYZ:1,Lab:2,LCH:3,Gray:4,RGB:5,CMYK:6,custom:7,RGBf:8,CMYKf:9,Spectrum:10,Greyf:11,Duo:12,Duof:13,xyY:14},eProfileType:{Lab:0,RGBMatrix:1,RGBLut:2,CMYK:3,Gray:4,Duo:5,XYZ:6},eIntent:{perceptual:0,relative:1,saturation:2,absolute:3},intent2String:function(t){return["Perceptual","Relative","Saturation","Absolute"][t]||"unknown"},illuminant:{a:{desc:"a",Y:1,X:1.0985,Z:.35585},b:{desc:"b",Y:1,X:.99072,Z:.85223},c:{desc:"c",Y:1,X:.98074,Z:1.18232},d50:{desc:"d50",Y:1,X:.96422,Z:.82521},d55:{desc:"d55",Y:1,X:.95682,Z:.92149},d65:{desc:"d65",Y:1,X:.95047,Z:1.08883},d75:{desc:"d75",Y:1,X:.94972,Z:1.22638},e:{desc:"e",Y:1,X:1,Z:1},f2:{desc:"f2",Y:1,X:.99186,Z:.67393},f7:{desc:"f7",Y:1,X:.95041,Z:1.08747},f11:{desc:"f11",Y:1,X:1.00962,Z:.6435}},encoding:{device:0,PCSv2:1,PCSv4:2,PCSXYZ:3,LabD50:3,cmsLab:4,cmsRGB:5,cmsCMYK:6,cmsXYZ:7},encodingStr:["device","PCSv2","PCSv4","PCSXYZ","LabD50","cmsLab","cmsRGB","cmsCMYK","cmsXYZ"]}},422:t=>{"use strict";var e=256;function a(){return!0}function i(){return!1}function r(t,e){return!(!e||!e.intLut)}function n(t,e){return null!==t.wasmTetra3D&&!(!e||!e.intLut)}function s(t,e){return null!==t.wasmTetra3DSimd&&!(!e||!e.intLut)}function o(t,e){return null!==t.wasmTetra3DInt16&&!(!e||!e.intLut)}function h(t,e){return null!==t.wasmTetra4D&&!(!e||!e.intLut)}function u(t,e){return null!==t.wasmTetra4DSimd&&!(!e||!e.intLut)}function l(t,e){return null!==t.wasmTetra4DInt16&&!(!e||!e.intLut)}function m(t,e){return null!==t.wasmTetra3DInt16Simd&&!(!e||!e.intLut)}function c(t,e){return null!==t.wasmTetra4DInt16Simd&&!(!e||!e.intLut)}function A(t,e,a,i,r,n,s,o){var h=t.outputChannels,u=n?4:3,l=s?h+1:h;t.wasmTetra3D.bind(r.intLut,i,h,u,l),t.wasmTetra3D.runTetra3D(e,0,a,0,i,r.intLut,h,n,s,o)}function g(t,e,a,i,r,n,s,o){var h=t.outputChannels,u=n?5:4,l=s?h+1:h;t.wasmTetra4D.bind(r.intLut,i,h,u,l),t.wasmTetra4D.runTetra4D(e,0,a,0,i,r.intLut,h,n,s,o)}function d(t,e,a,i,r,n,s,o){var h=t.outputChannels,u=n?4:3,l=s?h+1:h;t.wasmTetra3DSimd.bind(r.intLut,i,h,u,l),t.wasmTetra3DSimd.runTetra3D(e,0,a,0,i,r.intLut,h,n,s,o)}function p(t,e,a,i,r,n,s,o){var h=t.outputChannels,u=n?5:4,l=s?h+1:h;t.wasmTetra4DSimd.bind(r.intLut,i,h,u,l),t.wasmTetra4DSimd.runTetra4D(e,0,a,0,i,r.intLut,h,n,s,o)}function C(t,e,a,i,r,n,s,o){var h=t.outputChannels,u=2*(n?4:3),l=2*(s?h+1:h);t.wasmTetra3DInt16.bind(r.intLut,i,h,u,l),t.wasmTetra3DInt16.runTetra3D(e,0,a,0,i,r.intLut,h,n,s,o)}function _(t,e,a,i,r,n,s,o){var h=t.outputChannels,u=2*(n?5:4),l=2*(s?h+1:h);t.wasmTetra4DInt16.bind(r.intLut,i,h,u,l),t.wasmTetra4DInt16.runTetra4D(e,0,a,0,i,r.intLut,h,n,s,o)}function I(t,e,a,i,r,n,s,o){var h=t.outputChannels,u=2*(n?4:3),l=2*(s?h+1:h);t.wasmTetra3DInt16Simd.bind(r.intLut,i,h,u,l),t.wasmTetra3DInt16Simd.runTetra3D(e,0,a,0,i,r.intLut,h,n,s,o)}function f(t,e,a,i,r,n,s,o){var h=t.outputChannels,u=2*(n?5:4),l=2*(s?h+1:h);t.wasmTetra4DInt16Simd.bind(r.intLut,i,h,u,l),t.wasmTetra4DInt16Simd.runTetra4D(e,0,a,0,i,r.intLut,h,n,s,o)}var M={i16wsi_3_3:{run:I,gate:m,minPx:e,fallback:"i16ws_3_3"},i16wsi_3_4:{run:I,gate:m,minPx:e,fallback:"i16ws_3_4"},i16wsi_3_n:{run:null,gate:i,minPx:0,fallback:"i16ws_3_n"},i16wsi_4_3:{run:f,gate:c,minPx:e,fallback:"i16ws_4_3"},i16wsi_4_4:{run:f,gate:c,minPx:e,fallback:"i16ws_4_4"},i16wsi_4_n:{run:null,gate:i,minPx:0,fallback:"i16ws_4_n"},i16ws_3_3:{run:C,gate:o,minPx:e,fallback:"i16_3_3"},i16ws_3_4:{run:C,gate:o,minPx:e,fallback:"i16_3_4"},i16ws_3_n:{run:C,gate:o,minPx:e,fallback:"i16_3_n"},i16ws_4_3:{run:_,gate:l,minPx:e,fallback:"i16_4_3"},i16ws_4_4:{run:_,gate:l,minPx:e,fallback:"i16_4_4"},i16ws_4_n:{run:_,gate:l,minPx:e,fallback:"i16_4_n"},i8wsi_3_3:{run:d,gate:s,minPx:e,fallback:"i8ws_3_3"},i8wsi_3_4:{run:d,gate:s,minPx:e,fallback:"i8ws_3_4"},i8wsi_3_n:{run:null,gate:i,minPx:0,fallback:"i8ws_3_n"},i8wsi_4_3:{run:p,gate:u,minPx:e,fallback:"i8ws_4_3"},i8wsi_4_4:{run:p,gate:u,minPx:e,fallback:"i8ws_4_4"},i8wsi_4_n:{run:null,gate:i,minPx:0,fallback:"i8ws_4_n"},i8ws_3_3:{run:A,gate:n,minPx:e,fallback:"i_3_3"},i8ws_3_4:{run:A,gate:n,minPx:e,fallback:"i_3_4"},i8ws_3_n:{run:A,gate:n,minPx:e,fallback:"i_3_n"},i8ws_4_3:{run:g,gate:h,minPx:e,fallback:"i_4_3"},i8ws_4_4:{run:g,gate:h,minPx:e,fallback:"i_4_4"},i8ws_4_n:{run:g,gate:h,minPx:e,fallback:"i_4_n"},i16_3_3:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp3DArray_3Ch_intLut16_loop(e,0,a,0,i,r.intLut,n,s,o)},gate:r,minPx:0,fallback:null},i16_3_4:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp3DArray_4Ch_intLut16_loop(e,0,a,0,i,r.intLut,n,s,o)},gate:r,minPx:0,fallback:null},i16_3_n:{run:null,gate:i,minPx:0,fallback:null},i16_4_3:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp4DArray_3Ch_intLut16_loop(e,0,a,0,i,r.intLut,n,s,o)},gate:r,minPx:0,fallback:null},i16_4_4:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp4DArray_4Ch_intLut16_loop(e,0,a,0,i,r.intLut,n,s,o)},gate:r,minPx:0,fallback:null},i16_4_n:{run:null,gate:i,minPx:0,fallback:null},i_3_3:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp3DArray_3Ch_intLut_loop(e,0,a,0,i,r.intLut,n,s,o)},gate:r,minPx:0,fallback:"fl_3_3"},i_3_4:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp3DArray_4Ch_intLut_loop(e,0,a,0,i,r.intLut,n,s,o)},gate:r,minPx:0,fallback:"fl_3_4"},i_3_n:{run:null,gate:i,minPx:0,fallback:"fl_3_n"},i_4_3:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp4DArray_3Ch_intLut_loop(e,0,a,0,i,r.intLut,n,s,o)},gate:r,minPx:0,fallback:"fl_4_3"},i_4_4:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp4DArray_4Ch_intLut_loop(e,0,a,0,i,r.intLut,n,s,o)},gate:r,minPx:0,fallback:"fl_4_4"},i_4_n:{run:null,gate:i,minPx:0,fallback:"fl_4_n"},fl_3_3:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp3DArray_3Ch_loop(e,0,a,0,i,r,n,s,o)},gate:a,minPx:0,fallback:null},fl_3_4:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp3DArray_4Ch_loop(e,0,a,0,i,r,n,s,o)},gate:a,minPx:0,fallback:null},fl_3_n:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp3DArray_NCh_loop(e,0,a,0,i,r,n,s,o)},gate:a,minPx:0,fallback:null},fl_4_3:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp4DArray_3Ch_loop(e,0,a,0,i,r,n,s,o)},gate:a,minPx:0,fallback:null},fl_4_4:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp4DArray_4Ch_loop(e,0,a,0,i,r,n,s,o)},gate:a,minPx:0,fallback:null},fl_4_n:{run:function(t,e,a,i,r,n,s,o){t.tetrahedralInterp4DArray_NCh_loop(e,0,a,0,i,r,n,s,o)},gate:a,minPx:0,fallback:null}};t.exports={KERNEL:M,LUT_MODE_SHORT:{float:"fl",int:"i",int16:"i16","int-wasm-scalar":"i8ws","int-wasm-simd":"i8wsi","int16-wasm-scalar":"i16ws","int16-wasm-simd":"i16wsi"},WASM_DISPATCH_MIN_PIXELS:e,makeKey:function(t,e,a){return t+"_"+e+"_"+(3===a||4===a?String(a):"n")},resolveLutKernel:function(t,e,a,i){for(var r=a,n=0;null!==r;){if(n++>16)throw new Error('lutKernelTable: fallback chain too deep starting at "'+a+'" — likely a cycle');var s=M[r];if(void 0===s)throw new Error('lutKernelTable: missing entry "'+r+'" (chain from "'+a+'")');if(null!==s.run&&s.gate(t,e)&&i>=s.minPx)return{entry:s,key:r};r=s.fallback}throw new Error('lutKernelTable: fallback chain exhausted from "'+a+'" (no float fallback?)')}}},660:(t,e,a)=>{var i=a(362),r=a(618);t.exports={convert:r,color:r,Spectral:a(706),Loader:a(155),Profile:a(577),Transform:a(369),eColourType:i.eColourType,eProfileType:i.eProfileType,eIntent:i.eIntent,encoding:i.encoding,encodingStr:i.encodingStr}},980:t=>{"use strict";t.exports=function(t){if("undefined"!=typeof Buffer&&"function"==typeof Buffer.from)return new Uint8Array(Buffer.from(t,"base64"));if("function"==typeof atob){const e=atob(t),a=new Uint8Array(e.length);for(let t=0;t<e.length;t++)a[t]=e.charCodeAt(t);return a}throw new Error("No base64 decoder available (need Buffer or atob).")}("AGFzbQEAAAABEgFgDn9/f39/f39/f39/f39/AAMCAQAFAwEAAQcfAgZtZW1vcnkCABJpbnRlcnBfdGV0cmEzZF9uQ2gAAAqjDgGgDgEffyAAIQ8gASEQAkADQCAOIANODQEgDy0AACERIA9BAWotAAAhEiAPQQJqLQAAIRMgD0EDaiEPIBEgCGwhFCASIAhsIRUgEyAIbCEWIBFB/wFGBEAgCSEXIAkhGEEAIR0FIBRBEHYgB2whFyAXIAdqIRggFEEIdkH/AXEhHQsgEkH/AUYEQCAKIRkgCiEaQQAhHgUgFUEQdiAGbCEZIBkgBmohGiAVQQh2Qf8BcSEeCyATQf8BRgRAIAshGyALIRxBACEfBSAWQRB2IAVsIRsgGyAFaiEcIBZBCHZB/wFxIR8LIBcgGWogG2ohICAdIB5OIB4gH05xBEAgGCAZaiAbaiEhIBggGmogG2ohIiAYIBpqIBxqISRBACElA0AgAiAhQQF0ai8BACEmICFBAWohISACICJBAXRqLwEAIScgIkEBaiEiIAIgIEEBdGovAQAhKCAgQQFqISAgAiAkQQF0ai8BACEpICRBAWohJCAmIChrIB1sICcgJmsgHmxqICkgJ2sgH2xqISogKCAqQYABakEIdWohKyArQYABakEIdSEsICxBACAsQQBOGyEsICxB/wEgLEGAAkgbISwgECAsOgAAIBBBAWohECAlQQFqIiUgBEgNAAsFIB0gH04gHyAeTnEEQCAYIBlqIBtqISEgGCAaaiAcaiEiIBggGWogHGohI0EAISUDQCACICNBAXRqLwEAISYgI0EBaiEjIAIgIUEBdGovAQAhJyAhQQFqISEgAiAgQQF0ai8BACEoICBBAWohICACICJBAXRqLwEAISkgIkEBaiEiICcgKGsgHWwgKSAmayAebGogJiAnayAfbGohKiAoICpBgAFqQQh1aiErICtBgAFqQQh1ISwgLEEAICxBAE4bISwgLEH/ASAsQYACSBshLCAQICw6AAAgEEEBaiEQICVBAWoiJSAESA0ACwUgHSAeTiAfIB1OcQRAIBggGWogHGohISAXIBlqIBxqISIgGCAaaiAcaiEjQQAhJQNAIAIgIUEBdGovAQAhJiAhQQFqISEgAiAiQQF0ai8BACEnICJBAWohIiACICBBAXRqLwEAISggIEEBaiEgIAIgI0EBdGovAQAhKSAjQQFqISMgJiAnayAdbCApICZrIB5saiAnIChrIB9saiEqICggKkGAAWpBCHVqISsgK0GAAWpBCHUhLCAsQQAgLEEAThshLCAsQf8BICxBgAJIGyEsIBAgLDoAACAQQQFqIRAgJUEBaiIlIARIDQALBSAeIB1OIB0gH05xBEAgGCAaaiAbaiEhIBcgGmogG2ohIiAYIBpqIBxqISRBACElA0AgAiAiQQF0ai8BACEmICJBAWohIiACICFBAXRqLwEAIScgIUEBaiEhIAIgIEEBdGovAQAhKCAgQQFqISAgAiAkQQF0ai8BACEpICRBAWohJCAnICZrIB1sICYgKGsgHmxqICkgJ2sgH2xqISogKCAqQYABakEIdWohKyArQYABakEIdSEsICxBACAsQQBOGyEsICxB/wEgLEGAAkgbISwgECAsOgAAIBBBAWohECAlQQFqIiUgBEgNAAsFIB4gH04gHyAdTnEEQCAYIBpqIBxqISEgFyAaaiAcaiEiIBcgGmogG2ohI0EAISUDQCACICJBAXRqLwEAISYgIkEBaiEiIAIgI0EBdGovAQAhJyAjQQFqISMgAiAgQQF0ai8BACEoICBBAWohICACICFBAXRqLwEAISkgIUEBaiEhICkgJmsgHWwgJyAoayAebGogJiAnayAfbGohKiAoICpBgAFqQQh1aiErICtBgAFqQQh1ISwgLEEAICxBAE4bISwgLEH/ASAsQYACSBshLCAQICw6AAAgEEEBaiEQICVBAWoiJSAESA0ACwUgHyAeTiAeIB1OcQRAIBggGmogHGohISAXIBpqIBxqISIgFyAZaiAcaiEkQQAhJQNAIAIgIkEBdGovAQAhJiAiQQFqISIgAiAkQQF0ai8BACEnICRBAWohJCACICBBAXRqLwEAISggIEEBaiEgIAIgIUEBdGovAQAhKSAhQQFqISEgKSAmayAdbCAmICdrIB5saiAnIChrIB9saiEqICggKkGAAWpBCHVqISsgK0GAAWpBCHUhLCAsQQAgLEEAThshLCAsQf8BICxBgAJIGyEsIBAgLDoAACAQQQFqIRAgJUEBaiIlIARIDQALBUEAISUDQCACICBBAXRqLwEAISggIEEBaiEgIChBgAFqQQh1ISwgLEEAICxBAE4bISwgLEH/ASAsQYACSBshLCAQICw6AAAgEEEBaiEQICVBAWoiJSAESA0ACwsLCwsLCyANQQJGBEAgECAPLQAAOgAAIBBBAWohECAPQQFqIQ8FIA1BAUYEQCAQQf8BOgAAIBBBAWohEAsgDyAMaiEPCyAOQQFqIQ4MAAsLCw==")},382:t=>{"use strict";t.exports=function(t){if("undefined"!=typeof Buffer&&"function"==typeof Buffer.from)return new Uint8Array(Buffer.from(t,"base64"));if("function"==typeof atob){const e=atob(t),a=new Uint8Array(e.length);for(let t=0;t<e.length;t++)a[t]=e.charCodeAt(t);return a}throw new Error("No base64 decoder available (need Buffer or atob).")}("AGFzbQEAAAABEgFgDn9/f39/f39/f39/f39/AAMCAQAFAwEAAQclAgZtZW1vcnkCABhpbnRlcnBfdGV0cmEzZF9uQ2hfaW50MTYAAAqeDAGbDAEefyAAIQ8gASEQAkADQCAOIANODQEgDy8BACERIA9BAmovAQAhEiAPQQRqLwEAIRMgD0EGaiEPIBEgCGwhFCASIAhsIRUgEyAIbCEWIBFB//8DRgRAIAkhFyAJIRhBACEdBSAUQQ12IAdsIRcgFyAHaiEYIBRB/z9xIR0LIBJB//8DRgRAIAohGSAKIRpBACEeBSAVQQ12IAZsIRkgGSAGaiEaIBVB/z9xIR4LIBNB//8DRgRAIAshGyALIRxBACEfBSAWQQ12IAVsIRsgGyAFaiEcIBZB/z9xIR8LIBcgGWogG2ohICAdIB5OIB4gH05xBEAgGCAZaiAbaiEhIBggGmogG2ohIiAYIBpqIBxqISRBACElA0AgAiAhQQF0ai8BACEmICFBAWohISACICJBAXRqLwEAIScgIkEBaiEiIAIgIEEBdGovAQAhKCAgQQFqISAgAiAkQQF0ai8BACEpICRBAWohJCAmIChrIB1sICcgJmsgHmxqICkgJ2sgH2xqISogKCAqQYAgakENdWohKyAQICs7AQAgEEECaiEQICVBAWoiJSAESA0ACwUgHSAfTiAfIB5OcQRAIBggGWogG2ohISAYIBpqIBxqISIgGCAZaiAcaiEjQQAhJQNAIAIgI0EBdGovAQAhJiAjQQFqISMgAiAhQQF0ai8BACEnICFBAWohISACICBBAXRqLwEAISggIEEBaiEgIAIgIkEBdGovAQAhKSAiQQFqISIgJyAoayAdbCApICZrIB5saiAmICdrIB9saiEqICggKkGAIGpBDXVqISsgECArOwEAIBBBAmohECAlQQFqIiUgBEgNAAsFIB0gHk4gHyAdTnEEQCAYIBlqIBxqISEgFyAZaiAcaiEiIBggGmogHGohI0EAISUDQCACICFBAXRqLwEAISYgIUEBaiEhIAIgIkEBdGovAQAhJyAiQQFqISIgAiAgQQF0ai8BACEoICBBAWohICACICNBAXRqLwEAISkgI0EBaiEjICYgJ2sgHWwgKSAmayAebGogJyAoayAfbGohKiAoICpBgCBqQQ11aiErIBAgKzsBACAQQQJqIRAgJUEBaiIlIARIDQALBSAeIB1OIB0gH05xBEAgGCAaaiAbaiEhIBcgGmogG2ohIiAYIBpqIBxqISRBACElA0AgAiAiQQF0ai8BACEmICJBAWohIiACICFBAXRqLwEAIScgIUEBaiEhIAIgIEEBdGovAQAhKCAgQQFqISAgAiAkQQF0ai8BACEpICRBAWohJCAnICZrIB1sICYgKGsgHmxqICkgJ2sgH2xqISogKCAqQYAgakENdWohKyAQICs7AQAgEEECaiEQICVBAWoiJSAESA0ACwUgHiAfTiAfIB1OcQRAIBggGmogHGohISAXIBpqIBxqISIgFyAaaiAbaiEjQQAhJQNAIAIgIkEBdGovAQAhJiAiQQFqISIgAiAjQQF0ai8BACEnICNBAWohIyACICBBAXRqLwEAISggIEEBaiEgIAIgIUEBdGovAQAhKSAhQQFqISEgKSAmayAdbCAnIChrIB5saiAmICdrIB9saiEqICggKkGAIGpBDXVqISsgECArOwEAIBBBAmohECAlQQFqIiUgBEgNAAsFIB8gHk4gHiAdTnEEQCAYIBpqIBxqISEgFyAaaiAcaiEiIBcgGWogHGohJEEAISUDQCACICJBAXRqLwEAISYgIkEBaiEiIAIgJEEBdGovAQAhJyAkQQFqISQgAiAgQQF0ai8BACEoICBBAWohICACICFBAXRqLwEAISkgIUEBaiEhICkgJmsgHWwgJiAnayAebGogJyAoayAfbGohKiAoICpBgCBqQQ11aiErIBAgKzsBACAQQQJqIRAgJUEBaiIlIARIDQALBUEAISUDQCACICBBAXRqLwEAISggIEEBaiEgIBAgKDsBACAQQQJqIRAgJUEBaiIlIARIDQALCwsLCwsLIA1BAkYEQCAQIA8vAQA7AQAgEEECaiEQIA9BAmohDwUgDUEBRgRAIBBB//8DOwEAIBBBAmohEAsgDyAMQQF0aiEPCyAOQQFqIQ4MAAsLCw==")},156:t=>{"use strict";t.exports=function(t){if("undefined"!=typeof Buffer&&"function"==typeof Buffer.from)return new Uint8Array(Buffer.from(t,"base64"));if("function"==typeof atob){const e=atob(t),a=new Uint8Array(e.length);for(let t=0;t<e.length;t++)a[t]=e.charCodeAt(t);return a}throw new Error("No base64 decoder available (need Buffer or atob).")}("AGFzbQEAAAABEgFgDn9/f39/f39/f39/f39/AAMCAQAFAwEAAQcgAgZtZW1vcnkCABNpbnRlcnBfdGV0cmEzZF9zaW1kAAAKpQoBogoCGH8LeyAAIQ8gASEQIAQhEQJAA0AgDiADTg0BIA8tAAAhEiAPLQABIRMgDy0AAiEUIA9BA2ohDyASIAhsIRUgEyAIbCEWIBQgCGwhFyASQf8BRgRAIAkhGCAJIRlBACEeBSAVQRB2IAdsIRggGCAHaiEZIBVBCHZB/wFxIR4LIBNB/wFGBEAgCiEaIAohG0EAIR8FIBZBEHYgBmwhGiAaIAZqIRsgFkEIdkH/AXEhHwsgFEH/AUYEQCALIRwgCyEdQQAhIAUgF0EQdiAFbCEcIBwgBWohHSAXQQh2Qf8BcSEgCyAe/REhKiAf/REhKyAg/REhLCAYIBpqIBxqISEgAiAhQQF0av1dAAD9qQEhKCAeIB9OIB8gIE5xBEAgGSAaaiAcaiEiIBkgG2ogHGohIyAZIBtqIB1qISUgAiAiQQF0av1dAAD9qQEhJiACICNBAXRq/V0AAP2pASEnIAIgJUEBdGr9XQAA/akBISkgJiAo/bEBICr9tQEgJyAm/bEBICv9tQH9rgEgKSAn/bEBICz9tQH9rgEhLQUgHiAgTiAgIB9OcQRAIBkgGmogHGohIiAZIBtqIB1qISMgGSAaaiAdaiEkIAIgJEEBdGr9XQAA/akBISYgAiAiQQF0av1dAAD9qQEhJyACICNBAXRq/V0AAP2pASEpICcgKP2xASAq/bUBICkgJv2xASAr/bUB/a4BICYgJ/2xASAs/bUB/a4BIS0FIB4gH04gICAeTnEEQCAZIBpqIB1qISIgGCAaaiAdaiEjIBkgG2ogHWohJCACICJBAXRq/V0AAP2pASEmIAIgI0EBdGr9XQAA/akBIScgAiAkQQF0av1dAAD9qQEhKSAmICf9sQEgKv21ASApICb9sQEgK/21Af2uASAnICj9sQEgLP21Af2uASEtBSAfIB5OIB4gIE5xBEAgGSAbaiAcaiEiIBggG2ogHGohIyAZIBtqIB1qISUgAiAjQQF0av1dAAD9qQEhJiACICJBAXRq/V0AAP2pASEnIAIgJUEBdGr9XQAA/akBISkgJyAm/bEBICr9tQEgJiAo/bEBICv9tQH9rgEgKSAn/bEBICz9tQH9rgEhLQUgHyAgTiAgIB5OcQRAIBkgG2ogHWohIiAYIBtqIB1qISMgGCAbaiAcaiEkIAIgI0EBdGr9XQAA/akBISYgAiAkQQF0av1dAAD9qQEhJyACICJBAXRq/V0AAP2pASEpICkgJv2xASAq/bUBICcgKP2xASAr/bUB/a4BICYgJ/2xASAs/bUB/a4BIS0FICAgH04gHyAeTnEEQCAZIBtqIB1qISIgGCAbaiAdaiEjIBggGmogHWohJSACICNBAXRq/V0AAP2pASEmIAIgJUEBdGr9XQAA/akBIScgAiAiQQF0av1dAAD9qQEhKSApICb9sQEgKv21ASAmICf9sQEgK/21Af2uASAnICj9sQEgLP21Af2uASEtBf0MAAAAAAAAAAAAAAAAAAAAACEtCwsLCwsLICggLf0MgAAAAIAAAACAAAAAgAAAAP2uAUEI/awB/a4BIS4gLv0MgAAAAIAAAACAAAAAgAAAAP2uAUEI/awBIS8gLyAv/YYBIC8gL/2GAf1mITAgECAw/VoAAAAgECARaiEQIA0gDHIEQCANQQJGBEAgECAPLQAAOgAAIBBBAWohECAPQQFqIQ8FIA1BAUYEQCAQQf8BOgAAIBBBAWohEAsgDyAMaiEPCwsgDkEBaiEODAALCws=")},759:t=>{"use strict";t.exports=function(t){if("undefined"!=typeof Buffer&&"function"==typeof Buffer.from)return new Uint8Array(Buffer.from(t,"base64"));if("function"==typeof atob){const e=atob(t),a=new Uint8Array(e.length);for(let t=0;t<e.length;t++)a[t]=e.charCodeAt(t);return a}throw new Error("No base64 decoder available (need Buffer or atob).")}("AGFzbQEAAAABEgFgDn9/f39/f39/f39/f39/AAMCAQAFAwEAAQcmAgZtZW1vcnkCABlpbnRlcnBfdGV0cmEzZF9zaW1kX2ludDE2AAAK/wkB/AkCGH8KeyAAIQ8gASEQIARBAXQhEQJAA0AgDiADTg0BIA8vAQAhEiAPLwECIRMgDy8BBCEUIA9BBmohDyASIAhsIRUgEyAIbCEWIBQgCGwhFyASQf//A0YEQCAJIRggCSEZQQAhHgUgFUENdiAHbCEYIBggB2ohGSAVQf8/cSEeCyATQf//A0YEQCAKIRogCiEbQQAhHwUgFkENdiAGbCEaIBogBmohGyAWQf8/cSEfCyAUQf//A0YEQCALIRwgCyEdQQAhIAUgF0ENdiAFbCEcIBwgBWohHSAXQf8/cSEgCyAe/REhKiAf/REhKyAg/REhLCAYIBpqIBxqISEgAiAhQQF0av1dAAD9qQEhKCAeIB9OIB8gIE5xBEAgGSAaaiAcaiEiIBkgG2ogHGohIyAZIBtqIB1qISUgAiAiQQF0av1dAAD9qQEhJiACICNBAXRq/V0AAP2pASEnIAIgJUEBdGr9XQAA/akBISkgJiAo/bEBICr9tQEgJyAm/bEBICv9tQH9rgEgKSAn/bEBICz9tQH9rgEhLQUgHiAgTiAgIB9OcQRAIBkgGmogHGohIiAZIBtqIB1qISMgGSAaaiAdaiEkIAIgJEEBdGr9XQAA/akBISYgAiAiQQF0av1dAAD9qQEhJyACICNBAXRq/V0AAP2pASEpICcgKP2xASAq/bUBICkgJv2xASAr/bUB/a4BICYgJ/2xASAs/bUB/a4BIS0FIB4gH04gICAeTnEEQCAZIBpqIB1qISIgGCAaaiAdaiEjIBkgG2ogHWohJCACICJBAXRq/V0AAP2pASEmIAIgI0EBdGr9XQAA/akBIScgAiAkQQF0av1dAAD9qQEhKSAmICf9sQEgKv21ASApICb9sQEgK/21Af2uASAnICj9sQEgLP21Af2uASEtBSAfIB5OIB4gIE5xBEAgGSAbaiAcaiEiIBggG2ogHGohIyAZIBtqIB1qISUgAiAjQQF0av1dAAD9qQEhJiACICJBAXRq/V0AAP2pASEnIAIgJUEBdGr9XQAA/akBISkgJyAm/bEBICr9tQEgJiAo/bEBICv9tQH9rgEgKSAn/bEBICz9tQH9rgEhLQUgHyAgTiAgIB5OcQRAIBkgG2ogHWohIiAYIBtqIB1qISMgGCAbaiAcaiEkIAIgI0EBdGr9XQAA/akBISYgAiAkQQF0av1dAAD9qQEhJyACICJBAXRq/V0AAP2pASEpICkgJv2xASAq/bUBICcgKP2xASAr/bUB/a4BICYgJ/2xASAs/bUB/a4BIS0FICAgH04gHyAeTnEEQCAZIBtqIB1qISIgGCAbaiAdaiEjIBggGmogHWohJSACICNBAXRq/V0AAP2pASEmIAIgJUEBdGr9XQAA/akBIScgAiAiQQF0av1dAAD9qQEhKSApICb9sQEgKv21ASAmICf9sQEgK/21Af2uASAnICj9sQEgLP21Af2uASEtBf0MAAAAAAAAAAAAAAAAAAAAACEtCwsLCwsLICggLf0MABAAAAAQAAAAEAAAABAAAP2uAUEN/awB/a4BIS4gLiAu/YYBIS8gECAv/VsAAAAgECARaiEQIA0gDHIEQCANQQJGBEAgECAPLwEAOwEAIBBBAmohECAPQQJqIQ8FIA1BAUYEQCAQQf//AzsBACAQQQJqIRALIA8gDEEBdGohDwsLIA5BAWohDgwACwsL")},148:t=>{"use strict";t.exports=function(t){if("undefined"!=typeof Buffer&&"function"==typeof Buffer.from)return new Uint8Array(Buffer.from(t,"base64"));if("function"==typeof atob){const e=atob(t),a=new Uint8Array(e.length);for(let t=0;t<e.length;t++)a[t]=e.charCodeAt(t);return a}throw new Error("No base64 decoder available (need Buffer or atob).")}("AGFzbQEAAAABFQFgEX9/f39/f39/f39/f39/f39/AAMCAQAFAwEAAQcfAgZtZW1vcnkCABJpbnRlcnBfdGV0cmE0ZF9uQ2gAAAq0EwGxEwEnfyAAIRIgASETAkADQCARIANODQEgEi0AACEUIBJBAWotAAAhFSASQQJqLQAAIRYgEkEDai0AACEXIBJBBGohEiAUIAlsIRggFSAJbCEZIBYgCWwhGiAXIAlsIRsgFEH/AUYEQCANISJBACEmBSAYQRB2IAhsISIgGEEIdkH/AXEhJgsgJkEARyEtIBVB/wFGBEAgCiEcIAohHUEAISMFIBlBEHYgB2whHCAcIAdqIR0gGUEIdkH/AXEhIwsgFkH/AUYEQCALIR4gCyEfQQAhJAUgGkEQdiAGbCEeIB4gBmohHyAaQQh2Qf8BcSEkCyAXQf8BRgRAIAwhICAMISFBACElBSAbQRB2IAVsISAgICAFaiEhIBtBCHZB/wFxISULQQAhLCAtIS4CQANAIBwgHmogIGogImohJyAjICROICQgJU5xBEAgHSAeaiAgaiAiaiEoIB0gH2ogIGogImohKSAdIB9qICFqICJqIStBACEvA0AgAiAoQQF0ai8BACEwIChBAWohKCACIClBAXRqLwEAITEgKUEBaiEpIAIgJ0EBdGovAQAhMiAnQQFqIScgAiArQQF0ai8BACEzICtBAWohKyAwIDJrICNsIDEgMGsgJGxqIDMgMWsgJWxqITQgMkEEdCA0QQhqQQR1aiE1IC5BAUYEQCAOIC9BAnRqIDU2AgAFIC5BAkYEQCAOIC9BAnRqKAIAITYgNkEIdCA1IDZrICZsakGAgCBqQRR1ITcFIDVBgBBqQQx1ITcLIDdBACA3QQBOGyE3IDdB/wEgN0GAAkgbITcgEyA3OgAAIBNBAWohEwsgL0EBaiIvIARIDQALBSAjICVOICUgJE5xBEAgHSAeaiAgaiAiaiEoIB0gH2ogIWogImohKSAdIB5qICFqICJqISpBACEvA0AgAiAqQQF0ai8BACEwICpBAWohKiACIChBAXRqLwEAITEgKEEBaiEoIAIgJ0EBdGovAQAhMiAnQQFqIScgAiApQQF0ai8BACEzIClBAWohKSAxIDJrICNsIDMgMGsgJGxqIDAgMWsgJWxqITQgMkEEdCA0QQhqQQR1aiE1IC5BAUYEQCAOIC9BAnRqIDU2AgAFIC5BAkYEQCAOIC9BAnRqKAIAITYgNkEIdCA1IDZrICZsakGAgCBqQRR1ITcFIDVBgBBqQQx1ITcLIDdBACA3QQBOGyE3IDdB/wEgN0GAAkgbITcgEyA3OgAAIBNBAWohEwsgL0EBaiIvIARIDQALBSAjICROICUgI05xBEAgHSAeaiAhaiAiaiEoIBwgHmogIWogImohKSAdIB9qICFqICJqISpBACEvA0AgAiAoQQF0ai8BACEwIChBAWohKCACIClBAXRqLwEAITEgKUEBaiEpIAIgJ0EBdGovAQAhMiAnQQFqIScgAiAqQQF0ai8BACEzICpBAWohKiAwIDFrICNsIDMgMGsgJGxqIDEgMmsgJWxqITQgMkEEdCA0QQhqQQR1aiE1IC5BAUYEQCAOIC9BAnRqIDU2AgAFIC5BAkYEQCAOIC9BAnRqKAIAITYgNkEIdCA1IDZrICZsakGAgCBqQRR1ITcFIDVBgBBqQQx1ITcLIDdBACA3QQBOGyE3IDdB/wEgN0GAAkgbITcgEyA3OgAAIBNBAWohEwsgL0EBaiIvIARIDQALBSAkICNOICMgJU5xBEAgHSAfaiAgaiAiaiEoIBwgH2ogIGogImohKSAdIB9qICFqICJqIStBACEvA0AgAiApQQF0ai8BACEwIClBAWohKSACIChBAXRqLwEAITEgKEEBaiEoIAIgJ0EBdGovAQAhMiAnQQFqIScgAiArQQF0ai8BACEzICtBAWohKyAxIDBrICNsIDAgMmsgJGxqIDMgMWsgJWxqITQgMkEEdCA0QQhqQQR1aiE1IC5BAUYEQCAOIC9BAnRqIDU2AgAFIC5BAkYEQCAOIC9BAnRqKAIAITYgNkEIdCA1IDZrICZsakGAgCBqQRR1ITcFIDVBgBBqQQx1ITcLIDdBACA3QQBOGyE3IDdB/wEgN0GAAkgbITcgEyA3OgAAIBNBAWohEwsgL0EBaiIvIARIDQALBSAkICVOICUgI05xBEAgHSAfaiAhaiAiaiEoIBwgH2ogIWogImohKSAcIB9qICBqICJqISpBACEvA0AgAiApQQF0ai8BACEwIClBAWohKSACICpBAXRqLwEAITEgKkEBaiEqIAIgJ0EBdGovAQAhMiAnQQFqIScgAiAoQQF0ai8BACEzIChBAWohKCAzIDBrICNsIDEgMmsgJGxqIDAgMWsgJWxqITQgMkEEdCA0QQhqQQR1aiE1IC5BAUYEQCAOIC9BAnRqIDU2AgAFIC5BAkYEQCAOIC9BAnRqKAIAITYgNkEIdCA1IDZrICZsakGAgCBqQRR1ITcFIDVBgBBqQQx1ITcLIDdBACA3QQBOGyE3IDdB/wEgN0GAAkgbITcgEyA3OgAAIBNBAWohEwsgL0EBaiIvIARIDQALBSAlICROICQgI05xBEAgHSAfaiAhaiAiaiEoIBwgH2ogIWogImohKSAcIB5qICFqICJqIStBACEvA0AgAiApQQF0ai8BACEwIClBAWohKSACICtBAXRqLwEAITEgK0EBaiErIAIgJ0EBdGovAQAhMiAnQQFqIScgAiAoQQF0ai8BACEzIChBAWohKCAzIDBrICNsIDAgMWsgJGxqIDEgMmsgJWxqITQgMkEEdCA0QQhqQQR1aiE1IC5BAUYEQCAOIC9BAnRqIDU2AgAFIC5BAkYEQCAOIC9BAnRqKAIAITYgNkEIdCA1IDZrICZsakGAgCBqQRR1ITcFIDVBgBBqQQx1ITcLIDdBACA3QQBOGyE3IDdB/wEgN0GAAkgbITcgEyA3OgAAIBNBAWohEwsgL0EBaiIvIARIDQALBUEAIS8DQCACICdBAXRqLwEAITIgJ0EBaiEnIDJBBHQhNSAuQQFGBEAgDiAvQQJ0aiA1NgIABSAuQQJGBEAgDiAvQQJ0aigCACE2IDZBCHQgNSA2ayAmbGpBgIAgakEUdSE3BSA1QYAQakEMdSE3CyA3QQAgN0EAThshNyA3Qf8BIDdBgAJIGyE3IBMgNzoAACATQQFqIRMLIC9BAWoiLyAESA0ACwsLCwsLCyAsRSAtcQRAICIgCGohIkEBISxBAiEuDAELDAELCyAQQQJGBEAgEyASLQAAOgAAIBNBAWohEyASQQFqIRIFIBBBAUYEQCATQf8BOgAAIBNBAWohEwsgEiAPaiESCyARQQFqIREMAAsLCw==")},123:t=>{"use strict";t.exports=function(t){if("undefined"!=typeof Buffer&&"function"==typeof Buffer.from)return new Uint8Array(Buffer.from(t,"base64"));if("function"==typeof atob){const e=atob(t),a=new Uint8Array(e.length);for(let t=0;t<e.length;t++)a[t]=e.charCodeAt(t);return a}throw new Error("No base64 decoder available (need Buffer or atob).")}("AGFzbQEAAAABFQFgEX9/f39/f39/f39/f39/f39/AAMCAQAFAwEAAQclAgZtZW1vcnkCABhpbnRlcnBfdGV0cmE0ZF9uQ2hfaW50MTYAAAqeEQGbEQEnfyAAIRIgASETAkADQCARIANODQEgEi8BACEUIBJBAmovAQAhFSASQQRqLwEAIRYgEkEGai8BACEXIBJBCGohEiAUIAlsIRggFSAJbCEZIBYgCWwhGiAXIAlsIRsgFEH//wNGBEAgDSEiQQAhJgUgGEENdiAIbCEiIBhB/z9xISYLICZBAEchLSAVQf//A0YEQCAKIRwgCiEdQQAhIwUgGUENdiAHbCEcIBwgB2ohHSAZQf8/cSEjCyAWQf//A0YEQCALIR4gCyEfQQAhJAUgGkENdiAGbCEeIB4gBmohHyAaQf8/cSEkCyAXQf//A0YEQCAMISAgDCEhQQAhJQUgG0ENdiAFbCEgICAgBWohISAbQf8/cSElC0EAISwgLSEuAkADQCAcIB5qICBqICJqIScgIyAkTiAkICVOcQRAIB0gHmogIGogImohKCAdIB9qICBqICJqISkgHSAfaiAhaiAiaiErQQAhLwNAIAIgKEEBdGovAQAhMCAoQQFqISggAiApQQF0ai8BACExIClBAWohKSACICdBAXRqLwEAITIgJ0EBaiEnIAIgK0EBdGovAQAhMyArQQFqISsgMCAyayAjbCAxIDBrICRsaiAzIDFrICVsaiE0IDIgNEGAIGpBDXVqITUgLkEBRgRAIA4gL0ECdGogNTYCAAUgLkECRgRAIA4gL0ECdGooAgAhNiA2IDUgNmsgJmxBgCBqQQ11aiE3BSA1ITcLIBMgNzsBACATQQJqIRMLIC9BAWoiLyAESA0ACwUgIyAlTiAlICROcQRAIB0gHmogIGogImohKCAdIB9qICFqICJqISkgHSAeaiAhaiAiaiEqQQAhLwNAIAIgKkEBdGovAQAhMCAqQQFqISogAiAoQQF0ai8BACExIChBAWohKCACICdBAXRqLwEAITIgJ0EBaiEnIAIgKUEBdGovAQAhMyApQQFqISkgMSAyayAjbCAzIDBrICRsaiAwIDFrICVsaiE0IDIgNEGAIGpBDXVqITUgLkEBRgRAIA4gL0ECdGogNTYCAAUgLkECRgRAIA4gL0ECdGooAgAhNiA2IDUgNmsgJmxBgCBqQQ11aiE3BSA1ITcLIBMgNzsBACATQQJqIRMLIC9BAWoiLyAESA0ACwUgIyAkTiAlICNOcQRAIB0gHmogIWogImohKCAcIB5qICFqICJqISkgHSAfaiAhaiAiaiEqQQAhLwNAIAIgKEEBdGovAQAhMCAoQQFqISggAiApQQF0ai8BACExIClBAWohKSACICdBAXRqLwEAITIgJ0EBaiEnIAIgKkEBdGovAQAhMyAqQQFqISogMCAxayAjbCAzIDBrICRsaiAxIDJrICVsaiE0IDIgNEGAIGpBDXVqITUgLkEBRgRAIA4gL0ECdGogNTYCAAUgLkECRgRAIA4gL0ECdGooAgAhNiA2IDUgNmsgJmxBgCBqQQ11aiE3BSA1ITcLIBMgNzsBACATQQJqIRMLIC9BAWoiLyAESA0ACwUgJCAjTiAjICVOcQRAIB0gH2ogIGogImohKCAcIB9qICBqICJqISkgHSAfaiAhaiAiaiErQQAhLwNAIAIgKUEBdGovAQAhMCApQQFqISkgAiAoQQF0ai8BACExIChBAWohKCACICdBAXRqLwEAITIgJ0EBaiEnIAIgK0EBdGovAQAhMyArQQFqISsgMSAwayAjbCAwIDJrICRsaiAzIDFrICVsaiE0IDIgNEGAIGpBDXVqITUgLkEBRgRAIA4gL0ECdGogNTYCAAUgLkECRgRAIA4gL0ECdGooAgAhNiA2IDUgNmsgJmxBgCBqQQ11aiE3BSA1ITcLIBMgNzsBACATQQJqIRMLIC9BAWoiLyAESA0ACwUgJCAlTiAlICNOcQRAIB0gH2ogIWogImohKCAcIB9qICFqICJqISkgHCAfaiAgaiAiaiEqQQAhLwNAIAIgKUEBdGovAQAhMCApQQFqISkgAiAqQQF0ai8BACExICpBAWohKiACICdBAXRqLwEAITIgJ0EBaiEnIAIgKEEBdGovAQAhMyAoQQFqISggMyAwayAjbCAxIDJrICRsaiAwIDFrICVsaiE0IDIgNEGAIGpBDXVqITUgLkEBRgRAIA4gL0ECdGogNTYCAAUgLkECRgRAIA4gL0ECdGooAgAhNiA2IDUgNmsgJmxBgCBqQQ11aiE3BSA1ITcLIBMgNzsBACATQQJqIRMLIC9BAWoiLyAESA0ACwUgJSAkTiAkICNOcQRAIB0gH2ogIWogImohKCAcIB9qICFqICJqISkgHCAeaiAhaiAiaiErQQAhLwNAIAIgKUEBdGovAQAhMCApQQFqISkgAiArQQF0ai8BACExICtBAWohKyACICdBAXRqLwEAITIgJ0EBaiEnIAIgKEEBdGovAQAhMyAoQQFqISggMyAwayAjbCAwIDFrICRsaiAxIDJrICVsaiE0IDIgNEGAIGpBDXVqITUgLkEBRgRAIA4gL0ECdGogNTYCAAUgLkECRgRAIA4gL0ECdGooAgAhNiA2IDUgNmsgJmxBgCBqQQ11aiE3BSA1ITcLIBMgNzsBACATQQJqIRMLIC9BAWoiLyAESA0ACwVBACEvA0AgAiAnQQF0ai8BACEyICdBAWohJyAyITUgLkEBRgRAIA4gL0ECdGogNTYCAAUgLkECRgRAIA4gL0ECdGooAgAhNiA2IDUgNmsgJmxBgCBqQQ11aiE3BSA1ITcLIBMgNzsBACATQQJqIRMLIC9BAWoiLyAESA0ACwsLCwsLCyAsRSAtcQRAICIgCGohIkEBISxBAiEuDAELDAELCyAQQQJGBEAgEyASLwEAOwEAIBNBAmohEyASQQJqIRIFIBBBAUYEQCATQf//AzsBACATQQJqIRMLIBIgD0EBdGohEgsgEUEBaiERDAALCws=")},991:t=>{"use strict";t.exports=function(t){if("undefined"!=typeof Buffer&&"function"==typeof Buffer.from)return new Uint8Array(Buffer.from(t,"base64"));if("function"==typeof atob){const e=atob(t),a=new Uint8Array(e.length);for(let t=0;t<e.length;t++)a[t]=e.charCodeAt(t);return a}throw new Error("No base64 decoder available (need Buffer or atob).")}("AGFzbQEAAAABFQFgEX9/f39/f39/f39/f39/f39/AAMCAQAFAwEAAQcgAgZtZW1vcnkCABNpbnRlcnBfdGV0cmE0ZF9zaW1kAAAKgwwBgAwCHn8NeyAAIRIgASETIAQhFAJAA0AgESADTg0BIBItAAAhFSASLQABIRYgEi0AAiEXIBItAAMhGCASQQRqIRIgFSAJbCEZIBYgCWwhGiAXIAlsIRsgGCAJbCEcIBVB/wFGBEAgDSEjQQAhJwUgGUEQdiAIbCEjIBlBCHZB/wFxIScLICdBAEchKCAWQf8BRgRAIAohHSAKIR5BACEkBSAaQRB2IAdsIR0gHSAHaiEeIBpBCHZB/wFxISQLIBdB/wFGBEAgCyEfIAshIEEAISUFIBtBEHYgBmwhHyAfIAZqISAgG0EIdkH/AXEhJQsgGEH/AUYEQCAMISEgDCEiQQAhJgUgHEEQdiAFbCEhICEgBWohIiAcQQh2Qf8BcSEmCyAk/REhMyAl/REhNCAm/REhNSAn/REhNkEAISkCQANAIB0gH2ogIWogI2ohKiACICpBAXRq/V0AAP2pASExICQgJU4gJSAmTnEEQCAeIB9qICFqICNqISsgHiAgaiAhaiAjaiEsIB4gIGogImogI2ohLiACICtBAXRq/V0AAP2pASEvIAIgLEEBdGr9XQAA/akBITAgAiAuQQF0av1dAAD9qQEhMiAvIDH9sQEgM/21ASAwIC/9sQEgNP21Af2uASAyIDD9sQEgNf21Af2uASE3BSAkICZOICYgJU5xBEAgHiAfaiAhaiAjaiErIB4gIGogImogI2ohLCAeIB9qICJqICNqIS0gAiAtQQF0av1dAAD9qQEhLyACICtBAXRq/V0AAP2pASEwIAIgLEEBdGr9XQAA/akBITIgMCAx/bEBIDP9tQEgMiAv/bEBIDT9tQH9rgEgLyAw/bEBIDX9tQH9rgEhNwUgJCAlTiAmICROcQRAIB4gH2ogImogI2ohKyAdIB9qICJqICNqISwgHiAgaiAiaiAjaiEtIAIgK0EBdGr9XQAA/akBIS8gAiAsQQF0av1dAAD9qQEhMCACIC1BAXRq/V0AAP2pASEyIC8gMP2xASAz/bUBIDIgL/2xASA0/bUB/a4BIDAgMf2xASA1/bUB/a4BITcFICUgJE4gJCAmTnEEQCAeICBqICFqICNqISsgHSAgaiAhaiAjaiEsIB4gIGogImogI2ohLiACICxBAXRq/V0AAP2pASEvIAIgK0EBdGr9XQAA/akBITAgAiAuQQF0av1dAAD9qQEhMiAwIC/9sQEgM/21ASAvIDH9sQEgNP21Af2uASAyIDD9sQEgNf21Af2uASE3BSAlICZOICYgJE5xBEAgHiAgaiAiaiAjaiErIB0gIGogImogI2ohLCAdICBqICFqICNqIS0gAiAsQQF0av1dAAD9qQEhLyACIC1BAXRq/V0AAP2pASEwIAIgK0EBdGr9XQAA/akBITIgMiAv/bEBIDP9tQEgMCAx/bEBIDT9tQH9rgEgLyAw/bEBIDX9tQH9rgEhNwUgJiAlTiAlICROcQRAIB4gIGogImogI2ohKyAdICBqICJqICNqISwgHSAfaiAiaiAjaiEuIAIgLEEBdGr9XQAA/akBIS8gAiAuQQF0av1dAAD9qQEhMCACICtBAXRq/V0AAP2pASEyIDIgL/2xASAz/bUBIC8gMP2xASA0/bUB/a4BIDAgMf2xASA1/bUB/a4BITcF/QwAAAAAAAAAAAAAAAAAAAAAITcLCwsLCwsgMUEE/asBIDf9DAgAAAAIAAAACAAAAAgAAAD9rgFBBP2sAf2uASE4IClFIChxBEAgOCE5ICMgCGohI0EBISkMAQsMAQsLICgEQCA5QQj9qwEgOCA5/bEBIDb9tQH9rgH9DAAACAAAAAgAAAAIAAAACAD9rgFBFP2sASE6BSA4/QwACAAAAAgAAAAIAAAACAAA/a4BQQz9rAEhOgsgOiA6/YYBIDogOv2GAf1mITsgEyA7/VoAAAAgEyAUaiETIBAgD3IEQCAQQQJGBEAgEyASLQAAOgAAIBNBAWohEyASQQFqIRIFIBBBAUYEQCATQf8BOgAAIBNBAWohEwsgEiAPaiESCwsgEUEBaiERDAALCws=")},2:t=>{"use strict";t.exports=function(t){if("undefined"!=typeof Buffer&&"function"==typeof Buffer.from)return new Uint8Array(Buffer.from(t,"base64"));if("function"==typeof atob){const e=atob(t),a=new Uint8Array(e.length);for(let t=0;t<e.length;t++)a[t]=e.charCodeAt(t);return a}throw new Error("No base64 decoder available (need Buffer or atob).")}("AGFzbQEAAAABFQFgEX9/f39/f39/f39/f39/f39/AAMCAQAFAwEAAQcmAgZtZW1vcnkCABlpbnRlcnBfdGV0cmE0ZF9zaW1kX2ludDE2AAAK1QsB0gsCHn8NeyAAIRIgASETIARBAXQhFAJAA0AgESADTg0BIBIvAQAhFSASLwECIRYgEi8BBCEXIBIvAQYhGCASQQhqIRIgFSAJbCEZIBYgCWwhGiAXIAlsIRsgGCAJbCEcIBVB//8DRgRAIA0hI0EAIScFIBlBDXYgCGwhIyAZQf8/cSEnCyAnQQBHISggFkH//wNGBEAgCiEdIAohHkEAISQFIBpBDXYgB2whHSAdIAdqIR4gGkH/P3EhJAsgF0H//wNGBEAgCyEfIAshIEEAISUFIBtBDXYgBmwhHyAfIAZqISAgG0H/P3EhJQsgGEH//wNGBEAgDCEhIAwhIkEAISYFIBxBDXYgBWwhISAhIAVqISIgHEH/P3EhJgsgJP0RITMgJf0RITQgJv0RITUgJ/0RITZBACEpAkADQCAdIB9qICFqICNqISogAiAqQQF0av1dAAD9qQEhMSAkICVOICUgJk5xBEAgHiAfaiAhaiAjaiErIB4gIGogIWogI2ohLCAeICBqICJqICNqIS4gAiArQQF0av1dAAD9qQEhLyACICxBAXRq/V0AAP2pASEwIAIgLkEBdGr9XQAA/akBITIgLyAx/bEBIDP9tQEgMCAv/bEBIDT9tQH9rgEgMiAw/bEBIDX9tQH9rgEhNwUgJCAmTiAmICVOcQRAIB4gH2ogIWogI2ohKyAeICBqICJqICNqISwgHiAfaiAiaiAjaiEtIAIgLUEBdGr9XQAA/akBIS8gAiArQQF0av1dAAD9qQEhMCACICxBAXRq/V0AAP2pASEyIDAgMf2xASAz/bUBIDIgL/2xASA0/bUB/a4BIC8gMP2xASA1/bUB/a4BITcFICQgJU4gJiAkTnEEQCAeIB9qICJqICNqISsgHSAfaiAiaiAjaiEsIB4gIGogImogI2ohLSACICtBAXRq/V0AAP2pASEvIAIgLEEBdGr9XQAA/akBITAgAiAtQQF0av1dAAD9qQEhMiAvIDD9sQEgM/21ASAyIC/9sQEgNP21Af2uASAwIDH9sQEgNf21Af2uASE3BSAlICROICQgJk5xBEAgHiAgaiAhaiAjaiErIB0gIGogIWogI2ohLCAeICBqICJqICNqIS4gAiAsQQF0av1dAAD9qQEhLyACICtBAXRq/V0AAP2pASEwIAIgLkEBdGr9XQAA/akBITIgMCAv/bEBIDP9tQEgLyAx/bEBIDT9tQH9rgEgMiAw/bEBIDX9tQH9rgEhNwUgJSAmTiAmICROcQRAIB4gIGogImogI2ohKyAdICBqICJqICNqISwgHSAgaiAhaiAjaiEtIAIgLEEBdGr9XQAA/akBIS8gAiAtQQF0av1dAAD9qQEhMCACICtBAXRq/V0AAP2pASEyIDIgL/2xASAz/bUBIDAgMf2xASA0/bUB/a4BIC8gMP2xASA1/bUB/a4BITcFICYgJU4gJSAkTnEEQCAeICBqICJqICNqISsgHSAgaiAiaiAjaiEsIB0gH2ogImogI2ohLiACICxBAXRq/V0AAP2pASEvIAIgLkEBdGr9XQAA/akBITAgAiArQQF0av1dAAD9qQEhMiAyIC/9sQEgM/21ASAvIDD9sQEgNP21Af2uASAwIDH9sQEgNf21Af2uASE3Bf0MAAAAAAAAAAAAAAAAAAAAACE3CwsLCwsLIDEgN/0MABAAAAAQAAAAEAAAABAAAP2uAUEN/awB/a4BITggKUUgKHEEQCA4ITkgIyAIaiEjQQEhKQwBCwwBCwsgKARAIDkgOCA5/bEBIDb9tQH9DAAQAAAAEAAAABAAAAAQAAD9rgFBDf2sAf2uASE6BSA4IToLIDogOv2GASE7IBMgO/1bAAAAIBMgFGohEyAQIA9yBEAgEEECRgRAIBMgEi8BADsBACATQQJqIRMgEkECaiESBSAQQQFGBEAgE0H//wM7AQAgE0ECaiETCyASIA9BAXRqIRILCyARQQFqIREMAAsLCw==")},503:(t,e,a)=>{"use strict";var i=a(980),r=a(382),n=a(156),s=a(759),o=a(148),h=a(123),u=a(991),l=a(2);function m(){return"undefined"!=typeof WebAssembly&&"function"==typeof WebAssembly.Module&&"function"==typeof WebAssembly.Instance}function c(t,e,a){if(t&&t[e])return t[e];var i=new WebAssembly.Module(a);return t&&(t[e]=i),i}function A(t,e,a,i,r){this.exports=t,this.memory=t.memory,this.kernel=e,this.isSimd=!!a,this.module=i||null,this.kernelName=r||"",this.shrinkRatio=0,this.maxMemory=0,this.lutPtr=0,this.inputPtr=0,this.outputPtr=0,this.lutBytes=0,this.boundIntLut=null,this.reservedCap=0,this.dispatchCount=0}function g(t,e,a,i,r){this.exports=t,this.memory=t.memory,this.kernel=e,this.isSimd=!!a,this.module=i||null,this.kernelName=r||"",this.shrinkRatio=0,this.maxMemory=0,this.lutPtr=0,this.inputPtr=0,this.outputPtr=0,this.lutBytes=0,this.boundIntLut=null,this.reservedCap=0,this.dispatchCount=0}function d(t,e,a,i,r){this.exports=t,this.memory=t.memory,this.kernel=e,this.isSimd=!!a,this.module=i||null,this.kernelName=r||"",this.shrinkRatio=0,this.maxMemory=0,this.lutPtr=0,this.inputPtr=0,this.outputPtr=0,this.scratchPtr=0,this.lutBytes=0,this.boundIntLut=null,this.reservedCap=0,this.dispatchCount=0}function p(t,e,a,i,r){this.exports=t,this.memory=t.memory,this.kernel=e,this.isSimd=!!a,this.module=i||null,this.kernelName=r||"",this.shrinkRatio=0,this.maxMemory=0,this.lutPtr=0,this.inputPtr=0,this.outputPtr=0,this.scratchPtr=0,this.lutBytes=0,this.boundIntLut=null,this.reservedCap=0,this.dispatchCount=0}A.prototype.compactIfNeeded=function(){var t=this.memory.buffer.byteLength;(this.maxMemory>0&&t>this.maxMemory||this.shrinkRatio>0&&(t/65536|0)>Math.ceil((this.lutBytes+this.reservedCap)/65536)*this.shrinkRatio)&&this.compact()},A.prototype.compact=function(){if(this.module){var t=new WebAssembly.Instance(this.module,{});this.exports=t.exports,this.memory=t.exports.memory,this.kernel=t.exports[this.kernelName],this.boundIntLut=null,this.lutBytes=0,this.reservedCap=0,this.lutPtr=0,this.inputPtr=0,this.outputPtr=0}},A.prototype.bind=function(t,e,a,i,r){void 0===i&&(i=3),void 0===r&&(r=a);var n=t.CLUT.byteLength,s=e*i,o=e*r,h=0+(n+7&-8),u=h+(s+7&-8),l=u+o+(this.isSimd?4:0),m=Math.ceil(l/65536),c=this.memory.buffer.byteLength/65536|0;c<m&&this.memory.grow(m-c),(this.boundIntLut!==t||this.lutBytes!==n)&&(new Uint16Array(this.memory.buffer).set(t.CLUT,0),this.boundIntLut=t,this.lutBytes=n),this.lutPtr=0,this.inputPtr=h,this.outputPtr=u,this.reservedCap=s+o},A.prototype.runTetra3D=function(t,e,a,i,r,n,s,o,h,u){var l=o?1:0,m=0;u?m=2:h&&(m=1);var c=r*(o?4:3),A=r*(h?s+1:s),g=this.memory.buffer,d=new Uint8Array(g);if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)d.set(t.subarray(e,e+c),this.inputPtr);else for(var p=0;p<c;p++)d[this.inputPtr+p]=255&t[e+p];this.kernel(this.inputPtr,this.outputPtr,this.lutPtr,r,s,n.go0,n.go1,n.go2,n.gridPointsScale_fixed,n.maxX,n.maxY,n.maxZ,l,m),this.dispatchCount++;var C=new Uint8Array(this.memory.buffer,this.outputPtr,A);if(a instanceof Uint8Array||a instanceof Uint8ClampedArray)a.set(C,i);else for(var _=0;_<A;_++)a[i+_]=C[_]},g.prototype.compact=A.prototype.compact,g.prototype.compactIfNeeded=A.prototype.compactIfNeeded,g.prototype.bind=function(t,e,a,i,r){void 0===i&&(i=6),void 0===r&&(r=2*a);var n=t.CLUT.byteLength,s=e*i,o=e*r,h=0+(n+7&-8),u=h+(s+7&-8),l=u+o+(this.isSimd?4:0),m=Math.ceil(l/65536),c=this.memory.buffer.byteLength/65536|0;c<m&&this.memory.grow(m-c),(this.boundIntLut!==t||this.lutBytes!==n)&&(new Uint16Array(this.memory.buffer).set(t.CLUT,0),this.boundIntLut=t,this.lutBytes=n),this.lutPtr=0,this.inputPtr=h,this.outputPtr=u,this.reservedCap=s+o},g.prototype.runTetra3D=function(t,e,a,i,r,n,s,o,h,u){var l=o?1:0,m=0;u?m=2:h&&(m=1);var c=o?4:3,A=h?s+1:s,g=this.memory.buffer;if(t instanceof Uint16Array)new Uint16Array(g).set(t.subarray(e,e+r*c),this.inputPtr>>1);else for(var d=new Uint8Array(g),p=0;p<r*c;p++){var C=65535&t[e+p];d[this.inputPtr+2*p]=255&C,d[this.inputPtr+2*p+1]=C>>>8&255}this.kernel(this.inputPtr,this.outputPtr,this.lutPtr,r,s,n.go0,n.go1,n.go2,n.gridPointsScale_fixed_u16,n.maxX,n.maxY,n.maxZ,l,m),this.dispatchCount++;var _=new Uint16Array(this.memory.buffer,this.outputPtr,r*A);if(a instanceof Uint16Array)a.set(_,i);else for(var I=0;I<r*A;I++)a[i+I]=_[I]},d.prototype.compact=function(){if(this.module){var t=new WebAssembly.Instance(this.module,{});this.exports=t.exports,this.memory=t.exports.memory,this.kernel=t.exports[this.kernelName],this.boundIntLut=null,this.lutBytes=0,this.reservedCap=0,this.lutPtr=0,this.inputPtr=0,this.outputPtr=0,this.scratchPtr=0}},d.prototype.compactIfNeeded=A.prototype.compactIfNeeded,d.SCRATCH_BYTES=64,d.prototype.bind=function(t,e,a,i,r){void 0===i&&(i=4),void 0===r&&(r=a);var n=t.CLUT.byteLength,s=e*i,o=e*r,h=d.SCRATCH_BYTES,u=0+(n+7&-8),l=u+(s+7&-8),m=l+(o+(this.isSimd?4:0)+3&-4),c=m+h,A=Math.ceil(c/65536),g=this.memory.buffer.byteLength/65536|0;g<A&&this.memory.grow(A-g),(this.boundIntLut!==t||this.lutBytes!==n)&&(new Uint16Array(this.memory.buffer).set(t.CLUT,0),this.boundIntLut=t,this.lutBytes=n),this.lutPtr=0,this.inputPtr=u,this.outputPtr=l,this.scratchPtr=m,this.reservedCap=s+o},d.prototype.runTetra4D=function(t,e,a,i,r,n,s,o,h,u){var l=o?1:0,m=0;u?m=2:h&&(m=1);var c=r*(o?5:4),A=r*(h?s+1:s),g=this.memory.buffer,d=new Uint8Array(g);if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)d.set(t.subarray(e,e+c),this.inputPtr);else for(var p=0;p<c;p++)d[this.inputPtr+p]=255&t[e+p];this.kernel(this.inputPtr,this.outputPtr,this.lutPtr,r,s,n.go0,n.go1,n.go2,n.go3,n.gridPointsScale_fixed,n.maxX,n.maxY,n.maxZ,n.maxK,this.scratchPtr,l,m),this.dispatchCount++;var C=new Uint8Array(this.memory.buffer,this.outputPtr,A);if(a instanceof Uint8Array||a instanceof Uint8ClampedArray)a.set(C,i);else for(var _=0;_<A;_++)a[i+_]=C[_]},p.prototype.compact=d.prototype.compact,p.prototype.compactIfNeeded=A.prototype.compactIfNeeded,p.SCRATCH_BYTES=64,p.prototype.bind=function(t,e,a,i,r){void 0===i&&(i=8),void 0===r&&(r=2*a);var n=t.CLUT.byteLength,s=e*i,o=e*r,h=p.SCRATCH_BYTES,u=0+(n+7&-8),l=u+(s+7&-8),m=l+(o+(this.isSimd?4:0)+3&-4),c=m+h,A=Math.ceil(c/65536),g=this.memory.buffer.byteLength/65536|0;g<A&&this.memory.grow(A-g),(this.boundIntLut!==t||this.lutBytes!==n)&&(new Uint16Array(this.memory.buffer).set(t.CLUT,0),this.boundIntLut=t,this.lutBytes=n),this.lutPtr=0,this.inputPtr=u,this.outputPtr=l,this.scratchPtr=m,this.reservedCap=s+o},p.prototype.runTetra4D=function(t,e,a,i,r,n,s,o,h,u){var l=o?1:0,m=0;u?m=2:h&&(m=1);var c=o?5:4,A=h?s+1:s,g=this.memory.buffer;if(t instanceof Uint16Array)new Uint16Array(g).set(t.subarray(e,e+r*c),this.inputPtr>>1);else for(var d=new Uint8Array(g),p=0;p<r*c;p++){var C=65535&t[e+p];d[this.inputPtr+2*p]=255&C,d[this.inputPtr+2*p+1]=C>>>8&255}this.kernel(this.inputPtr,this.outputPtr,this.lutPtr,r,s,n.go0,n.go1,n.go2,n.go3,n.gridPointsScale_fixed_u16,n.maxX,n.maxY,n.maxZ,n.maxK,this.scratchPtr,l,m),this.dispatchCount++;var _=new Uint16Array(this.memory.buffer,this.outputPtr,r*A);if(a instanceof Uint16Array)a.set(_,i);else for(var I=0;I<r*A;I++)a[i+I]=_[I]},t.exports={hasWebAssembly:m,createTetra3DState:function(t){if(!m())return null;var e,a,r=t&&t.wasmCache;try{e=c(r,"__jsColorEngine_tetra3d_nch_module__",i),a=new WebAssembly.Instance(e,{}).exports}catch(t){return null}return"function"==typeof a.interp_tetra3d_nCh&&a.memory?new A(a,a.interp_tetra3d_nCh,!1,e,"interp_tetra3d_nCh"):null},createTetra3DInt16State:function(t){if(!m())return null;var e,a,i=t&&t.wasmCache;try{e=c(i,"__jsColorEngine_tetra3d_nch_int16_module__",r),a=new WebAssembly.Instance(e,{}).exports}catch(t){return null}return"function"==typeof a.interp_tetra3d_nCh_int16&&a.memory?new g(a,a.interp_tetra3d_nCh_int16,!1,e,"interp_tetra3d_nCh_int16"):null},createTetra3DSimdState:function(t){if(!m())return null;var e,a,i=t&&t.wasmCache;try{e=c(i,"__jsColorEngine_tetra3d_simd_module__",n),a=new WebAssembly.Instance(e,{}).exports}catch(t){return null}return"function"==typeof a.interp_tetra3d_simd&&a.memory?new A(a,a.interp_tetra3d_simd,!0,e,"interp_tetra3d_simd"):null},createTetra3DInt16SimdState:function(t){if(!m())return null;var e,a,i=t&&t.wasmCache;try{e=c(i,"__jsColorEngine_tetra3d_simd_int16_module__",s),a=new WebAssembly.Instance(e,{}).exports}catch(t){return null}return"function"==typeof a.interp_tetra3d_simd_int16&&a.memory?new g(a,a.interp_tetra3d_simd_int16,!0,e,"interp_tetra3d_simd_int16"):null},createTetra4DState:function(t){if(!m())return null;var e,a,i=t&&t.wasmCache;try{e=c(i,"__jsColorEngine_tetra4d_nch_module__",o),a=new WebAssembly.Instance(e,{}).exports}catch(t){return null}return"function"==typeof a.interp_tetra4d_nCh&&a.memory?new d(a,a.interp_tetra4d_nCh,!1,e,"interp_tetra4d_nCh"):null},createTetra4DInt16State:function(t){if(!m())return null;var e,a,i=t&&t.wasmCache;try{e=c(i,"__jsColorEngine_tetra4d_nch_int16_module__",h),a=new WebAssembly.Instance(e,{}).exports}catch(t){return null}return"function"==typeof a.interp_tetra4d_nCh_int16&&a.memory?new p(a,a.interp_tetra4d_nCh_int16,!1,e,"interp_tetra4d_nCh_int16"):null},createTetra4DSimdState:function(t){if(!m())return null;var e,a,i=t&&t.wasmCache;try{e=c(i,"__jsColorEngine_tetra4d_simd_module__",u),a=new WebAssembly.Instance(e,{}).exports}catch(t){return null}return"function"==typeof a.interp_tetra4d_simd&&a.memory?new d(a,a.interp_tetra4d_simd,!0,e,"interp_tetra4d_simd"):null},createTetra4DInt16SimdState:function(t){if(!m())return null;var e,a,i=t&&t.wasmCache;try{e=c(i,"__jsColorEngine_tetra4d_simd_int16_module__",l),a=new WebAssembly.Instance(e,{}).exports}catch(t){return null}return"function"==typeof a.interp_tetra4d_simd_int16&&a.memory?new p(a,a.interp_tetra4d_simd_int16,!0,e,"interp_tetra4d_simd_int16"):null}}}},e={},a=function a(i){var r=e[i];if(void 0!==r)return r.exports;var n=e[i]={exports:{}};return t[i](n,n.exports,a),n.exports}(660);jsColorEngine=a})();