postext-pdf 0.1.0
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/LICENSE +21 -0
- package/README.md +67 -0
- package/dist/__bench__/render.bench.test.d.ts +2 -0
- package/dist/__bench__/render.bench.test.d.ts.map +1 -0
- package/dist/__bench__/render.bench.test.js +86 -0
- package/dist/__bench__/render.bench.test.js.map +1 -0
- package/dist/__tests__/accessibility.test.d.ts +2 -0
- package/dist/__tests__/accessibility.test.d.ts.map +1 -0
- package/dist/__tests__/accessibility.test.js +364 -0
- package/dist/__tests__/accessibility.test.js.map +1 -0
- package/dist/__tests__/contentsLinks.test.d.ts +2 -0
- package/dist/__tests__/contentsLinks.test.d.ts.map +1 -0
- package/dist/__tests__/contentsLinks.test.js +131 -0
- package/dist/__tests__/contentsLinks.test.js.map +1 -0
- package/dist/__tests__/fontCache.test.d.ts +2 -0
- package/dist/__tests__/fontCache.test.d.ts.map +1 -0
- package/dist/__tests__/fontCache.test.js +42 -0
- package/dist/__tests__/fontCache.test.js.map +1 -0
- package/dist/__tests__/headerFooter.test.d.ts +2 -0
- package/dist/__tests__/headerFooter.test.d.ts.map +1 -0
- package/dist/__tests__/headerFooter.test.js +68 -0
- package/dist/__tests__/headerFooter.test.js.map +1 -0
- package/dist/__tests__/rotatedTable.test.d.ts +2 -0
- package/dist/__tests__/rotatedTable.test.d.ts.map +1 -0
- package/dist/__tests__/rotatedTable.test.js +112 -0
- package/dist/__tests__/rotatedTable.test.js.map +1 -0
- package/dist/__tests__/svgVector.test.d.ts +2 -0
- package/dist/__tests__/svgVector.test.d.ts.map +1 -0
- package/dist/__tests__/svgVector.test.js +322 -0
- package/dist/__tests__/svgVector.test.js.map +1 -0
- package/dist/__tests__/toUnicode.test.d.ts +2 -0
- package/dist/__tests__/toUnicode.test.d.ts.map +1 -0
- package/dist/__tests__/toUnicode.test.js +57 -0
- package/dist/__tests__/toUnicode.test.js.map +1 -0
- package/dist/colors.d.ts +23 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +47 -0
- package/dist/colors.js.map +1 -0
- package/dist/fontCache.d.ts +41 -0
- package/dist/fontCache.d.ts.map +1 -0
- package/dist/fontCache.js +154 -0
- package/dist/fontCache.js.map +1 -0
- package/dist/fontString.d.ts +14 -0
- package/dist/fontString.d.ts.map +1 -0
- package/dist/fontString.js +43 -0
- package/dist/fontString.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/pdf-backend/blockRender.d.ts +15 -0
- package/dist/pdf-backend/blockRender.d.ts.map +1 -0
- package/dist/pdf-backend/blockRender.js +244 -0
- package/dist/pdf-backend/blockRender.js.map +1 -0
- package/dist/pdf-backend/fontHelpers.d.ts +6 -0
- package/dist/pdf-backend/fontHelpers.d.ts.map +1 -0
- package/dist/pdf-backend/fontHelpers.js +81 -0
- package/dist/pdf-backend/fontHelpers.js.map +1 -0
- package/dist/pdf-backend/headerFooter.d.ts +15 -0
- package/dist/pdf-backend/headerFooter.d.ts.map +1 -0
- package/dist/pdf-backend/headerFooter.js +145 -0
- package/dist/pdf-backend/headerFooter.js.map +1 -0
- package/dist/pdf-backend/index.d.ts +47 -0
- package/dist/pdf-backend/index.d.ts.map +1 -0
- package/dist/pdf-backend/index.js +227 -0
- package/dist/pdf-backend/index.js.map +1 -0
- package/dist/pdf-backend/links.d.ts +44 -0
- package/dist/pdf-backend/links.d.ts.map +1 -0
- package/dist/pdf-backend/links.js +110 -0
- package/dist/pdf-backend/links.js.map +1 -0
- package/dist/pdf-backend/outlines.d.ts +8 -0
- package/dist/pdf-backend/outlines.d.ts.map +1 -0
- package/dist/pdf-backend/outlines.js +145 -0
- package/dist/pdf-backend/outlines.js.map +1 -0
- package/dist/pdf-backend/pageDecorations.d.ts +13 -0
- package/dist/pdf-backend/pageDecorations.d.ts.map +1 -0
- package/dist/pdf-backend/pageDecorations.js +88 -0
- package/dist/pdf-backend/pageDecorations.js.map +1 -0
- package/dist/pdf-backend/pageLabels.d.ts +8 -0
- package/dist/pdf-backend/pageLabels.d.ts.map +1 -0
- package/dist/pdf-backend/pageLabels.js +61 -0
- package/dist/pdf-backend/pageLabels.js.map +1 -0
- package/dist/pdf-backend/primitives.d.ts +46 -0
- package/dist/pdf-backend/primitives.d.ts.map +1 -0
- package/dist/pdf-backend/primitives.js +162 -0
- package/dist/pdf-backend/primitives.js.map +1 -0
- package/dist/pdf-backend/renderResourceBlock.d.ts +87 -0
- package/dist/pdf-backend/renderResourceBlock.d.ts.map +1 -0
- package/dist/pdf-backend/renderResourceBlock.js +753 -0
- package/dist/pdf-backend/renderResourceBlock.js.map +1 -0
- package/dist/pdf-backend/structureFlow.d.ts +55 -0
- package/dist/pdf-backend/structureFlow.d.ts.map +1 -0
- package/dist/pdf-backend/structureFlow.js +180 -0
- package/dist/pdf-backend/structureFlow.js.map +1 -0
- package/dist/pdf-backend/svgVector.d.ts +144 -0
- package/dist/pdf-backend/svgVector.d.ts.map +1 -0
- package/dist/pdf-backend/svgVector.js +1455 -0
- package/dist/pdf-backend/svgVector.js.map +1 -0
- package/dist/pdf-backend/tagging.d.ts +136 -0
- package/dist/pdf-backend/tagging.d.ts.map +1 -0
- package/dist/pdf-backend/tagging.js +296 -0
- package/dist/pdf-backend/tagging.js.map +1 -0
- package/dist/woff2.d.ts +11 -0
- package/dist/woff2.d.ts.map +1 -0
- package/dist/woff2.js +47 -0
- package/dist/woff2.js.map +1 -0
- package/dist/worker/client.d.ts +30 -0
- package/dist/worker/client.d.ts.map +1 -0
- package/dist/worker/client.js +112 -0
- package/dist/worker/client.js.map +1 -0
- package/dist/worker/pdf.worker.d.ts +2 -0
- package/dist/worker/pdf.worker.d.ts.map +1 -0
- package/dist/worker/pdf.worker.js +67 -0
- package/dist/worker/pdf.worker.js.map +1 -0
- package/dist/worker/protocol.d.ts +49 -0
- package/dist/worker/protocol.d.ts.map +1 -0
- package/dist/worker/protocol.js +2 -0
- package/dist/worker/protocol.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderResourceBlock.js","sourceRoot":"","sources":["../../src/pdf-backend/renderResourceBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,YAAY,EAAmF,MAAM,SAAS,CAAC;AAQxH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAGL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAqC,MAAM,WAAW,CAAC;AAEvF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAIlB,MAAM,aAAa,CAAC;AAcrB;;4EAE4E;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAI9B,iDAAiD;AACjD,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,CAAC,OAAO;IAC/F,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACvF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACvF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;WACnE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAC3F,sEAAsE;IACtE,uCAAuC;IACvC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,CAAC,GAAG,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IACvG,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IAC9F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;0DAC0D;AAC1D,KAAK,UAAU,WAAW,CAAC,MAAmB;IAC5C,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAClE,OAAO,IAAI,UAAU,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAgB,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IACzF,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,IAAI,UAAU,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,6EAA6E;AAC7E,KAAK,UAAU,SAAS,CAAC,KAAiB;IACxC,IAAI,OAAO,iBAAiB,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACnE,OAAO,MAAM,WAAW,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAKD;;;qDAGqD;AACrD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe,EAAE,OAAe,EAAE,QAAgB;IAC1F,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/G,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC7B,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,OAAO,GAAgB,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,IAAI,UAAU,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe;IAClG,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;CAChF,CAAC,CAAC;AAEH;yBACyB;AACzB,SAAS,aAAa,CAAC,MAAc,EAAE,MAAc,EAAE,MAAe;IACpE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,SAAS,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED;;iEAEiE;AACjE,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,KAAK,GAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC7D,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACnH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC,CAAC;IACF,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACrB,CAAC;AAED;yEACyE;AACzE,SAAS,eAAe,CAAC,SAAoB;IAC3C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAAE,SAAS;YACpD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACjF,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAA2B,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAEvH,SAAS,eAAe,CAAC,KAAiB;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC;IACnC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB;IACjC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QAC9C,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;;;0CAI0C;AAC1C,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAe,EACf,WAAqB,EACrB,QAAyB;IAEzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3F,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,GAAG,IAAI,2BAA2B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,MAAM,CAAC,MAAM,eAAe,MAAM,CAAC,KAAK,iBAAiB,SAAS,CAAC,MAAM,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IACjM,CAAC;IACD,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC;IACzB,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9C,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACjC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,mCAAmC,GAAG,cAAc,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AACxG,CAAC;AAED,8EAA8E;AAC9E,SAAS,iBAAiB,CAAC,GAAgB,EAAE,MAAkB;IAC7D,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoC,CAAC;IACxD,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE;QACxD,MAAM,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;QACtB,MAAM,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/B,IAAI,EAAE,EAAE,MAAM;YAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvE,KAAK,MAAM,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM;gBAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;oBAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACD,oEAAoE;IACpE,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;oBAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAmB,EACnB,GAAgB,EAChB,aAAgD,EAChD,SAAqB,EACrB,YAA8B;AAC9B;kDACkD;AAClD,IAAuB;AACvB;mEACmE;AACnE,eAA8B,mBAAmB;IAEjD,MAAM,GAAG,GAAqB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;IAChD,IAAI,CAAC,aAAa;QAAE,OAAO,GAAG,CAAC;IAC/B,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,MAAM,GAAe,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;IACnC,MAAM,MAAM,GAAG,EAAE,EAAE,SAAS;QAC1B,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG;QAC1E,CAAC,CAAC,IAAI,CAAC;IAET,gFAAgF;IAChF,MAAM,KAAK,GAAG,KAAK,EAAE,MAAc,EAAE,MAA0B,EAAiB,EAAE;QAChF,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClG,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,IAAI;oBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,MAAM;oBAAE,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3D,IAAI,KAAqC,CAAC;gBAC1C,IAAI,MAAM,GAAa,EAAE,CAAC;gBAC1B,IAAI,SAAS,EAAE,CAAC;oBACd,kEAAkE;oBAClE,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;oBACxC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;oBAClE,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvD,IAAI,OAAO,EAAE,CAAC;oBACZ,qDAAqD;oBACrD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;wBACnC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;4BAAE,SAAS;wBACrC,IAAI,CAAC;4BACH,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAClH,CAAC;wBAAC,MAAM,CAAC;4BACP,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;wBAC7B,CAAC;oBACH,CAAC;oBACD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC7C,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gBAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY;oBACjD,CAAC,CAAC,MAAM,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;oBAC9D,CAAC,CAAC,OAAO,CAAC;gBACZ,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;gBAClG,IAAI,GAAG;oBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/E,OAAO;YACT,CAAC;YACD,IAAI,KAAK,GAAoB,IAAI,CAAC;YAClC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,GAAG;oBAAE,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,2DAA2D;gBAC3D,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,KAAK;gBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oEAAoE;YACpE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,iBAAiB;gBAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACtI,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/B,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,4DAA4D;QAC5D,KAAK,MAAM,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE,CAAC;QACD,4EAA4E;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;QAC7C,IAAI,UAAU;YAAE,MAAM,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC;QACjD,IAAI,YAAY;YAAE,MAAM,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACzE,0EAA0E;QAC1E,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,4DAA4D;IAC5D,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;oBAAE,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAClC,GAAY,EACZ,GAAqB,EACrB,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW;IAEX,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;IACpC,MAAM,GAAG,GAAG;QACV,CAAC,EAAE,GAAG,GAAG,KAAK;QACd,CAAC,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK;QACrC,KAAK,EAAE,GAAG,GAAG,KAAK;QAClB,MAAM,EAAE,GAAG,GAAG,KAAK;KACpB,CAAC;IACF,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACxD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;;QAC1D,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,QAAQ,CACf,IAAa,EACb,MAAe,EACf,KAA2E;IAE3E,IAAI,IAAI,IAAI,MAAM;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAC5C,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC5B,IAAI,MAAM;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IAChC,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AASD;;;0EAG0E;AAC1E,SAAS,SAAS,CAChB,GAAY,EACZ,IAAa,EACb,KAAiB,EACjB,SAAoB,EACpB,KAAY,EACZ,SAAgB,EAChB,YAAsC,EACtC,YAAuE,EACvE,aAAoB,KAAK,EACzB,IAAiB;IAEjB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACzB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACtB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACzE,CAAC;gBACD,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC;gBACf,SAAS;YACX,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACtB,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACzE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC;gBACf,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC;YAChD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,QAAQ,CAAC;YAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;YACzF,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,UAAU,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;YAC9B,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7F,IAAI,KAAK,KAAK,SAAS,IAAI,YAAY,EAAE,CAAC;gBACxC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;gBACpC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrB,MAAM,EAAE,GAAG,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAChD,MAAM,EAAE,GAAG,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACnE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;gBACnC,MAAM,IAAI,GAAqC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3I,CAAC;YACD,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,OAAO;IACT,CAAC;IACD,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACpF,CAAC;AAED;6CAC6C;AAC7C,SAAS,YAAY,CAAC,GAAY,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;IACpF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;IACpC,MAAM,IAAI,GAAqC;QAC7C,GAAG,GAAG,KAAK;QACX,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK;QAClC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK;QACnB,YAAY,GAAG,GAAG,GAAG,KAAK;KAC3B,CAAC;IACF,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClF,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,uEAAuE;AACvE,SAAS,WAAW,CAAC,EAAyB;IAC5C,OAAO,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAClF,CAAC;AAED;6EAC6E;AAC7E,SAAS,SAAS,CAAC,EAAyB;IAC1C,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACrG,CAAC;AAED;;kEAEkE;AAClE,SAAS,UAAU,CAAC,KAA6B;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5F,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI;QAAE,IAAI,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;mEAEmE;AACnE,SAAS,cAAc,CACrB,KAAiB,EACjB,KAA6B,EAC7B,SAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoC,CAAC;IACxD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1E,IAAI,GAA2B,CAAC;IAChC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/C,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;YACpB,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,GAAoC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC;YAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACrD,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC;YAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACrD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1E,MAAM,KAAK,GAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACxD,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE;YAC/C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAClB,GAAY,EACZ,EAAyB,EACzB,EAAU,EACV,EAAU,EACV,SAAoB,EACpB,MAAwB,EACxB,SAAgB,EAChB,YAAsC,EACtC,SAAiC;IAEjC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IACnB,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,wEAAwE;IACxE,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,MAAM,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,SAAS,GAAe;QAC5B,MAAM,EAAE,CAAC,CAAC,UAAU;QACpB,IAAI,EAAE,CAAC,CAAC,cAAc;QACtB,MAAM,EAAE,CAAC,CAAC,gBAAgB;QAC1B,UAAU,EAAE,CAAC,CAAC,oBAAoB;KACnC,CAAC;IACF,MAAM,WAAW,GAAe;QAC9B,MAAM,EAAE,CAAC,CAAC,gBAAgB;QAC1B,IAAI,EAAE,CAAC,CAAC,oBAAoB;QAC5B,MAAM,EAAE,CAAC,CAAC,sBAAsB;QAChC,UAAU,EAAE,CAAC,CAAC,0BAA0B;KACzC,CAAC;IAEF,4EAA4E;IAC5E,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACjH,IAAI,IAAI;YAAE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/F,CAAC;IACD,0EAA0E;IAC1E,6EAA6E;IAC7E,mCAAmC;IACnC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;QAC3B,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5E,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;YACtE,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YACrD,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YACvE,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YACtD,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC3B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBACrD,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBACvE,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACrB,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;oBACtD,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,qEAAqE;IACrE,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QACzC,MAAM,QAAQ,GAAG,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,QAAQ,EAAE,CAAC;gBACb,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACvC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,UAAU;oBAC1C,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;iBACnD,CAAC,CAAC,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,QAAQ;YAAE,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;;YAClE,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,gBAAgB;IAChB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,MAAM,QAAQ,GAAG,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,SAAS,IAAI,CAAC,QAAQ;YAAE,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,GAAY,EAAE,EAAyB,EAAE,CAAS,EAAE,CAAS;IACpF,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACrD,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAY,EACZ,KAAe,EACf,SAAoB,EACpB,MAAwB,EACxB,YAAsC,EACtC,SAAyB;IAEzB,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;IAC/B,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;IACpC,wEAAwE;IACxE,2EAA2E;IAC3E,yEAAyE;IACzE,oEAAoE;IACpE,wDAAwD;IACxD,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;IACxB,IAAI,MAA6B,CAAC;IAClC,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,GAAG,GAAG,CAAC,SAAS,KAAK,KAAK;YAC9B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,KAAK,GAAG,YAAY,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;YACvF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,KAAK,GAAG,YAAY,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QAC1F,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,MAAM,CAAC;QACjB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;IAExC,0EAA0E;IAC1E,uDAAuD;IACvD,IAAI,KAA6B,CAAC;IAClC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YACxC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG;gBAChD,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;gBACxF,CAAC,CAAC,EAAE,CAAC,CAAC;QACV,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE;gBAC9C,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;gBAClB,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC9C,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;SAAM,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/B,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAClF,CAAC;IAED,uEAAuE;IACvE,gEAAgE;IAChE,IAAI,YAAY,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QACpD,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;IACvF,CAAC;IAED,0CAA0C;IAC1C,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC;QAC3C,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACrG,CAAC;IAED,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,YAAY,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAe;QAC/B,MAAM,EAAE,EAAE,CAAC,iBAAiB;QAC5B,IAAI,EAAE,EAAE,CAAC,qBAAqB;QAC9B,MAAM,EAAE,EAAE,CAAC,uBAAuB;QAClC,UAAU,EAAE,EAAE,CAAC,2BAA2B;KAC3C,CAAC;IACF,IAAI,SAAS,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS;QAAE,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/F,MAAM,WAAW,GAAG,SAAS,IAAI,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS;QAChF,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;QAC9B,CAAC,CAAC,SAAS,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;QACnC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACnJ,CAAC;IAED,QAAQ;IACR,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAe;QAC5B,MAAM,EAAE,EAAE,CAAC,cAAc;QACzB,IAAI,EAAE,EAAE,CAAC,kBAAkB;QAC3B,MAAM,EAAE,EAAE,CAAC,oBAAoB;QAC/B,UAAU,EAAE,EAAE,CAAC,wBAAwB;KACxC,CAAC;IACF,MAAM,QAAQ,GAAG,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;QAChC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClI,CAAC;IACD,wEAAwE;IACxE,IAAI,EAAE,CAAC,cAAc,IAAI,EAAE,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;YACrC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,YAAY,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,GAAG,CAAC,SAAS,CAAC;IACvB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps VDT blocks to structure elements of the tagged PDF (see `tagging.ts`).
|
|
3
|
+
*
|
|
4
|
+
* Renderers call {@link StructureFlow.blockElem} for every block they paint,
|
|
5
|
+
* in painting order (page by page, column by column — which is the reading
|
|
6
|
+
* order). The flow keeps the grouping state that spans blocks:
|
|
7
|
+
* - lists: consecutive `listItem` blocks become `L` › `LI` › (`Lbl`, `LBody`),
|
|
8
|
+
* nested by `listDepth`; any other block closes the open lists;
|
|
9
|
+
* - callouts: a `callout` frame opens a `Div` that receives the blocks
|
|
10
|
+
* sharing its `containerId` (split fragments reuse the same `Div`);
|
|
11
|
+
* - headings: `H1`…`H6`, clamped so the level never skips (PDF/UA-1 §7.4);
|
|
12
|
+
* - fragments: a paragraph or list item split across columns / pages
|
|
13
|
+
* keeps one element (continuations carry the head's id plus a
|
|
14
|
+
* `-cont-N` suffix), so a reader sees one paragraph, not two.
|
|
15
|
+
* Resource blocks (figures, tables) go through {@link resourceElem}, keyed
|
|
16
|
+
* by resource id so the slices of a split table share one `Table`.
|
|
17
|
+
*/
|
|
18
|
+
import type { VDTBlock } from 'postext';
|
|
19
|
+
import type { StructAttrs, StructElem, StructTree } from './tagging';
|
|
20
|
+
export declare class StructureFlow {
|
|
21
|
+
readonly tree: StructTree;
|
|
22
|
+
private readonly byId;
|
|
23
|
+
private readonly bulletById;
|
|
24
|
+
private readonly calloutDivs;
|
|
25
|
+
private readonly calloutTitles;
|
|
26
|
+
private readonly resources;
|
|
27
|
+
private readonly captions;
|
|
28
|
+
private lists;
|
|
29
|
+
private callout;
|
|
30
|
+
private lastHeadingLevel;
|
|
31
|
+
constructor(tree: StructTree);
|
|
32
|
+
/** Enter the block's grouping context; returns the parent its element
|
|
33
|
+
* belongs to (the enclosing callout `Div`, else the document). */
|
|
34
|
+
private enter;
|
|
35
|
+
private headingType;
|
|
36
|
+
/** The element that receives the block's own text (lines, overlay title).
|
|
37
|
+
* Not for `resource` blocks — see {@link resourceElem}. */
|
|
38
|
+
blockElem(block: VDTBlock): StructElem;
|
|
39
|
+
/** The `Lbl` of a list item's bullet / number, once {@link blockElem} ran. */
|
|
40
|
+
bulletElem(block: VDTBlock): StructElem | undefined;
|
|
41
|
+
private listItem;
|
|
42
|
+
/** Title paragraph of a callout frame (its design overlay text). */
|
|
43
|
+
private calloutTitle;
|
|
44
|
+
/** Heading element for a part-divider page (`page.partInfo`). */
|
|
45
|
+
partHeading(): StructElem;
|
|
46
|
+
/** The `Figure` / `Table` element of a resource block, shared by the
|
|
47
|
+
* slices of a split table (keyed by resource id). */
|
|
48
|
+
resourceElem(block: VDTBlock, type: 'Figure' | 'Table', attrs: StructAttrs): StructElem;
|
|
49
|
+
/** The `Caption` child of a figure / table (created once). */
|
|
50
|
+
captionElem(owner: StructElem): StructElem;
|
|
51
|
+
/** A block-level paragraph beside a resource (its note), in the
|
|
52
|
+
* resource's grouping context. */
|
|
53
|
+
noteElem(block: VDTBlock): StructElem;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=structureFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structureFlow.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/structureFlow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAc,MAAM,WAAW,CAAC;AAkBjF,qBAAa,aAAa;IAWZ,QAAQ,CAAC,IAAI,EAAE,UAAU;IAVrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,OAAO,CAAyD;IACxE,OAAO,CAAC,gBAAgB,CAAK;gBAER,IAAI,EAAE,UAAU;IAErC;uEACmE;IACnE,OAAO,CAAC,KAAK;IA4Bb,OAAO,CAAC,WAAW;IAMnB;gEAC4D;IAC5D,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU;IAkCtC,8EAA8E;IAC9E,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;IAInD,OAAO,CAAC,QAAQ;IAwBhB,oEAAoE;IACpE,OAAO,CAAC,YAAY;IAUpB,iEAAiE;IACjE,WAAW,IAAI,UAAU;IAMzB;0DACsD;IACtD,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,UAAU;IAUvF,8DAA8D;IAC9D,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAS1C;uCACmC;IACnC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU;CAGtC"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps VDT blocks to structure elements of the tagged PDF (see `tagging.ts`).
|
|
3
|
+
*
|
|
4
|
+
* Renderers call {@link StructureFlow.blockElem} for every block they paint,
|
|
5
|
+
* in painting order (page by page, column by column — which is the reading
|
|
6
|
+
* order). The flow keeps the grouping state that spans blocks:
|
|
7
|
+
* - lists: consecutive `listItem` blocks become `L` › `LI` › (`Lbl`, `LBody`),
|
|
8
|
+
* nested by `listDepth`; any other block closes the open lists;
|
|
9
|
+
* - callouts: a `callout` frame opens a `Div` that receives the blocks
|
|
10
|
+
* sharing its `containerId` (split fragments reuse the same `Div`);
|
|
11
|
+
* - headings: `H1`…`H6`, clamped so the level never skips (PDF/UA-1 §7.4);
|
|
12
|
+
* - fragments: a paragraph or list item split across columns / pages
|
|
13
|
+
* keeps one element (continuations carry the head's id plus a
|
|
14
|
+
* `-cont-N` suffix), so a reader sees one paragraph, not two.
|
|
15
|
+
* Resource blocks (figures, tables) go through {@link resourceElem}, keyed
|
|
16
|
+
* by resource id so the slices of a split table share one `Table`.
|
|
17
|
+
*/
|
|
18
|
+
const HEADING = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];
|
|
19
|
+
/** The id shared by every fragment of a block split across columns /
|
|
20
|
+
* pages: the head keeps the block id, continuations add `-cont-N`. */
|
|
21
|
+
function fragmentKey(block) {
|
|
22
|
+
return block.id.replace(/-cont-\d+$/, '');
|
|
23
|
+
}
|
|
24
|
+
export class StructureFlow {
|
|
25
|
+
tree;
|
|
26
|
+
byId = new Map();
|
|
27
|
+
bulletById = new Map();
|
|
28
|
+
calloutDivs = new Map();
|
|
29
|
+
calloutTitles = new Map();
|
|
30
|
+
resources = new Map();
|
|
31
|
+
captions = new Map();
|
|
32
|
+
lists = [];
|
|
33
|
+
callout = null;
|
|
34
|
+
lastHeadingLevel = 0;
|
|
35
|
+
constructor(tree) {
|
|
36
|
+
this.tree = tree;
|
|
37
|
+
}
|
|
38
|
+
/** Enter the block's grouping context; returns the parent its element
|
|
39
|
+
* belongs to (the enclosing callout `Div`, else the document). */
|
|
40
|
+
enter(block) {
|
|
41
|
+
const cid = block.containerId;
|
|
42
|
+
if (this.callout && this.callout.containerId !== cid) {
|
|
43
|
+
this.callout = null;
|
|
44
|
+
this.lists = [];
|
|
45
|
+
}
|
|
46
|
+
if (block.type === 'callout' && cid !== undefined) {
|
|
47
|
+
this.lists = [];
|
|
48
|
+
let div = this.calloutDivs.get(cid);
|
|
49
|
+
if (!div) {
|
|
50
|
+
div = this.tree.root.child('Div');
|
|
51
|
+
this.calloutDivs.set(cid, div);
|
|
52
|
+
}
|
|
53
|
+
this.callout = { containerId: cid, div };
|
|
54
|
+
return div;
|
|
55
|
+
}
|
|
56
|
+
if (cid !== undefined && !this.callout) {
|
|
57
|
+
let div = this.calloutDivs.get(cid);
|
|
58
|
+
if (!div) {
|
|
59
|
+
div = this.tree.root.child('Div');
|
|
60
|
+
this.calloutDivs.set(cid, div);
|
|
61
|
+
}
|
|
62
|
+
this.callout = { containerId: cid, div };
|
|
63
|
+
}
|
|
64
|
+
if (block.type !== 'listItem')
|
|
65
|
+
this.lists = [];
|
|
66
|
+
return this.callout?.div ?? this.tree.root;
|
|
67
|
+
}
|
|
68
|
+
headingType(level) {
|
|
69
|
+
const clamped = Math.max(1, Math.min(6, level, this.lastHeadingLevel + 1));
|
|
70
|
+
this.lastHeadingLevel = clamped;
|
|
71
|
+
return HEADING[clamped - 1];
|
|
72
|
+
}
|
|
73
|
+
/** The element that receives the block's own text (lines, overlay title).
|
|
74
|
+
* Not for `resource` blocks — see {@link resourceElem}. */
|
|
75
|
+
blockElem(block) {
|
|
76
|
+
const key = fragmentKey(block);
|
|
77
|
+
const known = this.byId.get(key);
|
|
78
|
+
if (known) {
|
|
79
|
+
// A later fragment of the same block: keep the grouping state in step
|
|
80
|
+
// (a list item continuing on the next page must not reopen its list).
|
|
81
|
+
this.enter(block);
|
|
82
|
+
return known;
|
|
83
|
+
}
|
|
84
|
+
const parent = this.enter(block);
|
|
85
|
+
let elem;
|
|
86
|
+
switch (block.type) {
|
|
87
|
+
case 'heading':
|
|
88
|
+
elem = parent.child(this.headingType(block.headingLevel ?? 1));
|
|
89
|
+
break;
|
|
90
|
+
case 'listItem':
|
|
91
|
+
elem = this.listItem(block, parent);
|
|
92
|
+
break;
|
|
93
|
+
case 'blockquote':
|
|
94
|
+
elem = parent.child('BlockQuote').child('P');
|
|
95
|
+
break;
|
|
96
|
+
case 'mathDisplay':
|
|
97
|
+
elem = parent.child('Formula', { alt: block.mathRender?.tex ?? block.tex ?? '' });
|
|
98
|
+
break;
|
|
99
|
+
case 'callout':
|
|
100
|
+
elem = this.calloutTitle(block, parent);
|
|
101
|
+
break;
|
|
102
|
+
default:
|
|
103
|
+
elem = parent.child('P');
|
|
104
|
+
}
|
|
105
|
+
this.byId.set(key, elem);
|
|
106
|
+
return elem;
|
|
107
|
+
}
|
|
108
|
+
/** The `Lbl` of a list item's bullet / number, once {@link blockElem} ran. */
|
|
109
|
+
bulletElem(block) {
|
|
110
|
+
return this.bulletById.get(fragmentKey(block));
|
|
111
|
+
}
|
|
112
|
+
listItem(block, parent) {
|
|
113
|
+
const depth = block.listDepth ?? 1;
|
|
114
|
+
while (this.lists.length > 0 && this.lists[this.lists.length - 1].depth > depth)
|
|
115
|
+
this.lists.pop();
|
|
116
|
+
let top = this.lists[this.lists.length - 1];
|
|
117
|
+
// A list of another kind at the same depth (bullets, then numbers) is a
|
|
118
|
+
// new list beside the previous one.
|
|
119
|
+
if (top && top.depth === depth && top.kind !== block.listKind) {
|
|
120
|
+
this.lists.pop();
|
|
121
|
+
top = this.lists[this.lists.length - 1];
|
|
122
|
+
}
|
|
123
|
+
if (!top || top.depth < depth) {
|
|
124
|
+
const listParent = top?.lastBody ?? parent;
|
|
125
|
+
const numbering = block.listKind === 'ordered' ? 'Decimal' : block.listKind === 'task' ? 'None' : 'Disc';
|
|
126
|
+
const list = listParent.child('L', { attributes: [{ owner: 'List', entries: { ListNumbering: numbering } }] });
|
|
127
|
+
top = { depth, kind: block.listKind, list };
|
|
128
|
+
this.lists.push(top);
|
|
129
|
+
}
|
|
130
|
+
const item = top.list.child('LI');
|
|
131
|
+
if (block.bulletText)
|
|
132
|
+
this.bulletById.set(fragmentKey(block), item.child('Lbl'));
|
|
133
|
+
const body = item.child('LBody');
|
|
134
|
+
top.lastBody = body;
|
|
135
|
+
return body;
|
|
136
|
+
}
|
|
137
|
+
/** Title paragraph of a callout frame (its design overlay text). */
|
|
138
|
+
calloutTitle(block, div) {
|
|
139
|
+
const cid = block.containerId ?? -1;
|
|
140
|
+
let title = this.calloutTitles.get(cid);
|
|
141
|
+
if (!title) {
|
|
142
|
+
title = div.child('P');
|
|
143
|
+
this.calloutTitles.set(cid, title);
|
|
144
|
+
}
|
|
145
|
+
return title;
|
|
146
|
+
}
|
|
147
|
+
/** Heading element for a part-divider page (`page.partInfo`). */
|
|
148
|
+
partHeading() {
|
|
149
|
+
this.lists = [];
|
|
150
|
+
this.callout = null;
|
|
151
|
+
return this.tree.root.child(this.headingType(1));
|
|
152
|
+
}
|
|
153
|
+
/** The `Figure` / `Table` element of a resource block, shared by the
|
|
154
|
+
* slices of a split table (keyed by resource id). */
|
|
155
|
+
resourceElem(block, type, attrs) {
|
|
156
|
+
const parent = this.enter(block);
|
|
157
|
+
const key = block.resourceBlock?.resource.id ?? block.id;
|
|
158
|
+
const known = this.resources.get(key);
|
|
159
|
+
if (known)
|
|
160
|
+
return known;
|
|
161
|
+
const elem = parent.child(type, attrs);
|
|
162
|
+
this.resources.set(key, elem);
|
|
163
|
+
return elem;
|
|
164
|
+
}
|
|
165
|
+
/** The `Caption` child of a figure / table (created once). */
|
|
166
|
+
captionElem(owner) {
|
|
167
|
+
let cap = this.captions.get(owner);
|
|
168
|
+
if (!cap) {
|
|
169
|
+
cap = owner.child('Caption');
|
|
170
|
+
this.captions.set(owner, cap);
|
|
171
|
+
}
|
|
172
|
+
return cap;
|
|
173
|
+
}
|
|
174
|
+
/** A block-level paragraph beside a resource (its note), in the
|
|
175
|
+
* resource's grouping context. */
|
|
176
|
+
noteElem(block) {
|
|
177
|
+
return this.enter(block).child('P');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=structureFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structureFlow.js","sourceRoot":"","sources":["../../src/pdf-backend/structureFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector emission of SVG resources into the PDF content stream.
|
|
3
|
+
*
|
|
4
|
+
* Converts a conservative subset of SVG into a flat list of filled / stroked
|
|
5
|
+
* paths in the SVG's root user space, which {@link drawVectorDrawing} then
|
|
6
|
+
* paints with native PDF path operators — so the figure stays vector (sharp at
|
|
7
|
+
* any zoom, tiny on disk) instead of going through a raster fallback.
|
|
8
|
+
*
|
|
9
|
+
* Supported: `svg` (root, `viewBox`, `preserveAspectRatio`), `g` / `a`,
|
|
10
|
+
* `defs`, `path`, `rect`, `circle`, `ellipse`, `line`, `polyline`, `polygon`,
|
|
11
|
+
* `use` (of any of the above), `clipPath` (`userSpaceOnUse`), `transform`
|
|
12
|
+
* lists, solid `fill` / `stroke` paints (hex, `rgb()`, named colours,
|
|
13
|
+
* `currentColor`), `fill-rule`, opacities, line caps / joins / miter limit,
|
|
14
|
+
* dash patterns, `display` / `visibility`, the same properties inside a
|
|
15
|
+
* `style` attribute, and — when the caller supplies a {@link VectorFontResolver}
|
|
16
|
+
* — `text` / `tspan` runs (`x`, `y`, single `dx` / `dy`, `font-family`,
|
|
17
|
+
* `font-size`, `font-weight`, `font-style`, `text-anchor`), which are set as
|
|
18
|
+
* real, selectable text in the document's embedded fonts.
|
|
19
|
+
*
|
|
20
|
+
* Anything else — images, gradients, patterns, masks, filters, markers,
|
|
21
|
+
* symbols, nested `svg`, style sheets, `objectBoundingBox` clips, text on a
|
|
22
|
+
* path or with per-glyph positioning, text in a font the resolver cannot
|
|
23
|
+
* provide — makes {@link svgToVectorDrawing} return `null`, and the caller
|
|
24
|
+
* falls back to a raster embed. Bailing out (rather than drawing an
|
|
25
|
+
* approximation) keeps the printed figure faithful to what the screen
|
|
26
|
+
* backends show.
|
|
27
|
+
*
|
|
28
|
+
* Known approximations: group `opacity` is folded into each descendant's fill
|
|
29
|
+
* and stroke alpha (PDF group transparency would need a transparency group
|
|
30
|
+
* XObject); a `clipPath` with several children is the union of its shapes in
|
|
31
|
+
* SVG but is emitted as one nonzero path here; strokes under a non-uniform
|
|
32
|
+
* transform get a uniform width (the geometric mean of the scale factors).
|
|
33
|
+
*/
|
|
34
|
+
import { LineCapStyle, LineJoinStyle, type PDFFont, type PDFImage } from 'pdf-lib';
|
|
35
|
+
import { type PageCtx } from './primitives';
|
|
36
|
+
/** A solid paint: `#rrggbb` plus an alpha in [0, 1]. */
|
|
37
|
+
export interface VectorPaint {
|
|
38
|
+
hex: string;
|
|
39
|
+
alpha: number;
|
|
40
|
+
}
|
|
41
|
+
export interface VectorStroke extends VectorPaint {
|
|
42
|
+
/** Line width in root user units. */
|
|
43
|
+
width: number;
|
|
44
|
+
cap: LineCapStyle;
|
|
45
|
+
join: LineJoinStyle;
|
|
46
|
+
miterLimit: number;
|
|
47
|
+
/** Dash lengths in root user units; `null` for a solid line. */
|
|
48
|
+
dash: number[] | null;
|
|
49
|
+
dashOffset: number;
|
|
50
|
+
}
|
|
51
|
+
/** Absolute path segment in root user units. */
|
|
52
|
+
export type PathSeg = ['M', number, number] | ['L', number, number] | ['C', number, number, number, number, number, number] | ['Z'];
|
|
53
|
+
export interface VectorClip {
|
|
54
|
+
segs: PathSeg[];
|
|
55
|
+
evenOdd: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface VectorShape {
|
|
58
|
+
kind: 'path';
|
|
59
|
+
segs: PathSeg[];
|
|
60
|
+
fill: VectorPaint | null;
|
|
61
|
+
evenOdd: boolean;
|
|
62
|
+
stroke: VectorStroke | null;
|
|
63
|
+
/** Clips to intersect before painting, outermost first. */
|
|
64
|
+
clips: VectorClip[];
|
|
65
|
+
}
|
|
66
|
+
/** A 2-D affine matrix `[a, b, c, d, e, f]` (SVG / PDF convention). */
|
|
67
|
+
export type VectorMatrix = readonly [number, number, number, number, number, number];
|
|
68
|
+
/** A font the emitter can set text in. `widthOf` measures in the same units
|
|
69
|
+
* as `size` (the SVG `font-size`); `pdfFont` is the embedded pdf-lib font. */
|
|
70
|
+
export interface VectorFont {
|
|
71
|
+
widthOf(text: string, size: number): number;
|
|
72
|
+
pdfFont: PDFFont | null;
|
|
73
|
+
}
|
|
74
|
+
/** Maps an SVG `font-family` list plus weight / style to an embedded font,
|
|
75
|
+
* or `null` when none of the families can be provided. */
|
|
76
|
+
export type VectorFontResolver = (families: string[], weight: number, italic: boolean) => VectorFont | null;
|
|
77
|
+
/** One positioned run of text, in the user space of its `matrix`. */
|
|
78
|
+
export interface VectorTextRun {
|
|
79
|
+
text: string;
|
|
80
|
+
font: VectorFont;
|
|
81
|
+
size: number;
|
|
82
|
+
/** Pen position (baseline start) in local units. */
|
|
83
|
+
x: number;
|
|
84
|
+
y: number;
|
|
85
|
+
/** Local → root transform. */
|
|
86
|
+
matrix: VectorMatrix;
|
|
87
|
+
fill: VectorPaint;
|
|
88
|
+
}
|
|
89
|
+
export interface VectorText {
|
|
90
|
+
kind: 'text';
|
|
91
|
+
runs: VectorTextRun[];
|
|
92
|
+
clips: VectorClip[];
|
|
93
|
+
}
|
|
94
|
+
/** A raster picture embedded in the SVG (`<image href="data:…">`),
|
|
95
|
+
* stretched into its `(x, y, width, height)` box in the user space of
|
|
96
|
+
* `matrix`. `pdfImage` is filled in by the embedder before drawing. */
|
|
97
|
+
export interface VectorImage {
|
|
98
|
+
kind: 'image';
|
|
99
|
+
data: Uint8Array;
|
|
100
|
+
format: 'png' | 'jpeg';
|
|
101
|
+
x: number;
|
|
102
|
+
y: number;
|
|
103
|
+
width: number;
|
|
104
|
+
height: number;
|
|
105
|
+
matrix: VectorMatrix;
|
|
106
|
+
clips: VectorClip[];
|
|
107
|
+
pdfImage?: PDFImage;
|
|
108
|
+
}
|
|
109
|
+
export type VectorItem = VectorShape | VectorText | VectorImage;
|
|
110
|
+
export interface VectorDrawing {
|
|
111
|
+
/** `[minX, minY, width, height]` of the root user space. */
|
|
112
|
+
viewBox: [number, number, number, number];
|
|
113
|
+
/** Parsed `preserveAspectRatio`; `null` for `none`. */
|
|
114
|
+
aspect: {
|
|
115
|
+
xAlign: 0 | 0.5 | 1;
|
|
116
|
+
yAlign: 0 | 0.5 | 1;
|
|
117
|
+
slice: boolean;
|
|
118
|
+
} | null;
|
|
119
|
+
shapes: VectorItem[];
|
|
120
|
+
}
|
|
121
|
+
export interface SvgToVectorOptions {
|
|
122
|
+
/** Font resolver for `text` elements. Without one, any text bails out. */
|
|
123
|
+
fonts?: VectorFontResolver;
|
|
124
|
+
/** Probe mode: unsupported subtrees are skipped instead of aborting the
|
|
125
|
+
* whole conversion, so a caller can discover every font the text runs
|
|
126
|
+
* ask for (through `fonts`) even in an SVG that will end up rasterised.
|
|
127
|
+
* The returned drawing is not meant to be painted. */
|
|
128
|
+
probe?: boolean;
|
|
129
|
+
}
|
|
130
|
+
/** Parse SVG path data into absolute M / L / C / Z segments. Relative
|
|
131
|
+
* commands, H / V, smooth curves, quadratics and arcs are all normalised. */
|
|
132
|
+
export declare function parsePathData(d: string): PathSeg[];
|
|
133
|
+
/**
|
|
134
|
+
* Convert SVG markup to a {@link VectorDrawing}, or `null` when the document
|
|
135
|
+
* uses anything outside the supported subset (see the module comment). Never
|
|
136
|
+
* throws.
|
|
137
|
+
*/
|
|
138
|
+
export declare function svgToVectorDrawing(svgText: string, options?: SvgToVectorOptions): VectorDrawing | null;
|
|
139
|
+
/**
|
|
140
|
+
* Paint a {@link VectorDrawing} into the page, fitted to the given box in the
|
|
141
|
+
* document's pixel space (top-down, like every other `PageCtx` primitive).
|
|
142
|
+
*/
|
|
143
|
+
export declare function drawVectorDrawing(ctx: PageCtx, drawing: VectorDrawing, xPx: number, yPx: number, wPx: number, hPx: number): void;
|
|
144
|
+
//# sourceMappingURL=svgVector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svgVector.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/svgVector.ts"],"names":[],"mappings":"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"}
|