ag-psd 27.0.0 → 28.0.1

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.
Files changed (47) hide show
  1. package/.v8-cache/v22.13.1-x64-00250a7c/4511bacf +0 -0
  2. package/.v8-cache/v22.13.1-x64-00250a7c/a7e80865 +0 -0
  3. package/.v8-cache/v22.13.1-x64-00250a7c/b3c2fab7 +0 -0
  4. package/.v8-cache/v22.13.1-x64-00250a7c/c314aece +0 -0
  5. package/.v8-cache/v22.13.1-x64-00250a7c/cfc49f4f +0 -0
  6. package/.v8-cache/v22.13.1-x64-00250a7c/e03e2acd +0 -0
  7. package/CHANGELOG.md +3 -0
  8. package/README_PSD.md +3 -0
  9. package/dist/additionalInfo.d.ts +2 -1
  10. package/dist/additionalInfo.js +4 -4
  11. package/dist/additionalInfo.js.map +1 -1
  12. package/dist/bundle.js +54 -29
  13. package/dist/descriptor.js +1 -1
  14. package/dist/descriptor.js.map +1 -1
  15. package/dist/engineData.js +9 -4
  16. package/dist/engineData.js.map +1 -1
  17. package/dist/imageResources.d.ts +7 -3
  18. package/dist/imageResources.js.map +1 -1
  19. package/dist/psd.d.ts +2 -2
  20. package/dist/psdReader.d.ts +3 -2
  21. package/dist/psdReader.js +30 -12
  22. package/dist/psdReader.js.map +1 -1
  23. package/dist/psdWriter.js +10 -8
  24. package/dist/psdWriter.js.map +1 -1
  25. package/dist-es/additionalInfo.d.ts +2 -1
  26. package/dist-es/additionalInfo.js +4 -4
  27. package/dist-es/additionalInfo.js.map +1 -1
  28. package/dist-es/descriptor.js +1 -1
  29. package/dist-es/descriptor.js.map +1 -1
  30. package/dist-es/engineData.js +9 -4
  31. package/dist-es/engineData.js.map +1 -1
  32. package/dist-es/imageResources.d.ts +7 -3
  33. package/dist-es/imageResources.js.map +1 -1
  34. package/dist-es/psd.d.ts +2 -2
  35. package/dist-es/psdReader.d.ts +3 -2
  36. package/dist-es/psdReader.js +30 -12
  37. package/dist-es/psdReader.js.map +1 -1
  38. package/dist-es/psdWriter.js +10 -8
  39. package/dist-es/psdWriter.js.map +1 -1
  40. package/package.json +1 -2
  41. package/src/additionalInfo.ts +6 -5
  42. package/src/descriptor.ts +1 -1
  43. package/src/engineData.ts +10 -4
  44. package/src/imageResources.ts +11 -6
  45. package/src/psd.ts +2 -2
  46. package/src/psdReader.ts +23 -14
  47. package/src/psdWriter.ts +14 -12
@@ -187,10 +187,10 @@ export function writePsd(writer, psd, options) {
187
187
  if (bitsPerChannel !== 8)
188
188
  throw new Error('bitsPerChannel other than 8 are not supported for writing');
189
189
  verifyBitCount(psd);
190
- var imageResources = psd.imageResources || {};
190
+ var imageResources = __assign({}, psd.imageResources);
191
191
  var opt = __assign(__assign({}, options), { layerIds: new Set(), layerToId: new Map() });
192
192
  if (opt.generateThumbnail) {
193
- imageResources = __assign(__assign({}, imageResources), { thumbnail: createThumbnail(psd) });
193
+ imageResources.thumbnail = createThumbnail(psd);
194
194
  }
195
195
  var imageData = psd.imageData;
196
196
  if (!imageData && psd.canvas) {
@@ -223,7 +223,13 @@ export function writePsd(writer, psd, options) {
223
223
  }
224
224
  // TODO: other data?
225
225
  });
226
+ var layers = [];
227
+ addChildren(layers, psd.children);
228
+ if (!layers.length)
229
+ layers.push({});
226
230
  // image resources
231
+ imageResources.layersGroup = layers.map(function (l) { return l.linkGroup || 0; });
232
+ imageResources.layerGroupsEnabledId = layers.map(function (l) { return l.linkGroupEnabled == false ? 0 : 1; });
227
233
  writeSection(writer, 1, function () {
228
234
  var _loop_1 = function (handler) {
229
235
  var has = handler.has(imageResources);
@@ -245,7 +251,7 @@ export function writePsd(writer, psd, options) {
245
251
  });
246
252
  // layer and mask info
247
253
  writeSection(writer, 2, function () {
248
- writeLayerInfo(writer, psd, globalAlpha, opt);
254
+ writeLayerInfo(writer, layers, psd, globalAlpha, opt);
249
255
  writeGlobalLayerMaskInfo(writer, psd.globalLayerMaskInfo);
250
256
  writeAdditionalLayerInfo(writer, psd, psd, opt);
251
257
  }, undefined, !!opt.psb);
@@ -280,13 +286,9 @@ export function writePsd(writer, psd, options) {
280
286
  writeBytes(writer, writeDataRLE(writer.tempBuffer, data, channels, !!options.psb));
281
287
  }
282
288
  }
283
- function writeLayerInfo(writer, psd, globalAlpha, options) {
289
+ function writeLayerInfo(writer, layers, psd, globalAlpha, options) {
284
290
  writeSection(writer, 4, function () {
285
291
  var _a;
286
- var layers = [];
287
- addChildren(layers, psd.children);
288
- if (!layers.length)
289
- layers.push({});
290
292
  writeInt16(writer, globalAlpha ? -layers.length : layers.length);
291
293
  var layersData = layers.map(function (l, i) { return getChannels(writer.tempBuffer, l, i === 0, options); });
292
294
  var _loop_3 = function (layerData) {
@@ -1 +1 @@
1
- {"version":3,"file":"psdWriter.js","sourceRoot":"../src/","sources":["psdWriter.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAiC,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAA0B,KAAK,EAAkD,uBAAuB,EAAE,cAAc,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC5T,OAAO,EAAwB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AASpD,MAAM,UAAU,YAAY,CAAC,IAAW;IAAX,qBAAA,EAAA,WAAW;IACvC,IAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,IAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,IAAM,MAAM,GAAG,CAAC,CAAC;IACjB,OAAO,EAAE,MAAM,QAAA,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACtD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,KAAa;IAC1D,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,KAAa;IAC1D,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAiB,EAAE,KAAa;IAC3D,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,KAAa;IAC7D,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,KAAa;IAC1D,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAiB,EAAE,KAAa;IAC5D,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAiB,EAAE,KAAa;IAC3D,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAiB,EAAE,KAAa;IAC5D,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAiB,EAAE,KAAa;IAC5D,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,KAAa;IACjE,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,KAAa;IACrE,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,MAA8B;IAC3E,IAAI,MAAM,EAAE;QACX,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,IAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;KAC/B;AACF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,KAAa;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACtB;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAiB,EAAE,SAAiB;IAClE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAAuB,SAAS,MAAG,CAAC,CAAC;IAEjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C;AACF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,IAAY,EAAE,KAAa;IAC/E,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAErD,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAChC,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,2CAA2C;QAC3C,UAAU,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1D;IAED,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE;QACxB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACtB;AACF,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAiB,EAAE,IAAY;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACxC;AACF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,MAAiB,EAAE,IAAY;IAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1C;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,IAAY;IACjE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,+BAA+B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,IAAY;IAC5E,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACxC;IAED,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAoB;IAApB,uBAAA,EAAA,WAAoB;IAChD,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAoB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;QAAvB,IAAM,KAAK,eAAA;QACf,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE;YAC9B,IAAA,KAAoB,kBAAkB,CAAC,KAAK,CAAC,EAA3C,KAAK,WAAA,EAAE,MAAM,YAA8B,CAAC;YACpD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;SACrD;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE;YACnB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;SACzD;KACD;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAiB,EAAE,KAAa,EAAE,IAAgB,EAAE,gBAAwB,EAAE,KAAa;IAAvC,iCAAA,EAAA,wBAAwB;IAAE,sBAAA,EAAA,aAAa;IACvH,IAAI,KAAK;QAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEvB,IAAI,EAAE,CAAC;IAEP,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;IACxC,IAAI,GAAG,GAAG,MAAM,CAAC;IAEjB,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE;QAC3B,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtB,GAAG,EAAE,CAAC;KACN;IAED,0CAA0C;IAC1C,0BAA0B;IAC1B,UAAU;IACV,IAAI;IAEJ,IAAI,gBAAgB,EAAE;QACrB,MAAM,GAAG,GAAG,CAAC;KACb;IAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB;;IAC1C,MAAA,MAAM,CAAC,QAAQ,0CAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;IAC9B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,WAAW,IAAI,IAAI,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE;QACnF,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACpD;IAED,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;QACpC,IAAM,MAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,MAAI,IAAI,CAAC,MAAI,CAAC,IAAI,YAAY,WAAW,IAAI,MAAI,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE;YACnF,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;SACzD;KACD;AACF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAiB,EAAE,GAAQ,EAAE,OAA0B;;IAA1B,wBAAA,EAAA,YAA0B;IAC/E,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAE1C,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;QAC5D,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAE5F,IAAM,cAAc,GAAG,MAAA,GAAG,CAAC,cAAc,mCAAI,CAAC,CAAC;IAE/C,IAAI,cAAc,KAAK,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAE9E,cAAc,CAAC,GAAG,CAAC,CAAC;IAEpB,IAAI,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;IAE9C,IAAM,GAAG,yBAA8B,OAAO,KAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,GAAE,CAAC;IAE5F,IAAI,GAAG,CAAC,iBAAiB,EAAE;QAC1B,cAAc,yBAAQ,cAAc,KAAE,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,GAAE,CAAC;KACxE;IAED,IAAI,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAE9B,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE;QAC7B,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACjG;IAED,IAAI,SAAS,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC;QAClF,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAExE,IAAM,WAAW,GAAG,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvD,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACnH,MAAM,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;IAElD,SAAS;IACT,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;IACpD,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtB,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;IACrD,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,mBAAmB;IACxD,WAAW,CAAC,MAAM,wBAAgB,CAAC,CAAC,uCAAuC;IAE3E,kBAAkB;IAClB,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;;QACvB,IAAI,GAAG,CAAC,OAAO,EAAE;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;gBAAE,UAAU,CAAC,MAAM,EAAE,CAAA,MAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,CAAC,KAAI,CAAC,CAAC,CAAC;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;gBAAE,UAAU,CAAC,MAAM,EAAE,CAAA,MAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,CAAC,KAAI,CAAC,CAAC,CAAC;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;gBAAE,UAAU,CAAC,MAAM,EAAE,CAAA,MAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,CAAC,KAAI,CAAC,CAAC,CAAC;SACzE;QAED,oBAAoB;IACrB,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;gCACZ,OAAO;YACjB,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACxC,IAAM,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oCAClD,CAAC;gBACT,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC/B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACjC,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,EAAxC,CAAwC,CAAC,CAAC;;YAJzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;wBAArB,CAAC;aAKT;;QARF,KAAsB,UAAgB,EAAhB,qCAAgB,EAAhB,8BAAgB,EAAhB,IAAgB;YAAjC,IAAM,OAAO,yBAAA;oBAAP,OAAO;SASjB;IACF,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;QACvB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QAC9C,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC1D,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEzB,aAAa;IACb,IAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,IAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACtD,IAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACzD,IAAM,IAAI,GAAc,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC;IAEpF,WAAW,CAAC,MAAM,oCAA4B,CAAC,CAAC,oEAAoE;IAEpH,IAAI,cAAc,IAAK,GAAW,CAAC,YAAY,EAAE;QAChD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,UAAU,CAAC,MAAM,EAAG,GAAW,CAAC,YAAY,CAAC,CAAC;KAC9C;SAAM;QACN,IAAI,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAE1H,wBAAwB;QACxB,IAAI,WAAW,EAAE;YAChB,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;gBACjC,IAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE;oBACzB,IAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;oBACnB,IAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACzB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBAC7B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBAC7B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;iBAC7B;aACD;SACD;QAED,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KACnF;AACF,CAAC;AAED,SAAS,cAAc,CAAC,MAAiB,EAAE,GAAQ,EAAE,WAAoB,EAAE,OAA6B;IACvG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;;QACvB,IAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjE,IAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,WAAW,CAAC,MAAM,CAAC,UAAW,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAApD,CAAoD,CAAC,CAAC;gCAGnF,SAAS;YACX,IAAA,KAAK,GAAyC,SAAS,MAAlD,EAAE,KAAG,GAAoC,SAAS,IAA7C,EAAE,IAAI,GAA8B,SAAS,KAAvC,EAAE,MAAM,GAAsB,SAAS,OAA/B,EAAE,KAAK,GAAe,SAAS,MAAxB,EAAE,QAAQ,GAAK,SAAS,SAAd,CAAe;YAEhE,UAAU,CAAC,MAAM,EAAE,KAAG,CAAC,CAAC;YACxB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3B,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1B,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAErC,KAAgB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;gBAArB,IAAM,CAAC,iBAAA;gBACX,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,OAAO,CAAC,GAAG;oBAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACxC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;aAC9B;YAED,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/B,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,SAAU,CAAC,IAAI,MAAM,CAAC,CAAC;YAClE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACtE,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3C,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,uEAAuE;YACzF,IAAI,KAAK,CAAC,qBAAqB;gBAAE,KAAK,IAAI,IAAI,CAAC;YAC/C,IAAI,KAAK,CAAC,MAAM;gBAAE,KAAK,IAAI,IAAI,CAAC;YAChC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,qCAA6B,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE;gBAC7H,KAAK,IAAI,IAAI,CAAC,CAAC,kDAAkD;aACjE;YACD,IAAI,KAAK,CAAC,WAAW;gBAAE,KAAK,IAAI,IAAI,CAAC;YAErC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1B,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YAChC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;gBACvB,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC7C,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACxC,iBAAiB,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;;QApCJ,gBAAgB;QAChB,KAAwB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU;YAA7B,IAAM,SAAS,mBAAA;oBAAT,SAAS;SAoCnB;QAED,2BAA2B;QAC3B,KAAwB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE;YAA/B,IAAM,SAAS,mBAAA;YACnB,KAAsB,UAAkB,EAAlB,KAAA,SAAS,CAAC,QAAQ,EAAlB,cAAkB,EAAlB,IAAkB,EAAE;gBAArC,IAAM,OAAO,SAAA;gBACjB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;gBAEzC,IAAI,OAAO,CAAC,MAAM,EAAE;oBACnB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;iBACnC;aACD;SACD;IACF,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAiB,EAAE,EAAyB,EAAE,SAA2B;QAApD,IAAI,UAAA,EAAE,QAAQ,cAAA;IAC9D,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;QACvB,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE/B,IAAI,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;QAEzC,IAAI,IAAI,EAAE;YACT,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;gBAAE,MAAM,sCAA8B,CAAC;YAC7E,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;gBAAE,MAAM,sCAA8B,CAAC;YAC7E,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;gBAAE,MAAM,wCAAgC,CAAC;YACjF,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;gBAAE,MAAM,wCAAgC,CAAC;YAEjF,IAAI,IAAI,CAAC,QAAQ;gBAAE,KAAK,4CAAoC,CAAC;YAC7D,IAAI,IAAI,CAAC,uBAAuB;gBAAE,KAAK,kDAA0C,CAAC;YAClF,IAAI,IAAI,CAAC,cAAc;gBAAE,KAAK,0DAAkD,CAAC;YACjF,IAAI,MAAM;gBAAE,KAAK,wDAA+C,CAAC;SACjE;QAED,IAAM,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,EAAqB,CAAC;QAClD,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/B,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAChC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAClC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACjC,UAAU,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;QACnD,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE1B,IAAI,QAAQ,EAAE;YACb,IAAI,QAAQ,CAAC,QAAQ;gBAAE,SAAS,4CAAoC,CAAC;YACrE,IAAI,QAAQ,CAAC,uBAAuB;gBAAE,SAAS,kDAA0C,CAAC;YAC1F,IAAI,QAAQ,CAAC,cAAc;gBAAE,SAAS,0DAAkD,CAAC;YAEzF,IAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAqB,CAAC;YACtD,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9B,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;YAC/C,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAC/B,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAChC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YAClC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;SACjC;QAED,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;gBAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;YACpG,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;gBAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACnF,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;gBAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;YACxG,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;gBAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACvF;QAED,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAiB,EAAE,KAAe;IAC9D,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAiB,EAAE,KAAY;IAChE,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;QACvB,IAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC;QAEpC,IAAI,MAAM,EAAE;YACX,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAC7D,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,mCAAmC,CAAC,CAAC;YAExE,KAAgB,UAAa,EAAb,KAAA,MAAM,CAAC,MAAM,EAAb,cAAa,EAAb,IAAa,EAAE;gBAA1B,IAAM,CAAC,SAAA;gBACX,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;gBAC3C,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;aACzC;SACD;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAiB,EAAE,IAAqC;IACzF,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;QACvB,IAAI,IAAI,EAAE;YACT,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC5C,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;YACzC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACtB;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAiB,EAAE,MAA2B,EAAE,GAAQ,EAAE,OAA6B;4BAC7G,OAAO;QACjB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAEtB,IAAI,GAAG,KAAK,MAAM,IAAI,OAAO,CAAC,oBAAoB;8BAAW;QAC7D,IAAI,GAAG,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG;YAAE,GAAG,GAAG,MAAM,CAAC;QAEhD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACxB,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,IAAM,gBAAgB,GAAG,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC;YAChH,IAAM,SAAS,GAAG,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;gBACvG,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;gBACxG,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC;YAEhK,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChD,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5B,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAC5B;;IAlBF,KAAsB,UAAY,EAAZ,6BAAY,EAAZ,0BAAY,EAAZ,IAAY;QAA7B,IAAM,OAAO,qBAAA;gBAAP,OAAO;KAmBjB;AACF,CAAC;AACD,SAAS,WAAW,CAAC,MAAe,EAAE,QAA6B;IAClE,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,kCAAkC;IAClC,qDAAqD;IAErD,KAAgB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;QAArB,IAAM,CAAC,iBAAA;QACX,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAClH,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAExH,IAAI,CAAC,CAAC,QAAQ,EAAE;YACf,MAAM,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,gBAAgB;gBACtB,cAAc,EAAE;oBACf,IAAI,mDAA2C;iBAC/C;gBACD,8CAA8C;gBAC9C,sBAAsB;gBACtB,wBAAwB;gBACxB,eAAe;gBACf,wBAAwB;gBACxB,qBAAqB;gBACrB,oBAAoB;gBACpB,KAAK;gBACL,qBAAqB;gBACrB,iCAAiC;gBACjC,kCAAkC;aAClC,CAAC,CAAC;YACH,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,uBACP,CAAC,KACJ,SAAS,EAAE,CAAC,CAAC,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAClE,cAAc,EAAE;oBACf,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,yCAAiC,CAAC,sCAA8B;oBAC1F,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,SAAU,CAAC,IAAI,MAAM;oBAC1C,OAAO,EAAE,CAAC;iBACV,IACA,CAAC;SACH;aAAM;YACN,MAAM,CAAC,IAAI,cAAM,CAAC,EAAG,CAAC;SACtB;KACD;AACF,CAAC;AAED,SAAS,YAAY,CAAC,MAAiB,EAAE,IAAY;IACpD,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IAEzC,GAAG;QACF,SAAS,IAAI,CAAC,CAAC;KACf,QAAQ,IAAI,GAAG,SAAS,EAAE;IAE3B,IAAM,SAAS,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvB,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,MAAiB,EAAE,IAAY;IAClD,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;QACpC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3B;AACF,CAAC;AAED,SAAS,OAAO,CAAC,MAAiB,EAAE,IAAY;IAC/C,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,GAAQ;IAChC,IAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE;QAC3B,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QACnB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;KACjC;SAAM;QACN,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;QACpB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;KACnC;IAED,IAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IACzC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE5B,IAAI,GAAG,CAAC,SAAS,EAAE;QAClB,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1D;SAAM,IAAI,GAAG,CAAC,MAAM,EAAE;QACtB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACpC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,UAAsB,EAAE,SAA2B,EAAE,KAAY,EAAE,IAAmB,EAAE,OAAqB,EAAE,QAAiB;IACxJ,IAAI,GAAG,GAAI,IAAI,CAAC,GAAW,GAAG,CAAC,CAAC;IAChC,IAAI,IAAI,GAAI,IAAI,CAAC,IAAY,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,GAAI,IAAI,CAAC,KAAa,GAAG,CAAC,CAAC;IACpC,IAAI,MAAM,GAAI,IAAI,CAAC,MAAc,GAAG,CAAC,CAAC;IAClC,IAAA,KAAoB,kBAAkB,CAAC,IAAI,CAAC,EAA1C,KAAK,WAAA,EAAE,MAAM,YAA6B,CAAC;IACjD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAE/B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,MAAM,EAAE;QACjD,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;KAC5E;IAED,IAAI,KAAK,IAAI,MAAM,IAAI,SAAS,EAAE;QACjC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;QACrB,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;QAEtB,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SAChD;QAED,IAAI,MAAM,SAAY,CAAC;QACvB,IAAI,WAAW,SAAa,CAAC;QAE7B,IAAI,cAAc,IAAK,KAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;YACnF,MAAM,GAAI,KAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACtE,WAAW,GAAI,KAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;SACjG;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE;YAC5B,MAAM,GAAG,6BAA6B,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,WAAW,2CAAmC,CAAC;SAC/C;aAAM;YACN,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC;YAClE,WAAW,oCAA4B,CAAC;SACxC;QAED,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,iCAAwB,CAAC,4BAAmB,EAAE,WAAW,aAAA,EAAE,MAAM,QAAA,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;KAC/I;IAED,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAC,UAAsB,EAAE,KAAY,EAAE,UAAmB,EAAE,OAAqB;IACpG,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,IAAI;QAAE,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1F,IAAI,KAAK,CAAC,QAAQ;QAAE,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACjG,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,EAA4B;QAA1B,MAAM,YAAA,EAAE,SAAS,eAAA;IAC9C,OAAO,SAAS,IAAI,MAAM,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,aAAa,CAAC,IAAe,EAAE,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;IAC/F,IAAI,IAAI,CAAC,IAAI,YAAY,WAAW,IAAI,IAAI,CAAC,IAAI,YAAY,WAAW,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;KACrD;IAED,IAAM,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnD,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;IAC1B,IAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACpC;KACD;IAED,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAsB,EAAE,KAAY,EAAE,UAAmB,EAAE,OAAqB;;IACzG,IAAI,GAAG,GAAI,KAAK,CAAC,GAAW,GAAG,CAAC,CAAC;IACjC,IAAI,IAAI,GAAI,KAAK,CAAC,IAAY,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,GAAI,KAAK,CAAC,KAAa,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,GAAI,KAAK,CAAC,MAAc,GAAG,CAAC,CAAC;IACvC,IAAI,QAAQ,GAAkB;QAC7B,EAAE,SAAS,iCAAwB,EAAE,WAAW,6BAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE;QACrG,EAAE,SAAS,0BAAkB,EAAE,WAAW,6BAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE;QAC/F,EAAE,SAAS,0BAAkB,EAAE,WAAW,6BAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE;QAC/F,EAAE,SAAS,0BAAkB,EAAE,WAAW,6BAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE;KAC/F,CAAC;IACE,IAAA,KAAoB,kBAAkB,CAAC,KAAK,CAAC,EAA3C,KAAK,WAAA,EAAE,MAAM,YAA8B,CAAC;IAElD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;QAC5D,KAAK,GAAG,IAAI,CAAC;QACb,MAAM,GAAG,GAAG,CAAC;QACb,OAAO,EAAE,KAAK,OAAA,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;KACrD;IAED,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;IACrB,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IAEtB,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAO,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAEhG,IAAI,OAAO,CAAC,aAAa,EAAE;QAC1B,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YAC9G,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YACrB,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YACnB,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACzC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;YACrB,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;YAEtB,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,KAAK,OAAA,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;YAE5E,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACrE;KACD;IAED,IAAM,UAAU,GAAG;;;;KAIlB,CAAC;IAEF,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,KAAI,MAAC,KAAa,CAAC,YAAY,0CAAG,IAAI,CAAC,CAAA,CAAC,EAAE;QACnI,UAAU,CAAC,OAAO,iCAAwB,CAAC;KAC3C;IAED,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,SAAS;QAClC,IAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,2CAA2C;QAC9F,IAAI,MAAkB,CAAC;QACvB,IAAI,WAAwB,CAAC;QAE7B,IAAI,cAAc,IAAK,KAAa,CAAC,YAAY,EAAE;YAClD,+CAA+C;YAC/C,MAAM,GAAI,KAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAChD,WAAW,GAAI,KAAa,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;SAChE;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE;YAC5B,MAAM,GAAG,6BAA6B,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,WAAW,2CAAmC,CAAC;SAC/C;aAAM;YACN,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC;YAClE,WAAW,oCAA4B,CAAC;SACxC;QAED,OAAO,EAAE,SAAS,WAAA,EAAE,WAAW,aAAA,EAAE,MAAM,QAAA,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,OAAA,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,UAAU,CAAC,EAA0B,EAAE,CAAS,EAAE,IAAY,EAAE,KAAa;QAAhE,IAAI,UAAA,EAAE,KAAK,WAAA;IAChC,IAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAM,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;QAC7C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC;SACb;KACD;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,EAA0B,EAAE,CAAS,EAAE,GAAW,EAAE,MAAc;QAAhE,IAAI,UAAA,EAAE,KAAK,WAAA;IAChC,IAAM,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAM,KAAK,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE;QACnE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC;SACb;KACD;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,IAAe;IAChC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACvB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAEzB,OAAO,GAAG,GAAG,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;QACxD,GAAG,EAAE,CAAC;IACP,OAAO,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;QAC/D,MAAM,EAAE,CAAC;IACV,OAAO,IAAI,GAAG,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;QACzD,IAAI,EAAE,CAAC;IACR,OAAO,KAAK,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;QAC9D,KAAK,EAAE,CAAC;IAET,OAAO,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,KAAwB;IACrE,IAAI,CAAC,KAAK,EAAE;QACX,WAAW,CAAC,MAAM,yBAAiB,CAAC;QACpC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACtB;SAAM,IAAI,GAAG,IAAI,KAAK,EAAE;QACxB,WAAW,CAAC,MAAM,yBAAiB,CAAC;QACpC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACvB;SAAM,IAAI,IAAI,IAAI,KAAK,EAAE;QACzB,WAAW,CAAC,MAAM,yBAAiB,CAAC;QACpC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACtD,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACtD,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACtD,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACvB;SAAM,IAAI,GAAG,IAAI,KAAK,EAAE;QACxB,WAAW,CAAC,MAAM,yBAAiB,CAAC;QACpC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAChD,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpF,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpF,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACvB;SAAM,IAAI,GAAG,IAAI,KAAK,EAAE;QACxB,WAAW,CAAC,MAAM,yBAAiB,CAAC;QACpC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAClD,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAClD,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAClD,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACvB;SAAM,IAAI,GAAG,IAAI,KAAK,EAAE;QACxB,WAAW,CAAC,MAAM,0BAAkB,CAAC;QACrC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC/C;SAAM;QACN,WAAW,CAAC,MAAM,+BAAuB,CAAC;QAC1C,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QACvD,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACtB;AACF,CAAC"}
1
+ {"version":3,"file":"psdWriter.js","sourceRoot":"../src/","sources":["psdWriter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ag-psd",
3
- "version": "27.0.0",
3
+ "version": "28.0.1",
4
4
  "description": "Library for reading and writing PSD files",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist-es/index.js",
@@ -46,7 +46,6 @@
46
46
  "typescript": "^4.9.4"
47
47
  },
48
48
  "dependencies": {
49
- "@types/base64-js": "^1.3.2",
50
49
  "base64-js": "^1.5.1",
51
50
  "pako": "^2.1.0"
52
51
  }
@@ -8,6 +8,7 @@ import { Annt, BlnM, DescriptorColor, DescriptorUnitsValue, parsePercent, parseU
8
8
  import { serializeEngineData, parseEngineData } from './engineData';
9
9
  import { encodeEngineData, decodeEngineData } from './text';
10
10
  import { decodeEngineData2 } from './engineData2';
11
+ import type { InternalImageResources } from './imageResources';
11
12
 
12
13
  export interface ExtendedWriteOptions extends WriteOptions {
13
14
  layerIds: Set<number>;
@@ -15,7 +16,7 @@ export interface ExtendedWriteOptions extends WriteOptions {
15
16
  }
16
17
 
17
18
  type HasMethod = (target: LayerAdditionalInfo) => boolean;
18
- type ReadMethod = (reader: PsdReader, target: LayerAdditionalInfo, left: () => number, psd: Psd) => void;
19
+ type ReadMethod = (reader: PsdReader, target: LayerAdditionalInfo, left: () => number, psd: Psd, imageResources: InternalImageResources) => void;
19
20
  type WriteMethod = (writer: PsdWriter, target: LayerAdditionalInfo, psd: Psd, options: ExtendedWriteOptions) => void;
20
21
 
21
22
  export interface InfoHandler {
@@ -3520,8 +3521,8 @@ addHandler(
3520
3521
  addHandler(
3521
3522
  'Lr16',
3522
3523
  () => false,
3523
- (reader, _target, _left, psd) => {
3524
- readLayerInfo(reader, psd);
3524
+ (reader, _target, _left, psd, imageResources) => {
3525
+ readLayerInfo(reader, psd, imageResources);
3525
3526
  },
3526
3527
  (_writer, _target) => {
3527
3528
  },
@@ -3530,8 +3531,8 @@ addHandler(
3530
3531
  addHandler(
3531
3532
  'Lr32',
3532
3533
  () => false,
3533
- (reader, _target, _left, psd) => {
3534
- readLayerInfo(reader, psd);
3534
+ (reader, _target, _left, psd, imageResources) => {
3535
+ readLayerInfo(reader, psd, imageResources);
3535
3536
  },
3536
3537
  (_writer, _target) => {
3537
3538
  },
package/src/descriptor.ts CHANGED
@@ -1932,7 +1932,7 @@ export const stdTrackID = createEnum<TimelineTrackType>('stdTrackID', 'opacity',
1932
1932
 
1933
1933
  export const gradientInterpolationMethodType = createEnum<InterpolationMethod>('gradientInterpolationMethodType', 'perceptual', {
1934
1934
  perceptual: 'Perc',
1935
- linear: 'Lnr',
1935
+ linear: 'Lnr ',
1936
1936
  classic: 'Gcls',
1937
1937
  smooth: 'Smoo',
1938
1938
  });
package/src/engineData.ts CHANGED
@@ -110,7 +110,11 @@ export function parseEngineData(data: number[] | Uint8Array) {
110
110
 
111
111
  skipWhitespace();
112
112
 
113
- while (index < data.length) {
113
+ let dataLength = data.length;
114
+
115
+ while (dataLength > 0 && data[dataLength - 1] === 0) dataLength--; // trim 0 bytes from end
116
+
117
+ while (index < dataLength) {
114
118
  const i = index;
115
119
  const char = data[i];
116
120
 
@@ -164,9 +168,11 @@ export function parseEngineData(data: number[] | Uint8Array) {
164
168
  pushValue(parseFloat(value));
165
169
  } else {
166
170
  index += 1;
167
- console.log(`Invalid token ${String.fromCharCode(char)} at ${index}`);
168
- // ` near ${String.fromCharCode.apply(null, data.slice(index - 10, index + 20) as any)}` +
169
- // `data [${Array.from(data.slice(index - 10, index + 20)).join(', ')}]`
171
+ console.log(`Invalid token '${String.fromCharCode(char)}' (${char}) at ${index}`
172
+ // + ` near '${String.fromCharCode.apply(null, data.slice(index - 10, index + 20) as any)}'`
173
+ // + ` data [${Array.from(data.slice(index - 10, index + 20)).join(', ')}]`
174
+ );
175
+ // throw new Error(`Invalid token ${String.fromCharCode(char)} at ${index}`);
170
176
  }
171
177
 
172
178
  skipWhitespace();
@@ -6,11 +6,16 @@ import { createCanvasFromData, createEnum, MOCK_HANDLERS } from './helpers';
6
6
  import { decodeString, encodeString } from './utf8';
7
7
  import { ESliceBGColorType, ESliceHorzAlign, ESliceOrigin, ESliceType, ESliceVertAlign, frac, FractionDescriptor, parseTrackList, readVersionAndDescriptor, serializeTrackList, TimelineTrackDescriptor, TimeScopeDescriptor, writeVersionAndDescriptor } from './descriptor';
8
8
 
9
+ export interface InternalImageResources extends ImageResources {
10
+ layersGroup?: number[];
11
+ layerGroupsEnabledId?: number[];
12
+ }
13
+
9
14
  export interface ResourceHandler {
10
15
  key: number;
11
- has: (target: ImageResources) => boolean | number;
12
- read: (reader: PsdReader, target: ImageResources, left: () => number) => void;
13
- write: (writer: PsdWriter, target: ImageResources, index: number) => void;
16
+ has: (target: InternalImageResources) => boolean | number;
17
+ read: (reader: PsdReader, target: InternalImageResources, left: () => number) => void;
18
+ write: (writer: PsdWriter, target: InternalImageResources, index: number) => void;
14
19
  }
15
20
 
16
21
  export const resourceHandlers: ResourceHandler[] = [];
@@ -18,9 +23,9 @@ export const resourceHandlersMap: { [key: number]: ResourceHandler } = {};
18
23
 
19
24
  function addHandler(
20
25
  key: number,
21
- has: (target: ImageResources) => boolean | number,
22
- read: (reader: PsdReader, target: ImageResources, left: () => number) => void,
23
- write: (writer: PsdWriter, target: ImageResources, index: number) => void,
26
+ has: (target: InternalImageResources) => boolean | number,
27
+ read: (reader: PsdReader, target: InternalImageResources, left: () => number) => void,
28
+ write: (writer: PsdWriter, target: InternalImageResources, index: number) => void,
24
29
  ) {
25
30
  const handler: ResourceHandler = { key, has, read, write };
26
31
  resourceHandlers.push(handler);
package/src/psd.ts CHANGED
@@ -1493,9 +1493,7 @@ export enum LayerCompCapturedInfo {
1493
1493
 
1494
1494
  export interface ImageResources {
1495
1495
  layerState?: number;
1496
- layersGroup?: number[];
1497
1496
  layerSelectionIds?: number[];
1498
- layerGroupsEnabledId?: number[];
1499
1497
  versionInfo?: {
1500
1498
  hasRealMergedData: boolean;
1501
1499
  writerName: string;
@@ -1713,6 +1711,8 @@ export interface Layer extends LayerAdditionalInfo {
1713
1711
  children?: Layer[];
1714
1712
  /** Applies only for layer groups. */
1715
1713
  opened?: boolean;
1714
+ linkGroup?: number;
1715
+ linkGroupEnabled?: boolean;
1716
1716
  }
1717
1717
 
1718
1718
  export interface Psd extends LayerAdditionalInfo {
package/src/psdReader.ts CHANGED
@@ -2,7 +2,7 @@ import { inflate as inflateSync } from 'pako';
2
2
  import { Psd, Layer, ColorMode, SectionDividerType, LayerAdditionalInfo, ReadOptions, LayerMaskData, Color, PatternInfo, GlobalLayerMaskInfo, RGB, PixelData, PixelArray } from './psd';
3
3
  import { resetImageData, offsetForChannel, decodeBitmap, createImageData, toBlendMode, ChannelID, Compression, LayerMaskFlags, MaskParams, ColorSpace, RAW_IMAGE_DATA, largeAdditionalInfoKeys, imageDataToCanvas } from './helpers';
4
4
  import { infoHandlersMap } from './additionalInfo';
5
- import { resourceHandlersMap } from './imageResources';
5
+ import { InternalImageResources, resourceHandlersMap } from './imageResources';
6
6
 
7
7
  interface ChannelInfo {
8
8
  id: ChannelID;
@@ -257,6 +257,9 @@ export function readPsd(reader: PsdReader, readOptions: ReadOptions = {}) {
257
257
  });
258
258
 
259
259
  // image resources
260
+
261
+ const imageResources: InternalImageResources = {};
262
+
260
263
  readSection(reader, 1, left => {
261
264
  while (left() > 0) {
262
265
  const sigOffset = reader.offset;
@@ -282,13 +285,9 @@ export function readPsd(reader: PsdReader, readOptions: ReadOptions = {}) {
282
285
  const handler = resourceHandlersMap[id];
283
286
  const skip = id === 1036 && !!reader.skipThumbnail;
284
287
 
285
- if (!psd.imageResources) {
286
- psd.imageResources = {};
287
- }
288
-
289
288
  if (handler && !skip) {
290
289
  try {
291
- handler.read(reader, psd.imageResources, left);
290
+ handler.read(reader, imageResources, left);
292
291
  } catch (e) {
293
292
  if (reader.throwForMissingFeatures) throw e;
294
293
  skipBytes(reader, left());
@@ -301,10 +300,16 @@ export function readPsd(reader: PsdReader, readOptions: ReadOptions = {}) {
301
300
  }
302
301
  });
303
302
 
303
+ const { layersGroup, layerGroupsEnabledId, ...rest } = imageResources;
304
+
305
+ if (Object.keys(rest)) {
306
+ psd.imageResources = rest;
307
+ }
308
+
304
309
  // layer and mask info
305
310
  readSection(reader, 1, left => {
306
311
  readSection(reader, 2, left => {
307
- readLayerInfo(reader, psd);
312
+ readLayerInfo(reader, psd, imageResources);
308
313
  skipBytes(reader, left());
309
314
  }, undefined, reader.large);
310
315
 
@@ -326,7 +331,7 @@ export function readPsd(reader: PsdReader, readOptions: ReadOptions = {}) {
326
331
  }
327
332
 
328
333
  if (left() >= 12) {
329
- readAdditionalLayerInfo(reader, psd, psd);
334
+ readAdditionalLayerInfo(reader, psd, psd, imageResources);
330
335
  } else {
331
336
  // opt.logMissingFeatures && console.log('skipping leftover bytes', left());
332
337
  skipBytes(reader, left());
@@ -348,7 +353,9 @@ export function readPsd(reader: PsdReader, readOptions: ReadOptions = {}) {
348
353
  return psd;
349
354
  }
350
355
 
351
- export function readLayerInfo(reader: PsdReader, psd: Psd) {
356
+ export function readLayerInfo(reader: PsdReader, psd: Psd, imageResources: InternalImageResources) {
357
+ const { layersGroup = [], layerGroupsEnabledId = [] } = imageResources;
358
+
352
359
  let layerCount = readInt16(reader);
353
360
 
354
361
  if (layerCount < 0) {
@@ -360,7 +367,9 @@ export function readLayerInfo(reader: PsdReader, psd: Psd) {
360
367
  const layerChannels: ChannelInfo[][] = [];
361
368
 
362
369
  for (let i = 0; i < layerCount; i++) {
363
- const { layer, channels } = readLayerRecord(reader, psd);
370
+ const { layer, channels } = readLayerRecord(reader, psd, imageResources);
371
+ if (layersGroup[i] !== undefined) layer.linkGroup = layersGroup[i];
372
+ if (layerGroupsEnabledId[i] !== undefined) layer.linkGroupEnabled = !!layerGroupsEnabledId[i];
364
373
  layers.push(layer);
365
374
  layerChannels.push(channels);
366
375
  }
@@ -401,7 +410,7 @@ export function readLayerInfo(reader: PsdReader, psd: Psd) {
401
410
  }
402
411
  }
403
412
 
404
- function readLayerRecord(reader: PsdReader, psd: Psd) {
413
+ function readLayerRecord(reader: PsdReader, psd: Psd, imageResources: InternalImageResources) {
405
414
  const layer: Layer = {};
406
415
  layer.top = readInt32(reader);
407
416
  layer.left = readInt32(reader);
@@ -452,7 +461,7 @@ function readLayerRecord(reader: PsdReader, psd: Psd) {
452
461
  // HACK: fix for sometimes layer.name string not being padded correctly, just skip until we get valid signature
453
462
  while (left() > 4 && !validSignatureAt(reader, reader.offset)) reader.offset++;
454
463
 
455
- while (left() >= 12) readAdditionalLayerInfo(reader, layer, psd);
464
+ while (left() >= 12) readAdditionalLayerInfo(reader, layer, psd, imageResources);
456
465
 
457
466
  skipBytes(reader, left());
458
467
  });
@@ -676,7 +685,7 @@ export function readGlobalLayerMaskInfo(reader: PsdReader) {
676
685
  });
677
686
  }
678
687
 
679
- export function readAdditionalLayerInfo(reader: PsdReader, target: LayerAdditionalInfo, psd: Psd) {
688
+ export function readAdditionalLayerInfo(reader: PsdReader, target: LayerAdditionalInfo, psd: Psd, imageResources: InternalImageResources) {
680
689
  const sig = readSignature(reader);
681
690
  if (sig !== '8BIM' && sig !== '8B64') throw new Error(`Invalid signature: '${sig}' at 0x${(reader.offset - 4).toString(16)}`);
682
691
  const key = readSignature(reader);
@@ -689,7 +698,7 @@ export function readAdditionalLayerInfo(reader: PsdReader, target: LayerAddition
689
698
 
690
699
  if (handler) {
691
700
  try {
692
- handler.read(reader, target, left, psd);
701
+ handler.read(reader, target, left, psd, imageResources);
693
702
  } catch (e) {
694
703
  if (reader.throwForMissingFeatures) throw e;
695
704
  }
package/src/psdWriter.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Psd, Layer, LayerAdditionalInfo, ColorMode, SectionDividerType, WriteOptions, Color, GlobalLayerMaskInfo, PixelData, LayerMaskData } from './psd';
2
2
  import { hasAlpha, createCanvas, writeDataRLE, LayerChannelData, ChannelData, offsetForChannel, createImageData, fromBlendMode, ChannelID, Compression, clamp, LayerMaskFlags, MaskParams, ColorSpace, Bounds, largeAdditionalInfoKeys, RAW_IMAGE_DATA, writeDataZipWithoutPrediction, imageDataToCanvas } from './helpers';
3
3
  import { ExtendedWriteOptions, infoHandlers } from './additionalInfo';
4
- import { resourceHandlers } from './imageResources';
4
+ import { InternalImageResources, resourceHandlers } from './imageResources';
5
5
 
6
6
  export interface PsdWriter {
7
7
  offset: number;
@@ -221,12 +221,11 @@ export function writePsd(writer: PsdWriter, psd: Psd, options: WriteOptions = {}
221
221
 
222
222
  verifyBitCount(psd);
223
223
 
224
- let imageResources = psd.imageResources || {};
225
-
224
+ const imageResources: InternalImageResources = { ...psd.imageResources };
226
225
  const opt: ExtendedWriteOptions = { ...options, layerIds: new Set(), layerToId: new Map() };
227
226
 
228
227
  if (opt.generateThumbnail) {
229
- imageResources = { ...imageResources, thumbnail: createThumbnail(psd) };
228
+ imageResources.thumbnail = createThumbnail(psd);
230
229
  }
231
230
 
232
231
  let imageData = psd.imageData;
@@ -263,7 +262,15 @@ export function writePsd(writer: PsdWriter, psd: Psd, options: WriteOptions = {}
263
262
  // TODO: other data?
264
263
  });
265
264
 
265
+ const layers: Layer[] = [];
266
+ addChildren(layers, psd.children);
267
+ if (!layers.length) layers.push({});
268
+
266
269
  // image resources
270
+
271
+ imageResources.layersGroup = layers.map(l => l.linkGroup || 0);
272
+ imageResources.layerGroupsEnabledId = layers.map(l => l.linkGroupEnabled == false ? 0 : 1);
273
+
267
274
  writeSection(writer, 1, () => {
268
275
  for (const handler of resourceHandlers) {
269
276
  const has = handler.has(imageResources);
@@ -279,7 +286,7 @@ export function writePsd(writer: PsdWriter, psd: Psd, options: WriteOptions = {}
279
286
 
280
287
  // layer and mask info
281
288
  writeSection(writer, 2, () => {
282
- writeLayerInfo(writer, psd, globalAlpha, opt);
289
+ writeLayerInfo(writer, layers, psd, globalAlpha, opt);
283
290
  writeGlobalLayerMaskInfo(writer, psd.globalLayerMaskInfo);
284
291
  writeAdditionalLayerInfo(writer, psd, psd, opt);
285
292
  }, undefined, !!opt.psb);
@@ -318,14 +325,8 @@ export function writePsd(writer: PsdWriter, psd: Psd, options: WriteOptions = {}
318
325
  }
319
326
  }
320
327
 
321
- function writeLayerInfo(writer: PsdWriter, psd: Psd, globalAlpha: boolean, options: ExtendedWriteOptions) {
328
+ function writeLayerInfo(writer: PsdWriter, layers: Layer[], psd: Psd, globalAlpha: boolean, options: ExtendedWriteOptions) {
322
329
  writeSection(writer, 4, () => {
323
- const layers: Layer[] = [];
324
-
325
- addChildren(layers, psd.children);
326
-
327
- if (!layers.length) layers.push({});
328
-
329
330
  writeInt16(writer, globalAlpha ? -layers.length : layers.length);
330
331
 
331
332
  const layersData = layers.map((l, i) => getChannels(writer.tempBuffer!, l, i === 0, options));
@@ -494,6 +495,7 @@ function writeAdditionalLayerInfo(writer: PsdWriter, target: LayerAdditionalInfo
494
495
  }
495
496
  }
496
497
  }
498
+
497
499
  function addChildren(layers: Layer[], children: Layer[] | undefined) {
498
500
  if (!children) return;
499
501