@file-viewer/assets-design 3.0.1 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@file-viewer/assets-design",
3
- "version": "3.0.1",
3
+ "version": "3.0.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Independent self-hosted Worker and WebAssembly runtime for Adobe design previews.",
@@ -21,7 +21,7 @@
21
21
  "file-viewer-assets-design": "./bin/install.mjs"
22
22
  },
23
23
  "dependencies": {
24
- "@file-viewer/asset-installer": "3.0.1"
24
+ "@file-viewer/asset-installer": "3.0.3"
25
25
  },
26
26
  "engines": {
27
27
  "node": ">=20"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "packageName": "@file-viewer/assets-design",
4
- "packageVersion": "3.0.1",
4
+ "packageVersion": "3.0.3",
5
5
  "copyGroups": [
6
6
  "adobe-animate-xfl-design",
7
7
  "adobe-palette-design",
@@ -8,4 +8,4 @@ var bd=Object.create;var ss=Object.defineProperty;var yd=Object.getOwnPropertyDe
8
8
  `),p(e);return n.slice(0,i)}});var fc=oe(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.decodeEngineData=p0;co.encodeEngineData=m0;var rc={name:"MyriadPro-Regular",script:0,type:0,synthetic:0},ao={justification:"left",firstLineIndent:0,startIndent:0,endIndent:0,spaceBefore:0,spaceAfter:0,autoHyphenate:!0,hyphenatedWordSize:6,preHyphen:2,postHyphen:2,consecutiveHyphens:8,zone:36,wordSpacing:[.8,1,1.33],letterSpacing:[0,0,0],glyphSpacing:[1,1,1],autoLeading:1.2,leadingType:0,hanging:!1,burasagari:!1,kinsokuOrder:0,everyLineComposer:!1},l0={font:rc,fontSize:12,fauxBold:!1,fauxItalic:!1,autoLeading:!0,leading:0,horizontalScale:1,verticalScale:1,tracking:0,autoKerning:!0,kerning:0,baselineShift:0,fontCaps:0,fontBaseline:0,underline:!1,strikethrough:!1,ligatures:!0,dLigatures:!1,baselineDirection:2,tsume:0,styleRunAlignment:2,language:0,noBreak:!1,fillColor:{r:0,g:0,b:0},strokeColor:{r:0,g:0,b:0},fillFlag:!0,strokeFlag:!1,fillFirst:!0,yUnderline:1,outlineWidth:1,characterDirection:0,hindiNumbers:!1,kashida:1,diacriticPos:2},c0={isOn:!1,show:!1,size:18,leading:22,color:{r:0,g:0,b:255},leadingFillColor:{r:0,g:0,b:255},alignLineHeightToGridFlags:!1},Ur=["justification","firstLineIndent","startIndent","endIndent","spaceBefore","spaceAfter","autoHyphenate","hyphenatedWordSize","preHyphen","postHyphen","consecutiveHyphens","zone","wordSpacing","letterSpacing","glyphSpacing","autoLeading","leadingType","hanging","burasagari","kinsokuOrder","everyLineComposer"],Rr=["font","fontSize","fauxBold","fauxItalic","autoLeading","leading","horizontalScale","verticalScale","tracking","autoKerning","kerning","baselineShift","fontCaps","fontBaseline","underline","strikethrough","ligatures","dLigatures","baselineDirection","tsume","styleRunAlignment","language","noBreak","fillColor","strokeColor","fillFlag","strokeFlag","fillFirst","yUnderline","outlineWidth","characterDirection","hindiNumbers","kashida","diacriticPos"],sc=["none","crisp","strong","smooth","sharp"],ac=["left","right","center","justify-left","justify-right","justify-center","justify-all"];function lc(e){return e.substring(0,1).toUpperCase()+e.substring(1)}function d0(e){let t=e.Values;switch(e.Type){case 0:return{k:t[1]*255};case 1:return t[0]===1?{r:t[1]*255,g:t[2]*255,b:t[3]*255}:{r:t[1]*255,g:t[2]*255,b:t[3]*255,a:t[0]*255};case 2:return{c:t[1]*255,m:t[2]*255,y:t[3]*255,k:t[4]*255};default:throw new Error("Unknown color type in text layer")}}function Br(e){if(e){if("r"in e)return{Type:1,Values:["a"in e?e.a/255:1,e.r/255,e.g/255,e.b/255]};if("c"in e)return{Type:2,Values:[1,e.c/255,e.m/255,e.y/255,e.k/255]};if("k"in e)return{Type:0,Values:[1,e.k/255]};throw new Error("Invalid color type in text layer")}else return{Type:1,Values:[0,0,0,0]}}function nc(e,t){if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function ic(e,t){if(!e||!t)return!1;for(let n of Object.keys(e))if(e[n]!==t[n])return!1;for(let n of Object.keys(t))if(e[n]!==t[n])return!1;return!0}function f0(e,t){for(let n=0;n<e.length;n++)if(e[n].name===t.name)return n;return e.push(t),e.length-1}function cc(e,t,n){let i={};for(let o of t){let r=lc(o);e[r]!==void 0&&(o==="justification"?i[o]=ac[e[r]]:o==="font"?i[o]=n[e[r]]:o==="fillColor"||o==="strokeColor"?i[o]=d0(e[r]):i[o]=e[r])}return i}function dc(e,t,n){var i;let o={};for(let r of t){let s=lc(r);e[r]!==void 0&&(r==="justification"?o[s]=ac.indexOf((i=e[r])!==null&&i!==void 0?i:"left"):r==="font"?o[s]=f0(n,e[r]):r==="fillColor"||r==="strokeColor"?o[s]=Br(e[r]):o[s]=e[r])}return o}function u0(e,t){return cc(e,Ur,t)}function h0(e,t){return cc(e,Rr,t)}function lo(e,t){return dc(e,Ur,t)}function Lr(e,t){return dc(e,Rr,t)}function oc(e,t,n){if(t.length){for(let i of n){let o=t[0].style[i];if(o!==void 0){let s=!1;Array.isArray(o)?s=t.every(a=>nc(a.style[i],o)):typeof o=="object"?s=t.every(a=>ic(a.style[i],o)):s=t.every(a=>a.style[i]===o),s&&(e[i]=o)}if(e[i]!==void 0)for(let s of t){let a=!1;Array.isArray(o)?a=nc(s.style[i],o):typeof o=="object"?a=ic(s.style[i],o):a=s.style[i]===o,a&&delete s.style[i]}}t.every(i=>Object.keys(i.style).length===0)&&(t.length=0)}}function p0(e){var t,n,i,o,r,s;let a=e.EngineDict,l=e.ResourceDict,c=l.FontSet.map(m=>({name:m.Name,script:m.Script,type:m.FontType,synthetic:m.Synthetic})),d=a.Editor.Text.replace(/\r/g,`
9
9
  `),u=0;for(;/\n$/.test(d);)d=d.substring(0,d.length-1),u++;let f={text:d,antiAlias:(t=sc[a.AntiAlias])!==null&&t!==void 0?t:"smooth",useFractionalGlyphWidths:!!a.UseFractionalGlyphWidths,superscriptSize:l.SuperscriptSize,superscriptPosition:l.SuperscriptPosition,subscriptSize:l.SubscriptSize,subscriptPosition:l.SubscriptPosition,smallCapSize:l.SmallCapSize},h=(s=(r=(o=(i=(n=a.Rendered)===null||n===void 0?void 0:n.Shapes)===null||i===void 0?void 0:i.Children)===null||o===void 0?void 0:o[0])===null||r===void 0?void 0:r.Cookie)===null||s===void 0?void 0:s.Photoshop;h&&(f.shapeType=h.ShapeType===1?"box":"point",h.PointBase&&(f.pointBase=h.PointBase),h.BoxBounds&&(f.boxBounds=h.BoxBounds));let p=a.ParagraphRun;f.paragraphStyle={},f.paragraphStyleRuns=[];for(let m=0;m<p.RunArray.length;m++){let g=p.RunArray[m],v=p.RunLengthArray[m],x=u0(g.ParagraphSheet.Properties,c);f.paragraphStyleRuns.push({length:v,style:x})}for(let m=u;f.paragraphStyleRuns.length&&m>0;m--)--f.paragraphStyleRuns[f.paragraphStyleRuns.length-1].length===0&&f.paragraphStyleRuns.pop();oc(f.paragraphStyle,f.paragraphStyleRuns,Ur),f.paragraphStyleRuns.length||delete f.paragraphStyleRuns;let S=a.StyleRun;f.style={},f.styleRuns=[];for(let m=0;m<S.RunArray.length;m++){let g=S.RunLengthArray[m],v=h0(S.RunArray[m].StyleSheet.StyleSheetData,c);v.font||(v.font=c[0]),f.styleRuns.push({length:g,style:v})}for(let m=u;f.styleRuns.length&&m>0;m--)--f.styleRuns[f.styleRuns.length-1].length===0&&f.styleRuns.pop();return oc(f.style,f.styleRuns,Rr),f.styleRuns.length||delete f.styleRuns,f}function m0(e){var t,n,i,o,r,s,a,l,c,d,u,f;let h=`${(e.text||"").replace(/\r?\n/g,"\r")}\r`,p=[{name:"AdobeInvisFont",script:0,type:0,synthetic:0}],S=((t=e.style)===null||t===void 0?void 0:t.font)||((i=(n=e.styleRuns)===null||n===void 0?void 0:n.find(W=>W.style.font))===null||i===void 0?void 0:i.style.font)||rc,m=[],g=[],v=e.paragraphStyleRuns;if(v&&v.length){let W=h.length;for(let te of v){let ne=Math.min(te.length,W);W-=ne,ne&&(W===1&&te===v[v.length-1]&&(ne++,W--),g.push(ne),m.push({ParagraphSheet:{DefaultStyleSheet:0,Properties:lo(Object.assign(Object.assign(Object.assign({},ao),e.paragraphStyle),te.style),p)},Adjustments:{Axis:[1,0,1],XY:[0,0]}}))}W&&(g.push(W),m.push({ParagraphSheet:{DefaultStyleSheet:0,Properties:lo(Object.assign(Object.assign({},ao),e.paragraphStyle),p)},Adjustments:{Axis:[1,0,1],XY:[0,0]}}))}else for(let W=0,te=0;W<h.length;W++)h.charCodeAt(W)===13&&(g.push(W-te+1),m.push({ParagraphSheet:{DefaultStyleSheet:0,Properties:lo(Object.assign(Object.assign({},ao),e.paragraphStyle),p)},Adjustments:{Axis:[1,0,1],XY:[0,0]}}),te=W+1);let x=Lr(Object.assign(Object.assign({},l0),{font:S}),p),_=e.styleRuns||[{length:h.length,style:e.style||{}}],I=[],P=[],k=h.length;for(let W of _){let te=Math.min(W.length,k);k-=te,te&&(k===1&&W===_[_.length-1]&&(te++,k--),P.push(te),I.push({StyleSheet:{StyleSheetData:Lr(Object.assign(Object.assign({kerning:0,autoKerning:!0,fillColor:{r:0,g:0,b:0}},e.style),W.style),p)}}))}k&&_.length&&(P.push(k),I.push({StyleSheet:{StyleSheetData:Lr(Object.assign({kerning:0,autoKerning:!0,fillColor:{r:0,g:0,b:0}},e.style),p)}}));let E=Object.assign(Object.assign({},c0),e.gridInfo),O=e.orientation==="vertical"?2:0,U=e.orientation==="vertical"?1:0,M=e.shapeType==="box"?1:0,le={ShapeType:M};M===0?le.PointBase=e.pointBase||[0,0]:le.BoxBounds=e.boxBounds||[0,0,0,0],le.Base={ShapeType:M,TransformPoint0:[1,0],TransformPoint1:[0,1],TransformPoint2:[0,0]};let me={KinsokuSet:[{Name:"PhotoshopKinsokuHard",NoStart:"\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u30FC\u2015\u2019\u201D\uFF09\u3015\uFF3D\uFF5D\u3009\u300B\u300D\u300F\u3011\u30FD\u30FE\u309D\u309E\u3005\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u309B\u309C?!)]},.:;\u2103\u2109\xA2\uFF05\u2030",NoEnd:"\u2018\u201C\uFF08\u3014\uFF3B\uFF5B\u3008\u300A\u300C\u300E\u3010([{\uFFE5\uFF04\xA3\uFF20\xA7\u3012\uFF03",Keep:"\u2015\u2025",Hanging:"\u3001\u3002.,"},{Name:"PhotoshopKinsokuSoft",NoStart:"\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u2019\u201D\uFF09\u3015\uFF3D\uFF5D\u3009\u300B\u300D\u300F\u3011\u30FD\u30FE\u309D\u309E\u3005",NoEnd:"\u2018\u201C\uFF08\u3014\uFF3B\uFF5B\u3008\u300A\u300C\u300E\u3010",Keep:"\u2015\u2025",Hanging:"\u3001\u3002.,"}],MojiKumiSet:[{InternalName:"Photoshop6MojiKumiSet1"},{InternalName:"Photoshop6MojiKumiSet2"},{InternalName:"Photoshop6MojiKumiSet3"},{InternalName:"Photoshop6MojiKumiSet4"}],TheNormalStyleSheet:0,TheNormalParagraphSheet:0,ParagraphSheetSet:[{Name:"Normal RGB",DefaultStyleSheet:0,Properties:lo(Object.assign(Object.assign({},ao),e.paragraphStyle),p)}],StyleSheetSet:[{Name:"Normal RGB",StyleSheetData:x}],FontSet:p.map(W=>({Name:W.name,Script:W.script||0,FontType:W.type||0,Synthetic:W.synthetic||0})),SuperscriptSize:(o=e.superscriptSize)!==null&&o!==void 0?o:.583,SuperscriptPosition:(r=e.superscriptPosition)!==null&&r!==void 0?r:.333,SubscriptSize:(s=e.subscriptSize)!==null&&s!==void 0?s:.583,SubscriptPosition:(a=e.subscriptPosition)!==null&&a!==void 0?a:.333,SmallCapSize:(l=e.smallCapSize)!==null&&l!==void 0?l:.7};return{EngineDict:{Editor:{Text:h},ParagraphRun:{DefaultRunData:{ParagraphSheet:{DefaultStyleSheet:0,Properties:{}},Adjustments:{Axis:[1,0,1],XY:[0,0]}},RunArray:m,RunLengthArray:g,IsJoinable:1},StyleRun:{DefaultRunData:{StyleSheet:{StyleSheetData:{}}},RunArray:I,RunLengthArray:P,IsJoinable:2},GridInfo:{GridIsOn:!!E.isOn,ShowGrid:!!E.show,GridSize:(c=E.size)!==null&&c!==void 0?c:18,GridLeading:(d=E.leading)!==null&&d!==void 0?d:22,GridColor:Br(E.color),GridLeadingFillColor:Br(E.color),AlignLineHeightToGridFlags:!!E.alignLineHeightToGridFlags},AntiAlias:sc.indexOf((u=e.antiAlias)!==null&&u!==void 0?u:"sharp"),UseFractionalGlyphWidths:(f=e.useFractionalGlyphWidths)!==null&&f!==void 0?f:!0,Rendered:{Version:1,Shapes:{WritingDirection:O,Children:[{ShapeType:M,Procession:U,Lines:{WritingDirection:O,Children:[]},Cookie:{Photoshop:le}}]}}},ResourceDict:Object.assign({},me),DocumentResources:Object.assign({},me)}}});var hc=oe(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.decodeEngineData2=b0;var Mr={0:{uproot:!0,children:{0:{name:"Type"},1:{name:"Values"}}}},jr={0:{name:"Font"},1:{name:"FontSize"},2:{name:"FauxBold"},3:{name:"FauxItalic"},4:{name:"AutoLeading"},5:{name:"Leading"},6:{name:"HorizontalScale"},7:{name:"VerticalScale"},8:{name:"Tracking"},9:{name:"BaselineShift"},11:{name:"Kerning?"},12:{name:"FontCaps"},13:{name:"FontBaseline"},15:{name:"Strikethrough?"},16:{name:"Underline?"},18:{name:"Ligatures"},19:{name:"DLigatures"},23:{name:"Fractions"},24:{name:"Ordinals"},28:{name:"StylisticAlternates"},30:{name:"OldStyle?"},35:{name:"BaselineDirection"},38:{name:"Language"},52:{name:"NoBreak"},53:{name:"FillColor",children:Mr},54:{name:"StrokeColor",children:Mr},55:{children:{99:{uproot:!0}}},79:{children:Mr}},Tr={0:{name:"Justification"},1:{name:"FirstLineIndent"},2:{name:"StartIndent"},3:{name:"EndIndent"},4:{name:"SpaceBefore"},5:{name:"SpaceAfter"},7:{name:"AutoLeading"},9:{name:"AutoHyphenate"},10:{name:"HyphenatedWordSize"},11:{name:"PreHyphen"},12:{name:"PostHyphen"},13:{name:"ConsecutiveHyphens?"},14:{name:"Zone"},15:{name:"HypenateCapitalizedWords"},17:{name:"WordSpacing"},18:{name:"LetterSpacing"},19:{name:"GlyphSpacing"},32:{name:"StyleSheet",children:jr}},uc={name:"StyleSheetData",children:jr},g0={0:{name:"ResourceDict",children:{1:{name:"FontSet",children:{0:{uproot:!0,children:{0:{uproot:!0,children:{0:{uproot:!0,children:{0:{name:"Name"},2:{name:"FontType"}}}}}}}}},2:{name:"2",children:{}},3:{name:"MojiKumiSet",children:{0:{uproot:!0,children:{0:{uproot:!0,children:{0:{name:"InternalName"}}}}}}},4:{name:"KinsokuSet",children:{0:{uproot:!0,children:{0:{uproot:!0,children:{0:{name:"Name"},5:{uproot:!0,children:{0:{name:"NoStart"},1:{name:"NoEnd"},2:{name:"Keep"},3:{name:"Hanging"},4:{name:"Name"}}}}}}}}},5:{name:"StyleSheetSet",children:{0:{uproot:!0,children:{0:{uproot:!0,children:{0:{name:"Name"},6:uc}}}}}},6:{name:"ParagraphSheetSet",children:{0:{uproot:!0,children:{0:{uproot:!0,children:{0:{name:"Name"},5:{name:"Properties",children:Tr},6:{name:"DefaultStyleSheet"}}}}}}},8:{name:"TextFrameSet",children:{0:{uproot:!0,children:{0:{name:"path",children:{0:{name:"name"},1:{name:"bezierCurve",children:{0:{name:"controlPoints"}}},2:{name:"data",children:{0:{name:"type"},1:{name:"orientation"},2:{name:"frameMatrix"},4:{name:"4"},6:{name:"textRange"},7:{name:"rowGutter"},8:{name:"columnGutter"},9:{name:"9"},10:{name:"baselineAlignment",children:{0:{name:"flag"},1:{name:"min"}}},11:{name:"pathData",children:{1:{name:"1"},0:{name:"reversed"},2:{name:"2"},3:{name:"3"},4:{name:"spacing"},5:{name:"5"},6:{name:"6"},7:{name:"7"},18:{name:"18"}}},12:{name:"12"},13:{name:"13"}}},3:{name:"3"},97:{name:"uuid"}}}}}}},9:{name:"Predefined",children:{0:{children:{0:{uproot:!0}}},1:{children:{0:{uproot:!0}}}}}}},1:{name:"EngineDict",children:{0:{name:"0",children:{3:{name:"SuperscriptSize"},4:{name:"SuperscriptPosition"},5:{name:"SubscriptSize"},6:{name:"SubscriptPosition"},7:{name:"SmallCapSize"},8:{name:"UseFractionalGlyphWidths"},15:{children:{0:{uproot:!0}}}}},1:{name:"Editors?",children:{0:{name:"Editor",children:{0:{name:"Text"},5:{name:"ParagraphRun",children:{0:{name:"RunArray",children:{0:{name:"ParagraphSheet",children:{0:{uproot:!0,children:{0:{name:"0"},5:{name:"5",children:Tr},6:{name:"6"}}}}},1:{name:"RunLength"}}}}},6:{name:"StyleRun",children:{0:{name:"RunArray",children:{0:{name:"StyleSheet",children:{0:{uproot:!0,children:{6:uc}}}},1:{name:"RunLength"}}}}}}},1:{name:"FontVectorData ???"}}},2:{name:"StyleSheet",children:jr},3:{name:"ParagraphSheet",children:Tr}}}};function oi(e,t){var n,i;if(e===null)return e;if(Array.isArray(e))return e.map(r=>oi(r,t));if(typeof e!="object")return e;let o={};for(let r of Object.keys(e))if(t[r])if(t[r].uproot){r!=="99"&&(o=oi(e[r],(n=t[r].children)!==null&&n!==void 0?n:{})),e[99]&&(o._type=e[99]);break}else o[t[r].name||r]=oi(e[r],(i=t[r].children)!==null&&i!==void 0?i:{});else r==="99"?o._type=e[r]:o[r]=oi(e[r],{});return o}function b0(e){return oi(e,g0)}});var oo=oe(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.booleanOperations=Ce.infoHandlersMap=Ce.infoHandlers=void 0;Ce.readBezierKnot=_c;Ce.readVectorMask=Ac;Ce.hasMultiEffects=Zr;var pc=ji(),mc=Jl(),Ze=Tt(),b=jt(),y=Dn(),w=Gi(),Wr=tc(),gc=fc(),y0=hc(),Xe="abcdefghijklmnopqrstuvwxyz";Ce.infoHandlers=[];Ce.infoHandlersMap={};function L(e,t,n,i){let o={key:e,has:t,read:n,write:i};Ce.infoHandlers.push(o),Ce.infoHandlersMap[o.key]=o}function Gt(e,t){Ce.infoHandlersMap[e]=Ce.infoHandlersMap[t]}function ae(e){return t=>t[e]!==void 0}function $r(e){if((0,b.readUint32)(e))throw new Error(`Resource size above 4 GB limit at ${e.offset.toString(16)}`);return(0,b.readUint32)(e)}function Nr(e,t){(0,y.writeUint32)(e,0),(0,y.writeUint32)(e,t)}L("TySh",ae("text"),(e,t,n)=>{if((0,b.readInt16)(e)!==1)throw new Error("Invalid TySh version");let i=[];for(let s=0;s<6;s++)i.push((0,b.readFloat64)(e));if((0,b.readInt16)(e)!==50)throw new Error("Invalid TySh text version");let o=(0,w.readVersionAndDescriptor)(e);if((0,b.readInt16)(e)!==1)throw new Error("Invalid TySh warp version");let r=(0,w.readVersionAndDescriptor)(e);if(t.text={transform:i,left:(0,b.readFloat32)(e),top:(0,b.readFloat32)(e),right:(0,b.readFloat32)(e),bottom:(0,b.readFloat32)(e),text:o["Txt "].replace(/\r/g,`
10
10
  `),index:o.TextIndex||0,gridding:w.textGridding.decode(o.textGridding),antiAlias:w.Annt.decode(o.AntA),orientation:w.Ornt.decode(o.Ornt),warp:{style:w.warpStyle.decode(r.warpStyle),value:r.warpValue||0,perspective:r.warpPerspective||0,perspectiveOther:r.warpPerspectiveOther||0,rotate:w.Ornt.decode(r.warpRotate)}},o.bounds&&(t.text.bounds=(0,w.descBoundsToBounds)(o.bounds)),o.boundingBox&&(t.text.boundingBox=(0,w.descBoundsToBounds)(o.boundingBox)),o.EngineData){let s=(0,Wr.parseEngineData)(o.EngineData),a=(0,gc.decodeEngineData)(s);t.text=Object.assign(Object.assign({},t.text),a)}(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.text,i=n.warp||{},o=n.transform||[1,0,0,1,0,0],r=Object.assign(Object.assign(Object.assign({"Txt ":(n.text||"").replace(/\r?\n/g,"\r"),textGridding:w.textGridding.encode(n.gridding),Ornt:w.Ornt.encode(n.orientation),AntA:w.Annt.encode(n.antiAlias)},n.bounds?{bounds:(0,w.boundsToDescBounds)(n.bounds)}:{}),n.boundingBox?{boundingBox:(0,w.boundsToDescBounds)(n.boundingBox)}:{}),{TextIndex:n.index||0,EngineData:(0,Wr.serializeEngineData)((0,gc.encodeEngineData)(n))});(0,y.writeInt16)(e,1);for(let s=0;s<6;s++)(0,y.writeFloat64)(e,o[s]);(0,y.writeInt16)(e,50),(0,w.writeVersionAndDescriptor)(e,"","TxLr",r,"text"),(0,y.writeInt16)(e,1),(0,w.writeVersionAndDescriptor)(e,"","warp",go(i)),(0,y.writeFloat32)(e,n.left),(0,y.writeFloat32)(e,n.top),(0,y.writeFloat32)(e,n.right),(0,y.writeFloat32)(e,n.bottom)});L("SoCo",e=>e.vectorFill!==void 0&&e.vectorStroke===void 0&&e.vectorFill.type==="color",(e,t)=>{let n=(0,w.readVersionAndDescriptor)(e);t.vectorFill=(0,w.parseVectorContent)(n)},(e,t)=>{let{descriptor:n}=(0,w.serializeVectorContent)(t.vectorFill);(0,w.writeVersionAndDescriptor)(e,"","null",n)});L("GdFl",e=>e.vectorFill!==void 0&&e.vectorStroke===void 0&&(e.vectorFill.type==="solid"||e.vectorFill.type==="noise"),(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);t.vectorFill=(0,w.parseVectorContent)(i),(0,b.skipBytes)(e,n())},(e,t)=>{let{descriptor:n}=(0,w.serializeVectorContent)(t.vectorFill);(0,w.writeVersionAndDescriptor)(e,"","null",n)});L("PtFl",e=>e.vectorFill!==void 0&&e.vectorStroke===void 0&&e.vectorFill.type==="pattern",(e,t)=>{let n=(0,w.readVersionAndDescriptor)(e);t.vectorFill=(0,w.parseVectorContent)(n)},(e,t)=>{let{descriptor:n}=(0,w.serializeVectorContent)(t.vectorFill);(0,w.writeVersionAndDescriptor)(e,"","null",n)});L("vscg",e=>e.vectorFill!==void 0&&e.vectorStroke!==void 0,(e,t,n)=>{(0,b.readSignature)(e);let i=(0,w.readVersionAndDescriptor)(e);t.vectorFill=(0,w.parseVectorContent)(i),(0,b.skipBytes)(e,n())},(e,t)=>{let{descriptor:n,key:i}=(0,w.serializeVectorContent)(t.vectorFill);(0,y.writeSignature)(e,i),(0,w.writeVersionAndDescriptor)(e,"","null",n)});function _c(e,t,n){let i=(0,b.readFixedPointPath32)(e)*n,o=(0,b.readFixedPointPath32)(e)*t,r=(0,b.readFixedPointPath32)(e)*n,s=(0,b.readFixedPointPath32)(e)*t,a=(0,b.readFixedPointPath32)(e)*n,l=(0,b.readFixedPointPath32)(e)*t;return[o,i,s,r,l,a]}function w0(e,t,n,i){(0,y.writeFixedPointPath32)(e,t[1]/i),(0,y.writeFixedPointPath32)(e,t[0]/n),(0,y.writeFixedPointPath32)(e,t[3]/i),(0,y.writeFixedPointPath32)(e,t[2]/n),(0,y.writeFixedPointPath32)(e,t[5]/i),(0,y.writeFixedPointPath32)(e,t[4]/n)}Ce.booleanOperations=["exclude","combine","subtract","intersect"];function Ac(e,t,n,i,o){let r=e.offset+o,s=t.paths,a;for(;r-e.offset>=26;){let l=(0,b.readUint16)(e);switch(l){case 0:case 3:{(0,b.readUint16)(e);let c=(0,b.readInt16)(e),d=(0,b.readUint16)(e);(0,b.skipBytes)(e,18),a={open:l===3,knots:[],fillRule:d===2?"non-zero":"even-odd"},c!==-1&&(a.operation=Ce.booleanOperations[c]),s.push(a);break}case 1:case 2:case 4:case 5:a.knots.push({linked:l===1||l===4,points:_c(e,n,i)});break;case 6:(0,b.skipBytes)(e,24);break;case 7:{let c=(0,b.readFixedPointPath32)(e),d=(0,b.readFixedPointPath32)(e),u=(0,b.readFixedPointPath32)(e),f=(0,b.readFixedPointPath32)(e),h=(0,b.readFixedPointPath32)(e);(0,b.skipBytes)(e,4),t.clipboard={top:c,left:d,bottom:u,right:f,resolution:h};break}case 8:t.fillStartsWithAllPixels=!!(0,b.readUint16)(e),(0,b.skipBytes)(e,22);break;default:throw new Error("Invalid vmsk section")}}return s}L("vmsk",ae("vectorMask"),(e,t,n,{width:i,height:o})=>{if((0,b.readUint32)(e)!==3)throw new Error("Invalid vmsk version");t.vectorMask={paths:[]};let r=t.vectorMask,s=(0,b.readUint32)(e);r.invert=(s&1)!==0,r.notLink=(s&2)!==0,r.disable=(s&4)!==0,Ac(e,r,i,o,n()),(0,b.skipBytes)(e,n())},(e,t,{width:n,height:i})=>{let o=t.vectorMask,r=(o.invert?1:0)|(o.notLink?2:0)|(o.disable?4:0);(0,y.writeUint32)(e,3),(0,y.writeUint32)(e,r),(0,y.writeUint16)(e,6),(0,y.writeZeros)(e,24);let s=o.clipboard;s&&((0,y.writeUint16)(e,7),(0,y.writeFixedPointPath32)(e,s.top),(0,y.writeFixedPointPath32)(e,s.left),(0,y.writeFixedPointPath32)(e,s.bottom),(0,y.writeFixedPointPath32)(e,s.right),(0,y.writeFixedPointPath32)(e,s.resolution),(0,y.writeZeros)(e,4)),(0,y.writeUint16)(e,8),(0,y.writeUint16)(e,o.fillStartsWithAllPixels?1:0),(0,y.writeZeros)(e,22);for(let a of o.paths){(0,y.writeUint16)(e,a.open?3:0),(0,y.writeUint16)(e,a.knots.length),(0,y.writeUint16)(e,a.operation?Ce.booleanOperations.indexOf(a.operation):-1),(0,y.writeUint16)(e,a.fillRule==="non-zero"?2:1),(0,y.writeZeros)(e,18);let l=a.open?4:1,c=a.open?5:2;for(let{linked:d,points:u}of a.knots)(0,y.writeUint16)(e,d?l:c),w0(e,u,n,i)}});Gt("vsms","vmsk");L("vowv",ae("vowv"),(e,t)=>{t.vowv=(0,b.readUint32)(e)},(e,t)=>{(0,y.writeUint32)(e,t.vowv)});L("vogk",ae("vectorOrigination"),(e,t,n)=>{if((0,b.readInt32)(e)!==1)throw new Error("Invalid vogk version");let i=(0,w.readVersionAndDescriptor)(e);t.vectorOrigination={keyDescriptorList:[]};for(let o of i.keyDescriptorList){let r={};o.keyShapeInvalidated!=null&&(r.keyShapeInvalidated=o.keyShapeInvalidated),o.keyOriginType!=null&&(r.keyOriginType=o.keyOriginType),o.keyOriginResolution!=null&&(r.keyOriginResolution=o.keyOriginResolution),o.keyOriginShapeBBox&&(r.keyOriginShapeBoundingBox={top:(0,w.parseUnitsOrNumber)(o.keyOriginShapeBBox["Top "]),left:(0,w.parseUnitsOrNumber)(o.keyOriginShapeBBox.Left),bottom:(0,w.parseUnitsOrNumber)(o.keyOriginShapeBBox.Btom),right:(0,w.parseUnitsOrNumber)(o.keyOriginShapeBBox.Rght)});let s=o.keyOriginRRectRadii;s&&(r.keyOriginRRectRadii={topRight:(0,w.parseUnits)(s.topRight),topLeft:(0,w.parseUnits)(s.topLeft),bottomLeft:(0,w.parseUnits)(s.bottomLeft),bottomRight:(0,w.parseUnits)(s.bottomRight)});let a=o.keyOriginBoxCorners;a&&(r.keyOriginBoxCorners=[{x:a.rectangleCornerA.Hrzn,y:a.rectangleCornerA.Vrtc},{x:a.rectangleCornerB.Hrzn,y:a.rectangleCornerB.Vrtc},{x:a.rectangleCornerC.Hrzn,y:a.rectangleCornerC.Vrtc},{x:a.rectangleCornerD.Hrzn,y:a.rectangleCornerD.Vrtc}]);let l=o.Trnf;l&&(r.transform=[l.xx,l.xy,l.yx,l.yy,l.tx,l.ty]),t.vectorOrigination.keyDescriptorList.push(r)}(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.vectorOrigination,i={keyDescriptorList:[]};for(let o=0;o<n.keyDescriptorList.length;o++){let r=n.keyDescriptorList[o];i.keyDescriptorList.push({});let s=i.keyDescriptorList[i.keyDescriptorList.length-1];r.keyOriginType!=null&&(s.keyOriginType=r.keyOriginType),r.keyOriginResolution!=null&&(s.keyOriginResolution=r.keyOriginResolution);let a=r.keyOriginRRectRadii;a&&(s.keyOriginRRectRadii={unitValueQuadVersion:1,topRight:(0,w.unitsValue)(a.topRight,"topRight"),topLeft:(0,w.unitsValue)(a.topLeft,"topLeft"),bottomLeft:(0,w.unitsValue)(a.bottomLeft,"bottomLeft"),bottomRight:(0,w.unitsValue)(a.bottomRight,"bottomRight")});let l=r.keyOriginShapeBoundingBox;l&&(s.keyOriginShapeBBox={unitValueQuadVersion:1,"Top ":(0,w.unitsValue)(l.top,"top"),Left:(0,w.unitsValue)(l.left,"left"),Btom:(0,w.unitsValue)(l.bottom,"bottom"),Rght:(0,w.unitsValue)(l.right,"right")});let c=r.keyOriginBoxCorners;c&&c.length===4&&(s.keyOriginBoxCorners={rectangleCornerA:{Hrzn:c[0].x,Vrtc:c[0].y},rectangleCornerB:{Hrzn:c[1].x,Vrtc:c[1].y},rectangleCornerC:{Hrzn:c[2].x,Vrtc:c[2].y},rectangleCornerD:{Hrzn:c[3].x,Vrtc:c[3].y}});let d=r.transform;d&&d.length===6&&(s.Trnf={xx:d[0],xy:d[1],yx:d[2],yy:d[3],tx:d[4],ty:d[5]}),r.keyShapeInvalidated!=null&&(s.keyShapeInvalidated=r.keyShapeInvalidated),s.keyOriginIndex=o}(0,y.writeInt32)(e,1),(0,w.writeVersionAndDescriptor)(e,"","null",i)});L("lmfx",e=>e.effects!==void 0&&Zr(e.effects),(e,t,n)=>{if((0,b.readUint32)(e)!==0)throw new Error("Invalid lmfx version");let o=(0,w.readVersionAndDescriptor)(e);t.effects=(0,w.parseEffects)(o,!!e.logMissingFeatures),(0,b.skipBytes)(e,n())},(e,t,n,i)=>{let o=(0,w.serializeEffects)(t.effects,!!i.logMissingFeatures,!0);(0,y.writeUint32)(e,0),(0,w.writeVersionAndDescriptor)(e,"","null",o)});L("lrFX",ae("effects"),(e,t,n)=>{t.effects||(t.effects=(0,mc.readEffects)(e)),(0,b.skipBytes)(e,n())},(e,t)=>{(0,mc.writeEffects)(e,t.effects)});L("luni",ae("name"),(e,t,n)=>{if(n()>4){let i=(0,b.readUint32)(e);n()>=i*2?t.name=(0,b.readUnicodeStringWithLength)(e,i):e.logDevFeatures&&e.log("name in luni section is too long")}else e.logDevFeatures&&e.log("empty luni section");(0,b.skipBytes)(e,n())},(e,t)=>{(0,y.writeUnicodeString)(e,t.name)});L("lnsr",ae("nameSource"),(e,t)=>t.nameSource=(0,b.readSignature)(e),(e,t)=>(0,y.writeSignature)(e,t.nameSource));L("lyid",ae("id"),(e,t)=>{t.id=(0,b.readUint32)(e)},(e,t,n,i)=>{let o=t.id;for(;i.layerIds.has(o);)o+=100;(0,y.writeUint32)(e,o),i.layerIds.add(o),i.layerToId.set(t,o)});L("lsct",ae("sectionDivider"),(e,t,n)=>{t.sectionDivider={type:(0,b.readUint32)(e)},n()&&((0,b.checkSignature)(e,"8BIM"),t.sectionDivider.key=(0,b.readSignature)(e)),n()&&(t.sectionDivider.subType=(0,b.readUint32)(e))},(e,t)=>{(0,y.writeUint32)(e,t.sectionDivider.type),t.sectionDivider.key&&((0,y.writeSignature)(e,"8BIM"),(0,y.writeSignature)(e,t.sectionDivider.key),t.sectionDivider.subType!==void 0&&(0,y.writeUint32)(e,t.sectionDivider.subType))});Gt("lsdk","lsct");L("clbl",ae("blendClippendElements"),(e,t)=>{t.blendClippendElements=!!(0,b.readUint8)(e),(0,b.skipBytes)(e,3)},(e,t)=>{(0,y.writeUint8)(e,t.blendClippendElements?1:0),(0,y.writeZeros)(e,3)});L("infx",ae("blendInteriorElements"),(e,t)=>{t.blendInteriorElements=!!(0,b.readUint8)(e),(0,b.skipBytes)(e,3)},(e,t)=>{(0,y.writeUint8)(e,t.blendInteriorElements?1:0),(0,y.writeZeros)(e,3)});L("knko",ae("knockout"),(e,t)=>{t.knockout=!!(0,b.readUint8)(e),(0,b.skipBytes)(e,3)},(e,t)=>{(0,y.writeUint8)(e,t.knockout?1:0),(0,y.writeZeros)(e,3)});L("lmgm",ae("layerMaskAsGlobalMask"),(e,t)=>{t.layerMaskAsGlobalMask=!!(0,b.readUint8)(e),(0,b.skipBytes)(e,3)},(e,t)=>{(0,y.writeUint8)(e,t.layerMaskAsGlobalMask?1:0),(0,y.writeZeros)(e,3)});L("lspf",ae("protected"),(e,t)=>{let n=(0,b.readUint32)(e);t.protected={transparency:(n&1)!==0,composite:(n&2)!==0,position:(n&4)!==0},n&8&&(t.protected.artboards=!0)},(e,t)=>{let n=(t.protected.transparency?1:0)|(t.protected.composite?2:0)|(t.protected.position?4:0)|(t.protected.artboards?8:0);(0,y.writeUint32)(e,n)});L("lclr",ae("layerColor"),(e,t)=>{let n=(0,b.readUint16)(e);(0,b.skipBytes)(e,6),t.layerColor=Ze.layerColors[n]},(e,t)=>{let n=Ze.layerColors.indexOf(t.layerColor);(0,y.writeUint16)(e,n===-1?0:n),(0,y.writeZeros)(e,6)});L("shmd",e=>e.timestamp!==void 0||e.animationFrames!==void 0||e.animationFrameFlags!==void 0||e.timeline!==void 0||e.comps!==void 0,(e,t,n)=>{let i=(0,b.readUint32)(e);for(let o=0;o<i;o++){(0,b.checkSignature)(e,"8BIM");let r=(0,b.readSignature)(e);(0,b.readUint8)(e),(0,b.skipBytes)(e,3),(0,b.readSection)(e,1,s=>{if(r==="cust"){let a=(0,w.readVersionAndDescriptor)(e);a.layerTime!==void 0&&(t.timestamp=a.layerTime)}else if(r==="mlst"){let a=(0,w.readVersionAndDescriptor)(e);t.animationFrames=[];for(let l=0;l<a.LaSt.length;l++){let c=a.LaSt[l],d={frames:c.FrLs};c.enab!==void 0&&(d.enable=c.enab),c.Ofst&&(d.offset=(0,w.horzVrtcToXY)(c.Ofst)),c.FXRf&&(d.referencePoint=(0,w.horzVrtcToXY)(c.FXRf)),c.Lefx&&(d.effects=(0,w.parseEffects)(c.Lefx,!!e.logMissingFeatures)),c.blendOptions&&c.blendOptions.Opct&&(d.opacity=(0,w.parsePercent)(c.blendOptions.Opct)),t.animationFrames.push(d)}}else if(r==="mdyn"){(0,b.readUint16)(e);let a=(0,b.readUint8)(e),l=(0,b.readUint8)(e);t.animationFrameFlags={propagateFrameOne:!a,unifyLayerPosition:(l&1)!==0,unifyLayerStyle:(l&2)!==0,unifyLayerVisibility:(l&4)!==0}}else if(r==="tmln"){let a=(0,w.readVersionAndDescriptor)(e),l=a.timeScope,c={start:(0,w.frac)(l.Strt),duration:(0,w.frac)(l.duration),inTime:(0,w.frac)(l.inTime),outTime:(0,w.frac)(l.outTime),autoScope:a.autoScope,audioLevel:a.audioLevel};a.trackList&&(c.tracks=(0,w.parseTrackList)(a.trackList,!!e.logMissingFeatures)),t.timeline=c}else if(r==="cmls"){let a=(0,w.readVersionAndDescriptor)(e);t.comps={settings:[]},a.origFXRefPoint&&(t.comps.originalEffectsReferencePoint={x:a.origFXRefPoint.Hrzn,y:a.origFXRefPoint.Vrtc});for(let l of a.layerSettings){t.comps.settings.push({compList:l.compList});let c=t.comps.settings[t.comps.settings.length-1];"enab"in l&&(c.enabled=l.enab),l.Ofst&&(c.offset={x:l.Ofst.Hrzn,y:l.Ofst.Vrtc}),l.FXRefPoint&&(c.effectsReferencePoint={x:l.FXRefPoint.Hrzn,y:l.FXRefPoint.Vrtc})}}else r==="extn"&&(0,w.readVersionAndDescriptor)(e),e.logMissingFeatures&&e.log('Unhandled "shmd" section key',r);(0,b.skipBytes)(e,s())})}(0,b.skipBytes)(e,n())},(e,t,n,i)=>{let{animationFrames:o,animationFrameFlags:r,timestamp:s,timeline:a,comps:l}=t,c=0;o&&c++,r&&c++,a&&c++,s!==void 0&&c++,l&&c++,(0,y.writeUint32)(e,c),o&&((0,y.writeSignature)(e,"8BIM"),(0,y.writeSignature)(e,"mlst"),(0,y.writeUint8)(e,0),(0,y.writeZeros)(e,3),(0,y.writeSection)(e,2,()=>{var d;let u={LaID:(d=t.id)!==null&&d!==void 0?d:0,LaSt:[]};for(let f=0;f<o.length;f++){let h=o[f],p={};h.enable!==void 0&&(p.enab=h.enable),p.FrLs=h.frames,h.offset&&(p.Ofst=(0,w.xyToHorzVrtc)(h.offset)),h.referencePoint&&(p.FXRf=(0,w.xyToHorzVrtc)(h.referencePoint)),h.effects&&(p.Lefx=(0,w.serializeEffects)(h.effects,!1,!1)),h.opacity!==void 0&&(p.blendOptions={Opct:(0,w.unitsPercent)(h.opacity)}),u.LaSt.push(p)}(0,w.writeVersionAndDescriptor)(e,"","null",u)},!0)),r&&((0,y.writeSignature)(e,"8BIM"),(0,y.writeSignature)(e,"mdyn"),(0,y.writeUint8)(e,0),(0,y.writeZeros)(e,3),(0,y.writeSection)(e,2,()=>{(0,y.writeUint16)(e,0),(0,y.writeUint8)(e,r.propagateFrameOne?0:15),(0,y.writeUint8)(e,(r.unifyLayerPosition?1:0)|(r.unifyLayerStyle?2:0)|(r.unifyLayerVisibility?4:0))})),a&&((0,y.writeSignature)(e,"8BIM"),(0,y.writeSignature)(e,"tmln"),(0,y.writeUint8)(e,0),(0,y.writeZeros)(e,3),(0,y.writeSection)(e,2,()=>{let d={Vrsn:1,timeScope:{Vrsn:1,Strt:a.start,duration:a.duration,inTime:a.inTime,outTime:a.outTime},autoScope:a.autoScope,audioLevel:a.audioLevel};a.tracks&&(d.trackList=(0,w.serializeTrackList)(a.tracks));let u=i.layerToId.get(t)||t.id;if(!u)throw new Error("You need to provide layer.id value whan writing document with animations");d.LyrI=u,(0,w.writeVersionAndDescriptor)(e,"","null",d,"anim")},!0)),s!==void 0&&((0,y.writeSignature)(e,"8BIM"),(0,y.writeSignature)(e,"cust"),(0,y.writeUint8)(e,0),(0,y.writeZeros)(e,3),(0,y.writeSection)(e,2,()=>{let d={layerTime:s};(0,w.writeVersionAndDescriptor)(e,"","metadata",d)},!0)),l&&((0,y.writeSignature)(e,"8BIM"),(0,y.writeSignature)(e,"cmls"),(0,y.writeUint8)(e,0),(0,y.writeZeros)(e,3),(0,y.writeSection)(e,2,()=>{let d=i.layerToId.get(t)||t.id;if(!d)throw new Error("You need to provide layer.id value whan writing document with layer comps");let u={};l.originalEffectsReferencePoint&&(u.origFXRefPoint={Hrzn:l.originalEffectsReferencePoint.x,Vrtc:l.originalEffectsReferencePoint.y}),u.LyrI=d,u.layerSettings=[];for(let f of l.settings){let h={};f.enabled!==void 0&&(h.enab=f.enabled),f.offset&&(h.Ofst={Hrzn:f.offset.x,Vrtc:f.offset.y}),f.effectsReferencePoint&&(h.FXRefPoint={Hrzn:f.effectsReferencePoint.x,Vrtc:f.effectsReferencePoint.y}),h.compList=f.compList,u.layerSettings.push(h)}(0,w.writeVersionAndDescriptor)(e,"","null",u)},!0))});L("PxSc",()=>!1,(e,t)=>{let n=(0,w.readVersionAndDescriptor)(e,!0);n.pixelSourceType===1986285651?t.pixelSource={type:"vdPS",origin:{x:n.origin.Hrzn,y:n.origin.Vrtc},interpretation:{interpretAlpha:n.interpretation.interpretAlpha.split(".")[1],profile:n.interpretation.profile},frameReader:{type:"QTFR",link:{name:n.frameReader["Lnk "]["Nm "],fullPath:n.frameReader["Lnk "].fullPath,originalPath:n.frameReader["Lnk "].originalPath,relativePath:n.frameReader["Lnk "].relPath,alias:n.frameReader["Lnk "].alis},mediaDescriptor:n.frameReader.mediaDescriptor},showAlteredVideo:n.showAlteredVideo}:e.log("Unknown pixelSourceType")},(e,t)=>{let n=t.pixelSource,i={_name:"",_classID:"PixelSource",pixelSourceType:1986285651,descVersion:1,origin:{Hrzn:n.origin.x,Vrtc:n.origin.y},interpretation:{_name:"",_classID:"footageInterpretation",Vrsn:1,interpretAlpha:`alphaInterpretation.${n.interpretation.interpretAlpha}`,profile:n.interpretation.profile},frameReader:{_name:"",_classID:"FrameReader",frameReaderType:1364477522,descVersion:1,"Lnk ":{_name:"",_classID:"ExternalFileLink",descVersion:2,"Nm ":n.frameReader.link.name,fullPath:n.frameReader.link.fullPath,originalPath:n.frameReader.link.originalPath,alis:n.frameReader.link.alias,relPath:n.frameReader.link.relativePath},mediaDescriptor:n.frameReader.mediaDescriptor},showAlteredVideo:n.showAlteredVideo};(0,w.writeVersionAndDescriptor)(e,"","PixelSource",i)});L("vstk",ae("vectorStroke"),(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);t.vectorStroke={strokeEnabled:i.strokeEnabled,fillEnabled:i.fillEnabled,lineWidth:(0,w.parseUnits)(i.strokeStyleLineWidth),lineDashOffset:(0,w.parseUnits)(i.strokeStyleLineDashOffset),miterLimit:i.strokeStyleMiterLimit,lineCapType:w.strokeStyleLineCapType.decode(i.strokeStyleLineCapType),lineJoinType:w.strokeStyleLineJoinType.decode(i.strokeStyleLineJoinType),lineAlignment:w.strokeStyleLineAlignment.decode(i.strokeStyleLineAlignment),scaleLock:i.strokeStyleScaleLock,strokeAdjust:i.strokeStyleStrokeAdjust,lineDashSet:i.strokeStyleLineDashSet.map(w.parseUnits),blendMode:w.BlnM.decode(i.strokeStyleBlendMode),opacity:(0,w.parsePercent)(i.strokeStyleOpacity),content:(0,w.parseVectorContent)(i.strokeStyleContent),resolution:i.strokeStyleResolution},(0,b.skipBytes)(e,n())},(e,t)=>{var n,i,o;let r=t.vectorStroke,s={strokeStyleVersion:2,strokeEnabled:!!r.strokeEnabled,fillEnabled:!!r.fillEnabled,strokeStyleLineWidth:r.lineWidth||{value:3,units:"Points"},strokeStyleLineDashOffset:r.lineDashOffset||{value:0,units:"Points"},strokeStyleMiterLimit:(n=r.miterLimit)!==null&&n!==void 0?n:100,strokeStyleLineCapType:w.strokeStyleLineCapType.encode(r.lineCapType),strokeStyleLineJoinType:w.strokeStyleLineJoinType.encode(r.lineJoinType),strokeStyleLineAlignment:w.strokeStyleLineAlignment.encode(r.lineAlignment),strokeStyleScaleLock:!!r.scaleLock,strokeStyleStrokeAdjust:!!r.strokeAdjust,strokeStyleLineDashSet:r.lineDashSet||[],strokeStyleBlendMode:w.BlnM.encode(r.blendMode),strokeStyleOpacity:(0,w.unitsPercent)((i=r.opacity)!==null&&i!==void 0?i:1),strokeStyleContent:(0,w.serializeVectorContent)(r.content||{type:"color",color:{r:0,g:0,b:0}}).descriptor,strokeStyleResolution:(o=r.resolution)!==null&&o!==void 0?o:72};(0,w.writeVersionAndDescriptor)(e,"","strokeStyle",s)});L("artb",ae("artboard"),(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e),o=i.artboardRect;t.artboard={rect:{top:o["Top "],left:o.Left,bottom:o.Btom,right:o.Rght},guideIndices:i.guideIndeces,presetName:i.artboardPresetName,color:(0,w.parseColor)(i["Clr "]),backgroundType:i.artboardBackgroundType},(0,b.skipBytes)(e,n())},(e,t)=>{var n;let i=t.artboard,o=i.rect,r={artboardRect:{"Top ":o.top,Left:o.left,Btom:o.bottom,Rght:o.right},guideIndeces:i.guideIndices||[],artboardPresetName:i.presetName||"","Clr ":(0,w.serializeColor)(i.color),artboardBackgroundType:(n=i.backgroundType)!==null&&n!==void 0?n:1};(0,w.writeVersionAndDescriptor)(e,"","artboard",r)});L("sn2P",ae("usingAlignedRendering"),(e,t)=>t.usingAlignedRendering=!!(0,b.readUint32)(e),(e,t)=>(0,y.writeUint32)(e,t.usingAlignedRendering?1:0));var Ln=["unknown","vector","raster","image stack"];function kc(e){var t,n,i,o,r,s;let a=Object.assign(Object.assign({style:w.warpStyle.decode(e.warpStyle)},e.warpValues?{values:e.warpValues}:{value:e.warpValue||0}),{perspective:e.warpPerspective||0,perspectiveOther:e.warpPerspectiveOther||0,rotate:w.Ornt.decode(e.warpRotate),bounds:e.bounds&&{top:(0,w.parseUnitsOrNumber)(e.bounds["Top "]),left:(0,w.parseUnitsOrNumber)(e.bounds.Left),bottom:(0,w.parseUnitsOrNumber)(e.bounds.Btom),right:(0,w.parseUnitsOrNumber)(e.bounds.Rght)},uOrder:e.uOrder,vOrder:e.vOrder});(e.deformNumRows!=null||e.deformNumCols!=null)&&(a.deformNumRows=e.deformNumRows,a.deformNumCols=e.deformNumCols);let l=e.customEnvelopeWarp;if(l){a.customEnvelopeWarp={meshPoints:[]};let c=((t=l.meshPoints.find(u=>u.type==="Hrzn"))===null||t===void 0?void 0:t.values)||[],d=((n=l.meshPoints.find(u=>u.type==="Vrtc"))===null||n===void 0?void 0:n.values)||[];for(let u=0;u<c.length;u++)a.customEnvelopeWarp.meshPoints.push({x:c[u],y:d[u]});(l.quiltSliceX||l.quiltSliceY)&&(a.customEnvelopeWarp.quiltSliceX=((o=(i=l.quiltSliceX)===null||i===void 0?void 0:i[0])===null||o===void 0?void 0:o.values)||[],a.customEnvelopeWarp.quiltSliceY=((s=(r=l.quiltSliceY)===null||r===void 0?void 0:r[0])===null||s===void 0?void 0:s.values)||[])}return a}function Xr(e){var t,n;return e.deformNumCols!=null||e.deformNumRows!=null||((t=e.customEnvelopeWarp)===null||t===void 0?void 0:t.quiltSliceX)||((n=e.customEnvelopeWarp)===null||n===void 0?void 0:n.quiltSliceY)}function go(e){let t=e.bounds,n=Object.assign(Object.assign({warpStyle:w.warpStyle.encode(e.style)},e.values?{warpValues:e.values}:{warpValue:e.value||0}),{warpPerspective:e.perspective||0,warpPerspectiveOther:e.perspectiveOther||0,warpRotate:w.Ornt.encode(e.rotate),bounds:{"Top ":(0,w.unitsValue)(t&&t.top||{units:"Pixels",value:0},"bounds.top"),Left:(0,w.unitsValue)(t&&t.left||{units:"Pixels",value:0},"bounds.left"),Btom:(0,w.unitsValue)(t&&t.bottom||{units:"Pixels",value:0},"bounds.bottom"),Rght:(0,w.unitsValue)(t&&t.right||{units:"Pixels",value:0},"bounds.right")},uOrder:e.uOrder||0,vOrder:e.vOrder||0}),i=Xr(e);if(i){let r=n;r.deformNumRows=e.deformNumRows||0,r.deformNumCols=e.deformNumCols||0}let o=e.customEnvelopeWarp;if(o){let r=o.meshPoints||[];if(i){let s=n;s.customEnvelopeWarp={_name:"",_classID:"customEnvelopeWarp",quiltSliceX:[{type:"quiltSliceX",values:o.quiltSliceX||[]}],quiltSliceY:[{type:"quiltSliceY",values:o.quiltSliceY||[]}],meshPoints:[{type:"Hrzn",values:r.map(a=>a.x)},{type:"Vrtc",values:r.map(a=>a.y)}]}}else n.customEnvelopeWarp={_name:"",_classID:"customEnvelopeWarp",meshPoints:[{type:"Hrzn",values:r.map(s=>s.x)},{type:"Vrtc",values:r.map(s=>s.y)}]}}return n}L("PlLd",ae("placedLayer"),(e,t,n)=>{if((0,b.readSignature)(e)!=="plcL")throw new Error("Invalid PlLd signature");if((0,b.readInt32)(e)!==3)throw new Error("Invalid PlLd version");let i=(0,b.readPascalString)(e,1),o=(0,b.readInt32)(e),r=(0,b.readInt32)(e);(0,b.readInt32)(e);let s=(0,b.readInt32)(e);if(!Ln[s])throw new Error("Invalid PlLd type");let a=[];for(let d=0;d<8;d++)a.push((0,b.readFloat64)(e));let l=(0,b.readInt32)(e);if(l!==0)throw new Error(`Invalid Warp version ${l}`);let c=(0,w.readVersionAndDescriptor)(e);t.placedLayer=t.placedLayer||{id:i,type:Ln[s],pageNumber:o,totalPages:r,transform:a,warp:kc(c)},(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.placedLayer;if((0,y.writeSignature)(e,"plcL"),(0,y.writeInt32)(e,3),!n.id||typeof n.id!="string"||!/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(n.id))throw new Error("Placed layer ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)");if((0,y.writePascalString)(e,n.id,1),(0,y.writeInt32)(e,n.pageNumber||1),(0,y.writeInt32)(e,n.totalPages||1),(0,y.writeInt32)(e,16),Ln.indexOf(n.type)===-1)throw new Error("Invalid placedLayer type");(0,y.writeInt32)(e,Ln.indexOf(n.type));for(let s=0;s<8;s++)(0,y.writeFloat64)(e,n.transform[s]);(0,y.writeInt32)(e,0);let i=Ic(n),r=Xr(i)?"quiltWarp":"warp";(0,w.writeVersionAndDescriptor)(e,"",r,go(i),r)});function S0(e){return new Float32Array(e.buffer.slice(e.byteOffset),0,e.byteLength/4)}function v0(e){return new Uint32Array(e.buffer.slice(e.byteOffset),0,e.byteLength/4)}function Vr(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function mo(e){let t=[];for(let n=0;n<e.length;n+=2)t.push({x:e[n],y:e[n+1]});return t}function ri(e){let t=[];for(let n=0;n<e.length;n++)t.push(e[n].x,e[n].y);return t}function bc(e){return mo(S0(e))}function si(e){return{x:(0,w.parseUnits)(e.Hrzn),y:(0,w.parseUnits)(e.Vrtc)}}function ai(e){return{_name:"",_classID:"Pnt ",Hrzn:(0,w.unitsValue)(e.x,"x"),Vrtc:(0,w.unitsValue)(e.y,"y")}}function x0(e,t){let n={name:e["Nm "],opacity:(0,w.parsePercent)(e.blendOptions.Opct),blendMode:w.BlnM.decode(e.blendOptions["Md "]),enabled:e.enab,hasOptions:e.hasoptions,foregroundColor:(0,w.parseColor)(e.FrgC),backgroundColor:(0,w.parseColor)(e.BckC)};if("Fltr"in e)switch(e.Fltr._classID){case"boxblur":return Object.assign(Object.assign({},n),{type:"box blur",filter:{radius:(0,w.parseUnits)(e.Fltr["Rds "])}});case"GsnB":return Object.assign(Object.assign({},n),{type:"gaussian blur",filter:{radius:(0,w.parseUnits)(e.Fltr["Rds "])}});case"MtnB":return Object.assign(Object.assign({},n),{type:"motion blur",filter:{angle:e.Fltr.Angl,distance:(0,w.parseUnits)(e.Fltr.Dstn)}});case"RdlB":return Object.assign(Object.assign({},n),{type:"radial blur",filter:{amount:e.Fltr.Amnt,method:w.BlrM.decode(e.Fltr.BlrM),quality:w.BlrQ.decode(e.Fltr.BlrQ)}});case"shapeBlur":return Object.assign(Object.assign({},n),{type:"shape blur",filter:{radius:(0,w.parseUnits)(e.Fltr["Rds "]),customShape:{name:e.Fltr.customShape["Nm "],id:e.Fltr.customShape.Idnt}}});case"SmrB":return Object.assign(Object.assign({},n),{type:"smart blur",filter:{radius:e.Fltr["Rds "],threshold:e.Fltr.Thsh,quality:w.SmBQ.decode(e.Fltr.SmBQ),mode:w.SmBM.decode(e.Fltr.SmBM)}});case"surfaceBlur":return Object.assign(Object.assign({},n),{type:"surface blur",filter:{radius:(0,w.parseUnits)(e.Fltr["Rds "]),threshold:e.Fltr.Thsh}});case"Dspl":return Object.assign(Object.assign({},n),{type:"displace",filter:{horizontalScale:e.Fltr.HrzS,verticalScale:e.Fltr.VrtS,displacementMap:w.DspM.decode(e.Fltr.DspM),undefinedAreas:w.UndA.decode(e.Fltr.UndA),displacementFile:{signature:e.Fltr.DspF.sig,path:e.Fltr.DspF.path}}});case"Pnch":return Object.assign(Object.assign({},n),{type:"pinch",filter:{amount:e.Fltr.Amnt}});case"Plr ":return Object.assign(Object.assign({},n),{type:"polar coordinates",filter:{conversion:w.Cnvr.decode(e.Fltr.Cnvr)}});case"Rple":return Object.assign(Object.assign({},n),{type:"ripple",filter:{amount:e.Fltr.Amnt,size:w.RplS.decode(e.Fltr.RplS)}});case"Shr ":return Object.assign(Object.assign({},n),{type:"shear",filter:{shearPoints:e.Fltr.ShrP.map(i=>({x:i.Hrzn,y:i.Vrtc})),shearStart:e.Fltr.ShrS,shearEnd:e.Fltr.ShrE,undefinedAreas:w.UndA.decode(e.Fltr.UndA)}});case"Sphr":return Object.assign(Object.assign({},n),{type:"spherize",filter:{amount:e.Fltr.Amnt,mode:w.SphM.decode(e.Fltr.SphM)}});case"Twrl":return Object.assign(Object.assign({},n),{type:"twirl",filter:{angle:e.Fltr.Angl}});case"Wave":return Object.assign(Object.assign({},n),{type:"wave",filter:{numberOfGenerators:e.Fltr.NmbG,type:w.Wvtp.decode(e.Fltr.Wvtp),wavelength:{min:e.Fltr.WLMn,max:e.Fltr.WLMx},amplitude:{min:e.Fltr.AmMn,max:e.Fltr.AmMx},scale:{x:e.Fltr.SclH,y:e.Fltr.SclV},randomSeed:e.Fltr.RndS,undefinedAreas:w.UndA.decode(e.Fltr.UndA)}});case"ZgZg":return Object.assign(Object.assign({},n),{type:"zigzag",filter:{amount:e.Fltr.Amnt,ridges:e.Fltr.NmbR,style:w.ZZTy.decode(e.Fltr.ZZTy)}});case"AdNs":return Object.assign(Object.assign({},n),{type:"add noise",filter:{amount:(0,w.parsePercent)(e.Fltr.Nose),distribution:w.Dstr.decode(e.Fltr.Dstr),monochromatic:e.Fltr.Mnch,randomSeed:e.Fltr.FlRs}});case"DstS":return Object.assign(Object.assign({},n),{type:"dust and scratches",filter:{radius:e.Fltr["Rds "],threshold:e.Fltr.Thsh}});case"Mdn ":return Object.assign(Object.assign({},n),{type:"median",filter:{radius:(0,w.parseUnits)(e.Fltr["Rds "])}});case"denoise":return Object.assign(Object.assign({},n),{type:"reduce noise",filter:{preset:e.Fltr.preset,removeJpegArtifact:e.Fltr.removeJPEGArtifact,reduceColorNoise:(0,w.parsePercent)(e.Fltr.ClNs),sharpenDetails:(0,w.parsePercent)(e.Fltr.Shrp),channelDenoise:e.Fltr.channelDenoise.map(i=>Object.assign({channels:i.Chnl.map(w.Chnl.decode),amount:i.Amnt},i.EdgF?{preserveDetails:i.EdgF}:{}))}});case"ClrH":return Object.assign(Object.assign({},n),{type:"color halftone",filter:{radius:e.Fltr["Rds "],angle1:e.Fltr.Ang1,angle2:e.Fltr.Ang2,angle3:e.Fltr.Ang3,angle4:e.Fltr.Ang4}});case"Crst":return Object.assign(Object.assign({},n),{type:"crystallize",filter:{cellSize:e.Fltr.ClSz,randomSeed:e.Fltr.FlRs}});case"Mztn":return Object.assign(Object.assign({},n),{type:"mezzotint",filter:{type:w.MztT.decode(e.Fltr.MztT),randomSeed:e.Fltr.FlRs}});case"Msc ":return Object.assign(Object.assign({},n),{type:"mosaic",filter:{cellSize:(0,w.parseUnits)(e.Fltr.ClSz)}});case"Pntl":return Object.assign(Object.assign({},n),{type:"pointillize",filter:{cellSize:e.Fltr.ClSz,randomSeed:e.Fltr.FlRs}});case"Clds":return Object.assign(Object.assign({},n),{type:"clouds",filter:{randomSeed:e.Fltr.FlRs}});case"DfrC":return Object.assign(Object.assign({},n),{type:"difference clouds",filter:{randomSeed:e.Fltr.FlRs}});case"Fbrs":return Object.assign(Object.assign({},n),{type:"fibers",filter:{variance:e.Fltr.Vrnc,strength:e.Fltr.Strg,randomSeed:e.Fltr.RndS}});case"LnsF":return Object.assign(Object.assign({},n),{type:"lens flare",filter:{brightness:e.Fltr.Brgh,position:{x:e.Fltr.FlrC.Hrzn,y:e.Fltr.FlrC.Vrtc},lensType:w.Lns.decode(e.Fltr["Lns "])}});case"smartSharpen":return Object.assign(Object.assign({},n),{type:"smart sharpen",filter:{amount:(0,w.parsePercent)(e.Fltr.Amnt),radius:(0,w.parseUnits)(e.Fltr["Rds "]),threshold:e.Fltr.Thsh,angle:e.Fltr.Angl,moreAccurate:e.Fltr.moreAccurate,blur:w.blurType.decode(e.Fltr.blur),preset:e.Fltr.preset,shadow:{fadeAmount:(0,w.parsePercent)(e.Fltr.sdwM.Amnt),tonalWidth:(0,w.parsePercent)(e.Fltr.sdwM.Wdth),radius:e.Fltr.sdwM["Rds "]},highlight:{fadeAmount:(0,w.parsePercent)(e.Fltr.hglM.Amnt),tonalWidth:(0,w.parsePercent)(e.Fltr.hglM.Wdth),radius:e.Fltr.hglM["Rds "]}}});case"UnsM":return Object.assign(Object.assign({},n),{type:"unsharp mask",filter:{amount:(0,w.parsePercent)(e.Fltr.Amnt),radius:(0,w.parseUnits)(e.Fltr["Rds "]),threshold:e.Fltr.Thsh}});case"Dfs ":return Object.assign(Object.assign({},n),{type:"diffuse",filter:{mode:w.DfsM.decode(e.Fltr["Md "]),randomSeed:e.Fltr.FlRs}});case"Embs":return Object.assign(Object.assign({},n),{type:"emboss",filter:{angle:e.Fltr.Angl,height:e.Fltr.Hght,amount:e.Fltr.Amnt}});case"Extr":return Object.assign(Object.assign({},n),{type:"extrude",filter:{type:w.ExtT.decode(e.Fltr.ExtT),size:e.Fltr.ExtS,depth:e.Fltr.ExtD,depthMode:w.ExtR.decode(e.Fltr.ExtR),randomSeed:e.Fltr.FlRs,solidFrontFaces:e.Fltr.ExtF,maskIncompleteBlocks:e.Fltr.ExtM}});case"Tls ":return Object.assign(Object.assign({},n),{type:"tiles",filter:{numberOfTiles:e.Fltr.TlNm,maximumOffset:e.Fltr.TlOf,fillEmptyAreaWith:w.FlCl.decode(e.Fltr.FlCl),randomSeed:e.Fltr.FlRs}});case"TrcC":return Object.assign(Object.assign({},n),{type:"trace contour",filter:{level:e.Fltr["Lvl "],edge:w.CntE.decode(e.Fltr["Edg "])}});case"Wnd ":return Object.assign(Object.assign({},n),{type:"wind",filter:{method:w.WndM.decode(e.Fltr.WndM),direction:w.Drct.decode(e.Fltr.Drct)}});case"Dntr":return Object.assign(Object.assign({},n),{type:"de-interlace",filter:{eliminate:w.IntE.decode(e.Fltr.IntE),newFieldsBy:w.IntC.decode(e.Fltr.IntC)}});case"Cstm":return Object.assign(Object.assign({},n),{type:"custom",filter:{scale:e.Fltr["Scl "],offset:e.Fltr.Ofst,matrix:e.Fltr.Mtrx}});case"HghP":return Object.assign(Object.assign({},n),{type:"high pass",filter:{radius:(0,w.parseUnits)(e.Fltr["Rds "])}});case"Mxm ":return Object.assign(Object.assign({},n),{type:"maximum",filter:{radius:(0,w.parseUnits)(e.Fltr["Rds "])}});case"Mnm ":return Object.assign(Object.assign({},n),{type:"minimum",filter:{radius:(0,w.parseUnits)(e.Fltr["Rds "])}});case"Ofst":return Object.assign(Object.assign({},n),{type:"offset",filter:{horizontal:e.Fltr.Hrzn,vertical:e.Fltr.Vrtc,undefinedAreas:w.FlMd.decode(e.Fltr["Fl "])}});case"rigidTransform":return Object.assign(Object.assign({},n),{type:"puppet",filter:{rigidType:e.Fltr.rigidType,bounds:[{x:e.Fltr.PuX0,y:e.Fltr.PuY0},{x:e.Fltr.PuX1,y:e.Fltr.PuY1},{x:e.Fltr.PuX2,y:e.Fltr.PuY2},{x:e.Fltr.PuX3,y:e.Fltr.PuY3}],puppetShapeList:e.Fltr.puppetShapeList.map(i=>({rigidType:i.rigidType,originalVertexArray:bc(i.originalVertexArray),deformedVertexArray:bc(i.deformedVertexArray),indexArray:Array.from(v0(i.indexArray)),pinOffsets:mo(i.pinOffsets),posFinalPins:mo(i.posFinalPins),pinVertexIndices:i.pinVertexIndices,selectedPin:i.selectedPin,pinPosition:mo(i.PinP),pinRotation:i.PnRt,pinOverlay:i.PnOv,pinDepth:i.PnDp,meshQuality:i.meshQuality,meshExpansion:i.meshExpansion,meshRigidity:i.meshRigidity,imageResolution:i.imageResolution,meshBoundaryPath:{pathComponents:i.meshBoundaryPath.pathComponents.map(o=>({shapeOperation:o.shapeOperation.split(".")[1],paths:o.SbpL.map(r=>({closed:r.Clsp,points:r["Pts "].map(s=>({anchor:si(s.Anch),forward:si(s["Fwd "]),backward:si(s["Bwd "]),smooth:s.Smoo}))}))}))}}))}});case"PbPl":{let i=[],o=e.Fltr;for(let r=0;r<Xe.length&&o[`PN${Xe[r]}a`];r++)for(let s=0;s<Xe.length&&o[`PN${Xe[r]}${Xe[s]}`];s++)i.push({name:o[`PN${Xe[r]}${Xe[s]}`],value:o[`PF${Xe[r]}${Xe[s]}`]});return Object.assign(Object.assign({},n),{type:"oil paint plugin",filter:{name:e.Fltr.KnNm,gpu:e.Fltr.GpuY,lighting:e.Fltr.LIWy,parameters:i}})}case"HsbP":return Object.assign(Object.assign({},n),{type:"hsb/hsl",filter:{inputMode:w.ClrS.decode(e.Fltr.Inpt),rowOrder:w.ClrS.decode(e.Fltr.Otpt)}});case"oilPaint":return Object.assign(Object.assign({},n),{type:"oil paint",filter:{lightingOn:e.Fltr.lightingOn,stylization:e.Fltr.stylization,cleanliness:e.Fltr.cleanliness,brushScale:e.Fltr.brushScale,microBrush:e.Fltr.microBrush,lightDirection:e.Fltr.LghD,specularity:e.Fltr.specularity}});case"LqFy":return Object.assign(Object.assign({},n),{type:"liquify",filter:{liquifyMesh:e.Fltr.LqMe}});case"perspectiveWarpTransform":return Object.assign(Object.assign({},n),{type:"perspective warp",filter:{vertices:e.Fltr.vertices.map(si),warpedVertices:e.Fltr.warpedVertices.map(si),quads:e.Fltr.quads.map(i=>i.indices)}});case"Crvs":return Object.assign(Object.assign({},n),{type:"curves",filter:Object.assign({presetKind:w.presetKindType.decode(e.Fltr.presetKind)},e.Fltr.Adjs?{adjustments:e.Fltr.Adjs.map(i=>{let o=i.Chnl.map(w.Chnl.decode);if(i["Crv "])return{channels:o,curve:i["Crv "].map(r=>{let s={x:r.Hrzn,y:r.Vrtc};return r.Cnty&&(s.curved=!0),s})};if(i.Mpng)return{channels:o,values:i.Mpng};throw new Error("Unknown curve adjustment")})}:{})});case"BrgC":return Object.assign(Object.assign({},n),{type:"brightness/contrast",filter:{brightness:e.Fltr.Brgh,contrast:e.Fltr.Cntr,useLegacy:!!e.Fltr.useLegacy}});default:if(t.throwForMissingFeatures)throw new Error(`Unknown filter classId: ${e.Fltr._classID}`);return}else switch(e.filterID){case 1098281575:return Object.assign(Object.assign({},n),{type:"average"});case 1114403360:return Object.assign(Object.assign({},n),{type:"blur"});case 1114403405:return Object.assign(Object.assign({},n),{type:"blur more"});case 1148416099:return Object.assign(Object.assign({},n),{type:"despeckle"});case 1180922912:return Object.assign(Object.assign({},n),{type:"facet"});case 1181902701:return Object.assign(Object.assign({},n),{type:"fragment"});case 1399353968:return Object.assign(Object.assign({},n),{type:"sharpen"});case 1399353925:return Object.assign(Object.assign({},n),{type:"sharpen edges"});case 1399353933:return Object.assign(Object.assign({},n),{type:"sharpen more"});case 1181639749:return Object.assign(Object.assign({},n),{type:"find edges"});case 1399616122:return Object.assign(Object.assign({},n),{type:"solarize"});case 1314149187:return Object.assign(Object.assign({},n),{type:"ntsc colors"});case 1231976050:return Object.assign(Object.assign({},n),{type:"invert"});default:if(t.throwForMissingFeatures)throw new Error(`Unknown filterID: ${e.filterID}`)}}function _0(e,t){return{enabled:e.enab,validAtPosition:e.validAtPosition,maskEnabled:e.filterMaskEnable,maskLinked:e.filterMaskLinked,maskExtendWithWhite:e.filterMaskExtendWithWhite,list:e.filterFXList.map(n=>x0(n,t)).filter(n=>!!n)}}function wt(e){return(0,w.unitsValue)(e.radius,"radius")}function A0(e){let t={_name:"",_classID:"filterFX","Nm ":e.name,blendOptions:{_name:"",_classID:"blendOptions",Opct:(0,w.unitsPercentF)(e.opacity),"Md ":w.BlnM.encode(e.blendMode)},enab:e.enabled,hasoptions:e.hasOptions,FrgC:(0,w.serializeColor)(e.foregroundColor),BckC:(0,w.serializeColor)(e.backgroundColor)};switch(e.type){case"average":return Object.assign(Object.assign({},t),{filterID:1098281575});case"blur":return Object.assign(Object.assign({},t),{filterID:1114403360});case"blur more":return Object.assign(Object.assign({},t),{filterID:1114403405});case"box blur":return Object.assign(Object.assign({},t),{Fltr:{_name:"Box Blur",_classID:"boxblur","Rds ":wt(e.filter)},filterID:697});case"gaussian blur":return Object.assign(Object.assign({},t),{Fltr:{_name:"Gaussian Blur",_classID:"GsnB","Rds ":wt(e.filter)},filterID:1198747202});case"motion blur":return Object.assign(Object.assign({},t),{Fltr:{_name:"Motion Blur",_classID:"MtnB",Angl:e.filter.angle,Dstn:(0,w.unitsValue)(e.filter.distance,"distance")},filterID:1299476034});case"radial blur":return Object.assign(Object.assign({},t),{Fltr:{_name:"Radial Blur",_classID:"RdlB",Amnt:e.filter.amount,BlrM:w.BlrM.encode(e.filter.method),BlrQ:w.BlrQ.encode(e.filter.quality)},filterID:1382313026});case"shape blur":return Object.assign(Object.assign({},t),{Fltr:{_name:"Shape Blur",_classID:"shapeBlur","Rds ":wt(e.filter),customShape:{_name:"",_classID:"customShape","Nm ":e.filter.customShape.name,Idnt:e.filter.customShape.id}},filterID:702});case"smart blur":return Object.assign(Object.assign({},t),{Fltr:{_name:"Smart Blur",_classID:"SmrB","Rds ":e.filter.radius,Thsh:e.filter.threshold,SmBQ:w.SmBQ.encode(e.filter.quality),SmBM:w.SmBM.encode(e.filter.mode)},filterID:1399681602});case"surface blur":return Object.assign(Object.assign({},t),{Fltr:{_name:"Surface Blur",_classID:"surfaceBlur","Rds ":wt(e.filter),Thsh:e.filter.threshold},filterID:701});case"displace":return Object.assign(Object.assign({},t),{Fltr:{_name:"Displace",_classID:"Dspl",HrzS:e.filter.horizontalScale,VrtS:e.filter.verticalScale,DspM:w.DspM.encode(e.filter.displacementMap),UndA:w.UndA.encode(e.filter.undefinedAreas),DspF:{sig:e.filter.displacementFile.signature,path:e.filter.displacementFile.path}},filterID:1148416108});case"pinch":return Object.assign(Object.assign({},t),{Fltr:{_name:"Pinch",_classID:"Pnch",Amnt:e.filter.amount},filterID:1349411688});case"polar coordinates":return Object.assign(Object.assign({},t),{Fltr:{_name:"Polar Coordinates",_classID:"Plr ",Cnvr:w.Cnvr.encode(e.filter.conversion)},filterID:1349284384});case"ripple":return Object.assign(Object.assign({},t),{Fltr:{_name:"Ripple",_classID:"Rple",Amnt:e.filter.amount,RplS:w.RplS.encode(e.filter.size)},filterID:1383099493});case"shear":return Object.assign(Object.assign({},t),{Fltr:{_name:"Shear",_classID:"Shr ",ShrP:e.filter.shearPoints.map(n=>({_name:"",_classID:"Pnt ",Hrzn:n.x,Vrtc:n.y})),UndA:w.UndA.encode(e.filter.undefinedAreas),ShrS:e.filter.shearStart,ShrE:e.filter.shearEnd},filterID:1399353888});case"spherize":return Object.assign(Object.assign({},t),{Fltr:{_name:"Spherize",_classID:"Sphr",Amnt:e.filter.amount,SphM:w.SphM.encode(e.filter.mode)},filterID:1399875698});case"twirl":return Object.assign(Object.assign({},t),{Fltr:{_name:"Twirl",_classID:"Twrl",Angl:e.filter.angle},filterID:1417114220});case"wave":return Object.assign(Object.assign({},t),{Fltr:{_name:"Wave",_classID:"Wave",Wvtp:w.Wvtp.encode(e.filter.type),NmbG:e.filter.numberOfGenerators,WLMn:e.filter.wavelength.min,WLMx:e.filter.wavelength.max,AmMn:e.filter.amplitude.min,AmMx:e.filter.amplitude.max,SclH:e.filter.scale.x,SclV:e.filter.scale.y,UndA:w.UndA.encode(e.filter.undefinedAreas),RndS:e.filter.randomSeed},filterID:1466005093});case"zigzag":return Object.assign(Object.assign({},t),{Fltr:{_name:"ZigZag",_classID:"ZgZg",Amnt:e.filter.amount,NmbR:e.filter.ridges,ZZTy:w.ZZTy.encode(e.filter.style)},filterID:1516722791});case"add noise":return Object.assign(Object.assign({},t),{Fltr:{_name:"Add Noise",_classID:"AdNs",Dstr:w.Dstr.encode(e.filter.distribution),Nose:(0,w.unitsPercentF)(e.filter.amount),Mnch:e.filter.monochromatic,FlRs:e.filter.randomSeed},filterID:1097092723});case"despeckle":return Object.assign(Object.assign({},t),{filterID:1148416099});case"dust and scratches":return Object.assign(Object.assign({},t),{Fltr:{_name:"Dust & Scratches",_classID:"DstS","Rds ":e.filter.radius,Thsh:e.filter.threshold},filterID:1148417107});case"median":return Object.assign(Object.assign({},t),{Fltr:{_name:"Median",_classID:"Mdn ","Rds ":wt(e.filter)},filterID:1298427424});case"reduce noise":return Object.assign(Object.assign({},t),{Fltr:{_name:"Reduce Noise",_classID:"denoise",ClNs:(0,w.unitsPercentF)(e.filter.reduceColorNoise),Shrp:(0,w.unitsPercentF)(e.filter.sharpenDetails),removeJPEGArtifact:e.filter.removeJpegArtifact,channelDenoise:e.filter.channelDenoise.map(n=>Object.assign({_name:"",_classID:"channelDenoiseParams",Chnl:n.channels.map(i=>w.Chnl.encode(i)),Amnt:n.amount},n.preserveDetails?{EdgF:n.preserveDetails}:{})),preset:e.filter.preset},filterID:633});case"color halftone":return Object.assign(Object.assign({},t),{Fltr:{_name:"Color Halftone",_classID:"ClrH","Rds ":e.filter.radius,Ang1:e.filter.angle1,Ang2:e.filter.angle2,Ang3:e.filter.angle3,Ang4:e.filter.angle4},filterID:1131180616});case"crystallize":return Object.assign(Object.assign({},t),{Fltr:{_name:"Crystallize",_classID:"Crst",ClSz:e.filter.cellSize,FlRs:e.filter.randomSeed},filterID:1131574132});case"facet":return Object.assign(Object.assign({},t),{filterID:1180922912});case"fragment":return Object.assign(Object.assign({},t),{filterID:1181902701});case"mezzotint":return Object.assign(Object.assign({},t),{Fltr:{_name:"Mezzotint",_classID:"Mztn",MztT:w.MztT.encode(e.filter.type),FlRs:e.filter.randomSeed},filterID:1299870830});case"mosaic":return Object.assign(Object.assign({},t),{Fltr:{_name:"Mosaic",_classID:"Msc ",ClSz:(0,w.unitsValue)(e.filter.cellSize,"cellSize")},filterID:1299407648});case"pointillize":return Object.assign(Object.assign({},t),{Fltr:{_name:"Pointillize",_classID:"Pntl",ClSz:e.filter.cellSize,FlRs:e.filter.randomSeed},filterID:1349416044});case"clouds":return Object.assign(Object.assign({},t),{Fltr:{_name:"Clouds",_classID:"Clds",FlRs:e.filter.randomSeed},filterID:1131177075});case"difference clouds":return Object.assign(Object.assign({},t),{Fltr:{_name:"Difference Clouds",_classID:"DfrC",FlRs:e.filter.randomSeed},filterID:1147564611});case"fibers":return Object.assign(Object.assign({},t),{Fltr:{_name:"Fibers",_classID:"Fbrs",Vrnc:e.filter.variance,Strg:e.filter.strength,RndS:e.filter.randomSeed},filterID:1180856947});case"lens flare":return Object.assign(Object.assign({},t),{Fltr:{_name:"Lens Flare",_classID:"LnsF",Brgh:e.filter.brightness,FlrC:{_name:"",_classID:"Pnt ",Hrzn:e.filter.position.x,Vrtc:e.filter.position.y},"Lns ":w.Lns.encode(e.filter.lensType)},filterID:1282306886});case"sharpen":return Object.assign(Object.assign({},t),{filterID:1399353968});case"sharpen edges":return Object.assign(Object.assign({},t),{filterID:1399353925});case"sharpen more":return Object.assign(Object.assign({},t),{filterID:1399353933});case"smart sharpen":return Object.assign(Object.assign({},t),{Fltr:{_name:"Smart Sharpen",_classID:"smartSharpen",Amnt:(0,w.unitsPercentF)(e.filter.amount),"Rds ":wt(e.filter),Thsh:e.filter.threshold,Angl:e.filter.angle,moreAccurate:e.filter.moreAccurate,blur:w.blurType.encode(e.filter.blur),preset:e.filter.preset,sdwM:{_name:"Parameters",_classID:"adaptCorrectTones",Amnt:(0,w.unitsPercentF)(e.filter.shadow.fadeAmount),Wdth:(0,w.unitsPercentF)(e.filter.shadow.tonalWidth),"Rds ":e.filter.shadow.radius},hglM:{_name:"Parameters",_classID:"adaptCorrectTones",Amnt:(0,w.unitsPercentF)(e.filter.highlight.fadeAmount),Wdth:(0,w.unitsPercentF)(e.filter.highlight.tonalWidth),"Rds ":e.filter.highlight.radius}},filterID:698});case"unsharp mask":return Object.assign(Object.assign({},t),{Fltr:{_name:"Unsharp Mask",_classID:"UnsM",Amnt:(0,w.unitsPercentF)(e.filter.amount),"Rds ":wt(e.filter),Thsh:e.filter.threshold},filterID:1433301837});case"diffuse":return Object.assign(Object.assign({},t),{Fltr:{_name:"Diffuse",_classID:"Dfs ","Md ":w.DfsM.encode(e.filter.mode),FlRs:e.filter.randomSeed},filterID:1147564832});case"emboss":return Object.assign(Object.assign({},t),{Fltr:{_name:"Emboss",_classID:"Embs",Angl:e.filter.angle,Hght:e.filter.height,Amnt:e.filter.amount},filterID:1164796531});case"extrude":return Object.assign(Object.assign({},t),{Fltr:{_name:"Extrude",_classID:"Extr",ExtS:e.filter.size,ExtD:e.filter.depth,ExtF:e.filter.solidFrontFaces,ExtM:e.filter.maskIncompleteBlocks,ExtT:w.ExtT.encode(e.filter.type),ExtR:w.ExtR.encode(e.filter.depthMode),FlRs:e.filter.randomSeed},filterID:1165522034});case"find edges":return Object.assign(Object.assign({},t),{filterID:1181639749});case"solarize":return Object.assign(Object.assign({},t),{filterID:1399616122});case"tiles":return Object.assign(Object.assign({},t),{Fltr:{_name:"Tiles",_classID:"Tls ",TlNm:e.filter.numberOfTiles,TlOf:e.filter.maximumOffset,FlCl:w.FlCl.encode(e.filter.fillEmptyAreaWith),FlRs:e.filter.randomSeed},filterID:1416393504});case"trace contour":return Object.assign(Object.assign({},t),{Fltr:{_name:"Trace Contour",_classID:"TrcC","Lvl ":e.filter.level,"Edg ":w.CntE.encode(e.filter.edge)},filterID:1416782659});case"wind":return Object.assign(Object.assign({},t),{Fltr:{_name:"Wind",_classID:"Wnd ",WndM:w.WndM.encode(e.filter.method),Drct:w.Drct.encode(e.filter.direction)},filterID:1466852384});case"de-interlace":return Object.assign(Object.assign({},t),{Fltr:{_name:"De-Interlace",_classID:"Dntr",IntE:w.IntE.encode(e.filter.eliminate),IntC:w.IntC.encode(e.filter.newFieldsBy)},filterID:1148089458});case"ntsc colors":return Object.assign(Object.assign({},t),{filterID:1314149187});case"invert":return Object.assign(Object.assign({},t),{filterID:1231976050});case"custom":return Object.assign(Object.assign({},t),{Fltr:{_name:"Custom",_classID:"Cstm","Scl ":e.filter.scale,Ofst:e.filter.offset,Mtrx:e.filter.matrix},filterID:1131639917});case"high pass":return Object.assign(Object.assign({},t),{Fltr:{_name:"High Pass",_classID:"HghP","Rds ":wt(e.filter)},filterID:1214736464});case"maximum":return Object.assign(Object.assign({},t),{Fltr:{_name:"Maximum",_classID:"Mxm ","Rds ":wt(e.filter)},filterID:1299737888});case"minimum":return Object.assign(Object.assign({},t),{Fltr:{_name:"Minimum",_classID:"Mnm ","Rds ":wt(e.filter)},filterID:1299082528});case"offset":return Object.assign(Object.assign({},t),{Fltr:{_name:"Offset",_classID:"Ofst",Hrzn:e.filter.horizontal,Vrtc:e.filter.vertical,"Fl ":w.FlMd.encode(e.filter.undefinedAreas)},filterID:1332114292});case"puppet":return Object.assign(Object.assign({},t),{Fltr:{_name:"Rigid Transform",_classID:"rigidTransform",null:["Ordn.Trgt"],rigidType:e.filter.rigidType,puppetShapeList:e.filter.puppetShapeList.map(n=>({_name:"",_classID:"puppetShape",rigidType:n.rigidType,VrsM:1,VrsN:0,originalVertexArray:Vr(new Float32Array(ri(n.originalVertexArray))),deformedVertexArray:Vr(new Float32Array(ri(n.deformedVertexArray))),indexArray:Vr(new Uint32Array(n.indexArray)),pinOffsets:ri(n.pinOffsets),posFinalPins:ri(n.posFinalPins),pinVertexIndices:n.pinVertexIndices,PinP:ri(n.pinPosition),PnRt:n.pinRotation,PnOv:n.pinOverlay,PnDp:n.pinDepth,meshQuality:n.meshQuality,meshExpansion:n.meshExpansion,meshRigidity:n.meshRigidity,imageResolution:n.imageResolution,meshBoundaryPath:{_name:"",_classID:"pathClass",pathComponents:n.meshBoundaryPath.pathComponents.map(i=>({_name:"",_classID:"PaCm",shapeOperation:`shapeOperation.${i.shapeOperation}`,SbpL:i.paths.map(o=>({_name:"",_classID:"Sbpl",Clsp:o.closed,"Pts ":o.points.map(r=>({_name:"",_classID:"Pthp",Anch:ai(r.anchor),"Fwd ":ai(r.forward),"Bwd ":ai(r.backward),Smoo:r.smooth}))}))}))},selectedPin:n.selectedPin})),PuX0:e.filter.bounds[0].x,PuX1:e.filter.bounds[1].x,PuX2:e.filter.bounds[2].x,PuX3:e.filter.bounds[3].x,PuY0:e.filter.bounds[0].y,PuY1:e.filter.bounds[1].y,PuY2:e.filter.bounds[2].y,PuY3:e.filter.bounds[3].y},filterID:991});case"oil paint plugin":{let n={};for(let i=0;i<e.filter.parameters.length;i++){let{name:o,value:r}=e.filter.parameters[i],s=`${Xe[Math.floor(i/Xe.length)]}${Xe[i%Xe.length]}`;n[`PN${s}`]=o,n[`PT${s}`]=0,n[`PF${s}`]=r}return Object.assign(Object.assign({},t),{Fltr:Object.assign({_name:"Oil Paint Plugin",_classID:"PbPl",KnNm:e.filter.name,GpuY:e.filter.gpu,LIWy:e.filter.lighting,FPth:"1"},n),filterID:1348620396})}case"oil paint":return Object.assign(Object.assign({},t),{Fltr:{_name:"Oil Paint",_classID:"oilPaint",lightingOn:e.filter.lightingOn,stylization:e.filter.stylization,cleanliness:e.filter.cleanliness,brushScale:e.filter.brushScale,microBrush:e.filter.microBrush,LghD:e.filter.lightDirection,specularity:e.filter.specularity},filterID:1122});case"liquify":return Object.assign(Object.assign({},t),{Fltr:{_name:"Liquify",_classID:"LqFy",LqMe:e.filter.liquifyMesh},filterID:1282492025});case"perspective warp":return Object.assign(Object.assign({},t),{Fltr:{_name:"Perspective Warp",_classID:"perspectiveWarpTransform",vertices:e.filter.vertices.map(ai),warpedVertices:e.filter.warpedVertices.map(ai),quads:e.filter.quads.map(n=>({indices:n}))},filterID:442});case"curves":return Object.assign(Object.assign({},t),{Fltr:Object.assign({_name:"Curves",_classID:"Crvs",presetKind:w.presetKindType.encode(e.filter.presetKind)},e.filter.adjustments?{Adjs:e.filter.adjustments.map(n=>"curve"in n?{_name:"",_classID:"CrvA",Chnl:n.channels.map(w.Chnl.encode),"Crv ":n.curve.map(i=>Object.assign({_name:"",_classID:"Pnt ",Hrzn:i.x,Vrtc:i.y},i.curved?{Cnty:!0}:{}))}:{_name:"",_classID:"CrvA",Chnl:n.channels.map(w.Chnl.encode),Mpng:n.values})}:{}),filterID:1131574899});case"brightness/contrast":return Object.assign(Object.assign({},t),{Fltr:{_name:"Brightness/Contrast",_classID:"BrgC",Brgh:e.filter.brightness,Cntr:e.filter.contrast,useLegacy:!!e.filter.useLegacy},filterID:1114793795});default:throw new Error(`Unknow filter type: ${e.type}`)}}function Ic(e){if(e.warp)return e.warp;if(!e.width||!e.height)throw new Error("You must provide width and height of the linked image in placedLayer");let t=e.width,n=e.height,i=0,o=t/3,r=t*2/3,s=t,a=0,l=n/3,c=n*2/3,d=n;return{style:"custom",value:0,perspective:0,perspectiveOther:0,rotate:"horizontal",bounds:{top:{value:0,units:"Pixels"},left:{value:0,units:"Pixels"},bottom:{value:n,units:"Pixels"},right:{value:t,units:"Pixels"}},uOrder:4,vOrder:4,customEnvelopeWarp:{meshPoints:[{x:i,y:a},{x:o,y:a},{x:r,y:a},{x:s,y:a},{x:i,y:l},{x:o,y:l},{x:r,y:l},{x:s,y:l},{x:i,y:c},{x:o,y:c},{x:r,y:c},{x:s,y:c},{x:i,y:d},{x:o,y:d},{x:r,y:d},{x:s,y:d}]}}}L("SoLd",ae("placedLayer"),(e,t,n)=>{if((0,b.readSignature)(e)!=="soLD")throw new Error("Invalid SoLd type");let i=(0,b.readInt32)(e);if(i!==4&&i!==5)throw new Error("Invalid SoLd version");let o=(0,w.readVersionAndDescriptor)(e,!0);t.placedLayer={id:o.Idnt,placed:o.placed,type:Ln[o.Type],pageNumber:o.PgNm,totalPages:o.totalPages,frameStep:(0,w.frac)(o.frameStep),duration:(0,w.frac)(o.duration),frameCount:o.frameCount,transform:o.Trnf,width:o["Sz "].Wdth,height:o["Sz "].Hght,resolution:(0,w.parseUnits)(o.Rslt),warp:kc(o.quiltWarp||o.warp)},o.nonAffineTransform&&o.nonAffineTransform.some((r,s)=>r!==o.Trnf[s])&&(t.placedLayer.nonAffineTransform=o.nonAffineTransform),o.Crop&&(t.placedLayer.crop=o.Crop),o.comp&&(t.placedLayer.comp=o.comp),o.compInfo&&(t.placedLayer.compInfo={compID:o.compInfo.compID,originalCompID:o.compInfo.originalCompID}),o.filterFX&&(t.placedLayer.filter=_0(o.filterFX,e)),(0,b.skipBytes)(e,n())},(e,t)=>{var n,i;(0,y.writeSignature)(e,"soLD"),(0,y.writeInt32)(e,4);let o=t.placedLayer;if(!o.id||typeof o.id!="string"||!/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(o.id))throw new Error("Placed layer ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)");let r=Object.assign(Object.assign({Idnt:o.id,placed:(n=o.placed)!==null&&n!==void 0?n:o.id,PgNm:o.pageNumber||1,totalPages:o.totalPages||1},o.crop?{Crop:o.crop}:{}),{frameStep:o.frameStep||{numerator:0,denominator:600},duration:o.duration||{numerator:0,denominator:600},frameCount:o.frameCount||0,Annt:16,Type:Ln.indexOf(o.type),Trnf:o.transform,nonAffineTransform:(i=o.nonAffineTransform)!==null&&i!==void 0?i:o.transform,warp:go(Ic(o)),"Sz ":{_name:"",_classID:"Pnt ",Wdth:o.width||0,Hght:o.height||0},Rslt:o.resolution?(0,w.unitsValue)(o.resolution,"resolution"):{units:"Density",value:72}});if(o.filter&&(r.filterFX={_name:"",_classID:"filterFXStyle",enab:o.filter.enabled,validAtPosition:o.filter.validAtPosition,filterMaskEnable:o.filter.maskEnabled,filterMaskLinked:o.filter.maskLinked,filterMaskExtendWithWhite:o.filter.maskExtendWithWhite,filterFXList:o.filter.list.map(s=>A0(s))}),o.warp&&Xr(o.warp)){let s=go(o.warp);r.quiltWarp=s,r.warp={warpStyle:"warpStyle.warpNone",warpValue:s.warpValue,warpPerspective:s.warpPerspective,warpPerspectiveOther:s.warpPerspectiveOther,warpRotate:s.warpRotate,bounds:s.bounds,uOrder:s.uOrder,vOrder:s.vOrder}}else delete r.quiltWarp;o.comp&&(r.comp=o.comp),o.compInfo&&(r.compInfo=o.compInfo),(0,w.writeVersionAndDescriptor)(e,"","null",r,r.quiltWarp?"quiltWarp":"warp")});Gt("SoLE","SoLd");L("fxrp",ae("referencePoint"),(e,t)=>{t.referencePoint={x:(0,b.readFloat64)(e),y:(0,b.readFloat64)(e)}},(e,t)=>{(0,y.writeFloat64)(e,t.referencePoint.x),(0,y.writeFloat64)(e,t.referencePoint.y)});L("Lr16",()=>!1,(e,t,n,i,o)=>{(0,b.readLayerInfo)(e,i,o)},(e,t)=>{});L("Lr32",()=>!1,(e,t,n,i,o)=>{(0,b.readLayerInfo)(e,i,o)},(e,t)=>{});L("LMsk",ae("userMask"),(e,t)=>{if(t.userMask={colorSpace:(0,b.readColor)(e),opacity:(0,b.readUint16)(e)/255},(0,b.readUint8)(e)!==128)throw new Error("Invalid flag value");(0,b.skipBytes)(e,1)},(e,t)=>{let n=t.userMask;(0,y.writeColor)(e,n.colorSpace),(0,y.writeUint16)(e,(0,Ze.clamp)(n.opacity,0,1)*255),(0,y.writeUint8)(e,128),(0,y.writeZeros)(e,1)});Ze.MOCK_HANDLERS?L("Patt",e=>e._Patt!==void 0,(e,t,n)=>{t._Patt=(0,b.readBytes)(e,n())},(e,t)=>!1):L("Patt",e=>!!(e.patterns&&e.patterns.length>0),(e,t,n)=>{for(;n()>0;){let i=(0,b.readPattern)(e);t.patterns===void 0&&(t.patterns=[]),t.patterns.push(i)}},(e,t,n,i)=>{let o=t.patterns||[];for(let r of o)(0,y.writePattern)(e,r)});Gt("Pat2","Patt");Gt("Pat3","Patt");Ze.MOCK_HANDLERS&&L("CAI ",e=>e._CAI_!==void 0,(e,t,n)=>{t._CAI_=(0,b.readBytes)(e,n())},(e,t)=>{(0,y.writeBytes)(e,t._CAI_)});Ze.MOCK_HANDLERS&&L("OCIO",e=>e._OCIO!==void 0,(e,t,n)=>{t._OCIO=(0,b.readBytes)(e,n())},(e,t)=>{(0,y.writeBytes)(e,t._OCIO)});Ze.MOCK_HANDLERS&&L("GenI",e=>e._GenI!==void 0,(e,t,n)=>{t._GenI=(0,b.readBytes)(e,n())},(e,t)=>{(0,y.writeBytes)(e,t._GenI)});function yc(e){let t=(0,b.readInt32)(e),n=(0,b.readInt32)(e),i=(0,b.readInt32)(e),o=(0,b.readInt32)(e);return{top:t,left:n,bottom:i,right:o}}function wc(e,t){(0,y.writeInt32)(e,t.top),(0,y.writeInt32)(e,t.left),(0,y.writeInt32)(e,t.bottom),(0,y.writeInt32)(e,t.right)}L("Anno",e=>e.annotations!==void 0,(e,t,n)=>{let i=(0,b.readUint16)(e),o=(0,b.readUint16)(e);if(i!==2||o!==1)throw new Error("Invalid Anno version");let r=(0,b.readUint32)(e),s=[];for(let a=0;a<r;a++){(0,b.readUint32)(e);let l=(0,b.readSignature)(e),c=!!(0,b.readUint8)(e);(0,b.readUint8)(e),(0,b.readUint16)(e);let d=yc(e),u=yc(e),f=(0,b.readColor)(e),h=(0,b.readPascalString)(e,2),p=(0,b.readPascalString)(e,2),S=(0,b.readPascalString)(e,2);(0,b.readUint32)(e),(0,b.readSignature)(e);let m=(0,b.readUint32)(e),g;if(l==="txtA")m>=2&&(0,b.readUint16)(e)===65279?g=(0,b.readUnicodeStringWithLength)(e,(m-2)/2):(e.offset-=2,g=(0,b.readAsciiString)(e,m)),g=g.replace(/\r/g,`
11
- `);else if(l==="sndA")g=(0,b.readBytes)(e,m);else throw new Error("Unknown annotation type");s.push({type:l==="txtA"?"text":"sound",open:c,iconLocation:d,popupLocation:u,color:f,author:h,name:p,date:S,data:g})}t.annotations=s,(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.annotations;(0,y.writeUint16)(e,2),(0,y.writeUint16)(e,1),(0,y.writeUint32)(e,n.length);for(let i of n){let o=i.type==="sound";if(o&&!(i.data instanceof Uint8Array))throw new Error("Sound annotation data should be Uint8Array");if(!o&&typeof i.data!="string")throw new Error("Text annotation data should be string");let r=e.offset;(0,y.writeUint32)(e,0),(0,y.writeSignature)(e,o?"sndA":"txtA"),(0,y.writeUint8)(e,i.open?1:0),(0,y.writeUint8)(e,28),(0,y.writeUint16)(e,1),wc(e,i.iconLocation),wc(e,i.popupLocation),(0,y.writeColor)(e,i.color),(0,y.writePascalString)(e,i.author||"",2),(0,y.writePascalString)(e,i.name||"",2),(0,y.writePascalString)(e,i.date||"",2);let s=e.offset;(0,y.writeUint32)(e,0),(0,y.writeSignature)(e,o?"sndM":"txtC"),(0,y.writeUint32)(e,0);let a=e.offset;if(o)(0,y.writeBytes)(e,i.data);else{(0,y.writeUint16)(e,65279);let l=i.data.replace(/\n/g,"\r");for(let c=0;c<l.length;c++)(0,y.writeUint16)(e,l.charCodeAt(c))}e.view.setUint32(r,e.offset-r,!1),e.view.setUint32(s,e.offset-s,!1),e.view.setUint32(a-4,e.offset-a,!1)}});function Dc(e){L(e,t=>{let n=t;return!(!n.linkedFiles||!n.linkedFiles.length||e==="lnkE"&&!n.linkedFiles.some(i=>i.linkedFile))},(t,n,i,o)=>{let r=n;for(r.linkedFiles=r.linkedFiles||[];i()>8;){let s=$r(t),a=t.offset,l=(0,b.readSignature)(t),c=(0,b.readInt32)(t),d=(0,b.readPascalString)(t,1),u=(0,b.readUnicodeString)(t),f=(0,b.readSignature)(t).trim(),h=(0,b.readSignature)(t).trim(),p=$r(t),m=(0,b.readUint8)(t)?(0,w.readVersionAndDescriptor)(t):void 0,g=l==="liFE"?(0,w.readVersionAndDescriptor)(t):void 0,v={id:d,name:u};if(f&&(v.type=f),h&&(v.creator=h),m&&(v.descriptor={compInfo:{compID:m.compInfo.compID,originalCompID:m.compInfo.originalCompID}}),l==="liFE"&&c>3){let _=(0,b.readInt32)(t),I=(0,b.readUint8)(t),P=(0,b.readUint8)(t),k=(0,b.readUint8)(t),E=(0,b.readUint8)(t),O=(0,b.readFloat64)(t),U=Math.floor(O),M=(O-U)*1e3;v.time=new Date(Date.UTC(_,I,P,k,E,U,M)).toISOString()}let x=l==="liFE"?$r(t):0;for(l==="liFA"&&(0,b.skipBytes)(t,8),l==="liFD"&&(v.data=(0,b.readBytes)(t,p)),c>=5&&(v.childDocumentID=(0,b.readUnicodeString)(t)),c>=6&&(v.assetModTime=(0,b.readFloat64)(t)),c>=7&&(v.assetLockedState=(0,b.readUint8)(t)),l==="liFE"&&c===2&&(v.data=(0,b.readBytes)(t,x)),t.skipLinkedFilesData&&(v.data=void 0),e==="lnkE"&&(v.linkedFile={fileSize:x,name:g?.["Nm "]||"",fullPath:g?.fullPath||"",originalPath:g?.originalPath||"",relativePath:g?.relPath||""}),r.linkedFiles.push(v);s%4;)s++;t.offset=a+s}(0,b.skipBytes)(t,i())},(t,n)=>{var i,o,r,s,a,l,c,d,u;let f=n;for(let h of f.linkedFiles){if(e==="lnkE"!=!!h.linkedFile)continue;let p=2;h.assetLockedState!=null?p=7:h.assetModTime!=null?p=6:h.childDocumentID!=null?p=5:e==="lnkE"&&(p=3),Nr(t,0);let S=t.offset;if((0,y.writeSignature)(t,e==="lnkE"?"liFE":h.data?"liFD":"liFA"),(0,y.writeInt32)(t,p),!h.id||typeof h.id!="string"||!/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(h.id))throw new Error("Linked file ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)");if((0,y.writePascalString)(t,h.id,1),(0,y.writeUnicodeStringWithPadding)(t,h.name||""),(0,y.writeSignature)(t,h.type?`${h.type} `.substring(0,4):" "),(0,y.writeSignature)(t,h.creator?`${h.creator} `.substring(0,4):"\0\0\0\0"),Nr(t,h.data?h.data.byteLength:0),h.descriptor&&h.descriptor.compInfo){let g={compInfo:{compID:h.descriptor.compInfo.compID,originalCompID:h.descriptor.compInfo.originalCompID}};(0,y.writeUint8)(t,1),(0,w.writeVersionAndDescriptor)(t,"","null",g)}else(0,y.writeUint8)(t,0);if(e==="lnkE"){let g={descVersion:2,"Nm ":(o=(i=h.linkedFile)===null||i===void 0?void 0:i.name)!==null&&o!==void 0?o:"",fullPath:(s=(r=h.linkedFile)===null||r===void 0?void 0:r.fullPath)!==null&&s!==void 0?s:"",originalPath:(l=(a=h.linkedFile)===null||a===void 0?void 0:a.originalPath)!==null&&l!==void 0?l:"",relPath:(d=(c=h.linkedFile)===null||c===void 0?void 0:c.relativePath)!==null&&d!==void 0?d:""};(0,w.writeVersionAndDescriptor)(t,"","ExternalFileLink",g);let v=h.time?new Date(h.time):new Date;(0,y.writeInt32)(t,v.getUTCFullYear()),(0,y.writeUint8)(t,v.getUTCMonth()),(0,y.writeUint8)(t,v.getUTCDate()),(0,y.writeUint8)(t,v.getUTCHours()),(0,y.writeUint8)(t,v.getUTCMinutes()),(0,y.writeFloat64)(t,v.getUTCSeconds()+v.getUTCMilliseconds()/1e3)}h.data?(0,y.writeBytes)(t,h.data):Nr(t,((u=h.linkedFile)===null||u===void 0?void 0:u.fileSize)||0),p>=5&&(0,y.writeUnicodeStringWithPadding)(t,h.childDocumentID||""),p>=6&&(0,y.writeFloat64)(t,h.assetModTime||0),p>=7&&(0,y.writeUint8)(t,h.assetLockedState||0);let m=t.offset-S;for(t.view.setUint32(S-4,m,!1);m%4;)m++,(0,y.writeUint8)(t,0)}})}Dc("lnk2");Dc("lnkE");Gt("lnkD","lnk2");Gt("lnk3","lnk2");L("pths",ae("pathList"),(e,t)=>{(0,w.readVersionAndDescriptor)(e,!0),t.pathList=[]},(e,t)=>{let n={pathList:[]};(0,w.writeVersionAndDescriptor)(e,"","pathsDataClass",n)});L("lyvr",ae("version"),(e,t)=>t.version=(0,b.readUint32)(e),(e,t)=>(0,y.writeUint32)(e,t.version));L("lfxs",()=>!1,(e,t,n)=>{if((0,b.readUint32)(e)!==0)throw new Error("Invalid lfxs version");let o=(0,w.readVersionAndDescriptor)(e);t.effects=(0,w.parseEffects)(o,!!e.logMissingFeatures),(0,b.skipBytes)(e,n())},(e,t,n,i)=>{let o=(0,w.serializeEffects)(t.effects,!!i.logMissingFeatures,!0);(0,y.writeUint32)(e,0),(0,w.writeVersionAndDescriptor)(e,"","null",o)});function Fe(e){return t=>!!t.adjustment&&t.adjustment.type===e}L("brit",Fe("brightness/contrast"),(e,t,n)=>{t.adjustment||(t.adjustment={type:"brightness/contrast",brightness:(0,b.readInt16)(e),contrast:(0,b.readInt16)(e),meanValue:(0,b.readInt16)(e),labColorOnly:!!(0,b.readUint8)(e),useLegacy:!0}),(0,b.skipBytes)(e,n())},(e,t)=>{var n;let i=t.adjustment;(0,y.writeInt16)(e,i.brightness||0),(0,y.writeInt16)(e,i.contrast||0),(0,y.writeInt16)(e,(n=i.meanValue)!==null&&n!==void 0?n:127),(0,y.writeUint8)(e,i.labColorOnly?1:0),(0,y.writeZeros)(e,1)});function fo(e){let t=(0,b.readInt16)(e),n=(0,b.readInt16)(e),i=(0,b.readInt16)(e),o=(0,b.readInt16)(e),r=(0,b.readInt16)(e)/100;return{shadowInput:t,highlightInput:n,shadowOutput:i,highlightOutput:o,midtoneInput:r}}function li(e,t){(0,y.writeInt16)(e,t.shadowInput),(0,y.writeInt16)(e,t.highlightInput),(0,y.writeInt16)(e,t.shadowOutput),(0,y.writeInt16)(e,t.highlightOutput),(0,y.writeInt16)(e,Math.round(t.midtoneInput*100))}L("levl",Fe("levels"),(e,t,n)=>{if((0,b.readUint16)(e)!==2)throw new Error("Invalid levl version");t.adjustment=Object.assign(Object.assign({},t.adjustment),{type:"levels",rgb:fo(e),red:fo(e),green:fo(e),blue:fo(e)}),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,i={shadowInput:0,highlightInput:255,shadowOutput:0,highlightOutput:255,midtoneInput:1};(0,y.writeUint16)(e,2),li(e,n.rgb||i),li(e,n.red||i),li(e,n.green||i),li(e,n.blue||i);for(let o=0;o<59;o++)li(e,i)});function uo(e){let t=(0,b.readUint16)(e),n=[];for(let i=0;i<t;i++){let o=(0,b.readInt16)(e),r=(0,b.readInt16)(e);n.push({input:r,output:o})}return n}function Vt(e,t){(0,y.writeUint16)(e,t.length);for(let n of t)(0,y.writeUint16)(e,n.output),(0,y.writeUint16)(e,n.input)}L("curv",Fe("curves"),(e,t,n)=>{if((0,b.readUint8)(e),(0,b.readUint16)(e)!==1)throw new Error("Invalid curv version");(0,b.readUint16)(e);let i=(0,b.readUint16)(e),o={type:"curves"};i&1&&(o.rgb=uo(e)),i&2&&(o.red=uo(e)),i&4&&(o.green=uo(e)),i&8&&(o.blue=uo(e)),t.adjustment=Object.assign(Object.assign({},t.adjustment),o),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,{rgb:i,red:o,green:r,blue:s}=n,a=0,l=0;i&&i.length&&(a|=1,l++),o&&o.length&&(a|=2,l++),r&&r.length&&(a|=4,l++),s&&s.length&&(a|=8,l++),(0,y.writeUint8)(e,0),(0,y.writeUint16)(e,1),(0,y.writeUint16)(e,0),(0,y.writeUint16)(e,a),i&&i.length&&Vt(e,i),o&&o.length&&Vt(e,o),r&&r.length&&Vt(e,r),s&&s.length&&Vt(e,s),(0,y.writeSignature)(e,"Crv "),(0,y.writeUint16)(e,4),(0,y.writeUint16)(e,0),(0,y.writeUint16)(e,l),i&&i.length&&((0,y.writeUint16)(e,0),Vt(e,i)),o&&o.length&&((0,y.writeUint16)(e,1),Vt(e,o)),r&&r.length&&((0,y.writeUint16)(e,2),Vt(e,r)),s&&s.length&&((0,y.writeUint16)(e,3),Vt(e,s))});L("expA",Fe("exposure"),(e,t,n)=>{if((0,b.readUint16)(e)!==1)throw new Error("Invalid expA version");t.adjustment=Object.assign(Object.assign({},t.adjustment),{type:"exposure",exposure:(0,b.readFloat32)(e),offset:(0,b.readFloat32)(e),gamma:(0,b.readFloat32)(e)}),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,1),(0,y.writeFloat32)(e,n.exposure),(0,y.writeFloat32)(e,n.offset),(0,y.writeFloat32)(e,n.gamma),(0,y.writeZeros)(e,2)});L("vibA",Fe("vibrance"),(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);t.adjustment={type:"vibrance"},i.vibrance!==void 0&&(t.adjustment.vibrance=i.vibrance),i.Strt!==void 0&&(t.adjustment.saturation=i.Strt),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,i={};n.vibrance!==void 0&&(i.vibrance=n.vibrance),n.saturation!==void 0&&(i.Strt=n.saturation),(0,w.writeVersionAndDescriptor)(e,"","null",i)});function on(e){return{a:(0,b.readInt16)(e),b:(0,b.readInt16)(e),c:(0,b.readInt16)(e),d:(0,b.readInt16)(e),hue:(0,b.readInt16)(e),saturation:(0,b.readInt16)(e),lightness:(0,b.readInt16)(e)}}function rn(e,t){let n=t||{};(0,y.writeInt16)(e,n.a||0),(0,y.writeInt16)(e,n.b||0),(0,y.writeInt16)(e,n.c||0),(0,y.writeInt16)(e,n.d||0),(0,y.writeInt16)(e,n.hue||0),(0,y.writeInt16)(e,n.saturation||0),(0,y.writeInt16)(e,n.lightness||0)}L("hue2",Fe("hue/saturation"),(e,t,n)=>{if((0,b.readUint16)(e)!==2)throw new Error("Invalid hue2 version");t.adjustment=Object.assign(Object.assign({},t.adjustment),{type:"hue/saturation",master:on(e),reds:on(e),yellows:on(e),greens:on(e),cyans:on(e),blues:on(e),magentas:on(e)}),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,2),rn(e,n.master),rn(e,n.reds),rn(e,n.yellows),rn(e,n.greens),rn(e,n.cyans),rn(e,n.blues),rn(e,n.magentas)});function Gr(e){return{cyanRed:(0,b.readInt16)(e),magentaGreen:(0,b.readInt16)(e),yellowBlue:(0,b.readInt16)(e)}}function Hr(e,t){(0,y.writeInt16)(e,t.cyanRed||0),(0,y.writeInt16)(e,t.magentaGreen||0),(0,y.writeInt16)(e,t.yellowBlue||0)}L("blnc",Fe("color balance"),(e,t,n)=>{t.adjustment={type:"color balance",shadows:Gr(e),midtones:Gr(e),highlights:Gr(e),preserveLuminosity:!!(0,b.readUint8)(e)},(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;Hr(e,n.shadows||{}),Hr(e,n.midtones||{}),Hr(e,n.highlights||{}),(0,y.writeUint8)(e,n.preserveLuminosity?1:0),(0,y.writeZeros)(e,1)});L("blwh",Fe("black & white"),(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);t.adjustment={type:"black & white",reds:i["Rd "],yellows:i.Yllw,greens:i["Grn "],cyans:i["Cyn "],blues:i["Bl "],magentas:i.Mgnt,useTint:!!i.useTint,presetKind:i.bwPresetKind,presetFileName:i.blackAndWhitePresetFileName},i.tintColor!==void 0&&(t.adjustment.tintColor=(0,w.parseColor)(i.tintColor)),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,i={"Rd ":n.reds||0,Yllw:n.yellows||0,"Grn ":n.greens||0,"Cyn ":n.cyans||0,"Bl ":n.blues||0,Mgnt:n.magentas||0,useTint:!!n.useTint,tintColor:(0,w.serializeColor)(n.tintColor),bwPresetKind:n.presetKind||0,blackAndWhitePresetFileName:n.presetFileName||""};(0,w.writeVersionAndDescriptor)(e,"","null",i)});L("phfl",Fe("photo filter"),(e,t,n)=>{let i=(0,b.readUint16)(e);if(i!==2&&i!==3)throw new Error("Invalid phfl version");let o;i===2?o=(0,b.readColor)(e):o={l:(0,b.readInt32)(e)/100,a:(0,b.readInt32)(e)/100,b:(0,b.readInt32)(e)/100},t.adjustment={type:"photo filter",color:o,density:(0,b.readUint32)(e)/100,preserveLuminosity:!!(0,b.readUint8)(e)},(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,2),(0,y.writeColor)(e,n.color||{l:0,a:0,b:0}),(0,y.writeUint32)(e,(n.density||0)*100),(0,y.writeUint8)(e,n.preserveLuminosity?1:0),(0,y.writeZeros)(e,3)});function ho(e){let t=(0,b.readInt16)(e),n=(0,b.readInt16)(e),i=(0,b.readInt16)(e);(0,b.skipBytes)(e,2);let o=(0,b.readInt16)(e);return{red:t,green:n,blue:i,constant:o}}function ci(e,t){let n=t||{};(0,y.writeInt16)(e,n.red),(0,y.writeInt16)(e,n.green),(0,y.writeInt16)(e,n.blue),(0,y.writeZeros)(e,2),(0,y.writeInt16)(e,n.constant)}L("mixr",Fe("channel mixer"),(e,t,n)=>{if((0,b.readUint16)(e)!==1)throw new Error("Invalid mixr version");let i=t.adjustment=Object.assign(Object.assign({},t.adjustment),{type:"channel mixer",monochrome:!!(0,b.readUint16)(e)});i.monochrome||(i.red=ho(e),i.green=ho(e),i.blue=ho(e)),i.gray=ho(e),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,1),(0,y.writeUint16)(e,n.monochrome?1:0),n.monochrome?(ci(e,n.gray),(0,y.writeZeros)(e,30)):(ci(e,n.red),ci(e,n.green),ci(e,n.blue),ci(e,n.gray))});var Sc=(0,Ze.createEnum)("colorLookupType","3dlut",{"3dlut":"3DLUT",abstractProfile:"abstractProfile",deviceLinkProfile:"deviceLinkProfile"}),vc=(0,Ze.createEnum)("LUTFormatType","look",{look:"LUTFormatLOOK",cube:"LUTFormatCUBE","3dl":"LUTFormat3DL"}),po=(0,Ze.createEnum)("colorLookupOrder","rgb",{rgb:"rgbOrder",bgr:"bgrOrder"});L("clrL",Fe("color lookup"),(e,t,n)=>{if((0,b.readUint16)(e)!==1)throw new Error("Invalid clrL version");let i=(0,w.readVersionAndDescriptor)(e);t.adjustment={type:"color lookup"};let o=t.adjustment;i.lookupType!==void 0&&(o.lookupType=Sc.decode(i.lookupType)),i["Nm "]!==void 0&&(o.name=i["Nm "]),i.Dthr!==void 0&&(o.dither=i.Dthr),i.profile!==void 0&&(o.profile=i.profile),i.LUTFormat!==void 0&&(o.lutFormat=vc.decode(i.LUTFormat)),i.dataOrder!==void 0&&(o.dataOrder=po.decode(i.dataOrder)),i.tableOrder!==void 0&&(o.tableOrder=po.decode(i.tableOrder)),i.LUT3DFileData!==void 0&&(o.lut3DFileData=i.LUT3DFileData),i.LUT3DFileName!==void 0&&(o.lut3DFileName=i.LUT3DFileName),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,i={};n.lookupType!==void 0&&(i.lookupType=Sc.encode(n.lookupType)),n.name!==void 0&&(i["Nm "]=n.name),n.dither!==void 0&&(i.Dthr=n.dither),n.profile!==void 0&&(i.profile=n.profile),n.lutFormat!==void 0&&(i.LUTFormat=vc.encode(n.lutFormat)),n.dataOrder!==void 0&&(i.dataOrder=po.encode(n.dataOrder)),n.tableOrder!==void 0&&(i.tableOrder=po.encode(n.tableOrder)),n.lut3DFileData!==void 0&&(i.LUT3DFileData=n.lut3DFileData),n.lut3DFileName!==void 0&&(i.LUT3DFileName=n.lut3DFileName),(0,y.writeUint16)(e,1),(0,w.writeVersionAndDescriptor)(e,"","null",i)});L("nvrt",Fe("invert"),(e,t,n)=>{t.adjustment={type:"invert"},(0,b.skipBytes)(e,n())},()=>{});L("post",Fe("posterize"),(e,t,n)=>{t.adjustment={type:"posterize",levels:(0,b.readUint16)(e)},(0,b.skipBytes)(e,n())},(e,t)=>{var n;let i=t.adjustment;(0,y.writeUint16)(e,(n=i.levels)!==null&&n!==void 0?n:4),(0,y.writeZeros)(e,2)});L("thrs",Fe("threshold"),(e,t,n)=>{t.adjustment={type:"threshold",level:(0,b.readUint16)(e)},(0,b.skipBytes)(e,n())},(e,t)=>{var n;let i=t.adjustment;(0,y.writeUint16)(e,(n=i.level)!==null&&n!==void 0?n:128),(0,y.writeZeros)(e,2)});var xc=["","","","rgb","hsb","","lab"];L("grdm",Fe("gradient map"),(e,t,n)=>{let i=(0,b.readUint16)(e);if(i!==1&&i!==3)throw new Error("Invalid grdm version");let o={type:"gradient map",gradientType:"solid"};o.reverse=!!(0,b.readUint8)(e),o.dither=!!(0,b.readUint8)(e);let r=!!(0,b.readUint8)(e);if(e.offset--,r){let u=(0,b.readSignature)(e);o.method=w.gradientInterpolationMethodType.decode(u)}o.name=(0,b.readUnicodeString)(e),o.colorStops=[],o.opacityStops=[];let s=(0,b.readUint16)(e);for(let u=0;u<s;u++)o.colorStops.push({location:(0,b.readUint32)(e),midpoint:(0,b.readUint32)(e)/100,color:(0,b.readColor)(e)}),(0,b.skipBytes)(e,2);let a=(0,b.readUint16)(e);for(let u=0;u<a;u++)o.opacityStops.push({location:(0,b.readUint32)(e),midpoint:(0,b.readUint32)(e)/100,opacity:(0,b.readUint16)(e)/255});if((0,b.readUint16)(e)!==2)throw new Error("Invalid grdm expansion count");let c=(0,b.readUint16)(e);if(o.smoothness=c/4096,(0,b.readUint16)(e)!==32)throw new Error("Invalid grdm length");o.gradientType=(0,b.readUint16)(e)?"noise":"solid",o.randomSeed=(0,b.readUint32)(e),o.addTransparency=!!(0,b.readUint16)(e),o.restrictColors=!!(0,b.readUint16)(e),o.roughness=(0,b.readUint32)(e)/4096,o.colorModel=xc[(0,b.readUint16)(e)]||"rgb",o.min=[(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768],o.max=[(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768],(0,b.skipBytes)(e,n());for(let u of o.colorStops)u.location/=c;for(let u of o.opacityStops)u.location/=c;t.adjustment=o},(e,t)=>{var n,i,o;let r=t.adjustment;(0,y.writeUint16)(e,r.method!==void 0?3:1),(0,y.writeUint8)(e,r.reverse?1:0),(0,y.writeUint8)(e,r.dither?1:0),r.method!==void 0&&(0,y.writeSignature)(e,w.gradientInterpolationMethodType.encode(r.method)),(0,y.writeUnicodeStringWithPadding)(e,r.name||""),(0,y.writeUint16)(e,r.colorStops&&r.colorStops.length||0);let s=Math.round(((n=r.smoothness)!==null&&n!==void 0?n:1)*4096);for(let l of r.colorStops||[])(0,y.writeUint32)(e,Math.round(l.location*s)),(0,y.writeUint32)(e,Math.round(l.midpoint*100)),(0,y.writeColor)(e,l.color),(0,y.writeZeros)(e,2);(0,y.writeUint16)(e,r.opacityStops&&r.opacityStops.length||0);for(let l of r.opacityStops||[])(0,y.writeUint32)(e,Math.round(l.location*s)),(0,y.writeUint32)(e,Math.round(l.midpoint*100)),(0,y.writeUint16)(e,Math.round(l.opacity*255));(0,y.writeUint16)(e,2),(0,y.writeUint16)(e,s),(0,y.writeUint16)(e,32),(0,y.writeUint16)(e,r.gradientType==="noise"?1:0),(0,y.writeUint32)(e,r.randomSeed||0),(0,y.writeUint16)(e,r.addTransparency?1:0),(0,y.writeUint16)(e,r.restrictColors?1:0),(0,y.writeUint32)(e,Math.round(((i=r.roughness)!==null&&i!==void 0?i:1)*4096));let a=xc.indexOf((o=r.colorModel)!==null&&o!==void 0?o:"rgb");(0,y.writeUint16)(e,a===-1?3:a);for(let l=0;l<4;l++)(0,y.writeUint16)(e,Math.round((r.min&&r.min[l]||0)*32768));for(let l=0;l<4;l++)(0,y.writeUint16)(e,Math.round((r.max&&r.max[l]||0)*32768));(0,y.writeZeros)(e,4)});function It(e){return{c:(0,b.readInt16)(e),m:(0,b.readInt16)(e),y:(0,b.readInt16)(e),k:(0,b.readInt16)(e)}}function Dt(e,t){let n=t||{};(0,y.writeInt16)(e,n.c),(0,y.writeInt16)(e,n.m),(0,y.writeInt16)(e,n.y),(0,y.writeInt16)(e,n.k)}L("selc",Fe("selective color"),(e,t)=>{if((0,b.readUint16)(e)!==1)throw new Error("Invalid selc version");let n=(0,b.readUint16)(e)?"absolute":"relative";(0,b.skipBytes)(e,8),t.adjustment={type:"selective color",mode:n,reds:It(e),yellows:It(e),greens:It(e),cyans:It(e),blues:It(e),magentas:It(e),whites:It(e),neutrals:It(e),blacks:It(e)}},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,1),(0,y.writeUint16)(e,n.mode==="absolute"?1:0),(0,y.writeZeros)(e,8),Dt(e,n.reds),Dt(e,n.yellows),Dt(e,n.greens),Dt(e,n.cyans),Dt(e,n.blues),Dt(e,n.magentas),Dt(e,n.whites),Dt(e,n.neutrals),Dt(e,n.blacks)});L("CgEd",e=>{let t=e.adjustment;return t?t.type==="brightness/contrast"&&!t.useLegacy||(t.type==="levels"||t.type==="curves"||t.type==="exposure"||t.type==="channel mixer"||t.type==="hue/saturation")&&t.presetFileName!==void 0:!1},(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);if(i.Vrsn!==1)throw new Error("Invalid CgEd version");"presetFileName"in i?t.adjustment=Object.assign(Object.assign({},t.adjustment),{presetKind:i.presetKind,presetFileName:i.presetFileName}):"curvesPresetFileName"in i?t.adjustment=Object.assign(Object.assign({},t.adjustment),{presetKind:i.curvesPresetKind,presetFileName:i.curvesPresetFileName}):"mixerPresetFileName"in i?t.adjustment=Object.assign(Object.assign({},t.adjustment),{presetKind:i.mixerPresetKind,presetFileName:i.mixerPresetFileName}):t.adjustment={type:"brightness/contrast",brightness:i.Brgh,contrast:i.Cntr,meanValue:i.means,useLegacy:!!i.useLegacy,labColorOnly:!!i["Lab "],auto:!!i.Auto},(0,b.skipBytes)(e,n())},(e,t)=>{var n,i,o,r;let s=t.adjustment;if(s.type==="levels"||s.type==="exposure"||s.type==="hue/saturation"){let a={Vrsn:1,presetKind:(n=s.presetKind)!==null&&n!==void 0?n:1,presetFileName:s.presetFileName||""};(0,w.writeVersionAndDescriptor)(e,"","null",a)}else if(s.type==="curves"){let a={Vrsn:1,curvesPresetKind:(i=s.presetKind)!==null&&i!==void 0?i:1,curvesPresetFileName:s.presetFileName||""};(0,w.writeVersionAndDescriptor)(e,"","null",a)}else if(s.type==="channel mixer"){let a={Vrsn:1,mixerPresetKind:(o=s.presetKind)!==null&&o!==void 0?o:1,mixerPresetFileName:s.presetFileName||""};(0,w.writeVersionAndDescriptor)(e,"","null",a)}else if(s.type==="brightness/contrast"){let a={Vrsn:1,Brgh:s.brightness||0,Cntr:s.contrast||0,means:(r=s.meanValue)!==null&&r!==void 0?r:127,"Lab ":!!s.labColorOnly,useLegacy:!!s.useLegacy,Auto:!!s.auto};(0,w.writeVersionAndDescriptor)(e,"","null",a)}else throw new Error("Unhandled CgEd case")});function k0(e){let t=[];function n(i){var o;if(i.children)for(let r of i.children)((o=r.text)===null||o===void 0?void 0:o.index)!==void 0&&(t[r.text.index]=r),n(r)}return n(e),t}L("Txt2",ae("engineData"),(e,t,n,i)=>{let o=(0,b.readBytes)(e,n());t.engineData=(0,pc.fromByteArray)(o);let r=k0(i),s=(0,Wr.parseEngineData)(o),l=(0,y0.decodeEngineData2)(s).ResourceDict.TextFrameSet;if(l)for(let c=0;c<l.length;c++){let d=r[c];l[c].path&&d?.text&&(d.text.textPath=l[c].path)}},(e,t)=>{let n=(0,pc.toByteArray)(t.engineData);(0,y.writeBytes)(e,n)});L("FEid",ae("filterEffectsMasks"),(e,t,n)=>{let i=(0,b.readInt32)(e);if(i<1||i>3)throw new Error(`Invalid filterEffects version ${i}`);for(t.filterEffectsMasks=[];n()>8;){if((0,b.readUint32)(e))throw new Error("filterEffects: 64 bit length is not supported");let o=(0,b.readUint32)(e),r=e.offset+o,s=(0,b.readPascalString)(e,1),a=(0,b.readInt32)(e);if(a!==1)throw new Error(`Invalid filterEffect version ${a}`);if((0,b.readUint32)(e))throw new Error("filterEffect: 64 bit length is not supported");(0,b.readUint32)(e);let l=(0,b.readInt32)(e),c=(0,b.readInt32)(e),d=(0,b.readInt32)(e),u=(0,b.readInt32)(e),f=(0,b.readInt32)(e),h=(0,b.readInt32)(e),p=[];for(let m=0;m<h+2;m++)if((0,b.readInt32)(e)){if((0,b.readUint32)(e))throw new Error("filterEffect: 64 bit length is not supported");let v=(0,b.readUint32)(e);if(!v)throw new Error("filterEffect: Empty channel");let x=(0,b.readUint16)(e),_=(0,b.readBytes)(e,v-2);p.push({compressionMode:x,data:_})}else p.push(void 0);if(t.filterEffectsMasks.push({id:s,top:l,left:c,bottom:d,right:u,depth:f,channels:p}),e.offset<r&&(0,b.readUint8)(e)){let m=(0,b.readInt32)(e),g=(0,b.readInt32)(e),v=(0,b.readInt32)(e),x=(0,b.readInt32)(e);if((0,b.readUint32)(e))throw new Error("filterEffect: 64 bit length is not supported");let _=(0,b.readUint32)(e),I=(0,b.readUint16)(e),P=(0,b.readBytes)(e,_-2);t.filterEffectsMasks[t.filterEffectsMasks.length-1].extra={top:m,left:g,bottom:v,right:x,compressionMode:I,data:P}}e.offset=r;let S=o;for(;S%4;)e.offset++,S++}},(e,t)=>{var n;(0,y.writeInt32)(e,3);for(let i of t.filterEffectsMasks){(0,y.writeUint32)(e,0),(0,y.writeUint32)(e,0);let o=e.offset;(0,y.writePascalString)(e,i.id,1),(0,y.writeInt32)(e,1),(0,y.writeUint32)(e,0),(0,y.writeUint32)(e,0);let r=e.offset;(0,y.writeInt32)(e,i.top),(0,y.writeInt32)(e,i.left),(0,y.writeInt32)(e,i.bottom),(0,y.writeInt32)(e,i.right),(0,y.writeInt32)(e,i.depth);let s=Math.max(0,i.channels.length-2);(0,y.writeInt32)(e,s);for(let c=0;c<s+2;c++){let d=i.channels[c];(0,y.writeInt32)(e,d?1:0),d&&((0,y.writeUint32)(e,0),(0,y.writeUint32)(e,d.data.length+2),(0,y.writeUint16)(e,d.compressionMode),(0,y.writeBytes)(e,d.data))}e.view.setUint32(r-4,e.offset-r,!1);let a=(n=t.filterEffectsMasks[t.filterEffectsMasks.length-1])===null||n===void 0?void 0:n.extra;a&&((0,y.writeUint8)(e,1),(0,y.writeInt32)(e,a.top),(0,y.writeInt32)(e,a.left),(0,y.writeInt32)(e,a.bottom),(0,y.writeInt32)(e,a.right),(0,y.writeUint32)(e,0),(0,y.writeUint32)(e,a.data.byteLength+2),(0,y.writeUint16)(e,a.compressionMode),(0,y.writeBytes)(e,a.data));let l=e.offset-o;for(e.view.setUint32(o-4,l,!1);l%4;)(0,y.writeZeros)(e,1),l++}});Gt("FXid","FEid");L("FMsk",ae("filterMask"),(e,t)=>{t.filterMask={colorSpace:(0,b.readColor)(e),opacity:(0,b.readUint16)(e)/255}},(e,t)=>{var n;(0,y.writeColor)(e,t.filterMask.colorSpace),(0,y.writeUint16)(e,(0,Ze.clamp)((n=t.filterMask.opacity)!==null&&n!==void 0?n:1,0,1)*255)});L("artd",e=>e.artboards!==void 0,(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);t.artboards={count:i["Cnt "],autoExpandOffset:{horizontal:i.autoExpandOffset.Hrzn,vertical:i.autoExpandOffset.Vrtc},origin:{horizontal:i.origin.Hrzn,vertical:i.origin.Vrtc},autoExpandEnabled:i.autoExpandEnabled,autoNestEnabled:i.autoNestEnabled,autoPositionEnabled:i.autoPositionEnabled,shrinkwrapOnSaveEnabled:!!i.shrinkwrapOnSaveEnabled,docDefaultNewArtboardBackgroundColor:(0,w.parseColor)(i.docDefaultNewArtboardBackgroundColor),docDefaultNewArtboardBackgroundType:i.docDefaultNewArtboardBackgroundType},(0,b.skipBytes)(e,n())},(e,t)=>{var n,i,o,r,s;let a=t.artboards,l={"Cnt ":a.count,autoExpandOffset:a.autoExpandOffset?{Hrzn:a.autoExpandOffset.horizontal,Vrtc:a.autoExpandOffset.vertical}:{Hrzn:0,Vrtc:0},origin:a.origin?{Hrzn:a.origin.horizontal,Vrtc:a.origin.vertical}:{Hrzn:0,Vrtc:0},autoExpandEnabled:(n=a.autoExpandEnabled)!==null&&n!==void 0?n:!0,autoNestEnabled:(i=a.autoNestEnabled)!==null&&i!==void 0?i:!0,autoPositionEnabled:(o=a.autoPositionEnabled)!==null&&o!==void 0?o:!0,shrinkwrapOnSaveEnabled:(r=a.shrinkwrapOnSaveEnabled)!==null&&r!==void 0?r:!0,docDefaultNewArtboardBackgroundColor:(0,w.serializeColor)(a.docDefaultNewArtboardBackgroundColor),docDefaultNewArtboardBackgroundType:(s=a.docDefaultNewArtboardBackgroundType)!==null&&s!==void 0?s:1};(0,w.writeVersionAndDescriptor)(e,"","null",l,"artd")});function Zr(e){return Object.keys(e).map(t=>e[t]).some(t=>Array.isArray(t)&&t.length>1)}L("lfx2",e=>e.effects!==void 0&&!Zr(e.effects),(e,t,n)=>{if((0,b.readUint32)(e)!==0)throw new Error("Invalid lfx2 version");let o=(0,w.readVersionAndDescriptor)(e);t.effects=(0,w.parseEffects)(o,!!e.logMissingFeatures),(0,b.skipBytes)(e,n())},(e,t,n,i)=>{let o=(0,w.serializeEffects)(t.effects,!!i.logMissingFeatures,!0);(0,y.writeUint32)(e,0),(0,w.writeVersionAndDescriptor)(e,"","null",o)});L("cinf",ae("compositorUsed"),(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);function o(r){return r.split(".")[1]}t.compositorUsed={description:i.description,reason:i.reason,engine:o(i.Engn)},i.Vrsn&&(t.compositorUsed.version=i.Vrsn),i.psVersion&&(t.compositorUsed.photoshopVersion=i.psVersion),i.enableCompCore&&(t.compositorUsed.enableCompCore=o(i.enableCompCore)),i.enableCompCoreGPU&&(t.compositorUsed.enableCompCoreGPU=o(i.enableCompCoreGPU)),i.enableCompCoreThreads&&(t.compositorUsed.enableCompCoreThreads=o(i.enableCompCoreThreads)),i.compCoreSupport&&(t.compositorUsed.compCoreSupport=o(i.compCoreSupport)),i.compCoreGPUSupport&&(t.compositorUsed.compCoreGPUSupport=o(i.compCoreGPUSupport)),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.compositorUsed,i={Vrsn:n.version||{major:1,minor:0,fix:0}};n.photoshopVersion&&(i.psVersion=n.photoshopVersion),i.description=n.description,i.reason=n.reason,i.Engn=`Engn.${n.engine}`,n.enableCompCore&&(i.enableCompCore=`enable.${n.enableCompCore}`),n.enableCompCoreGPU&&(i.enableCompCoreGPU=`enable.${n.enableCompCoreGPU}`),n.enableCompCoreThreads&&(i.enableCompCoreThreads=`enable.${n.enableCompCoreThreads}`),n.compCoreSupport&&(i.compCoreSupport=`reason.${n.compCoreSupport}`),n.compCoreGPUSupport&&(i.compCoreGPUSupport=`reason.${n.compCoreGPUSupport}`),(0,w.writeVersionAndDescriptor)(e,"","null",i)});L("extn",e=>e._extn!==void 0,(e,t)=>{let n=(0,w.readVersionAndDescriptor)(e);Ze.MOCK_HANDLERS&&(t._extn=n)},(e,t)=>{Ze.MOCK_HANDLERS&&(0,w.writeVersionAndDescriptor)(e,"","null",t._extn)});L("iOpa",ae("fillOpacity"),(e,t)=>{t.fillOpacity=(0,b.readUint8)(e)/255,(0,b.skipBytes)(e,3)},(e,t)=>{(0,y.writeUint8)(e,t.fillOpacity*255),(0,y.writeZeros)(e,3)});L("brst",ae("channelBlendingRestrictions"),(e,t,n)=>{for(t.channelBlendingRestrictions=[];n()>4;)t.channelBlendingRestrictions.push((0,b.readInt32)(e))},(e,t)=>{for(let n of t.channelBlendingRestrictions)(0,y.writeInt32)(e,n)});L("tsly",ae("transparencyShapesLayer"),(e,t)=>{t.transparencyShapesLayer=!!(0,b.readUint8)(e),(0,b.skipBytes)(e,3)},(e,t)=>{(0,y.writeUint8)(e,t.transparencyShapesLayer?1:0),(0,y.writeZeros)(e,3)})});var Dn=oe(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.createWriter=C0;ce.getWriterBuffer=P0;ce.getWriterBufferNoCopy=E0;ce.writeUint8=de;ce.writeInt16=Ht;ce.writeUint16=Z;ce.writeUint16LE=Fc;ce.writeInt32=Me;ce.writeInt32LE=F0;ce.writeUint32=ue;ce.writeFloat32=O0;ce.writeFloat64=Kr;ce.writeFixedPoint32=L0;ce.writeFixedPointPath32=B0;ce.writeBytes=fi;ce.writeZeros=sn;ce.writeSignature=an;ce.writeAsciiString=U0;ce.writePascalString=yo;ce.writeUnicodeStringWithoutLength=Oc;ce.writeUnicodeStringWithoutLengthLE=R0;ce.writeUnicodeString=Lc;ce.writeUnicodeStringWithPadding=M0;ce.writeSection=rt;ce.writePsd=T0;ce.writeColor=q0;ce.writePattern=K0;var ve=Tt(),I0=oo(),D0=_r();function C0(e=4096){let t=new ArrayBuffer(e),n=new DataView(t);return{buffer:t,view:n,offset:0,tempBuffer:void 0}}function P0(e){return e.buffer.slice(0,e.offset)}function E0(e){return new Uint8Array(e.buffer,0,e.offset)}function de(e,t){let n=Ct(e,1);e.view.setUint8(n,t)}function Ht(e,t){let n=Ct(e,2);e.view.setInt16(n,t,!1)}function Z(e,t){let n=Ct(e,2);e.view.setUint16(n,t,!1)}function Fc(e,t){let n=Ct(e,2);e.view.setUint16(n,t,!0)}function Me(e,t){let n=Ct(e,4);e.view.setInt32(n,t,!1)}function F0(e,t){let n=Ct(e,4);e.view.setInt32(n,t,!0)}function ue(e,t){let n=Ct(e,4);e.view.setUint32(n,t,!1)}function O0(e,t){let n=Ct(e,4);e.view.setFloat32(n,t,!1)}function Kr(e,t){let n=Ct(e,8);e.view.setFloat64(n,t,!1)}function L0(e,t){Me(e,t*65536)}function B0(e,t){Me(e,t*(1<<24))}function fi(e,t){t&&(Tc(e,e.offset+t.length),new Uint8Array(e.buffer).set(t,e.offset),e.offset+=t.length)}function sn(e,t){for(let n=0;n<t;n++)de(e,0)}function an(e,t){if(t.length!==4)throw new Error(`Invalid signature: '${t}'`);for(let n=0;n<4;n++)de(e,t.charCodeAt(n))}function U0(e,t){for(let n=0;n<t.length;n++)de(e,t.charCodeAt(n))}function yo(e,t,n){let i=t.length;if(i>255)throw new Error("String too long");de(e,i);for(let o=0;o<i;o++){let r=t.charCodeAt(o);de(e,r<128?r:63)}for(;++i%n;)de(e,0)}function Oc(e,t){for(let n=0;n<t.length;n++)Z(e,t.charCodeAt(n))}function R0(e,t){for(let n=0;n<t.length;n++)Fc(e,t.charCodeAt(n))}function Lc(e,t){ue(e,t.length),Oc(e,t)}function M0(e,t){ue(e,t.length+1);for(let n=0;n<t.length;n++)Z(e,t.charCodeAt(n));Z(e,0)}function Bc(e=[]){let t=0;for(let n of e){let{width:i,height:o}=di(n);if(t=Math.max(t,2*o+2*i*o),n.mask){let{width:r,height:s}=di(n.mask);t=Math.max(t,2*s+2*r*s)}if(n.realMask){let{width:r,height:s}=di(n.realMask);t=Math.max(t,2*s+2*r*s)}n.children&&(t=Math.max(t,Bc(n.children)))}return t}function rt(e,t,n,i=!1,o=!1){o&&ue(e,0);let r=e.offset;ue(e,0),n();let s=e.offset-r-4,a=s;for(;a%t;)de(e,0),a++;i&&(s=a),e.view.setUint32(r,s,!1)}function Uc(e){var t;(t=e.children)===null||t===void 0||t.forEach(Uc);let n=e.imageData;if(n&&(n.data instanceof Uint32Array||n.data instanceof Uint16Array))throw new Error("imageData has incorrect bitDepth");if("mask"in e&&e.mask){let i=e.mask.imageData;if(i&&(i.data instanceof Uint32Array||i.data instanceof Uint16Array))throw new Error("mask imageData has incorrect bitDepth")}}function T0(e,t,n={}){var i;if(!(+t.width>0&&+t.height>0))throw new Error("Invalid document size");if((t.width>3e4||t.height>3e4)&&!n.psb)throw new Error("Document size is too large (max is 30000x30000, use PSB format instead)");let o=(i=t.bitsPerChannel)!==null&&i!==void 0?i:8;if(o!==8)throw new Error("bitsPerChannel other than 8 are not supported for writing");Uc(t);let r=Object.assign({},t.imageResources),s=Object.assign(Object.assign({},n),{layerIds:new Set,layerToId:new Map});s.generateThumbnail&&(r.thumbnail=G0(t));let a=t.imageData;if(!a&&t.canvas&&(a=t.canvas.getContext("2d").getImageData(0,0,t.canvas.width,t.canvas.height)),a&&(t.width!==a.width||t.height!==a.height))throw new Error("Document canvas must have the same size as document");let l=!!a&&(0,ve.hasAlpha)(a),c=Math.max(Bc(t.children),8*t.width*t.height+2*t.height);e.tempBuffer=new Uint8Array(c),an(e,"8BPS"),Z(e,n.psb?2:1),sn(e,6),Z(e,l?4:3),ue(e,t.height),ue(e,t.width),Z(e,o),Z(e,3),rt(e,1,()=>{var S,m,g;if(t.palette){for(let v=0;v<256;v++)de(e,((S=t.palette[v])===null||S===void 0?void 0:S.r)||0);for(let v=0;v<256;v++)de(e,((m=t.palette[v])===null||m===void 0?void 0:m.g)||0);for(let v=0;v<256;v++)de(e,((g=t.palette[v])===null||g===void 0?void 0:g.b)||0)}});let d=[];Mc(d,t.children),d.length||d.push({}),r.layersGroup=d.map(S=>S.linkGroup||0),r.layerGroupsEnabledId=d.map(S=>S.linkGroupEnabled==!1?0:1),rt(e,1,()=>{for(let S of D0.resourceHandlers){let m=S.has(r),g=m===!1?0:m===!0?1:m;for(let v=0;v<g;v++)an(e,"8BIM"),Z(e,S.key),yo(e,"",2),rt(e,2,()=>S.write(e,r,v))}}),rt(e,2,()=>{j0(e,d,t,l,s),N0(e,t.globalLayerMaskInfo),Rc(e,t,t,s)},void 0,!!s.psb);let u=l?[0,1,2,3]:[0,1,2],f=a?a.width:t.width,h=a?a.height:t.height,p={data:new Uint8Array(f*h*4),width:f,height:h};if(Z(e,1),ve.RAW_IMAGE_DATA&&t.imageDataRaw)console.log("writing raw image data"),fi(e,t.imageDataRaw);else{if(a&&p.data.set(new Uint8Array(a.data.buffer,a.data.byteOffset,a.data.byteLength)),l){let S=p.width*p.height*4,m=p.data;for(let g=0;g<S;g+=4){let v=m[g+3];if(v!=0&&v!=255){let x=v/255,_=255*(1-x);m[g+0]=m[g+0]*x+_,m[g+1]=m[g+1]*x+_,m[g+2]=m[g+2]*x+_}}}fi(e,(0,ve.writeDataRLE)(e.tempBuffer,p,u,!!n.psb))}}function j0(e,t,n,i,o){rt(e,4,()=>{var r;Ht(e,i?-t.length:t.length);let s=t.map((a,l)=>H0(e.tempBuffer,a,l===0,o));for(let a of s){let{layer:l,top:c,left:d,bottom:u,right:f,channels:h}=a;Me(e,c),Me(e,d),Me(e,u),Me(e,f),Z(e,h.length);for(let S of h)Ht(e,S.id),o.psb&&ue(e,0),ue(e,S.length);an(e,"8BIM"),an(e,ve.fromBlendMode[l.blendMode]||"norm"),de(e,Math.round((0,ve.clamp)((r=l.opacity)!==null&&r!==void 0?r:1,0,1)*255)),de(e,l.clipping?1:0);let p=8;l.transparencyProtected&&(p|=1),l.hidden&&(p|=2),(l.vectorMask||l.sectionDivider&&l.sectionDivider.type!==0||l.adjustment)&&(p|=16),l.effectsOpen&&(p|=32),de(e,p),de(e,0),rt(e,1,()=>{z0(e,l,a),$0(e,l),yo(e,(l.name||"").substring(0,255),4),Rc(e,l,n,o)})}for(let a of s)for(let l of a.channels)Z(e,l.compression),l.data&&fi(e,l.data)},!0,o.psb)}function z0(e,{mask:t,realMask:n},i){rt(e,1,()=>{if(!t&&!n)return;let o=0,r=0,s=0;t&&(t.userMaskDensity!==void 0&&(o|=1),t.userMaskFeather!==void 0&&(o|=2),t.vectorMaskDensity!==void 0&&(o|=4),t.vectorMaskFeather!==void 0&&(o|=8),t.disabled&&(r|=2),t.positionRelativeToLayer&&(r|=1),t.fromVectorData&&(r|=8),o&&(r|=16));let a=i.mask||{};if(Me(e,a.top||0),Me(e,a.left||0),Me(e,a.bottom||0),Me(e,a.right||0),de(e,t&&t.defaultColor||0),de(e,r),n){n.disabled&&(s|=2),n.positionRelativeToLayer&&(s|=1),n.fromVectorData&&(s|=8);let l=i.realMask||{};de(e,s),de(e,n.defaultColor||0),Me(e,l.top||0),Me(e,l.left||0),Me(e,l.bottom||0),Me(e,l.right||0)}o&&t&&(de(e,o),t.userMaskDensity!==void 0&&de(e,Math.round(t.userMaskDensity*255)),t.userMaskFeather!==void 0&&Kr(e,t.userMaskFeather),t.vectorMaskDensity!==void 0&&de(e,Math.round(t.vectorMaskDensity*255)),t.vectorMaskFeather!==void 0&&Kr(e,t.vectorMaskFeather)),sn(e,2)})}function bo(e,t){de(e,t[0]),de(e,t[1]),de(e,t[2]),de(e,t[3])}function $0(e,t){rt(e,1,()=>{let n=t.blendingRanges;if(n){bo(e,n.compositeGrayBlendSource),bo(e,n.compositeGraphBlendDestinationRange);for(let i of n.ranges)bo(e,i.sourceRange),bo(e,i.destRange)}})}function N0(e,t){rt(e,1,()=>{t&&(Z(e,t.overlayColorSpace),Z(e,t.colorSpace1),Z(e,t.colorSpace2),Z(e,t.colorSpace3),Z(e,t.colorSpace4),Z(e,Math.round(t.opacity*255)),de(e,t.kind),sn(e,3))})}function Rc(e,t,n,i){for(let o of I0.infoHandlers){let r=o.key;if(!(r==="Txt2"&&i.invalidateTextLayers)&&(r==="vmsk"&&i.psb&&(r="vsms"),o.has(t))){let s=i.psb&&ve.largeAdditionalInfoKeys.indexOf(r)!==-1,a=r!=="Txt2"&&r!=="cinf"&&r!=="extn"&&r!=="CAI "&&r!=="OCIO",l=r==="Txt2"||r==="luni"||r==="vmsk"||r==="artb"||r==="artd"||r==="vogk"||r==="SoLd"||r==="lnk2"||r==="vscg"||r==="vsms"||r==="GdFl"||r==="lmfx"||r==="lrFX"||r==="cinf"||r==="PlLd"||r==="Anno"||r==="CAI "||r==="OCIO"||r==="GenI"||r==="FEid"||r==="curv"||r==="CgEd"||r==="vibA"||r==="blwh"||r==="grdm";an(e,s?"8B64":"8BIM"),an(e,r),rt(e,l?4:2,()=>{o.write(e,t,n,i)},a,s)}}}function Mc(e,t){if(t)for(let n of t){if(n.children&&n.canvas)throw new Error("Invalid layer, cannot have both 'canvas' and 'children' properties");if(n.children&&n.imageData)throw new Error("Invalid layer, cannot have both 'imageData' and 'children' properties");n.children?(e.push({name:"</Layer group>",sectionDivider:{type:3}}),Mc(e,n.children),e.push(Object.assign(Object.assign({},n),{blendMode:n.blendMode==="pass through"?"normal":n.blendMode,sectionDivider:{type:n.opened===!1?2:1,key:ve.fromBlendMode[n.blendMode]||"pass",subType:0}}))):e.push(Object.assign({},n))}}function V0(e,t){let n=e.buffer.byteLength;do n*=2;while(t>n);let i=new ArrayBuffer(n),o=new Uint8Array(i),r=new Uint8Array(e.buffer);o.set(r),e.buffer=i,e.view=new DataView(e.buffer)}function Tc(e,t){t>e.buffer.byteLength&&V0(e,t)}function Ct(e,t){let n=e.offset;return Tc(e,e.offset+=t),n}function G0(e){let t=(0,ve.createCanvas)(10,10),n=1;e.width>e.height?(t.width=160,t.height=Math.floor(e.height*(t.width/e.width)),n=t.width/e.width):(t.height=160,t.width=Math.floor(e.width*(t.height/e.height)),n=t.height/e.height);let i=t.getContext("2d");return i.scale(n,n),e.imageData?i.drawImage((0,ve.imageDataToCanvas)(e.imageData),0,0):e.canvas&&i.drawImage(e.canvas,0,0),t}function Cc(e,t,n,i,o,r){let s=i.top|0,a=i.left|0,l=i.right|0,c=i.bottom|0,{width:d,height:u}=di(i),f=i.imageData;if(!f&&i.canvas&&d&&u&&(f=i.canvas.getContext("2d").getImageData(0,0,d,u)),f&&(f.width!==d||f.height!==u))throw new Error("Invalid imageData dimentions");l=a+d,c=s+u;let h,p;ve.RAW_IMAGE_DATA&&n[r?"realMaskDataRaw":"maskDataRaw"]?(h=n[r?"realMaskDataRaw":"maskDataRaw"],p=n[r?"realMaskDataRawCompression":"maskDataRawCompression"]):f?o.compress?(h=(0,ve.writeDataZipWithoutPrediction)(f,[0]),p=2):(h=(0,ve.writeDataRLE)(e,f,[0],!!o.psb),p=1):(h=new Uint8Array(0),p=1),t.channels.push({id:r?-3:-2,compression:p,data:h,length:2+h.length}),t[r?"realMask":"mask"]={top:s,left:a,right:l,bottom:c}}function qr(e){return e?{top:e.top||0,left:e.left||0,right:e.right||0,bottom:e.bottom||0}:void 0}function H0(e,t,n,i){if(t.rawData)return Object.assign(Object.assign({layer:t,channels:t.rawData.channels.map(r=>{var s,a;return Object.assign(Object.assign({},r),{length:2+((a=(s=r.data)===null||s===void 0?void 0:s.byteLength)!==null&&a!==void 0?a:0)})})},qr(t)),{mask:qr(t.mask),realMask:qr(t.realMask)});let o=X0(e,t,n,i);return t.mask&&Cc(e,o,t,t.mask,i,!1),t.realMask&&Cc(e,o,t,t.realMask,i,!0),o}function di({canvas:e,imageData:t}){var n,i,o,r;let s=(i=(n=t?.width)!==null&&n!==void 0?n:e?.width)!==null&&i!==void 0?i:0,a=(r=(o=t?.height)!==null&&o!==void 0?o:e?.height)!==null&&r!==void 0?r:0;return{width:s,height:a}}function W0(e,t,n,i,o){if(e.data instanceof Uint32Array||e.data instanceof Uint16Array)throw new Error("imageData has incorrect bit depth");let r=(0,ve.createImageData)(i,o),s=e.data,a=r.data;for(let l=0;l<o;l++)for(let c=0;c<i;c++){let d=(c+t+(l+n)*e.width)*4,u=(c+l*i)*4;a[u]=s[d],a[u+1]=s[d+1],a[u+2]=s[d+2],a[u+3]=s[d+3]}return r}function X0(e,t,n,i){var o;let r=t.top|0,s=t.left|0,a=t.right|0,l=t.bottom|0,c=[{id:-1,compression:0,data:void 0,length:2},{id:0,compression:0,data:void 0,length:2},{id:1,compression:0,data:void 0,length:2},{id:2,compression:0,data:void 0,length:2}],{width:d,height:u}=di(t);if(!(t.canvas||t.imageData)||!d||!u)return a=s,l=r,{layer:t,top:r,left:s,right:a,bottom:l,channels:c};a=s+d,l=r+u;let f=t.imageData||t.canvas.getContext("2d").getImageData(0,0,d,u);if(i.trimImageData){let p=Z0(f);if(p.left!==0||p.top!==0||p.right!==f.width||p.bottom!==f.height){if(s+=p.left,r+=p.top,a-=f.width-p.right,l-=f.height-p.bottom,d=a-s,u=l-r,!d||!u)return{layer:t,top:r,left:s,right:a,bottom:l,channels:c};f=W0(f,p.left,p.top,d,u)}}let h=[0,1,2];return(!n||i.noBackground||t.mask||(0,ve.hasAlpha)(f)||ve.RAW_IMAGE_DATA&&(!((o=t.imageDataRaw)===null||o===void 0)&&o[-1]))&&h.unshift(-1),c=h.map(p=>{let S=(0,ve.offsetForChannel)(p,!1),m,g;return ve.RAW_IMAGE_DATA&&t.imageDataRaw?(m=t.imageDataRaw[p],g=t.imageDataRawCompression[p]):i.compress?(m=(0,ve.writeDataZipWithoutPrediction)(f,[S]),g=2):(m=(0,ve.writeDataRLE)(e,f,[S],!!i.psb),g=1),{id:p,compression:g,data:m,length:2+m.length}}),{layer:t,top:r,left:s,right:a,bottom:l,channels:c}}function Pc({data:e,width:t},n,i,o){let r=(n*t+i)*4+3|0,s=r+(o-i)*4|0;for(let a=r;a<s;a=a+4|0)if(e[a]!==0)return!1;return!0}function Ec({data:e,width:t},n,i,o){let r=t*4|0,s=i*r+n*4+3|0;for(let a=i,l=s;a<o;a++,l=l+r|0)if(e[l]!==0)return!1;return!0}function Z0(e){let t=0,n=0,i=e.width,o=e.height;for(;t<o&&Pc(e,t,n,i);)t++;for(;o>t&&Pc(e,o-1,n,i);)o--;for(;n<i&&Ec(e,n,t,o);)n++;for(;i>n&&Ec(e,i-1,t,o);)i--;return{top:t,left:n,right:i,bottom:o}}function q0(e,t){t?"r"in t?(Z(e,0),Z(e,Math.round(t.r*257)),Z(e,Math.round(t.g*257)),Z(e,Math.round(t.b*257)),Z(e,0)):"fr"in t?(Z(e,0),Z(e,Math.round(t.fr*255*257)),Z(e,Math.round(t.fg*255*257)),Z(e,Math.round(t.fb*255*257)),Z(e,0)):"l"in t?(Z(e,7),Ht(e,Math.round(t.l*1e4)),Ht(e,Math.round(t.a<0?t.a*12800:t.a*12700)),Ht(e,Math.round(t.b<0?t.b*12800:t.b*12700)),Z(e,0)):"h"in t?(Z(e,1),Z(e,Math.round(t.h*65535)),Z(e,Math.round(t.s*65535)),Z(e,Math.round(t.b*65535)),Z(e,0)):"c"in t?(Z(e,2),Z(e,Math.round(t.c*257)),Z(e,Math.round(t.m*257)),Z(e,Math.round(t.y*257)),Z(e,Math.round(t.k*257))):(Z(e,8),Z(e,Math.round(t.k*1e4/255)),sn(e,6)):(Z(e,0),sn(e,8))}function K0(e,t){let n=t.bounds.w,i=t.bounds.h,o={width:n,height:i,data:t.data};ue(e,0);let r=e.offset;ue(e,1),ue(e,3),Ht(e,t.x),Ht(e,t.y),Lc(e,t.name+"\0"),yo(e,t.id,1),ue(e,3),ue(e,0);let s=e.offset,a=t.bounds.y,l=t.bounds.x,c=a+i,d=l+n;ue(e,a),ue(e,l),ue(e,c),ue(e,d),ue(e,24);for(let h=0;h<26;h++){let p=h<3?h:h===25?3:-1;if(p<0){ue(e,0);continue}let S=new Uint8Array(n*i+2*i+2*n+16),m=(0,ve.writeDataRLE)(S,o,[p],!1);ue(e,1),ue(e,m.length+4+16+2+1),ue(e,8),ue(e,a),ue(e,l),ue(e,c),ue(e,d),Z(e,8),de(e,1),fi(e,m)}let u=e.offset-s,f=e.offset-r;for(;f%4;)sn(e,1),f++;e.view.setUint32(s-4,u,!1),e.view.setUint32(r-4,f,!1)}});var $c=oe(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.readAbr=tp;var X=Gi(),xe=jt(),Y0=["off","fade","pen pressure","pen tilt","stylus wheel","initial direction","direction","initial rotation","rotation"],jc=["round point","round blunt","round curve","round angle","round fan","flat point","flat blunt","flat curve","flat angle","flat fan"],J0=["erodible point","erodible flat","erodible round","erodible square","erodible triangle","custom"],Q0={_:"brush",MixB:"mixer brush",SmTl:"smudge brush"};function Oe(e){return{control:Y0[e.bVTy],steps:e.fStp,jitter:(0,X.parsePercent)(e.jitter),minimum:(0,X.parsePercent)(e["Mnm "])}}function zc(e){switch(e._classID){case"computedBrush":return{type:"computed",size:(0,X.parseUnitsToNumber)(e.Dmtr,"Pixels"),angle:(0,X.parseAngle)(e.Angl),roundness:(0,X.parsePercent)(e.Rndn),spacingOn:e.Intr,spacing:(0,X.parsePercent)(e.Spcn),flipX:e.flipX,flipY:e.flipY,hardness:(0,X.parsePercent)(e.Hrdn)};case"sampledBrush":return{type:"sampled",size:(0,X.parseUnitsToNumber)(e.Dmtr,"Pixels"),angle:(0,X.parseAngle)(e.Angl),roundness:(0,X.parsePercent)(e.Rndn),spacingOn:e.Intr,spacing:(0,X.parsePercent)(e.Spcn),flipX:e.flipX,flipY:e.flipY,name:e["Nm "],sampledData:e.sampledData};case"dBrush":return{type:"dynamic",shape:jc[e["Shp "]],angle:(0,X.parseAngle)(e.Angl),size:(0,X.parseUnitsToNumber)(e.Dmtr,"Pixels"),density:(0,X.parsePercent)(e.Dnst),length:(0,X.parsePercent)(e.Lngt),clumping:(0,X.parsePercent)(e.clumping),thickness:(0,X.parsePercent)(e.thickness),stiffness:(0,X.parsePercent)(e.stiffness),physics:e.physics,spacing:(0,X.parsePercent)(e.Spcn),spacingOn:e.Intr,flipX:e.flipX,flipY:e.flipY};case"dTips":return Object.assign(Object.assign({type:"tips",angle:(0,X.parseAngle)(e.Angl),size:(0,X.parseUnitsToNumber)(e.Dmtr,"Pixels"),shape:jc[e["Shp "]],physics:e.physics,spacing:(0,X.parsePercent)(e.Spcn),spacingOn:e.Intr,flipX:e.flipX,flipY:e.flipY,tipsType:J0[e.dtipsType],tipsLengthRatio:(0,X.parsePercent)(e.dtipsLengthRatio),tipsHardness:(0,X.parsePercent)(e.dtipsHardness)},e.dtipsGridSize&&e.dtipsErodibleTipHeightMap?{tipsGridSize:e.dtipsGridSize,tipsErodibleTipHeightMap:ep(e.dtipsErodibleTipHeightMap)}:{}),{tipsAirbrushCutoffAngle:e.dtipsAirbrushCutoffAngle,tipsAirbrushGranularity:(0,X.parsePercent)(e.dtipsAirbrushGranularity),tipsAirbrushStreakiness:(0,X.parsePercent)(e.dtipsAirbrushStreakiness),tipsAirbrushSplatSize:(0,X.parsePercent)(e.dtipsAirbrushSplatSize),tipsAirbrushSplatCount:e.dtipsAirbrushSplatCount});default:throw new Error(`Unknown brush classId: ${e._classID}`)}}function ep(e){let t=[];for(let n=0;n<e.byteLength;n++)t.push(e[n]);return t}function tp(e,t={}){var n,i,o,r;let s=(0,xe.createReader)(e.buffer,e.byteOffset,e.byteLength),a=(0,xe.readInt16)(s),l=[],c=[],d=[];if(a===1||a===2)throw new Error(`Unsupported ABR version (${a})`);if(a===6||a===7||a===9||a===10){let u=(0,xe.readInt16)(s);if(u!==1&&u!==2)throw new Error("Unsupported ABR minor version");for(;s.offset<s.view.byteLength;){(0,xe.checkSignature)(s,"8BIM");let f=(0,xe.readSignature)(s),h=(0,xe.readUint32)(s),p=s.offset+h;switch(f){case"samp":{for(;s.offset<p;){let S=(0,xe.readUint32)(s);for(;S&3;)S++;let m=s.offset+S,g=(0,xe.readPascalString)(s,1);(0,xe.skipBytes)(s,u===1?10:264);let v=(0,xe.readInt32)(s),x=(0,xe.readInt32)(s),_=(0,xe.readInt32)(s)-v,I=(0,xe.readInt32)(s)-x;if(I<=0||_<=0)throw new Error("Invalid bounds");let P=(0,xe.readInt16)(s),k=(0,xe.readUint8)(s),E=new Uint8Array(I*_);if(P===8)if(k===0)E.set((0,xe.readBytes)(s,E.byteLength));else if(k===1)(0,xe.readDataRLE)(s,{width:I,height:_,data:E},I,_,P,1,[0],!1);else throw new Error("Invalid compression");else if(P===16)if(k===0)for(let O=0;O<E.byteLength;O++)E[O]=(0,xe.readUint16)(s)>>8;else throw k===1?new Error("not implemented (16bit RLE)"):new Error("Invalid compression");else throw new Error("Invalid depth");l.push({id:g,bounds:{x,y:v,w:I,h:_},alpha:E}),s.offset=m}break}case"desc":{let S=(0,X.readVersionAndDescriptor)(s,!0);for(let m of S.Brsh){let g={name:m["Nm "],shape:zc(m.Brsh),spacing:(0,X.parsePercent)(m.Spcn),wetEdges:m.Wtdg,noise:m.Nose,useBrushSize:m.useBrushSize};m.interpretation!=null&&(g.interpretation=m.interpretation),m.protectTexture!=null&&(g.protectTexture=m.protectTexture),m.useTipDynamics&&(g.shapeDynamics={tiltScale:(0,X.parsePercent)(m.tiltScale),sizeDynamics:Oe(m.szVr),angleDynamics:Oe(m.angleDynamics),roundnessDynamics:Oe(m.roundnessDynamics),flipX:m.flipX,flipY:m.flipY,brushProjection:m.brushProjection,minimumDiameter:(0,X.parsePercent)(m.minimumDiameter),minimumRoundness:(0,X.parsePercent)(m.minimumRoundness)}),m.useScatter&&(g.scatter={count:m["Cnt "],bothAxes:m.bothAxes,countDynamics:Oe(m.countDynamics),scatterDynamics:Oe(m.scatterDynamics)}),m.useTexture&&m.Txtr&&(g.texture={id:m.Txtr.Idnt,name:m.Txtr["Nm "],blendMode:X.BlnM.decode(m.textureBlendMode),depth:(0,X.parsePercent)(m.textureDepth),depthMinimum:(0,X.parsePercent)(m.minimumDepth),depthDynamics:Oe(m.textureDepthDynamics),scale:(0,X.parsePercent)(m.textureScale),invert:m.InvT,brightness:m.textureBrightness,contrast:m.textureContrast,textureEachTip:!!m.TxtC});let v=m.dualBrush;v&&v.useDualBrush&&(g.dualBrush={flip:v.Flip,shape:zc(v.Brsh),blendMode:X.BlnM.decode(v.BlnM),useScatter:v.useScatter,spacing:(0,X.parsePercent)(v.Spcn),count:v["Cnt "],bothAxes:v.bothAxes,countDynamics:Oe(v.countDynamics),scatterDynamics:Oe(v.scatterDynamics)}),m.useColorDynamics&&(g.colorDynamics={foregroundBackground:Oe(m.clVr),hue:(0,X.parsePercent)(m["H "]),saturation:(0,X.parsePercent)(m.Strt),brightness:(0,X.parsePercent)(m.Brgh),purity:(0,X.parsePercent)(m.purity),perTip:m.colorDynamicsPerTip}),m.usePaintDynamics&&(g.transfer={flowDynamics:Oe(m.prVr),opacityDynamics:Oe(m.opVr),wetnessDynamics:Oe(m.wtVr),mixDynamics:Oe(m.mxVr)}),m.useBrushPose&&(g.brushPose={overrideAngle:m.overridePoseAngle,overrideTiltX:m.overridePoseTiltX,overrideTiltY:m.overridePoseTiltY,overridePressure:m.overridePosePressure,pressure:(0,X.parsePercent)(m.brushPosePressure),tiltX:m.brushPoseTiltX,tiltY:m.brushPoseTiltY,angle:m.brushPoseAngle});let x=m.toolOptions;x&&(g.toolOptions={type:Q0[x._classID]||"brush",brushPreset:x.brushPreset,flow:(n=x.flow)!==null&&n!==void 0?n:100,smooth:(i=x.Smoo)!==null&&i!==void 0?i:0,mode:X.BlnM.decode(x["Md "]||"BlnM.Nrml"),opacity:(o=x.Opct)!==null&&o!==void 0?o:100,smoothing:!!x.smoothing,smoothingValue:x.smoothingValue||0,smoothingRadiusMode:!!x.smoothingRadiusMode,smoothingCatchup:!!x.smoothingCatchup,smoothingCatchupAtEnd:!!x.smoothingCatchupAtEnd,smoothingZoomCompensation:!!x.smoothingZoomCompensation,pressureSmoothing:!!x.pressureSmoothing,usePressureOverridesSize:!!x.usePressureOverridesSize,usePressureOverridesOpacity:!!x.usePressureOverridesOpacity,useLegacy:!!x.useLegacy},x.prVr&&(g.toolOptions.flowDynamics=Oe(x.prVr)),x.opVr&&(g.toolOptions.opacityDynamics=Oe(x.opVr)),x.szVr&&(g.toolOptions.sizeDynamics=Oe(x.szVr)),"wetness"in x&&(g.toolOptions.wetness=x.wetness),"dryness"in x&&(g.toolOptions.dryness=x.dryness),"mix"in x&&(g.toolOptions.mix=x.mix),"autoFill"in x&&(g.toolOptions.autoFill=x.autoFill),"autoClean"in x&&(g.toolOptions.autoClean=x.autoClean),"loadSolidColorOnly"in x&&(g.toolOptions.loadSolidColorOnly=x.loadSolidColorOnly),"sampleAllLayers"in x&&(g.toolOptions.sampleAllLayers=x.sampleAllLayers),"SmdF"in x&&(g.toolOptions.smudgeFingerPainting=x.SmdF),"SmdS"in x&&(g.toolOptions.smudgeSampleAllLayers=x.SmdS),"Prs "in x&&(g.toolOptions.strength=x["Prs "])),c.push(g)}break}case"patt":{for(;s.offset<p;)d.push((0,xe.readPattern)(s));s.offset=p;break}case"phry":{let S=(0,X.readVersionAndDescriptor)(s);t.logMissingFeatures&&!((r=S.hierarchy)===null||r===void 0)&&r.length;break}default:throw new Error(`Invalid brush type: ${f}`)}for(;h%4;)s.offset++,h++}}else throw new Error(`Unsupported ABR version (${a})`);return{samples:l,patterns:d,brushes:c}}});var Nc=oe(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.readCsh=ip;var np=oo(),Qe=jt();function ip(e){let t=(0,Qe.createReader)(e.buffer,e.byteOffset,e.byteLength),n={shapes:[]};if((0,Qe.checkSignature)(t,"cush"),(0,Qe.readUint32)(t)!==2)throw new Error("Invalid version");let i=(0,Qe.readUint32)(t);for(let o=0;o<i;o++){let r=(0,Qe.readUnicodeString)(t);for(;t.offset%4;)t.offset++;if((0,Qe.readUint32)(t)!==1)throw new Error("Invalid shape version");let s=(0,Qe.readUint32)(t),a=t.offset+s,l=(0,Qe.readPascalString)(t,1),c=(0,Qe.readUint32)(t),d=(0,Qe.readUint32)(t),u=(0,Qe.readUint32)(t),h=(0,Qe.readUint32)(t)-d,p=u-c,S={paths:[]};(0,np.readVectorMask)(t,S,h,p,a-t.offset),n.shapes.push(Object.assign({name:r,id:l,width:h,height:p},S)),t.offset=a}return n}});var Zc=oe(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.Compression=et.ChannelID=et.LayerCompCapturedInfo=et.SectionDividerType=et.ColorMode=void 0;var Vc;(function(e){e[e.Bitmap=0]="Bitmap",e[e.Grayscale=1]="Grayscale",e[e.Indexed=2]="Indexed",e[e.RGB=3]="RGB",e[e.CMYK=4]="CMYK",e[e.Multichannel=7]="Multichannel",e[e.Duotone=8]="Duotone",e[e.Lab=9]="Lab"})(Vc||(et.ColorMode=Vc={}));var Gc;(function(e){e[e.Other=0]="Other",e[e.OpenFolder=1]="OpenFolder",e[e.ClosedFolder=2]="ClosedFolder",e[e.BoundingSectionDivider=3]="BoundingSectionDivider"})(Gc||(et.SectionDividerType=Gc={}));var Hc;(function(e){e[e.None=0]="None",e[e.Visibility=1]="Visibility",e[e.Position=2]="Position",e[e.Appearance=4]="Appearance"})(Hc||(et.LayerCompCapturedInfo=Hc={}));var Wc;(function(e){e[e.Color0=0]="Color0",e[e.Color1=1]="Color1",e[e.Color2=2]="Color2",e[e.Color3=3]="Color3",e[e.Transparency=-1]="Transparency",e[e.UserMask=-2]="UserMask",e[e.RealUserMask=-3]="RealUserMask"})(Wc||(et.ChannelID=Wc={}));var Xc;(function(e){e[e.RawData=0]="RawData",e[e.RleCompressed=1]="RleCompressed",e[e.ZipWithoutPrediction=2]="ZipWithoutPrediction",e[e.ZipWithPrediction=3]="ZipWithPrediction"})(Xc||(et.Compression=Xc={}))});var Kc=oe(ee=>{"use strict";var op=ee&&ee.__createBinding||(Object.create?(function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}):(function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]})),Qr=ee&&ee.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&op(t,e,n)};Object.defineProperty(ee,"__esModule",{value:!0});ee.getCompositeCanvas=ee.getCompositeImageData=ee.getLayerRealMaskCanvas=ee.getLayerMaskCanvas=ee.getLayerCanvas=ee.getLayerRealMaskImageData=ee.getLayerMaskImageData=ee.getLayerImageData=ee.decodeLayerPixels=ee.byteArrayToBase64=ee.initializeCanvas=void 0;ee.readPsd=ap;ee.writePsd=lp;ee.writePsdUint8Array=qc;ee.writePsdBuffer=cp;var Bn=Dn(),tt=jt();Object.defineProperty(ee,"decodeLayerPixels",{enumerable:!0,get:function(){return tt.decodeLayerPixels}});Object.defineProperty(ee,"getLayerImageData",{enumerable:!0,get:function(){return tt.getLayerImageData}});Object.defineProperty(ee,"getLayerMaskImageData",{enumerable:!0,get:function(){return tt.getLayerMaskImageData}});Object.defineProperty(ee,"getLayerRealMaskImageData",{enumerable:!0,get:function(){return tt.getLayerRealMaskImageData}});Object.defineProperty(ee,"getLayerCanvas",{enumerable:!0,get:function(){return tt.getLayerCanvas}});Object.defineProperty(ee,"getLayerMaskCanvas",{enumerable:!0,get:function(){return tt.getLayerMaskCanvas}});Object.defineProperty(ee,"getLayerRealMaskCanvas",{enumerable:!0,get:function(){return tt.getLayerRealMaskCanvas}});Object.defineProperty(ee,"getCompositeImageData",{enumerable:!0,get:function(){return tt.getCompositeImageData}});Object.defineProperty(ee,"getCompositeCanvas",{enumerable:!0,get:function(){return tt.getCompositeCanvas}});var rp=ji();Qr($c(),ee);Qr(Nc(),ee);var sp=Tt();Object.defineProperty(ee,"initializeCanvas",{enumerable:!0,get:function(){return sp.initializeCanvas}});Qr(Zc(),ee);ee.byteArrayToBase64=rp.fromByteArray;function ap(e,t){let n="buffer"in e?(0,tt.createReader)(e.buffer,e.byteOffset,e.byteLength):(0,tt.createReader)(e);return(0,tt.readPsd)(n,t)}function lp(e,t){let n=(0,Bn.createWriter)();return(0,Bn.writePsd)(n,e,t),(0,Bn.getWriterBuffer)(n)}function qc(e,t){let n=(0,Bn.createWriter)();return(0,Bn.writePsd)(n,e,t),(0,Bn.getWriterBufferNoCopy)(n)}function cp(e,t){if(typeof Buffer>"u")throw new Error("Buffer not supported on this platform");return Buffer.from(qc(e,t))}});var vo=_d(Kc(),1);var So=class{view;offset=0;constructor(t){this.view=new DataView(t)}get length(){return this.view.byteLength}ensure(t,n=this.length,i="Adobe resource"){if(!Number.isSafeInteger(t)||t<0||this.offset+t>n||n>this.length)throw new Error(`${i} is truncated or has an invalid length.`)}u8(t,n){return this.ensure(1,t,n),this.view.getUint8(this.offset++)}i16(t,n){this.ensure(2,t,n);let i=this.view.getInt16(this.offset,!1);return this.offset+=2,i}u16(t,n){this.ensure(2,t,n);let i=this.view.getUint16(this.offset,!1);return this.offset+=2,i}i32(t,n){this.ensure(4,t,n);let i=this.view.getInt32(this.offset,!1);return this.offset+=4,i}u32(t,n){this.ensure(4,t,n);let i=this.view.getUint32(this.offset,!1);return this.offset+=4,i}i32le(t,n){this.ensure(4,t,n);let i=this.view.getInt32(this.offset,!0);return this.offset+=4,i}ascii(t,n,i){this.ensure(t,n,i);let o="";for(let r=0;r<t;r+=1)o+=String.fromCharCode(this.view.getUint8(this.offset++));return o}skip(t,n,i){this.ensure(t,n,i),this.offset+=t}},es=e=>{let t=e+3&-4;if(!Number.isSafeInteger(t)||t<e)throw new Error("Adobe resource alignment overflowed.");return t},St=(e,t,n)=>{let i=e*t;if(!Number.isSafeInteger(i)||i<0)throw new Error(`${n} overflows the safe integer range.`);return i},Yc=(e,t,n)=>{if(e.byteLength>t.maxFileBytes)throw new Error(`${n.toUpperCase()} source exceeds the ${t.maxFileBytes}-byte safety limit.`)},cn=(e,t,n)=>{if(!Number.isSafeInteger(e)||e<0||e>t.maxResourceItems)throw new Error(`${n} exceeds the ${t.maxResourceItems}-item safety limit.`)},Jc=(e,t,n,i)=>{cn(t,n,i),e.descriptorItems+=t;let o=Math.min(1e6,n.maxResourceItems*64);if(e.descriptorItems>o)throw new Error(`Adobe descriptor complexity exceeds the ${o}-record safety limit.`)},Qc=(e,t,n,i,o)=>{if(t<=0||t>i.maxResourcePreviewPixels)throw new Error(`${o} exceeds the ${i.maxResourcePreviewPixels}-pixel preview limit.`);if(e.previewPixels+=t,e.decodedBytes+=n,e.previewPixels>i.maxResourcePreviewPixels)throw new Error(`Adobe resource previews exceed the ${i.maxResourcePreviewPixels}-pixel collection limit.`);if(e.decodedBytes>i.maxDecodedBytes)throw new Error(`Adobe resource decoding exceeds the ${i.maxDecodedBytes}-byte safety limit.`)},Un=(e,t,n,i)=>{let o=e.u32(t,i);if(o>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-code-unit name limit.`);e.skip(St(o,2,`${i} length`),t,i)},ts=(e,t,n,i)=>{let o=e.u8(t,i);if(o>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-code-unit name limit.`);e.skip(o,t,i)},Pt=(e,t,n,i)=>{let o=e.i32(t,i);if(o<0)throw new Error(`${i} has a negative string length.`);let r=o||4;if(r>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-character identifier limit.`);e.skip(r,t,i)},ln=(e,t,n,i)=>{Un(e,t,n,`${i} name`),Pt(e,t,n,`${i} class id`)},wo=(e,t,n,i,o)=>{let r=e.i32(t,o);if(r<0)throw new Error(`${o} has a negative item count.`);return Jc(n,r,i,o),r},ed=(e,t,n,i,o,r)=>{if(i>r.maxNestingDepth)throw new Error(`Adobe descriptor nesting exceeds the ${r.maxNestingDepth}-level safety limit.`);switch(n){case"obj ":{let s=wo(e,t,o,r,"Adobe descriptor reference");for(let a=0;a<s;a+=1){let l=e.ascii(4,t,"Adobe descriptor reference type");if(l==="prop")ln(e,t,r,"Adobe property reference"),Pt(e,t,r,"Adobe property key");else if(l==="Clss")ln(e,t,r,"Adobe class reference");else if(l==="Enmr")ln(e,t,r,"Adobe enum reference"),Pt(e,t,r,"Adobe enum type"),Pt(e,t,r,"Adobe enum value");else if(l==="rele")ln(e,t,r,"Adobe offset reference"),e.skip(4,t,"Adobe offset reference");else if(l==="Idnt"||l==="indx")e.skip(4,t,"Adobe integer reference");else if(l==="name")ln(e,t,r,"Adobe name reference"),Un(e,t,r,"Adobe reference name");else throw new Error(`Unsupported Adobe descriptor reference type ${JSON.stringify(l)}.`)}return}case"Objc":case"GlbO":td(e,t,i+1,o,r);return;case"VlLs":{let s=wo(e,t,o,r,"Adobe descriptor list");for(let a=0;a<s;a+=1){let l=e.ascii(4,t,"Adobe descriptor list type");ed(e,t,l,i+1,o,r)}return}case"doub":e.skip(8,t,"Adobe double");return;case"UntF":e.skip(12,t,"Adobe unit double");return;case"UnFl":e.skip(8,t,"Adobe unit float");return;case"TEXT":Un(e,t,r,"Adobe descriptor text");return;case"enum":Pt(e,t,r,"Adobe enum type"),Pt(e,t,r,"Adobe enum value");return;case"long":e.skip(4,t,"Adobe integer");return;case"comp":e.skip(8,t,"Adobe large integer");return;case"bool":e.skip(1,t,"Adobe boolean");return;case"type":case"GlbC":ln(e,t,r,"Adobe descriptor class");return;case"alis":case"tdta":{let s=e.i32(t,"Adobe descriptor data length");if(s<0||s>r.maxDecodedBytes)throw new Error(`Adobe descriptor data exceeds the ${r.maxDecodedBytes}-byte safety limit.`);e.skip(s,t,"Adobe descriptor data");return}case"ObAr":{e.skip(4,t,"Adobe object-array version"),Un(e,t,r,"Adobe object-array name"),Pt(e,t,r,"Adobe object-array class");let s=wo(e,t,o,r,"Adobe object array");for(let a=0;a<s;a+=1){Pt(e,t,r,"Adobe object-array item type");let l=e.ascii(4,t,"Adobe object-array value type");if(l!=="UnFl")throw new Error(`Unsupported Adobe object-array value type ${JSON.stringify(l)}.`);e.skip(4,t,"Adobe object-array units");let c=wo(e,t,o,r,"Adobe object-array values");e.skip(St(c,8,"Adobe object-array values"),t,"Adobe object-array values")}return}case"Pth ":{let s=e.i32(t,"Adobe path length");if(s<0||s>r.maxDecodedBytes)throw new Error("Adobe descriptor path length is invalid.");e.skip(4,t,"Adobe path signature");let a=e.i32le(t,"Adobe path size"),l=e.i32le(t,"Adobe path character count");if(a<0||l<0||l>r.maxResourceNameCodeUnits)throw new Error("Adobe descriptor path exceeds its bounded string limits.");e.skip(St(l,2,"Adobe path characters"),t,"Adobe descriptor path");return}default:throw new Error(`Unsupported Adobe descriptor value type ${JSON.stringify(n)}.`)}},td=(e,t,n,i,o)=>{if(n>o.maxNestingDepth)throw new Error(`Adobe descriptor nesting exceeds the ${o.maxNestingDepth}-level safety limit.`);ln(e,t,o,"Adobe descriptor");let r=e.u32(t,"Adobe descriptor item count");Jc(i,r,o,"Adobe descriptor item count");for(let s=0;s<r;s+=1){Pt(e,t,o,"Adobe descriptor key");let a=e.ascii(4,t,"Adobe descriptor value type");ed(e,t,a,n+1,i,o)}},dp=(e,t,n,i)=>{let o=e.u32(t,"Adobe descriptor version");if(o!==16)throw new Error(`Unsupported Adobe descriptor version ${o}.`);td(e,t,0,n,i)},nd=(e,t,n,i,o)=>{let r=St(i,2,`${o} row table`);e.ensure(r,t,o);let s=Array.from({length:i},()=>e.u16(t,`${o} row length`));for(let a=0;a<i;a+=1){let l=e.offset+s[a];if(l>t)throw new Error(`${o} compressed row ${a} is truncated.`);let c=0;for(;e.offset<l;){let d=e.u8(l,`${o} PackBits header`);if(d<=127){let u=d+1;e.skip(u,l,`${o} PackBits literal`),c+=u}else d>=129&&(e.skip(1,l,`${o} PackBits repeat value`),c+=257-d);if(c>n)throw new Error(`${o} PackBits row ${a} expands beyond its declared width.`)}if(c!==n)throw new Error(`${o} PackBits row ${a} does not expand to its declared width.`)}},fp=(e,t,n,i,o)=>{let r=0;for(;e.offset<t;){cn(++r,o,"ABR sample count");let s=e.u32(t,"ABR sample length"),a=e.offset,l=a+s,c=a+es(s);if(l>t||c>t)throw new Error("ABR sample record is truncated.");ts(e,l,o,"ABR sample id"),e.skip(n===1?10:264,l,"ABR sample header");let d=e.i32(l,"ABR sample top"),u=e.i32(l,"ABR sample left"),f=e.i32(l,"ABR sample bottom"),p=e.i32(l,"ABR sample right")-u,S=f-d;if(p<=0||S<=0||p>o.maxCanvasDimension||S>o.maxCanvasDimension)throw new Error(`ABR sample dimensions exceed the ${o.maxCanvasDimension}-pixel side limit.`);let m=St(p,S,"ABR sample pixels"),g=e.i16(l,"ABR sample depth"),v=e.u8(l,"ABR sample compression");if(g!==8&&g!==16)throw new Error(`Unsupported ABR sample depth ${g}.`);if(v!==0&&v!==1)throw new Error(`Unsupported ABR sample compression ${v}.`);if(g===16&&v===1)throw new Error("ABR 16-bit RLE samples are not supported by the decoding engine.");if(Qc(i,m,m,o,"ABR sample"),v===0?e.skip(St(m,g/8,"ABR raw sample bytes"),l,"ABR raw sample"):nd(e,l,p,S,"ABR sample"),e.offset>l)throw new Error("ABR sample payload exceeded its declared record boundary.");e.offset=l,e.offset=c}return r},up=(e,t,n,i)=>{let o=e.u32(t,"ABR pattern length"),s=e.offset+es(o);if(s>t)throw new Error("ABR pattern record is truncated.");if(e.u32(s,"ABR pattern version")!==1)throw new Error("Unsupported ABR pattern version.");let a=e.u32(s,"ABR pattern color mode");if(a!==1&&a!==2&&a!==3)throw new Error(`Unsupported ABR pattern color mode ${a}.`);if(e.skip(4,s,"ABR pattern origin"),Un(e,s,i,"ABR pattern name"),ts(e,s,i,"ABR pattern id"),a===2&&e.skip(772,s,"ABR indexed palette"),e.u32(s,"ABR pattern VMAL version")!==3)throw new Error("Unsupported ABR pattern VMAL version.");e.u32(s,"ABR pattern VMAL length");let l=e.u32(s,"ABR pattern top"),c=e.u32(s,"ABR pattern left"),d=e.u32(s,"ABR pattern bottom"),u=e.u32(s,"ABR pattern right"),f=e.u32(s,"ABR pattern channel count");if(d<=l||u<=c||f>16)throw new Error("ABR pattern bounds or channel count is invalid.");let h=u-c,p=d-l;if(h>i.maxCanvasDimension||p>i.maxCanvasDimension)throw new Error(`ABR pattern dimensions exceed the ${i.maxCanvasDimension}-pixel side limit.`);let S=St(h,p,"ABR pattern pixels");Qc(n,S,St(S,4,"ABR pattern RGBA bytes"),i,"ABR pattern");for(let m=0;m<f+2;m+=1){if(!e.u32(s,"ABR pattern channel presence"))continue;let v=e.u32(s,"ABR pattern channel length");if(v<23)throw new Error("ABR pattern channel length is invalid.");let x=e.offset+v;if(x>s)throw new Error("ABR pattern channel is truncated.");let _=e.u32(x,"ABR pattern channel depth"),I=e.u32(x,"ABR pattern channel top"),P=e.u32(x,"ABR pattern channel left"),k=e.u32(x,"ABR pattern channel bottom"),E=e.u32(x,"ABR pattern channel right"),O=e.u16(x,"ABR pattern channel depth duplicate"),U=e.u8(x,"ABR pattern channel compression");if(_!==8||O!==8||U!==0&&U!==1)throw new Error("ABR pattern channel uses an unsupported depth or compression mode.");if(k<I||E<P||I<l||P<c||k>d||E>u)throw new Error("ABR pattern channel bounds are invalid.");let M=E-P,le=k-I,me=St(M,le,"ABR pattern channel pixels");if(U===0){if(x-e.offset!==me)throw new Error("ABR raw pattern channel length does not match its dimensions.");e.skip(me,x,"ABR raw pattern channel")}else if(nd(e,x,M,le,"ABR pattern channel"),e.offset!==x)throw new Error("ABR RLE pattern channel has trailing bytes.")}e.offset=s},id=(e,t)=>{Yc(e,t,"ABR");let n=new So(e),i=n.i16(void 0,"ABR version");if(i!==6&&i!==7&&i!==9&&i!==10)throw new Error(`Unsupported ABR version ${i}; the browser engine supports modern ABR versions 6, 7, 9, and 10.`);let o=n.i16(void 0,"ABR minor version");if(o!==1&&o!==2)throw new Error(`Unsupported ABR minor version ${o}.`);let r={descriptorItems:0,previewPixels:0,decodedBytes:0},s=0,a=0,l=0;for(;n.offset<n.length;){if(cn(++s,t,"ABR section count"),n.ascii(4,void 0,"ABR section signature")!=="8BIM")throw new Error("Invalid ABR section signature.");let c=n.ascii(4,void 0,"ABR section type"),d=n.u32(void 0,"ABR section length"),u=n.offset,f=u+d,h=u+es(d);if(f>n.length||h>n.length)throw new Error("ABR section is truncated.");if(c==="samp")a+=fp(n,f,o,r,t);else if(c==="desc"||c==="phry"){if(dp(n,f,r,t),n.offset!==f)throw new Error(`ABR ${c} descriptor does not consume its declared section.`)}else if(c==="patt")for(;n.offset<f;)cn(++l,t,"ABR pattern count"),up(n,f,r,t);else throw new Error(`Unsupported ABR section type ${JSON.stringify(c)}.`);if(n.offset>f)throw new Error(`ABR ${c} section exceeded its declared boundary.`);n.offset=h}return cn(a+l,t,"ABR decoded resource count"),{format:"abr",majorVersion:i,minorVersion:o,sections:s,samples:a,patterns:l,previewPixels:r.previewPixels,decodedBytes:r.decodedBytes}},od=(e,t)=>{Yc(e,t,"CSH");let n=new So(e);if(n.ascii(4,void 0,"CSH signature")!=="cush")throw new Error("Invalid CSH signature.");let i=n.u32(void 0,"CSH version");if(i!==2)throw new Error(`Unsupported CSH version ${i}; version 2 is required.`);let o=n.u32(void 0,"CSH shape count");cn(o,t,"CSH shape count");let r=0,s=0,a=Math.min(1e6,t.maxResourceItems*64);for(let l=0;l<o;l+=1){for(Un(n,n.length,t,`CSH shape ${l} name`);n.offset%4;)n.skip(1,n.length,"CSH name padding");if(n.u32(void 0,"CSH shape version")!==1)throw new Error("Unsupported CSH shape record version.");let c=n.u32(void 0,"CSH shape record length"),d=n.offset+c;if(d>n.length)throw new Error("CSH shape record is truncated.");ts(n,d,t,`CSH shape ${l} id`);let u=n.u32(d,"CSH shape top"),f=n.u32(d,"CSH shape left"),h=n.u32(d,"CSH shape bottom"),p=n.u32(d,"CSH shape right");if(h<=u||p<=f)throw new Error("CSH shape bounds are invalid.");let S=p-f,m=h-u;if(S>t.maxCanvasDimension||m>t.maxCanvasDimension)throw new Error(`CSH shape dimensions exceed the ${t.maxCanvasDimension}-pixel side limit.`);let g=St(S,m,"CSH shape preview pixels");if(s+=g,s>t.maxResourcePreviewPixels)throw new Error(`CSH previews exceed the ${t.maxResourcePreviewPixels}-pixel collection limit.`);if((d-n.offset)%26!==0)throw new Error("CSH vector record section is not aligned to 26-byte path records.");let v=0,x=0,_=!1;for(;n.offset<d;){if(r+=1,r>a)throw new Error(`CSH path complexity exceeds the ${a}-record safety limit.`);let I=n.u16(d,"CSH vector selector");if(I===0||I===3){if(_&&x!==v)throw new Error("CSH path knot count does not match its declared count.");v=n.u16(d,"CSH path knot count"),cn(v,t,"CSH path knot count");let P=n.i16(d,"CSH path boolean operation");if(P<-1||P>3)throw new Error("CSH path boolean operation is invalid.");n.skip(20,d,"CSH path header"),x=0,_=!0}else if(I===1||I===2||I===4||I===5){if(!_)throw new Error("CSH knot appears before a path header.");if(n.skip(24,d,"CSH Bezier knot"),x+=1,x>v)throw new Error("CSH path contains more knots than declared.")}else if(I===6||I===7||I===8)n.skip(24,d,"CSH vector metadata record");else throw new Error(`Unsupported CSH vector selector ${I}.`)}if(_&&x!==v)throw new Error("CSH path knot count does not match its declared count.")}if(n.offset!==n.length)throw new Error("CSH file has trailing bytes outside its declared shapes.");return{format:"csh",version:2,shapes:o,pathRecords:r,previewPixels:s}};var Et=(e,t)=>{if(!Number.isFinite(e))throw new Error(`${t} is not finite.`);return e},dn=(e,t,n)=>{if(e.length>t.maxResourceNameCodeUnits)throw new Error(`${n} exceeds the ${t.maxResourceNameCodeUnits}-code-unit name limit.`);return e},hp=(e,t,n)=>{let i=Et(e.size,`${n} size`),o=Et(e.angle,`${n} angle`);if(i<0||i>t.maxCanvasDimension)throw new Error(`${n} size exceeds the ${t.maxCanvasDimension}-pixel side limit.`);let r={type:e.type,size:i,angle:o};return"roundness"in e&&(r.roundness=Et(e.roundness,`${n} roundness`)),"hardness"in e&&(r.hardness=Et(e.hardness,`${n} hardness`)),"spacing"in e&&(r.spacing=Et(e.spacing,`${n} spacing`)),e.type==="sampled"&&(r.sampledDataId=dn(e.sampledData,t,`${n} sampled-data id`)),r},pp=(e,t)=>({name:dn(e.name,t,"ABR brush name"),shape:hp(e.shape,t,`ABR brush ${JSON.stringify(e.name)}`),hasDynamics:!!(e.shapeDynamics||e.scatter||e.colorDynamics||e.transfer||e.brushPose),hasTexture:!!e.texture,hasDualBrush:!!e.dualBrush,...e.toolOptions?.type?{toolType:e.toolOptions.type}:{}}),mp=(e,t)=>{let n=id(e,t),i=(0,vo.readAbr)(new Uint8Array(e),{logMissingFeatures:!1});if(i.brushes.length+i.samples.length+i.patterns.length>t.maxResourceItems)throw new Error(`ABR decoded resources exceed the ${t.maxResourceItems}-item safety limit.`);let r=0,s=0,a=i.samples.map((c,d)=>{let{w:u,h:f,x:h,y:p}=c.bounds,S=u*f;if(!Number.isSafeInteger(S)||S<=0||c.alpha.byteLength!==S)throw new Error(`ABR sample ${d} returned inconsistent decoded pixels.`);return s+=S,r+=c.alpha.byteLength,{id:dn(c.id,t,`ABR sample ${d} id`),x:Et(h,`ABR sample ${d} x`),y:Et(p,`ABR sample ${d} y`),width:u,height:f,alpha:c.alpha}}),l=i.patterns.map((c,d)=>{let{w:u,h:f,x:h,y:p}=c.bounds,S=u*f;if(!Number.isSafeInteger(S)||S<=0||c.data.byteLength!==S*4)throw new Error(`ABR pattern ${d} returned inconsistent decoded pixels.`);return s+=S,r+=c.data.byteLength,{id:dn(c.id,t,`ABR pattern ${d} id`),name:dn(c.name,t,`ABR pattern ${d} name`),x:Et(h,`ABR pattern ${d} x`),y:Et(p,`ABR pattern ${d} y`),width:u,height:f,rgba:c.data}});if(s!==n.previewPixels||s>t.maxResourcePreviewPixels)throw new Error("ABR decoded preview pixels do not match the bounded preflight result.");if(r!==n.decodedBytes||r>t.maxDecodedBytes)throw new Error("ABR decoded byte count does not match the bounded preflight result.");return{format:"abr",version:`${n.majorVersion}.${n.minorVersion}`,engine:"ag-psd",fidelity:"decoded-tip-and-metadata-preview",brushes:i.brushes.map(c=>pp(c,t)),samples:a,patterns:l,limitations:["The preview shows decoded tip alpha, embedded pattern pixels, and preset metadata; it does not simulate a painted stroke.","Legacy ABR versions 1 and 2 and 16-bit RLE brush samples are rejected because the decoding engine does not implement them."]}},ze=e=>{let t=Math.abs(e)<1e-9?0:e;return Number(t.toFixed(4)).toString()},gp=(e,t)=>{if(!e.knots.length)return{d:"",fillRule:e.fillRule,...e.operation?{operation:e.operation}:{}};let n=e.knots.map((r,s)=>{if(r.points.length!==6||r.points.some(a=>!Number.isFinite(a)))throw new Error(`${t} knot ${s} has invalid Bezier coordinates.`);return r.points}),i=n[0],o=`M ${ze(i[2])} ${ze(i[3])}`;for(let r=1;r<n.length;r+=1){let s=n[r-1],a=n[r];o+=` C ${ze(s[4])} ${ze(s[5])} ${ze(a[0])} ${ze(a[1])} ${ze(a[2])} ${ze(a[3])}`}if(!e.open){let r=n.at(-1);o+=` C ${ze(r[4])} ${ze(r[5])} ${ze(i[0])} ${ze(i[1])} ${ze(i[2])} ${ze(i[3])} Z`}return{d:o,fillRule:e.fillRule,...e.operation?{operation:e.operation}:{}}},bp=(e,t)=>{let n=od(e,t),i=(0,vo.readCsh)(new Uint8Array(e));if(i.shapes.length!==n.shapes)throw new Error("CSH decoded shape count does not match its bounded preflight result.");let o=0,r=0,s=Math.min(1e6,t.maxResourceItems*64);return{format:"csh",version:"2",engine:"ag-psd",fidelity:"vector-path-preview",shapes:i.shapes.map((l,c)=>{if(!Number.isSafeInteger(l.width)||!Number.isSafeInteger(l.height)||l.width<=0||l.height<=0)throw new Error(`CSH shape ${c} has invalid dimensions.`);o+=l.paths.length;let d=l.paths.map((u,f)=>(r+=u.knots.length,gp(u,`CSH shape ${c} path ${f}`)));if(o+r>s)throw new Error(`CSH decoded path complexity exceeds the ${s}-record safety limit.`);return{id:dn(l.id,t,`CSH shape ${c} id`),name:dn(l.name,t,`CSH shape ${c} name`),width:l.width,height:l.height,paths:d,hasUnsupportedBooleanComposition:l.paths.some(u=>u.operation&&u.operation!=="combine")}}),limitations:["Bezier geometry is preserved, but Photoshop exclude/subtract/intersect path operations are exposed as metadata rather than rasterized with Photoshop composition semantics.","The preview does not include Photoshop tool presets, fills, strokes, or effects because CSH stores custom-shape paths rather than a styled document."]}},rd=(e,t,n)=>t==="abr"?mp(e,n):bp(e,n);var yp=(e,t,n)=>{let i=e*t;if(!Number.isSafeInteger(i)||i<0)throw new Error(`${n} exceeds the safe integer range.`);return i},wp=(e,t)=>{if(!Number.isFinite(e))throw new Error(`${t} is not finite.`);return e},Rn=class{bytes;view;offset=0;constructor(t){this.bytes=t instanceof Uint8Array?t:new Uint8Array(t),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength)}get length(){return this.bytes.byteLength}get remaining(){return this.length-this.offset}ensure(t,n=this.length,i="Adobe binary data"){if(!Number.isSafeInteger(t)||t<0||this.offset>n||t>n-this.offset)throw new Error(`${i} is truncated.`)}u8(t=this.length,n){return this.ensure(1,t,n),this.view.getUint8(this.offset++)}u16(t=this.length,n){this.ensure(2,t,n);let i=this.view.getUint16(this.offset,!1);return this.offset+=2,i}i16(t=this.length,n){this.ensure(2,t,n);let i=this.view.getInt16(this.offset,!1);return this.offset+=2,i}u32(t=this.length,n){this.ensure(4,t,n);let i=this.view.getUint32(this.offset,!1);return this.offset+=4,i}i32(t=this.length,n){this.ensure(4,t,n);let i=this.view.getInt32(this.offset,!1);return this.offset+=4,i}i64(t=this.length,n){this.ensure(8,t,n);let i=this.view.getBigInt64(this.offset,!1);return this.offset+=8,i}f64(t=this.length,n){this.ensure(8,t,n);let i=this.view.getFloat64(this.offset,!1);return this.offset+=8,wp(i,n||"Adobe double")}ascii(t,n=this.length,i="Adobe ASCII data"){this.ensure(t,n,i);let o="";for(let r=0;r<t;r+=1)o+=String.fromCharCode(this.bytes[this.offset+r]);return this.offset+=t,o}slice(t,n=this.length,i="Adobe binary data"){this.ensure(t,n,i);let o=this.bytes.subarray(this.offset,this.offset+t);return this.offset+=t,o}skip(t,n=this.length,i="Adobe binary data"){this.ensure(t,n,i),this.offset+=t}},hi=(e,t,n,i)=>{let o=e.u32(t,`${i} length`);if(o>n.maxResourceNameCodeUnits+1)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-code-unit safety limit.`);let r=e.slice(yp(o,2,`${i} bytes`),t,i),s="";for(let a=0;a<o;a+=1){let l=r[a*2]<<8|r[a*2+1];if(!(l===0&&a===o-1))if(l>=55296&&l<=56319){if(a+1>=o)throw new Error(`${i} ends with an unpaired UTF-16 surrogate.`);let c=r[(a+1)*2]<<8|r[(a+1)*2+1];if(c<56320||c>57343)throw new Error(`${i} contains an invalid UTF-16 surrogate pair.`);s+=String.fromCodePoint(65536+(l-55296<<10)+(c-56320)),a+=1}else{if(l>=56320&&l<=57343)throw new Error(`${i} contains an unpaired UTF-16 surrogate.`);s+=String.fromCharCode(l)}}if(s.length>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-code-unit safety limit.`);return s},Wt=(e,t,n,i)=>{let o=e.u32(t,`${i} length`),r=o===0?4:o;if(r===0||r>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-byte safety limit.`);return e.ascii(r,t,i)},ui=(e,t,n)=>{if(!Number.isSafeInteger(t)||t<0||t>e.maximum-e.values)throw new Error(`${n} exceeds the ${e.maximum}-value descriptor safety limit.`);e.values+=t},sd=(e,t,n,i)=>({name:hi(e,t,n,`${i} name`),classId:Wt(e,t,n,`${i} id`)}),Sp=(e,t,n,i)=>{let o=e.u32(t,"Adobe reference count");ui(i,o,"Adobe reference count");let r=[];for(let s=0;s<o;s+=1){let a=e.ascii(4,t,"Adobe reference form"),{name:l,classId:c}=sd(e,t,n,"Adobe reference class"),d={form:a,className:l,classId:c};if(a==="prop")d.property=Wt(e,t,n,"Adobe reference property");else if(a==="Enmr")d.enumType=Wt(e,t,n,"Adobe reference enum type"),d.enumValue=Wt(e,t,n,"Adobe reference enum value");else if(a==="rele"||a==="Idnt"||a==="indx")d.index=e.i32(t,"Adobe reference index");else if(a==="name")d.name=hi(e,t,n,"Adobe reference name");else if(a!=="Clss")throw new Error(`Unsupported Adobe reference form ${JSON.stringify(a)}.`);r.push(d)}return r},vp=(e,t,n)=>{let i=e.u32(t,"Adobe descriptor path length");if(i>n.maxDecodedBytes)throw new Error(`Adobe descriptor path exceeds the ${n.maxDecodedBytes}-byte safety limit.`);return e.skip(i,t,"Adobe descriptor path"),{type:"path",length:i}},ad=(e,t,n,i,o,r)=>{if(r>i.maxNestingDepth)throw new Error(`Adobe descriptor nesting exceeds the ${i.maxNestingDepth}-level safety limit.`);switch(n){case"bool":return{type:"boolean",value:e.u8(t,"Adobe boolean")!==0};case"long":return{type:"integer",value:e.i32(t,"Adobe integer")};case"comp":return{type:"large-integer",value:e.i64(t,"Adobe large integer")};case"doub":return{type:"double",value:e.f64(t,"Adobe double")};case"UntF":return{type:"unit-double",unit:e.ascii(4,t,"Adobe unit"),value:e.f64(t,"Adobe unit double")};case"TEXT":return{type:"text",value:hi(e,t,i,"Adobe descriptor text")};case"enum":return{type:"enum",enumType:Wt(e,t,i,"Adobe enum type"),value:Wt(e,t,i,"Adobe enum value")};case"Objc":case"GlbO":return{type:"object",value:fn(e,t,i,o,r+1)};case"VlLs":{let s=e.u32(t,"Adobe list count");ui(o,s,"Adobe list count");let a=[];for(let l=0;l<s;l+=1)a.push(ad(e,t,e.ascii(4,t,"Adobe list value type"),i,o,r+1));return{type:"list",value:a}}case"alis":case"tdta":{let s=e.u32(t,"Adobe raw data length");if(s>i.maxDecodedBytes)throw new Error(`Adobe raw data exceeds the ${i.maxDecodedBytes}-byte safety limit.`);return e.skip(s,t,"Adobe raw data"),{type:"raw",length:s,alias:n==="alis"}}case"type":case"GlbC":{let s=sd(e,t,i,"Adobe class reference");return{type:"class",name:s.name,classId:s.classId}}case"UnFl":{let s=e.ascii(4,t,"Adobe unit-float-array unit"),a=e.u32(t,"Adobe unit-float-array count");ui(o,a,"Adobe unit-float-array count");let l=Array.from({length:a},()=>e.f64(t,"Adobe unit-float-array value"));return{type:"unit-double-array",unit:s,value:l}}case"ObAr":{let s=e.u32(t,"Adobe object-array count");return ui(o,s,"Adobe object-array count"),{type:"object-array",count:s,value:fn(e,t,i,o,r+1)}}case"obj ":return{type:"reference",value:Sp(e,t,i,o)};case"Pth ":return vp(e,t,i);default:throw new Error(`Unsupported Adobe descriptor value type ${JSON.stringify(n)}.`)}},pi=e=>{let t=Number.isSafeInteger(e.maxResourceItems)&&e.maxResourceItems>0?Math.min(1e6,e.maxResourceItems):1;return{values:0,maximum:t>3906?1e6:t*256}},fn=(e,t,n,i=pi(n),o=0)=>{if(o>n.maxNestingDepth)throw new Error(`Adobe descriptor nesting exceeds the ${n.maxNestingDepth}-level safety limit.`);let r=hi(e,t,n,"Adobe descriptor name"),s=Wt(e,t,n,"Adobe descriptor class"),a=e.u32(t,"Adobe descriptor item count");ui(i,a,"Adobe descriptor item count");let l=new Map,c=[];for(let d=0;d<a;d+=1){let u=Wt(e,t,n,"Adobe descriptor key");if(l.has(u))throw new Error(`Adobe descriptor contains duplicate key ${JSON.stringify(u)}.`);let f=e.ascii(4,t,"Adobe descriptor value type");l.set(u,ad(e,t,f,n,i,o+1)),c.push(u)}return{name:r,classId:s,entries:l,keys:c}},Le=(e,t)=>e?.entries.get(t),mi=(e,t)=>{let n=Le(e,t);return n?.type==="object"?n.value:void 0},un=(e,t)=>{let n=Le(e,t);return n?.type==="text"?n.value:void 0},gi=(e,t)=>{let n=Le(e,t);return n?.type==="enum"?n.value:void 0},bi=(e,t,n=!1)=>{let i=Le(e,t);return i?.type==="boolean"?i.value:n},ye=(e,t,n=0)=>{let i=Le(e,t);return i?i.type==="integer"||i.type==="double"||i.type==="unit-double"?i.value:i.type==="large-integer"?Number(i.value):n:n},ld=hi;var xp=["maxFileBytes","maxCanvasPixels","maxCanvasDimension","maxLayers","maxNestingDepth","maxLayerPixels","maxDecodedBytes","maxLayerCacheBytes","maxResourceItems","maxResourceNameCodeUnits","maxResourcePreviewPixels"],_p=e=>{for(let t of xp){let n=e[t];if(!Number.isSafeInteger(n)||n<=0)throw new Error(`Invalid Adobe preset safety limit ${t}.`)}},ud=e=>e+3&-4,st=(e,t,n)=>{let i=e+t;if(!Number.isSafeInteger(i)||i<0)throw new Error(`${n} exceeds the safe integer range.`);return i},_o=(e,t,n)=>{let i=e*t;if(!Number.isSafeInteger(i)||i<0)throw new Error(`${n} exceeds the safe integer range.`);return i},is=(e,t,n)=>{if(e.byteLength>t.maxFileBytes)throw new Error(`${n} source exceeds the ${t.maxFileBytes}-byte safety limit.`);if(!e.byteLength)throw new Error(`${n} source is empty.`)},hd=(e,t,n,i,o)=>{if(e.previewPixels=st(e.previewPixels,t,`${o} preview pixels`),e.decodedBytes=st(e.decodedBytes,n,`${o} decoded bytes`),e.previewPixels>i.maxResourcePreviewPixels)throw new Error(`${o} exceeds the ${i.maxResourcePreviewPixels}-pixel preview safety limit.`);if(e.decodedBytes>i.maxDecodedBytes)throw new Error(`${o} exceeds the ${i.maxDecodedBytes}-byte decoded-data safety limit.`)},Ap=(e,t,n,i)=>{let o=e.u8(t,`${i} length`);if(o>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-byte safety limit.`);return e.ascii(o,t,i).replace(/\0+$/u,"")},kp=(e,t,n,i,o,r)=>{let s=Array.from({length:i},(l,c)=>e.u16(t,`${r} row ${c} length`)),a=o?new Uint8Array(_o(n,i,`${r} pixels`)):void 0;for(let l=0;l<i;l+=1){let c=st(e.offset,s[l],`${r} row ${l} end`);if(c>t)throw new Error(`${r} compressed row ${l} is truncated.`);let d=0;for(;e.offset<c;){let u=e.u8(c,`${r} PackBits header`);if(u<=127){let f=u+1,h=e.slice(f,c,`${r} PackBits literal`);if(d+f>n)throw new Error(`${r} row ${l} expands beyond its declared width.`);a&&a.set(h,l*n+d),d+=f}else if(u>=129){let f=257-u,h=e.u8(c,`${r} PackBits repeat value`);if(d+f>n)throw new Error(`${r} row ${l} expands beyond its declared width.`);a?.fill(h,l*n+d,l*n+d+f),d+=f}}if(d!==n)throw new Error(`${r} row ${l} expands to ${d} instead of ${n} pixels.`)}if(e.offset!==t)throw new Error(`${r} has trailing compressed bytes.`);return a},Ip=(e,t,n,i,o,r,s)=>{let a=_o(n,i,`${s} pixels`);if(o===0){if(e.offset+a!==t)throw new Error(`${s} raw byte length does not match its dimensions.`);return r?Uint8Array.from(e.slice(a,t,s)):(e.skip(a,t,s),void 0)}if(o===1)return kp(e,t,n,i,r,s);throw new Error(`${s} uses unsupported compression mode ${o}.`)},cd=(e,t,n,i,o,r,s,a)=>{for(let l=0;l<i.height;l+=1)for(let c=0;c<i.width;c+=1){let d=l*i.width+c,u=((i.top-t.top+l)*t.width+i.left-t.left+c)*4,f=n[d];r===1&&o===0?(e[u]=f,e[u+1]=f,e[u+2]=f):r===2&&o===0&&s?(e[u]=s[f*3],e[u+1]=s[f*3+1],e[u+2]=s[f*3+2],a&&(a[(i.top-t.top+l)*t.width+i.left-t.left+c]=f)):e[u+o]=f}},pd=(e,t,n,i,o,r)=>{if(e.u32(t,`PAT pattern ${r} version`)!==1)throw new Error(`PAT pattern ${r} uses an unsupported record version.`);let s=e.u32(t,`PAT pattern ${r} color mode`);if(s!==1&&s!==2&&s!==3)throw new Error(`PAT pattern ${r} uses unsupported color mode ${s}; only 8-bit grayscale, indexed, and RGB tiles are decoded.`);let a=e.i16(t,`PAT pattern ${r} vertical value`),l=e.i16(t,`PAT pattern ${r} horizontal value`),c=ld(e,t,n,`PAT pattern ${r} name`),d=Ap(e,t,n,`PAT pattern ${r} id`);if(!d)throw new Error(`PAT pattern ${r} has an empty unique id.`);let u,f=65535;if(s===2&&(u=Uint8Array.from(e.slice(768,t,`PAT pattern ${r} indexed palette`)),o?(e.u16(t,`PAT pattern ${r} indexed color count`),f=e.u16(t,`PAT pattern ${r} transparent palette index`)):e.skip(4,t,`PAT pattern ${r} indexed footer`)),e.u32(t,`PAT pattern ${r} VMAL version`)!==3)throw new Error(`PAT pattern ${r} uses an unsupported VMAL version.`);let h=e.u32(t,`PAT pattern ${r} VMAL length`),p=st(e.offset,h,`PAT pattern ${r} VMAL end`);if(p>t)throw new Error(`PAT pattern ${r} VMAL is truncated.`);let S=e.i32(p,`PAT pattern ${r} top`),m=e.i32(p,`PAT pattern ${r} left`),g=e.i32(p,`PAT pattern ${r} bottom`),v=e.i32(p,`PAT pattern ${r} right`),x=v-m,_=g-S,I=e.u32(p,`PAT pattern ${r} channel count`);if(x<=0||_<=0||x>n.maxCanvasDimension||_>n.maxCanvasDimension)throw new Error(`PAT pattern ${r} dimensions exceed the ${n.maxCanvasDimension}-pixel side safety limit.`);if(o&&(l!==x||a!==_))throw new Error(`PAT pattern ${r} header dimensions disagree with its decoded VMAL bounds.`);if(I>64)throw new Error(`PAT pattern ${r} channel count exceeds the 64-channel safety limit.`);let P=_o(x,_,`PAT pattern ${r} pixels`);hd(i,P,_o(P,4,`PAT pattern ${r} RGBA bytes`),n,`PAT pattern ${r}`);let k=new Uint8Array(P*4);for(let T=3;T<k.length;T+=4)k[T]=255;let E=s===2?new Uint8Array(P):void 0,O=s===3?3:1,U=new Set,M=!1,le={top:S,left:m,width:x,height:_};for(let T=0;T<I+2;T+=1){let W=e.u32(p,`PAT pattern ${r} channel ${T} presence`);if(!W)continue;if(W!==1)throw new Error(`PAT pattern ${r} channel ${T} has an invalid presence marker.`);let te=e.u32(p,`PAT pattern ${r} channel ${T} length`);if(te<23)throw new Error(`PAT pattern ${r} channel ${T} is shorter than its header.`);let ne=st(e.offset,te,`PAT pattern ${r} channel ${T} end`);if(ne>p)throw new Error(`PAT pattern ${r} channel ${T} is truncated.`);let Pe=e.u32(ne,`PAT pattern ${r} channel ${T} depth`),Ee=e.i32(ne,`PAT pattern ${r} channel ${T} top`),j=e.i32(ne,`PAT pattern ${r} channel ${T} left`),R=e.i32(ne,`PAT pattern ${r} channel ${T} bottom`),V=e.i32(ne,`PAT pattern ${r} channel ${T} right`),fe=e.u16(ne,`PAT pattern ${r} channel ${T} depth copy`),ie=e.u8(ne,`PAT pattern ${r} channel ${T} compression`);if(Pe!==8||fe!==8)throw new Error(`PAT pattern ${r} channel ${T} is not 8-bit.`);if(Ee<S||j<m||R>g||V>v||R<=Ee||V<=j)throw new Error(`PAT pattern ${r} channel ${T} bounds are outside the tile.`);let he=V-j,we=R-Ee,$e=T<O,at=T===I+1,yi=Ip(e,ne,he,we,ie,$e||at,`PAT pattern ${r} channel ${T}`);yi&&$e?(U.add(T),cd(k,le,yi,{top:Ee,left:j,width:he,height:we},T,s,u,E)):yi&&at&&(M=!0,cd(k,le,yi,{top:Ee,left:j,width:he,height:we},3,s))}if(e.offset!==p)throw new Error(`PAT pattern ${r} VMAL has trailing or unparsed bytes.`);if(U.size!==O)throw new Error(`PAT pattern ${r} is missing one or more required color planes.`);if(s===2&&!M&&f<256&&E)for(let T=0;T<E.length;T+=1)E[T]===f&&(k[T*4+3]=0);let me=!1;for(let T=0;T<P;T+=1)if(k[T*4+3]!==255){me=!0;break}return{name:c||`Pattern ${r}`,id:d,width:x,height:_,colorMode:s===1?"grayscale":s===2?"indexed":"rgb",rgba:k,hasTransparency:me}},Dp=(e,t,n,i)=>{let o=[];for(;e.offset<t;){if(o.length>=n.maxResourceItems)throw new Error(`Embedded pattern count exceeds the ${n.maxResourceItems}-item safety limit.`);let r=e.u32(t,"Embedded PAT record length"),s=st(e.offset,r,"Embedded PAT record end"),a=st(e.offset,ud(r),"Embedded PAT padded end");if(!r||s>t||a>t)throw new Error("Embedded PAT record is truncated.");if(o.push(pd(e,s,n,i,!1,o.length+1)),e.offset!==s)throw new Error(`Embedded PAT pattern ${o.length} length does not match its decoded payload.`);for(let l of e.slice(a-s,a,"Embedded PAT padding"))if(l!==0)throw new Error(`Embedded PAT pattern ${o.length} has non-zero alignment bytes.`)}if(e.offset!==t)throw new Error("Embedded PAT block length is invalid.");return o},Cp=(e,t)=>{is(e,t,"PAT");let n=new Rn(e);if(n.ascii(4,n.length,"PAT signature")!=="8BPT")throw new Error("Invalid Photoshop PAT signature.");if(n.u16(n.length,"PAT version")!==1)throw new Error("Unsupported Photoshop PAT version; expected version 1.");let i=n.u32(n.length,"PAT pattern count");if(!i||i>t.maxResourceItems)throw new Error(`PAT pattern count must be between 1 and ${t.maxResourceItems}.`);let o={previewPixels:0,decodedBytes:0},r=Array.from({length:i},(s,a)=>pd(n,n.length,t,o,!0,a+1));return rs(n,t,pi(t),r.length),{format:"pat",version:"1",engine:"file-viewer-native",fidelity:"decoded-pattern-tile",patterns:r,limitations:["The renderer decodes Photoshop PAT v1 grayscale, indexed, and RGB tiles with 8-bit raw or PackBits planes; CMYK, Lab, multichannel, 16-bit, and 32-bit pattern records are rejected.","Tile pixels and transparency are preserved. Photoshop pattern transforms, fills, layer blending, and color-management behavior are outside a standalone PAT library."]}},Be=(e,t,n,i)=>{if(!Number.isFinite(e)||e<t||e>n)throw new Error(`${i} is outside ${t}\u2026${n}.`);return e},Te=e=>Math.max(0,Math.min(255,Math.round(e))),Pp=(e,t,n)=>{let i=(e%360+360)%360/60,o=Math.max(0,Math.min(1,t/100)),r=Math.max(0,Math.min(1,n/100)),s=r*o,a=s*(1-Math.abs(i%2-1)),l=r-s;return(i<1?[s,a,0]:i<2?[a,s,0]:i<3?[0,s,a]:i<4?[0,a,s]:i<5?[a,0,s]:[s,0,a]).map(d=>Te((d+l)*255))},Ep=(e,t,n)=>{let i=.20689655172413793,o=h=>h>i?h**3:3*i*i*(h-4/29),r=(e+16)/116,s=.96422*o(r+t/500),a=o(r),l=.82521*o(r-n/200),c=.9555766*s-.0230393*a+.0631636*l,d=-.0282895*s+1.0099416*a+.0210077*l,u=.0122982*s-.020483*a+1.3299098*l;return[3.2404542*c-1.5371385*d-.4985314*u,-.969266*c+1.8760108*d+.041556*u,.0556434*c-.2040259*d+1.0572252*u].map(h=>Te((h<=.0031308?12.92*h:1.055*Math.max(0,h)**(1/2.4)-.055)*255))},Fp=e=>{if(!e)return{rgb:[0,0,0],colorSpace:"unknown"};if(e.classId==="RGBC")return{rgb:[Te(ye(e,"Rd ")),Te(ye(e,"Grn ")),Te(ye(e,"Bl "))],colorSpace:"rgb"};if(e.classId==="Grsc"){let t=Te(Be(ye(e,"Gry "),0,100,"GRD gray")*2.55);return{rgb:[t,t,t],colorSpace:"gray"}}if(e.classId==="HSBC"||e.classId==="HSBl")return{rgb:Pp(ye(e,"H "),ye(e,"Strt"),ye(e,"Brgh")),colorSpace:"hsb"};if(e.classId==="LbCl")return{rgb:Ep(ye(e,"Lmnc"),ye(e,"A "),ye(e,"B ")),colorSpace:"lab"};if(e.classId==="CMYC"){let t=Be(ye(e,"Cyn "),0,100,"GRD cyan")/100,n=Be(ye(e,"Mgnt"),0,100,"GRD magenta")/100,i=Be(ye(e,"Ylw "),0,100,"GRD yellow")/100,o=Be(ye(e,"Blck"),0,100,"GRD black")/100;return{rgb:[Te((1-t)*(1-o)*255),Te((1-n)*(1-o)*255),Te((1-i)*(1-o)*255)],colorSpace:"cmyk"}}return{rgb:[0,0,0],colorSpace:"unknown"}},ns=(e,t,n)=>{if(!e||e.type!=="list")throw new Error(`${t} list is missing.`);if(e.value.length>n)throw new Error(`${t} exceeds the ${n}-item safety limit.`);return e.value.map((i,o)=>{if(i.type!=="object")throw new Error(`${t} item ${o+1} is not an object.`);return i.value})},Op=(e,t)=>e<=t?t<=0?.5:.5*e/t:t>=1?.5:.5+.5*(e-t)/(1-t),dd=(e,t,n)=>{if(t<=e[0].location)return e[0].value;if(t>=e.at(-1).location)return e.at(-1).value;let i=e.findIndex(l=>l.location>=t),o=e[i-1],r=e[i],s=Math.max(1e-9,r.location-o.location),a=Op((t-o.location)/s,Math.max(.001,Math.min(.999,o.midpoint)));return Array.from({length:n},(l,c)=>o.value[c]+(r.value[c]-o.value[c])*a)},Lp=(e,t)=>{let n=new Uint8Array(1024),i=e.map(r=>({location:r.location,midpoint:r.midpoint,value:r.rgb})),o=t.map(r=>({location:r.location,midpoint:r.midpoint,value:[r.opacity]}));for(let r=0;r<256;r+=1){let s=r/255,a=dd(i,s,3),l=dd(o,s,1)[0];n.set([Te(a[0]),Te(a[1]),Te(a[2]),Te(l*255)],r*4)}return n},fd=(e,t,n)=>{let i=Le(e,t),o=i?.type==="list"?i.value:[];return[0,1,2,3].map(r=>{let s=o[r];return s?.type==="integer"?Be(s.value,0,100,`GRD ${t} range`):n})},Bp=(e,t,n,i)=>{let o=new Uint8Array(1024),r=e>>>0||2654435769,s=()=>(r^=r<<13,r^=r>>>17,r^=r<<5,(r>>>0)/4294967295);for(let a=0;a<256;a+=1){for(let l=0;l<3;l+=1)o[a*4+l]=Te((t[l]+s()*(n[l]-t[l]))*2.55);o[a*4+3]=i?Te((t[3]+s()*(n[3]-t[3]))*2.55):255}return o},os=e=>{if(!e.startsWith("$$$/"))return e;let t=e.lastIndexOf("=");if(t>=0&&t+1<e.length)return e.slice(t+1);let n=e.lastIndexOf("/");return n>=0?e.slice(n+1):e},Up=(e,t,n,i)=>{hd(i,256,1024,n,`GRD gradient ${t}`);let o=mi(e,"Grad")||e,r=os(un(o,"Nm ")||`Gradient ${t}`),s=gi(o,"GrdF")||"CstS";if(s==="ClNs"){let u=fd(o,"Mnm ",0),f=fd(o,"Mxm ",100);f.forEach((v,x)=>{if(v<u[x])throw new Error(`${r}: noise maximum is below its minimum.`)});let h=Be(ye(o,"RndS",0),0,4294967295,`${r} random seed`),p=Be(ye(o,"Smth",2048),0,4096,`${r} roughness`),S=gi(o,"ClrS")||"RGBC",m=S==="HSBl"||S==="HSBC"?"hsb":S==="LbCl"||S==="LABC"?"lab":"rgb",g=bi(o,"ShTr",!1);return{name:r,definition:{form:"noise",seed:h,roughness:p,colorModel:m,restrictColors:bi(o,"VctC",!0),addTransparency:g,minimum:u,maximum:f},previewRgba:Bp(h,u,f,g)}}if(s!=="CstS")throw new Error(`${r}: unsupported GRD gradient form ${JSON.stringify(s)}.`);let l=ns(Le(o,"Clrs"),`${r} color stops`,Math.min(256,n.maxResourceItems)).map((u,f)=>{let h=Be(ye(u,"Lctn")/4096,0,1,`${r} color stop ${f+1} location`),p=Be(ye(u,"Mdpn",50)/100,0,1,`${r} color stop ${f+1} midpoint`),S=gi(u,"Type")||"UsrS",m=S==="FrgC"?"foreground":S==="BckC"?"background":"user",g=m==="foreground"?{rgb:[0,0,0],colorSpace:"unknown"}:m==="background"?{rgb:[255,255,255],colorSpace:"unknown"}:Fp(mi(u,"Clr "));if(m==="user"&&g.colorSpace==="unknown")throw new Error(`${r} color stop ${f+1} uses an unsupported color object.`);return{location:h,midpoint:p,kind:m,...g}}).sort((u,f)=>u.location-f.location);if(l.length<2)throw new Error(`${r} has fewer than two usable color stops.`);let c=Le(o,"Trns"),d=c?ns(c,`${r} transparency stops`,Math.min(256,n.maxResourceItems)).map((u,f)=>({location:Be(ye(u,"Lctn")/4096,0,1,`${r} alpha stop ${f+1} location`),midpoint:Be(ye(u,"Mdpn",50)/100,0,1,`${r} alpha stop ${f+1} midpoint`),opacity:Be(ye(u,"Opct",100)/100,0,1,`${r} alpha stop ${f+1} opacity`)})).sort((u,f)=>u.location-f.location):[{location:0,midpoint:.5,opacity:1},{location:1,midpoint:.5,opacity:1}];if(!d.length)throw new Error(`${r} declares an empty transparency-stop list.`);return{name:r,definition:{form:"solid",smoothness:Be(ye(o,"Intr",4096),0,4096,`${r} smoothness`),colorStops:l,alphaStops:d},previewRgba:Lp(l,d)}},Rp=(e,t)=>{let n=Le(e,"hierarchy");if(!n||n.type!=="list")return Array.from({length:t},()=>"");let i=Array.from({length:t},()=>""),o=[],r=0;for(let s of n.value)s.type==="object"&&(s.value.classId==="Grup"?o.push(os(un(s.value,"Nm ")||"")):s.value.classId==="groupEnd"?o.pop():s.value.classId==="preset"&&r<i.length&&(i[r++]=o.filter(Boolean).join(" / ")));return i},rs=(e,t,n,i)=>{if(!e.remaining)return Array.from({length:i},()=>"");if(e.remaining<12||e.ascii(4,e.length,"Adobe hierarchy signature")!=="8BIM"||e.ascii(4,e.length,"Adobe hierarchy key")!=="phry")throw new Error("Adobe preset file has unrecognized trailing data.");let o=e.u32(e.length,"Adobe hierarchy length"),r=st(e.offset,o,"Adobe hierarchy end");if(r>e.length)throw new Error("Adobe hierarchy data is truncated.");if(e.u32(r,"Adobe hierarchy descriptor version")!==16)throw new Error("Unsupported Adobe hierarchy descriptor version.");let s=fn(e,r,t,n);if(e.offset!==r)throw new Error("Adobe hierarchy descriptor has trailing bytes.");if(e.remaining)throw new Error("Adobe preset file has bytes after its hierarchy data.");return Rp(s,i)},Mp=(e,t)=>{is(e,t,"GRD");let n=new Rn(e);if(n.ascii(4,n.length,"GRD signature")!=="8BGR")throw new Error("Invalid Photoshop GRD signature.");if(n.u16(n.length,"GRD version")!==5)throw new Error("Unsupported Photoshop GRD version; only descriptor-based version 5 is decoded.");if(n.u32(n.length,"GRD descriptor version")!==16)throw new Error("Unsupported GRD Action Descriptor version.");let i=pi(t),o=fn(n,n.length,t,i),r={previewPixels:0,decodedBytes:0},s=ns(Le(o,"GrdL"),"GRD gradients",t.maxResourceItems).map((l,c)=>Up(l,c+1,t,r));if(!s.length)throw new Error("GRD file contains no gradients.");let a=rs(n,t,i,s.length);return s.forEach((l,c)=>{a[c]&&(l.folder=a[c])}),{format:"grd",version:"5",engine:"file-viewer-native",fidelity:"solid-stop-preview-noise-approximation",gradients:s,limitations:["Solid-gradient stops, midpoint positions, transparency, names, and folders are preserved. Foreground/background stops use black/white because their final colors depend on Photoshop application state.","Noise-gradient metadata is preserved, but the thumbnail is a deterministic approximation; Photoshop does not publish its exact noise synthesis and color-management pipeline."]}},Tp=[{single:"DrSh",multi:"dropShadowMulti",kind:"drop-shadow"},{single:"IrSh",multi:"innerShadowMulti",kind:"inner-shadow"},{single:"OrGl",multi:"outerGlowMulti",kind:"outer-glow"},{single:"IrGl",multi:"innerGlowMulti",kind:"inner-glow"},{single:"ChFX",multi:"chromeFXMulti",kind:"satin"},{single:"ebbl",multi:"bevelEmbossMulti",kind:"bevel-emboss"},{single:"SoFi",multi:"solidFillMulti",kind:"color-overlay"},{single:"GrFl",multi:"gradientFillMulti",kind:"gradient-overlay"},{single:"patternFill",multi:"patternFillMulti",kind:"pattern-overlay"},{single:"FrFX",multi:"frameFXMulti",kind:"stroke"}],jp=e=>{if(!e)return[];let t=[];for(let n of Tp){let i=Le(e,n.single),o=Le(e,n.multi),r=[];if(i?.type==="object"&&r.push(i.value),o?.type==="list")for(let s of o.value)s.type==="object"&&r.push(s.value);r.length&&t.push({kind:n.kind,enabled:r.some(s=>bi(s,"enab",!0)),instances:r.length})}return t},xo=(e,t)=>{if(e.type==="object"){t(e.value);for(let n of e.value.entries.values())xo(n,t)}else if(e.type==="list")e.value.forEach(n=>xo(n,t));else if(e.type==="object-array"){t(e.value);for(let n of e.value.entries.values())xo(n,t)}},zp=e=>{let t=new Map;if(!e)return[];let n=i=>{if(i.classId!=="Ptrn"&&!i.entries.has("Idnt"))return;let o=un(i,"Idnt")||"",r=un(i,"Nm ")||"";o&&t.set(o,{name:r,id:o})};n(e);for(let i of e.entries.values())xo(i,n);return[...t.values()]},$p=(e,t,n,i,o)=>{if(e.u32(t,`ASL style ${o} identity descriptor version`)!==16)throw new Error(`ASL style ${o} uses an unsupported identity descriptor version.`);let r=fn(e,t,n,i),s=os(un(r,"Nm ")||""),a=un(r,"Idnt")||"";if(!s||!a)throw new Error(`ASL style ${o} is missing its name or unique id.`);if(e.u32(t,`ASL style ${o} effect descriptor version`)!==16)throw new Error(`ASL style ${o} uses an unsupported effect descriptor version.`);let l=fn(e,t,n,i),c=mi(l,"Lefx"),d=mi(l,"blendOptions"),u=Le(d,"Blnd"),f={name:s,id:a,effectsVisible:bi(c,"masterFXSwitch",!0),effects:jp(c),blendIfChannels:u?.type==="list"?u.value.length:0,referencedPatterns:zp(c)},h=gi(d,"Md ");h&&(f.blendMode=h);let p=Le(d,"Opct");(p?.type==="unit-double"||p?.type==="double"||p?.type==="integer")&&(f.opacity=Be(p.value,0,100,`${s} opacity`));let S=Le(d,"fillOpacity");if((S?.type==="unit-double"||S?.type==="double"||S?.type==="integer")&&(f.fillOpacity=Be(S.value,0,100,`${s} fill opacity`)),!f.effects.length&&!d)throw new Error(`${s} contains no supported effect graph or blending options.`);return f},Np=(e,t)=>{is(e,t,"ASL");let n=new Rn(e);if(n.u16(n.length,"ASL version")!==2)throw new Error("Unsupported Photoshop ASL version; expected version 2.");if(n.ascii(4,n.length,"ASL signature")!=="8BSL")throw new Error("Invalid Photoshop ASL signature.");if(n.u16(n.length,"ASL pattern section version")!==3)throw new Error("Unsupported ASL embedded-pattern section version.");let i=n.u32(n.length,"ASL embedded-pattern section length"),o=st(n.offset,i,"ASL embedded-pattern section end");if(o>n.length)throw new Error("ASL embedded-pattern section is truncated.");let s=i?Dp(n,o,t,{previewPixels:0,decodedBytes:0}):[],a=n.u32(n.length,"ASL style count");if(!a||a>t.maxResourceItems)throw new Error(`ASL style count must be between 1 and ${t.maxResourceItems}.`);let l=pi(t),c=[];for(let d=0;d<a;d+=1){let u=n.u32(n.length,`ASL style ${d+1} length`),f=st(n.offset,u,`ASL style ${d+1} end`),h=st(n.offset,ud(u),`ASL style ${d+1} padded end`);if(!u||f>n.length||h>n.length)throw new Error(`ASL style ${d+1} record is truncated.`);c.push($p(n,f,t,l,d+1));for(let p of n.slice(f-n.offset,f,`ASL style ${d+1} padding`))if(p!==0)throw new Error(`ASL style ${d+1} has unparsed non-zero bytes.`);for(let p of n.slice(h-f,h,`ASL style ${d+1} alignment`))if(p!==0)throw new Error(`ASL style ${d+1} has non-zero alignment bytes.`)}return rs(n,t,l,c.length),{format:"asl",version:"2",engine:"file-viewer-native",fidelity:"effect-graph-metadata-preview",styles:c,patterns:s,limitations:["Names, ids, effect graph presence, multi-effect counts, blending options, pattern references, and embedded pattern tiles are decoded. The preview does not claim Photoshop layer rasterization.","Exact layer-style appearance depends on Photoshop contours, blend modes, global light, color management, target-layer pixels, and undocumented renderer behavior; unsupported descriptor value types are rejected rather than ignored."]}},md=(e,t,n)=>{if(_p(n),t==="pat")return Cp(e,n);if(t==="grd")return Mp(e,n);if(t==="asl")return Np(e,n);throw new Error(`Unsupported Adobe preset format ${JSON.stringify(t)}.`)};var Ao=self,gd=e=>e.format==="abr"?[...e.samples.map(t=>t.alpha.buffer),...e.patterns.map(t=>t.rgba.buffer)].filter(t=>t instanceof ArrayBuffer):e.format==="pat"?e.patterns.map(t=>t.rgba.buffer).filter(t=>t instanceof ArrayBuffer):e.format==="grd"?e.gradients.map(t=>t.previewRgba.buffer).filter(t=>t instanceof ArrayBuffer):e.format==="asl"?e.patterns.map(t=>t.rgba.buffer).filter(t=>t instanceof ArrayBuffer):[];Ao.addEventListener("message",e=>{let t=e.data;try{if(!t||t.type!=="parse"&&t.type!=="parse-preset")throw new Error("Invalid Adobe resource Worker request.");if(t.type==="parse-preset"){let n=md(t.buffer,t.format,t.limits),i={id:t.id,ok:!0,result:n};Ao.postMessage(i,gd(n))}else{let n=rd(t.buffer,t.format,t.limits),i={id:t.id,ok:!0,result:n};Ao.postMessage(i,gd(n))}}catch(n){let i={id:t?.id??0,ok:!1,error:{name:n instanceof Error?n.name:"Error",message:n instanceof Error?n.message:String(n)}};Ao.postMessage(i)}});
11
+ `);else if(l==="sndA")g=(0,b.readBytes)(e,m);else throw new Error("Unknown annotation type");s.push({type:l==="txtA"?"text":"sound",open:c,iconLocation:d,popupLocation:u,color:f,author:h,name:p,date:S,data:g})}t.annotations=s,(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.annotations;(0,y.writeUint16)(e,2),(0,y.writeUint16)(e,1),(0,y.writeUint32)(e,n.length);for(let i of n){let o=i.type==="sound";if(o&&!(i.data instanceof Uint8Array))throw new Error("Sound annotation data should be Uint8Array");if(!o&&typeof i.data!="string")throw new Error("Text annotation data should be string");let r=e.offset;(0,y.writeUint32)(e,0),(0,y.writeSignature)(e,o?"sndA":"txtA"),(0,y.writeUint8)(e,i.open?1:0),(0,y.writeUint8)(e,28),(0,y.writeUint16)(e,1),wc(e,i.iconLocation),wc(e,i.popupLocation),(0,y.writeColor)(e,i.color),(0,y.writePascalString)(e,i.author||"",2),(0,y.writePascalString)(e,i.name||"",2),(0,y.writePascalString)(e,i.date||"",2);let s=e.offset;(0,y.writeUint32)(e,0),(0,y.writeSignature)(e,o?"sndM":"txtC"),(0,y.writeUint32)(e,0);let a=e.offset;if(o)(0,y.writeBytes)(e,i.data);else{(0,y.writeUint16)(e,65279);let l=i.data.replace(/\n/g,"\r");for(let c=0;c<l.length;c++)(0,y.writeUint16)(e,l.charCodeAt(c))}e.view.setUint32(r,e.offset-r,!1),e.view.setUint32(s,e.offset-s,!1),e.view.setUint32(a-4,e.offset-a,!1)}});function Dc(e){L(e,t=>{let n=t;return!(!n.linkedFiles||!n.linkedFiles.length||e==="lnkE"&&!n.linkedFiles.some(i=>i.linkedFile))},(t,n,i,o)=>{let r=n;for(r.linkedFiles=r.linkedFiles||[];i()>8;){let s=$r(t),a=t.offset,l=(0,b.readSignature)(t),c=(0,b.readInt32)(t),d=(0,b.readPascalString)(t,1),u=(0,b.readUnicodeString)(t),f=(0,b.readSignature)(t).trim(),h=(0,b.readSignature)(t).trim(),p=$r(t),m=(0,b.readUint8)(t)?(0,w.readVersionAndDescriptor)(t):void 0,g=l==="liFE"?(0,w.readVersionAndDescriptor)(t):void 0,v={id:d,name:u};if(f&&(v.type=f),h&&(v.creator=h),m&&(v.descriptor={compInfo:{compID:m.compInfo.compID,originalCompID:m.compInfo.originalCompID}}),l==="liFE"&&c>3){let _=(0,b.readInt32)(t),I=(0,b.readUint8)(t),P=(0,b.readUint8)(t),k=(0,b.readUint8)(t),E=(0,b.readUint8)(t),O=(0,b.readFloat64)(t),U=Math.floor(O),M=(O-U)*1e3;v.time=new Date(Date.UTC(_,I,P,k,E,U,M)).toISOString()}let x=l==="liFE"?$r(t):0;for(l==="liFA"&&(0,b.skipBytes)(t,8),l==="liFD"&&(v.data=(0,b.readBytes)(t,p)),c>=5&&(v.childDocumentID=(0,b.readUnicodeString)(t)),c>=6&&(v.assetModTime=(0,b.readFloat64)(t)),c>=7&&(v.assetLockedState=(0,b.readUint8)(t)),l==="liFE"&&c===2&&(v.data=(0,b.readBytes)(t,x)),t.skipLinkedFilesData&&(v.data=void 0),e==="lnkE"&&(v.linkedFile={fileSize:x,name:g?.["Nm "]||"",fullPath:g?.fullPath||"",originalPath:g?.originalPath||"",relativePath:g?.relPath||""}),r.linkedFiles.push(v);s%4;)s++;t.offset=a+s}(0,b.skipBytes)(t,i())},(t,n)=>{var i,o,r,s,a,l,c,d,u;let f=n;for(let h of f.linkedFiles){if(e==="lnkE"!=!!h.linkedFile)continue;let p=2;h.assetLockedState!=null?p=7:h.assetModTime!=null?p=6:h.childDocumentID!=null?p=5:e==="lnkE"&&(p=3),Nr(t,0);let S=t.offset;if((0,y.writeSignature)(t,e==="lnkE"?"liFE":h.data?"liFD":"liFA"),(0,y.writeInt32)(t,p),!h.id||typeof h.id!="string"||!/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(h.id))throw new Error("Linked file ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)");if((0,y.writePascalString)(t,h.id,1),(0,y.writeUnicodeStringWithPadding)(t,h.name||""),(0,y.writeSignature)(t,h.type?`${h.type} `.substring(0,4):" "),(0,y.writeSignature)(t,h.creator?`${h.creator} `.substring(0,4):"\0\0\0\0"),Nr(t,h.data?h.data.byteLength:0),h.descriptor&&h.descriptor.compInfo){let g={compInfo:{compID:h.descriptor.compInfo.compID,originalCompID:h.descriptor.compInfo.originalCompID}};(0,y.writeUint8)(t,1),(0,w.writeVersionAndDescriptor)(t,"","null",g)}else(0,y.writeUint8)(t,0);if(e==="lnkE"){let g={descVersion:2,"Nm ":(o=(i=h.linkedFile)===null||i===void 0?void 0:i.name)!==null&&o!==void 0?o:"",fullPath:(s=(r=h.linkedFile)===null||r===void 0?void 0:r.fullPath)!==null&&s!==void 0?s:"",originalPath:(l=(a=h.linkedFile)===null||a===void 0?void 0:a.originalPath)!==null&&l!==void 0?l:"",relPath:(d=(c=h.linkedFile)===null||c===void 0?void 0:c.relativePath)!==null&&d!==void 0?d:""};(0,w.writeVersionAndDescriptor)(t,"","ExternalFileLink",g);let v=h.time?new Date(h.time):new Date;(0,y.writeInt32)(t,v.getUTCFullYear()),(0,y.writeUint8)(t,v.getUTCMonth()),(0,y.writeUint8)(t,v.getUTCDate()),(0,y.writeUint8)(t,v.getUTCHours()),(0,y.writeUint8)(t,v.getUTCMinutes()),(0,y.writeFloat64)(t,v.getUTCSeconds()+v.getUTCMilliseconds()/1e3)}h.data?(0,y.writeBytes)(t,h.data):Nr(t,((u=h.linkedFile)===null||u===void 0?void 0:u.fileSize)||0),p>=5&&(0,y.writeUnicodeStringWithPadding)(t,h.childDocumentID||""),p>=6&&(0,y.writeFloat64)(t,h.assetModTime||0),p>=7&&(0,y.writeUint8)(t,h.assetLockedState||0);let m=t.offset-S;for(t.view.setUint32(S-4,m,!1);m%4;)m++,(0,y.writeUint8)(t,0)}})}Dc("lnk2");Dc("lnkE");Gt("lnkD","lnk2");Gt("lnk3","lnk2");L("pths",ae("pathList"),(e,t)=>{(0,w.readVersionAndDescriptor)(e,!0),t.pathList=[]},(e,t)=>{let n={pathList:[]};(0,w.writeVersionAndDescriptor)(e,"","pathsDataClass",n)});L("lyvr",ae("version"),(e,t)=>t.version=(0,b.readUint32)(e),(e,t)=>(0,y.writeUint32)(e,t.version));L("lfxs",()=>!1,(e,t,n)=>{if((0,b.readUint32)(e)!==0)throw new Error("Invalid lfxs version");let o=(0,w.readVersionAndDescriptor)(e);t.effects=(0,w.parseEffects)(o,!!e.logMissingFeatures),(0,b.skipBytes)(e,n())},(e,t,n,i)=>{let o=(0,w.serializeEffects)(t.effects,!!i.logMissingFeatures,!0);(0,y.writeUint32)(e,0),(0,w.writeVersionAndDescriptor)(e,"","null",o)});function Fe(e){return t=>!!t.adjustment&&t.adjustment.type===e}L("brit",Fe("brightness/contrast"),(e,t,n)=>{t.adjustment||(t.adjustment={type:"brightness/contrast",brightness:(0,b.readInt16)(e),contrast:(0,b.readInt16)(e),meanValue:(0,b.readInt16)(e),labColorOnly:!!(0,b.readUint8)(e),useLegacy:!0}),(0,b.skipBytes)(e,n())},(e,t)=>{var n;let i=t.adjustment;(0,y.writeInt16)(e,i.brightness||0),(0,y.writeInt16)(e,i.contrast||0),(0,y.writeInt16)(e,(n=i.meanValue)!==null&&n!==void 0?n:127),(0,y.writeUint8)(e,i.labColorOnly?1:0),(0,y.writeZeros)(e,1)});function fo(e){let t=(0,b.readInt16)(e),n=(0,b.readInt16)(e),i=(0,b.readInt16)(e),o=(0,b.readInt16)(e),r=(0,b.readInt16)(e)/100;return{shadowInput:t,highlightInput:n,shadowOutput:i,highlightOutput:o,midtoneInput:r}}function li(e,t){(0,y.writeInt16)(e,t.shadowInput),(0,y.writeInt16)(e,t.highlightInput),(0,y.writeInt16)(e,t.shadowOutput),(0,y.writeInt16)(e,t.highlightOutput),(0,y.writeInt16)(e,Math.round(t.midtoneInput*100))}L("levl",Fe("levels"),(e,t,n)=>{if((0,b.readUint16)(e)!==2)throw new Error("Invalid levl version");t.adjustment=Object.assign(Object.assign({},t.adjustment),{type:"levels",rgb:fo(e),red:fo(e),green:fo(e),blue:fo(e)}),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,i={shadowInput:0,highlightInput:255,shadowOutput:0,highlightOutput:255,midtoneInput:1};(0,y.writeUint16)(e,2),li(e,n.rgb||i),li(e,n.red||i),li(e,n.green||i),li(e,n.blue||i);for(let o=0;o<59;o++)li(e,i)});function uo(e){let t=(0,b.readUint16)(e),n=[];for(let i=0;i<t;i++){let o=(0,b.readInt16)(e),r=(0,b.readInt16)(e);n.push({input:r,output:o})}return n}function Vt(e,t){(0,y.writeUint16)(e,t.length);for(let n of t)(0,y.writeUint16)(e,n.output),(0,y.writeUint16)(e,n.input)}L("curv",Fe("curves"),(e,t,n)=>{if((0,b.readUint8)(e),(0,b.readUint16)(e)!==1)throw new Error("Invalid curv version");(0,b.readUint16)(e);let i=(0,b.readUint16)(e),o={type:"curves"};i&1&&(o.rgb=uo(e)),i&2&&(o.red=uo(e)),i&4&&(o.green=uo(e)),i&8&&(o.blue=uo(e)),t.adjustment=Object.assign(Object.assign({},t.adjustment),o),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,{rgb:i,red:o,green:r,blue:s}=n,a=0,l=0;i&&i.length&&(a|=1,l++),o&&o.length&&(a|=2,l++),r&&r.length&&(a|=4,l++),s&&s.length&&(a|=8,l++),(0,y.writeUint8)(e,0),(0,y.writeUint16)(e,1),(0,y.writeUint16)(e,0),(0,y.writeUint16)(e,a),i&&i.length&&Vt(e,i),o&&o.length&&Vt(e,o),r&&r.length&&Vt(e,r),s&&s.length&&Vt(e,s),(0,y.writeSignature)(e,"Crv "),(0,y.writeUint16)(e,4),(0,y.writeUint16)(e,0),(0,y.writeUint16)(e,l),i&&i.length&&((0,y.writeUint16)(e,0),Vt(e,i)),o&&o.length&&((0,y.writeUint16)(e,1),Vt(e,o)),r&&r.length&&((0,y.writeUint16)(e,2),Vt(e,r)),s&&s.length&&((0,y.writeUint16)(e,3),Vt(e,s))});L("expA",Fe("exposure"),(e,t,n)=>{if((0,b.readUint16)(e)!==1)throw new Error("Invalid expA version");t.adjustment=Object.assign(Object.assign({},t.adjustment),{type:"exposure",exposure:(0,b.readFloat32)(e),offset:(0,b.readFloat32)(e),gamma:(0,b.readFloat32)(e)}),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,1),(0,y.writeFloat32)(e,n.exposure),(0,y.writeFloat32)(e,n.offset),(0,y.writeFloat32)(e,n.gamma),(0,y.writeZeros)(e,2)});L("vibA",Fe("vibrance"),(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);t.adjustment={type:"vibrance"},i.vibrance!==void 0&&(t.adjustment.vibrance=i.vibrance),i.Strt!==void 0&&(t.adjustment.saturation=i.Strt),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,i={};n.vibrance!==void 0&&(i.vibrance=n.vibrance),n.saturation!==void 0&&(i.Strt=n.saturation),(0,w.writeVersionAndDescriptor)(e,"","null",i)});function on(e){return{a:(0,b.readInt16)(e),b:(0,b.readInt16)(e),c:(0,b.readInt16)(e),d:(0,b.readInt16)(e),hue:(0,b.readInt16)(e),saturation:(0,b.readInt16)(e),lightness:(0,b.readInt16)(e)}}function rn(e,t){let n=t||{};(0,y.writeInt16)(e,n.a||0),(0,y.writeInt16)(e,n.b||0),(0,y.writeInt16)(e,n.c||0),(0,y.writeInt16)(e,n.d||0),(0,y.writeInt16)(e,n.hue||0),(0,y.writeInt16)(e,n.saturation||0),(0,y.writeInt16)(e,n.lightness||0)}L("hue2",Fe("hue/saturation"),(e,t,n)=>{if((0,b.readUint16)(e)!==2)throw new Error("Invalid hue2 version");t.adjustment=Object.assign(Object.assign({},t.adjustment),{type:"hue/saturation",master:on(e),reds:on(e),yellows:on(e),greens:on(e),cyans:on(e),blues:on(e),magentas:on(e)}),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,2),rn(e,n.master),rn(e,n.reds),rn(e,n.yellows),rn(e,n.greens),rn(e,n.cyans),rn(e,n.blues),rn(e,n.magentas)});function Gr(e){return{cyanRed:(0,b.readInt16)(e),magentaGreen:(0,b.readInt16)(e),yellowBlue:(0,b.readInt16)(e)}}function Hr(e,t){(0,y.writeInt16)(e,t.cyanRed||0),(0,y.writeInt16)(e,t.magentaGreen||0),(0,y.writeInt16)(e,t.yellowBlue||0)}L("blnc",Fe("color balance"),(e,t,n)=>{t.adjustment={type:"color balance",shadows:Gr(e),midtones:Gr(e),highlights:Gr(e),preserveLuminosity:!!(0,b.readUint8)(e)},(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;Hr(e,n.shadows||{}),Hr(e,n.midtones||{}),Hr(e,n.highlights||{}),(0,y.writeUint8)(e,n.preserveLuminosity?1:0),(0,y.writeZeros)(e,1)});L("blwh",Fe("black & white"),(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);t.adjustment={type:"black & white",reds:i["Rd "],yellows:i.Yllw,greens:i["Grn "],cyans:i["Cyn "],blues:i["Bl "],magentas:i.Mgnt,useTint:!!i.useTint,presetKind:i.bwPresetKind,presetFileName:i.blackAndWhitePresetFileName},i.tintColor!==void 0&&(t.adjustment.tintColor=(0,w.parseColor)(i.tintColor)),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,i={"Rd ":n.reds||0,Yllw:n.yellows||0,"Grn ":n.greens||0,"Cyn ":n.cyans||0,"Bl ":n.blues||0,Mgnt:n.magentas||0,useTint:!!n.useTint,tintColor:(0,w.serializeColor)(n.tintColor),bwPresetKind:n.presetKind||0,blackAndWhitePresetFileName:n.presetFileName||""};(0,w.writeVersionAndDescriptor)(e,"","null",i)});L("phfl",Fe("photo filter"),(e,t,n)=>{let i=(0,b.readUint16)(e);if(i!==2&&i!==3)throw new Error("Invalid phfl version");let o;i===2?o=(0,b.readColor)(e):o={l:(0,b.readInt32)(e)/100,a:(0,b.readInt32)(e)/100,b:(0,b.readInt32)(e)/100},t.adjustment={type:"photo filter",color:o,density:(0,b.readUint32)(e)/100,preserveLuminosity:!!(0,b.readUint8)(e)},(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,2),(0,y.writeColor)(e,n.color||{l:0,a:0,b:0}),(0,y.writeUint32)(e,(n.density||0)*100),(0,y.writeUint8)(e,n.preserveLuminosity?1:0),(0,y.writeZeros)(e,3)});function ho(e){let t=(0,b.readInt16)(e),n=(0,b.readInt16)(e),i=(0,b.readInt16)(e);(0,b.skipBytes)(e,2);let o=(0,b.readInt16)(e);return{red:t,green:n,blue:i,constant:o}}function ci(e,t){let n=t||{};(0,y.writeInt16)(e,n.red),(0,y.writeInt16)(e,n.green),(0,y.writeInt16)(e,n.blue),(0,y.writeZeros)(e,2),(0,y.writeInt16)(e,n.constant)}L("mixr",Fe("channel mixer"),(e,t,n)=>{if((0,b.readUint16)(e)!==1)throw new Error("Invalid mixr version");let i=t.adjustment=Object.assign(Object.assign({},t.adjustment),{type:"channel mixer",monochrome:!!(0,b.readUint16)(e)});i.monochrome||(i.red=ho(e),i.green=ho(e),i.blue=ho(e)),i.gray=ho(e),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,1),(0,y.writeUint16)(e,n.monochrome?1:0),n.monochrome?(ci(e,n.gray),(0,y.writeZeros)(e,30)):(ci(e,n.red),ci(e,n.green),ci(e,n.blue),ci(e,n.gray))});var Sc=(0,Ze.createEnum)("colorLookupType","3dlut",{"3dlut":"3DLUT",abstractProfile:"abstractProfile",deviceLinkProfile:"deviceLinkProfile"}),vc=(0,Ze.createEnum)("LUTFormatType","look",{look:"LUTFormatLOOK",cube:"LUTFormatCUBE","3dl":"LUTFormat3DL"}),po=(0,Ze.createEnum)("colorLookupOrder","rgb",{rgb:"rgbOrder",bgr:"bgrOrder"});L("clrL",Fe("color lookup"),(e,t,n)=>{if((0,b.readUint16)(e)!==1)throw new Error("Invalid clrL version");let i=(0,w.readVersionAndDescriptor)(e);t.adjustment={type:"color lookup"};let o=t.adjustment;i.lookupType!==void 0&&(o.lookupType=Sc.decode(i.lookupType)),i["Nm "]!==void 0&&(o.name=i["Nm "]),i.Dthr!==void 0&&(o.dither=i.Dthr),i.profile!==void 0&&(o.profile=i.profile),i.LUTFormat!==void 0&&(o.lutFormat=vc.decode(i.LUTFormat)),i.dataOrder!==void 0&&(o.dataOrder=po.decode(i.dataOrder)),i.tableOrder!==void 0&&(o.tableOrder=po.decode(i.tableOrder)),i.LUT3DFileData!==void 0&&(o.lut3DFileData=i.LUT3DFileData),i.LUT3DFileName!==void 0&&(o.lut3DFileName=i.LUT3DFileName),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.adjustment,i={};n.lookupType!==void 0&&(i.lookupType=Sc.encode(n.lookupType)),n.name!==void 0&&(i["Nm "]=n.name),n.dither!==void 0&&(i.Dthr=n.dither),n.profile!==void 0&&(i.profile=n.profile),n.lutFormat!==void 0&&(i.LUTFormat=vc.encode(n.lutFormat)),n.dataOrder!==void 0&&(i.dataOrder=po.encode(n.dataOrder)),n.tableOrder!==void 0&&(i.tableOrder=po.encode(n.tableOrder)),n.lut3DFileData!==void 0&&(i.LUT3DFileData=n.lut3DFileData),n.lut3DFileName!==void 0&&(i.LUT3DFileName=n.lut3DFileName),(0,y.writeUint16)(e,1),(0,w.writeVersionAndDescriptor)(e,"","null",i)});L("nvrt",Fe("invert"),(e,t,n)=>{t.adjustment={type:"invert"},(0,b.skipBytes)(e,n())},()=>{});L("post",Fe("posterize"),(e,t,n)=>{t.adjustment={type:"posterize",levels:(0,b.readUint16)(e)},(0,b.skipBytes)(e,n())},(e,t)=>{var n;let i=t.adjustment;(0,y.writeUint16)(e,(n=i.levels)!==null&&n!==void 0?n:4),(0,y.writeZeros)(e,2)});L("thrs",Fe("threshold"),(e,t,n)=>{t.adjustment={type:"threshold",level:(0,b.readUint16)(e)},(0,b.skipBytes)(e,n())},(e,t)=>{var n;let i=t.adjustment;(0,y.writeUint16)(e,(n=i.level)!==null&&n!==void 0?n:128),(0,y.writeZeros)(e,2)});var xc=["","","","rgb","hsb","","lab"];L("grdm",Fe("gradient map"),(e,t,n)=>{let i=(0,b.readUint16)(e);if(i!==1&&i!==3)throw new Error("Invalid grdm version");let o={type:"gradient map",gradientType:"solid"};o.reverse=!!(0,b.readUint8)(e),o.dither=!!(0,b.readUint8)(e);let r=!!(0,b.readUint8)(e);if(e.offset--,r){let u=(0,b.readSignature)(e);o.method=w.gradientInterpolationMethodType.decode(u)}o.name=(0,b.readUnicodeString)(e),o.colorStops=[],o.opacityStops=[];let s=(0,b.readUint16)(e);for(let u=0;u<s;u++)o.colorStops.push({location:(0,b.readUint32)(e),midpoint:(0,b.readUint32)(e)/100,color:(0,b.readColor)(e)}),(0,b.skipBytes)(e,2);let a=(0,b.readUint16)(e);for(let u=0;u<a;u++)o.opacityStops.push({location:(0,b.readUint32)(e),midpoint:(0,b.readUint32)(e)/100,opacity:(0,b.readUint16)(e)/255});if((0,b.readUint16)(e)!==2)throw new Error("Invalid grdm expansion count");let c=(0,b.readUint16)(e);if(o.smoothness=c/4096,(0,b.readUint16)(e)!==32)throw new Error("Invalid grdm length");o.gradientType=(0,b.readUint16)(e)?"noise":"solid",o.randomSeed=(0,b.readUint32)(e),o.addTransparency=!!(0,b.readUint16)(e),o.restrictColors=!!(0,b.readUint16)(e),o.roughness=(0,b.readUint32)(e)/4096,o.colorModel=xc[(0,b.readUint16)(e)]||"rgb",o.min=[(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768],o.max=[(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768,(0,b.readUint16)(e)/32768],(0,b.skipBytes)(e,n());for(let u of o.colorStops)u.location/=c;for(let u of o.opacityStops)u.location/=c;t.adjustment=o},(e,t)=>{var n,i,o;let r=t.adjustment;(0,y.writeUint16)(e,r.method!==void 0?3:1),(0,y.writeUint8)(e,r.reverse?1:0),(0,y.writeUint8)(e,r.dither?1:0),r.method!==void 0&&(0,y.writeSignature)(e,w.gradientInterpolationMethodType.encode(r.method)),(0,y.writeUnicodeStringWithPadding)(e,r.name||""),(0,y.writeUint16)(e,r.colorStops&&r.colorStops.length||0);let s=Math.round(((n=r.smoothness)!==null&&n!==void 0?n:1)*4096);for(let l of r.colorStops||[])(0,y.writeUint32)(e,Math.round(l.location*s)),(0,y.writeUint32)(e,Math.round(l.midpoint*100)),(0,y.writeColor)(e,l.color),(0,y.writeZeros)(e,2);(0,y.writeUint16)(e,r.opacityStops&&r.opacityStops.length||0);for(let l of r.opacityStops||[])(0,y.writeUint32)(e,Math.round(l.location*s)),(0,y.writeUint32)(e,Math.round(l.midpoint*100)),(0,y.writeUint16)(e,Math.round(l.opacity*255));(0,y.writeUint16)(e,2),(0,y.writeUint16)(e,s),(0,y.writeUint16)(e,32),(0,y.writeUint16)(e,r.gradientType==="noise"?1:0),(0,y.writeUint32)(e,r.randomSeed||0),(0,y.writeUint16)(e,r.addTransparency?1:0),(0,y.writeUint16)(e,r.restrictColors?1:0),(0,y.writeUint32)(e,Math.round(((i=r.roughness)!==null&&i!==void 0?i:1)*4096));let a=xc.indexOf((o=r.colorModel)!==null&&o!==void 0?o:"rgb");(0,y.writeUint16)(e,a===-1?3:a);for(let l=0;l<4;l++)(0,y.writeUint16)(e,Math.round((r.min&&r.min[l]||0)*32768));for(let l=0;l<4;l++)(0,y.writeUint16)(e,Math.round((r.max&&r.max[l]||0)*32768));(0,y.writeZeros)(e,4)});function It(e){return{c:(0,b.readInt16)(e),m:(0,b.readInt16)(e),y:(0,b.readInt16)(e),k:(0,b.readInt16)(e)}}function Dt(e,t){let n=t||{};(0,y.writeInt16)(e,n.c),(0,y.writeInt16)(e,n.m),(0,y.writeInt16)(e,n.y),(0,y.writeInt16)(e,n.k)}L("selc",Fe("selective color"),(e,t)=>{if((0,b.readUint16)(e)!==1)throw new Error("Invalid selc version");let n=(0,b.readUint16)(e)?"absolute":"relative";(0,b.skipBytes)(e,8),t.adjustment={type:"selective color",mode:n,reds:It(e),yellows:It(e),greens:It(e),cyans:It(e),blues:It(e),magentas:It(e),whites:It(e),neutrals:It(e),blacks:It(e)}},(e,t)=>{let n=t.adjustment;(0,y.writeUint16)(e,1),(0,y.writeUint16)(e,n.mode==="absolute"?1:0),(0,y.writeZeros)(e,8),Dt(e,n.reds),Dt(e,n.yellows),Dt(e,n.greens),Dt(e,n.cyans),Dt(e,n.blues),Dt(e,n.magentas),Dt(e,n.whites),Dt(e,n.neutrals),Dt(e,n.blacks)});L("CgEd",e=>{let t=e.adjustment;return t?t.type==="brightness/contrast"&&!t.useLegacy||(t.type==="levels"||t.type==="curves"||t.type==="exposure"||t.type==="channel mixer"||t.type==="hue/saturation")&&t.presetFileName!==void 0:!1},(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);if(i.Vrsn!==1)throw new Error("Invalid CgEd version");"presetFileName"in i?t.adjustment=Object.assign(Object.assign({},t.adjustment),{presetKind:i.presetKind,presetFileName:i.presetFileName}):"curvesPresetFileName"in i?t.adjustment=Object.assign(Object.assign({},t.adjustment),{presetKind:i.curvesPresetKind,presetFileName:i.curvesPresetFileName}):"mixerPresetFileName"in i?t.adjustment=Object.assign(Object.assign({},t.adjustment),{presetKind:i.mixerPresetKind,presetFileName:i.mixerPresetFileName}):t.adjustment={type:"brightness/contrast",brightness:i.Brgh,contrast:i.Cntr,meanValue:i.means,useLegacy:!!i.useLegacy,labColorOnly:!!i["Lab "],auto:!!i.Auto},(0,b.skipBytes)(e,n())},(e,t)=>{var n,i,o,r;let s=t.adjustment;if(s.type==="levels"||s.type==="exposure"||s.type==="hue/saturation"){let a={Vrsn:1,presetKind:(n=s.presetKind)!==null&&n!==void 0?n:1,presetFileName:s.presetFileName||""};(0,w.writeVersionAndDescriptor)(e,"","null",a)}else if(s.type==="curves"){let a={Vrsn:1,curvesPresetKind:(i=s.presetKind)!==null&&i!==void 0?i:1,curvesPresetFileName:s.presetFileName||""};(0,w.writeVersionAndDescriptor)(e,"","null",a)}else if(s.type==="channel mixer"){let a={Vrsn:1,mixerPresetKind:(o=s.presetKind)!==null&&o!==void 0?o:1,mixerPresetFileName:s.presetFileName||""};(0,w.writeVersionAndDescriptor)(e,"","null",a)}else if(s.type==="brightness/contrast"){let a={Vrsn:1,Brgh:s.brightness||0,Cntr:s.contrast||0,means:(r=s.meanValue)!==null&&r!==void 0?r:127,"Lab ":!!s.labColorOnly,useLegacy:!!s.useLegacy,Auto:!!s.auto};(0,w.writeVersionAndDescriptor)(e,"","null",a)}else throw new Error("Unhandled CgEd case")});function k0(e){let t=[];function n(i){var o;if(i.children)for(let r of i.children)((o=r.text)===null||o===void 0?void 0:o.index)!==void 0&&(t[r.text.index]=r),n(r)}return n(e),t}L("Txt2",ae("engineData"),(e,t,n,i)=>{let o=(0,b.readBytes)(e,n());t.engineData=(0,pc.fromByteArray)(o);let r=k0(i),s=(0,Wr.parseEngineData)(o),l=(0,y0.decodeEngineData2)(s).ResourceDict.TextFrameSet;if(l)for(let c=0;c<l.length;c++){let d=r[c];l[c].path&&d?.text&&(d.text.textPath=l[c].path)}},(e,t)=>{let n=(0,pc.toByteArray)(t.engineData);(0,y.writeBytes)(e,n)});L("FEid",ae("filterEffectsMasks"),(e,t,n)=>{let i=(0,b.readInt32)(e);if(i<1||i>3)throw new Error(`Invalid filterEffects version ${i}`);for(t.filterEffectsMasks=[];n()>8;){if((0,b.readUint32)(e))throw new Error("filterEffects: 64 bit length is not supported");let o=(0,b.readUint32)(e),r=e.offset+o,s=(0,b.readPascalString)(e,1),a=(0,b.readInt32)(e);if(a!==1)throw new Error(`Invalid filterEffect version ${a}`);if((0,b.readUint32)(e))throw new Error("filterEffect: 64 bit length is not supported");(0,b.readUint32)(e);let l=(0,b.readInt32)(e),c=(0,b.readInt32)(e),d=(0,b.readInt32)(e),u=(0,b.readInt32)(e),f=(0,b.readInt32)(e),h=(0,b.readInt32)(e),p=[];for(let m=0;m<h+2;m++)if((0,b.readInt32)(e)){if((0,b.readUint32)(e))throw new Error("filterEffect: 64 bit length is not supported");let v=(0,b.readUint32)(e);if(!v)throw new Error("filterEffect: Empty channel");let x=(0,b.readUint16)(e),_=(0,b.readBytes)(e,v-2);p.push({compressionMode:x,data:_})}else p.push(void 0);if(t.filterEffectsMasks.push({id:s,top:l,left:c,bottom:d,right:u,depth:f,channels:p}),e.offset<r&&(0,b.readUint8)(e)){let m=(0,b.readInt32)(e),g=(0,b.readInt32)(e),v=(0,b.readInt32)(e),x=(0,b.readInt32)(e);if((0,b.readUint32)(e))throw new Error("filterEffect: 64 bit length is not supported");let _=(0,b.readUint32)(e),I=(0,b.readUint16)(e),P=(0,b.readBytes)(e,_-2);t.filterEffectsMasks[t.filterEffectsMasks.length-1].extra={top:m,left:g,bottom:v,right:x,compressionMode:I,data:P}}e.offset=r;let S=o;for(;S%4;)e.offset++,S++}},(e,t)=>{var n;(0,y.writeInt32)(e,3);for(let i of t.filterEffectsMasks){(0,y.writeUint32)(e,0),(0,y.writeUint32)(e,0);let o=e.offset;(0,y.writePascalString)(e,i.id,1),(0,y.writeInt32)(e,1),(0,y.writeUint32)(e,0),(0,y.writeUint32)(e,0);let r=e.offset;(0,y.writeInt32)(e,i.top),(0,y.writeInt32)(e,i.left),(0,y.writeInt32)(e,i.bottom),(0,y.writeInt32)(e,i.right),(0,y.writeInt32)(e,i.depth);let s=Math.max(0,i.channels.length-2);(0,y.writeInt32)(e,s);for(let c=0;c<s+2;c++){let d=i.channels[c];(0,y.writeInt32)(e,d?1:0),d&&((0,y.writeUint32)(e,0),(0,y.writeUint32)(e,d.data.length+2),(0,y.writeUint16)(e,d.compressionMode),(0,y.writeBytes)(e,d.data))}e.view.setUint32(r-4,e.offset-r,!1);let a=(n=t.filterEffectsMasks[t.filterEffectsMasks.length-1])===null||n===void 0?void 0:n.extra;a&&((0,y.writeUint8)(e,1),(0,y.writeInt32)(e,a.top),(0,y.writeInt32)(e,a.left),(0,y.writeInt32)(e,a.bottom),(0,y.writeInt32)(e,a.right),(0,y.writeUint32)(e,0),(0,y.writeUint32)(e,a.data.byteLength+2),(0,y.writeUint16)(e,a.compressionMode),(0,y.writeBytes)(e,a.data));let l=e.offset-o;for(e.view.setUint32(o-4,l,!1);l%4;)(0,y.writeZeros)(e,1),l++}});Gt("FXid","FEid");L("FMsk",ae("filterMask"),(e,t)=>{t.filterMask={colorSpace:(0,b.readColor)(e),opacity:(0,b.readUint16)(e)/255}},(e,t)=>{var n;(0,y.writeColor)(e,t.filterMask.colorSpace),(0,y.writeUint16)(e,(0,Ze.clamp)((n=t.filterMask.opacity)!==null&&n!==void 0?n:1,0,1)*255)});L("artd",e=>e.artboards!==void 0,(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);t.artboards={count:i["Cnt "],autoExpandOffset:{horizontal:i.autoExpandOffset.Hrzn,vertical:i.autoExpandOffset.Vrtc},origin:{horizontal:i.origin.Hrzn,vertical:i.origin.Vrtc},autoExpandEnabled:i.autoExpandEnabled,autoNestEnabled:i.autoNestEnabled,autoPositionEnabled:i.autoPositionEnabled,shrinkwrapOnSaveEnabled:!!i.shrinkwrapOnSaveEnabled,docDefaultNewArtboardBackgroundColor:(0,w.parseColor)(i.docDefaultNewArtboardBackgroundColor),docDefaultNewArtboardBackgroundType:i.docDefaultNewArtboardBackgroundType},(0,b.skipBytes)(e,n())},(e,t)=>{var n,i,o,r,s;let a=t.artboards,l={"Cnt ":a.count,autoExpandOffset:a.autoExpandOffset?{Hrzn:a.autoExpandOffset.horizontal,Vrtc:a.autoExpandOffset.vertical}:{Hrzn:0,Vrtc:0},origin:a.origin?{Hrzn:a.origin.horizontal,Vrtc:a.origin.vertical}:{Hrzn:0,Vrtc:0},autoExpandEnabled:(n=a.autoExpandEnabled)!==null&&n!==void 0?n:!0,autoNestEnabled:(i=a.autoNestEnabled)!==null&&i!==void 0?i:!0,autoPositionEnabled:(o=a.autoPositionEnabled)!==null&&o!==void 0?o:!0,shrinkwrapOnSaveEnabled:(r=a.shrinkwrapOnSaveEnabled)!==null&&r!==void 0?r:!0,docDefaultNewArtboardBackgroundColor:(0,w.serializeColor)(a.docDefaultNewArtboardBackgroundColor),docDefaultNewArtboardBackgroundType:(s=a.docDefaultNewArtboardBackgroundType)!==null&&s!==void 0?s:1};(0,w.writeVersionAndDescriptor)(e,"","null",l,"artd")});function Zr(e){return Object.keys(e).map(t=>e[t]).some(t=>Array.isArray(t)&&t.length>1)}L("lfx2",e=>e.effects!==void 0&&!Zr(e.effects),(e,t,n)=>{if((0,b.readUint32)(e)!==0)throw new Error("Invalid lfx2 version");let o=(0,w.readVersionAndDescriptor)(e);t.effects=(0,w.parseEffects)(o,!!e.logMissingFeatures),(0,b.skipBytes)(e,n())},(e,t,n,i)=>{let o=(0,w.serializeEffects)(t.effects,!!i.logMissingFeatures,!0);(0,y.writeUint32)(e,0),(0,w.writeVersionAndDescriptor)(e,"","null",o)});L("cinf",ae("compositorUsed"),(e,t,n)=>{let i=(0,w.readVersionAndDescriptor)(e);function o(r){return r.split(".")[1]}t.compositorUsed={description:i.description,reason:i.reason,engine:o(i.Engn)},i.Vrsn&&(t.compositorUsed.version=i.Vrsn),i.psVersion&&(t.compositorUsed.photoshopVersion=i.psVersion),i.enableCompCore&&(t.compositorUsed.enableCompCore=o(i.enableCompCore)),i.enableCompCoreGPU&&(t.compositorUsed.enableCompCoreGPU=o(i.enableCompCoreGPU)),i.enableCompCoreThreads&&(t.compositorUsed.enableCompCoreThreads=o(i.enableCompCoreThreads)),i.compCoreSupport&&(t.compositorUsed.compCoreSupport=o(i.compCoreSupport)),i.compCoreGPUSupport&&(t.compositorUsed.compCoreGPUSupport=o(i.compCoreGPUSupport)),(0,b.skipBytes)(e,n())},(e,t)=>{let n=t.compositorUsed,i={Vrsn:n.version||{major:1,minor:0,fix:0}};n.photoshopVersion&&(i.psVersion=n.photoshopVersion),i.description=n.description,i.reason=n.reason,i.Engn=`Engn.${n.engine}`,n.enableCompCore&&(i.enableCompCore=`enable.${n.enableCompCore}`),n.enableCompCoreGPU&&(i.enableCompCoreGPU=`enable.${n.enableCompCoreGPU}`),n.enableCompCoreThreads&&(i.enableCompCoreThreads=`enable.${n.enableCompCoreThreads}`),n.compCoreSupport&&(i.compCoreSupport=`reason.${n.compCoreSupport}`),n.compCoreGPUSupport&&(i.compCoreGPUSupport=`reason.${n.compCoreGPUSupport}`),(0,w.writeVersionAndDescriptor)(e,"","null",i)});L("extn",e=>e._extn!==void 0,(e,t)=>{let n=(0,w.readVersionAndDescriptor)(e);Ze.MOCK_HANDLERS&&(t._extn=n)},(e,t)=>{Ze.MOCK_HANDLERS&&(0,w.writeVersionAndDescriptor)(e,"","null",t._extn)});L("iOpa",ae("fillOpacity"),(e,t)=>{t.fillOpacity=(0,b.readUint8)(e)/255,(0,b.skipBytes)(e,3)},(e,t)=>{(0,y.writeUint8)(e,t.fillOpacity*255),(0,y.writeZeros)(e,3)});L("brst",ae("channelBlendingRestrictions"),(e,t,n)=>{for(t.channelBlendingRestrictions=[];n()>4;)t.channelBlendingRestrictions.push((0,b.readInt32)(e))},(e,t)=>{for(let n of t.channelBlendingRestrictions)(0,y.writeInt32)(e,n)});L("tsly",ae("transparencyShapesLayer"),(e,t)=>{t.transparencyShapesLayer=!!(0,b.readUint8)(e),(0,b.skipBytes)(e,3)},(e,t)=>{(0,y.writeUint8)(e,t.transparencyShapesLayer?1:0),(0,y.writeZeros)(e,3)})});var Dn=oe(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.createWriter=C0;ce.getWriterBuffer=P0;ce.getWriterBufferNoCopy=E0;ce.writeUint8=de;ce.writeInt16=Ht;ce.writeUint16=Z;ce.writeUint16LE=Fc;ce.writeInt32=Me;ce.writeInt32LE=F0;ce.writeUint32=ue;ce.writeFloat32=O0;ce.writeFloat64=Kr;ce.writeFixedPoint32=L0;ce.writeFixedPointPath32=B0;ce.writeBytes=fi;ce.writeZeros=sn;ce.writeSignature=an;ce.writeAsciiString=U0;ce.writePascalString=yo;ce.writeUnicodeStringWithoutLength=Oc;ce.writeUnicodeStringWithoutLengthLE=R0;ce.writeUnicodeString=Lc;ce.writeUnicodeStringWithPadding=M0;ce.writeSection=rt;ce.writePsd=T0;ce.writeColor=q0;ce.writePattern=K0;var ve=Tt(),I0=oo(),D0=_r();function C0(e=4096){let t=new ArrayBuffer(e),n=new DataView(t);return{buffer:t,view:n,offset:0,tempBuffer:void 0}}function P0(e){return e.buffer.slice(0,e.offset)}function E0(e){return new Uint8Array(e.buffer,0,e.offset)}function de(e,t){let n=Ct(e,1);e.view.setUint8(n,t)}function Ht(e,t){let n=Ct(e,2);e.view.setInt16(n,t,!1)}function Z(e,t){let n=Ct(e,2);e.view.setUint16(n,t,!1)}function Fc(e,t){let n=Ct(e,2);e.view.setUint16(n,t,!0)}function Me(e,t){let n=Ct(e,4);e.view.setInt32(n,t,!1)}function F0(e,t){let n=Ct(e,4);e.view.setInt32(n,t,!0)}function ue(e,t){let n=Ct(e,4);e.view.setUint32(n,t,!1)}function O0(e,t){let n=Ct(e,4);e.view.setFloat32(n,t,!1)}function Kr(e,t){let n=Ct(e,8);e.view.setFloat64(n,t,!1)}function L0(e,t){Me(e,t*65536)}function B0(e,t){Me(e,t*(1<<24))}function fi(e,t){t&&(Tc(e,e.offset+t.length),new Uint8Array(e.buffer).set(t,e.offset),e.offset+=t.length)}function sn(e,t){for(let n=0;n<t;n++)de(e,0)}function an(e,t){if(t.length!==4)throw new Error(`Invalid signature: '${t}'`);for(let n=0;n<4;n++)de(e,t.charCodeAt(n))}function U0(e,t){for(let n=0;n<t.length;n++)de(e,t.charCodeAt(n))}function yo(e,t,n){let i=t.length;if(i>255)throw new Error("String too long");de(e,i);for(let o=0;o<i;o++){let r=t.charCodeAt(o);de(e,r<128?r:63)}for(;++i%n;)de(e,0)}function Oc(e,t){for(let n=0;n<t.length;n++)Z(e,t.charCodeAt(n))}function R0(e,t){for(let n=0;n<t.length;n++)Fc(e,t.charCodeAt(n))}function Lc(e,t){ue(e,t.length),Oc(e,t)}function M0(e,t){ue(e,t.length+1);for(let n=0;n<t.length;n++)Z(e,t.charCodeAt(n));Z(e,0)}function Bc(e=[]){let t=0;for(let n of e){let{width:i,height:o}=di(n);if(t=Math.max(t,2*o+2*i*o),n.mask){let{width:r,height:s}=di(n.mask);t=Math.max(t,2*s+2*r*s)}if(n.realMask){let{width:r,height:s}=di(n.realMask);t=Math.max(t,2*s+2*r*s)}n.children&&(t=Math.max(t,Bc(n.children)))}return t}function rt(e,t,n,i=!1,o=!1){o&&ue(e,0);let r=e.offset;ue(e,0),n();let s=e.offset-r-4,a=s;for(;a%t;)de(e,0),a++;i&&(s=a),e.view.setUint32(r,s,!1)}function Uc(e){var t;(t=e.children)===null||t===void 0||t.forEach(Uc);let n=e.imageData;if(n&&(n.data instanceof Uint32Array||n.data instanceof Uint16Array))throw new Error("imageData has incorrect bitDepth");if("mask"in e&&e.mask){let i=e.mask.imageData;if(i&&(i.data instanceof Uint32Array||i.data instanceof Uint16Array))throw new Error("mask imageData has incorrect bitDepth")}}function T0(e,t,n={}){var i;if(!(+t.width>0&&+t.height>0))throw new Error("Invalid document size");if((t.width>3e4||t.height>3e4)&&!n.psb)throw new Error("Document size is too large (max is 30000x30000, use PSB format instead)");let o=(i=t.bitsPerChannel)!==null&&i!==void 0?i:8;if(o!==8)throw new Error("bitsPerChannel other than 8 are not supported for writing");Uc(t);let r=Object.assign({},t.imageResources),s=Object.assign(Object.assign({},n),{layerIds:new Set,layerToId:new Map});s.generateThumbnail&&(r.thumbnail=G0(t));let a=t.imageData;if(!a&&t.canvas&&(a=t.canvas.getContext("2d").getImageData(0,0,t.canvas.width,t.canvas.height)),a&&(t.width!==a.width||t.height!==a.height))throw new Error("Document canvas must have the same size as document");let l=!!a&&(0,ve.hasAlpha)(a),c=Math.max(Bc(t.children),8*t.width*t.height+2*t.height);e.tempBuffer=new Uint8Array(c),an(e,"8BPS"),Z(e,n.psb?2:1),sn(e,6),Z(e,l?4:3),ue(e,t.height),ue(e,t.width),Z(e,o),Z(e,3),rt(e,1,()=>{var S,m,g;if(t.palette){for(let v=0;v<256;v++)de(e,((S=t.palette[v])===null||S===void 0?void 0:S.r)||0);for(let v=0;v<256;v++)de(e,((m=t.palette[v])===null||m===void 0?void 0:m.g)||0);for(let v=0;v<256;v++)de(e,((g=t.palette[v])===null||g===void 0?void 0:g.b)||0)}});let d=[];Mc(d,t.children),d.length||d.push({}),r.layersGroup=d.map(S=>S.linkGroup||0),r.layerGroupsEnabledId=d.map(S=>S.linkGroupEnabled==!1?0:1),rt(e,1,()=>{for(let S of D0.resourceHandlers){let m=S.has(r),g=m===!1?0:m===!0?1:m;for(let v=0;v<g;v++)an(e,"8BIM"),Z(e,S.key),yo(e,"",2),rt(e,2,()=>S.write(e,r,v))}}),rt(e,2,()=>{j0(e,d,t,l,s),N0(e,t.globalLayerMaskInfo),Rc(e,t,t,s)},void 0,!!s.psb);let u=l?[0,1,2,3]:[0,1,2],f=a?a.width:t.width,h=a?a.height:t.height,p={data:new Uint8Array(f*h*4),width:f,height:h};if(Z(e,1),ve.RAW_IMAGE_DATA&&t.imageDataRaw)console.log("writing raw image data"),fi(e,t.imageDataRaw);else{if(a&&p.data.set(new Uint8Array(a.data.buffer,a.data.byteOffset,a.data.byteLength)),l){let S=p.width*p.height*4,m=p.data;for(let g=0;g<S;g+=4){let v=m[g+3];if(v!=0&&v!=255){let x=v/255,_=255*(1-x);m[g+0]=m[g+0]*x+_,m[g+1]=m[g+1]*x+_,m[g+2]=m[g+2]*x+_}}}fi(e,(0,ve.writeDataRLE)(e.tempBuffer,p,u,!!n.psb))}}function j0(e,t,n,i,o){rt(e,4,()=>{var r;Ht(e,i?-t.length:t.length);let s=t.map((a,l)=>H0(e.tempBuffer,a,l===0,o));for(let a of s){let{layer:l,top:c,left:d,bottom:u,right:f,channels:h}=a;Me(e,c),Me(e,d),Me(e,u),Me(e,f),Z(e,h.length);for(let S of h)Ht(e,S.id),o.psb&&ue(e,0),ue(e,S.length);an(e,"8BIM"),an(e,ve.fromBlendMode[l.blendMode]||"norm"),de(e,Math.round((0,ve.clamp)((r=l.opacity)!==null&&r!==void 0?r:1,0,1)*255)),de(e,l.clipping?1:0);let p=8;l.transparencyProtected&&(p|=1),l.hidden&&(p|=2),(l.vectorMask||l.sectionDivider&&l.sectionDivider.type!==0||l.adjustment)&&(p|=16),l.effectsOpen&&(p|=32),de(e,p),de(e,0),rt(e,1,()=>{z0(e,l,a),$0(e,l),yo(e,(l.name||"").substring(0,255),4),Rc(e,l,n,o)})}for(let a of s)for(let l of a.channels)Z(e,l.compression),l.data&&fi(e,l.data)},!0,o.psb)}function z0(e,{mask:t,realMask:n},i){rt(e,1,()=>{if(!t&&!n)return;let o=0,r=0,s=0;t&&(t.userMaskDensity!==void 0&&(o|=1),t.userMaskFeather!==void 0&&(o|=2),t.vectorMaskDensity!==void 0&&(o|=4),t.vectorMaskFeather!==void 0&&(o|=8),t.disabled&&(r|=2),t.positionRelativeToLayer&&(r|=1),t.fromVectorData&&(r|=8),o&&(r|=16));let a=i.mask||{};if(Me(e,a.top||0),Me(e,a.left||0),Me(e,a.bottom||0),Me(e,a.right||0),de(e,t&&t.defaultColor||0),de(e,r),n){n.disabled&&(s|=2),n.positionRelativeToLayer&&(s|=1),n.fromVectorData&&(s|=8);let l=i.realMask||{};de(e,s),de(e,n.defaultColor||0),Me(e,l.top||0),Me(e,l.left||0),Me(e,l.bottom||0),Me(e,l.right||0)}o&&t&&(de(e,o),t.userMaskDensity!==void 0&&de(e,Math.round(t.userMaskDensity*255)),t.userMaskFeather!==void 0&&Kr(e,t.userMaskFeather),t.vectorMaskDensity!==void 0&&de(e,Math.round(t.vectorMaskDensity*255)),t.vectorMaskFeather!==void 0&&Kr(e,t.vectorMaskFeather)),sn(e,2)})}function bo(e,t){de(e,t[0]),de(e,t[1]),de(e,t[2]),de(e,t[3])}function $0(e,t){rt(e,1,()=>{let n=t.blendingRanges;if(n){bo(e,n.compositeGrayBlendSource),bo(e,n.compositeGraphBlendDestinationRange);for(let i of n.ranges)bo(e,i.sourceRange),bo(e,i.destRange)}})}function N0(e,t){rt(e,1,()=>{t&&(Z(e,t.overlayColorSpace),Z(e,t.colorSpace1),Z(e,t.colorSpace2),Z(e,t.colorSpace3),Z(e,t.colorSpace4),Z(e,Math.round(t.opacity*255)),de(e,t.kind),sn(e,3))})}function Rc(e,t,n,i){for(let o of I0.infoHandlers){let r=o.key;if(!(r==="Txt2"&&i.invalidateTextLayers)&&(r==="vmsk"&&i.psb&&(r="vsms"),o.has(t))){let s=i.psb&&ve.largeAdditionalInfoKeys.indexOf(r)!==-1,a=r!=="Txt2"&&r!=="cinf"&&r!=="extn"&&r!=="CAI "&&r!=="OCIO",l=r==="Txt2"||r==="luni"||r==="vmsk"||r==="artb"||r==="artd"||r==="vogk"||r==="SoLd"||r==="lnk2"||r==="vscg"||r==="vsms"||r==="GdFl"||r==="lmfx"||r==="lrFX"||r==="cinf"||r==="PlLd"||r==="Anno"||r==="CAI "||r==="OCIO"||r==="GenI"||r==="FEid"||r==="curv"||r==="CgEd"||r==="vibA"||r==="blwh"||r==="grdm";an(e,s?"8B64":"8BIM"),an(e,r),rt(e,l?4:2,()=>{o.write(e,t,n,i)},a,s)}}}function Mc(e,t){if(t)for(let n of t){if(n.children&&n.canvas)throw new Error("Invalid layer, cannot have both 'canvas' and 'children' properties");if(n.children&&n.imageData)throw new Error("Invalid layer, cannot have both 'imageData' and 'children' properties");n.children?(e.push({name:"</Layer group>",sectionDivider:{type:3}}),Mc(e,n.children),e.push(Object.assign(Object.assign({},n),{blendMode:n.blendMode==="pass through"?"normal":n.blendMode,sectionDivider:{type:n.opened===!1?2:1,key:ve.fromBlendMode[n.blendMode]||"pass",subType:0}}))):e.push(Object.assign({},n))}}function V0(e,t){let n=e.buffer.byteLength;do n*=2;while(t>n);let i=new ArrayBuffer(n),o=new Uint8Array(i),r=new Uint8Array(e.buffer);o.set(r),e.buffer=i,e.view=new DataView(e.buffer)}function Tc(e,t){t>e.buffer.byteLength&&V0(e,t)}function Ct(e,t){let n=e.offset;return Tc(e,e.offset+=t),n}function G0(e){let t=(0,ve.createCanvas)(10,10),n=1;e.width>e.height?(t.width=160,t.height=Math.floor(e.height*(t.width/e.width)),n=t.width/e.width):(t.height=160,t.width=Math.floor(e.width*(t.height/e.height)),n=t.height/e.height);let i=t.getContext("2d");return i.scale(n,n),e.imageData?i.drawImage((0,ve.imageDataToCanvas)(e.imageData),0,0):e.canvas&&i.drawImage(e.canvas,0,0),t}function Cc(e,t,n,i,o,r){let s=i.top|0,a=i.left|0,l=i.right|0,c=i.bottom|0,{width:d,height:u}=di(i),f=i.imageData;if(!f&&i.canvas&&d&&u&&(f=i.canvas.getContext("2d").getImageData(0,0,d,u)),f&&(f.width!==d||f.height!==u))throw new Error("Invalid imageData dimentions");l=a+d,c=s+u;let h,p;ve.RAW_IMAGE_DATA&&n[r?"realMaskDataRaw":"maskDataRaw"]?(h=n[r?"realMaskDataRaw":"maskDataRaw"],p=n[r?"realMaskDataRawCompression":"maskDataRawCompression"]):f?o.compress?(h=(0,ve.writeDataZipWithoutPrediction)(f,[0]),p=2):(h=(0,ve.writeDataRLE)(e,f,[0],!!o.psb),p=1):(h=new Uint8Array(0),p=1),t.channels.push({id:r?-3:-2,compression:p,data:h,length:2+h.length}),t[r?"realMask":"mask"]={top:s,left:a,right:l,bottom:c}}function qr(e){return e?{top:e.top||0,left:e.left||0,right:e.right||0,bottom:e.bottom||0}:void 0}function H0(e,t,n,i){if(t.rawData)return Object.assign(Object.assign({layer:t,channels:t.rawData.channels.map(r=>{var s,a;return Object.assign(Object.assign({},r),{length:2+((a=(s=r.data)===null||s===void 0?void 0:s.byteLength)!==null&&a!==void 0?a:0)})})},qr(t)),{mask:qr(t.mask),realMask:qr(t.realMask)});let o=X0(e,t,n,i);return t.mask&&Cc(e,o,t,t.mask,i,!1),t.realMask&&Cc(e,o,t,t.realMask,i,!0),o}function di({canvas:e,imageData:t}){var n,i,o,r;let s=(i=(n=t?.width)!==null&&n!==void 0?n:e?.width)!==null&&i!==void 0?i:0,a=(r=(o=t?.height)!==null&&o!==void 0?o:e?.height)!==null&&r!==void 0?r:0;return{width:s,height:a}}function W0(e,t,n,i,o){if(e.data instanceof Uint32Array||e.data instanceof Uint16Array)throw new Error("imageData has incorrect bit depth");let r=(0,ve.createImageData)(i,o),s=e.data,a=r.data;for(let l=0;l<o;l++)for(let c=0;c<i;c++){let d=(c+t+(l+n)*e.width)*4,u=(c+l*i)*4;a[u]=s[d],a[u+1]=s[d+1],a[u+2]=s[d+2],a[u+3]=s[d+3]}return r}function X0(e,t,n,i){var o;let r=t.top|0,s=t.left|0,a=t.right|0,l=t.bottom|0,c=[{id:-1,compression:0,data:void 0,length:2},{id:0,compression:0,data:void 0,length:2},{id:1,compression:0,data:void 0,length:2},{id:2,compression:0,data:void 0,length:2}],{width:d,height:u}=di(t);if(!(t.canvas||t.imageData)||!d||!u)return a=s,l=r,{layer:t,top:r,left:s,right:a,bottom:l,channels:c};a=s+d,l=r+u;let f=t.imageData||t.canvas.getContext("2d").getImageData(0,0,d,u);if(i.trimImageData){let p=Z0(f);if(p.left!==0||p.top!==0||p.right!==f.width||p.bottom!==f.height){if(s+=p.left,r+=p.top,a-=f.width-p.right,l-=f.height-p.bottom,d=a-s,u=l-r,!d||!u)return{layer:t,top:r,left:s,right:a,bottom:l,channels:c};f=W0(f,p.left,p.top,d,u)}}let h=[0,1,2];return(!n||i.noBackground||t.mask||(0,ve.hasAlpha)(f)||ve.RAW_IMAGE_DATA&&(!((o=t.imageDataRaw)===null||o===void 0)&&o[-1]))&&h.unshift(-1),c=h.map(p=>{let S=(0,ve.offsetForChannel)(p,!1),m,g;return ve.RAW_IMAGE_DATA&&t.imageDataRaw?(m=t.imageDataRaw[p],g=t.imageDataRawCompression[p]):i.compress?(m=(0,ve.writeDataZipWithoutPrediction)(f,[S]),g=2):(m=(0,ve.writeDataRLE)(e,f,[S],!!i.psb),g=1),{id:p,compression:g,data:m,length:2+m.length}}),{layer:t,top:r,left:s,right:a,bottom:l,channels:c}}function Pc({data:e,width:t},n,i,o){let r=(n*t+i)*4+3|0,s=r+(o-i)*4|0;for(let a=r;a<s;a=a+4|0)if(e[a]!==0)return!1;return!0}function Ec({data:e,width:t},n,i,o){let r=t*4|0,s=i*r+n*4+3|0;for(let a=i,l=s;a<o;a++,l=l+r|0)if(e[l]!==0)return!1;return!0}function Z0(e){let t=0,n=0,i=e.width,o=e.height;for(;t<o&&Pc(e,t,n,i);)t++;for(;o>t&&Pc(e,o-1,n,i);)o--;for(;n<i&&Ec(e,n,t,o);)n++;for(;i>n&&Ec(e,i-1,t,o);)i--;return{top:t,left:n,right:i,bottom:o}}function q0(e,t){t?"r"in t?(Z(e,0),Z(e,Math.round(t.r*257)),Z(e,Math.round(t.g*257)),Z(e,Math.round(t.b*257)),Z(e,0)):"fr"in t?(Z(e,0),Z(e,Math.round(t.fr*255*257)),Z(e,Math.round(t.fg*255*257)),Z(e,Math.round(t.fb*255*257)),Z(e,0)):"l"in t?(Z(e,7),Ht(e,Math.round(t.l*1e4)),Ht(e,Math.round(t.a<0?t.a*12800:t.a*12700)),Ht(e,Math.round(t.b<0?t.b*12800:t.b*12700)),Z(e,0)):"h"in t?(Z(e,1),Z(e,Math.round(t.h*65535)),Z(e,Math.round(t.s*65535)),Z(e,Math.round(t.b*65535)),Z(e,0)):"c"in t?(Z(e,2),Z(e,Math.round(t.c*257)),Z(e,Math.round(t.m*257)),Z(e,Math.round(t.y*257)),Z(e,Math.round(t.k*257))):(Z(e,8),Z(e,Math.round(t.k*1e4/255)),sn(e,6)):(Z(e,0),sn(e,8))}function K0(e,t){let n=t.bounds.w,i=t.bounds.h,o={width:n,height:i,data:t.data};ue(e,0);let r=e.offset;ue(e,1),ue(e,3),Ht(e,t.x),Ht(e,t.y),Lc(e,t.name+"\0"),yo(e,t.id,1),ue(e,3),ue(e,0);let s=e.offset,a=t.bounds.y,l=t.bounds.x,c=a+i,d=l+n;ue(e,a),ue(e,l),ue(e,c),ue(e,d),ue(e,24);for(let h=0;h<26;h++){let p=h<3?h:h===25?3:-1;if(p<0){ue(e,0);continue}let S=new Uint8Array(n*i+2*i+2*n+16),m=(0,ve.writeDataRLE)(S,o,[p],!1);ue(e,1),ue(e,m.length+4+16+2+1),ue(e,8),ue(e,a),ue(e,l),ue(e,c),ue(e,d),Z(e,8),de(e,1),fi(e,m)}let u=e.offset-s,f=e.offset-r;for(;f%4;)sn(e,1),f++;e.view.setUint32(s-4,u,!1),e.view.setUint32(r-4,f,!1)}});var $c=oe(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.readAbr=tp;var X=Gi(),xe=jt(),Y0=["off","fade","pen pressure","pen tilt","stylus wheel","initial direction","direction","initial rotation","rotation"],jc=["round point","round blunt","round curve","round angle","round fan","flat point","flat blunt","flat curve","flat angle","flat fan"],J0=["erodible point","erodible flat","erodible round","erodible square","erodible triangle","custom"],Q0={_:"brush",MixB:"mixer brush",SmTl:"smudge brush"};function Oe(e){return{control:Y0[e.bVTy],steps:e.fStp,jitter:(0,X.parsePercent)(e.jitter),minimum:(0,X.parsePercent)(e["Mnm "])}}function zc(e){switch(e._classID){case"computedBrush":return{type:"computed",size:(0,X.parseUnitsToNumber)(e.Dmtr,"Pixels"),angle:(0,X.parseAngle)(e.Angl),roundness:(0,X.parsePercent)(e.Rndn),spacingOn:e.Intr,spacing:(0,X.parsePercent)(e.Spcn),flipX:e.flipX,flipY:e.flipY,hardness:(0,X.parsePercent)(e.Hrdn)};case"sampledBrush":return{type:"sampled",size:(0,X.parseUnitsToNumber)(e.Dmtr,"Pixels"),angle:(0,X.parseAngle)(e.Angl),roundness:(0,X.parsePercent)(e.Rndn),spacingOn:e.Intr,spacing:(0,X.parsePercent)(e.Spcn),flipX:e.flipX,flipY:e.flipY,name:e["Nm "],sampledData:e.sampledData};case"dBrush":return{type:"dynamic",shape:jc[e["Shp "]],angle:(0,X.parseAngle)(e.Angl),size:(0,X.parseUnitsToNumber)(e.Dmtr,"Pixels"),density:(0,X.parsePercent)(e.Dnst),length:(0,X.parsePercent)(e.Lngt),clumping:(0,X.parsePercent)(e.clumping),thickness:(0,X.parsePercent)(e.thickness),stiffness:(0,X.parsePercent)(e.stiffness),physics:e.physics,spacing:(0,X.parsePercent)(e.Spcn),spacingOn:e.Intr,flipX:e.flipX,flipY:e.flipY};case"dTips":return Object.assign(Object.assign({type:"tips",angle:(0,X.parseAngle)(e.Angl),size:(0,X.parseUnitsToNumber)(e.Dmtr,"Pixels"),shape:jc[e["Shp "]],physics:e.physics,spacing:(0,X.parsePercent)(e.Spcn),spacingOn:e.Intr,flipX:e.flipX,flipY:e.flipY,tipsType:J0[e.dtipsType],tipsLengthRatio:(0,X.parsePercent)(e.dtipsLengthRatio),tipsHardness:(0,X.parsePercent)(e.dtipsHardness)},e.dtipsGridSize&&e.dtipsErodibleTipHeightMap?{tipsGridSize:e.dtipsGridSize,tipsErodibleTipHeightMap:ep(e.dtipsErodibleTipHeightMap)}:{}),{tipsAirbrushCutoffAngle:e.dtipsAirbrushCutoffAngle,tipsAirbrushGranularity:(0,X.parsePercent)(e.dtipsAirbrushGranularity),tipsAirbrushStreakiness:(0,X.parsePercent)(e.dtipsAirbrushStreakiness),tipsAirbrushSplatSize:(0,X.parsePercent)(e.dtipsAirbrushSplatSize),tipsAirbrushSplatCount:e.dtipsAirbrushSplatCount});default:throw new Error(`Unknown brush classId: ${e._classID}`)}}function ep(e){let t=[];for(let n=0;n<e.byteLength;n++)t.push(e[n]);return t}function tp(e,t={}){var n,i,o,r;let s=(0,xe.createReader)(e.buffer,e.byteOffset,e.byteLength),a=(0,xe.readInt16)(s),l=[],c=[],d=[];if(a===1||a===2)throw new Error(`Unsupported ABR version (${a})`);if(a===6||a===7||a===9||a===10){let u=(0,xe.readInt16)(s);if(u!==1&&u!==2)throw new Error("Unsupported ABR minor version");for(;s.offset<s.view.byteLength;){(0,xe.checkSignature)(s,"8BIM");let f=(0,xe.readSignature)(s),h=(0,xe.readUint32)(s),p=s.offset+h;switch(f){case"samp":{for(;s.offset<p;){let S=(0,xe.readUint32)(s);for(;S&3;)S++;let m=s.offset+S,g=(0,xe.readPascalString)(s,1);(0,xe.skipBytes)(s,u===1?10:264);let v=(0,xe.readInt32)(s),x=(0,xe.readInt32)(s),_=(0,xe.readInt32)(s)-v,I=(0,xe.readInt32)(s)-x;if(I<=0||_<=0)throw new Error("Invalid bounds");let P=(0,xe.readInt16)(s),k=(0,xe.readUint8)(s),E=new Uint8Array(I*_);if(P===8)if(k===0)E.set((0,xe.readBytes)(s,E.byteLength));else if(k===1)(0,xe.readDataRLE)(s,{width:I,height:_,data:E},I,_,P,1,[0],!1);else throw new Error("Invalid compression");else if(P===16)if(k===0)for(let O=0;O<E.byteLength;O++)E[O]=(0,xe.readUint16)(s)>>8;else throw k===1?new Error("not implemented (16bit RLE)"):new Error("Invalid compression");else throw new Error("Invalid depth");l.push({id:g,bounds:{x,y:v,w:I,h:_},alpha:E}),s.offset=m}break}case"desc":{let S=(0,X.readVersionAndDescriptor)(s,!0);for(let m of S.Brsh){let g={name:m["Nm "],shape:zc(m.Brsh),spacing:(0,X.parsePercent)(m.Spcn),wetEdges:m.Wtdg,noise:m.Nose,useBrushSize:m.useBrushSize};m.interpretation!=null&&(g.interpretation=m.interpretation),m.protectTexture!=null&&(g.protectTexture=m.protectTexture),m.useTipDynamics&&(g.shapeDynamics={tiltScale:(0,X.parsePercent)(m.tiltScale),sizeDynamics:Oe(m.szVr),angleDynamics:Oe(m.angleDynamics),roundnessDynamics:Oe(m.roundnessDynamics),flipX:m.flipX,flipY:m.flipY,brushProjection:m.brushProjection,minimumDiameter:(0,X.parsePercent)(m.minimumDiameter),minimumRoundness:(0,X.parsePercent)(m.minimumRoundness)}),m.useScatter&&(g.scatter={count:m["Cnt "],bothAxes:m.bothAxes,countDynamics:Oe(m.countDynamics),scatterDynamics:Oe(m.scatterDynamics)}),m.useTexture&&m.Txtr&&(g.texture={id:m.Txtr.Idnt,name:m.Txtr["Nm "],blendMode:X.BlnM.decode(m.textureBlendMode),depth:(0,X.parsePercent)(m.textureDepth),depthMinimum:(0,X.parsePercent)(m.minimumDepth),depthDynamics:Oe(m.textureDepthDynamics),scale:(0,X.parsePercent)(m.textureScale),invert:m.InvT,brightness:m.textureBrightness,contrast:m.textureContrast,textureEachTip:!!m.TxtC});let v=m.dualBrush;v&&v.useDualBrush&&(g.dualBrush={flip:v.Flip,shape:zc(v.Brsh),blendMode:X.BlnM.decode(v.BlnM),useScatter:v.useScatter,spacing:(0,X.parsePercent)(v.Spcn),count:v["Cnt "],bothAxes:v.bothAxes,countDynamics:Oe(v.countDynamics),scatterDynamics:Oe(v.scatterDynamics)}),m.useColorDynamics&&(g.colorDynamics={foregroundBackground:Oe(m.clVr),hue:(0,X.parsePercent)(m["H "]),saturation:(0,X.parsePercent)(m.Strt),brightness:(0,X.parsePercent)(m.Brgh),purity:(0,X.parsePercent)(m.purity),perTip:m.colorDynamicsPerTip}),m.usePaintDynamics&&(g.transfer={flowDynamics:Oe(m.prVr),opacityDynamics:Oe(m.opVr),wetnessDynamics:Oe(m.wtVr),mixDynamics:Oe(m.mxVr)}),m.useBrushPose&&(g.brushPose={overrideAngle:m.overridePoseAngle,overrideTiltX:m.overridePoseTiltX,overrideTiltY:m.overridePoseTiltY,overridePressure:m.overridePosePressure,pressure:(0,X.parsePercent)(m.brushPosePressure),tiltX:m.brushPoseTiltX,tiltY:m.brushPoseTiltY,angle:m.brushPoseAngle});let x=m.toolOptions;x&&(g.toolOptions={type:Q0[x._classID]||"brush",brushPreset:x.brushPreset,flow:(n=x.flow)!==null&&n!==void 0?n:100,smooth:(i=x.Smoo)!==null&&i!==void 0?i:0,mode:X.BlnM.decode(x["Md "]||"BlnM.Nrml"),opacity:(o=x.Opct)!==null&&o!==void 0?o:100,smoothing:!!x.smoothing,smoothingValue:x.smoothingValue||0,smoothingRadiusMode:!!x.smoothingRadiusMode,smoothingCatchup:!!x.smoothingCatchup,smoothingCatchupAtEnd:!!x.smoothingCatchupAtEnd,smoothingZoomCompensation:!!x.smoothingZoomCompensation,pressureSmoothing:!!x.pressureSmoothing,usePressureOverridesSize:!!x.usePressureOverridesSize,usePressureOverridesOpacity:!!x.usePressureOverridesOpacity,useLegacy:!!x.useLegacy},x.prVr&&(g.toolOptions.flowDynamics=Oe(x.prVr)),x.opVr&&(g.toolOptions.opacityDynamics=Oe(x.opVr)),x.szVr&&(g.toolOptions.sizeDynamics=Oe(x.szVr)),"wetness"in x&&(g.toolOptions.wetness=x.wetness),"dryness"in x&&(g.toolOptions.dryness=x.dryness),"mix"in x&&(g.toolOptions.mix=x.mix),"autoFill"in x&&(g.toolOptions.autoFill=x.autoFill),"autoClean"in x&&(g.toolOptions.autoClean=x.autoClean),"loadSolidColorOnly"in x&&(g.toolOptions.loadSolidColorOnly=x.loadSolidColorOnly),"sampleAllLayers"in x&&(g.toolOptions.sampleAllLayers=x.sampleAllLayers),"SmdF"in x&&(g.toolOptions.smudgeFingerPainting=x.SmdF),"SmdS"in x&&(g.toolOptions.smudgeSampleAllLayers=x.SmdS),"Prs "in x&&(g.toolOptions.strength=x["Prs "])),c.push(g)}break}case"patt":{for(;s.offset<p;)d.push((0,xe.readPattern)(s));s.offset=p;break}case"phry":{let S=(0,X.readVersionAndDescriptor)(s);t.logMissingFeatures&&!((r=S.hierarchy)===null||r===void 0)&&r.length;break}default:throw new Error(`Invalid brush type: ${f}`)}for(;h%4;)s.offset++,h++}}else throw new Error(`Unsupported ABR version (${a})`);return{samples:l,patterns:d,brushes:c}}});var Nc=oe(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.readCsh=ip;var np=oo(),Qe=jt();function ip(e){let t=(0,Qe.createReader)(e.buffer,e.byteOffset,e.byteLength),n={shapes:[]};if((0,Qe.checkSignature)(t,"cush"),(0,Qe.readUint32)(t)!==2)throw new Error("Invalid version");let i=(0,Qe.readUint32)(t);for(let o=0;o<i;o++){let r=(0,Qe.readUnicodeString)(t);for(;t.offset%4;)t.offset++;if((0,Qe.readUint32)(t)!==1)throw new Error("Invalid shape version");let s=(0,Qe.readUint32)(t),a=t.offset+s,l=(0,Qe.readPascalString)(t,1),c=(0,Qe.readUint32)(t),d=(0,Qe.readUint32)(t),u=(0,Qe.readUint32)(t),h=(0,Qe.readUint32)(t)-d,p=u-c,S={paths:[]};(0,np.readVectorMask)(t,S,h,p,a-t.offset),n.shapes.push(Object.assign({name:r,id:l,width:h,height:p},S)),t.offset=a}return n}});var Zc=oe(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.Compression=et.ChannelID=et.LayerCompCapturedInfo=et.SectionDividerType=et.ColorMode=void 0;var Vc;(function(e){e[e.Bitmap=0]="Bitmap",e[e.Grayscale=1]="Grayscale",e[e.Indexed=2]="Indexed",e[e.RGB=3]="RGB",e[e.CMYK=4]="CMYK",e[e.Multichannel=7]="Multichannel",e[e.Duotone=8]="Duotone",e[e.Lab=9]="Lab"})(Vc||(et.ColorMode=Vc={}));var Gc;(function(e){e[e.Other=0]="Other",e[e.OpenFolder=1]="OpenFolder",e[e.ClosedFolder=2]="ClosedFolder",e[e.BoundingSectionDivider=3]="BoundingSectionDivider"})(Gc||(et.SectionDividerType=Gc={}));var Hc;(function(e){e[e.None=0]="None",e[e.Visibility=1]="Visibility",e[e.Position=2]="Position",e[e.Appearance=4]="Appearance"})(Hc||(et.LayerCompCapturedInfo=Hc={}));var Wc;(function(e){e[e.Color0=0]="Color0",e[e.Color1=1]="Color1",e[e.Color2=2]="Color2",e[e.Color3=3]="Color3",e[e.Transparency=-1]="Transparency",e[e.UserMask=-2]="UserMask",e[e.RealUserMask=-3]="RealUserMask"})(Wc||(et.ChannelID=Wc={}));var Xc;(function(e){e[e.RawData=0]="RawData",e[e.RleCompressed=1]="RleCompressed",e[e.ZipWithoutPrediction=2]="ZipWithoutPrediction",e[e.ZipWithPrediction=3]="ZipWithPrediction"})(Xc||(et.Compression=Xc={}))});var Kc=oe(ee=>{"use strict";var op=ee&&ee.__createBinding||(Object.create?(function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}):(function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]})),Qr=ee&&ee.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&op(t,e,n)};Object.defineProperty(ee,"__esModule",{value:!0});ee.getCompositeCanvas=ee.getCompositeImageData=ee.getLayerRealMaskCanvas=ee.getLayerMaskCanvas=ee.getLayerCanvas=ee.getLayerRealMaskImageData=ee.getLayerMaskImageData=ee.getLayerImageData=ee.decodeLayerPixels=ee.byteArrayToBase64=ee.initializeCanvas=void 0;ee.readPsd=ap;ee.writePsd=lp;ee.writePsdUint8Array=qc;ee.writePsdBuffer=cp;var Bn=Dn(),tt=jt();Object.defineProperty(ee,"decodeLayerPixels",{enumerable:!0,get:function(){return tt.decodeLayerPixels}});Object.defineProperty(ee,"getLayerImageData",{enumerable:!0,get:function(){return tt.getLayerImageData}});Object.defineProperty(ee,"getLayerMaskImageData",{enumerable:!0,get:function(){return tt.getLayerMaskImageData}});Object.defineProperty(ee,"getLayerRealMaskImageData",{enumerable:!0,get:function(){return tt.getLayerRealMaskImageData}});Object.defineProperty(ee,"getLayerCanvas",{enumerable:!0,get:function(){return tt.getLayerCanvas}});Object.defineProperty(ee,"getLayerMaskCanvas",{enumerable:!0,get:function(){return tt.getLayerMaskCanvas}});Object.defineProperty(ee,"getLayerRealMaskCanvas",{enumerable:!0,get:function(){return tt.getLayerRealMaskCanvas}});Object.defineProperty(ee,"getCompositeImageData",{enumerable:!0,get:function(){return tt.getCompositeImageData}});Object.defineProperty(ee,"getCompositeCanvas",{enumerable:!0,get:function(){return tt.getCompositeCanvas}});var rp=ji();Qr($c(),ee);Qr(Nc(),ee);var sp=Tt();Object.defineProperty(ee,"initializeCanvas",{enumerable:!0,get:function(){return sp.initializeCanvas}});Qr(Zc(),ee);ee.byteArrayToBase64=rp.fromByteArray;function ap(e,t){let n="buffer"in e?(0,tt.createReader)(e.buffer,e.byteOffset,e.byteLength):(0,tt.createReader)(e);return(0,tt.readPsd)(n,t)}function lp(e,t){let n=(0,Bn.createWriter)();return(0,Bn.writePsd)(n,e,t),(0,Bn.getWriterBuffer)(n)}function qc(e,t){let n=(0,Bn.createWriter)();return(0,Bn.writePsd)(n,e,t),(0,Bn.getWriterBufferNoCopy)(n)}function cp(e,t){if(typeof Buffer>"u")throw new Error("Buffer not supported on this platform");return Buffer.from(qc(e,t))}});var vo=_d(Kc(),1);var So=class{view;offset=0;constructor(t){this.view=new DataView(t)}get length(){return this.view.byteLength}ensure(t,n=this.length,i="Adobe resource"){if(!Number.isSafeInteger(t)||t<0||this.offset+t>n||n>this.length)throw new Error(`${i} is truncated or has an invalid length.`)}u8(t,n){return this.ensure(1,t,n),this.view.getUint8(this.offset++)}i16(t,n){this.ensure(2,t,n);let i=this.view.getInt16(this.offset,!1);return this.offset+=2,i}u16(t,n){this.ensure(2,t,n);let i=this.view.getUint16(this.offset,!1);return this.offset+=2,i}i32(t,n){this.ensure(4,t,n);let i=this.view.getInt32(this.offset,!1);return this.offset+=4,i}u32(t,n){this.ensure(4,t,n);let i=this.view.getUint32(this.offset,!1);return this.offset+=4,i}i32le(t,n){this.ensure(4,t,n);let i=this.view.getInt32(this.offset,!0);return this.offset+=4,i}ascii(t,n,i){this.ensure(t,n,i);let o="";for(let r=0;r<t;r+=1)o+=String.fromCharCode(this.view.getUint8(this.offset++));return o}skip(t,n,i){this.ensure(t,n,i),this.offset+=t}},es=e=>{let t=e+3&-4;if(!Number.isSafeInteger(t)||t<e)throw new Error("Adobe resource alignment overflowed.");return t},St=(e,t,n)=>{let i=e*t;if(!Number.isSafeInteger(i)||i<0)throw new Error(`${n} overflows the safe integer range.`);return i},Yc=(e,t,n)=>{if(e.byteLength>t.maxFileBytes)throw new Error(`${n.toUpperCase()} source exceeds the ${t.maxFileBytes}-byte safety limit.`)},cn=(e,t,n)=>{if(!Number.isSafeInteger(e)||e<0||e>t.maxResourceItems)throw new Error(`${n} exceeds the ${t.maxResourceItems}-item safety limit.`)},Jc=(e,t,n,i)=>{cn(t,n,i),e.descriptorItems+=t;let o=Math.min(1e6,n.maxResourceItems*64);if(e.descriptorItems>o)throw new Error(`Adobe descriptor complexity exceeds the ${o}-record safety limit.`)},Qc=(e,t,n,i,o)=>{if(t<=0||t>i.maxResourcePreviewPixels)throw new Error(`${o} exceeds the ${i.maxResourcePreviewPixels}-pixel preview limit.`);if(e.previewPixels+=t,e.decodedBytes+=n,e.previewPixels>i.maxResourcePreviewPixels)throw new Error(`Adobe resource previews exceed the ${i.maxResourcePreviewPixels}-pixel collection limit.`);if(e.decodedBytes>i.maxDecodedBytes)throw new Error(`Adobe resource decoding exceeds the ${i.maxDecodedBytes}-byte safety limit.`)},Un=(e,t,n,i)=>{let o=e.u32(t,i);if(o>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-code-unit name limit.`);e.skip(St(o,2,`${i} length`),t,i)},ts=(e,t,n,i)=>{let o=e.u8(t,i);if(o>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-code-unit name limit.`);e.skip(o,t,i)},Pt=(e,t,n,i)=>{let o=e.i32(t,i);if(o<0)throw new Error(`${i} has a negative string length.`);let r=o||4;if(r>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-character identifier limit.`);e.skip(r,t,i)},ln=(e,t,n,i)=>{Un(e,t,n,`${i} name`),Pt(e,t,n,`${i} class id`)},wo=(e,t,n,i,o)=>{let r=e.i32(t,o);if(r<0)throw new Error(`${o} has a negative item count.`);return Jc(n,r,i,o),r},ed=(e,t,n,i,o,r)=>{if(i>r.maxNestingDepth)throw new Error(`Adobe descriptor nesting exceeds the ${r.maxNestingDepth}-level safety limit.`);switch(n){case"obj ":{let s=wo(e,t,o,r,"Adobe descriptor reference");for(let a=0;a<s;a+=1){let l=e.ascii(4,t,"Adobe descriptor reference type");if(l==="prop")ln(e,t,r,"Adobe property reference"),Pt(e,t,r,"Adobe property key");else if(l==="Clss")ln(e,t,r,"Adobe class reference");else if(l==="Enmr")ln(e,t,r,"Adobe enum reference"),Pt(e,t,r,"Adobe enum type"),Pt(e,t,r,"Adobe enum value");else if(l==="rele")ln(e,t,r,"Adobe offset reference"),e.skip(4,t,"Adobe offset reference");else if(l==="Idnt"||l==="indx")e.skip(4,t,"Adobe integer reference");else if(l==="name")ln(e,t,r,"Adobe name reference"),Un(e,t,r,"Adobe reference name");else throw new Error(`Unsupported Adobe descriptor reference type ${JSON.stringify(l)}.`)}return}case"Objc":case"GlbO":td(e,t,i+1,o,r);return;case"VlLs":{let s=wo(e,t,o,r,"Adobe descriptor list");for(let a=0;a<s;a+=1){let l=e.ascii(4,t,"Adobe descriptor list type");ed(e,t,l,i+1,o,r)}return}case"doub":e.skip(8,t,"Adobe double");return;case"UntF":e.skip(12,t,"Adobe unit double");return;case"UnFl":e.skip(8,t,"Adobe unit float");return;case"TEXT":Un(e,t,r,"Adobe descriptor text");return;case"enum":Pt(e,t,r,"Adobe enum type"),Pt(e,t,r,"Adobe enum value");return;case"long":e.skip(4,t,"Adobe integer");return;case"comp":e.skip(8,t,"Adobe large integer");return;case"bool":e.skip(1,t,"Adobe boolean");return;case"type":case"GlbC":ln(e,t,r,"Adobe descriptor class");return;case"alis":case"tdta":{let s=e.i32(t,"Adobe descriptor data length");if(s<0||s>r.maxDecodedBytes)throw new Error(`Adobe descriptor data exceeds the ${r.maxDecodedBytes}-byte safety limit.`);e.skip(s,t,"Adobe descriptor data");return}case"ObAr":{e.skip(4,t,"Adobe object-array version"),Un(e,t,r,"Adobe object-array name"),Pt(e,t,r,"Adobe object-array class");let s=wo(e,t,o,r,"Adobe object array");for(let a=0;a<s;a+=1){Pt(e,t,r,"Adobe object-array item type");let l=e.ascii(4,t,"Adobe object-array value type");if(l!=="UnFl")throw new Error(`Unsupported Adobe object-array value type ${JSON.stringify(l)}.`);e.skip(4,t,"Adobe object-array units");let c=wo(e,t,o,r,"Adobe object-array values");e.skip(St(c,8,"Adobe object-array values"),t,"Adobe object-array values")}return}case"Pth ":{let s=e.i32(t,"Adobe path length");if(s<0||s>r.maxDecodedBytes)throw new Error("Adobe descriptor path length is invalid.");e.skip(4,t,"Adobe path signature");let a=e.i32le(t,"Adobe path size"),l=e.i32le(t,"Adobe path character count");if(a<0||l<0||l>r.maxResourceNameCodeUnits)throw new Error("Adobe descriptor path exceeds its bounded string limits.");e.skip(St(l,2,"Adobe path characters"),t,"Adobe descriptor path");return}default:throw new Error(`Unsupported Adobe descriptor value type ${JSON.stringify(n)}.`)}},td=(e,t,n,i,o)=>{if(n>o.maxNestingDepth)throw new Error(`Adobe descriptor nesting exceeds the ${o.maxNestingDepth}-level safety limit.`);ln(e,t,o,"Adobe descriptor");let r=e.u32(t,"Adobe descriptor item count");Jc(i,r,o,"Adobe descriptor item count");for(let s=0;s<r;s+=1){Pt(e,t,o,"Adobe descriptor key");let a=e.ascii(4,t,"Adobe descriptor value type");ed(e,t,a,n+1,i,o)}},dp=(e,t,n,i)=>{let o=e.u32(t,"Adobe descriptor version");if(o!==16)throw new Error(`Unsupported Adobe descriptor version ${o}.`);td(e,t,0,n,i)},nd=(e,t,n,i,o)=>{let r=St(i,2,`${o} row table`);e.ensure(r,t,o);let s=Array.from({length:i},()=>e.u16(t,`${o} row length`));for(let a=0;a<i;a+=1){let l=e.offset+s[a];if(l>t)throw new Error(`${o} compressed row ${a} is truncated.`);let c=0;for(;e.offset<l;){let d=e.u8(l,`${o} PackBits header`);if(d<=127){let u=d+1;e.skip(u,l,`${o} PackBits literal`),c+=u}else d>=129&&(e.skip(1,l,`${o} PackBits repeat value`),c+=257-d);if(c>n)throw new Error(`${o} PackBits row ${a} expands beyond its declared width.`)}if(c!==n)throw new Error(`${o} PackBits row ${a} does not expand to its declared width.`)}},fp=(e,t,n,i,o)=>{let r=0;for(;e.offset<t;){cn(++r,o,"ABR sample count");let s=e.u32(t,"ABR sample length"),a=e.offset,l=a+s,c=a+es(s);if(l>t||c>t)throw new Error("ABR sample record is truncated.");ts(e,l,o,"ABR sample id"),e.skip(n===1?10:264,l,"ABR sample header");let d=e.i32(l,"ABR sample top"),u=e.i32(l,"ABR sample left"),f=e.i32(l,"ABR sample bottom"),p=e.i32(l,"ABR sample right")-u,S=f-d;if(p<=0||S<=0||p>o.maxCanvasDimension||S>o.maxCanvasDimension)throw new Error(`ABR sample dimensions exceed the ${o.maxCanvasDimension}-pixel side limit.`);let m=St(p,S,"ABR sample pixels"),g=e.i16(l,"ABR sample depth"),v=e.u8(l,"ABR sample compression");if(g!==8&&g!==16)throw new Error(`Unsupported ABR sample depth ${g}.`);if(v!==0&&v!==1)throw new Error(`Unsupported ABR sample compression ${v}.`);if(g===16&&v===1)throw new Error("ABR 16-bit RLE samples are not supported by the decoding engine.");if(Qc(i,m,m,o,"ABR sample"),v===0?e.skip(St(m,g/8,"ABR raw sample bytes"),l,"ABR raw sample"):nd(e,l,p,S,"ABR sample"),e.offset>l)throw new Error("ABR sample payload exceeded its declared record boundary.");e.offset=l,e.offset=c}return r},up=(e,t,n,i)=>{let o=e.u32(t,"ABR pattern length"),s=e.offset+es(o);if(s>t)throw new Error("ABR pattern record is truncated.");if(e.u32(s,"ABR pattern version")!==1)throw new Error("Unsupported ABR pattern version.");let a=e.u32(s,"ABR pattern color mode");if(a!==1&&a!==2&&a!==3)throw new Error(`Unsupported ABR pattern color mode ${a}.`);if(e.skip(4,s,"ABR pattern origin"),Un(e,s,i,"ABR pattern name"),ts(e,s,i,"ABR pattern id"),a===2&&e.skip(772,s,"ABR indexed palette"),e.u32(s,"ABR pattern VMAL version")!==3)throw new Error("Unsupported ABR pattern VMAL version.");e.u32(s,"ABR pattern VMAL length");let l=e.u32(s,"ABR pattern top"),c=e.u32(s,"ABR pattern left"),d=e.u32(s,"ABR pattern bottom"),u=e.u32(s,"ABR pattern right"),f=e.u32(s,"ABR pattern channel count");if(d<=l||u<=c||f>16)throw new Error("ABR pattern bounds or channel count is invalid.");let h=u-c,p=d-l;if(h>i.maxCanvasDimension||p>i.maxCanvasDimension)throw new Error(`ABR pattern dimensions exceed the ${i.maxCanvasDimension}-pixel side limit.`);let S=St(h,p,"ABR pattern pixels");Qc(n,S,St(S,4,"ABR pattern RGBA bytes"),i,"ABR pattern");for(let m=0;m<f+2;m+=1){if(!e.u32(s,"ABR pattern channel presence"))continue;let v=e.u32(s,"ABR pattern channel length");if(v<23)throw new Error("ABR pattern channel length is invalid.");let x=e.offset+v;if(x>s)throw new Error("ABR pattern channel is truncated.");let _=e.u32(x,"ABR pattern channel depth"),I=e.u32(x,"ABR pattern channel top"),P=e.u32(x,"ABR pattern channel left"),k=e.u32(x,"ABR pattern channel bottom"),E=e.u32(x,"ABR pattern channel right"),O=e.u16(x,"ABR pattern channel depth duplicate"),U=e.u8(x,"ABR pattern channel compression");if(_!==8||O!==8||U!==0&&U!==1)throw new Error("ABR pattern channel uses an unsupported depth or compression mode.");if(k<I||E<P||I<l||P<c||k>d||E>u)throw new Error("ABR pattern channel bounds are invalid.");let M=E-P,le=k-I,me=St(M,le,"ABR pattern channel pixels");if(U===0){if(x-e.offset!==me)throw new Error("ABR raw pattern channel length does not match its dimensions.");e.skip(me,x,"ABR raw pattern channel")}else if(nd(e,x,M,le,"ABR pattern channel"),e.offset!==x)throw new Error("ABR RLE pattern channel has trailing bytes.")}e.offset=s},id=(e,t)=>{Yc(e,t,"ABR");let n=new So(e),i=n.i16(void 0,"ABR version");if(i!==6&&i!==7&&i!==9&&i!==10)throw new Error(`Unsupported ABR version ${i}; the browser engine supports modern ABR versions 6, 7, 9, and 10.`);let o=n.i16(void 0,"ABR minor version");if(o!==1&&o!==2)throw new Error(`Unsupported ABR minor version ${o}.`);let r={descriptorItems:0,previewPixels:0,decodedBytes:0},s=0,a=0,l=0;for(;n.offset<n.length;){if(cn(++s,t,"ABR section count"),n.ascii(4,void 0,"ABR section signature")!=="8BIM")throw new Error("Invalid ABR section signature.");let c=n.ascii(4,void 0,"ABR section type"),d=n.u32(void 0,"ABR section length"),u=n.offset,f=u+d,h=u+es(d);if(f>n.length||h>n.length)throw new Error("ABR section is truncated.");if(c==="samp")a+=fp(n,f,o,r,t);else if(c==="desc"||c==="phry"){if(dp(n,f,r,t),n.offset!==f)throw new Error(`ABR ${c} descriptor does not consume its declared section.`)}else if(c==="patt")for(;n.offset<f;)cn(++l,t,"ABR pattern count"),up(n,f,r,t);else throw new Error(`Unsupported ABR section type ${JSON.stringify(c)}.`);if(n.offset>f)throw new Error(`ABR ${c} section exceeded its declared boundary.`);n.offset=h}return cn(a+l,t,"ABR decoded resource count"),{format:"abr",majorVersion:i,minorVersion:o,sections:s,samples:a,patterns:l,previewPixels:r.previewPixels,decodedBytes:r.decodedBytes}},od=(e,t)=>{Yc(e,t,"CSH");let n=new So(e);if(n.ascii(4,void 0,"CSH signature")!=="cush")throw new Error("Invalid CSH signature.");let i=n.u32(void 0,"CSH version");if(i!==2)throw new Error(`Unsupported CSH version ${i}; version 2 is required.`);let o=n.u32(void 0,"CSH shape count");cn(o,t,"CSH shape count");let r=0,s=0,a=Math.min(1e6,t.maxResourceItems*64);for(let l=0;l<o;l+=1){for(Un(n,n.length,t,`CSH shape ${l} name`);n.offset%4;)n.skip(1,n.length,"CSH name padding");if(n.u32(void 0,"CSH shape version")!==1)throw new Error("Unsupported CSH shape record version.");let c=n.u32(void 0,"CSH shape record length"),d=n.offset+c;if(d>n.length)throw new Error("CSH shape record is truncated.");ts(n,d,t,`CSH shape ${l} id`);let u=n.u32(d,"CSH shape top"),f=n.u32(d,"CSH shape left"),h=n.u32(d,"CSH shape bottom"),p=n.u32(d,"CSH shape right");if(h<=u||p<=f)throw new Error("CSH shape bounds are invalid.");let S=p-f,m=h-u;if(S>t.maxCanvasDimension||m>t.maxCanvasDimension)throw new Error(`CSH shape dimensions exceed the ${t.maxCanvasDimension}-pixel side limit.`);let g=St(S,m,"CSH shape preview pixels");if(s+=g,s>t.maxResourcePreviewPixels)throw new Error(`CSH previews exceed the ${t.maxResourcePreviewPixels}-pixel collection limit.`);if((d-n.offset)%26!==0)throw new Error("CSH vector record section is not aligned to 26-byte path records.");let v=0,x=0,_=!1;for(;n.offset<d;){if(r+=1,r>a)throw new Error(`CSH path complexity exceeds the ${a}-record safety limit.`);let I=n.u16(d,"CSH vector selector");if(I===0||I===3){if(_&&x!==v)throw new Error("CSH path knot count does not match its declared count.");v=n.u16(d,"CSH path knot count"),cn(v,t,"CSH path knot count");let P=n.i16(d,"CSH path boolean operation");if(P<-1||P>3)throw new Error("CSH path boolean operation is invalid.");n.skip(20,d,"CSH path header"),x=0,_=!0}else if(I===1||I===2||I===4||I===5){if(!_)throw new Error("CSH knot appears before a path header.");if(n.skip(24,d,"CSH Bezier knot"),x+=1,x>v)throw new Error("CSH path contains more knots than declared.")}else if(I===6||I===7||I===8)n.skip(24,d,"CSH vector metadata record");else throw new Error(`Unsupported CSH vector selector ${I}.`)}if(_&&x!==v)throw new Error("CSH path knot count does not match its declared count.")}if(n.offset!==n.length)throw new Error("CSH file has trailing bytes outside its declared shapes.");return{format:"csh",version:2,shapes:o,pathRecords:r,previewPixels:s}};var Et=(e,t)=>{if(!Number.isFinite(e))throw new Error(`${t} is not finite.`);return e},dn=(e,t,n)=>{if(e.length>t.maxResourceNameCodeUnits)throw new Error(`${n} exceeds the ${t.maxResourceNameCodeUnits}-code-unit name limit.`);return e},hp=(e,t,n)=>{let i=Et(e.size,`${n} size`),o=Et(e.angle,`${n} angle`);if(i<0||i>t.maxCanvasDimension)throw new Error(`${n} size exceeds the ${t.maxCanvasDimension}-pixel side limit.`);let r={type:e.type,size:i,angle:o};return"roundness"in e&&(r.roundness=Et(e.roundness,`${n} roundness`)),"hardness"in e&&(r.hardness=Et(e.hardness,`${n} hardness`)),"spacing"in e&&(r.spacing=Et(e.spacing,`${n} spacing`)),e.type==="sampled"&&(r.sampledDataId=dn(e.sampledData,t,`${n} sampled-data id`)),r},pp=(e,t)=>({name:dn(e.name,t,"ABR brush name"),shape:hp(e.shape,t,`ABR brush ${JSON.stringify(e.name)}`),hasDynamics:!!(e.shapeDynamics||e.scatter||e.colorDynamics||e.transfer||e.brushPose),hasTexture:!!e.texture,hasDualBrush:!!e.dualBrush,...e.toolOptions?.type?{toolType:e.toolOptions.type}:{}}),mp=(e,t)=>{let n=id(e,t),i=(0,vo.readAbr)(new Uint8Array(e),{logMissingFeatures:!1});if(i.brushes.length+i.samples.length+i.patterns.length>t.maxResourceItems)throw new Error(`ABR decoded resources exceed the ${t.maxResourceItems}-item safety limit.`);let r=0,s=0,a=i.samples.map((c,d)=>{let{w:u,h:f,x:h,y:p}=c.bounds,S=u*f;if(!Number.isSafeInteger(S)||S<=0||c.alpha.byteLength!==S)throw new Error(`ABR sample ${d} returned inconsistent decoded pixels.`);return s+=S,r+=c.alpha.byteLength,{id:dn(c.id,t,`ABR sample ${d} id`),x:Et(h,`ABR sample ${d} x`),y:Et(p,`ABR sample ${d} y`),width:u,height:f,alpha:c.alpha}}),l=i.patterns.map((c,d)=>{let{w:u,h:f,x:h,y:p}=c.bounds,S=u*f;if(!Number.isSafeInteger(S)||S<=0||c.data.byteLength!==S*4)throw new Error(`ABR pattern ${d} returned inconsistent decoded pixels.`);return s+=S,r+=c.data.byteLength,{id:dn(c.id,t,`ABR pattern ${d} id`),name:dn(c.name,t,`ABR pattern ${d} name`),x:Et(h,`ABR pattern ${d} x`),y:Et(p,`ABR pattern ${d} y`),width:u,height:f,rgba:c.data}});if(s!==n.previewPixels||s>t.maxResourcePreviewPixels)throw new Error("ABR decoded preview pixels do not match the bounded preflight result.");if(r!==n.decodedBytes||r>t.maxDecodedBytes)throw new Error("ABR decoded byte count does not match the bounded preflight result.");return{format:"abr",version:`${n.majorVersion}.${n.minorVersion}`,engine:"ag-psd",fidelity:"decoded-tip-and-metadata-preview",brushes:i.brushes.map(c=>pp(c,t)),samples:a,patterns:l,limitations:["The preview shows decoded tip alpha, embedded pattern pixels, and preset metadata; it does not simulate a painted stroke.","Legacy ABR versions 1 and 2 and 16-bit RLE brush samples are rejected because the decoding engine does not implement them."]}},ze=e=>{let t=Math.abs(e)<1e-9?0:e;return Number(t.toFixed(4)).toString()},gp=(e,t)=>{if(!e.knots.length)return{d:"",fillRule:e.fillRule,...e.operation?{operation:e.operation}:{}};let n=e.knots.map((r,s)=>{if(r.points.length!==6||r.points.some(a=>!Number.isFinite(a)))throw new Error(`${t} knot ${s} has invalid Bezier coordinates.`);return r.points}),i=n[0],o=`M ${ze(i[2])} ${ze(i[3])}`;for(let r=1;r<n.length;r+=1){let s=n[r-1],a=n[r];o+=` C ${ze(s[4])} ${ze(s[5])} ${ze(a[0])} ${ze(a[1])} ${ze(a[2])} ${ze(a[3])}`}if(!e.open){let r=n.at(-1);o+=` C ${ze(r[4])} ${ze(r[5])} ${ze(i[0])} ${ze(i[1])} ${ze(i[2])} ${ze(i[3])} Z`}return{d:o,fillRule:e.fillRule,...e.operation?{operation:e.operation}:{}}},bp=(e,t)=>{let n=od(e,t),i=(0,vo.readCsh)(new Uint8Array(e));if(i.shapes.length!==n.shapes)throw new Error("CSH decoded shape count does not match its bounded preflight result.");let o=0,r=0,s=Math.min(1e6,t.maxResourceItems*64);return{format:"csh",version:"2",engine:"ag-psd",fidelity:"vector-path-preview",shapes:i.shapes.map((l,c)=>{if(!Number.isSafeInteger(l.width)||!Number.isSafeInteger(l.height)||l.width<=0||l.height<=0)throw new Error(`CSH shape ${c} has invalid dimensions.`);o+=l.paths.length;let d=l.paths.map((u,f)=>(r+=u.knots.length,gp(u,`CSH shape ${c} path ${f}`)));if(o+r>s)throw new Error(`CSH decoded path complexity exceeds the ${s}-record safety limit.`);return{id:dn(l.id,t,`CSH shape ${c} id`),name:dn(l.name,t,`CSH shape ${c} name`),width:l.width,height:l.height,paths:d,hasUnsupportedBooleanComposition:l.paths.some(u=>u.operation&&u.operation!=="combine")}}),limitations:["Bezier geometry is preserved, but Photoshop exclude/subtract/intersect path operations are exposed as metadata rather than rasterized with Photoshop composition semantics.","The preview does not include Photoshop tool presets, fills, strokes, or effects because CSH stores custom-shape paths rather than a styled document."]}},rd=(e,t,n)=>t==="abr"?mp(e,n):bp(e,n);var yp=(e,t,n)=>{let i=e*t;if(!Number.isSafeInteger(i)||i<0)throw new Error(`${n} exceeds the safe integer range.`);return i},wp=(e,t)=>{if(!Number.isFinite(e))throw new Error(`${t} is not finite.`);return e},Rn=class{bytes;view;offset=0;constructor(t){this.bytes=t instanceof Uint8Array?t:new Uint8Array(t),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength)}get length(){return this.bytes.byteLength}get remaining(){return this.length-this.offset}ensure(t,n=this.length,i="Adobe binary data"){if(!Number.isSafeInteger(t)||t<0||this.offset>n||t>n-this.offset)throw new Error(`${i} is truncated.`)}u8(t=this.length,n){return this.ensure(1,t,n),this.view.getUint8(this.offset++)}u16(t=this.length,n){this.ensure(2,t,n);let i=this.view.getUint16(this.offset,!1);return this.offset+=2,i}i16(t=this.length,n){this.ensure(2,t,n);let i=this.view.getInt16(this.offset,!1);return this.offset+=2,i}u32(t=this.length,n){this.ensure(4,t,n);let i=this.view.getUint32(this.offset,!1);return this.offset+=4,i}i32(t=this.length,n){this.ensure(4,t,n);let i=this.view.getInt32(this.offset,!1);return this.offset+=4,i}i64(t=this.length,n){this.ensure(8,t,n);let i=this.view.getBigInt64(this.offset,!1);return this.offset+=8,i}f64(t=this.length,n){this.ensure(8,t,n);let i=this.view.getFloat64(this.offset,!1);return this.offset+=8,wp(i,n||"Adobe double")}ascii(t,n=this.length,i="Adobe ASCII data"){this.ensure(t,n,i);let o="";for(let r=0;r<t;r+=1)o+=String.fromCharCode(this.bytes[this.offset+r]);return this.offset+=t,o}slice(t,n=this.length,i="Adobe binary data"){this.ensure(t,n,i);let o=this.bytes.subarray(this.offset,this.offset+t);return this.offset+=t,o}skip(t,n=this.length,i="Adobe binary data"){this.ensure(t,n,i),this.offset+=t}},hi=(e,t,n,i)=>{let o=e.u32(t,`${i} length`);if(o>n.maxResourceNameCodeUnits+1)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-code-unit safety limit.`);let r=e.slice(yp(o,2,`${i} bytes`),t,i),s="";for(let a=0;a<o;a+=1){let l=r[a*2]<<8|r[a*2+1];if(!(l===0&&a===o-1))if(l>=55296&&l<=56319){if(a+1>=o)throw new Error(`${i} ends with an unpaired UTF-16 surrogate.`);let c=r[(a+1)*2]<<8|r[(a+1)*2+1];if(c<56320||c>57343)throw new Error(`${i} contains an invalid UTF-16 surrogate pair.`);s+=String.fromCodePoint(65536+(l-55296<<10)+(c-56320)),a+=1}else{if(l>=56320&&l<=57343)throw new Error(`${i} contains an unpaired UTF-16 surrogate.`);s+=String.fromCharCode(l)}}if(s.length>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-code-unit safety limit.`);return s},Wt=(e,t,n,i)=>{let o=e.u32(t,`${i} length`),r=o===0?4:o;if(r===0||r>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-byte safety limit.`);return e.ascii(r,t,i)},ui=(e,t,n)=>{if(!Number.isSafeInteger(t)||t<0||t>e.maximum-e.values)throw new Error(`${n} exceeds the ${e.maximum}-value descriptor safety limit.`);e.values+=t},sd=(e,t,n,i)=>({name:hi(e,t,n,`${i} name`),classId:Wt(e,t,n,`${i} id`)}),Sp=(e,t,n,i)=>{let o=e.u32(t,"Adobe reference count");ui(i,o,"Adobe reference count");let r=[];for(let s=0;s<o;s+=1){let a=e.ascii(4,t,"Adobe reference form"),{name:l,classId:c}=sd(e,t,n,"Adobe reference class"),d={form:a,className:l,classId:c};if(a==="prop")d.property=Wt(e,t,n,"Adobe reference property");else if(a==="Enmr")d.enumType=Wt(e,t,n,"Adobe reference enum type"),d.enumValue=Wt(e,t,n,"Adobe reference enum value");else if(a==="rele"||a==="Idnt"||a==="indx")d.index=e.i32(t,"Adobe reference index");else if(a==="name")d.name=hi(e,t,n,"Adobe reference name");else if(a!=="Clss")throw new Error(`Unsupported Adobe reference form ${JSON.stringify(a)}.`);r.push(d)}return r},vp=(e,t,n)=>{let i=e.u32(t,"Adobe descriptor path length");if(i>n.maxDecodedBytes)throw new Error(`Adobe descriptor path exceeds the ${n.maxDecodedBytes}-byte safety limit.`);return e.skip(i,t,"Adobe descriptor path"),{type:"path",length:i}},ad=(e,t,n,i,o,r)=>{if(r>i.maxNestingDepth)throw new Error(`Adobe descriptor nesting exceeds the ${i.maxNestingDepth}-level safety limit.`);switch(n){case"bool":return{type:"boolean",value:e.u8(t,"Adobe boolean")!==0};case"long":return{type:"integer",value:e.i32(t,"Adobe integer")};case"comp":return{type:"large-integer",value:e.i64(t,"Adobe large integer")};case"doub":return{type:"double",value:e.f64(t,"Adobe double")};case"UntF":return{type:"unit-double",unit:e.ascii(4,t,"Adobe unit"),value:e.f64(t,"Adobe unit double")};case"TEXT":return{type:"text",value:hi(e,t,i,"Adobe descriptor text")};case"enum":return{type:"enum",enumType:Wt(e,t,i,"Adobe enum type"),value:Wt(e,t,i,"Adobe enum value")};case"Objc":case"GlbO":return{type:"object",value:fn(e,t,i,o,r+1)};case"VlLs":{let s=e.u32(t,"Adobe list count");ui(o,s,"Adobe list count");let a=[];for(let l=0;l<s;l+=1)a.push(ad(e,t,e.ascii(4,t,"Adobe list value type"),i,o,r+1));return{type:"list",value:a}}case"alis":case"tdta":{let s=e.u32(t,"Adobe raw data length");if(s>i.maxDecodedBytes)throw new Error(`Adobe raw data exceeds the ${i.maxDecodedBytes}-byte safety limit.`);return e.skip(s,t,"Adobe raw data"),{type:"raw",length:s,alias:n==="alis"}}case"type":case"GlbC":{let s=sd(e,t,i,"Adobe class reference");return{type:"class",name:s.name,classId:s.classId}}case"UnFl":{let s=e.ascii(4,t,"Adobe unit-float-array unit"),a=e.u32(t,"Adobe unit-float-array count");ui(o,a,"Adobe unit-float-array count");let l=Array.from({length:a},()=>e.f64(t,"Adobe unit-float-array value"));return{type:"unit-double-array",unit:s,value:l}}case"ObAr":{let s=e.u32(t,"Adobe object-array count");return ui(o,s,"Adobe object-array count"),{type:"object-array",count:s,value:fn(e,t,i,o,r+1)}}case"obj ":return{type:"reference",value:Sp(e,t,i,o)};case"Pth ":return vp(e,t,i);default:throw new Error(`Unsupported Adobe descriptor value type ${JSON.stringify(n)}.`)}},pi=e=>{let t=Number.isSafeInteger(e.maxResourceItems)&&e.maxResourceItems>0?Math.min(1e6,e.maxResourceItems):1;return{values:0,maximum:t>3906?1e6:t*256}},fn=(e,t,n,i=pi(n),o=0)=>{if(o>n.maxNestingDepth)throw new Error(`Adobe descriptor nesting exceeds the ${n.maxNestingDepth}-level safety limit.`);let r=hi(e,t,n,"Adobe descriptor name"),s=Wt(e,t,n,"Adobe descriptor class"),a=e.u32(t,"Adobe descriptor item count");ui(i,a,"Adobe descriptor item count");let l=new Map,c=[];for(let d=0;d<a;d+=1){let u=Wt(e,t,n,"Adobe descriptor key");if(l.has(u))throw new Error(`Adobe descriptor contains duplicate key ${JSON.stringify(u)}.`);let f=e.ascii(4,t,"Adobe descriptor value type");l.set(u,ad(e,t,f,n,i,o+1)),c.push(u)}return{name:r,classId:s,entries:l,keys:c}},Le=(e,t)=>e?.entries.get(t),mi=(e,t)=>{let n=Le(e,t);return n?.type==="object"?n.value:void 0},un=(e,t)=>{let n=Le(e,t);return n?.type==="text"?n.value:void 0},gi=(e,t)=>{let n=Le(e,t);return n?.type==="enum"?n.value:void 0},bi=(e,t,n=!1)=>{let i=Le(e,t);return i?.type==="boolean"?i.value:n},ye=(e,t,n=0)=>{let i=Le(e,t);return i?i.type==="integer"||i.type==="double"||i.type==="unit-double"?i.value:i.type==="large-integer"?Number(i.value):n:n},ld=hi;var xp=["maxFileBytes","maxCanvasPixels","maxCanvasDimension","maxLayers","maxNestingDepth","maxLayerPixels","maxDecodedBytes","maxLayerCacheBytes","maxResourceItems","maxResourceNameCodeUnits","maxResourcePreviewPixels"],_p=e=>{for(let t of xp){let n=e[t];if(!Number.isSafeInteger(n)||n<=0)throw new Error(`Invalid Adobe preset safety limit ${t}.`)}},ud=e=>e+3&-4,st=(e,t,n)=>{let i=e+t;if(!Number.isSafeInteger(i)||i<0)throw new Error(`${n} exceeds the safe integer range.`);return i},_o=(e,t,n)=>{let i=e*t;if(!Number.isSafeInteger(i)||i<0)throw new Error(`${n} exceeds the safe integer range.`);return i},is=(e,t,n)=>{if(e.byteLength>t.maxFileBytes)throw new Error(`${n} source exceeds the ${t.maxFileBytes}-byte safety limit.`);if(!e.byteLength)throw new Error(`${n} source is empty.`)},hd=(e,t,n,i,o)=>{if(e.previewPixels=st(e.previewPixels,t,`${o} preview pixels`),e.decodedBytes=st(e.decodedBytes,n,`${o} decoded bytes`),e.previewPixels>i.maxResourcePreviewPixels)throw new Error(`${o} exceeds the ${i.maxResourcePreviewPixels}-pixel preview safety limit.`);if(e.decodedBytes>i.maxDecodedBytes)throw new Error(`${o} exceeds the ${i.maxDecodedBytes}-byte decoded-data safety limit.`)},Ap=(e,t,n,i)=>{let o=e.u8(t,`${i} length`);if(o>n.maxResourceNameCodeUnits)throw new Error(`${i} exceeds the ${n.maxResourceNameCodeUnits}-byte safety limit.`);let r=e.ascii(o,t,i),s=r.length;for(;s>0&&r.charCodeAt(s-1)===0;)s-=1;return r.slice(0,s)},kp=(e,t,n,i,o,r)=>{let s=Array.from({length:i},(l,c)=>e.u16(t,`${r} row ${c} length`)),a=o?new Uint8Array(_o(n,i,`${r} pixels`)):void 0;for(let l=0;l<i;l+=1){let c=st(e.offset,s[l],`${r} row ${l} end`);if(c>t)throw new Error(`${r} compressed row ${l} is truncated.`);let d=0;for(;e.offset<c;){let u=e.u8(c,`${r} PackBits header`);if(u<=127){let f=u+1,h=e.slice(f,c,`${r} PackBits literal`);if(d+f>n)throw new Error(`${r} row ${l} expands beyond its declared width.`);a&&a.set(h,l*n+d),d+=f}else if(u>=129){let f=257-u,h=e.u8(c,`${r} PackBits repeat value`);if(d+f>n)throw new Error(`${r} row ${l} expands beyond its declared width.`);a?.fill(h,l*n+d,l*n+d+f),d+=f}}if(d!==n)throw new Error(`${r} row ${l} expands to ${d} instead of ${n} pixels.`)}if(e.offset!==t)throw new Error(`${r} has trailing compressed bytes.`);return a},Ip=(e,t,n,i,o,r,s)=>{let a=_o(n,i,`${s} pixels`);if(o===0){if(e.offset+a!==t)throw new Error(`${s} raw byte length does not match its dimensions.`);return r?Uint8Array.from(e.slice(a,t,s)):(e.skip(a,t,s),void 0)}if(o===1)return kp(e,t,n,i,r,s);throw new Error(`${s} uses unsupported compression mode ${o}.`)},cd=(e,t,n,i,o,r,s,a)=>{for(let l=0;l<i.height;l+=1)for(let c=0;c<i.width;c+=1){let d=l*i.width+c,u=((i.top-t.top+l)*t.width+i.left-t.left+c)*4,f=n[d];r===1&&o===0?(e[u]=f,e[u+1]=f,e[u+2]=f):r===2&&o===0&&s?(e[u]=s[f*3],e[u+1]=s[f*3+1],e[u+2]=s[f*3+2],a&&(a[(i.top-t.top+l)*t.width+i.left-t.left+c]=f)):e[u+o]=f}},pd=(e,t,n,i,o,r)=>{if(e.u32(t,`PAT pattern ${r} version`)!==1)throw new Error(`PAT pattern ${r} uses an unsupported record version.`);let s=e.u32(t,`PAT pattern ${r} color mode`);if(s!==1&&s!==2&&s!==3)throw new Error(`PAT pattern ${r} uses unsupported color mode ${s}; only 8-bit grayscale, indexed, and RGB tiles are decoded.`);let a=e.i16(t,`PAT pattern ${r} vertical value`),l=e.i16(t,`PAT pattern ${r} horizontal value`),c=ld(e,t,n,`PAT pattern ${r} name`),d=Ap(e,t,n,`PAT pattern ${r} id`);if(!d)throw new Error(`PAT pattern ${r} has an empty unique id.`);let u,f=65535;if(s===2&&(u=Uint8Array.from(e.slice(768,t,`PAT pattern ${r} indexed palette`)),o?(e.u16(t,`PAT pattern ${r} indexed color count`),f=e.u16(t,`PAT pattern ${r} transparent palette index`)):e.skip(4,t,`PAT pattern ${r} indexed footer`)),e.u32(t,`PAT pattern ${r} VMAL version`)!==3)throw new Error(`PAT pattern ${r} uses an unsupported VMAL version.`);let h=e.u32(t,`PAT pattern ${r} VMAL length`),p=st(e.offset,h,`PAT pattern ${r} VMAL end`);if(p>t)throw new Error(`PAT pattern ${r} VMAL is truncated.`);let S=e.i32(p,`PAT pattern ${r} top`),m=e.i32(p,`PAT pattern ${r} left`),g=e.i32(p,`PAT pattern ${r} bottom`),v=e.i32(p,`PAT pattern ${r} right`),x=v-m,_=g-S,I=e.u32(p,`PAT pattern ${r} channel count`);if(x<=0||_<=0||x>n.maxCanvasDimension||_>n.maxCanvasDimension)throw new Error(`PAT pattern ${r} dimensions exceed the ${n.maxCanvasDimension}-pixel side safety limit.`);if(o&&(l!==x||a!==_))throw new Error(`PAT pattern ${r} header dimensions disagree with its decoded VMAL bounds.`);if(I>64)throw new Error(`PAT pattern ${r} channel count exceeds the 64-channel safety limit.`);let P=_o(x,_,`PAT pattern ${r} pixels`);hd(i,P,_o(P,4,`PAT pattern ${r} RGBA bytes`),n,`PAT pattern ${r}`);let k=new Uint8Array(P*4);for(let T=3;T<k.length;T+=4)k[T]=255;let E=s===2?new Uint8Array(P):void 0,O=s===3?3:1,U=new Set,M=!1,le={top:S,left:m,width:x,height:_};for(let T=0;T<I+2;T+=1){let W=e.u32(p,`PAT pattern ${r} channel ${T} presence`);if(!W)continue;if(W!==1)throw new Error(`PAT pattern ${r} channel ${T} has an invalid presence marker.`);let te=e.u32(p,`PAT pattern ${r} channel ${T} length`);if(te<23)throw new Error(`PAT pattern ${r} channel ${T} is shorter than its header.`);let ne=st(e.offset,te,`PAT pattern ${r} channel ${T} end`);if(ne>p)throw new Error(`PAT pattern ${r} channel ${T} is truncated.`);let Pe=e.u32(ne,`PAT pattern ${r} channel ${T} depth`),Ee=e.i32(ne,`PAT pattern ${r} channel ${T} top`),j=e.i32(ne,`PAT pattern ${r} channel ${T} left`),R=e.i32(ne,`PAT pattern ${r} channel ${T} bottom`),V=e.i32(ne,`PAT pattern ${r} channel ${T} right`),fe=e.u16(ne,`PAT pattern ${r} channel ${T} depth copy`),ie=e.u8(ne,`PAT pattern ${r} channel ${T} compression`);if(Pe!==8||fe!==8)throw new Error(`PAT pattern ${r} channel ${T} is not 8-bit.`);if(Ee<S||j<m||R>g||V>v||R<=Ee||V<=j)throw new Error(`PAT pattern ${r} channel ${T} bounds are outside the tile.`);let he=V-j,we=R-Ee,$e=T<O,at=T===I+1,yi=Ip(e,ne,he,we,ie,$e||at,`PAT pattern ${r} channel ${T}`);yi&&$e?(U.add(T),cd(k,le,yi,{top:Ee,left:j,width:he,height:we},T,s,u,E)):yi&&at&&(M=!0,cd(k,le,yi,{top:Ee,left:j,width:he,height:we},3,s))}if(e.offset!==p)throw new Error(`PAT pattern ${r} VMAL has trailing or unparsed bytes.`);if(U.size!==O)throw new Error(`PAT pattern ${r} is missing one or more required color planes.`);if(s===2&&!M&&f<256&&E)for(let T=0;T<E.length;T+=1)E[T]===f&&(k[T*4+3]=0);let me=!1;for(let T=0;T<P;T+=1)if(k[T*4+3]!==255){me=!0;break}return{name:c||`Pattern ${r}`,id:d,width:x,height:_,colorMode:s===1?"grayscale":s===2?"indexed":"rgb",rgba:k,hasTransparency:me}},Dp=(e,t,n,i)=>{let o=[];for(;e.offset<t;){if(o.length>=n.maxResourceItems)throw new Error(`Embedded pattern count exceeds the ${n.maxResourceItems}-item safety limit.`);let r=e.u32(t,"Embedded PAT record length"),s=st(e.offset,r,"Embedded PAT record end"),a=st(e.offset,ud(r),"Embedded PAT padded end");if(!r||s>t||a>t)throw new Error("Embedded PAT record is truncated.");if(o.push(pd(e,s,n,i,!1,o.length+1)),e.offset!==s)throw new Error(`Embedded PAT pattern ${o.length} length does not match its decoded payload.`);for(let l of e.slice(a-s,a,"Embedded PAT padding"))if(l!==0)throw new Error(`Embedded PAT pattern ${o.length} has non-zero alignment bytes.`)}if(e.offset!==t)throw new Error("Embedded PAT block length is invalid.");return o},Cp=(e,t)=>{is(e,t,"PAT");let n=new Rn(e);if(n.ascii(4,n.length,"PAT signature")!=="8BPT")throw new Error("Invalid Photoshop PAT signature.");if(n.u16(n.length,"PAT version")!==1)throw new Error("Unsupported Photoshop PAT version; expected version 1.");let i=n.u32(n.length,"PAT pattern count");if(!i||i>t.maxResourceItems)throw new Error(`PAT pattern count must be between 1 and ${t.maxResourceItems}.`);let o={previewPixels:0,decodedBytes:0},r=Array.from({length:i},(s,a)=>pd(n,n.length,t,o,!0,a+1));return rs(n,t,pi(t),r.length),{format:"pat",version:"1",engine:"file-viewer-native",fidelity:"decoded-pattern-tile",patterns:r,limitations:["The renderer decodes Photoshop PAT v1 grayscale, indexed, and RGB tiles with 8-bit raw or PackBits planes; CMYK, Lab, multichannel, 16-bit, and 32-bit pattern records are rejected.","Tile pixels and transparency are preserved. Photoshop pattern transforms, fills, layer blending, and color-management behavior are outside a standalone PAT library."]}},Be=(e,t,n,i)=>{if(!Number.isFinite(e)||e<t||e>n)throw new Error(`${i} is outside ${t}\u2026${n}.`);return e},Te=e=>Math.max(0,Math.min(255,Math.round(e))),Pp=(e,t,n)=>{let i=(e%360+360)%360/60,o=Math.max(0,Math.min(1,t/100)),r=Math.max(0,Math.min(1,n/100)),s=r*o,a=s*(1-Math.abs(i%2-1)),l=r-s;return(i<1?[s,a,0]:i<2?[a,s,0]:i<3?[0,s,a]:i<4?[0,a,s]:i<5?[a,0,s]:[s,0,a]).map(d=>Te((d+l)*255))},Ep=(e,t,n)=>{let i=.20689655172413793,o=h=>h>i?h**3:3*i*i*(h-4/29),r=(e+16)/116,s=.96422*o(r+t/500),a=o(r),l=.82521*o(r-n/200),c=.9555766*s-.0230393*a+.0631636*l,d=-.0282895*s+1.0099416*a+.0210077*l,u=.0122982*s-.020483*a+1.3299098*l;return[3.2404542*c-1.5371385*d-.4985314*u,-.969266*c+1.8760108*d+.041556*u,.0556434*c-.2040259*d+1.0572252*u].map(h=>Te((h<=.0031308?12.92*h:1.055*Math.max(0,h)**(1/2.4)-.055)*255))},Fp=e=>{if(!e)return{rgb:[0,0,0],colorSpace:"unknown"};if(e.classId==="RGBC")return{rgb:[Te(ye(e,"Rd ")),Te(ye(e,"Grn ")),Te(ye(e,"Bl "))],colorSpace:"rgb"};if(e.classId==="Grsc"){let t=Te(Be(ye(e,"Gry "),0,100,"GRD gray")*2.55);return{rgb:[t,t,t],colorSpace:"gray"}}if(e.classId==="HSBC"||e.classId==="HSBl")return{rgb:Pp(ye(e,"H "),ye(e,"Strt"),ye(e,"Brgh")),colorSpace:"hsb"};if(e.classId==="LbCl")return{rgb:Ep(ye(e,"Lmnc"),ye(e,"A "),ye(e,"B ")),colorSpace:"lab"};if(e.classId==="CMYC"){let t=Be(ye(e,"Cyn "),0,100,"GRD cyan")/100,n=Be(ye(e,"Mgnt"),0,100,"GRD magenta")/100,i=Be(ye(e,"Ylw "),0,100,"GRD yellow")/100,o=Be(ye(e,"Blck"),0,100,"GRD black")/100;return{rgb:[Te((1-t)*(1-o)*255),Te((1-n)*(1-o)*255),Te((1-i)*(1-o)*255)],colorSpace:"cmyk"}}return{rgb:[0,0,0],colorSpace:"unknown"}},ns=(e,t,n)=>{if(!e||e.type!=="list")throw new Error(`${t} list is missing.`);if(e.value.length>n)throw new Error(`${t} exceeds the ${n}-item safety limit.`);return e.value.map((i,o)=>{if(i.type!=="object")throw new Error(`${t} item ${o+1} is not an object.`);return i.value})},Op=(e,t)=>e<=t?t<=0?.5:.5*e/t:t>=1?.5:.5+.5*(e-t)/(1-t),dd=(e,t,n)=>{if(t<=e[0].location)return e[0].value;if(t>=e.at(-1).location)return e.at(-1).value;let i=e.findIndex(l=>l.location>=t),o=e[i-1],r=e[i],s=Math.max(1e-9,r.location-o.location),a=Op((t-o.location)/s,Math.max(.001,Math.min(.999,o.midpoint)));return Array.from({length:n},(l,c)=>o.value[c]+(r.value[c]-o.value[c])*a)},Lp=(e,t)=>{let n=new Uint8Array(1024),i=e.map(r=>({location:r.location,midpoint:r.midpoint,value:r.rgb})),o=t.map(r=>({location:r.location,midpoint:r.midpoint,value:[r.opacity]}));for(let r=0;r<256;r+=1){let s=r/255,a=dd(i,s,3),l=dd(o,s,1)[0];n.set([Te(a[0]),Te(a[1]),Te(a[2]),Te(l*255)],r*4)}return n},fd=(e,t,n)=>{let i=Le(e,t),o=i?.type==="list"?i.value:[];return[0,1,2,3].map(r=>{let s=o[r];return s?.type==="integer"?Be(s.value,0,100,`GRD ${t} range`):n})},Bp=(e,t,n,i)=>{let o=new Uint8Array(1024),r=e>>>0||2654435769,s=()=>(r^=r<<13,r^=r>>>17,r^=r<<5,(r>>>0)/4294967295);for(let a=0;a<256;a+=1){for(let l=0;l<3;l+=1)o[a*4+l]=Te((t[l]+s()*(n[l]-t[l]))*2.55);o[a*4+3]=i?Te((t[3]+s()*(n[3]-t[3]))*2.55):255}return o},os=e=>{if(!e.startsWith("$$$/"))return e;let t=e.lastIndexOf("=");if(t>=0&&t+1<e.length)return e.slice(t+1);let n=e.lastIndexOf("/");return n>=0?e.slice(n+1):e},Up=(e,t,n,i)=>{hd(i,256,1024,n,`GRD gradient ${t}`);let o=mi(e,"Grad")||e,r=os(un(o,"Nm ")||`Gradient ${t}`),s=gi(o,"GrdF")||"CstS";if(s==="ClNs"){let u=fd(o,"Mnm ",0),f=fd(o,"Mxm ",100);f.forEach((v,x)=>{if(v<u[x])throw new Error(`${r}: noise maximum is below its minimum.`)});let h=Be(ye(o,"RndS",0),0,4294967295,`${r} random seed`),p=Be(ye(o,"Smth",2048),0,4096,`${r} roughness`),S=gi(o,"ClrS")||"RGBC",m=S==="HSBl"||S==="HSBC"?"hsb":S==="LbCl"||S==="LABC"?"lab":"rgb",g=bi(o,"ShTr",!1);return{name:r,definition:{form:"noise",seed:h,roughness:p,colorModel:m,restrictColors:bi(o,"VctC",!0),addTransparency:g,minimum:u,maximum:f},previewRgba:Bp(h,u,f,g)}}if(s!=="CstS")throw new Error(`${r}: unsupported GRD gradient form ${JSON.stringify(s)}.`);let l=ns(Le(o,"Clrs"),`${r} color stops`,Math.min(256,n.maxResourceItems)).map((u,f)=>{let h=Be(ye(u,"Lctn")/4096,0,1,`${r} color stop ${f+1} location`),p=Be(ye(u,"Mdpn",50)/100,0,1,`${r} color stop ${f+1} midpoint`),S=gi(u,"Type")||"UsrS",m=S==="FrgC"?"foreground":S==="BckC"?"background":"user",g=m==="foreground"?{rgb:[0,0,0],colorSpace:"unknown"}:m==="background"?{rgb:[255,255,255],colorSpace:"unknown"}:Fp(mi(u,"Clr "));if(m==="user"&&g.colorSpace==="unknown")throw new Error(`${r} color stop ${f+1} uses an unsupported color object.`);return{location:h,midpoint:p,kind:m,...g}}).sort((u,f)=>u.location-f.location);if(l.length<2)throw new Error(`${r} has fewer than two usable color stops.`);let c=Le(o,"Trns"),d=c?ns(c,`${r} transparency stops`,Math.min(256,n.maxResourceItems)).map((u,f)=>({location:Be(ye(u,"Lctn")/4096,0,1,`${r} alpha stop ${f+1} location`),midpoint:Be(ye(u,"Mdpn",50)/100,0,1,`${r} alpha stop ${f+1} midpoint`),opacity:Be(ye(u,"Opct",100)/100,0,1,`${r} alpha stop ${f+1} opacity`)})).sort((u,f)=>u.location-f.location):[{location:0,midpoint:.5,opacity:1},{location:1,midpoint:.5,opacity:1}];if(!d.length)throw new Error(`${r} declares an empty transparency-stop list.`);return{name:r,definition:{form:"solid",smoothness:Be(ye(o,"Intr",4096),0,4096,`${r} smoothness`),colorStops:l,alphaStops:d},previewRgba:Lp(l,d)}},Rp=(e,t)=>{let n=Le(e,"hierarchy");if(!n||n.type!=="list")return Array.from({length:t},()=>"");let i=Array.from({length:t},()=>""),o=[],r=0;for(let s of n.value)s.type==="object"&&(s.value.classId==="Grup"?o.push(os(un(s.value,"Nm ")||"")):s.value.classId==="groupEnd"?o.pop():s.value.classId==="preset"&&r<i.length&&(i[r++]=o.filter(Boolean).join(" / ")));return i},rs=(e,t,n,i)=>{if(!e.remaining)return Array.from({length:i},()=>"");if(e.remaining<12||e.ascii(4,e.length,"Adobe hierarchy signature")!=="8BIM"||e.ascii(4,e.length,"Adobe hierarchy key")!=="phry")throw new Error("Adobe preset file has unrecognized trailing data.");let o=e.u32(e.length,"Adobe hierarchy length"),r=st(e.offset,o,"Adobe hierarchy end");if(r>e.length)throw new Error("Adobe hierarchy data is truncated.");if(e.u32(r,"Adobe hierarchy descriptor version")!==16)throw new Error("Unsupported Adobe hierarchy descriptor version.");let s=fn(e,r,t,n);if(e.offset!==r)throw new Error("Adobe hierarchy descriptor has trailing bytes.");if(e.remaining)throw new Error("Adobe preset file has bytes after its hierarchy data.");return Rp(s,i)},Mp=(e,t)=>{is(e,t,"GRD");let n=new Rn(e);if(n.ascii(4,n.length,"GRD signature")!=="8BGR")throw new Error("Invalid Photoshop GRD signature.");if(n.u16(n.length,"GRD version")!==5)throw new Error("Unsupported Photoshop GRD version; only descriptor-based version 5 is decoded.");if(n.u32(n.length,"GRD descriptor version")!==16)throw new Error("Unsupported GRD Action Descriptor version.");let i=pi(t),o=fn(n,n.length,t,i),r={previewPixels:0,decodedBytes:0},s=ns(Le(o,"GrdL"),"GRD gradients",t.maxResourceItems).map((l,c)=>Up(l,c+1,t,r));if(!s.length)throw new Error("GRD file contains no gradients.");let a=rs(n,t,i,s.length);return s.forEach((l,c)=>{a[c]&&(l.folder=a[c])}),{format:"grd",version:"5",engine:"file-viewer-native",fidelity:"solid-stop-preview-noise-approximation",gradients:s,limitations:["Solid-gradient stops, midpoint positions, transparency, names, and folders are preserved. Foreground/background stops use black/white because their final colors depend on Photoshop application state.","Noise-gradient metadata is preserved, but the thumbnail is a deterministic approximation; Photoshop does not publish its exact noise synthesis and color-management pipeline."]}},Tp=[{single:"DrSh",multi:"dropShadowMulti",kind:"drop-shadow"},{single:"IrSh",multi:"innerShadowMulti",kind:"inner-shadow"},{single:"OrGl",multi:"outerGlowMulti",kind:"outer-glow"},{single:"IrGl",multi:"innerGlowMulti",kind:"inner-glow"},{single:"ChFX",multi:"chromeFXMulti",kind:"satin"},{single:"ebbl",multi:"bevelEmbossMulti",kind:"bevel-emboss"},{single:"SoFi",multi:"solidFillMulti",kind:"color-overlay"},{single:"GrFl",multi:"gradientFillMulti",kind:"gradient-overlay"},{single:"patternFill",multi:"patternFillMulti",kind:"pattern-overlay"},{single:"FrFX",multi:"frameFXMulti",kind:"stroke"}],jp=e=>{if(!e)return[];let t=[];for(let n of Tp){let i=Le(e,n.single),o=Le(e,n.multi),r=[];if(i?.type==="object"&&r.push(i.value),o?.type==="list")for(let s of o.value)s.type==="object"&&r.push(s.value);r.length&&t.push({kind:n.kind,enabled:r.some(s=>bi(s,"enab",!0)),instances:r.length})}return t},xo=(e,t)=>{if(e.type==="object"){t(e.value);for(let n of e.value.entries.values())xo(n,t)}else if(e.type==="list")e.value.forEach(n=>xo(n,t));else if(e.type==="object-array"){t(e.value);for(let n of e.value.entries.values())xo(n,t)}},zp=e=>{let t=new Map;if(!e)return[];let n=i=>{if(i.classId!=="Ptrn"&&!i.entries.has("Idnt"))return;let o=un(i,"Idnt")||"",r=un(i,"Nm ")||"";o&&t.set(o,{name:r,id:o})};n(e);for(let i of e.entries.values())xo(i,n);return[...t.values()]},$p=(e,t,n,i,o)=>{if(e.u32(t,`ASL style ${o} identity descriptor version`)!==16)throw new Error(`ASL style ${o} uses an unsupported identity descriptor version.`);let r=fn(e,t,n,i),s=os(un(r,"Nm ")||""),a=un(r,"Idnt")||"";if(!s||!a)throw new Error(`ASL style ${o} is missing its name or unique id.`);if(e.u32(t,`ASL style ${o} effect descriptor version`)!==16)throw new Error(`ASL style ${o} uses an unsupported effect descriptor version.`);let l=fn(e,t,n,i),c=mi(l,"Lefx"),d=mi(l,"blendOptions"),u=Le(d,"Blnd"),f={name:s,id:a,effectsVisible:bi(c,"masterFXSwitch",!0),effects:jp(c),blendIfChannels:u?.type==="list"?u.value.length:0,referencedPatterns:zp(c)},h=gi(d,"Md ");h&&(f.blendMode=h);let p=Le(d,"Opct");(p?.type==="unit-double"||p?.type==="double"||p?.type==="integer")&&(f.opacity=Be(p.value,0,100,`${s} opacity`));let S=Le(d,"fillOpacity");if((S?.type==="unit-double"||S?.type==="double"||S?.type==="integer")&&(f.fillOpacity=Be(S.value,0,100,`${s} fill opacity`)),!f.effects.length&&!d)throw new Error(`${s} contains no supported effect graph or blending options.`);return f},Np=(e,t)=>{is(e,t,"ASL");let n=new Rn(e);if(n.u16(n.length,"ASL version")!==2)throw new Error("Unsupported Photoshop ASL version; expected version 2.");if(n.ascii(4,n.length,"ASL signature")!=="8BSL")throw new Error("Invalid Photoshop ASL signature.");if(n.u16(n.length,"ASL pattern section version")!==3)throw new Error("Unsupported ASL embedded-pattern section version.");let i=n.u32(n.length,"ASL embedded-pattern section length"),o=st(n.offset,i,"ASL embedded-pattern section end");if(o>n.length)throw new Error("ASL embedded-pattern section is truncated.");let s=i?Dp(n,o,t,{previewPixels:0,decodedBytes:0}):[],a=n.u32(n.length,"ASL style count");if(!a||a>t.maxResourceItems)throw new Error(`ASL style count must be between 1 and ${t.maxResourceItems}.`);let l=pi(t),c=[];for(let d=0;d<a;d+=1){let u=n.u32(n.length,`ASL style ${d+1} length`),f=st(n.offset,u,`ASL style ${d+1} end`),h=st(n.offset,ud(u),`ASL style ${d+1} padded end`);if(!u||f>n.length||h>n.length)throw new Error(`ASL style ${d+1} record is truncated.`);c.push($p(n,f,t,l,d+1));for(let p of n.slice(f-n.offset,f,`ASL style ${d+1} padding`))if(p!==0)throw new Error(`ASL style ${d+1} has unparsed non-zero bytes.`);for(let p of n.slice(h-f,h,`ASL style ${d+1} alignment`))if(p!==0)throw new Error(`ASL style ${d+1} has non-zero alignment bytes.`)}return rs(n,t,l,c.length),{format:"asl",version:"2",engine:"file-viewer-native",fidelity:"effect-graph-metadata-preview",styles:c,patterns:s,limitations:["Names, ids, effect graph presence, multi-effect counts, blending options, pattern references, and embedded pattern tiles are decoded. The preview does not claim Photoshop layer rasterization.","Exact layer-style appearance depends on Photoshop contours, blend modes, global light, color management, target-layer pixels, and undocumented renderer behavior; unsupported descriptor value types are rejected rather than ignored."]}},md=(e,t,n)=>{if(_p(n),t==="pat")return Cp(e,n);if(t==="grd")return Mp(e,n);if(t==="asl")return Np(e,n);throw new Error(`Unsupported Adobe preset format ${JSON.stringify(t)}.`)};var Ao=self,gd=e=>e.format==="abr"?[...e.samples.map(t=>t.alpha.buffer),...e.patterns.map(t=>t.rgba.buffer)].filter(t=>t instanceof ArrayBuffer):e.format==="pat"?e.patterns.map(t=>t.rgba.buffer).filter(t=>t instanceof ArrayBuffer):e.format==="grd"?e.gradients.map(t=>t.previewRgba.buffer).filter(t=>t instanceof ArrayBuffer):e.format==="asl"?e.patterns.map(t=>t.rgba.buffer).filter(t=>t instanceof ArrayBuffer):[];Ao.addEventListener("message",e=>{let t=e.data;try{if(!t||t.type!=="parse"&&t.type!=="parse-preset")throw new Error("Invalid Adobe resource Worker request.");if(t.type==="parse-preset"){let n=md(t.buffer,t.format,t.limits),i={id:t.id,ok:!0,result:n};Ao.postMessage(i,gd(n))}else{let n=rd(t.buffer,t.format,t.limits),i={id:t.id,ok:!0,result:n};Ao.postMessage(i,gd(n))}}catch(n){let i={id:t?.id??0,ok:!1,error:{name:n instanceof Error?n.name:"Error",message:n instanceof Error?n.message:String(n)}};Ao.postMessage(i)}});