@shbernal/pptxgenjs 5.3.0 → 5.4.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/dist/{browser-CzGC6NnM.js → browser-DGH8T04O.js} +3 -3
- package/dist/{browser-CzGC6NnM.js.map → browser-DGH8T04O.js.map} +1 -1
- package/dist/browser.d.ts +3 -3
- package/dist/browser.js +3 -3
- package/dist/{core-interfaces-BFXQk67T.js → core-interfaces-C091uvh_.js} +13 -2
- package/dist/core-interfaces-C091uvh_.js.map +1 -0
- package/dist/core.d.ts +2 -2
- package/dist/core.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/node.d.ts +3 -3
- package/dist/node.js +3 -3
- package/dist/{pptxgen-B-mAxCRC.js → pptxgen-S8dEuBnC.js} +270 -36
- package/dist/pptxgen-S8dEuBnC.js.map +1 -0
- package/dist/{pptxgen-Clv3zz3l.d.ts → pptxgen-ZuXXUvB-.d.ts} +2 -2
- package/dist/{pptxgen-Clv3zz3l.d.ts.map → pptxgen-ZuXXUvB-.d.ts.map} +1 -1
- package/dist/standalone.d.ts +156 -5
- package/dist/standalone.d.ts.map +1 -1
- package/dist/standalone.js +280 -35
- package/dist/standalone.js.map +1 -1
- package/dist/{units-BPRPrYRg.d.ts → units-DlsWUw1U.d.ts} +157 -6
- package/dist/units-DlsWUw1U.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/core-interfaces-BFXQk67T.js.map +0 -1
- package/dist/pptxgen-B-mAxCRC.js.map +0 -1
- package/dist/units-BPRPrYRg.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-interfaces-C091uvh_.js","names":[],"sources":["../src/core-enums.ts","../src/core-interfaces.ts"],"sourcesContent":["/**\n * PptxGenJS Enums\n * NOTE: `enum` wont work for objects, so use `Object.freeze`\n */\n\nimport { EMU_PER_INCH, EMU_PER_POINT } from './units.js'\nimport type { BorderProps, OptsChartGridLine, ShadowProps } from './core-interfaces.js'\n\n// CONST\nexport const EMU = EMU_PER_INCH // One (1) inch (OfficeXML measures in EMU (English Metric Units))\nexport const ONEPT = EMU_PER_POINT // One (1) point (pt)\nexport const CRLF = '\\r\\n' // AKA: Chr(13) & Chr(10)\nexport const LAYOUT_IDX_SERIES_BASE = 2147483649\nexport const REGEX_HEX_COLOR = /^[0-9a-fA-F]{6}$/\nexport const LINEH_MODIFIER = 1.67 // AKA: Golden Ratio Typography\n\nexport const DEF_BULLET_MARGIN = 27\nexport const DEF_CELL_BORDER: BorderProps = { type: 'solid', color: '666666', pt: 1 }\nexport const DEF_CELL_MARGIN_PT: [number, number, number, number] = [3, 3, 3, 3] // TRBL-style // DEPRECATED 3.8.0\nexport const DEF_CELL_MARGIN_IN: [number, number, number, number] = [0.05, 0.1, 0.05, 0.1] // \"Normal\" margins in PPT-2021 (\"Narrow\" is `0.05` for all 4)\nexport const DEF_CHART_BORDER: BorderProps = { type: 'solid', color: '363636', pt: 1 }\nexport const DEF_CHART_GRIDLINE: OptsChartGridLine = { color: '888888', style: 'solid', size: 1, cap: 'flat' }\nexport const DEF_FONT_COLOR = '000000'\nexport const DEF_FONT_SIZE = 12\nexport const DEF_FONT_TITLE_SIZE = 18\nexport const DEF_PRES_LAYOUT = 'LAYOUT_16x9'\nexport const DEF_PRES_LAYOUT_NAME = 'DEFAULT'\nexport const DEF_SHAPE_LINE_COLOR = '333333'\nexport const DEF_SHAPE_SHADOW = { type: 'outer', blur: 3, offset: 23000 / 12700, angle: 90, color: '000000', opacity: 0.35, rotateWithShape: true }\nexport const DEF_SLIDE_BKGD = 'FFFFFF'\nexport const DEF_SLIDE_MARGIN_IN: [number, number, number, number] = [0.5, 0.5, 0.5, 0.5] // TRBL-style\nexport const DEF_TEXT_SHADOW: ShadowProps = { type: 'outer', blur: 8, offset: 4, angle: 270, color: '000000', opacity: 0.75 }\nexport const DEF_TEXT_GLOW = { size: 8, color: 'FFFFFF', opacity: 0.75 }\n\nexport const AXIS_ID_VALUE_PRIMARY = '2094734552'\nexport const AXIS_ID_VALUE_SECONDARY = '2094734553'\nexport const AXIS_ID_CATEGORY_PRIMARY = '2094734554'\nexport const AXIS_ID_CATEGORY_SECONDARY = '2094734555'\nexport const AXIS_ID_SERIES_PRIMARY = '2094734556'\n\nexport type JSZIP_OUTPUT_TYPE = 'arraybuffer' | 'base64' | 'binarystring' | 'blob' | 'nodebuffer' | 'uint8array'\nexport type WRITE_OUTPUT_TYPE = JSZIP_OUTPUT_TYPE | 'STREAM'\nexport type CHART_NAME = 'area' | 'bar' | 'bar3D' | 'bubble' | 'bubble3D' | 'doughnut' | 'line' | 'pie' | 'radar' | 'scatter'\nexport type SCHEME_COLORS = 'tx1' | 'tx2' | 'bg1' | 'bg2' | 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6'\n\nexport const LETTERS: string[] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('')\nexport const BARCHART_COLORS: string[] = [\n\t'C0504D',\n\t'4F81BD',\n\t'9BBB59',\n\t'8064A2',\n\t'4BACC6',\n\t'F79646',\n\t'628FC6',\n\t'C86360',\n\t'C0504D',\n\t'4F81BD',\n\t'9BBB59',\n\t'8064A2',\n\t'4BACC6',\n\t'F79646',\n\t'628FC6',\n\t'C86360'\n]\nexport const PIECHART_COLORS: string[] = [\n\t'5DA5DA',\n\t'FAA43A',\n\t'60BD68',\n\t'F17CB0',\n\t'B2912F',\n\t'B276B2',\n\t'DECF3F',\n\t'F15854',\n\t'A7A7A7',\n\t'5DA5DA',\n\t'FAA43A',\n\t'60BD68',\n\t'F17CB0',\n\t'B2912F',\n\t'B276B2',\n\t'DECF3F',\n\t'F15854',\n\t'A7A7A7',\n]\nexport enum TEXT_HALIGN {\n\t'left' = 'left',\n\t'center' = 'center',\n\t'right' = 'right',\n\t'justify' = 'justify',\n}\nexport enum TEXT_VALIGN {\n\t'b' = 'b',\n\t'ctr' = 'ctr',\n\t't' = 't',\n}\n\nexport const SLDNUMFLDID = '{F7021451-1387-4CA6-816F-3879F97B5CBC}'\n\n// ENUM\n// TODO: 3.5 or v4.0: rationalize ts-def exported enum names/case!\n// NOTE: First tsdef enum named correctly (shapes -> 'Shape', colors -> 'Color'), etc.\nexport enum OutputType {\n\t'arraybuffer' = 'arraybuffer',\n\t'base64' = 'base64',\n\t'binarystring' = 'binarystring',\n\t'blob' = 'blob',\n\t'nodebuffer' = 'nodebuffer',\n\t'uint8array' = 'uint8array',\n}\nexport enum ChartType {\n\t'area' = 'area',\n\t'bar' = 'bar',\n\t'bar3d' = 'bar3D',\n\t'bubble' = 'bubble',\n\t'bubble3d' = 'bubble3D',\n\t'doughnut' = 'doughnut',\n\t'line' = 'line',\n\t'pie' = 'pie',\n\t'radar' = 'radar',\n\t'scatter' = 'scatter',\n}\nexport enum ShapeType {\n\t'accentBorderCallout1' = 'accentBorderCallout1',\n\t'accentBorderCallout2' = 'accentBorderCallout2',\n\t'accentBorderCallout3' = 'accentBorderCallout3',\n\t'accentCallout1' = 'accentCallout1',\n\t'accentCallout2' = 'accentCallout2',\n\t'accentCallout3' = 'accentCallout3',\n\t'actionButtonBackPrevious' = 'actionButtonBackPrevious',\n\t'actionButtonBeginning' = 'actionButtonBeginning',\n\t'actionButtonBlank' = 'actionButtonBlank',\n\t'actionButtonDocument' = 'actionButtonDocument',\n\t'actionButtonEnd' = 'actionButtonEnd',\n\t'actionButtonForwardNext' = 'actionButtonForwardNext',\n\t'actionButtonHelp' = 'actionButtonHelp',\n\t'actionButtonHome' = 'actionButtonHome',\n\t'actionButtonInformation' = 'actionButtonInformation',\n\t'actionButtonMovie' = 'actionButtonMovie',\n\t'actionButtonReturn' = 'actionButtonReturn',\n\t'actionButtonSound' = 'actionButtonSound',\n\t'arc' = 'arc',\n\t'bentArrow' = 'bentArrow',\n\t'bentUpArrow' = 'bentUpArrow',\n\t'bevel' = 'bevel',\n\t'blockArc' = 'blockArc',\n\t'borderCallout1' = 'borderCallout1',\n\t'borderCallout2' = 'borderCallout2',\n\t'borderCallout3' = 'borderCallout3',\n\t'bracePair' = 'bracePair',\n\t'bracketPair' = 'bracketPair',\n\t'callout1' = 'callout1',\n\t'callout2' = 'callout2',\n\t'callout3' = 'callout3',\n\t'can' = 'can',\n\t'chartPlus' = 'chartPlus',\n\t'chartStar' = 'chartStar',\n\t'chartX' = 'chartX',\n\t'chevron' = 'chevron',\n\t'chord' = 'chord',\n\t'circularArrow' = 'circularArrow',\n\t'cloud' = 'cloud',\n\t'cloudCallout' = 'cloudCallout',\n\t'corner' = 'corner',\n\t'cornerTabs' = 'cornerTabs',\n\t'cube' = 'cube',\n\t'curvedDownArrow' = 'curvedDownArrow',\n\t'curvedLeftArrow' = 'curvedLeftArrow',\n\t'curvedRightArrow' = 'curvedRightArrow',\n\t'curvedUpArrow' = 'curvedUpArrow',\n\t'custGeom' = 'custGeom',\n\t'decagon' = 'decagon',\n\t'diagStripe' = 'diagStripe',\n\t'diamond' = 'diamond',\n\t'dodecagon' = 'dodecagon',\n\t'donut' = 'donut',\n\t'doubleWave' = 'doubleWave',\n\t'downArrow' = 'downArrow',\n\t'downArrowCallout' = 'downArrowCallout',\n\t'ellipse' = 'ellipse',\n\t'ellipseRibbon' = 'ellipseRibbon',\n\t'ellipseRibbon2' = 'ellipseRibbon2',\n\t'flowChartAlternateProcess' = 'flowChartAlternateProcess',\n\t'flowChartCollate' = 'flowChartCollate',\n\t'flowChartConnector' = 'flowChartConnector',\n\t'flowChartDecision' = 'flowChartDecision',\n\t'flowChartDelay' = 'flowChartDelay',\n\t'flowChartDisplay' = 'flowChartDisplay',\n\t'flowChartDocument' = 'flowChartDocument',\n\t'flowChartExtract' = 'flowChartExtract',\n\t'flowChartInputOutput' = 'flowChartInputOutput',\n\t'flowChartInternalStorage' = 'flowChartInternalStorage',\n\t'flowChartMagneticDisk' = 'flowChartMagneticDisk',\n\t'flowChartMagneticDrum' = 'flowChartMagneticDrum',\n\t'flowChartMagneticTape' = 'flowChartMagneticTape',\n\t'flowChartManualInput' = 'flowChartManualInput',\n\t'flowChartManualOperation' = 'flowChartManualOperation',\n\t'flowChartMerge' = 'flowChartMerge',\n\t'flowChartMultidocument' = 'flowChartMultidocument',\n\t'flowChartOfflineStorage' = 'flowChartOfflineStorage',\n\t'flowChartOffpageConnector' = 'flowChartOffpageConnector',\n\t'flowChartOnlineStorage' = 'flowChartOnlineStorage',\n\t'flowChartOr' = 'flowChartOr',\n\t'flowChartPredefinedProcess' = 'flowChartPredefinedProcess',\n\t'flowChartPreparation' = 'flowChartPreparation',\n\t'flowChartProcess' = 'flowChartProcess',\n\t'flowChartPunchedCard' = 'flowChartPunchedCard',\n\t'flowChartPunchedTape' = 'flowChartPunchedTape',\n\t'flowChartSort' = 'flowChartSort',\n\t'flowChartSummingJunction' = 'flowChartSummingJunction',\n\t'flowChartTerminator' = 'flowChartTerminator',\n\t'foldedCorner' = 'foldedCorner',\n\t'frame' = 'frame',\n\t'funnel' = 'funnel',\n\t'gear6' = 'gear6',\n\t'gear9' = 'gear9',\n\t'halfFrame' = 'halfFrame',\n\t'heart' = 'heart',\n\t'heptagon' = 'heptagon',\n\t'hexagon' = 'hexagon',\n\t'homePlate' = 'homePlate',\n\t'horizontalScroll' = 'horizontalScroll',\n\t'irregularSeal1' = 'irregularSeal1',\n\t'irregularSeal2' = 'irregularSeal2',\n\t'leftArrow' = 'leftArrow',\n\t'leftArrowCallout' = 'leftArrowCallout',\n\t'leftBrace' = 'leftBrace',\n\t'leftBracket' = 'leftBracket',\n\t'leftCircularArrow' = 'leftCircularArrow',\n\t'leftRightArrow' = 'leftRightArrow',\n\t'leftRightArrowCallout' = 'leftRightArrowCallout',\n\t'leftRightCircularArrow' = 'leftRightCircularArrow',\n\t'leftRightRibbon' = 'leftRightRibbon',\n\t'leftRightUpArrow' = 'leftRightUpArrow',\n\t'leftUpArrow' = 'leftUpArrow',\n\t'lightningBolt' = 'lightningBolt',\n\t'line' = 'line',\n\t'lineInv' = 'lineInv',\n\t'mathDivide' = 'mathDivide',\n\t'mathEqual' = 'mathEqual',\n\t'mathMinus' = 'mathMinus',\n\t'mathMultiply' = 'mathMultiply',\n\t'mathNotEqual' = 'mathNotEqual',\n\t'mathPlus' = 'mathPlus',\n\t'moon' = 'moon',\n\t'noSmoking' = 'noSmoking',\n\t'nonIsoscelesTrapezoid' = 'nonIsoscelesTrapezoid',\n\t'notchedRightArrow' = 'notchedRightArrow',\n\t'octagon' = 'octagon',\n\t'parallelogram' = 'parallelogram',\n\t'pentagon' = 'pentagon',\n\t'pie' = 'pie',\n\t'pieWedge' = 'pieWedge',\n\t'plaque' = 'plaque',\n\t'plaqueTabs' = 'plaqueTabs',\n\t'plus' = 'plus',\n\t'quadArrow' = 'quadArrow',\n\t'quadArrowCallout' = 'quadArrowCallout',\n\t'rect' = 'rect',\n\t'ribbon' = 'ribbon',\n\t'ribbon2' = 'ribbon2',\n\t'rightArrow' = 'rightArrow',\n\t'rightArrowCallout' = 'rightArrowCallout',\n\t'rightBrace' = 'rightBrace',\n\t'rightBracket' = 'rightBracket',\n\t'round1Rect' = 'round1Rect',\n\t'round2DiagRect' = 'round2DiagRect',\n\t'round2SameRect' = 'round2SameRect',\n\t'roundRect' = 'roundRect',\n\t'rtTriangle' = 'rtTriangle',\n\t'smileyFace' = 'smileyFace',\n\t'snip1Rect' = 'snip1Rect',\n\t'snip2DiagRect' = 'snip2DiagRect',\n\t'snip2SameRect' = 'snip2SameRect',\n\t'snipRoundRect' = 'snipRoundRect',\n\t'squareTabs' = 'squareTabs',\n\t'star10' = 'star10',\n\t'star12' = 'star12',\n\t'star16' = 'star16',\n\t'star24' = 'star24',\n\t'star32' = 'star32',\n\t'star4' = 'star4',\n\t'star5' = 'star5',\n\t'star6' = 'star6',\n\t'star7' = 'star7',\n\t'star8' = 'star8',\n\t'stripedRightArrow' = 'stripedRightArrow',\n\t'sun' = 'sun',\n\t'swooshArrow' = 'swooshArrow',\n\t'teardrop' = 'teardrop',\n\t'trapezoid' = 'trapezoid',\n\t'triangle' = 'triangle',\n\t'upArrow' = 'upArrow',\n\t'upArrowCallout' = 'upArrowCallout',\n\t'upDownArrow' = 'upDownArrow',\n\t'upDownArrowCallout' = 'upDownArrowCallout',\n\t'uturnArrow' = 'uturnArrow',\n\t'verticalScroll' = 'verticalScroll',\n\t'wave' = 'wave',\n\t'wedgeEllipseCallout' = 'wedgeEllipseCallout',\n\t'wedgeRectCallout' = 'wedgeRectCallout',\n\t'wedgeRoundRectCallout' = 'wedgeRoundRectCallout',\n}\n/**\n * TODO: FUTURE: v4.0: rename to `ThemeColor`\n */\nexport enum SchemeColor {\n\t'text1' = 'tx1',\n\t'text2' = 'tx2',\n\t'background1' = 'bg1',\n\t'background2' = 'bg2',\n\t'accent1' = 'accent1',\n\t'accent2' = 'accent2',\n\t'accent3' = 'accent3',\n\t'accent4' = 'accent4',\n\t'accent5' = 'accent5',\n\t'accent6' = 'accent6',\n}\nexport enum AlignH {\n\t'left' = 'left',\n\t'center' = 'center',\n\t'right' = 'right',\n\t'justify' = 'justify',\n}\nexport enum AlignV {\n\t'top' = 'top',\n\t'middle' = 'middle',\n\t'bottom' = 'bottom',\n}\n\nexport enum SHAPE_TYPE {\n\tACTION_BUTTON_BACK_OR_PREVIOUS = 'actionButtonBackPrevious',\n\tACTION_BUTTON_BEGINNING = 'actionButtonBeginning',\n\tACTION_BUTTON_CUSTOM = 'actionButtonBlank',\n\tACTION_BUTTON_DOCUMENT = 'actionButtonDocument',\n\tACTION_BUTTON_END = 'actionButtonEnd',\n\tACTION_BUTTON_FORWARD_OR_NEXT = 'actionButtonForwardNext',\n\tACTION_BUTTON_HELP = 'actionButtonHelp',\n\tACTION_BUTTON_HOME = 'actionButtonHome',\n\tACTION_BUTTON_INFORMATION = 'actionButtonInformation',\n\tACTION_BUTTON_MOVIE = 'actionButtonMovie',\n\tACTION_BUTTON_RETURN = 'actionButtonReturn',\n\tACTION_BUTTON_SOUND = 'actionButtonSound',\n\tARC = 'arc',\n\tBALLOON = 'wedgeRoundRectCallout',\n\tBENT_ARROW = 'bentArrow',\n\tBENT_UP_ARROW = 'bentUpArrow',\n\tBEVEL = 'bevel',\n\tBLOCK_ARC = 'blockArc',\n\tCAN = 'can',\n\tCHART_PLUS = 'chartPlus',\n\tCHART_STAR = 'chartStar',\n\tCHART_X = 'chartX',\n\tCHEVRON = 'chevron',\n\tCHORD = 'chord',\n\tCIRCULAR_ARROW = 'circularArrow',\n\tCLOUD = 'cloud',\n\tCLOUD_CALLOUT = 'cloudCallout',\n\tCORNER = 'corner',\n\tCORNER_TABS = 'cornerTabs',\n\tCROSS = 'plus',\n\tCUBE = 'cube',\n\tCURVED_DOWN_ARROW = 'curvedDownArrow',\n\tCURVED_DOWN_RIBBON = 'ellipseRibbon',\n\tCURVED_LEFT_ARROW = 'curvedLeftArrow',\n\tCURVED_RIGHT_ARROW = 'curvedRightArrow',\n\tCURVED_UP_ARROW = 'curvedUpArrow',\n\tCURVED_UP_RIBBON = 'ellipseRibbon2',\n\tCUSTOM_GEOMETRY = 'custGeom',\n\tDECAGON = 'decagon',\n\tDIAGONAL_STRIPE = 'diagStripe',\n\tDIAMOND = 'diamond',\n\tDODECAGON = 'dodecagon',\n\tDONUT = 'donut',\n\tDOUBLE_BRACE = 'bracePair',\n\tDOUBLE_BRACKET = 'bracketPair',\n\tDOUBLE_WAVE = 'doubleWave',\n\tDOWN_ARROW = 'downArrow',\n\tDOWN_ARROW_CALLOUT = 'downArrowCallout',\n\tDOWN_RIBBON = 'ribbon',\n\tEXPLOSION1 = 'irregularSeal1',\n\tEXPLOSION2 = 'irregularSeal2',\n\tFLOWCHART_ALTERNATE_PROCESS = 'flowChartAlternateProcess',\n\tFLOWCHART_CARD = 'flowChartPunchedCard',\n\tFLOWCHART_COLLATE = 'flowChartCollate',\n\tFLOWCHART_CONNECTOR = 'flowChartConnector',\n\tFLOWCHART_DATA = 'flowChartInputOutput',\n\tFLOWCHART_DECISION = 'flowChartDecision',\n\tFLOWCHART_DELAY = 'flowChartDelay',\n\tFLOWCHART_DIRECT_ACCESS_STORAGE = 'flowChartMagneticDrum',\n\tFLOWCHART_DISPLAY = 'flowChartDisplay',\n\tFLOWCHART_DOCUMENT = 'flowChartDocument',\n\tFLOWCHART_EXTRACT = 'flowChartExtract',\n\tFLOWCHART_INTERNAL_STORAGE = 'flowChartInternalStorage',\n\tFLOWCHART_MAGNETIC_DISK = 'flowChartMagneticDisk',\n\tFLOWCHART_MANUAL_INPUT = 'flowChartManualInput',\n\tFLOWCHART_MANUAL_OPERATION = 'flowChartManualOperation',\n\tFLOWCHART_MERGE = 'flowChartMerge',\n\tFLOWCHART_MULTIDOCUMENT = 'flowChartMultidocument',\n\tFLOWCHART_OFFLINE_STORAGE = 'flowChartOfflineStorage',\n\tFLOWCHART_OFFPAGE_CONNECTOR = 'flowChartOffpageConnector',\n\tFLOWCHART_OR = 'flowChartOr',\n\tFLOWCHART_PREDEFINED_PROCESS = 'flowChartPredefinedProcess',\n\tFLOWCHART_PREPARATION = 'flowChartPreparation',\n\tFLOWCHART_PROCESS = 'flowChartProcess',\n\tFLOWCHART_PUNCHED_TAPE = 'flowChartPunchedTape',\n\tFLOWCHART_SEQUENTIAL_ACCESS_STORAGE = 'flowChartMagneticTape',\n\tFLOWCHART_SORT = 'flowChartSort',\n\tFLOWCHART_STORED_DATA = 'flowChartOnlineStorage',\n\tFLOWCHART_SUMMING_JUNCTION = 'flowChartSummingJunction',\n\tFLOWCHART_TERMINATOR = 'flowChartTerminator',\n\tFOLDED_CORNER = 'foldedCorner',\n\tFRAME = 'frame',\n\tFUNNEL = 'funnel',\n\tGEAR_6 = 'gear6',\n\tGEAR_9 = 'gear9',\n\tHALF_FRAME = 'halfFrame',\n\tHEART = 'heart',\n\tHEPTAGON = 'heptagon',\n\tHEXAGON = 'hexagon',\n\tHORIZONTAL_SCROLL = 'horizontalScroll',\n\tISOSCELES_TRIANGLE = 'triangle',\n\tLEFT_ARROW = 'leftArrow',\n\tLEFT_ARROW_CALLOUT = 'leftArrowCallout',\n\tLEFT_BRACE = 'leftBrace',\n\tLEFT_BRACKET = 'leftBracket',\n\tLEFT_CIRCULAR_ARROW = 'leftCircularArrow',\n\tLEFT_RIGHT_ARROW = 'leftRightArrow',\n\tLEFT_RIGHT_ARROW_CALLOUT = 'leftRightArrowCallout',\n\tLEFT_RIGHT_CIRCULAR_ARROW = 'leftRightCircularArrow',\n\tLEFT_RIGHT_RIBBON = 'leftRightRibbon',\n\tLEFT_RIGHT_UP_ARROW = 'leftRightUpArrow',\n\tLEFT_UP_ARROW = 'leftUpArrow',\n\tLIGHTNING_BOLT = 'lightningBolt',\n\tLINE_CALLOUT_1 = 'borderCallout1',\n\tLINE_CALLOUT_1_ACCENT_BAR = 'accentCallout1',\n\tLINE_CALLOUT_1_BORDER_AND_ACCENT_BAR = 'accentBorderCallout1',\n\tLINE_CALLOUT_1_NO_BORDER = 'callout1',\n\tLINE_CALLOUT_2 = 'borderCallout2',\n\tLINE_CALLOUT_2_ACCENT_BAR = 'accentCallout2',\n\tLINE_CALLOUT_2_BORDER_AND_ACCENT_BAR = 'accentBorderCallout2',\n\tLINE_CALLOUT_2_NO_BORDER = 'callout2',\n\tLINE_CALLOUT_3 = 'borderCallout3',\n\tLINE_CALLOUT_3_ACCENT_BAR = 'accentCallout3',\n\tLINE_CALLOUT_3_BORDER_AND_ACCENT_BAR = 'accentBorderCallout3',\n\tLINE_CALLOUT_3_NO_BORDER = 'callout3',\n\tLINE = 'line',\n\tLINE_INVERSE = 'lineInv',\n\tMATH_DIVIDE = 'mathDivide',\n\tMATH_EQUAL = 'mathEqual',\n\tMATH_MINUS = 'mathMinus',\n\tMATH_MULTIPLY = 'mathMultiply',\n\tMATH_NOT_EQUAL = 'mathNotEqual',\n\tMATH_PLUS = 'mathPlus',\n\tMOON = 'moon',\n\tNON_ISOSCELES_TRAPEZOID = 'nonIsoscelesTrapezoid',\n\tNOTCHED_RIGHT_ARROW = 'notchedRightArrow',\n\tNO_SYMBOL = 'noSmoking',\n\tOCTAGON = 'octagon',\n\tOVAL = 'ellipse',\n\tOVAL_CALLOUT = 'wedgeEllipseCallout',\n\tPARALLELOGRAM = 'parallelogram',\n\tPENTAGON = 'homePlate',\n\tPIE = 'pie',\n\tPIE_WEDGE = 'pieWedge',\n\tPLAQUE = 'plaque',\n\tPLAQUE_TABS = 'plaqueTabs',\n\tQUAD_ARROW = 'quadArrow',\n\tQUAD_ARROW_CALLOUT = 'quadArrowCallout',\n\tRECTANGLE = 'rect',\n\tRECTANGULAR_CALLOUT = 'wedgeRectCallout',\n\tREGULAR_PENTAGON = 'pentagon',\n\tRIGHT_ARROW = 'rightArrow',\n\tRIGHT_ARROW_CALLOUT = 'rightArrowCallout',\n\tRIGHT_BRACE = 'rightBrace',\n\tRIGHT_BRACKET = 'rightBracket',\n\tRIGHT_TRIANGLE = 'rtTriangle',\n\tROUNDED_RECTANGLE = 'roundRect',\n\t// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\n\tROUNDED_RECTANGULAR_CALLOUT = 'wedgeRoundRectCallout',\n\tROUND_1_RECTANGLE = 'round1Rect',\n\tROUND_2_DIAG_RECTANGLE = 'round2DiagRect',\n\tROUND_2_SAME_RECTANGLE = 'round2SameRect',\n\tSMILEY_FACE = 'smileyFace',\n\tSNIP_1_RECTANGLE = 'snip1Rect',\n\tSNIP_2_DIAG_RECTANGLE = 'snip2DiagRect',\n\tSNIP_2_SAME_RECTANGLE = 'snip2SameRect',\n\tSNIP_ROUND_RECTANGLE = 'snipRoundRect',\n\tSQUARE_TABS = 'squareTabs',\n\tSTAR_10_POINT = 'star10',\n\tSTAR_12_POINT = 'star12',\n\tSTAR_16_POINT = 'star16',\n\tSTAR_24_POINT = 'star24',\n\tSTAR_32_POINT = 'star32',\n\tSTAR_4_POINT = 'star4',\n\tSTAR_5_POINT = 'star5',\n\tSTAR_6_POINT = 'star6',\n\tSTAR_7_POINT = 'star7',\n\tSTAR_8_POINT = 'star8',\n\tSTRIPED_RIGHT_ARROW = 'stripedRightArrow',\n\tSUN = 'sun',\n\tSWOOSH_ARROW = 'swooshArrow',\n\tTEAR = 'teardrop',\n\tTRAPEZOID = 'trapezoid',\n\tUP_ARROW = 'upArrow',\n\tUP_ARROW_CALLOUT = 'upArrowCallout',\n\tUP_DOWN_ARROW = 'upDownArrow',\n\tUP_DOWN_ARROW_CALLOUT = 'upDownArrowCallout',\n\tUP_RIBBON = 'ribbon2',\n\tU_TURN_ARROW = 'uturnArrow',\n\tVERTICAL_SCROLL = 'verticalScroll',\n\tWAVE = 'wave',\n}\nexport type SHAPE_NAME =\n\t| 'accentBorderCallout1'\n\t| 'accentBorderCallout2'\n\t| 'accentBorderCallout3'\n\t| 'accentCallout1'\n\t| 'accentCallout2'\n\t| 'accentCallout3'\n\t| 'actionButtonBackPrevious'\n\t| 'actionButtonBeginning'\n\t| 'actionButtonBlank'\n\t| 'actionButtonDocument'\n\t| 'actionButtonEnd'\n\t| 'actionButtonForwardNext'\n\t| 'actionButtonHelp'\n\t| 'actionButtonHome'\n\t| 'actionButtonInformation'\n\t| 'actionButtonMovie'\n\t| 'actionButtonReturn'\n\t| 'actionButtonSound'\n\t| 'arc'\n\t| 'bentArrow'\n\t| 'bentUpArrow'\n\t| 'bevel'\n\t| 'blockArc'\n\t| 'borderCallout1'\n\t| 'borderCallout2'\n\t| 'borderCallout3'\n\t| 'bracePair'\n\t| 'bracketPair'\n\t| 'callout1'\n\t| 'callout2'\n\t| 'callout3'\n\t| 'can'\n\t| 'chartPlus'\n\t| 'chartStar'\n\t| 'chartX'\n\t| 'chevron'\n\t| 'chord'\n\t| 'circularArrow'\n\t| 'cloud'\n\t| 'cloudCallout'\n\t| 'corner'\n\t| 'cornerTabs'\n\t| 'cube'\n\t| 'curvedDownArrow'\n\t| 'curvedLeftArrow'\n\t| 'curvedRightArrow'\n\t| 'curvedUpArrow'\n\t| 'custGeom'\n\t| 'decagon'\n\t| 'diagStripe'\n\t| 'diamond'\n\t| 'dodecagon'\n\t| 'donut'\n\t| 'doubleWave'\n\t| 'downArrow'\n\t| 'downArrowCallout'\n\t| 'ellipse'\n\t| 'ellipseRibbon'\n\t| 'ellipseRibbon2'\n\t| 'flowChartAlternateProcess'\n\t| 'flowChartCollate'\n\t| 'flowChartConnector'\n\t| 'flowChartDecision'\n\t| 'flowChartDelay'\n\t| 'flowChartDisplay'\n\t| 'flowChartDocument'\n\t| 'flowChartExtract'\n\t| 'flowChartInputOutput'\n\t| 'flowChartInternalStorage'\n\t| 'flowChartMagneticDisk'\n\t| 'flowChartMagneticDrum'\n\t| 'flowChartMagneticTape'\n\t| 'flowChartManualInput'\n\t| 'flowChartManualOperation'\n\t| 'flowChartMerge'\n\t| 'flowChartMultidocument'\n\t| 'flowChartOfflineStorage'\n\t| 'flowChartOffpageConnector'\n\t| 'flowChartOnlineStorage'\n\t| 'flowChartOr'\n\t| 'flowChartPredefinedProcess'\n\t| 'flowChartPreparation'\n\t| 'flowChartProcess'\n\t| 'flowChartPunchedCard'\n\t| 'flowChartPunchedTape'\n\t| 'flowChartSort'\n\t| 'flowChartSummingJunction'\n\t| 'flowChartTerminator'\n\t| 'foldedCorner'\n\t| 'frame'\n\t| 'funnel'\n\t| 'gear6'\n\t| 'gear9'\n\t| 'halfFrame'\n\t| 'heart'\n\t| 'heptagon'\n\t| 'hexagon'\n\t| 'homePlate'\n\t| 'horizontalScroll'\n\t| 'irregularSeal1'\n\t| 'irregularSeal2'\n\t| 'leftArrow'\n\t| 'leftArrowCallout'\n\t| 'leftBrace'\n\t| 'leftBracket'\n\t| 'leftCircularArrow'\n\t| 'leftRightArrow'\n\t| 'leftRightArrowCallout'\n\t| 'leftRightCircularArrow'\n\t| 'leftRightRibbon'\n\t| 'leftRightUpArrow'\n\t| 'leftUpArrow'\n\t| 'lightningBolt'\n\t| 'line'\n\t| 'lineInv'\n\t| 'mathDivide'\n\t| 'mathEqual'\n\t| 'mathMinus'\n\t| 'mathMultiply'\n\t| 'mathNotEqual'\n\t| 'mathPlus'\n\t| 'moon'\n\t| 'noSmoking'\n\t| 'nonIsoscelesTrapezoid'\n\t| 'notchedRightArrow'\n\t| 'octagon'\n\t| 'parallelogram'\n\t| 'pentagon'\n\t| 'pie'\n\t| 'pieWedge'\n\t| 'plaque'\n\t| 'plaqueTabs'\n\t| 'plus'\n\t| 'quadArrow'\n\t| 'quadArrowCallout'\n\t| 'rect'\n\t| 'ribbon'\n\t| 'ribbon2'\n\t| 'rightArrow'\n\t| 'rightArrowCallout'\n\t| 'rightBrace'\n\t| 'rightBracket'\n\t| 'round1Rect'\n\t| 'round2DiagRect'\n\t| 'round2SameRect'\n\t| 'roundRect'\n\t| 'rtTriangle'\n\t| 'smileyFace'\n\t| 'snip1Rect'\n\t| 'snip2DiagRect'\n\t| 'snip2SameRect'\n\t| 'snipRoundRect'\n\t| 'squareTabs'\n\t| 'star10'\n\t| 'star12'\n\t| 'star16'\n\t| 'star24'\n\t| 'star32'\n\t| 'star4'\n\t| 'star5'\n\t| 'star6'\n\t| 'star7'\n\t| 'star8'\n\t| 'stripedRightArrow'\n\t| 'sun'\n\t| 'swooshArrow'\n\t| 'teardrop'\n\t| 'trapezoid'\n\t| 'triangle'\n\t| 'upArrow'\n\t| 'upArrowCallout'\n\t| 'upDownArrow'\n\t| 'upDownArrowCallout'\n\t| 'uturnArrow'\n\t| 'verticalScroll'\n\t| 'wave'\n\t| 'wedgeEllipseCallout'\n\t| 'wedgeRectCallout'\n\t| 'wedgeRoundRectCallout'\n\n/**\n * Valid ECMA-376 `ST_ShapeType` presets that are not surfaced with a friendly\n * `SHAPE_TYPE` name. They are still legal geometries PowerPoint renders, so the\n * preset-validation set must accept them.\n */\nconst EXTRA_SHAPE_PRESETS = [\n\t'straightConnector1',\n\t'bentConnector2', 'bentConnector3', 'bentConnector4', 'bentConnector5',\n\t'curvedConnector2', 'curvedConnector3', 'curvedConnector4', 'curvedConnector5',\n] as const\n\n/**\n * Every shape geometry name PptxGenJS can serialize without corrupting the\n * package: the OOXML preset geometries (`ST_ShapeType` — `SHAPE_TYPE` values\n * plus the unexposed connectors above) and `custGeom` (freeform paths, emitted\n * as `<a:custGeom>` rather than `<a:prstGeom>`). Used to reject bogus presets\n * before they become an invalid `<a:prstGeom prst=\"...\">` that triggers\n * PowerPoint's \"needs repair\" dialog and drops the shape.\n */\nexport const VALID_SHAPE_PRESETS: ReadonlySet<string> = new Set<string>([...Object.values(SHAPE_TYPE), ...EXTRA_SHAPE_PRESETS])\n\nexport enum CHART_TYPE {\n\t'AREA' = 'area',\n\t'BAR' = 'bar',\n\t'BAR3D' = 'bar3D',\n\t'BUBBLE' = 'bubble',\n\t'BUBBLE3D' = 'bubble3D',\n\t'DOUGHNUT' = 'doughnut',\n\t'LINE' = 'line',\n\t'PIE' = 'pie',\n\t'RADAR' = 'radar',\n\t'SCATTER' = 'scatter',\n}\n\nexport enum SCHEME_COLOR_NAMES {\n\t'TEXT1' = 'tx1',\n\t'TEXT2' = 'tx2',\n\t'BACKGROUND1' = 'bg1',\n\t'BACKGROUND2' = 'bg2',\n\t'ACCENT1' = 'accent1',\n\t'ACCENT2' = 'accent2',\n\t'ACCENT3' = 'accent3',\n\t'ACCENT4' = 'accent4',\n\t'ACCENT5' = 'accent5',\n\t'ACCENT6' = 'accent6',\n}\n\nexport enum MASTER_OBJECTS {\n\t'chart' = 'chart',\n\t'image' = 'image',\n\t'line' = 'line',\n\t'rect' = 'rect',\n\t'text' = 'text',\n\t'placeholder' = 'placeholder',\n}\n\nexport enum SLIDE_OBJECT_TYPES {\n\t'chart' = 'chart',\n\t'connector' = 'connector',\n\t'hyperlink' = 'hyperlink',\n\t'image' = 'image',\n\t'media' = 'media',\n\t'online' = 'online',\n\t'placeholder' = 'placeholder',\n\t'table' = 'table',\n\t'tablecell' = 'tablecell',\n\t'text' = 'text',\n\t'notes' = 'notes',\n}\n\n/**\n * Maps a friendly `ConnectorType` to its OOXML connector preset geometry (`prst`).\n * These are the canonical 1-segment straight, 3-segment bent (elbow), and 3-segment\n * curved connector presets PowerPoint uses by default.\n */\nexport const CONNECTOR_PRESETS: Record<'straight' | 'elbow' | 'curved', string> = {\n\tstraight: 'straightConnector1',\n\telbow: 'bentConnector3',\n\tcurved: 'curvedConnector3',\n}\nexport enum PLACEHOLDER_TYPES {\n\t'title' = 'title',\n\t'body' = 'body',\n\t'image' = 'pic',\n\t'chart' = 'chart',\n\t'table' = 'tbl',\n\t'media' = 'media',\n}\nexport type PLACEHOLDER_TYPE = 'title' | 'body' | 'pic' | 'chart' | 'tbl' | 'media'\n\n/**\n * NOTE: 20170304: BULLET_TYPES: Only default is used so far. I'd like to combine the two pieces of code that use these before implementing these as options\n * Since we close <p> within the text object bullets, its slightly more difficult than combining into a func and calling to get the paraProp\n * and i'm not sure if anyone will even use these... so, skipping for now.\n */\nexport enum BULLET_TYPES {\n\t'DEFAULT' = '•',\n\t'CHECK' = '✓',\n\t'STAR' = '★',\n\t'TRIANGLE' = '▶',\n}\n\n/**\n * Built-in PowerPoint table style IDs.\n *\n * Each value is the GUID that goes into `<a:tableStyleId>` inside `<a:tblPr>`.\n * These 74 GUIDs are the complete set defined in [MS-OE376] §5.1.6.10 and are\n * resolved by PowerPoint without embedding any style definition in the file.\n *\n * Only these enum members are supported. Raw GUID strings are not accepted;\n * use `TABLE_STYLE` members exclusively.\n */\nexport enum TABLE_STYLE {\n\t// ── No style ────────────────────────────────────────────────────────────\n\tNO_STYLE_NO_GRID = '{2D5ABB26-0587-4C30-8999-92F81FD0307C}',\n\tNO_STYLE_TABLE_GRID = '{5940675A-B579-460E-94D1-54222C63F5DA}',\n\n\t// ── Themed Style 1 ──────────────────────────────────────────────────────\n\tTHEMED_STYLE_1_ACCENT_1 = '{3C2FFA5D-87B4-456A-9821-1D502468CF0F}',\n\tTHEMED_STYLE_1_ACCENT_2 = '{284E427A-3D55-4303-BF80-6455036E1DE7}',\n\tTHEMED_STYLE_1_ACCENT_3 = '{69C7853C-536D-4A76-A0AE-DD22124D55A5}',\n\tTHEMED_STYLE_1_ACCENT_4 = '{775DCB02-9BB8-47FD-8907-85C794F793BA}',\n\tTHEMED_STYLE_1_ACCENT_5 = '{35758FB7-9AC5-4552-8A53-C91805E547FA}',\n\tTHEMED_STYLE_1_ACCENT_6 = '{08FB837D-C827-4EFA-A057-4D05807E0F7C}',\n\n\t// ── Themed Style 2 ──────────────────────────────────────────────────────\n\tTHEMED_STYLE_2_ACCENT_1 = '{D113A9D2-9D6B-4929-AA2D-F23B5EE8CBE7}',\n\tTHEMED_STYLE_2_ACCENT_2 = '{18603FDC-E32A-4AB5-989C-0864C3EAD2B8}',\n\tTHEMED_STYLE_2_ACCENT_3 = '{306799F8-075E-4A3A-A7F6-7FBC6576F1A4}',\n\tTHEMED_STYLE_2_ACCENT_4 = '{E269D01E-BC32-4049-B463-5C60D7B0CCD2}',\n\tTHEMED_STYLE_2_ACCENT_5 = '{327F97BB-C833-4FB7-BDE5-3F7075034690}',\n\tTHEMED_STYLE_2_ACCENT_6 = '{638B1855-1B75-4FBE-930C-398BA8C253C6}',\n\n\t// ── Light Style 1 ───────────────────────────────────────────────────────\n\tLIGHT_STYLE_1 = '{9D7B26C5-4107-4FEC-AEDC-1716B250A1EF}',\n\tLIGHT_STYLE_1_ACCENT_1 = '{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}',\n\tLIGHT_STYLE_1_ACCENT_2 = '{0E3FDE45-AF77-4B5C-9715-49D594BDF05E}',\n\tLIGHT_STYLE_1_ACCENT_3 = '{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}',\n\tLIGHT_STYLE_1_ACCENT_4 = '{D27102A9-8310-4765-A935-A1911B00CA55}',\n\tLIGHT_STYLE_1_ACCENT_5 = '{5FD0F851-EC5A-4D38-B0AD-8093EC10F338}',\n\tLIGHT_STYLE_1_ACCENT_6 = '{68D230F3-CF80-4859-8CE7-A43EE81993B5}',\n\n\t// ── Light Style 2 ───────────────────────────────────────────────────────\n\tLIGHT_STYLE_2 = '{7E9639D4-E3E2-4D34-9284-5A2195B3D0D7}',\n\tLIGHT_STYLE_2_ACCENT_1 = '{69012ECD-51FC-41F1-AA8D-1B2483CD663E}',\n\tLIGHT_STYLE_2_ACCENT_2 = '{72833802-FEF1-4C79-8D5D-14CF1EAF98D9}',\n\tLIGHT_STYLE_2_ACCENT_3 = '{F2DE63D5-997A-4646-A377-4702673A728D}',\n\tLIGHT_STYLE_2_ACCENT_4 = '{17292A2E-F333-43FB-9621-5CBBE7FDCDCB}',\n\tLIGHT_STYLE_2_ACCENT_5 = '{5A111915-BE36-4E01-A7E5-04B1672EAD32}',\n\tLIGHT_STYLE_2_ACCENT_6 = '{912C8C85-51F0-491E-9774-3900AFEF0FD7}',\n\n\t// ── Light Style 3 ───────────────────────────────────────────────────────\n\tLIGHT_STYLE_3 = '{616DA210-FB5B-4158-B5E0-FEB733F419BA}',\n\tLIGHT_STYLE_3_ACCENT_1 = '{BC89EF96-8CEA-46FF-86C4-4CE0E7609802}',\n\tLIGHT_STYLE_3_ACCENT_2 = '{5DA37D80-6434-44D0-A028-1B22A696006F}',\n\tLIGHT_STYLE_3_ACCENT_3 = '{8799B23B-EC83-4686-B30A-512413B5E67A}',\n\tLIGHT_STYLE_3_ACCENT_4 = '{ED083AE6-46FA-4A59-8FB0-9F97EB10719F}',\n\tLIGHT_STYLE_3_ACCENT_5 = '{BDBED569-4797-4DF1-A0F4-6AAB3CD982D8}',\n\tLIGHT_STYLE_3_ACCENT_6 = '{E8B1032C-EA38-4F05-BA0D-38AFFFC7BED3}',\n\n\t// ── Medium Style 1 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_1 = '{793D81CF-94F2-401A-BA57-92F5A7B2D0C5}',\n\tMEDIUM_STYLE_1_ACCENT_1 = '{B301B821-A1FF-4177-AEE7-76D212191A09}',\n\tMEDIUM_STYLE_1_ACCENT_2 = '{9DCAF9ED-07DC-4A11-8D7F-57B35C25682E}',\n\tMEDIUM_STYLE_1_ACCENT_3 = '{1FECB4D8-DB02-4DC6-A0A2-4F2EBAE1DC90}',\n\tMEDIUM_STYLE_1_ACCENT_4 = '{1E171933-4619-4E11-9A3F-F7608DF75F80}',\n\tMEDIUM_STYLE_1_ACCENT_5 = '{FABFCF23-3B69-468F-B69F-88F6DE6A72F2}',\n\tMEDIUM_STYLE_1_ACCENT_6 = '{10A1B5D5-9B99-4C35-A422-299274C87663}',\n\n\t// ── Medium Style 2 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_2 = '{073A0DAA-6AF3-43AB-8588-CEC1D06C72B9}',\n\tMEDIUM_STYLE_2_ACCENT_1 = '{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}',\n\tMEDIUM_STYLE_2_ACCENT_2 = '{21E4AEA4-8DFA-4A89-87EB-49C32662AFE0}',\n\tMEDIUM_STYLE_2_ACCENT_3 = '{F5AB1C69-6EDB-4FF4-983F-18BD219EF322}',\n\tMEDIUM_STYLE_2_ACCENT_4 = '{00A15C55-8517-42AA-B614-E9B94910E393}',\n\tMEDIUM_STYLE_2_ACCENT_5 = '{7DF18680-E054-41AD-8BC1-D1AEF772440D}',\n\tMEDIUM_STYLE_2_ACCENT_6 = '{93296810-A885-4BE3-A3E7-6D5BEEA58F35}',\n\n\t// ── Medium Style 3 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_3 = '{8EC20E35-A176-4012-BC5E-935CFFF8708E}',\n\tMEDIUM_STYLE_3_ACCENT_1 = '{6E25E649-3F16-4E02-A733-19D2CDBF48F0}',\n\tMEDIUM_STYLE_3_ACCENT_2 = '{85BE263C-DBD7-4A20-BB59-AAB30ACAA65A}',\n\tMEDIUM_STYLE_3_ACCENT_3 = '{EB344D84-9AFB-497E-A393-DC336BA19D2E}',\n\tMEDIUM_STYLE_3_ACCENT_4 = '{EB9631B5-78F2-41C9-869B-9F39066F8104}',\n\tMEDIUM_STYLE_3_ACCENT_5 = '{74C1A8A3-306A-4EB7-A6B1-4F7E0EB9C5D6}',\n\tMEDIUM_STYLE_3_ACCENT_6 = '{2A488322-F2BA-4B5B-9748-0D474271808F}',\n\n\t// ── Medium Style 4 ──────────────────────────────────────────────────────\n\tMEDIUM_STYLE_4 = '{D7AC3CCA-C797-4891-BE02-D94E43425B78}',\n\tMEDIUM_STYLE_4_ACCENT_1 = '{69CF1AB2-1976-4502-BF36-3FF5EA218861}',\n\tMEDIUM_STYLE_4_ACCENT_2 = '{8A107856-5554-42FB-B03E-39F5DBC370BA}',\n\tMEDIUM_STYLE_4_ACCENT_3 = '{0505E3EF-67EA-436B-97B2-0124C06EBD24}',\n\tMEDIUM_STYLE_4_ACCENT_4 = '{C4B1156A-380E-4F78-BDF5-A606A8083BF9}',\n\tMEDIUM_STYLE_4_ACCENT_5 = '{22838BEF-8BB2-4498-84A7-C5851F593DF1}',\n\tMEDIUM_STYLE_4_ACCENT_6 = '{16D9F66E-5EB9-4882-86FB-DCBF35E3C3E4}',\n\n\t// ── Dark Style 1 ────────────────────────────────────────────────────────\n\tDARK_STYLE_1 = '{E8034E78-7F5D-4C2E-B375-FC64B27BC917}',\n\tDARK_STYLE_1_ACCENT_1 = '{125E5076-3810-47DD-B79F-674D7AD40C01}',\n\tDARK_STYLE_1_ACCENT_2 = '{37CE84F3-28C3-443E-9E96-99CF82512B78}',\n\tDARK_STYLE_1_ACCENT_3 = '{D03447BB-5D67-496B-8E87-E561075AD55C}',\n\tDARK_STYLE_1_ACCENT_4 = '{E929F9F4-4A8F-4326-A1B4-22849713DDAB}',\n\tDARK_STYLE_1_ACCENT_5 = '{8FD4443E-F989-4FC4-A0C8-D5A2AF1F390B}',\n\tDARK_STYLE_1_ACCENT_6 = '{AF606853-7671-496A-8E4F-DF71F8EC918B}',\n\n\t// ── Dark Style 2 ────────────────────────────────────────────────────────\n\tDARK_STYLE_2 = '{5202B0CA-FC54-4496-8BCA-5EF66A818D29}',\n\t/** Header uses Accent 2, body rows use Accent 1 */\n\tDARK_STYLE_2_ACCENT_1_ACCENT_2 = '{0660B408-B3CF-4A94-85FC-2B1E0A45F4A2}',\n\t/** Header uses Accent 4, body rows use Accent 3 */\n\tDARK_STYLE_2_ACCENT_3_ACCENT_4 = '{91EBBBCC-DAD2-459C-BE2E-F6DE35CF9A28}',\n\t/** Header uses Accent 6, body rows use Accent 5 */\n\tDARK_STYLE_2_ACCENT_5_ACCENT_6 = '{46F890A9-2807-4EBB-B81D-B2AA78EC7F39}',\n}\n\n// IMAGES (base64)\nexport const IMG_BROKEN =\n\t'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAB3CAYAAAD1oOVhAAAGAUlEQVR4Xu2dT0xcRRzHf7tAYSsc0EBSIq2xEg8mtTGebVzEqOVIolz0siRE4gGTStqKwdpWsXoyGhMuyAVJOHBgqyvLNgonDkabeCBYW/8kTUr0wsJC+Wfm0bfuvn37Znbem9mR9303mJnf/Pb7ed95M7PDI5JIJPYJV5EC7e3t1N/fT62trdqViQCIu+bVgpIHEo/Hqbe3V/sdYVKHyWSSZmZm8ilVA0oeyNjYmEnaVC2Xvr6+qg5fAOJAz4DU1dURGzFSqZRVqtMpAFIGyMjICC0vL9PExIRWKADiAYTNshYWFrRCARAOEFZcCKWtrY0GBgaUTYkBRACIE4rKZwqACALR5RQAqQCIDqcASIVAVDsFQCSAqHQKgEgCUeUUAPEBRIVTAMQnEBvK5OQkbW9vk991CoAEAMQJxc86BUACAhKUUwAkQCBBOAVAAgbi1ykAogCIH6cAiCIgsk4BEIVAZJwCIIqBVLqiBxANQFgXS0tLND4+zl08AogmIG5OSSQS1gGKwgtANAIRcQqAaAbCe6YASBWA2E6xDyeyDUl7+AKQMkDYYevm5mZHabA/Li4uUiaTsYLau8QA4gLE/hU7wajyYtv1hReDAiAOxQcHBymbzark4BkbQKom/X8dp9Npmpqasn4BIAYAYSnYp+4BBEAMUcCwNOCQsAKZnp62NtQOw8WmwT09PUo+ijaHsOMx7GppaaH6+nolH0Z10K2tLVpdXbW6UfV3mNqBdHd3U1NTk2rtlMRfW1uj2dlZAFGirkRQAJEQTWUTAFGprkRsAJEQTWUTAFGprkRsAJEQTWUTAFGprkRsAJEQTWUTAFGprkRsAJEQTWUTAFGprkRsAJEQTWUTAGHqrm8caPzQ0WC1logbeiC7X3xJm0PvUmRzh45cuki1588FAmVn9BO6P3yF9utrqGH0MtW82S8UN9RA9v/4k7InjhcJFTs/TLVXLwmJV67S7vD7tHF5pKi46fYdosdOcOOGG8j1OcqefbFEJD9Q3GCwDhqT31HklS4A8VRgfYM2Op6k3bt/BQJl58J7lPvwg5JYNccepaMry0LPqFA7hCm39+NNyp2J0172b19QysGINj5CsRtpij57musOViH0QPJQXn6J9u7dlYJSFkbrMYolrwvDAJAC+WWdEpQz7FTgECeUCpzi6YxvvqXoM6eEhqnCSgDikEzUKUE7Aw7xuHctKB5OYU3dZlNR9syQdAaAcAYTC0pXF+39c09o2Ik+3EqxVKqiB7hbYAxZkk4pbBaEM+AQofv+wTrFwylBOQNABIGwavdfe4O2pg5elO+86l99nY58/VUF0byrYsjiSFluNlXYrOHcBar7+EogUADEQ0YRGHbzoKAASBkg2+9cpM1rV0tK2QOcXW7bLEFAARAXIF4w2DrDWoeUWaf4hQIgDiA8GPZ2iNfi0Q8UACkAIgrDbrJ385eDxaPLLrEsFAB5oG6lMPJQPLZZZKAACBGVhcG2Q+bmuLu2nk55e4jqPv1IeEoceiBeX7s2zCa5MAqdstl91vfXwaEGsv/rb5TtOFk6tWXOuJGh6KmnhO9sayrMninPx103JBtXblHkice58cINZP4Hyr5wpkgkdiChEmc4FWazLzenNKa/p0jncwDiqcD6BuWePk07t1asatZGoYQzSqA4nFJ7soNiP/+EUyfc25GI2GG53dHPrKo1g/1Cw4pIXLrzO+1c+/wg7tBbFDle/EbQcjFCPWQJCau5EoBoFpzXHYDwFNJcDiCaBed1ByA8hTSXA4hmwXndAQhPIc3lAKJZcF53AMJTSHM5gGgWnNcdgPAU0lwOIJoF53UHIDyFNJcfSiCdnZ0Ui8U0SxlMd7lcjubn561gh+Y1scFIU/0o/3sgeLO12E2k7UXKYumgFoAYdg8ACIAYpoBh6cAhAGKYAoalA4cAiGEKGJYOHAIghilgWDpwCIAYpoBh6cAhAGKYAoalA4cAiGEKGJYOHAIghilgWDpwCIAYpoBh6ZQ4JB6PKzviYthnNy4d9h+1M5mMlVckkUjsG5dhiBMCEMPg/wuOfrZZ/RSywQAAAABJRU5ErkJggg=='\n\nexport const IMG_SVG_PLACEHOLDER =\n\t'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=='\n\nexport const IMG_PLAYBTN =\n\t'data:image/png;base64,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AAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKREkRUAAACwrUpLSwuGDRvWfMCAAS26du3avKysrLiioqKkZcuWzZs1a1bcvHnz0tLS0rJsNtusuLi4ebNmzUoLCgo+8/eijY2N9Zs3b66pra2tqqur21xTU1NdVVVVs2nTptqNGzdWbdiwoeYvf/nL5hUrVlQtWLBgw6xZs6pqamoaJQYAAEDaKYABAACIiIghQ4aUHnTQQW379u3bql27dq3at2/fpkWLFq2bN29eWVpa2qpZs2bNCwsLm2ez2fLCwsLyoqKi8sLCwtKknK+hoaG6vr6+qqGh4S91dXV/aWhoqNq8eXNVTU3NuqqqqvUbNmxYu2rVqjWrV69e99Zbb6177rnnPpgzZ06NTwYAAABJogAGAADIA8OGDWt+xBFHdBwwYECnLl26dGjdunXHFi1adCgtLe1YUlLSvlmzZq0KCgqK07yDwsLCssLCwrKIaPdp/zuNjY21mzdvXrdp06ZVNTU172/YsGHl2rVr31+2bNnKBQsWrHjyySffnzVrVpVPGAAAAE1Fpuexsd9HfaF+ZcSal0ptCAAAIAE6deqUPf744zvtueeeXbp3796lbdu2XSorKzuXlpZ2KS0t7VBYWFhhSztGQ0PDxpqampU1NTXL169fv+yDDz5Y9s477yybPXv2sj/96U8rVqxYUWdLAAAAbE9t9q6Jog4f/TUFMAAAQEJks9nMt7/97Y4jRozo1bdv397t2rXrXl5e3rWsrKxzcXFx+4gosKUmp7G2tnZVTU3Nso0bNy5btWrV0tdff/2tJ598cvG999672noAAADYFgpgAACAhPne977X6a9Fb/v27Xu1bNmyV1lZWa8kvXOXLauvr9/wl7/8ZdG6desWL1u2bNHChQsX/fGPf1w8derUjbYDAADAliiAAQAAmqhsNps59dRTuxx66KH9+/Tp87n27dv3Ly8v719UVOSRzXlq06ZNKzZu3Pj6+++//8abb775xqOPPvrG3XffvcpmAAAA+CsFMAAAQBNx6qmndvniF784qHfv3v3btWv3uYqKis8VFhaW2wxbUl9fv37Dhg1vfPDBB68vXrz4jccee2z+jTfeuNxmAAAA8pMCGAAAYBc45phjWn/rW9/aq3///kPatGnTv6Kiop9HOLO9NDQ0VG/cuPGtNWvWLFy4cOGcO+6445WHHnporc0AAACknwIYAABgJzjjjDO6f+lLX9qrV69eg1u3bj2orKysR0RkbIadJFddXb103bp18xcvXjz30UcffeXqq69+x1oAAADSRwEMAACwnZWWlhb86le/2u3QQw8d1r17931btmw5qLCwsMxmaEoaGhqqP/zww/nvvPPOzGeeeWbW2LFj36ipqWm0GQAAgGRTAAMAAGwHP/7xj7t+9atf3bdXr15D27Ztu1c2m21jKyRJXV3dmg8++OCVRYsWvfznP/95xh/+8IdltgIAAJA8CmAAAIBtcOKJJ7Y75ZRTDujXr9+w1q1bD81ms61shTSpq6tbt3bt2pfffPPNWbfccsvUe++9d7WtAAAANH0KYAAAgE+hoqKi4IILLhg0YsSI/bp27bpfy5YtB2YymUKbIR/kcrmGDz/8cP6777474/nnn59x4YUXvrZx40aPiwYAAGiCFMAAAAAf4/jjj2/7/e9//8D+/fsf2Lp1630KCgpKbAUiGhsbN61fv37eW2+9NeWGG2545u67715lKwAAAE2DAhgAAOB/ZLPZzAUXXPC5I4888sDu3bsfWFFRsVtEFNgMbFl1dfWSd999d8qsWbNmnnvuuS+vW7euwVYAAAB2DQUwAACQ10pLSwsuvfTSQYcccsjBXbt2HVFWVtbDVmDb1dbWrnr//fdfmDp16uRf/vKXL65evbreVgAAAHYeBTAAAJB3Bg0aVHrBBRd8fs899zywQ4cOBxQVFbWwFdj+Ghsba9euXTtrzpw5T59//vmTX3755WpbAQAA2LEUwAAAQF4YNmxY8/POO+/gIUOGHOZ9vrDz/W0ZfNFFFz07a9asKlsBAADY/hTAAABAarVq1arwyiuv3HfEiBEjO3TocFBhYWGZrcCu19DQUP3+++8/O2XKlIk/+clPZm7cuLHRVgAAALYPBTAAAJAqrVq1Kvztb3+7/3777Xd4x44dRxQWFpbbCjRdDQ0NG99///0pM2bMeOqHP/zhC8pgAACAz0YBDAAApMJZZ53V45vf/OaRvXr1GllaWtrVRiB5ampq3l28ePHEO++8c9LVV1/9jo0AAABsPQUwAACQWMOHDy+/6KKLvjB48OCjW7RoMdBGID0+/PDDV+fNmzfhvPPOe3L69Ol/sREAAIBPRwEMAAAkSqtWrQpvuOGGQ/bbb79/atOmzX6ZTCZrK5BeuVyubs2aNTNmzJjx2JgxYyavW7euwVYAAAA+ngIYAABIhB//+Mddv/e9732lZ8+e/1RcXNzWRiD/1NbWfvD2228/dssttzz029/+9l0bAQAA+L8UwAAAQJNVUVFRcO21137+4IMPPrZ169b7ZTKZAlsBIqJxzZo1M59//vnxp5122hR3BQMAAPx/CmAAAKDJOeWUUzqefvrpx/bu3ftL2Wy2jY0AH6e+vn7j0qVLH/vd7373x+uvv36ZjQAAAPlOAQwAADQJ2Ww2c+uttx5wyCGHnNC6deu9I8LdvsDWaFy7du1L06ZN+/OPfvSjZ1evXl1vJQAAQD5SAAMAALtU//79S6655pp/2nPPPY8tLy/vayPAZ1VTU7NswYIF488999wHp06dutFGAACAfKIABgAAdomf//znPU855ZQTu3btemRhYWGZjQDbW2NjY92KFSuevOWWW+689NJLF9kIAACQDxTAAADATuMxz8Cusn79+rlPP/30f5188slT6+rqcjYCAACklQIYAADY4fr27Vv8hz/84a+Pee5nI8CuUlNT8+68efPu/8EPfvDgwoULN9kIAACQNgpgAABghxkyZEjpNddc89XBgwefWFxc3MFGgKaitrZ21dy5c+/5yU9+8uc5c+bU2AgAAJAWWyqAPYoNAADYJqNHj+4wb968n06ZMuXRYcOGnaH8BZqa4uLi9sOGDTtjypQpj86bN++nJ510UntbAQAA0s4dwAAAwFY599xze33/+9//dufOnY/IZDJZGwGSIpfL1S1fvvzJG2644fbLLrvsbRsBAACSyiOgAQCAz+y8887r+53vfOfbHTt2PDyTyRTaCJBUuVyuYcWKFU/cdNNN//XrX/96sY0AAABJowAGAAC22WWXXTboG9/4xg9at249zDaAtFm7du2su++++9pzzjnnNdsAAACSQgEMAABsNcUvkE8UwQAAQJIogAEAgE9N8Qvks7Vr18665557rvv5z38+3zYAAICmaksFcGHlwOj6UV9orIqoWZG1PQAAyBO/+MUvet9xxx3nHHrooT8pLS3tYiNAPiotLe2y7777HvP973+/X1lZ2ZIpU6assxUAAKCpKetcHwXlH/01BTAAAOS5M844o/u99957zpe//OWflZeX94qIjK0AeS5TXl7e8+CDDx71/e9/v3dEvDVjxowPrQUAAGgqFMAAAMD/ceKJJ7a77777fjJq1Kh/KS8v7xOKX4B/lCkvL+99+OGHj/rWt77VfvXq1Qvnz59fbS0AAMCutqUC2DuAAQAgzwwdOrTs+uuvP6l///4nFRYWltkI20NjY2Ns2rQpqquro6amJurr62PTpk2xefPmqK+vj+rq6qivr4/NmzfHpk2boqGhYZv/fxUWFkZJSUk0a9YsioqKoqysLIqKiqJZs2ZRUlISRUVFUVpa+r9/FRQUCIjtoqGhoeq11167a8yYMffMmTOnxkYAAIBdZUvvAFYAAwBAnujUqVP2nnvuGbXXXnudnM1mK22Ej9PQ0BAbN26MDRs2/J+/Nm7cGBs3boyamprYtGlTbNq0KWpqaqK2trbJnqe4uDhKSkqitLT0f/9eUVERFRUV0aJFi//zV0VFRRQWFvog8LHq6urWvvjii7eceOKJf169enW9jQAAADubAhgAAPLcXXfdddAXv/jF00tLS7vZRn7L5XKxYcOGWLt2baxbty7Wrl37d3+tW7cuNmzYkPd7atGiRbRu3TpatWoVrVu3jjZt2vzvf27dunW0aNHCh4morq5e+sgjj1zzne98Z6ptAAAAO5MCGAAA8tTVV189+MQTTzyzoqJioG3kj8bGxli5cmUsX748Pvjgg1i9evX//n3t2rXR2NhoSZ9RYWFhtGrVKtq1axdt27b937937tw5OnTo4LHTeWbDhg3z77333qvOPPPMebYBAADsDApgAADIM1/72tfaXHrppad27979qIjQRKVUQ0NDrFq1KlasWBHvv//+//595cqVTfqRzGlXXFwcHTp0iI4dO0bnzp2jY8eO0alTp2jXrp1HS6dYLpdrfOeddx76+c9/fv2ECRPW2QgAALAjKYABACBP9OrVq9ldd931jT322OM7hYWFZTaSHh9++GG88847sXTp0njvvfdixYoVsXr16mhoaLCchCgsLIz27dtHp06dolu3btG9e/fo3r27x0mnTENDQ9W8efNu++Y3v/nHJUuWbLYRAABgR1AAAwBAHrjrrrtG/NM//dOZJSUlXWwj2davXx9Lly6Nd955539L3w8//NBiUqqysvJ/y+C//tWqVSuLSbiamppljz322G9Gjx49xTYAAIDtTQEMAAAp9qtf/arPD3/4w5+1atVqL9tIno0bN8aSJUvirbfeikWLFsV7770XmzZtspg8V1JSEl27do0+ffpE3759o3fv3lFeXm4xCbRu3bqXr7322ivGjh27yDYAAIDtRQEMAAApNGjQoNI77rjju7vttttJBQUFWRtJhtWrV8ebb74ZixcvjiVLlsTy5cujsbHRYtiigoKC6Ny5c/Tu3Tt69+4d/fr1i7Zt21pMQjQ2Nta98cYbd33rW9+6ff78+TU2AgAAfFYKYAAASJHS0tKCBx988Jj99tvvn7PZbBsbaboaGhri7bffjrfeeisWLFgQS5YscXcv201FRUX06tUr+vbtG3379o2ePXtGYWGhxTRhdXV1a2bMmHHjV77ylYdqamr85gcAALDNFMAAAJASp59+erdf/vKX51ZWVu5jG03T6tWr47XXXouFCxfGm2++GRs3brQUdooWLVpE3759Y8CAATFw4EB3CDdh69evf/E//uM//vPqq69+xzYAAIBtoQAGAICEGzRoUOm99977w969ex+byWTc4teErF+/PubNmxcLFiyIN954Q+FLk9GiRYvo169fDBgwIPbYY4+orKy0lCYkl8s1LF68eNyJJ554rcdCAwAAW0sBDAAACXbNNdcMOemkk35RVlbWyzZ2vVwuF++++27MnTs3XnvttViyZIl3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B7lcrm7y5Mm//vKXv/yIbQAAwK63pXcAK4ABAMg7paWlBTNnzjyzT58+x9vG39uwYUOMGzcuZsyY4VHPQF7KZDKx3377xde//vWoqKiwkH+waNGiP+27775X1dTUeCwEAADsQgpgAAD4H926dctOnjz5V506dRppG/9fLpeLqVOnxp///OfYuHGjhQB5r6KiIkaNGhX777+/x0L/g+XLlz9+6KGHXvLuu+/W2QYAAOwaWyqAvQMYAIC8MXz48PInnnjiynbt2o2wjf/vnXfeiWuvvTaee+652Lx5s4UARMTmzZtjzpw58dprr0XPnj2jRYsWlvI/Kioq+n7rW98aMnXq1Ofee+89f3AAAMAusKV3ACuAAQDIC9/+9rc73n777X9o0aLFANv4b1VVVXHXXXfFvffeG+vXr7cQgI+wbt26eP7552P9+vWx2267RVFRkaVERElJSefjjjvuoA8++GDKK6+88hcbAQCAnUsBDABAXjv//PP7XXzxxX8oKSnpbBv/bfr06XHttdfGokWLLAPgU3jnnXdi2rRp0bp16+jc2R8nERHZbLbyC1/4whElJSUvTp48eY2NAADAzqMABgAgb/3ud7/b60c/+tFVRUVFrWwjYs2aNXHzzTfHpEmTora21kIAtkJtbW289NJL8c4770Tfvn2jtLQ073dSWFhYNnz48C/26dNn4UMPPbTMpwQAAHYOBTAAAHnp1ltv3f+b3/zmfxYWFjbP913kcrl4/vnn4/rrr4/ly5f7cAB8BitXroxp06ZFRUVFdOvWLTKZTF7vo6CgIDto0KBDBw0atOiBBx54xycEAAB2vC0VwJmex8Z+H/WF+pURa17ym6wAACTTww8//KXDDjvsXzKZTN6/rPGDDz6I22+/Pd544w0fDIDtbMCAAfGtb30r2rRpk/e7yOVyjVOmTPn1yJEjH/LJAACAHavN3jVR1OGjv6YABgAgdV555ZXTPve5z30r3/fQ0NAQjz32WDz++ONRV1fngwGwg2Sz2Tj66KPjC1/4QhQUFOT9Pl5//fU79tprr9/7ZAAAwI6jAAYAIC9ks9nMyy+/fFafPn2Oz/ddvPvuu3HbbbfFe++954MBsJN069YtvvOd70S3bt3yfhdLliy5f5999rmypqam0ScDAAC2PwUwAACpV1paWjBr1qyzevfufVw+7yGXy8WTTz4ZDz74oLt+AXaBbDYbxxxzTBxxxBF5fzfw0qVLHxg6dOjlSmAAANj+FMAAAKRar169mk2ePHlsu3btDsrnPaxcuTJuueWWePvtt30oAHaxnj17ximnnBIdOnTI6z2sXr16yiGHHPIvS5Ys2exTAQAA28+WCuDCyoHR9aO+0FgVUbMia3sAADRpQ4cOLXvqqacub9Omzf75uoNcLhfPPPNMXH/99bF27VofCoAmYP369TFlypQoKSmJnj17RiaTycs9NG/evPtJJ500ZPLkyc+sWLHCoykAAGA7KetcHwXlH/01BTAAAIk1ZMiQ0kceeeSKVq1a7Z2vO6iuro7bb789nnjiiWhs9IRNgKaksbEx5s+fH++//34MGDAgstn8/DlLaWlpp6997WuDn3rqqadXrlxZ75MBAACfnQIYAIDUOfTQQ1s8+OCDv2/ZsuUe+bqDOXPmxNVXX+2RzwBN3PLly+OFF16Ijh075u0joUtLSzudcMIJ+7/00ktPv/3227U+FQAA8NkogAEASJVhw4Y1v++++37TsmXLQfl4/vr6+hg/fnz88Y9/jNpaP0MHSILNmzfHiy++GJs3b47ddtstCgoK8m4HxcXFbY866qg9n3vuuaeXL1/ucdAAAPAZKIABAEiNI488snLcuHG/b9GixcB8PP97770XV111VcyZM8eHASCBFi1aFC+//HL069cvWrRokXfnLykp6XDcccftP2fOnGcWLVq0yScCAAC2jQIYAIBUOPLIIyvvvPPO35aXl++Wj+d/+umn48Ybb4wPP/zQhwEgwf7yl7/ECy+8ECUlJdGrV6+8O3+zZs3aHHXUUfspgQEAYNspgAEASLxjjz227W233faH5s2b98m3s1dVVcXNN98cTz31VDQ2NvowAKRAY2NjzJ8/P5YtWxYDBgyIZs2a5dX5mzVr1uaYY4458M0333xm4cKFNT4RAACwdRTAAAAk2qGHHtritttuuzofy9+33347rrnmmli8eLEPAkAKvf/++/HKK69Enz59orKyMq/Ons1mK4888sh9Zs6c+dTSpUs3+zQAAMCnpwAGACCxjjjiiJb33nvvteXl5f3y6dy5XC4mTZoUN998c1RVVfkgAKRYVVVVTJ06NbLZbPTp0ycymUzenL24uLjtV7/61c+/8sorTy1evLjWpwEAAD4dBTAAAIl06KGHtrj33nt/l2/lb3V1ddx0000xefLkyOVyPggAeSCXy8WCBQvi3Xffjd133z2y2fz5mUyzZs1aH3300fvNmDHjSXcCAwDAp6MABgAgcYYOHVo2fvz4qysqKgbk07mXLVsWV111lUc+A+SplStXxiuvvBKf+9znoqKiIm/O3axZszZHH3300GeeeebJFStW1PkkAADAlimAAQBIlCFDhpQ++uij17Rs2XL3fDr31KlT49prr42NGzf6EADksaqqqpg+fXq0bds2unTpkjfnLikpaT9q1KihTz755JMrV66s90kAAICPt6UCuMB6AABoSjp16pSdMGHCv1dWVu6RL2dubGyMcePGxR133BF1dW56AiCitrY2br755hg/fnw0NjbmzbkrKyv3mDBhwr9369bNXQkAALCNFMAAADQZrVq1Kpw+ffolbdq02T9fzlxdXR2/+93vYtKkSd73C8DfyeVy8fjjj8fvf//7qK6uzptzt2nTZv8pU6Zc0qpVq0KfAgAA2HoKYAAAmoSKioqC2bNnX9KuXbuD8uXMS5cujYsuuijmz5/vAwDAx3r11VfjoosuiqVLl+bNmdu1a3fQ7Nmz/72iosLPrgAAYCu5iAYAoEmYOXPmz9q1a3dIvpz35ZdfjiuuuCLWrVsnfAA+0bp16+KKK66Il19+OW/O3K5du4Nnzpz5M+kDAMDWUQADALDLvfjii2N69OgxKh/Omsvl4oEHHogbbrghamtrhQ/Ap1ZbWxs33HBDPPDAA3nz2oAePXqMevHFF8dIHwAAPj0FMAAAu9SkSZO+NnDgwFPy4ax1dXVx8803x8SJE73vF4BtksvlYuLEiXHLLbdEXV1dXpx54MCBJ0+aNOlr0gcAgE9HAQwAwC7z6KOPHnXggQeekw9nXbduXfz617+OWbNmCR6Az2zmzJnx61//Ol9eJZA58MADz3n00UePkjwAAHyywsqB0fWjvtBYFVGzImtDAADsEDfeeOO+Rx999EWZTKYw7Wddvnx5XHXVVbFy5UrBA7DdbNiwIWbPnh0DBw6MioqKtB8307179/179uz56sMPP7xc+gAA5LuyzvVRUP7RX1MAAwCw011xxRV7fPe7372qoKCgWdrPOmfOnPjtb38bGzduFDwA2111dXVMmzYtOnfuHB07dkz1WTOZTOHuu+9+eJs2bV6aNGnSKukDAJDPFMAAADQZZ5xxRvef/exnvy0sLCxP+1knTJgQd999d9TX1wsegB2moaEhXnrppchms9G3b99UnzWTyRTttddeB/3lL395dubMmRukDwBAvlIAAwDQJBx00EEVf/jDH64pLi7ulOZz5nK5eOCBB+Kxxx4TOgA77c+eBQsWRF1dXfTv3z8ymUxqz1pQUFBywAEHDJs+ffqkpUuXbpY+AAD5aEsFcIH1AACwMwwaNKj0vvvuu7qsrKxXms9ZV1cX1113XUyaNEnoAOx0EydOjOuvvz7q6upSfc6ysrJef/rTn67u379/idQBAODvKYABANjhKioqCh577LGLKyoqBqb5nNXV1XHNNdfE7NmzhQ7ALvPKK6/ElVdeGVVVVak+Z4sWLQZOnDhxbEVFhZ9vAQDA33CBDADADjdz5syftW3b9sA0n3HdunVx2WWXxRtvvCFwAHa5xYsXx2WXXRZr165N9TnbtWt34MyZM38mcQAA+P8UwAAA7FBPPvnkqB49eoxK8xlXrVoVV1xxRSxfvlzgADQZK1asiCuuuCJWrlyZ6nP26NFj1KRJk0ZJHAAA/lth5cDo+lFfaKyKqFmRtSEAALbZjTfeuO+XvvSlCzOZTGp/8fDdd9+NK6+8MtatWydwAJqc6urqmDVrVvTv3z8qKytTe85u3boN79mz57yHH37Yb2MBAJAXyjrXR0H5R39NAQwAwA5x3nnn9T311FOvLigoKE7rGV977bW45pprorq6WuAANFmbN2+OGTNmRI8ePaJ9+/apPGMmkykYNGjQIYWFhVOee+45v5UFAEDqKYABANipjjrqqFb/8R//8YdmzZq1SusZX3755bj++uujrq5O4AA0eQ0NDfHSSy9Fp06dolOnTqk8Y0FBQXbYsGGfnz9//qQ33nhjk9QBAEizLRXA3gEMAMB21a1bt+wNN9zwnyUlJR3TesYpU6bEjTfeGPX19QIHIDHq6+vjxhtvjKlTp6b2jCUlJZ1uuOGG/+jWrZu7GgAAyFsKYAAAtqunn376XyorK/dI6/kmTZoUd955ZzQ2NgobgMRpbGyMO+64I5588snUnrGysnLw008//UtpAwCQrxTAAABsN88///w3unTp8k9pPd/EiRNj3LhxkcvlhA1AYuVyubj//vtTXQJ36dLlS88+++yJ0gYAIB95BzAAANvFTTfdNPzII488L5PJZNJ4vsceeyzGjx8vaABS47XXXotmzZpF3759U3m+zp0779urV695Dz/88DJpAwCQNlt6B7ACGACAz+wXv/hF7x/+8IdXFxQUNEvj+R544IF45JFHBA1A6ixYsCDq6upiwIABqTtbJpPJDBo06ODGxsbnpk6dul7aAACkiQIYAIAd5oADDqj43e9+99tmzZq1TeP5xo0bF5MmTRI0AKm1aNGi2Lx5cwwcODB1ZysoKMjut99+w5577rnH33vvvc3SBgAgLbZUAHsHMAAA2yybzWbuvPPOfyktLe2exvNNmDBB+QtAXpg0aVI89NBDqTxbaWlpj3vuuedfstlsRtIAAOQDBTAAANvs+eef/06HDh0OTePZHn744Xj44YeFDEDeeOSRR+LPf/5zKs/WoUOHw5599tlvSxkAgHygAAYAYJvcd999hw8ePPjUNJ7t/vvvjwkTJggZgLzz2GOPxX333ZfKs+25554/+NOf/nSYlAEASDvvAAYAYKudccYZ3ceMGXN5QUFBcdrONnHixHjkkUeEDEDeWrx4cWSz2ejbt2/ajpbp06fPvn/5y18mz5w5c4OkAQBIsi29A1gBDADAVhk2bFjzG2+88Q/NmjVrl7azPfroo6l99CUAbI2FCxdGUVFR9OvXL1XnKigoKD7wwAP3e/LJJx9dsWJFnaQBAEiqLRXAHgENAMBWuffee39ZWlraPW3nevzxx+PBBx8UMAD8jz//+c8xceLE1J2rtLS0x3333fdLCQMAkFYKYAAAPrVJkyaN6tSp0xEpPFeMHz9ewADwD8aPHx+TJ09O3bk6der0hUmTJn1VwgAApJFHQAMA8Kmcd955fU888cR/z2QyRWk618yZM+Puu+8WMAB8jNdeey06duwYnTt3TtW5unbtuk9BQcHzzz333DopAwCQNN4BDADAZ3LEEUe0vOKKK67NZrOVaTrXyy+/HDfffHPkcjkhA8DHyOVyMXv27OjSpUt06tQpNefKZDJF++yzz/CpU6c+9u67726WNAAASeIdwAAAbLNsNpu55ZZb/q2kpKRjms61YMGCuPnmm6OxsVHIAPAJGhsb4+abb44333wzVecqLS3tcvfdd5+fzWYzUgYAIC0UwAAAbNGkSZO+3rZt2wPTdKZly5bFDTfcEPX19QIGgE+prq4urr322li+fHmqztWuXbsDH3/88VESBgAgLTwCGgCAj3XZZZcN+upXvzo2k8mk5hcH33///bjyyiujqqpKwACwlerq6uLll1+OIUOGRHl5eWrO1aVLl31LS0unPvPMM2ukDABAEngENAAAW61///4lJ5988q8ymUxRWs60YcOG+P3vfx8bN24UMABso40bN8bvfve7VP15WlBQkP3hD394ft++fYslDABA4q9vrQAAgI/y4IMPnl1WVtYrLeeprq6O3/zmN7Fq1SrhAsBntGrVqrjyyiujuro6NWcqKyvr8/DDD58lXQAAkk4BDADA/zF+/Pgju3XrdnRazlNfX5/KdxYCwK60fPnyuO6666K+vj41Z+rRo8dXx40bd4R0AQBIMgUwAAB/53vf+16nI4444py0nCeXy8Vtt90Wb7zxhnABYDt7/fXX47bbbotcLpeaMx155JHnfvvb3+4oXQAAkkoBDADA/6qoqCi4+OKLLywsLCxPy5nGjx8fs2bNEi4A7CCzZs2Khx56KDXnKSwsrPj1r399QUVFhZ+bAQCQSC5kAQD4XxMnThxdWVk5OC3nef7552PixImCBYAd7LHHHosXXnghNeeprKzc89FHHz1RsgAAJFFh5cDo+lFfaKyKqFmRtSEAgDxxwQUX7DZq1KgLM5lMYRrO8+qrr8Ytt9ySqkdSAkBT/7O3d+/e0a5du1Scp2PHjkNzudxzU6ZMWSddAACamrLO9VHwMc/wcwcwAADRt2/f4h//+McXZzKZVPwG4HvvvRc33HBDNDY2ChcAdpKGhoa47rrrYtmyZak4T0FBQfbss88e27dv32LpAgCQqGtZKwAAYPz48T8qKyvrkYazbNiwIX7/+99HbW2tYAFgJ9u0aVP8/ve/j40bN6biPGVlZb3GjRs3RrIAACSJAhgAIM/ddNNNw/v06XN8Gs5SX18f1157baxdu1awALCLrFmzJq699tqor69PxXn69ev3jd///vdDJQsAQFIogAEA8thBBx1Uceyxx/5rRGTScJ477rgjFi9eLFgA2MUWLVoUd955Z1qOU/CNb3zj34YNG9ZcsgAAJOIC1goAAPLXzTfffFZxcXG7NJxl4sSJMX36dKECQBMxbdq0mDRpUirOUlJS0unOO+88Q6oAACSBAhgAIE/913/914FdunT5UhrO8tprr8Wf//xnoQJAEzN+/PhYsGBBKs7SrVu3o2+66abhUgUAoKlTAAMA5KEvfelLlV/5yld+lYazrFixIq6//vpobGwULAA0MY2NjXHdddfFihUr0nCczHHHHfergw46qEKyAAA0ZQpgAIA8dPXVV5+ezWYrk36OmpqauPbaa2PTpk1CBYAmatOmTXHttddGTU1N4s+SzWbb3njjjT+RKgAATZkCGAAgz9x6663Du3Tp8uWknyOXy8Utt9wSK1euFCoANHErV66MW2+9NXK5XOLP4lHQAAA0dQpgAIA8MnTo0LKvfvWrv0jDWSZMmBBz584VKgAkxJw5c+Kxxx5LxVlGjRr1i6FDh5ZJFQCApkgBDACQR+64444fFRcXd0z6OV5++eV45JFHBAoACfPQQw+l4he4SkpKOt5xxx0/lCgAAE2RAhgAIE9cfvnlu/fs2XNU0s/xwQcfxB133JGKR0gCQL7J5XJx2223xZo1axJ/lp49ex57+eWX7y5VAACaGgUwAEAe6NatW/a73/3uv2YymURf/9XX18cNN9wQ1dXVQgWAhKqqqoobb7wx6uvrE32OTCZT8N3vfvdX3bp1y0oVAICmRAEMAJAHxo8ff0pZWVmvpJ/jnnvuiaVLlwoUABJuyZIlcd999yX+HGVlZT3Hjx9/ikQBAGhKFMAAACn385//vOeAAQNGJ/0c06dPjylTpggUAFJi8uTJMWPGjMSfY8CAAaN//vOf95QoAABNhQIYACDFstls5qyzzjo3k8kk+tGEK1asiLvvvlugAJAyd911V6xYsSLRZ8hkMtmzzjrr3Gw2m5EoAABNgQIYACDFxo0b98XKysq9knyG2trauOGGG6K2tlagAJAyf/1zfvPmzYk+R2Vl5V7jxo0bKVEAAJoCBTAAQEoNHz68/OCDDz4t6ee4//77Y/ny5QIFgJRavnx5jBs3LvHnGDFixI+HDRvWXKIAAOxqCmAAgJS69dZbT8tms22TfIYZM2bEc889J0wASLnJkyfHzJkzE32G4uLitrfffvtp0gQAYFdTAAMApNBVV121R48ePb6S5DOsXLky7rrrLmECQJ64++6744MPPkj0GXr27PnVK664Yg9pAgCwKymAAQBSprS0tOAb3/jGT5N8rdfY2Bi333679/4CQB6pqamJ2267LRobG5N8jIJvfvObZ5aWlvqZGwAAu+6i1AoAANJlwoQJX6uoqBiQ5DOMHz8+Fi1aJEwAyDNvvvlmPPjgg4k+Q4sWLQY9+OCDx0gTAIBdRQEMAJAiRx55ZOWwYcN+kOQzzJ07N5544glhAkCemjhxYixYsCDRZxg+fPiPjjjiiJbSBABgV1AAAwCkyBVXXHFyUVFRRVLnr6qqijvvvDNyuZwwASBP5XK5uP3226O6ujqxZygqKmrxm9/85mRpAgCwKyiAAQBS4vzzz+/Xu3fv45J8httvvz0+/PBDYQJAnlu3bl3cfvvtiT5D7969jz///PP7SRMAgJ1NAQwAkALZbDZz6qmn/jyTyST2+m769OkxZ84cYQIAERExe/bsmDFjRmLnz2QyBaeeeurPs9lsRpoAAOxMCmAAgBT44x//eERlZeXgpM6/du3auPfeewUJAPyde+65J9atW5fY+SsrKwf/6U9/+oIkAQDYmRTAAAAJ17dv3+JDDjnkR0k+w9133x01NTXCBAD+Tk1NTdx9992JPsPBBx/8o759+xZLEwCAnUUBDACQcHfdddc3S0pKOiV1/smTJ8e8efMECQB8pLlz58azzz6b2PlLSko63nPPPd+SJAAAO4sCGAAgwb70pS9VDhw48KSkzr9mzZoYP368IAGALXrggQdizZo1iZ2/f//+Jx111FGtJAkAwM6gAAYASLArrrji1MLCwvIkzp7L5eK2226LTZs2CRIA2KJNmzbFbbfdFrlcLpHzFxYWll1++eU/kCQAADuDAhgAIKF+8Ytf9O7evftXkjr/s88+G2+88YYgAYBP5Y033ojnn38+sfN369bt6F/96ld9JAkAwI6mAAYASKgf/vCHP8pkMom8nvvggw/igQceECIAsFXGjRsX69atS+TsmUym4NRTT/2xFAEA2NEUwAAACXTdddcNa9eu3YFJnD2Xy8Udd9wRtbW1ggQAtsqmTZvizjvvTOz8bdq02f+mm27aT5IAAOxICmAAgIQpLS0t+NrXvnZ6Uud/4YUXYuHChYIEALbJq6++GjNmzEjs/Mccc8zpFRUVfiYHAMAO42ITACBhbr/99oMrKip2S+LsGzZsiHHjxgkRAPhM7r///qiqqkrk7OXl5X3/67/+6wgpAgCwoyiAAQASpKKiouCwww47Nanz33vvvYn9YS0A0HRs2LAh7r///sTOf9BBB/1zq1atCiUJAMCOoAAGAEiQ+++//+iysrKeSZx9zpw58dJLLwkRANguXnjhhViwYEEiZy8tLe32xz/+8StSBABgR1AAAwAkRN++fYv33Xfff07i7LW1tXHvvfcKEQDYru6+++6oq6tL5Oz77bffKf379y+RIgAA25sCGAAgIW6++eZRxcXFbZM4+yOPPBJr164VIgCwXa1atSoee+yxRM6ezWbb3njjjV+TIgAA25sCGAAgAYYOHVq21157fSeJs7/33nvxxBNPCBEA2CEmTpwYK1asSOTsQ4YM+c7QoUPLpAgAwPakAAYASIBrr732xKKiosqkzZ3L5eKee+6JxsZGIQIAO0R9fX3cddddkcvlEjd7UVFR5bXXXnuCFAEA2J4UwAAATdwBBxxQMWDAgG8kcfYZM2bEW2+9JUQAYId6880348UXX0zk7AMGDPjG8OHDy6UIAMD2ogAGAGjirrrqqhOKiooqkjb3pk2b4oEHHhAgALBT3H///VFbW5u4uYuKilpcffXV7gIGAGC7UQADADRhBx10UEX//v0Teffvww8/HB9++KEQAYCdYv369TFhwoREzj5w4MBvHHDAARVSBABge1AAAwA0Yf/5n/95bGFhYfOkzb1q1aqYPHmyAAGAnerpp5+O1atXJ27uwsLC8ssuu2yUBAEA2B4UwAAATdQBBxxQMWjQoNFJnP3uu++O+vp6IQIAO1V9fX3cddddiZx99913/+bQoUPLpAgAwGelAAYAaKIuv/zyYwsLC8uTNvfcuXNjwYIFAgQAdokFCxbE3LlzEzd3UVFRi9/97ndflyAAAJ+VAhgAoAkaOnRo2aBBgxL37t+6urr405/+JEAAYJf605/+FHV1dYmbe/fdd//mkCFDSiUIAMBnoQAGAGiCfvOb33ylqKioZdLmfu655xL53j0AIF1Wr14dzz33XOLmLioqann11VcfLUEAAD4LBTAAQBPTq1evZoMHD/5m0uaurq6ORx55RIAAQJPwyCOPRHV1deLmHjJkyLe6deuWlSAAANtKAQwA0MTcdNNNxxQXF7dN2twTJkyIqqoqAQIATUJVVVUifzmtuLi43a233uouYAAAtpkCGACgCWnVqlXhXnvtdVLS5l61alU8++yzAgQAmpTJkyfHqlWrEjf30KFDR7dq1apQggAAbAsFMABAE3LLLbccXlJS0jlpcz/44INRX18vQACgSamvr48HH3wwcXOXlJR0vummmw6VIAAA20IBDADQRGSz2cwBBxzw7aTNvWjRonjppZcECAA0SS+99FIsXrw4cXOPGDHiO9lsNiNBAAC2lgIYAKCJuOaaa/YuLy/vm7S5H3roocjlcgIEAJqkXC6XyLuAy8vL+1111VV7SRAAgK2lAAYAaCK+8pWvfDdpM8+bNy8WLlwoPACgSVu4cGG8+uqrrg8BAMgLCmAAgCbgsssuG1RZWblPkmbO5XIxfvx44QEAifDAAw8k7qklrVu33veSSy7pLz0AALaGAhgAoAkYNWrUCUmbefbs2bFs2TLhAQCJsGzZsnjllVcSN/cJJ5xwovQAANgaCmAAgF3sn//5nzt37NjxiCTN3NjYGA888IDwAIBEGT9+fDQ0NCRq5k6dOn1h9OjRHaQHAMCnpQAGANjFfvSjH30tk8kk6rps2rRpsWrVKuEBAImyatWqeOGFFxI1cyaTKfzpT386SnoAAHxaCmAAgF1o0KBBpX369Plqkmaur6+PCRMmCA8ASKQJEyZEXV1dombu27fvV/r27VssPQAAPg0FMADALnTZZZcdXlRUVJGkmadOnRpr164VHgCQSOvXr48pU6YkauaioqLK3/zmN0dIDwCAT0MBDACwi2Sz2cy+++57UpJmrqurc/cvAJB4jz76aOLuAt5///1PymazGekBAPBJFMAAALvI1VdfPbSsrKx3kmaeMmVKbNiwQXgAQKJt2LAhnn/++UTNXFZW1ueqq67aS3oAAHwSBTAAwC7y5S9/+bgkzVtfXx8TJ04UHACQCo8//nji7gL+0pe+dLzkAAD4JApgAIBdYPTo0R3atm07IkkzT5s2LdatWyc8ACAVPvzww5g+fXqiZm7fvv2I0aNHd5AeAABbogAGANgFfvrTn47KZDKFSZm3vr4+HnnkEcEBAKnyyCOPRH19fWLmzWQyhT/96U+/JjkAALZEAQwAsJN16tQp26dPn6OTNLO7fwGANFq3bl1MmzYtUTP36dPnmE6dOmWlBwDAx1EAAwDsZFddddUB2Wy2dVLmbWxsjEmTJgmOVOvYsWN06OCJmgD5aNKkSdHY2JiYebPZbOurrrrqAMkBAPBxFMAAADvZiBEjvp6keV988cVYtWqV4Ei1Ll26xIUXXhinnXZadO3a1UIA8siqVavipZdecj0JAEBqKIABAHaiM844o3tlZeXeSZk3l8vFxIkTBUdeyGQyMXjw4PjVr34VY8aMcUcwQB55/PHHI5fLJWbeysrKvc8444zukgMA4KMogAEAdqJTTjnlqxGRScq8CxYsiPfee09w5JVMJhN77713XHjhhTFmzJho3769pQCk3HvvvRcLFy5M1B9X/3NdCQAA/4cCGABgJ+nVq1ezXr16fTlJM3v3L/nsr0XwBRdcECeffHK0bdvWUgBSLGnXPb169fpyr169mkkOAIB/pAAGANhJrrjiioOLiopaJmXeBN4JAztEYWFhDB8+PC688MIYPXp0VFZWWgpACi1YsCCWLVuWmHmLiopaXnnllYdIDgCAf6QABgDYSYYPH/6VJM2btHfhwY5WVFQUI0aMiEsuuSRGjx4dLVu2tBSAFMnlcvH4448naub99tvvK5IDAOAfKYABAHaC0aNHd6isrByalHnXrl0bL7/8suDgI/y1CL744ovjhBNOiBYtWlgKQEq89NJLsW7dusTMW1lZudfo0aM7SA4AgL+lAAYA2AlOP/30o5J07fXMM89EQ0OD4GALiouL47DDDouxY8fGqFGjoqyszFIAEq6hoSGeeeaZJI1c8D/XmQAA8P8vEq0AAGDHymazmX79+n05KfPW1tbGlClTBAefUnFxcYwcOTIuvfTSGDVqVJSWlloKQII9//zzUVtbm5h5+/Xr9+VsNpuRHAAAf6UABgDYwX7zm9/sWVJS0jkp886YMSOqq6sFB1uppKQkRo4cGZdcckkcffTRUVJSYikACVRdXR0zZ85M0p8/na+44orBkgMA4K8UwAAAO9gXvvCFLyVl1lwuF08//bTQ4DNo3rx5HHXUUXHJJZfEyJEjI5vNWgpAwjz11FORy+USM++RRx75ZakBAPBXCmAAgB1oyJAhpZ07dz4iKfO+/vrrsWLFCsHBdlBeXh6jRo2KSy+9VBEMkDArVqyI119/PTHzdunS5fD+/ft79AQAABGhAAYA2KHGjh17aGFhYWJeCOruX9j+KioqYtSoUXHxxRfH4YcfHkVFRZYC4LpouyosLGz+H//xHwdLDQCACAUwAMAOteeeex6ZlFnXrl0b8+bNExrsIK1atYrjjz8+LrroohgxYkQUFPh2DKApmzdvXqxZsyYx8+61115HSg0AgAgFMADADnPMMce0bt269b5Jmfe5556LxsZGwcEO1qZNmxg9enRcfPHFimCAJqyxsTGee+65JP35MvyYY45pLTkAAPykAQBgBznzzDMPz2Qyibje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FpafffbZvaQFAJA+CmAAgE9p//3375+EOV9//XVhAXmjvLw8Ro0aFf/+7/8eI0eOjGw2aymA67FP6fOf//xAaQEApI8CGADgU+rRo8fuTX3G2traePvtt4UF5J2KiooYNWpUXHzxxXH44Yc3+XdvAum2ePHiRLySo1evXoOkBQCQPgpgAIBPqXXr1k3+DoklS5ZEQ0ODsIC81apVqzj++OPj4osvjhEjRkRBgW97gZ2voaEhlixZ0uTnbNOmjQIYACCFfCcMAPApDBkypLR58+a9m/qcb775prAAIqJ169YxevToGDt2rCIYcF32MZo3b95n0KBBpdICAEgX3wEDAHwKp556av9MJtPkr53eeustYQH8jTZt2sTo0aPjvPPOi+HDhyuCAddlfyOTyRT84Ac/+Jy0AADSxXe+AACfwuDBg5v84/Hq6+tj0aJFwgL4CJ06dYqTTz45/u3f/i323nvvyGQylgLsUIsXL07Eqzn23HPPgdICAEgXBTAAwKfQpUuXAU19xnfeeSfq6uqEBbAFnTt3jjFjxiiCgR2utrY23n333SRc53oPMABAyiiAAQA+hZYtW/Zv6jN6/DPAp9elS5cYM2ZMnHvuuTF48GALAfL2+iwJ17kAAGwdBTAAwCcYPnx4eUlJSeemPqfHPwNsvV69esVpp50W55xzTvTvrwMB8u/6rLS0tPPw4cPLpQUAkB4KYACAT/Ctb31rt4ho8s8IXbx4sbAAtlGfPn3irLPOinPOOSd22203CwG2i4T8gl7m29/+dj9pAQCkhwIYAOAT7L777k2+CVi7dm1s2LBBWACfUZ8+feLss8+OM888M3r27GkhwGfy4Ycfxrp165r8nAMHDlQAAwCkSJEVAABsWadOnZr8D8TefvttQQFsRwMGDIgBAwbEggULYvz48bF06VJLAbb5Oq1Vq1audwEA2GkUwAAAn6CyslIBDJCnBgwYEP3794958+bFQw89FO+++66lAFtlyZIlsddeezX1613PvgcASBEFMADAFnTq1CnbvHnzXk19ziVLlggLYAfJZDIxePDg2GOPPeLll1+OBx98MFauXGkxQGqu05o3b967Xbt2RatXr66XGABA8nkHMADAFowZM6ZnJpPJNuUZGxsbPZoUYCfIZDKx9957x4UXXhhjxoyJ9u3bWwrwiZYuXRqNjY1NesaCgoLsqaee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k8nE7NmzY+LEibFmzRoNAXif/VNSzJo161kTAwBongTAAAC70O233/7KOeecszU/P78022sdMGBAtG/f3tWu0My9+uqrMWnSpFi1apVmALyPjh07xgEHHJCIWhsbG6u/8Y1v/NXUAACaJwEwAMAutHLlyob169fP6tat2+hsrzWVSsXhhx8ekyZNMjhohubMmROTJ0+OJUuWaAbAh3D44YdHKpVKRK3r16+fVVFR0WhqAADNU54WAADsWq+++mpirts77LDDDAyamTfffDP+/d//PX7yk58IfwE+pFQqFSNGjEhMva+88sozpgYA0Hw5AQwAsIvddNNNz5166qnV+fn5rbO91m7dukX//v1j4cKFBgc5btmyZfHYY4/F/PnzNQPgIzrggAOic+fOiai1sbFxy4033jjL1AAAmi8BMADALrZy5cqG8vLyGT179vx0Euo9+uijBcCQw5YvXx7jxo0T/AJ8wv1SUpSXlz9TXl7eYGoAAM2XABgAYDeYMWPGUxdccEEiAuAhQ4ZE69ato7q62uAgh6xcuTImTJgQc+fOjUwmoyEAH1ObNm3i0EMPTUy9zz777FOmBgDQvPkGMADAbvDVr371lYaGhk1JqLWgoCCOOOIIQ4McsW7duvj5z38ed955Z8yZM0f4C/AJjRw5MvLz8xNRa0NDw8abbrrpVVMDAGjenAAGANgNKisrm1atWjW9T58+5ySh3qOPPjqefPJJQREk2Pr16+Oxxx6L2bNn+3cZYBdJpVIxatSoxNS7cuXKadXV1WmTAwBo3pwABgDYTaZNm5aY6/c6duwYAwYMMDRIoA0bNsSvf/3r+Nd//dd49dVXhb8Au9CAAQOiY8eOian36aefftLUAAAQAAMA7CZf+9rX5tTX11ckpd6jjjrK0CBBqqqq4v77749vf/vb8eKLL0ZTU5OmAOxiRx55ZGJqra+vX/eNb3zjdVMDAMAV0AAAu0ltbW16xYoVT++///6fT0K9hx56aLRt2zaqqqoMD7LYli1bYsqUKfHcc8/F9u3bNQRgN2nbtm0MGTIkMfUuX778qdraWtc/AwDgBDAAwO70xz/+cUJSas3Pz4/jjjvO0CBL1dTUxKOPPhq33XZb/OUvfxH+Auxmxx57bOTn5yel3Myvf/3rCaYGAECEABgAYLe66667llZXV89PSr1HH310tGjRwuAgi7wd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qATAAABZ4umnn968fPnyxF3xN3r06GjXrp0BAgBZqUOHDnH88ccnru5ly5ZNmD59+hYTBADgoxIAAwBkkbvvvvtPmUymKUk1FxYWxumnn254AEBWOvPMMxP3yYpMJtN41113/dH0AAD4OATAAABZ5Be/+MWatWvXTkta3UcccUT06tXLAAGArNK7d+847LDDEld3eXn5X+6///51JggAwMchAAYAyDIPP/zwn5JWcyqVijPPPNPwAICsMmbMmEilUomr+8EHH/yT6QEA8HEJgAEAsszXv/71NzZs2DAraXUPHDgwDj74YAMEALLCoEGDYsCAAYmru6KiYuatt966wAQBAPi4BMAAAFlo3Lhxv01i3WPGjIm8PFtMAGDvysvLizFjxiSy9j//+c+/NUEAAD7RflgLAACyz/XXXz+nqqrqr0mru1evXnHUUUcZIACwVx1zzDHRvXv3xNW9adOmV2666aa5JggAwCchAAYAyFJ/+tOf7k1i3WPGjInS0lIDBAD2ijZt2sRZZ52VyNofeOCBe00QAIBPSgAMAJClbrrpprlJPAVcXFwcZ555pgECAHvFWWedFS1btkxc3Zs2bXrl5ptvnmeCAAB8UgJgAIAsNm7cuF8lse5Ro0ZF7969DRAA2KP69OkTI0eOTGTtjz322K9MEACAXUEADACQxcaOHTu7qqrqb0mrO5VKxfnnnx+pVMoQAYA9tv/4/Oc/n8j9R2Vl5d+uueaav5kiAAC7ggAYACDLTZ069bdJrLtv374xZMgQAwQA9ojDDjsssTeQTJ48+TcmCADAriIABgDIcpdeeumLVVVVryax9s9//vNRXFxsiADAblVaWhrnn39+Imuvqqr66+WXX/6SKQIAsKsIgAEAEuChhx76WRLrLisri9NPP90AAYDd6qyzzoqSkpIklp753e9+91MTBABgVxIAAwAkwA033DB3w4YNs5JY+3HHHRd9+vQxRABgt+jbt28cddRRiay9oqJi1te//vU3TBEAgF1JAAwAkBA///nPfxoR6aTVnUql4vOf/3zk5dl6AgC7Vn5+flx00UWRSqWSWH76F7/4xX+bIgAAu5q3cAAACXHHHXe8tW7duulJrL13795xzDHHGCIAsEudcMIJ0b1790TWXl5e/pc77rjjLVMEAGBXEwADACTI3XfffW8mk2lKYu1nnXVWtG3b1hAB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onv37vEv//IvccABBzSrdWcymaYnnnji9s997nPPeAoAAODDEQADAJBYDz/88NJjjjlmY+/evY+KiGZzFKq0tDSGDx8eq1evjvXr13sQAHLcwIED45prrol27do1t6VnZsyY8YOzzjprqqcAAAA+PAEwAACJdv/99795zDHHVO6zzz5HRDMKgVu0aBGHHXZYtGzZMhYuXBjpdNrDAJBjCgoK4pxzzonzzz8/WrRo0dyWn37uuefuOuWUUyZ4EgAA4KMRAAMAkHi///3v5w8bNmxF3759j2lO10GnUqno27dvDB06NBYvXhxbtmzxMADkiJ49e8YNN9wQgwcPblbf+434x7XPU6ZM+fbpp58+2ZMAAAAfnQAYAICc8OCDDy4ZNmzYin79+jWrEDgionXr1nHEEUdEfX19LF261MMAkGCpVCpOOOGEuOKKK6JNmzbNbv07wt9vnXPOOX/xNAAAwMcjAAYAIGc89NBDS4YNG7a8X79+xza3EDg/Pz8OPvjg6NWrV8yfPz8aGho8EAAJU1JSEpdffnmccMIJkZ+f3+zWn8lkGp944olvffazn53maQAAgI9PAAwAQE556KGHlo4cOXJdnz59RqWa252ZEdG1a9cYNmxYLFu2LCorKz0QAAnRt2/fuO6662K//fZrluvPZDLpp59++rvnnHPO054GAAD4ZATAAADknD/96U+LDj300KX7779/s7sOOiKiuLg4jjzyyCgpKYk333wz0um0hwIgSxUUFMRnP/vZuPDCC6OkpKRZ9iCdTjc88sgjt5x//vnTPREAAPDJCYABAMhJDz/88NId3wQelUqlmt09mqlUKvr06RMHH3xwLFy4MLZt2+ahAMgynTt3jrFjx8bQoUOjGV5aERH/CH+feOKJ2y+88MLnPBEAALBrCIABAMhZDz300JIePXq8NmjQoGPz8vJaNMcetG3bNkaNGhVNTU2xZMkSDwVAFkilUjF69Oi48soro0OHDs22D01NTdt++9vf/stll132oqcCAAB2HQEwAAA5bdKkSeXdu3efM3jw4GYbAufn58eAAQOiV69esWDBgti+fbsHA2Avad26dVx66aVx/PHHR35+frPtQ2NjY/WvfvWrf7nuuute81QAAMCuJQAGACDnTZ48eW1jY+OMI4444uiCgoKS5tqHrl27xqhRo2Lbtm2xcuVKDwbAHpRKpWLUqFExduzY6NWrV7PuRX19/fo77rjjK9/61rcWejIAAGDXEwADANAsPP/881UbNmx45rjjjjuqsLCwrLn2obCwMAYNGhT77bdfLF68OGpraz0cALtZ+/bt44orrogTTzwxCgub9/uU2tralTfffPPVP/nJT1Z7MgAAYPcQAAMA0Gz87W9/27p27doZJ5xwwsjCwsK2zbkXnTp1ipEjR0Z1dbXTwAC70ciRI+Pqq6+OHj16NPte1NTULL/hhhuu/e1vf7vOkwEAALuPABgAgGbltdde2zpv3rynTznllKFFRUWdmnMvCgsL49BDD4399tsvFi1a5DQwwC709qnfk08+udmf+o2I2Lx587yLL774unHjxm30dAAAwO71fgFwat9zYsTOftC4LmLjq610DwCAxOrVq1fhs88++69du3Y9QTciGhoaYurUqTF58uRobGzUEICPqaCgIE499dQYPXq04HeH8vLyp4499tjvrly5skE3AABg9+swrDYKuuz8ZwJgAAByWuvWrfNeeumlm/fdd9+zdeMfVq9eHffff38sWbJEMwA+ov322y8uuugi1z2/w8KFC38/fPjwnzY0NGR0AwAA9gwBMAAAzd7zzz9/8aGHHnp1RKR0IyKTycTMmTPjz3/+c9TV1WkIwAcoKSmJ8847L0aMGBGplL9Kdki//PLL9xx77LEPagUAAOxZ7xcA+wYwAADNwn333Tfn+OOP39yrV6/DQwgcqVQqevfuHcOHD49169ZFRUWFhwTgPRxyyCExduzY6N+/v/B3h0wm0/jMM8/828knnzxONwAAYM97v28AC4ABAGg2fve7370xePDgJf369Ts6lUrl60hEcXFxjBgxInr06BFLly6N2tpaTQHYoUOHDvGFL3whzjzzzCguLtaQHZqammoeeOCBWz73uc9N1w0AANg7BMAAALDDww8/vKygoOC54cOHH1FQUFCqI//QrVu3OO6446K0tDQWL14cTU1NmgI0Wy1btoxzzjknLr300ujevbuGvENtbe2K22677arbbrvtDd0AAIC9RwAMAADv8Oyzz25avHjx0yeddNKQoqKiTjryD3l5edGnT58YOXJkbN26NVatWqUpQLNz+OGHx1e+8pUYMGBA5OXlacg7VFVV/e3CCy+8/oEHHvDdAAAA2MsEwAAA8C7z58+vefbZZ58+44wz+hcX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OigOOOCAKCoq0pQs0djYuGXmzJk/PvPMMyc2NDS4XgAAAPjQBMAAAJADjjzyyNY/+9nPrujbt++5EZGnI9mluro6Fi5cGPPnz4958+ZFZWWlprBXtGvXLg455JAYMGBA9O/fP1q39nsjWSj91ltv/fmqq676xaxZs6q1AwAA+KgEwAAAkEN++ctfjhgzZsyNrVq16q0b2SmdTsfKlStj0aJFsXDhwli8eHFs27ZNY9gtSkpKol+/ftG/f//Yf//9o1evXpGX53dEslVNTc3yRx999EdXXnnlK7oBAAB8XAJgAADIMd26dSt8+OGHPzd48ODL8vPzbdyzXCaTiTVr1sTChQtj0aJFsWjRotiyZYvG8LGUlZVF//79/xn6du/ePVKplMZkuaampprXXnvtV2PGjHmgoqKiUUcAAIBPQgAMAAA56rjjjiv7r//6r8tdC508mzdvjuXLl8eKFSti+fLlsXjx4qipqdEY/pfi4uLo169f9O7dO/bZZ5/Yd999o6ysTGMSJJPJpJcsWfLn66677pfTp0/3mx8AAMAuIQAGAIAc99Of/nTIueeee3NpaWlf3UimxsbGWLlyZSxdujSWLVsWy5cvj3Xr1kUmk9GcZiKVSkWXLl1in332iT59+kSfPn2iV69eUVBQoDkJtXXr1sUPPvjgj6699tq/6wYAALArCYABAKAZaNeuXf64cePOGTp06BUFBQWtdST56uvrY+XKlf88KbxixYpYu3ZtpNNpzUm4vLy86Nq1a+yzzz7//KdXr17RsmVLzckBjY2NW/7617/+4pxzznm0srKySUcAAIBdTQAMAADNyIknntjmnnvuuXzfffcdk0qlHB3MMdu3b481a9bEmjVrYu3atbF27dooLy+PDRs2CIazUF5eXnTs2DG6desWXbt2jW7dukW3bt2iR48eUVhYqEE5JpPJNC5ZsuRR1z0DAAC7mwAYAACaoa9+9av7Xnfdddd16NDhCN3IfY2Njf8MhNetWxfr1q2LioqKWLduXWzbtk2DdrPS0tLo3LnzP//p0qVLdO3aNbp27eoK52Ziw4YNM//rv/7rxz/60Y+W6wYAALC7CYABAKAZ++UvfznirLPOuq64uNj3gZupmpqaWL9+/T//qaioiMrKyqisrIxNmzZFY2OjJn2AgoKCaN++fbRr1y7at28fHTt2jC5dukSnTp2ic+fOUVxcrEnN1NatW98aP378PVdcccXLugEAAOwpAmAAAGjm2rVrl//ggw+eOWLEiCsLCwvb6gjvtHnz5n+GwZs2bYrKysqorq6OLVu2xJYtW6K6ujqqq6sjk8nk3NpTqVS0bt06WrduHWVlZdGmTZsoLS39X2Fvu3btok2bNh4U/peGhobKl1566efnnHPO+OrqavevAwAAe5QAGAAAiIiIoUOHFt97770XHHjggRfk5+c7ssiHlk6n/xkEV1dXR01Nzfv+k8lkora2NtLpdNTX10dTU1PU1dXt0u8U5+XlRcuWLSM/Pz+KiooiLy8vWrVqFalUKoqLi3f6T0lJSbRq1eqfgW9paWnk5eUZMB9aU1NTzYIFC/745S9/+Y+zZ8+u0REAAGBvEAADAAD/y2mnndb2rrvuurRPnz5n5+XlFeoIe9LbgfDbtm/f/r7XUBcUFESLFi3++b/fDnxhT8pkMg1LliwZd8stt/xq0qRJVToCAADsTQJgAABgp0477bS2d95554X777//5wTBAP9XJpNpWLhw4QO33nrrHwS/AABAtni/ADi/7UHRc2c/SG+LqC33/gcAAHLZokWL6u69995X0un0swcddFCnkpKS3roC8A8VFRUz/7//7/+77aKLLpq6aNGiOh0BAACyRXH3xsgr3fnPBMAAAEDMnDmz8u67736qqalpWr9+/Ypbt27dN5VKpXQGaG4ymUx6zZo1U+65555/Peeccx6cOXNmpa4AAADZRgAMAAB8KDNnzqz88Y9//Gw6nZ4uCAaak7eD37vvvvtfzz///McEvwAAQDYTAAMAAB+JIBhoLgS/AABAEgmAAQCAj+XtILisrOyFvn37diwuLu4VEYJgIBdkKioqnrv33nu/PWbMmEcEvwAAQJK8XwCc2vecGLGzHzSui9j4aivdAwAA/unqq6/u8ZWvfOX8Pn36nJWXl9dCR4CkSafT9UuXLh3/X//1Xw/84he/WKMjAABAEnUYVhsFXXb+MwEwAADwkZ1xxhntb7/99rMPPPDA8/Pz81vrCJDtmpqaqhcsWPDgd77znUcmTpzotC8AAJBoAmAAAGC3GD58eMkPf/jDzwwePPjioqKijjoCZJv6+voNr7322u9vvPHGx2fPnl2jIwAAQC4QAAMAALvV0KFDi++5556zDjnkkPOKioq66giwt9XV1a19/fXXH7z++uvHC34BAIBcIwAGAAD2iFatWuXdc889w0455ZTzO3bseJSOAHtYZsOGDbOmTJny4PXXX/9qbW1tWksAAIBcJAAGAAD2uH/913/tf/7555/dq1ev0/Ly8lroCLC7pNPp+pUrV05+4IEHHvnOd76zSEcAAIBcJwAGAAD2mjPOOKP97bfffvYBBxzw2YKCgjY6AuwqjY2NVW+++eafv/e97z06YcKETToCAAA0FwJgAABgrxs+fHjJ97///dGDBg0aU1paur+OAB9XdXX1wtdee+3Rr371q1Nfe+21Wh0BAACaGwEwAACQVb761a/ue8EFF3y6b9++ZxUUFLTWEeCDNDY2bnnrrbfG/+EPf5j4ox/9aLmOAAAAzZkAGAAAyEpDhw4t/sEPfnDy4MGDz27dunV/HQHerbq6+s2XX375weuuu+7ppUuXbtcRAAAAATAAAJDlCgsLU3ffffeQ0aNHn9G1a9fj8vLyinQFmq90Ol1XXl4+bcqUKROuvfbav+sIAADA/yYABgAAEqNPnz4t/v3f/33UyJEjz2rfvv2nIiKlK9AsZDZt2vTXF1544bGvfe1rzzntCwAA8N4EwAAAQCJddNFFXa6++uqTDzzwwLNbtmzZTUcg99TV1a1ZsGDBuJ/+9KdP3n///et0BAAA4IMJgAEAgETr1q1b4d13333k4YcffmqHDh2OyMvLK9QVSK50Ot2wcePGWbNmzZp8/fXXz6qoqGjUFQAAgA9PAAwAAOSMo48+uvWtt956/CGHHHJKu3btBkdEnq5AIqQrKytfmzdv3uQ777xz+owZM6q1BAAA4OMRAAMAADnpuOOOK/vGN75x/CGHHHJa27ZtB4bvBUO2yVRVVc2dN2/epO9///vTpk+fvkVLAAAAPjkBMAAAkPNuu+22vmedddZJffr0Oa5Vq1a9dQT2ntra2uXLly+f/uijjz51xx13vKUjAAAAu5YAGAAAaFa+9KUvdbv44ouP7t+//wlOBsMekamqqpq7cOHCv/z+97+fcd9995VrCQAAwO4jAAYAAJqtSy65pOtll112jDAYdrl0VVXVvIULF/7lV7/61bO/+93v1moJAADAniEABgAAiIirr766x/nnnz9q//33P7JNmzZDUqlUga7Ah5fJZBoqKyv/vnjx4uf+9Kc/zbr33ntX6woAAMCeJwAGAAB4l379+hV97WtfGzRy5MhRPXv2PLaoqKizrsD/VV9fv37VqlXPvPDCC8/9+7//+5zFixfX6woAAMDeJQAGAAB4H61bt8678847Bx599NFHde/efURpaen+4apomq/M1q1bF69Zs+bF5557btY3v/nNOdXV1WltAQAAyB4CYAAAgI9g8ODBrcaOHXvI8OHDD+vevfvw1q1bHxACYXJXprq6+s01a9a88sorr7z8k5/8ZN5rr71Wqy0AAADZSwAMAADwCVx//fX7nHHGGYf169dvePv27Yfm5+e31hWSrLGxsXrjxo2vvvXWWy+PHz/+lR//+McrdQUAACA5BMAAAAC70Je//OUe55xzzvA+ffoM7tix45CioqKuukI2q6+vX7t27doXFy9ePGfixImv3Xvvvat1BQAAILkEwAAAALvRl7/85R6f+cxnBvfr129Qly5dDm/ZsqVAmL2qrq5u7bp16wS+AAAAOUoADAAAsIe0atUq75prrtnn2GOPPXi//fY7uH379oeUlpb2TaVS+brDbpKuqalZtnHjxnlvvfXW3GeffXbef/3Xfy2vra1Naw0AAEBuEgADAADsRQceeGDLq6+++oAhQ4Yc3LNnz4Pbtm17sGuj+biampqqq6qqXi8vL583Z86ceb/85S/nvfjii1t1BgAAoPkQAAMAAGSZoUOHFn/xi1/cf9CgQQf26NHjwHbt2h3YqlWr3qlUKk932CFdU1OzvLKycsHq1asXzJkzZ8Gf//znJTNmzKjWGgAAgOZNAAwAAJAAxx13XNkFF1xw4MEHH3xA165dDywtLd23pKRkn1QqVag7uS2TyTRs27ZtRXV19dJ169YtfOONNxZOmDBh4YQJEzbpDgAAAO8mAAYAAEiw8847r+OJJ57Yp3///vt16dKlT5s2bfZr3bp1v/z8/GLdSZampqaa6urqxZs3b16ybt26pQsXLlzy9NNPL33ooYc26A4AAAAflgAYAAAgx7Rr1y7/kksu6TFkyJCe++67b89OnTr1Kisr61VcXNyzZcuW3VKpVL4u7R2ZTKaprq6uvKamZtWWLVtWVlRUrFy6dOnK2bNnr7r//vvXVFZWNukSAAAAn4QAGAAAoBnp1KlTwec+97luQ4cO7bnPPvv0aNeuXafWrVt3Li4u7tqyZcvORUVFnfLy8lro1MeTTqe319fXr6+rq6uoqalZW11dvb6y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AACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoMY3JP//9K8My551lzpAk293a7QAAAAAAAAD8iIw3r+SL7TpPxuSt4/ibJJuz20QDBgAAAAAAAHhzrJPp6NvHYcyyjLl7dJTPbl/Jp6sPLufSsM+5ec7q5YOrF0OeP/SVaAAAAAAAAIA3weH7u6zfm79dWDIMSw6225w785vsx3XyzasOby5ssz69c4sAAAAAAAAAr9n69C6bC9sT93a7rKdnORin5Otxynzi1JQcfiwCAwAAAAAAALxO69O7HH68TaaT98cp85R8vbp3Nfszv8q0LHn7xMF1sjk/ZzUPmZ/MmWefhAYAAAAAAAD4oayPdjn7223Gn7x6ZrXPnetX8mBKkpv3cufDd/Pufn5FL56SzcVtNheT3dNt8tQlAwAAAAAAAHyv1sm0ySv/9XtsNWZ3I/lHkgzHi7/4XY7WYz5yiwAAAAAAAAA/Ivtcv/3nPEyS1fHa42t5+vNLyX7JoRsCAAAAAAAAePPt1/nbV3/KvePn1Xc371/NYxEYAAAAAAAA4M0yTHk2rvNo2WdzvHZqzN9v/SF3vju3evng/at5fPDLPDu1yuGyZHSVAAAAAAAAAK/XOGe4ueSvZ4e8M8xZbVe5ceuPufvy3Oqkw4+v5emDX+fuuTlLhhwsEYIBAAAAAAAAXpclGR8OuXP0TR4cPM/9z/+SRyfNDf/1TZezOp/87KdjzizJZkhO7edMy/w/nAUAAAAAAADg/zaMWcZkP8/ZLsmLacr2/MV8+cnvs/tP5/4FmLjAq1ifcioAAAAASUVORK5CYII='\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * PptxGenJS Interfaces\n */\n\nimport type { CHART_NAME, PLACEHOLDER_TYPE, SHAPE_NAME, SLIDE_OBJECT_TYPES, TABLE_STYLE, TEXT_HALIGN, TEXT_VALIGN, WRITE_OUTPUT_TYPE } from './core-enums.js'\n\n// Core Types\n// ==========\n\n/**\n * Coordinate value. A bare `number` is **always inches** — there is no magnitude-based unit\n * guessing. For other units use an explicit string suffix:\n * - `number` → inches (e.g. `10.25`)\n * - `\"<n>%\"` → percentage of the slide axis (e.g. `\"75%\"`)\n * - `\"<n>in\"` → inches (e.g. `\"10.25in\"`)\n * - `\"<n>pt\"` → points (e.g. `\"72pt\"` = 1 inch)\n * - `\"<n>emu\"` → raw EMU, the escape hatch for exact OOXML units (e.g. `\"914400emu\"` = 1 inch)\n *\n * @example 10.25 // inches\n * @example '75%' // percentage of slide size\n * @example '72pt' // points\n * @example '914400emu' // raw EMU\n */\nexport type Coord = number | `${number}%` | `${number}in` | `${number}pt` | `${number}emu`\nexport interface PositionProps {\n\t/**\n\t * Horizontal position\n\t * - inches or percentage\n\t * @example 10.25 // position in inches\n\t * @example '75%' // position as percentage of slide size\n\t */\n\tx?: Coord\n\t/**\n\t * Vertical position\n\t * - inches or percentage\n\t * @example 10.25 // position in inches\n\t * @example '75%' // position as percentage of slide size\n\t */\n\ty?: Coord\n\t/**\n\t * Height\n\t * - inches or percentage\n\t * @example 10.25 // height in inches\n\t * @example '75%' // height as percentage of slide size\n\t */\n\th?: Coord\n\t/**\n\t * Width\n\t * - inches or percentage\n\t * @example 10.25 // width in inches\n\t * @example '75%' // width as percentage of slide size\n\t */\n\tw?: Coord\n}\n/**\n * Reusable optional data/path fields.\n * Use `DataOrPathRequiredProps` for APIs that require at least one source.\n */\nexport interface DataOrPathProps {\n\t/**\n\t * URL or relative path\n\t *\n\t * @example 'https://onedrives.com/myimg.png` // retrieve image via URL\n\t * @example '/home/gitbrent/images/myimg.png` // retrieve image via local path\n\t */\n\tpath?: string\n\t/**\n\t * base64-encoded string\n\t * - Useful for avoiding potential path/server issues\n\t *\n\t * @example 'image/png;base64,iVtDafDrBF[...]=' // pre-encoded image in base-64\n\t */\n\tdata?: string\n}\nexport type DataOrPathRequiredProps =\n\t| (DataOrPathProps & { data: string })\n\t| (DataOrPathProps & { path: string })\nexport interface BackgroundProps extends DataOrPathProps, ShapeFillProps {\n\t/**\n\t * Color (hex format)\n\t * @deprecated v3.6.0 - use `ShapeFillProps` instead\n\t */\n\tfill?: HexColor\n\n\t/**\n\t * source URL\n\t * @deprecated v3.6.0 - use `DataOrPathProps` instead - remove in v4.0.0\n\t */\n\tsrc?: string\n}\n/**\n * Color in Hex format\n * @example 'FF3399'\n */\nexport type HexColor = string\nexport type ThemeColor = 'tx1' | 'tx2' | 'bg1' | 'bg2' | 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6'\nexport type Color = HexColor | ThemeColor\nexport interface GradientStopProps {\n\t/**\n\t * Stop position as a percentage.\n\t * - range: 0-100\n\t */\n\tposition: number\n\t/**\n\t * Stop color.\n\t * - `HexColor` or `ThemeColor`\n\t */\n\tcolor: Color\n\t/**\n\t * Transparency (percent)\n\t * - range: 0-100\n\t * @default 0\n\t */\n\ttransparency?: number\n\t/**\n\t * Transparency (percent)\n\t * @deprecated v3.3.0 - use `transparency`\n\t */\n\talpha?: number\n}\nexport interface LinearGradientFillProps {\n\t/**\n\t * Gradient type.\n\t */\n\tkind: 'linear'\n\t/**\n\t * Gradient angle in degrees. Values are normalized into 0-359.999...\n\t * @default 0\n\t */\n\tangle?: number\n\t/**\n\t * Whether the gradient angle scales with the fill region.\n\t */\n\tscaled?: boolean\n\t/**\n\t * Whether the fill rotates with the shape.\n\t * @default true\n\t */\n\trotateWithShape?: boolean\n\t/**\n\t * Gradient stops. Stops are serialized in ascending `position` order.\n\t */\n\tstops: GradientStopProps[]\n}\nexport type GradientFillProps = LinearGradientFillProps\n\n/** OOXML ST_PresetPatternVal — preset pattern names for `<a:pattFill prst=\"...\">` */\nexport type PatternPreset =\n\t| 'pct5' | 'pct10' | 'pct20' | 'pct25' | 'pct30' | 'pct40' | 'pct50'\n\t| 'pct60' | 'pct70' | 'pct75' | 'pct80' | 'pct90'\n\t| 'horz' | 'vert' | 'ltHorz' | 'ltVert' | 'dkHorz' | 'dkVert'\n\t| 'narHorz' | 'narVert' | 'dashHorz' | 'dashVert'\n\t| 'cross' | 'dnDiag' | 'upDiag' | 'ltDnDiag' | 'ltUpDiag'\n\t| 'dkDnDiag' | 'dkUpDiag' | 'wdDnDiag' | 'wdUpDiag'\n\t| 'dashDnDiag' | 'dashUpDiag' | 'diagCross'\n\t| 'smCheck' | 'lgCheck' | 'smGrid' | 'lgGrid' | 'dotGrid'\n\t| 'smConfetti' | 'lgConfetti' | 'horzBrick' | 'diagBrick'\n\t| 'solidDmnd' | 'openDmnd' | 'dotDmnd' | 'plaid' | 'sphere'\n\t| 'weave' | 'divot' | 'shingle' | 'wave' | 'trellis' | 'zigZag'\n\nexport interface PatternFillProps {\n\t/** OOXML preset pattern (`prst` attribute on `<a:pattFill>`). */\n\tpreset: PatternPreset\n\t/** Foreground color. Defaults to black (`000000`) if omitted. */\n\tfgColor?: Color\n\t/** Background color. Defaults to white (`FFFFFF`) if omitted. */\n\tbgColor?: Color\n}\n\nexport type Margin = number | [number, number, number, number]\nexport type HAlign = 'left' | 'center' | 'right' | 'justify'\nexport type VAlign = 'top' | 'middle' | 'bottom'\n/**\n * Text body `vert` attribute — flow/rotation direction of the text within its box.\n * Maps to `<a:bodyPr vert=\"…\">` (ECMA-376 `ST_TextVerticalType`).\n */\nexport type TextVertType = 'eaVert' | 'horz' | 'mongolianVert' | 'vert' | 'vert270' | 'wordArtVert' | 'wordArtVertRtl'\n\n/**\n * A single node of a freeform (`custGeom`) path.\n * - coordinates are authored in the object's own inch/EMU space (0..width, 0..height), not slide-relative and not normalized\n * - used by shapes (`pptx.shapes.CUSTOM_GEOMETRY`) and by images (clips the picture to the path)\n */\nexport type GeometryPoint =\n\t| { x: Coord, y: Coord, moveTo?: boolean }\n\t| { x: Coord, y: Coord, curve: { type: 'arc', hR: Coord, wR: Coord, stAng: number, swAng: number } }\n\t| { x: Coord, y: Coord, curve: { type: 'cubic', x1: Coord, y1: Coord, x2: Coord, y2: Coord } }\n\t| { x: Coord, y: Coord, curve: { type: 'quadratic', x1: Coord, y1: Coord } }\n\t| { close: true }\n\n// used by charts, shape, text\nexport interface BorderProps {\n\t/**\n\t * Border type\n\t * @default solid\n\t */\n\ttype?: 'none' | 'dash' | 'solid'\n\t/**\n\t * Border color (hex)\n\t * @example 'FF3399'\n\t * @default '666666'\n\t */\n\tcolor?: HexColor\n\n\t// TODO: add `transparency` prop to Borders (0-100%)\n\n\t// TODO: add `width` - deprecate `pt`\n\t/**\n\t * Border size (points)\n\t * @default 1\n\t */\n\tpt?: number\n\t/**\n\t * Line end cap style\n\t * @default 'flat'\n\t */\n\tcap?: LineCap\n}\n// used by: image, object, text,\nexport interface HyperlinkProps {\n\t_rId?: number\n\t/**\n\t * Slide number to link to\n\t */\n\tslide?: number\n\t/**\n\t * Url to link to\n\t */\n\turl?: string\n\t/**\n\t * Hyperlink Tooltip\n\t */\n\ttooltip?: string\n}\n// used by: chart, text, image\nexport interface ShadowProps {\n\t/**\n\t * shadow type\n\t * @default 'none'\n\t */\n\ttype: 'outer' | 'inner' | 'none'\n\t/**\n\t * opacity (percent)\n\t * - range: 0.0-1.0\n\t * @example 0.5 // 50% opaque\n\t */\n\topacity?: number // TODO: \"Transparency (0-100%)\" in PPT // TODO: deprecate and add `transparency`\n\t/**\n\t * blur (points)\n\t * - range: 0-100\n\t * @default 0\n\t */\n\tblur?: number\n\t/**\n\t * angle (degrees)\n\t * - range: 0-359\n\t * @default 0\n\t */\n\tangle?: number\n\t/**\n\t * shadow offset (points)\n\t * - range: 0-200\n\t * @default 0\n\t */\n\toffset?: number // TODO: \"Distance\" in PPT\n\t/**\n\t * shadow color (hex format)\n\t * @example 'FF3399'\n\t */\n\tcolor?: HexColor\n\t/**\n\t * whether to rotate shadow with shape\n\t * @default false\n\t */\n\trotateWithShape?: boolean\n}\n// used by: shape, table, text\nexport interface ShapeFillProps {\n\t/**\n\t * Fill color\n\t * - `HexColor` or `ThemeColor`\n\t * @example 'FF0000' // hex color (red)\n\t * @example pptx.SchemeColor.text1 // Theme color (Text1)\n\t */\n\tcolor?: Color\n\t/**\n\t * Transparency (percent)\n\t * - MS-PPT > Format Shape > Fill & Line > Fill > Transparency\n\t * - range: 0-100\n\t * @default 0\n\t */\n\ttransparency?: number\n\t/**\n\t * Fill type\n\t * @default 'solid'\n\t */\n\ttype?: 'none' | 'solid' | 'gradient' | 'pattern'\n\n\t/**\n\t * Native PPTX gradient fill options.\n\t */\n\tgradient?: GradientFillProps\n\n\t/**\n\t * Native PPTX pattern fill options.\n\t */\n\tpattern?: PatternFillProps\n\n\t/**\n\t * Transparency (percent)\n\t * @deprecated v3.3.0 - use `transparency`\n\t */\n\talpha?: number\n}\nexport interface ShapeLineProps extends ShapeFillProps {\n\t/**\n\t * Line width (pt)\n\t * @default 1\n\t */\n\twidth?: number\n\t/**\n\t * Dash type\n\t * @default 'solid'\n\t */\n\tdashType?: 'solid' | 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'sysDash' | 'sysDot'\n\t/**\n\t * Line end cap style\n\t * @default 'flat'\n\t */\n\tcap?: LineCap\n\t/**\n\t * Begin arrow type\n\t * @since v3.3.0\n\t */\n\tbeginArrowType?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle'\n\t/**\n\t * End arrow type\n\t * @since v3.3.0\n\t */\n\tendArrowType?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle'\n\t// FUTURE: beginArrowSize (1-9)\n\t// FUTURE: endArrowSize (1-9)\n\n\t/**\n\t * Dash type\n\t * @deprecated v3.3.0 - use `dashType`\n\t */\n\tlineDash?: 'solid' | 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'sysDash' | 'sysDot'\n\t/**\n\t * @deprecated v3.3.0 - use `beginArrowType`\n\t */\n\tlineHead?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle'\n\t/**\n\t * @deprecated v3.3.0 - use `endArrowType`\n\t */\n\tlineTail?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle'\n\t/**\n\t * Line width (pt)\n\t * @deprecated v3.3.0 - use `width`\n\t */\n\tpt?: number\n\t/**\n\t * Line size (pt)\n\t * @deprecated v3.3.0 - use `width`\n\t */\n\tsize?: number\n}\n/**\n * Connector routing style. Maps to a connector preset geometry:\n * `straight`→`straightConnector1`, `elbow`→`bentConnector3`, `curved`→`curvedConnector3`.\n */\nexport type ConnectorType = 'straight' | 'elbow' | 'curved'\n/**\n * A connector is a line drawn between two points, emitted as a PowerPoint connector\n * (`<p:cxnSp>`) so the app treats it as a connector (selectable/reroutable) rather than a\n * plain line shape. Endpoints are given directly; the bounding box and flip flags are derived.\n */\nexport interface ConnectorProps {\n\t/**\n\t * Routing style\n\t * @default 'straight'\n\t */\n\ttype?: ConnectorType\n\t/** Start point X — inches, or a `Coord` such as `'50%'` / `'2in'` */\n\tx1: Coord\n\t/** Start point Y */\n\ty1: Coord\n\t/** End point X */\n\tx2: Coord\n\t/** End point Y */\n\ty2: Coord\n\t/**\n\t * Line color (6-digit hex, no `#`)\n\t * @default '000000'\n\t */\n\tcolor?: HexColor\n\t/**\n\t * Line width (pt)\n\t * @default 1\n\t */\n\twidth?: number\n\t/** Dash style */\n\tdashType?: ShapeLineProps['dashType']\n\t/** Arrowhead at the start point */\n\tbeginArrowType?: ShapeLineProps['beginArrowType']\n\t/** Arrowhead at the end point */\n\tendArrowType?: ShapeLineProps['endArrowType']\n\t/** Selection Pane object name */\n\tobjectName?: string\n\t/** Accessibility alt text */\n\taltText?: string\n}\n// used by: chart, slide, table, text\nexport interface TextBaseProps {\n\t/**\n\t * Horizontal alignment\n\t * @default 'left'\n\t */\n\talign?: HAlign\n\t/**\n\t * Bold style\n\t * @default false\n\t */\n\tbold?: boolean\n\t/**\n\t * Add a line-break\n\t * @default false\n\t */\n\tbreakLine?: boolean\n\t/**\n\t * Add standard or custom bullet\n\t * - use `true` for standard bullet\n\t * - pass object options for custom bullet\n\t * @default false\n\t */\n\tbullet?:\n\t| boolean\n\t| {\n\t\t/**\n\t\t * Bullet type\n\t\t * @default bullet\n\t\t */\n\t\ttype?: 'bullet' | 'number'\n\t\t/**\n\t\t * Bullet character code (unicode)\n\t\t * @since v3.3.0\n\t\t * @example '25BA' // 'BLACK RIGHT-POINTING POINTER' (U+25BA)\n\t\t */\n\t\tcharacterCode?: string\n\t\t/**\n\t\t * Bullet glyph font typeface (`<a:buFont/>`), e.g. for symbol-font bullets\n\t\t * @since v4.0.0\n\t\t * @example 'Wingdings' // render `characterCode` using the Wingdings font\n\t\t */\n\t\tfontFace?: string\n\t\t/**\n\t\t * Bullet glyph size as a percentage of the run's text size (25–400)\n\t\t * @since v4.0.0\n\t\t * @default 100\n\t\t * @example 80 // bullet glyph is 80% of the text size\n\t\t */\n\t\tsize?: number\n\t\t/**\n\t\t * Indentation (space between bullet and text) (points)\n\t\t * @since v3.3.0\n\t\t * @default 27 // DEF_BULLET_MARGIN\n\t\t * @example 10 // Indents text 10 points from bullet\n\t\t */\n\t\tindent?: number\n\t\t/**\n\t\t * Number type\n\t\t * @since v3.3.0\n\t\t * @example 'romanLcParenR' // roman numerals lower-case with paranthesis right\n\t\t */\n\t\tnumberType?:\n\t\t| 'alphaLcParenBoth'\n\t\t| 'alphaLcParenR'\n\t\t| 'alphaLcPeriod'\n\t\t| 'alphaUcParenBoth'\n\t\t| 'alphaUcParenR'\n\t\t| 'alphaUcPeriod'\n\t\t| 'arabicParenBoth'\n\t\t| 'arabicParenR'\n\t\t| 'arabicPeriod'\n\t\t| 'arabicPlain'\n\t\t| 'romanLcParenBoth'\n\t\t| 'romanLcParenR'\n\t\t| 'romanLcPeriod'\n\t\t| 'romanUcParenBoth'\n\t\t| 'romanUcParenR'\n\t\t| 'romanUcPeriod'\n\t\t/**\n\t\t * Number bullets start at\n\t\t * @since v3.3.0\n\t\t * @default 1\n\t\t * @example 10 // numbered bullets start with 10\n\t\t */\n\t\tnumberStartAt?: number\n\n\t\t// DEPRECATED\n\n\t\t/**\n\t\t * Bullet code (unicode)\n\t\t * @deprecated v3.3.0 - use `characterCode`\n\t\t */\n\t\tcode?: string\n\t\t/**\n\t\t * Margin between bullet and text\n\t\t * @since v3.2.1\n\t\t * @deprecated v3.3.0 - use `indent`\n\t\t */\n\t\tmarginPt?: number\n\t\t/**\n\t\t * Number to start with (only applies to type:number)\n\t\t * @deprecated v3.3.0 - use `numberStartAt`\n\t\t */\n\t\tstartAt?: number\n\t\t/**\n\t\t * Number type\n\t\t * @deprecated v3.3.0 - use `numberType`\n\t\t */\n\t\tstyle?: string\n\t\t/**\n\t\t * Bullet glyph color (separate from the text run color)\n\t\t * @since v4.0.0\n\t\t * @example 'FF0000' // red bullet\n\t\t */\n\t\tcolor?: HexColor\n\t}\n\t/**\n\t * Text capitalization\n\t * - `'all'` = ALL CAPS\n\t * - `'small'` = Small Caps\n\t * - `'none'` = no override (default)\n\t * - PowerPoint: Font > Effects > All Caps / Small Caps\n\t */\n\tcaps?: 'none' | 'small' | 'all'\n\t/**\n\t * Text color\n\t * - `HexColor` or `ThemeColor`\n\t * - MS-PPT > Format Shape > Text Options > Text Fill & Outline > Text Fill > Color\n\t * @example 'FF0000' // hex color (red)\n\t * @example pptx.SchemeColor.text1 // Theme color (Text1)\n\t */\n\tcolor?: Color\n\t/**\n\t * Font face name\n\t * @example 'Arial' // Arial font\n\t */\n\tfontFace?: string\n\t/**\n\t * Font size\n\t * @example 12 // Font size 12\n\t */\n\tfontSize?: number\n\t/**\n\t * Text highlight color (hex format)\n\t * @example 'FFFF00' // yellow\n\t */\n\thighlight?: HexColor\n\t/**\n\t * italic style\n\t * @default false\n\t */\n\titalic?: boolean\n\t/**\n\t * language\n\t * - ISO 639-1 standard language code\n\t * @default 'en-US' // english US\n\t * @example 'fr-CA' // french Canadian\n\t */\n\tlang?: string\n\t/**\n\t * Add a soft line-break (shift+enter) before line text content\n\t * @default false\n\t * @since v3.5.0\n\t */\n\tsoftBreakBefore?: boolean\n\t/**\n\t * tab stops\n\t * - PowerPoint: Paragraph > Tabs > Tab stop position\n\t * @example [{ position:1 }, { position:3 }] // Set first tab stop to 1 inch, set second tab stop to 3 inches\n\t */\n\ttabStops?: Array<{ position: number, alignment?: 'l' | 'r' | 'ctr' | 'dec' }>\n\t/**\n\t * text direction\n\t * `horz` = horizontal\n\t * `vert` = rotate 90^\n\t * `vert270` = rotate 270^\n\t * `wordArtVert` = stacked\n\t * @default 'horz'\n\t */\n\ttextDirection?: 'horz' | 'vert' | 'vert270' | 'wordArtVert'\n\t/**\n\t * Transparency (percent)\n\t * - MS-PPT > Format Shape > Text Options > Text Fill & Outline > Text Fill > Transparency\n\t * - range: 0-100\n\t * @default 0\n\t */\n\ttransparency?: number\n\t/**\n\t * underline properties\n\t * - PowerPoint: Font > Color & Underline > Underline Style/Underline Color\n\t * @default (none)\n\t */\n\tunderline?: {\n\t\tstyle?:\n\t\t| 'dash'\n\t\t| 'dashHeavy'\n\t\t| 'dashLong'\n\t\t| 'dashLongHeavy'\n\t\t| 'dbl'\n\t\t| 'dotDash'\n\t\t| 'dotDashHeave'\n\t\t| 'dotDotDash'\n\t\t| 'dotDotDashHeavy'\n\t\t| 'dotted'\n\t\t| 'dottedHeavy'\n\t\t| 'heavy'\n\t\t| 'none'\n\t\t| 'sng'\n\t\t| 'wavy'\n\t\t| 'wavyDbl'\n\t\t| 'wavyHeavy'\n\t\tcolor?: Color\n\t}\n\t/**\n\t * vertical alignment\n\t * @default 'top'\n\t */\n\tvalign?: VAlign\n}\nexport interface PlaceholderProps extends PositionProps, TextBaseProps, ObjectNameProps {\n\tname: string\n\ttype: PLACEHOLDER_TYPE\n\t/**\n\t * margin (points)\n\t */\n\tmargin?: Margin\n\t/**\n\t * Preset shape geometry for this placeholder (e.g. `'roundRect'`)\n\t * @default 'rect'\n\t */\n\tshape?: SHAPE_NAME\n\t/**\n\t * Rounded rectangle corner radius (inches) when `shape: 'roundRect'`\n\t * - range: 0.0 to slide height/2\n\t */\n\trectRadius?: number\n}\nexport interface ObjectNameProps {\n\t/**\n\t * Object name\n\t * - used instead of default \"Object N\" name\n\t * - PowerPoint: Home > Arrange > Selection Pane...\n\t * @since v3.10.0\n\t * @default 'Object 1'\n\t * @example 'Antenna Design 9'\n\t */\n\tobjectName?: string\n\t/**\n\t * Alt Text value (\"How would you describe this object and its contents to someone who is blind?\")\n\t * - serialized to the generated object's `p:cNvPr` `descr` attribute\n\t * - PowerPoint: [right-click on the object] > \"Edit Alt Text...\"\n\t * @since v4.0.0\n\t * @example 'Quarterly revenue bar chart'\n\t */\n\taltText?: string\n\t/**\n\t * Object lock flags (DrawingML `a:spLocks` / `a:picLocks` / `a:graphicFrameLocks`)\n\t * - restrict how the object can be manipulated in PowerPoint (e.g. prevent moving, resizing, or grouping)\n\t * - each flag maps 1:1 to the OOXML attribute of the same name; only flags set to `true` are emitted\n\t * - PowerPoint UI: Selection Pane / right-click protections (most locks are honored at edit time, not as a password)\n\t * - flags only apply to the object types that support them (see each flag); flags set on an unsupported\n\t * object type are ignored with a console warning\n\t * @since v4.0.0\n\t * @example { noMove: true, noResize: true } // pin an object in place\n\t * @example { noGrp: true } // exclude from grouping\n\t */\n\tobjectLock?: ObjectLockProps\n}\n/**\n * Object lock flags. Maps to DrawingML locking elements:\n * - shapes / text boxes / placeholders → `a:spLocks`\n * - images / media → `a:picLocks`\n * - tables → `a:graphicFrameLocks`\n *\n * Each property mirrors the OOXML attribute name. A flag is only serialized for object types whose\n * locking element defines it (noted per-flag); setting an unsupported flag logs a warning and is ignored.\n * @since v4.0.0\n */\nexport interface ObjectLockProps {\n\t/** Disallow grouping/ungrouping with other objects. (shapes, images, tables) */\n\tnoGrp?: boolean\n\t/** Disallow selecting the object. (shapes, images, tables) */\n\tnoSelect?: boolean\n\t/** Disallow moving the object. (shapes, images, tables) */\n\tnoMove?: boolean\n\t/** Disallow resizing the object. (shapes, images, tables) */\n\tnoResize?: boolean\n\t/** Disallow changing the aspect ratio. (shapes, images, tables) */\n\tnoChangeAspect?: boolean\n\t/** Disallow rotating the object. (shapes, images) */\n\tnoRot?: boolean\n\t/** Disallow editing the freeform/custom-geometry points. (shapes, images) */\n\tnoEditPoints?: boolean\n\t/** Disallow moving the shape's adjustment handles. (shapes, images) */\n\tnoAdjustHandles?: boolean\n\t/** Disallow changing arrowheads. (shapes, images) */\n\tnoChangeArrowheads?: boolean\n\t/** Disallow changing the shape type (preset geometry). (shapes, images) */\n\tnoChangeShapeType?: boolean\n\t/** Disallow editing the text body. (shapes / text boxes) */\n\tnoTextEdit?: boolean\n\t/** Disallow cropping the picture. (images) */\n\tnoCrop?: boolean\n\t/** Disallow drilling down into the graphical object (e.g. chart data). (tables) */\n\tnoDrilldown?: boolean\n}\n/**\n * Theme color scheme overrides. Each slot maps to one `<a:clrScheme>` entry in `theme1.xml`;\n * any slot left unset keeps the default Office value. Provide 6-digit hex (no `#`).\n *\n * Slot names use the OOXML scheme names. The PowerPoint UI labels them as:\n * `dk1`=Text/Dark 1, `lt1`=Background/Light 1, `dk2`=Text/Dark 2, `lt2`=Background/Light 2,\n * `accent1`-`accent6`=Accent 1-6, `hlink`=Hyperlink, `folHlink`=Followed Hyperlink.\n * @example { accent1: 'C00000', dk2: '1F3864', hlink: '0070C0' }\n */\nexport interface ThemeColorScheme {\n\t/** Text/Dark 1 (default Office: black via `windowText`) */\n\tdk1?: HexColor\n\t/** Background/Light 1 (default Office: white via `window`) */\n\tlt1?: HexColor\n\t/** Text/Dark 2 (default Office: `44546A`) */\n\tdk2?: HexColor\n\t/** Background/Light 2 (default Office: `E7E6E6`) */\n\tlt2?: HexColor\n\t/** Accent 1 (default Office: `4472C4`) */\n\taccent1?: HexColor\n\t/** Accent 2 (default Office: `ED7D31`) */\n\taccent2?: HexColor\n\t/** Accent 3 (default Office: `A5A5A5`) */\n\taccent3?: HexColor\n\t/** Accent 4 (default Office: `FFC000`) */\n\taccent4?: HexColor\n\t/** Accent 5 (default Office: `5B9BD5`) */\n\taccent5?: HexColor\n\t/** Accent 6 (default Office: `70AD47`) */\n\taccent6?: HexColor\n\t/** Hyperlink (default Office: `0563C1`) */\n\thlink?: HexColor\n\t/** Followed Hyperlink (default Office: `954F72`) */\n\tfolHlink?: HexColor\n}\nexport interface ThemeProps {\n\t/**\n\t * Headings font face name\n\t * @example 'Arial Narrow'\n\t * @default 'Calibri Light'\n\t */\n\theadFontFace?: string\n\t/**\n\t * Body font face name\n\t * @example 'Arial'\n\t * @default 'Calibri'\n\t */\n\tbodyFontFace?: string\n\t/**\n\t * Theme color scheme overrides written to `ppt/theme/theme1.xml`.\n\t * - any unset slot keeps its default Office value\n\t * - references such as `pptx.SchemeColor.accent1` resolve against these values\n\t * @example { accent1: 'C00000', accent2: '00B050', hlink: '0070C0' }\n\t */\n\tcolorScheme?: ThemeColorScheme\n}\n\n// image / media ==================================================================================\nexport type MediaType = 'audio' | 'online' | 'video'\n\ninterface ImageBaseProps extends PositionProps, ObjectNameProps {\n\t/**\n\t * Sizing note (`w`/`h` inherited from {@link PositionProps}):\n\t * - When a `data` (base64) image is supplied and `w`/`h` are omitted, the natural pixel\n\t * size is read from the image header (PNG/JPEG/GIF/BMP/WebP) and used at 96 DPI\n\t * (natural pixels / 96 = inches).\n\t * - When only one of `w`/`h` is given, the other is derived from the natural aspect ratio.\n\t * - `path` images and vector (SVG) data cannot be measured synchronously, so an omitted\n\t * dimension falls back to 1 inch.\n\t */\n\t/**\n\t * Alt Text value (\"How would you describe this object and its contents to someone who is blind?\")\n\t * - PowerPoint: [right-click on an image] > \"Edit Alt Text...\"\n\t */\n\taltText?: string\n\t/**\n\t * Flip horizontally?\n\t * @default false\n\t */\n\tflipH?: boolean\n\t/**\n\t * Flip vertical?\n\t * @default false\n\t */\n\tflipV?: boolean\n\thyperlink?: HyperlinkProps\n\t/**\n\t * Border line (`<a:ln>` outline) drawn around the image\n\t * - same options as a shape outline; a picture supports a single outline, not per-side borders\n\t * - MS-PPT: Format Picture > Line\n\t * @example { color: '0088CC', width: 2 } // 2pt blue border\n\t * @example { color: '666666', width: 1, dashType: 'dash' } // dashed gray border\n\t */\n\tline?: ShapeLineProps\n\t/**\n\t * Placeholder type\n\t * - values: 'body' | 'header' | 'footer' | 'title' | et. al.\n\t * @example 'body'\n\t * @see https://docs.microsoft.com/en-us/office/vba/api/powerpoint.ppplaceholdertype\n\t */\n\tplaceholder?: string\n\t/**\n\t * Image rotation (degrees)\n\t * - range: -360 to 360\n\t * @default 0\n\t * @example 180 // rotate image 180 degrees\n\t */\n\trotate?: number\n\t/**\n\t * Enable image rounding (clips the image to a circle/ellipse)\n\t * - shorthand for `shape: 'ellipse'`; `shape` takes precedence when both are set\n\t * @default false\n\t */\n\trounding?: boolean\n\t/**\n\t * Clip the image to a preset shape geometry (\"fit image into shape\")\n\t * - accepts any PowerPoint preset geometry name, e.g. `'roundRect'`, `'hexagon'`, `'ellipse'`\n\t * - combine with `sizing: { type: 'cover', ... }` for an aspect-correct fill of the shape box\n\t * - use `rectRadius` to set the corner radius for `'roundRect'`\n\t * @example 'roundRect' // rounded-rectangle avatar\n\t * @example 'hexagon' // hexagonal photo\n\t */\n\tshape?: SHAPE_NAME\n\t/**\n\t * Clip the image to an arbitrary freeform path (`custGeom`)\n\t * - takes precedence over `shape` / `rounding` when present\n\t * - coordinates are authored in the image's own inch/EMU space (0..w, 0..h), not slide-relative and not normalized\n\t * - supports the same path DSL as freeform shapes: `moveTo` / `lnTo` / `cubicBezTo` / `quadBezTo` / `arcTo` / `close`\n\t * @example [{ x: 1, y: 0 }, { x: 2, y: 2 }, { x: 0, y: 2 }, { close: true }] // triangular photo clip\n\t */\n\tpoints?: GeometryPoint[]\n\t/**\n\t * Rounded rectangle corner radius (inches) when `shape: 'roundRect'`\n\t * - values: 0.0 to 1.0\n\t * @default 0\n\t */\n\trectRadius?: number\n\t/**\n\t * Preset-geometry adjustment handles (`<a:avLst>` guides) for the clip `shape`.\n\t * - tune adjustment handles that lack a dedicated option, e.g. chevron point depth\n\t * - accepts a single guide or an array; each `value` is a `0.0–1.0` fraction (see {@link ShapeAdjustValue})\n\t * @since v4.0.0\n\t * @example { name: 'adj', value: 0.25 }\n\t */\n\tshapeAdjust?: ShapeAdjustValue | ShapeAdjustValue[]\n\t/**\n\t * Shadow Props\n\t * - MS-PPT > Format Picture > Shadow\n\t * @example\n\t * { type: 'outer', color: '000000', opacity: 0.5, blur: 20, offset: 20, angle: 270 }\n\t */\n\tshadow?: ShadowProps\n\t/**\n\t * Image sizing options\n\t */\n\tsizing?: {\n\t\t/**\n\t\t * Sizing type\n\t\t * - `cover` / `contain` fit the image into the `w`×`h` box using the image's *natural*\n\t\t * pixel aspect ratio (read from the embedded PNG/JPEG/GIF/BMP/WebP header). If the\n\t\t * natural size cannot be determined (e.g. SVG or an unrecognized format) the displayed\n\t\t * `w`/`h` ratio is used as a fallback and a warning is logged.\n\t\t * - `crop` cuts a window out of the displayed image using the `x`/`y`/`w`/`h` offsets.\n\t\t */\n\t\ttype: 'contain' | 'cover' | 'crop'\n\t\t/**\n\t\t * Image width\n\t\t * - inches or percentage\n\t\t * @example 10.25 // position in inches\n\t\t * @example '75%' // position as percentage of slide size\n\t\t */\n\t\tw: Coord\n\t\t/**\n\t\t * Image height\n\t\t * - inches or percentage\n\t\t * @example 10.25 // position in inches\n\t\t * @example '75%' // position as percentage of slide size\n\t\t */\n\t\th: Coord\n\t\t/**\n\t\t * Offset from left to crop image\n\t\t * - `crop` only\n\t\t * - inches or percentage\n\t\t * @example 10.25 // position in inches\n\t\t * @example '75%' // position as percentage of slide size\n\t\t */\n\t\tx?: Coord\n\t\t/**\n\t\t * Offset from top to crop image\n\t\t * - `crop` only\n\t\t * - inches or percentage\n\t\t * @example 10.25 // position in inches\n\t\t * @example '75%' // position as percentage of slide size\n\t\t */\n\t\ty?: Coord\n\t}\n\t/**\n\t * Transparency (percent)\n\t * - MS-PPT > Format Picture > Picture > Picture Transparency > Transparency\n\t * - range: 0-100\n\t * @default 0\n\t * @example 25 // 25% transparent\n\t */\n\ttransparency?: number\n\t/**\n\t * Recolor the image as a two-tone (duotone) effect\n\t * - maps the image's shadows to `shadow` and its highlights to `highlight`\n\t * - serializes `<a:duotone>` inside the picture's `<a:blip>` (MS-PPT > Format Picture > Picture Color > Recolor)\n\t * - colors accept `HexColor` or `ThemeColor`, same as fills\n\t * - the classic brand treatment: tint stock photography into a single brand hue\n\t * @example { shadow: '250F6B', highlight: 'FFFFFF' } // deep-blue duotone\n\t */\n\tduotone?: {\n\t\t/** Color mapped to the image's dark/shadow tones. */\n\t\tshadow: Color\n\t\t/** Color mapped to the image's light/highlight tones. */\n\t\thighlight: Color\n\t}\n\t/**\n\t * Raw SVG markup to embed as the image source\n\t * - convenience for `data: 'data:image/svg+xml;base64,...'`; PptxGenJS encodes it for you\n\t * - ignored when `data` or `path` is also provided\n\t * @example '<svg viewBox=\"0 0 24 24\">...</svg>'\n\t */\n\tsvg?: string\n}\nexport type ImageProps = ImageBaseProps & (DataOrPathRequiredProps | (DataOrPathProps & { svg: string }))\n/**\n * Add media (audio/video) to slide\n * Requires either `data` or `path`; online media requires `link`.\n */\ninterface MediaBaseProps extends PositionProps, ObjectNameProps {\n\t/**\n\t * Cover image\n\t * @since 3.9.0\n\t * @default \"play button\" image, gray background\n\t */\n\tcover?: string\n\t/**\n\t * media file extension\n\t * - use when the media file path does not already have an extension, ex: \"/folder/SomeSong\"\n\t * @since 3.9.0\n\t * @default extension from file provided\n\t */\n\textn?: string\n}\nexport type MediaProps = MediaBaseProps &\n\t(\n\t\t| (DataOrPathRequiredProps & {\n\t\t\t/**\n\t\t\t * Media type\n\t\t\t */\n\t\t\ttype: Exclude<MediaType, 'online'>\n\t\t\t/**\n\t\t\t * Optional video embed link metadata.\n\t\t\t */\n\t\t\tlink?: string\n\t\t})\n\t\t| (DataOrPathProps & {\n\t\t\t/**\n\t\t\t * Use 'online' to embed a YouTube video (only supported in recent versions of PowerPoint)\n\t\t\t */\n\t\t\ttype: 'online'\n\t\t\t/**\n\t\t\t * video embed link\n\t\t\t * - works with YouTube\n\t\t\t * - other sites may not show correctly in PowerPoint\n\t\t\t * @example 'https://www.youtube.com/embed/Dph6ynRVyUc' // embed a youtube video\n\t\t\t */\n\t\t\tlink: string\n\t\t})\n\t)\n\n// shapes =========================================================================================\n\n/**\n * A single preset-geometry adjustment guide (`<a:gd>` inside `<a:avLst>`).\n * - `name` is the guide name the preset defines, e.g. `'adj'`, `'adj1'`, `'adj2'`.\n * PowerPoint shows these handles as the yellow drag dots on a selected shape.\n * - `value` is a fraction `0.0–1.0` of the handle's range, emitted as a percentage\n * guide formula (`val`, in 1/100000 units, so `0.25` → `fmla=\"val 25000\"`).\n * Most adjustment handles (corner radius, chevron point, callout depth, bevel\n * width, …) are percentage-based and map directly; some shapes accept values\n * beyond `1.0`. For angle-based handles, prefer the `angleRange` shortcut.\n * @since v4.0.0\n */\nexport interface ShapeAdjustValue {\n\tname: string\n\tvalue: number\n}\n\nexport interface ShapeProps extends PositionProps, ObjectNameProps {\n\t/**\n\t * Horizontal alignment\n\t * @default 'left'\n\t */\n\talign?: HAlign\n\t/**\n\t * Radius (only for pptx.shapes.PIE, pptx.shapes.ARC, pptx.shapes.BLOCK_ARC)\n\t * - In the case of pptx.shapes.BLOCK_ARC you have to setup the arcThicknessRatio\n\t * - values: [0-359, 0-359]\n\t * @since v3.4.0\n\t * @default [270, 0]\n\t */\n\tangleRange?: [number, number]\n\t/**\n\t * Preset-geometry adjustment handles (`<a:avLst>` guides) for any preset shape.\n\t * - Use this to tune adjustment handles that lack a dedicated shortcut option,\n\t * e.g. chevron/arrow point depth, callout pointer, bevel/frame thickness.\n\t * - Accepts a single guide or an array; each `value` is a `0.0–1.0` fraction of\n\t * the handle's range (see {@link ShapeAdjustValue}).\n\t * - `rectRadius` / `angleRange` remain friendly shortcuts; any `shapeAdjust`\n\t * guide that does not collide with a shortcut name is emitted in addition.\n\t * @since v4.0.0\n\t * @example { name: 'adj', value: 0.25 } // set the single adjust handle to 25%\n\t * @example [{ name: 'adj1', value: 0.5 }, { name: 'adj2', value: 0.25 }] // two handles\n\t */\n\tshapeAdjust?: ShapeAdjustValue | ShapeAdjustValue[]\n\t/**\n\t * Radius (only for pptx.shapes.BLOCK_ARC)\n\t * - You have to setup the angleRange values too\n\t * - values: 0.0-1.0\n\t * @since v3.4.0\n\t * @default 0.5\n\t */\n\tarcThicknessRatio?: number\n\t/**\n\t * Shape fill color properties\n\t * @example { color:'FF0000' } // hex color (red)\n\t * @example { color:'0088CC', transparency:50 } // hex color, 50% transparent\n\t * @example { color:pptx.SchemeColor.accent1 } // Theme color Accent1\n\t */\n\tfill?: ShapeFillProps\n\t/**\n\t * Flip shape horizontally?\n\t * @default false\n\t */\n\tflipH?: boolean\n\t/**\n\t * Flip shape vertical?\n\t * @default false\n\t */\n\tflipV?: boolean\n\t/**\n\t * Add hyperlink to shape\n\t * @example hyperlink: { url: \"https://github.com/gitbrent/pptxgenjs\", tooltip: \"Visit Homepage\" },\n\t */\n\thyperlink?: HyperlinkProps\n\t/**\n\t * Line options\n\t */\n\tline?: ShapeLineProps\n\t/**\n\t * Points (only for pptx.shapes.CUSTOM_GEOMETRY)\n\t * - type: 'arc'\n\t * - `hR` Shape Arc Height Radius\n\t * - `wR` Shape Arc Width Radius\n\t * - `stAng` Shape Arc Start Angle\n\t * - `swAng` Shape Arc Swing Angle\n\t * @see http://www.datypic.com/sc/ooxml/e-a_arcTo-1.html\n\t * @example [{ x: 0, y: 0 }, { x: 10, y: 10 }] // draw a line between those two points\n\t */\n\tpoints?: GeometryPoint[]\n\t/**\n\t * Rounded rectangle radius (only for pptx.shapes.ROUNDED_RECTANGLE)\n\t * - values: 0.0 to 1.0\n\t * @default 0\n\t */\n\trectRadius?: number\n\t/**\n\t * Rotation (degrees)\n\t * - range: -360 to 360\n\t * @default 0\n\t * @example 180 // rotate 180 degrees\n\t */\n\trotate?: number\n\t/**\n\t * Shadow options\n\t * TODO: need new demo.js entry for shape shadow\n\t */\n\tshadow?: ShadowProps\n\n\t/**\n\t * @deprecated v3.3.0\n\t */\n\tlineSize?: number\n\t/**\n\t * @deprecated v3.3.0\n\t */\n\tlineDash?: 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'solid' | 'sysDash' | 'sysDot'\n\t/**\n\t * @deprecated v3.3.0\n\t */\n\tlineHead?: 'arrow' | 'diamond' | 'none' | 'oval' | 'stealth' | 'triangle'\n\t/**\n\t * @deprecated v3.3.0\n\t */\n\tlineTail?: 'arrow' | 'diamond' | 'none' | 'oval' | 'stealth' | 'triangle'\n\t/**\n\t * Shape name (used instead of default \"Shape N\" name)\n\t * @deprecated v3.10.0 - use `objectName`\n\t */\n\tshapeName?: string\n}\n\n// tables =========================================================================================\n\nexport interface TableToSlidesProps extends TableProps {\n\t_arrObjTabHeadRows?: TableRow[]\n\t// _masterSlide?: SlideLayout\n\n\t/**\n\t * Add an image to slide(s) created during autopaging\n\t * - `image` prop requires either `path` or `data`\n\t * - see `DataOrPathProps` for details on `image` props\n\t * - see `PositionProps` for details on `options` props\n\t */\n\taddImage?: { image: DataOrPathProps, options: PositionProps }\n\t/**\n\t * Add a shape to slide(s) created during autopaging\n\t */\n\taddShape?: { shapeName: SHAPE_NAME, options: ShapeProps }\n\t/**\n\t * Add a table to slide(s) created during autopaging\n\t */\n\taddTable?: { rows: TableRow[], options: TableProps }\n\t/**\n\t * Add a text object to slide(s) created during autopaging\n\t */\n\taddText?: { text: TextProps[], options: TextPropsOptions }\n\t/**\n\t * Whether to enable auto-paging\n\t * - auto-paging creates new slides as content overflows a slide\n\t * @default true\n\t */\n\tautoPage?: boolean\n\t/**\n\t * Auto-paging character weight\n\t * - adjusts how many characters are used before lines wrap\n\t * - range: -1.0 to 1.0\n\t * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html\n\t * @default 0.0\n\t * @example 0.5 // lines are longer (increases the number of characters that can fit on a given line)\n\t */\n\tautoPageCharWeight?: number\n\t/**\n\t * Auto-paging line weight\n\t * - adjusts how many lines are used before slides wrap\n\t * - range: -1.0 to 1.0\n\t * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html\n\t * @default 0.0\n\t * @example 0.5 // tables are taller (increases the number of lines that can fit on a given slide)\n\t */\n\tautoPageLineWeight?: number\n\t/**\n\t * Whether to repeat head row(s) on new tables created by autopaging\n\t * @since v3.3.0\n\t * @default false\n\t */\n\tautoPageRepeatHeader?: boolean\n\t/**\n\t * The `y` location to use on subsequent slides created by autopaging\n\t * @default (top margin of Slide)\n\t */\n\tautoPageSlideStartY?: number\n\t/**\n\t * Column widths (inches)\n\t */\n\tcolW?: number | number[]\n\t/**\n\t * Master slide name\n\t * - define a master slide to have your auto-paged slides have corporate design, etc.\n\t * @see https://gitbrent.github.io/PptxGenJS/docs/masters.html\n\t */\n\tmasterSlideName?: string\n\t/**\n\t * Slide margin\n\t * - this margin will be across all slides created by auto-paging\n\t */\n\tslideMargin?: Margin\n\n\t/**\n\t * @deprecated v3.3.0 - use `autoPageRepeatHeader`\n\t */\n\taddHeaderToEach?: boolean\n\t/**\n\t * @deprecated v3.3.0 - use `autoPageSlideStartY`\n\t */\n\tnewSlideStartY?: number\n}\nexport interface TableCellProps extends TextBaseProps {\n\t/**\n\t * Auto-paging character weight\n\t * - adjusts how many characters are used before lines wrap\n\t * - range: -1.0 to 1.0\n\t * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html\n\t * @default 0.0\n\t * @example 0.5 // lines are longer (increases the number of characters that can fit on a given line)\n\t */\n\tautoPageCharWeight?: number\n\t/**\n\t * Auto-paging line weight\n\t * - adjusts how many lines are used before slides wrap\n\t * - range: -1.0 to 1.0\n\t * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html\n\t * @default 0.0\n\t * @example 0.5 // tables are taller (increases the number of lines that can fit on a given slide)\n\t */\n\tautoPageLineWeight?: number\n\t/**\n\t * Cell border\n\t */\n\tborder?: BorderProps | [BorderProps, BorderProps, BorderProps, BorderProps]\n\t/**\n\t * Cell colspan\n\t */\n\tcolspan?: number\n\t/**\n\t * Fill color\n\t * @example { color:'FF0000' } // hex color (red)\n\t * @example { color:'0088CC', transparency:50 } // hex color, 50% transparent\n\t * @example { color:pptx.SchemeColor.accent1 } // theme color Accent1\n\t */\n\tfill?: ShapeFillProps\n\thyperlink?: HyperlinkProps\n\t/**\n\t * Cell margin (inches)\n\t * @default 0\n\t */\n\tmargin?: Margin\n\t/**\n\t * Cell rowspan\n\t */\n\trowspan?: number\n}\n/**\n * Styling for one region of a custom table style (maps to a `CT_TablePartStyle`).\n * A region (e.g. the header row or banded rows) is shown only when the matching\n * `TableProps` flag is set — `firstRow` needs `hasHeader`, `band1H`/`band2H` need\n * `hasBandedRows`, and so on.\n * @see TableStyleProps\n */\nexport interface TableStyleRegionProps {\n\t/**\n\t * Solid cell fill color (hex).\n\t * - `HexColor` only; theme references are not supported in custom styles\n\t * @example '1A2B3C'\n\t */\n\tfill?: HexColor\n\t/**\n\t * Text color (hex).\n\t * @example 'FFFFFF'\n\t */\n\tcolor?: HexColor\n\t/** Bold text. */\n\tbold?: boolean\n\t/** Italic text. */\n\titalic?: boolean\n\t/**\n\t * Cell border(s).\n\t * - single value is applied to all four sides plus the interior grid lines\n\t * - array of values in TRBL order styles only the four outer sides\n\t */\n\tborder?: BorderProps | [BorderProps, BorderProps, BorderProps, BorderProps]\n}\n/**\n * A reusable custom table style written to `ppt/tableStyles.xml`.\n * Pass to `pptx.defineTableStyle()`, which registers it and returns a GUID to use\n * as `TableProps.tableStyle`. Unlike the fixed built-in `TABLE_STYLE` set, a custom\n * style can use arbitrary brand colors, is editable in PowerPoint's Table Styles\n * gallery, and bands correctly across any row/column count (including auto-paged tables).\n * @example\n * const brand = pptx.defineTableStyle({\n * name: 'Brand Banded',\n * wholeTbl: { border: { type:'solid', color:'D9D9D9', pt:0.5 } },\n * firstRow: { fill:'1A2B3C', color:'FFFFFF', bold:true },\n * band1H: { fill:'EAF1F8' },\n * band2H: { fill:'FFFFFF' },\n * })\n * slide.addTable(rows, { tableStyle: brand, hasHeader:true, hasBandedRows:true })\n */\nexport interface TableStyleProps {\n\t/** Display name shown in PowerPoint's Table Styles gallery. */\n\tname: string\n\t/** Base styling applied to every cell. */\n\twholeTbl?: TableStyleRegionProps\n\t/** Header (first) row — activated by `TableProps.hasHeader`. */\n\tfirstRow?: TableStyleRegionProps\n\t/** Footer (last) row — activated by `TableProps.hasFooter`. */\n\tlastRow?: TableStyleRegionProps\n\t/** First column — activated by `TableProps.hasFirstColumn`. */\n\tfirstCol?: TableStyleRegionProps\n\t/** Last column — activated by `TableProps.hasLastColumn`. */\n\tlastCol?: TableStyleRegionProps\n\t/** Odd horizontal band — activated by `TableProps.hasBandedRows`. */\n\tband1H?: TableStyleRegionProps\n\t/** Even horizontal band — activated by `TableProps.hasBandedRows`. */\n\tband2H?: TableStyleRegionProps\n\t/** Odd vertical band — activated by `TableProps.hasBandedColumns`. */\n\tband1V?: TableStyleRegionProps\n\t/** Even vertical band — activated by `TableProps.hasBandedColumns`. */\n\tband2V?: TableStyleRegionProps\n}\n/**\n * Internal record pairing a registered custom table style with its generated GUID.\n */\nexport interface TableStyleInternal {\n\t/** Braced, upper-case GUID emitted as both `styleId` and `<a:tableStyleId>`. */\n\tguid: string\n\tdef: TableStyleProps\n}\nexport interface TableProps extends PositionProps, TextBaseProps, ObjectNameProps {\n\t_arrObjTabHeadRows?: TableRow[]\n\n\t/**\n\t * Whether to enable auto-paging\n\t * - auto-paging creates new slides as content overflows a slide\n\t * @default false\n\t */\n\tautoPage?: boolean\n\t/**\n\t * Auto-paging character weight\n\t * - adjusts how many characters are used before lines wrap\n\t * - range: -1.0 to 1.0\n\t * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html\n\t * @default 0.0\n\t * @example 0.5 // lines are longer (increases the number of characters that can fit on a given line)\n\t */\n\tautoPageCharWeight?: number\n\t/**\n\t * Auto-paging line weight\n\t * - adjusts how many lines are used before slides wrap\n\t * - range: -1.0 to 1.0\n\t * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html\n\t * @default 0.0\n\t * @example 0.5 // tables are taller (increases the number of lines that can fit on a given slide)\n\t */\n\tautoPageLineWeight?: number\n\t/**\n\t * Whether table header row(s) should be repeated on each new slide creating by autoPage.\n\t * Use `autoPageHeaderRows` to designate how many rows comprise the table header (1+).\n\t * @default false\n\t * @since v3.3.0\n\t */\n\tautoPageRepeatHeader?: boolean\n\t/**\n\t * Number of rows that comprise table headers\n\t * - required when `autoPageRepeatHeader` is set to true.\n\t * @example 2 - repeats the first two table rows on each new slide created\n\t * @default 1\n\t * @since v3.3.0\n\t */\n\tautoPageHeaderRows?: number\n\t/**\n\t * The `y` location to use on subsequent slides created by autopaging\n\t * @default (top margin of Slide)\n\t */\n\tautoPageSlideStartY?: number\n\t/**\n\t * Whether populated placeholders on the source slide (e.g. a title set via\n\t * `addText(text, { placeholder })`) are copied onto each overflow slide created by autoPage.\n\t * - new slides otherwise inherit only the layout's empty placeholders, so a title set on the\n\t * first slide would not appear on continuation slides (upstream gitbrent/PptxGenJS#1136).\n\t * @default false\n\t */\n\tautoPagePlaceholder?: boolean\n\t/**\n\t * Table border\n\t * - single value is applied to all 4 sides\n\t * - array of values in TRBL order for individual sides\n\t */\n\tborder?: BorderProps | [BorderProps, BorderProps, BorderProps, BorderProps]\n\t/**\n\t * Width of table columns (inches)\n\t * - single value is applied to every column equally based upon `w`\n\t * - array of values in applied to each column in order\n\t * @default columns of equal width based upon `w`\n\t */\n\tcolW?: number | number[]\n\t/**\n\t * Mark the first row as a header row.\n\t * Emits `firstRow=\"1\"` on `<a:tblPr>`, activating the first-row style region of\n\t * the table style and satisfying the PowerPoint accessibility checker's \"table header\" rule.\n\t * @default false\n\t */\n\thasHeader?: boolean\n\t/**\n\t * Mark the last row as a footer row.\n\t * Emits `lastRow=\"1\"` on `<a:tblPr>`, activating the last-row style region.\n\t * Requires `tableStyle` to have a visible effect.\n\t * @default false\n\t */\n\thasFooter?: boolean\n\t/**\n\t * Enable alternating row (band) shading.\n\t * Emits `bandRow=\"1\"` on `<a:tblPr>`, activating band1H/band2H style regions.\n\t * Requires `tableStyle` to have a visible effect.\n\t * @default false\n\t */\n\thasBandedRows?: boolean\n\t/**\n\t * Enable alternating column (band) shading.\n\t * Emits `bandCol=\"1\"` on `<a:tblPr>`, activating band1V/band2V style regions.\n\t * Requires `tableStyle` to have a visible effect.\n\t * @default false\n\t */\n\thasBandedColumns?: boolean\n\t/**\n\t * Apply special styling to the first column.\n\t * Emits `firstCol=\"1\"` on `<a:tblPr>`, activating the firstCol style region.\n\t * Requires `tableStyle` to have a visible effect.\n\t * @default false\n\t */\n\thasFirstColumn?: boolean\n\t/**\n\t * Apply special styling to the last column.\n\t * Emits `lastCol=\"1\"` on `<a:tblPr>`, activating the lastCol style region.\n\t * Requires `tableStyle` to have a visible effect.\n\t * @default false\n\t */\n\thasLastColumn?: boolean\n\t/**\n\t * Table style to apply, either a built-in `TABLE_STYLE` member or the GUID\n\t * returned by `pptx.defineTableStyle()` for a custom style.\n\t * Emits `<a:tableStyleId>` inside `<a:tblPr>` with the corresponding GUID.\n\t * Style flags (`hasHeader`, `hasFooter`, `hasBandedRows`, etc.) select which\n\t * regions of the chosen style are activated; they have no visible effect without\n\t * a `tableStyle` set.\n\t *\n\t * @example tableStyle: pptx.TABLE_STYLE.MEDIUM_STYLE_2_ACCENT_1 // built-in\n\t * @example const brand = pptx.defineTableStyle({ name:'Brand', firstRow:{ fill:'1A2B3C', color:'FFFFFF', bold:true } }); tableStyle: brand\n\t */\n\ttableStyle?: TABLE_STYLE | string\n\t/**\n\t * Cell background color\n\t * @example { color:'FF0000' } // hex color (red)\n\t * @example { color:'0088CC', transparency:50 } // hex color, 50% transparent\n\t * @example { color:pptx.SchemeColor.accent1 } // theme color Accent1\n\t */\n\tfill?: ShapeFillProps\n\t/**\n\t * Cell margin (inches)\n\t * - affects all table cells, is superceded by cell options\n\t */\n\tmargin?: Margin\n\t/**\n\t * Height of table rows (inches)\n\t * - single value is applied to every row equally based upon `h`\n\t * - array of values in applied to each row in order\n\t * @default rows of equal height based upon `h`\n\t */\n\trowH?: number | number[]\n\t/**\n\t * DEV TOOL: Verbose Mode (to console)\n\t * - tell the library to provide an almost ridiculous amount of detail during auto-paging calculations\n\t * @default false // obviously\n\t */\n\tverbose?: boolean // Undocumented; shows verbose output\n\n\t/**\n\t * @deprecated v3.3.0 - use `autoPageSlideStartY`\n\t */\n\tnewSlideStartY?: number\n}\nexport interface TableCell {\n\t_type?: SLIDE_OBJECT_TYPES.tablecell\n\t/** lines in this cell (autoPage) */\n\t_lines?: TableCell[][]\n\t/** `text` prop but guaranteed to hold \"TableCell[]\" */\n\t_tableCells?: TableCell[]\n\t/** height in EMU */\n\t_lineHeight?: number\n\t_hmerge?: boolean\n\t_vmerge?: boolean\n\t_rowContinue?: number\n\t/** origin cell of a colspan/rowspan span, set on the dummy `_hmerge`/`_vmerge` cells so they can\n\t * inherit the origin's border/fill and render the merged region's outer edges (Issue #680) */\n\t_spanOrigin?: TableCell\n\t_optImp?: any\n\n\ttext?: string | number | TableCell[] // TODO: FUTURE: 20210815: ONly allow `TableCell[]` dealing with string|TableCell[] *SUCKS*\n\toptions?: TableCellProps\n}\nexport interface TableRowSlide {\n\trows: TableRow[]\n}\nexport type TableRow = TableCell[]\n\n// text ===========================================================================================\nexport interface TextGlowProps {\n\t/**\n\t * Border color (hex format)\n\t * @example 'FF3399'\n\t */\n\tcolor?: HexColor\n\t/**\n\t * opacity (0.0 - 1.0)\n\t * @example 0.5\n\t * 50% opaque\n\t */\n\topacity?: number\n\t/**\n\t * size (points)\n\t */\n\tsize: number\n}\n\nexport interface TextFitShrinkProps {\n\t/**\n\t * Shrink text on overflow (`<a:normAutofit>`)\n\t */\n\ttype: 'shrink'\n\t/**\n\t * Font scale as a percent (0-100), mapped to `<a:normAutofit fontScale=\"..\">`.\n\t *\n\t * PowerPoint normally calculates this dynamically when text overflows; set it\n\t * explicitly to bake the scale into the generated file.\n\t * @example 85 // render text at 85% of its nominal size\n\t * @default undefined // attribute omitted (PowerPoint defaults to 100%)\n\t */\n\tfontScale?: number\n\t/**\n\t * Line-space reduction as a percent (0-100), mapped to `<a:normAutofit lnSpcReduction=\"..\">`.\n\t * @example 20 // reduce line spacing by 20%\n\t * @default undefined // attribute omitted (PowerPoint defaults to 0%)\n\t */\n\tlnSpcReduction?: number\n}\n\nexport interface TextPropsOptions extends PositionProps, DataOrPathProps, TextBaseProps, ObjectNameProps {\n\t_bodyProp?: {\n\t\t// Note: Many of these duplicated as user options are transformed to _bodyProp options for XML processing\n\t\tautoFit?: boolean\n\t\talign?: TEXT_HALIGN\n\t\tanchor?: TEXT_VALIGN\n\t\tlIns?: number\n\t\trIns?: number\n\t\ttIns?: number\n\t\tbIns?: number\n\t\tnumCol?: number\n\t\tspcCol?: number\n\t\tvert?: TextVertType\n\t\twrap?: boolean\n\t}\n\t_lineIdx?: number\n\n\tbaseline?: number\n\t/**\n\t * Character spacing\n\t */\n\tcharSpacing?: number\n\t/**\n\t * Number of text columns in the text body\n\t * - PowerPoint: Format Shape > Shape Options > Size & Properties > Text Box > Columns > \"Number\"\n\t * - range: 1-16\n\t * @since v5.3.0\n\t * @default 1\n\t * @example 2 // flow text into two columns\n\t */\n\tcolumns?: number\n\t/**\n\t * Spacing between text columns (points)\n\t * - PowerPoint: Format Shape > Shape Options > Size & Properties > Text Box > Columns > \"Spacing\"\n\t * - only applies when `columns` > 1\n\t * @since v5.3.0\n\t * @default 0\n\t * @example 10 // 10pt gap between columns\n\t */\n\tcolumnSpacing?: number\n\t/**\n\t * Text fit options\n\t *\n\t * MS-PPT > Format Shape > Shape Options > Text Box > \"[unlabeled group]\": [3 options below]\n\t * - 'none' = Do not Autofit\n\t * - 'shrink' = Shrink text on overflow\n\t * - 'resize' = Resize shape to fit text\n\t *\n\t * **Note** 'shrink' and 'resize' only take effect after editing text/resize shape.\n\t * Both PowerPoint and Word dynamically calculate a scaling factor and apply it when edit/resize occurs.\n\t *\n\t * There is no way for this library to trigger that behavior, sorry. As a workaround,\n\t * pass an object form of 'shrink' to bake explicit `fontScale`/`lnSpcReduction` values\n\t * into the file so the text renders pre-shrunk without an edit/resize.\n\t * @since v3.3.0\n\t * @example 'shrink' // emit a bare <a:normAutofit/>\n\t * @example { type: 'shrink', fontScale: 85, lnSpcReduction: 20 } // pre-shrink text\n\t * @default \"none\"\n\t */\n\tfit?: 'none' | 'shrink' | 'resize' | TextFitShrinkProps\n\t/**\n\t * Shape fill\n\t * @example { color:'FF0000' } // hex color (red)\n\t * @example { color:'0088CC', transparency:50 } // hex color, 50% transparent\n\t * @example { color:pptx.SchemeColor.accent1 } // theme color Accent1\n\t */\n\tfill?: ShapeFillProps\n\t/**\n\t * Flip shape horizontally?\n\t * @default false\n\t */\n\tflipH?: boolean\n\t/**\n\t * Flip shape vertical?\n\t * @default false\n\t */\n\tflipV?: boolean\n\tglow?: TextGlowProps\n\thyperlink?: HyperlinkProps\n\tindentLevel?: number\n\tisTextBox?: boolean\n\tline?: ShapeLineProps\n\t/**\n\t * Line spacing (pt)\n\t * - PowerPoint: Paragraph > Indents and Spacing > Line Spacing: > \"Exactly\"\n\t * @example 28 // 28pt\n\t */\n\tlineSpacing?: number\n\t/**\n\t * line spacing multiple (percent)\n\t * - range: 0.0-9.99\n\t * - PowerPoint: Paragraph > Indents and Spacing > Line Spacing: > \"Multiple\"\n\t * @example 1.5 // 1.5X line spacing\n\t * @since v3.5.0\n\t */\n\tlineSpacingMultiple?: number\n\t// TODO: [20220219] powerpoint uses inches but library has always been pt... @future @deprecated - update in v4.0? [range: 0.0-22.0]\n\t/**\n\t * Margin (points)\n\t * - PowerPoint: Format Shape > Shape Options > Size & Properties > Text Box > Left/Right/Top/Bottom margin\n\t * @default \"Normal\" margin in PowerPoint [3.5, 7.0, 3.5, 7.0] // (this library sets no value, but PowerPoint defaults to \"Normal\" [0.05\", 0.1\", 0.05\", 0.1\"])\n\t * @example 0 // Top/Right/Bottom/Left margin 0 [0.0\" in powerpoint]\n\t * @example 10 // Top/Right/Bottom/Left margin 10 [0.14\" in powerpoint]\n\t * @example [10,5,10,5] // Top margin 10, Right margin 5, Bottom margin 10, Left margin 5\n\t */\n\tmargin?: Margin\n\toutline?: { color: Color, size: number }\n\tparaSpaceAfter?: number\n\tparaSpaceBefore?: number\n\tplaceholder?: string\n\t/**\n\t * Rounded rectangle radius (only for pptx.shapes.ROUNDED_RECTANGLE)\n\t * - values: 0.0 to 1.0\n\t * @default 0\n\t */\n\trectRadius?: number\n\t/**\n\t * Rotation (degrees)\n\t * - range: -360 to 360\n\t * @default 0\n\t * @example 180 // rotate 180 degrees\n\t */\n\trotate?: number\n\t/**\n\t * Whether to enable right-to-left mode\n\t * @default false\n\t */\n\trtlMode?: boolean\n\tshadow?: ShadowProps\n\tshape?: SHAPE_NAME\n\tstrike?: boolean | 'dblStrike' | 'sngStrike'\n\tsubscript?: boolean\n\tsuperscript?: boolean\n\t/**\n\t * Vertical alignment\n\t * @default middle\n\t */\n\tvalign?: VAlign\n\tvert?: TextVertType\n\t/**\n\t * Text wrap\n\t * @since v3.3.0\n\t * @default true\n\t */\n\twrap?: boolean\n\n\t/**\n\t * Whether \"Fit to Shape?\" is enabled\n\t * @deprecated v3.3.0 - use `fit`\n\t */\n\tautoFit?: boolean\n\t/**\n\t * Whather \"Shrink Text on Overflow?\" is enabled\n\t * @deprecated v3.3.0 - use `fit`\n\t */\n\tshrinkText?: boolean\n\t/**\n\t * Inset\n\t * @deprecated v3.10.0 - use `margin`\n\t */\n\tinset?: number\n\t/**\n\t * Dash type\n\t * @deprecated v3.3.0 - use `line.dashType`\n\t */\n\tlineDash?: 'solid' | 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'sysDash' | 'sysDot'\n\t/**\n\t * @deprecated v3.3.0 - use `line.beginArrowType`\n\t */\n\tlineHead?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle'\n\t/**\n\t * @deprecated v3.3.0 - use `line.width`\n\t */\n\tlineSize?: number\n\t/**\n\t * @deprecated v3.3.0 - use `line.endArrowType`\n\t */\n\tlineTail?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle'\n}\nexport interface TextProps {\n\ttext?: string | number\n\toptions?: TextPropsOptions\n}\n\n/** Factory for a single inline text run. Prevents `as never` casts when building mixed-style run arrays. */\nexport function textRun(text: string | number, options?: TextPropsOptions): TextProps {\n\treturn options !== undefined ? { text, options } : { text }\n}\n\n/** Wraps a run array so TypeScript accepts it as `TextProps[]` without a cast. */\nexport function textRuns(runs: TextProps[]): TextProps[] {\n\treturn runs\n}\n\n// charts =========================================================================================\n// FUTURE: BREAKING-CHANGE: (soln: use `OptsDataLabelPosition|string` until 3.5/4.0)\n/*\nexport interface OptsDataLabelPosition {\n\tpie: 'ctr' | 'inEnd' | 'outEnd' | 'bestFit'\n\tscatter: 'b' | 'ctr' | 'l' | 'r' | 't'\n\t// TODO: add all othere chart types\n}\n*/\n\nexport type ChartAxisTickMark = 'none' | 'inside' | 'outside' | 'cross'\n/**\n * Line end cap style. Maps to the OOXML `cap` attribute on `<a:ln>` (`flat`/`sq`/`rnd`).\n */\nexport type LineCap = 'flat' | 'round' | 'square'\n/** @deprecated use `LineCap` (the cap type is not chart-specific) */\nexport type ChartLineCap = LineCap\nexport type ChartLineDash = 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'solid' | 'sysDash' | 'sysDot'\n\nexport interface OptsChartData {\n\t_dataIndex?: number\n\n\t/**\n\t * category labels\n\t * @example ['Year 2000', 'Year 2010', 'Year 2020'] // single-level category axes labels\n\t * @example [['Year 2000', 'Year 2010', 'Year 2020'], ['Decades', '', '']] // multi-level category axes labels\n\t * @since `labels` string[][] type added v3.11.0\n\t */\n\tlabels?: string[] | string[][]\n\t/**\n\t * series name\n\t * @example 'Locations'\n\t */\n\tname?: string\n\t/**\n\t * bubble sizes\n\t * @example [5, 1, 5, 1]\n\t */\n\tsizes?: number[]\n\t/**\n\t * category values\n\t * @example [2000, 2010, 2020]\n\t */\n\tvalues?: number[]\n\t/**\n\t * Custom text label per data point, replacing the auto-generated value label.\n\t * Index aligns with `values[]`. Empty string or missing entries fall back to the chart-level label settings.\n\t * Supported for BAR, LINE, AREA, RADAR, PIE, and DOUGHNUT chart types.\n\t * @example ['Low', '', 'High'] // only points 0 and 2 get custom labels\n\t */\n\tcustomLabels?: string[]\n\t/**\n\t * Per-data-point visual overrides (border / fill), index-aligned with `values[]`.\n\t * Empty (`{}`) or missing entries fall back to series/chart styling.\n\t * Supported for BAR, LINE, AREA, SCATTER, PIE, and DOUGHNUT chart types.\n\t * @example\n\t * pointStyles: [\n\t * { border: { pt: 2, color: 'FF0000' } }, // point 0: red 2pt border\n\t * {}, // point 1: default\n\t * { fill: '00B050', border: { type: 'dash', color: '404040' } }, // point 2\n\t * ]\n\t * @since v5.3.0\n\t */\n\tpointStyles?: ChartDataPointStyle[]\n\t/**\n\t * Override `chartColors`\n\t */\n\t// color?: string // TODO: WIP: (Pull #727)\n}\n/**\n * Per-data-point style override for a chart series.\n * Each entry applies to the data point at the same index in `values[]`.\n * Unset fields fall back to the series/chart-level styling.\n */\nexport interface ChartDataPointStyle {\n\t/**\n\t * Data-point border (line). Reuses {@link BorderProps}.\n\t * - `type: 'none'` hides the border; `'dash'` draws a dashed border.\n\t * @example { pt: 2, color: 'FF0000' }\n\t */\n\tborder?: BorderProps\n\t/**\n\t * Data-point fill color (hex), overriding `chartColors[idx]`.\n\t * Most meaningful on fill-based charts (BAR, AREA, PIE, DOUGHNUT).\n\t * @example '00B050'\n\t */\n\tfill?: HexColor\n}\n// Used internally, probably shouldn't be used by end users\nexport interface IOptsChartData extends OptsChartData {\n\tlabels?: string[][]\n}\nexport interface OptsChartGridLine {\n\t/**\n\t * MS-PPT > Chart format > Format Major Gridlines > Line > Cap type\n\t * - line cap type\n\t * @default flat\n\t */\n\tcap?: ChartLineCap\n\t/**\n\t * Gridline color (hex)\n\t * @example 'FF3399'\n\t */\n\tcolor?: HexColor\n\t/**\n\t * Gridline size (points)\n\t */\n\tsize?: number\n\t/**\n\t * Gridline style\n\t */\n\tstyle?: 'solid' | 'dash' | 'dot' | 'none'\n}\n// TODO: 202008: chart types remain with predicated with \"I\" in v3.3.0 (ran out of time!)\nexport interface IChartMulti {\n\ttype: CHART_NAME\n\tdata: OptsChartData[]\n\toptions: IChartOptsLib\n}\nexport interface IChartPropsFillLine {\n\t/**\n\t * PowerPoint: Format Chart Area/Plot > Border [\"Line\"]\n\t * @example border: {color: 'FF0000', pt: 1} // hex RGB color, 1 pt line\n\t */\n\tborder?: BorderProps\n\t/**\n\t * PowerPoint: Format Chart Area/Plot Area > Fill\n\t * @example fill: {color: '696969'} // hex RGB color value\n\t * @example fill: {color: pptx.SchemeColor.background2} // Theme color value\n\t * @example fill: {transparency: 50} // 50% transparency\n\t */\n\tfill?: ShapeFillProps\n}\nexport interface IChartAreaProps extends IChartPropsFillLine {\n\t/**\n\t * Whether the chart area has rounded corners\n\t * - only applies when either `fill` or `border` is used\n\t * @default true\n\t * @since v3.11\n\t */\n\troundedCorners?: boolean\n}\nexport interface IChartPropsBase {\n\t/**\n\t * Axis position\n\t */\n\taxisPos?: 'b' | 'l' | 'r' | 't'\n\tchartColors?: HexColor[]\n\t/**\n\t * opacity (0 - 100)\n\t * @example 50 // 50% opaque\n\t */\n\tchartColorsOpacity?: number\n\tdataBorder?: BorderProps\n\tdisplayBlanksAs?: 'gap' | 'span' | 'zero'\n\tinvertedColors?: HexColor[]\n\tlang?: string\n\tlayout?: PositionProps\n\tshadow?: ShadowProps\n\t/**\n\t * Show each bubble's size value as a data label (bubble / bubble3D charts only).\n\t * Has no effect on other chart types.\n\t * @default false\n\t */\n\tshowBubbleSize?: boolean\n\t/**\n\t * @default false\n\t */\n\tshowLabel?: boolean\n\tshowLeaderLines?: boolean\n\t/**\n\t * Leader line color (pie/doughnut data labels). Requires `showLeaderLines: true`.\n\t * When omitted, PowerPoint applies its automatic leader-line color.\n\t * @example 'FF0000' // red leader lines\n\t */\n\tleaderLineColor?: HexColor\n\t/**\n\t * Leader line width, in points (pie/doughnut data labels). Requires `showLeaderLines: true`.\n\t * @default 0.75\n\t * @example 1.5\n\t */\n\tleaderLineSize?: number\n\t/**\n\t * @default false\n\t */\n\tshowLegend?: boolean\n\t/**\n\t * @default false\n\t */\n\tshowPercent?: boolean\n\t/**\n\t * @default false\n\t */\n\tshowSerName?: boolean\n\t/**\n\t * @default false\n\t */\n\tshowTitle?: boolean\n\t/**\n\t * @default false\n\t */\n\tshowValue?: boolean\n\t/**\n\t * 3D Perspecitve\n\t * - range: 0-120\n\t * @default 30\n\t */\n\tv3DPerspective?: number\n\t/**\n\t * Right Angle Axes\n\t * - Shows chart from first-person perspective\n\t * - Overrides `v3DPerspective` when true\n\t * - PowerPoint: Chart Options > 3-D Rotation\n\t * @default false\n\t */\n\tv3DRAngAx?: boolean\n\t/**\n\t * X Rotation\n\t * - PowerPoint: Chart Options > 3-D Rotation\n\t * - range: 0-359.9\n\t * @default 30\n\t */\n\tv3DRotX?: number\n\t/**\n\t * Y Rotation\n\t * - range: 0-359.9\n\t * @default 30\n\t */\n\tv3DRotY?: number\n\n\t/**\n\t * PowerPoint: Format Chart Area (Fill & Border/Line)\n\t * @since v3.11\n\t */\n\tchartArea?: IChartAreaProps\n\t/**\n\t * PowerPoint: Format Plot Area (Fill & Border/Line)\n\t * @since v3.11\n\t */\n\tplotArea?: IChartPropsFillLine\n\n\t/**\n\t * @deprecated v3.11.0 - use `plotArea.border`\n\t */\n\tborder?: BorderProps\n\t/**\n\t * @deprecated v3.11.0 - use `plotArea.fill`\n\t */\n\tfill?: HexColor\n\t/**\n\t * Per-series style overrides.\n\t * Element at index N applies to the series at data[N].\n\t * Missing indices or unset fields fall back to the chart-level option.\n\t * @since v4.0.0\n\t */\n\tseriesOptions?: IChartSeriesOpts[]\n}\nexport interface IChartPropsAxisCat {\n\t/**\n\t * Multi-Chart prop: array of cat axes\n\t */\n\tcatAxes?: IChartPropsAxisCat[]\n\tcatAxisBaseTimeUnit?: string\n\tcatAxisCrossesAt?: number | 'autoZero'\n\tcatAxisHidden?: boolean\n\tcatAxisLabelColor?: string\n\tcatAxisLabelFontBold?: boolean\n\tcatAxisLabelFontFace?: string\n\tcatAxisLabelFontItalic?: boolean\n\tcatAxisLabelFontSize?: number\n\t/**\n\t * Number format code for the category (X) axis labels on scatter and bubble charts.\n\t * Falls back to `valAxisLabelFormatCode` when not set.\n\t * - Example: `'0.00'`, `'#,##0'`, `'mmm yyyy'`\n\t * - PowerPoint: Format Axis > Number > Format Code\n\t */\n\tcatAxisLabelFormatCode?: string\n\tcatAxisLabelFrequency?: string\n\tcatAxisLabelPos?: 'none' | 'low' | 'high' | 'nextTo'\n\tcatAxisLabelRotate?: number\n\tcatAxisLineColor?: string\n\tcatAxisLineShow?: boolean\n\tcatAxisLineSize?: number\n\tcatAxisLineStyle?: 'solid' | 'dash' | 'dot'\n\tcatAxisMajorTickMark?: ChartAxisTickMark\n\tcatAxisMajorTimeUnit?: string\n\tcatAxisMajorUnit?: number\n\tcatAxisMaxVal?: number\n\tcatAxisMinorTickMark?: ChartAxisTickMark\n\tcatAxisMinorTimeUnit?: string\n\tcatAxisMinorUnit?: number\n\tcatAxisMinVal?: number\n\t/** @since v3.11.0 */\n\tcatAxisMultiLevelLabels?: boolean\n\tcatAxisOrientation?: 'minMax' | 'maxMin'\n\tcatAxisTitle?: string\n\tcatAxisTitleColor?: string\n\tcatAxisTitleFontFace?: string\n\tcatAxisTitleFontSize?: number\n\tcatAxisTitleRotate?: number\n\tcatGridLine?: OptsChartGridLine\n\tcatLabelFormatCode?: string\n\t/**\n\t * Whether data should use secondary category axis (instead of primary)\n\t * @default false\n\t */\n\tsecondaryCatAxis?: boolean\n\tshowCatAxisTitle?: boolean\n}\nexport interface IChartPropsAxisSer {\n\tserAxisBaseTimeUnit?: string\n\tserAxisHidden?: boolean\n\tserAxisLabelColor?: string\n\tserAxisLabelFontBold?: boolean\n\tserAxisLabelFontFace?: string\n\tserAxisLabelFontItalic?: boolean\n\tserAxisLabelFontSize?: number\n\tserAxisLabelFrequency?: string\n\tserAxisLabelPos?: 'none' | 'low' | 'high' | 'nextTo'\n\tserAxisLineColor?: string\n\tserAxisLineShow?: boolean\n\tserAxisMajorTimeUnit?: string\n\tserAxisMajorUnit?: number\n\tserAxisMinorTimeUnit?: string\n\tserAxisMinorUnit?: number\n\tserAxisOrientation?: string\n\tserAxisTitle?: string\n\tserAxisTitleColor?: string\n\tserAxisTitleFontFace?: string\n\tserAxisTitleFontSize?: number\n\tserAxisTitleRotate?: number\n\tserGridLine?: OptsChartGridLine\n\tserLabelFormatCode?: string\n\tshowSerAxisTitle?: boolean\n}\nexport interface IChartPropsAxisVal {\n\t/**\n\t * Whether data should use secondary value axis (instead of primary)\n\t * @default false\n\t */\n\tsecondaryValAxis?: boolean\n\tshowValAxisTitle?: boolean\n\t/**\n\t * Multi-Chart prop: array of val axes\n\t */\n\tvalAxes?: IChartPropsAxisVal[]\n\tvalAxisCrossesAt?: number | 'autoZero'\n\t/**\n\t * Controls where axis values are plotted relative to tick marks\n\t * - `'between'` = values plotted between tick marks (default for bar/column/line)\n\t * - `'midCat'` = values plotted on tick marks (default for scatter/area)\n\t * - PowerPoint: Format Axis > Axis Options > Axis crosses > On tick marks / Between tick marks\n\t */\n\tvalAxisCrossBetween?: 'between' | 'midCat'\n\tvalAxisDisplayUnit?: 'billions' | 'hundredMillions' | 'hundreds' | 'hundredThousands' | 'millions' | 'tenMillions' | 'tenThousands' | 'thousands' | 'trillions'\n\tvalAxisDisplayUnitLabel?: boolean\n\tvalAxisHidden?: boolean\n\tvalAxisLabelColor?: string\n\tvalAxisLabelFontBold?: boolean\n\tvalAxisLabelFontFace?: string\n\tvalAxisLabelFontItalic?: boolean\n\tvalAxisLabelFontSize?: number\n\tvalAxisLabelFormatCode?: string\n\tvalAxisLabelPos?: 'none' | 'low' | 'high' | 'nextTo'\n\tvalAxisLabelRotate?: number\n\tvalAxisLineColor?: string\n\tvalAxisLineShow?: boolean\n\tvalAxisLineSize?: number\n\tvalAxisLineStyle?: 'solid' | 'dash' | 'dot'\n\t/**\n\t * PowerPoint: Format Axis > Axis Options > Logarithmic scale - Base\n\t * - range: 2-99\n\t * @since v3.5.0\n\t */\n\tvalAxisLogScaleBase?: number\n\tvalAxisMajorTickMark?: ChartAxisTickMark\n\tvalAxisMajorUnit?: number\n\tvalAxisMaxVal?: number\n\tvalAxisMinorTickMark?: ChartAxisTickMark\n\tvalAxisMinVal?: number\n\tvalAxisOrientation?: 'minMax' | 'maxMin'\n\tvalAxisTitle?: string\n\tvalAxisTitleColor?: string\n\tvalAxisTitleFontFace?: string\n\tvalAxisTitleFontSize?: number\n\tvalAxisTitleRotate?: number\n\tvalGridLine?: OptsChartGridLine\n\t/**\n\t * Value label format code\n\t * - this also directs Data Table formatting\n\t * @since v3.3.0\n\t * @example '#%' // round percent\n\t * @example '0.00%' // shows values as '0.00%'\n\t * @example '$0.00' // shows values as '$0.00'\n\t */\n\tvalLabelFormatCode?: string\n}\nexport interface IChartPropsChartBar {\n\tbar3DShape?: string\n\tbarDir?: string\n\tbarGapDepthPct?: number\n\t/**\n\t * MS-PPT > Format chart > Format Data Point > Series Options > \"Gap Width\"\n\t * - width (percent)\n\t * - range: `0`-`500`\n\t * @default 150\n\t */\n\tbarGapWidthPct?: number\n\tbarGrouping?: string\n\t/**\n\t * MS-PPT > Format chart > Format Data Point > Series Options > \"Series Overlap\"\n\t * - overlap (percent)\n\t * - range: `-100`-`100`\n\t * @since v3.9.0\n\t * @default 0\n\t */\n\tbarOverlapPct?: number\n\t/**\n\t * Draw connector lines between data points across stacked bar/column series\n\t * (\"Series Lines\" in PowerPoint). Emits `<c:serLines>` in the bar chart.\n\t *\n\t * - `true` uses PowerPoint's automatic line styling.\n\t * - An {@link OptsChartGridLine} object customizes color/size/style/cap.\n\t * - Omit (or pass an object with `style: 'none'`) to disable.\n\t *\n\t * Bar (`bar`) charts only; ignored for 3D bar charts.\n\t * @default undefined\n\t * @example true\n\t * @example { color: '777777', size: 1, style: 'dash' }\n\t */\n\tbarSeriesLine?: boolean | OptsChartGridLine\n}\nexport interface IChartPropsChartDoughnut {\n\tdataNoEffects?: boolean\n\tholeSize?: number\n}\nexport interface IChartPropsChartLine {\n\t/**\n\t * MS-PPT > Chart format > Format Data Series > Line > Cap type\n\t * - line cap type\n\t * @default flat\n\t */\n\tlineCap?: ChartLineCap\n\t/**\n\t * MS-PPT > Chart format > Format Data Series > Line > Dash type (chart-level default)\n\t * - applies to every series that has no entry in `lineDashValues`\n\t * @default solid\n\t */\n\tlineDash?: ChartLineDash\n\t/**\n\t * Per-series dash type overrides; index matches the series order in the `data` array.\n\t * - entries shorter than the series count fall back to `lineDash`\n\t * - example: `['solid', 'dash', 'lgDash']` gives each series its own dash pattern\n\t */\n\tlineDashValues?: ChartLineDash[]\n\t/**\n\t * MS-PPT > Chart format > Format Data Series > Marker Options > Built-in > Type\n\t * - marker type\n\t * @default circle\n\t */\n\tlineDataSymbol?: 'circle' | 'dash' | 'diamond' | 'dot' | 'none' | 'square' | 'triangle'\n\t/**\n\t * MS-PPT > Chart format > Format Data Series > [Marker Options] > Border > Color\n\t * - border color\n\t * @default circle\n\t */\n\tlineDataSymbolLineColor?: string\n\t/**\n\t * MS-PPT > Chart format > Format Data Series > [Marker Options] > Border > Width\n\t * - border width (points)\n\t * @default 0.75\n\t */\n\tlineDataSymbolLineSize?: number\n\t/**\n\t * MS-PPT > Chart format > Format Data Series > Marker Options > Built-in > Size\n\t * - marker size\n\t * - range: 2-72\n\t * @default 6\n\t */\n\tlineDataSymbolSize?: number\n\t/**\n\t * MS-PPT > Chart format > Format Data Series > Line > Width\n\t * - line width (points)\n\t * - range: 0-1584\n\t * @default 2\n\t */\n\tlineSize?: number\n\t/**\n\t * MS-PPT > Chart format > Format Data Series > Line > Smoothed line\n\t * - \"Smoothed line\"\n\t * @default false\n\t */\n\tlineSmooth?: boolean\n}\nexport interface IChartPropsChartPie {\n\tdataNoEffects?: boolean\n\t/**\n\t * MS-PPT > Format chart > Format Data Series > Series Options > \"Angle of first slice\"\n\t * - angle (degrees)\n\t * - range: 0-359\n\t * @since v3.4.0\n\t * @default 0\n\t */\n\tfirstSliceAng?: number\n}\nexport interface IChartPropsChartRadar {\n\t/**\n\t * MS-PPT > Chart Type > Waterfall\n\t * - radar chart type\n\t * @default standard\n\t */\n\tradarStyle?: 'standard' | 'marker' | 'filled' // TODO: convert to 'radar'|'markers'|'filled' in 4.0 (verbatim with PPT app UI)\n}\n/**\n * Per-series style overrides for a chart.\n * Each entry applies to the series at the same index in the data array.\n * Unset fields fall back to the chart-level option.\n */\nexport interface IChartSeriesOpts {\n\t/** Series fill / line color (hex, e.g. `'FF0000'`) */\n\tcolor?: HexColor\n\t/** Data-label font color */\n\tdataLabelColor?: string\n\t/** Data-label font bold */\n\tdataLabelFontBold?: boolean\n\t/** Data-label typeface */\n\tdataLabelFontFace?: string\n\t/** Data-label font italic */\n\tdataLabelFontItalic?: boolean\n\t/** Data-label font size (points) */\n\tdataLabelFontSize?: number\n\t/**\n\t * Line/radar series line width (points).\n\t * Pass `0` to hide the line.\n\t */\n\tlineSize?: number\n}\n\nexport interface IChartPropsDataLabel {\n\tdataLabelBkgrdColors?: boolean\n\tdataLabelColor?: string\n\tdataLabelFontBold?: boolean\n\tdataLabelFontFace?: string\n\tdataLabelFontItalic?: boolean\n\tdataLabelFontSize?: number\n\t/**\n\t * Data label format code\n\t * @example '#%' // round percent\n\t * @example '0.00%' // shows values as '0.00%'\n\t * @example '$0.00' // shows values as '$0.00'\n\t */\n\tdataLabelFormatCode?: string\n\tdataLabelFormatScatter?: 'custom' | 'customXY' | 'XY'\n\tdataLabelPosition?: 'b' | 'bestFit' | 'ctr' | 'l' | 'r' | 't' | 'inEnd' | 'outEnd'\n}\nexport interface IChartPropsDataTable {\n\tdataTableFontSize?: number\n\t/**\n\t * Data table format code\n\t * @since v3.3.0\n\t * @example '#%' // round percent\n\t * @example '0.00%' // shows values as '0.00%'\n\t * @example '$0.00' // shows values as '$0.00'\n\t */\n\tdataTableFormatCode?: string\n\t/**\n\t * Whether to show a data table adjacent to the chart\n\t * @default false\n\t */\n\tshowDataTable?: boolean\n\tshowDataTableHorzBorder?: boolean\n\tshowDataTableKeys?: boolean\n\tshowDataTableOutline?: boolean\n\tshowDataTableVertBorder?: boolean\n}\nexport interface IChartPropsLegend {\n\tlegendColor?: string\n\tlegendFontFace?: string\n\tlegendFontSize?: number\n\tlegendPos?: 'b' | 'l' | 'r' | 't' | 'tr'\n}\nexport interface IChartPropsTitle extends TextBaseProps {\n\ttitle?: string\n\ttitleAlign?: string\n\ttitleBold?: boolean\n\ttitleColor?: string\n\ttitleFontFace?: string\n\ttitleFontSize?: number\n\ttitleItalic?: boolean\n\ttitleUnderline?: boolean\n\t/**\n\t * Manual title position (inches), relative to the chart.\n\t * Each axis is independent: omit `x` to keep automatic horizontal centering,\n\t * or omit `y` to keep automatic vertical placement. Provide at least one.\n\t */\n\ttitlePos?: { x?: number, y?: number }\n\ttitleRotate?: number\n}\nexport interface IChartOpts\n\textends IChartPropsAxisCat,\n\tIChartPropsAxisSer,\n\tIChartPropsAxisVal,\n\tIChartPropsBase,\n\tIChartPropsChartBar,\n\tIChartPropsChartDoughnut,\n\tIChartPropsChartLine,\n\tIChartPropsChartPie,\n\tIChartPropsChartRadar,\n\tIChartPropsDataLabel,\n\tIChartPropsDataTable,\n\tIChartPropsLegend,\n\tIChartPropsTitle,\n\tObjectNameProps,\n\tOptsChartGridLine,\n\tPositionProps {\n\t/**\n\t * Alt Text value (\"How would you describe this object and its contents to someone who is blind?\")\n\t * - PowerPoint: [right-click on a chart] > \"Edit Alt Text...\"\n\t */\n\taltText?: string\n}\nexport interface IChartOptsLib extends IChartOpts {\n\t_type?: CHART_NAME | IChartMulti[] // TODO: v3.4.0 - move to `IChartOpts`, remove `IChartOptsLib`\n}\nexport interface ISlideRelChart extends OptsChartData {\n\ttype: CHART_NAME | IChartMulti[]\n\topts: IChartOptsLib\n\tdata: IOptsChartData[]\n\t// internal below\n\trId: number\n\tTarget: string\n\tglobalId: number\n\tfileName: string\n}\n\n// Core\n// ====\n// PRIVATE vvv\nexport interface ISlideRel {\n\ttype: SLIDE_OBJECT_TYPES\n\tTarget: string\n\tfileName?: string\n\tdata: any[] | string\n\topts?: IChartOpts\n\tpath?: string\n\textn?: string\n\tglobalId?: number\n\trId: number\n}\nexport interface ISlideRelMedia {\n\ttype: string\n\topts?: MediaProps\n\tpath?: string\n\textn?: string\n\tdata?: string | ArrayBuffer\n\t/** used to indicate that a media file has already been read/enocded (PERF) */\n\tisDuplicate?: boolean\n\tisSvgPng?: boolean\n\tsvgSize?: { w: number, h: number }\n\trId: number\n\tTarget: string\n}\nexport interface ISlideObject {\n\t_type: SLIDE_OBJECT_TYPES\n\toptions?: ObjectOptions\n\t// text\n\ttext?: TextProps[]\n\t// table\n\tarrTabRows?: TableCell[][]\n\t// chart\n\tchartRid?: number\n\t// image:\n\timage?: string\n\timageRid?: number\n\thyperlink?: HyperlinkProps\n\t// media\n\tmedia?: string\n\tmtype?: MediaType\n\tmediaRid?: number\n\tshape?: SHAPE_NAME\n}\n// PRIVATE ^^^\n\nexport interface WriteBaseProps {\n\t/**\n\t * Whether to DEFLATE-compress the package (PowerPoint itself always compresses;\n\t * set `false` only if export time matters more than file size)\n\t * @default true\n\t * @since v3.5.0 (default changed false→true in v4.0.0)\n\t */\n\tcompression?: boolean\n\t/**\n\t * How to handle a media asset (image/audio/video) that fails to load during export.\n\t * - `'throw'` (default): reject the export with an error naming the failing asset. A deck\n\t * that silently embeds a broken-image placeholder is a degenerate result, so failing\n\t * loudly is the safe default.\n\t * - `'placeholder'`: substitute a broken-image placeholder, emit a `console.warn`, and\n\t * continue. Useful for best-effort/batch jobs where one missing asset should not abort\n\t * the whole deck.\n\t * @default 'throw'\n\t */\n\tonMediaError?: 'throw' | 'placeholder'\n}\nexport interface WriteProps extends WriteBaseProps {\n\t/**\n\t * Output type\n\t * - values: 'arraybuffer' | 'base64' | 'binarystring' | 'blob' | 'nodebuffer' | 'uint8array' | 'STREAM'\n\t * @default 'blob'\n\t */\n\toutputType?: WRITE_OUTPUT_TYPE\n}\nexport interface WriteFileProps extends WriteBaseProps {\n\t/**\n\t * Export file name\n\t * @default 'Presentation.pptx'\n\t */\n\tfileName?: string\n}\nexport interface SectionProps {\n\t/**\n\t * Section title\n\t */\n\ttitle: string\n\t/**\n\t * Section order - uses to add section at any index\n\t * - values: 1-n\n\t */\n\torder?: number\n}\nexport interface SectionInternalProps extends SectionProps {\n\t_type?: 'user' | 'default'\n\t_slides: PresSlideInternal[]\n}\nexport interface PresLayout {\n\t_sizeW?: number\n\t_sizeH?: number\n\n\t/**\n\t * Layout Name\n\t * @example 'LAYOUT_WIDE'\n\t */\n\tname: string\n\twidth: number\n\theight: number\n}\nexport interface SlideNumberProps extends PositionProps, TextBaseProps {\n\t/**\n\t * margin (points)\n\t */\n\tmargin?: Margin // TODO: convert to inches in 4.0 (valid values are 0-22)\n}\nexport interface SlideMasterChartProps {\n\ttype: CHART_NAME | IChartMulti[]\n\tdata: OptsChartData[]\n\toptions?: IChartOptsLib\n\topts?: IChartOptsLib\n}\nexport type SlideMasterObject =\n\t| { chart: SlideMasterChartProps }\n\t| { image: ImageProps }\n\t| { line: ShapeProps }\n\t| { rect: ShapeProps }\n\t| { roundRect: ShapeProps }\n\t| { text: { text: string | number | TextProps[], options?: TextPropsOptions } }\n\t| {\n\t\tplaceholder: {\n\t\t\toptions: PlaceholderProps\n\t\t\t/**\n\t\t\t * Text to be shown in placeholder (shown until user focuses textbox or adds text)\n\t\t\t * - Leave blank to have powerpoint show default phrase (ex: \"Click to add title\")\n\t\t\t */\n\t\t\ttext?: string\n\t\t}\n\t}\nexport interface SlideMasterProps {\n\t/**\n\t * Unique name for this master\n\t */\n\ttitle: string\n\tbackground?: BackgroundProps\n\tmargin?: Margin\n\tslideNumber?: SlideNumberProps\n\tobjects?: SlideMasterObject[]\n\n\t/**\n\t * @deprecated v3.3.0 - use `background`\n\t */\n\tbkgd?: string | BackgroundProps\n}\nexport interface ObjectOptions extends ImageBaseProps, PositionProps, ShapeProps, TableCellProps, TextPropsOptions {\n\t_placeholderIdx?: number\n\t_placeholderType?: PLACEHOLDER_TYPE\n\n\tcx?: Coord\n\tcy?: Coord\n\tmargin?: Margin\n\tcolW?: number | number[] // table\n\trowH?: number | number[] // table\n\thasHeader?: boolean // table\n\thasFooter?: boolean // table\n\thasBandedRows?: boolean // table\n\thasBandedColumns?: boolean // table\n\thasFirstColumn?: boolean // table\n\thasLastColumn?: boolean // table\n\ttableStyle?: TABLE_STYLE | string // table\n}\nexport interface SlideBaseProps {\n\t_bkgdImgRid?: number\n\t_margin?: Margin\n\t_name?: string\n\t_presLayout: PresLayout\n\t_rels: ISlideRel[]\n\t_relsChart: ISlideRelChart[] // needed as we use args:\"PresSlide|SlideLayout\" often\n\t_relsMedia: ISlideRelMedia[] // needed as we use args:\"PresSlide|SlideLayout\" often\n\t_slideNum: number\n\t_slideNumberProps?: SlideNumberProps | null\n\t_slideObjects: ISlideObject[]\n\n\tbackground?: BackgroundProps\n\t/**\n\t * @deprecated v3.3.0 - use `background`\n\t */\n\tbkgd?: string | BackgroundProps\n}\nexport interface SlideLayout {\n\tbackground?: BackgroundProps\n\t/**\n\t * @deprecated v3.3.0 - use `background`\n\t */\n\tbkgd?: string | BackgroundProps\n}\nexport interface SlideLayoutInternal extends SlideBaseProps, SlideLayout {\n\t_slide?: {\n\t\t_bkgdImgRid?: number\n\t\tback: string\n\t\tcolor: string\n\t\thidden?: boolean\n\t} | null\n}\nexport interface PresSlide {\n\taddChart(type: CHART_NAME, data: OptsChartData[], options?: IChartOpts): PresSlide\n\taddChart(type: IChartMulti[], options?: IChartOpts): PresSlide\n\taddConnector: (options: ConnectorProps) => PresSlide\n\taddImage: (options: ImageProps) => PresSlide\n\taddMedia: (options: MediaProps) => PresSlide\n\taddNotes: (notes: string) => PresSlide\n\taddShape: (shapeName: SHAPE_NAME, options?: ShapeProps) => PresSlide\n\taddTable: (tableRows: TableRow[], options?: TableProps) => PresSlide\n\taddText: (text: string | number | TextProps[], options?: TextPropsOptions) => PresSlide\n\n\treadonly newAutoPagedSlides?: PresSlide[]\n\n\t/**\n\t * Slide width in inches, resolved from the active presentation layout.\n\t * Use for coordinate math instead of hard-coding layout dimensions.\n\t * @example slide.addText('Centered', { x: 0, w: slide.width, align: 'center' })\n\t */\n\treadonly width?: number\n\t/**\n\t * Slide height in inches, resolved from the active presentation layout.\n\t */\n\treadonly height?: number\n\n\t/**\n\t * Background color or image (`color` | `path` | `data`)\n\t * @example { color: 'FF3399' } - hex color\n\t * @example { color: 'FF3399', transparency:50 } - hex color with 50% transparency\n\t * @example { path: 'https://onedrives.com/myimg.png` } - retrieve image via URL\n\t * @example { path: '/home/gitbrent/images/myimg.png` } - retrieve image via local path\n\t * @example { data: 'image/png;base64,iVtDaDrF[...]=' } - base64 string\n\t * @since v3.3.0\n\t */\n\tbackground?: BackgroundProps\n\t/**\n\t * @deprecated v3.3.0 - use `background`\n\t */\n\tbkgd?: string | BackgroundProps\n\t/**\n\t * Default text color (hex format)\n\t * @example 'FF3399'\n\t * @default '000000' (DEF_FONT_COLOR)\n\t */\n\tcolor?: HexColor\n\t/**\n\t * Whether slide is hidden\n\t * @default false\n\t */\n\thidden?: boolean\n\t/**\n\t * Slide number options\n\t */\n\tslideNumber?: SlideNumberProps\n}\nexport interface PresSlideInternal extends SlideBaseProps, PresSlide {\n\t_rId: number\n\t_slideLayout: SlideLayoutInternal | null\n\t_slideId: number\n}\nexport interface AddSlideProps {\n\tmasterName?: string // TODO: 20200528: rename to \"masterTitle\" (createMaster uses `title` so lets be consistent)\n\tsectionTitle?: string\n}\nexport type CustomPropertyValue = string | number | boolean | Date\n\nexport interface PresentationProps {\n\tauthor: string\n\tcompany: string\n\tlayout: string\n\tmasterSlide: PresSlide\n\t/**\n\t * Presentation's layout\n\t * read-only\n\t */\n\tpresLayout: PresLayout\n\trevision: string\n\t/**\n\t * Slide number to assign to the first slide (affects the slide-number field displayed in placeholders).\n\t * @default 1\n\t */\n\tfirstSlideNum: number\n\t/**\n\t * Whether to enable right-to-left mode\n\t * @default false\n\t */\n\trtlMode: boolean\n\tsubject: string\n\ttheme: ThemeProps\n\ttitle: string\n}\n// PRIVATE interface\nexport interface IPresentationProps extends PresentationProps {\n\tmasterSlide: PresSlideInternal\n\tsections: SectionInternalProps[]\n\tslideLayouts: SlideLayoutInternal[]\n\tslides: PresSlideInternal[]\n}\n"],"mappings":"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"}
|
package/dist/core.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { AXIS_ID_CATEGORY_PRIMARY, AXIS_ID_CATEGORY_SECONDARY, AXIS_ID_SERIES_PRIMARY, AXIS_ID_VALUE_PRIMARY, AXIS_ID_VALUE_SECONDARY, AddSlideProps, AlignH, AlignV, BARCHART_COLORS, BULLET_TYPES, BackgroundProps, BorderProps, CHART_NAME, CHART_TYPE, CRLF, ChartAxisTickMark, ChartDataPointStyle, ChartLineCap, ChartLineDash, ChartType, Color, Coord, CustomPropertyValue, DEF_BULLET_MARGIN, DEF_CELL_BORDER, DEF_CELL_MARGIN_IN, DEF_CELL_MARGIN_PT, DEF_CHART_BORDER, DEF_CHART_GRIDLINE, DEF_FONT_COLOR, DEF_FONT_SIZE, DEF_FONT_TITLE_SIZE, DEF_PRES_LAYOUT, DEF_PRES_LAYOUT_NAME, DEF_SHAPE_LINE_COLOR, DEF_SHAPE_SHADOW, DEF_SLIDE_BKGD, DEF_SLIDE_MARGIN_IN, DEF_TEXT_GLOW, DEF_TEXT_SHADOW, DataOrPathProps, DataOrPathRequiredProps, EMU, EMU_PER_INCH, EMU_PER_POINT, Emu, GeometryPoint, GradientFillProps, GradientStopProps, HAlign, HexColor, HyperlinkProps, IChartAreaProps, IChartMulti, IChartOpts, IChartOptsLib, IChartPropsAxisCat, IChartPropsAxisSer, IChartPropsAxisVal, IChartPropsBase, IChartPropsChartBar, IChartPropsChartDoughnut, IChartPropsChartLine, IChartPropsChartPie, IChartPropsChartRadar, IChartPropsDataLabel, IChartPropsDataTable, IChartPropsFillLine, IChartPropsLegend, IChartPropsTitle, IChartSeriesOpts, IMG_BROKEN, IMG_PLAYBTN, IMG_SVG_PLACEHOLDER, IOptsChartData, IPresentationProps, ISlideObject, ISlideRel, ISlideRelChart, ISlideRelMedia, ImageProps, JSZIP_OUTPUT_TYPE, LAYOUT_IDX_SERIES_BASE, LETTERS, LINEH_MODIFIER, LineCap, LinearGradientFillProps, MASTER_OBJECTS, Margin, MediaProps, MediaType, ONEPT, ObjectLockProps, ObjectNameProps, ObjectOptions, OptsChartData, OptsChartGridLine, OutputType, PIECHART_COLORS, PLACEHOLDER_TYPE, PLACEHOLDER_TYPES, POINTS_PER_INCH, PatternFillProps, PatternPreset, PlaceholderProps, PositionProps, PresLayout, PresSlide, type PresSlide as Slide, PresSlideInternal, PresentationProps, REGEX_HEX_COLOR, SCHEME_COLORS, SCHEME_COLOR_NAMES, SHAPE_NAME, SHAPE_TYPE, SLDNUMFLDID, SLIDE_OBJECT_TYPES, STANDARD_LAYOUTS, SchemeColor, SectionInternalProps, SectionProps, ShadowProps, ShapeAdjustValue, ShapeFillProps, ShapeLineProps, ShapeProps, ShapeType, SlideBaseProps, SlideLayout, SlideLayoutInternal, SlideMasterChartProps, SlideMasterObject, SlideMasterProps, SlideNumberProps, StandardLayout, StandardLayoutName, TABLE_STYLE, TEXT_HALIGN, TEXT_VALIGN, TableCell, TableCellProps, TableProps, TableRow, TableRowSlide, TableStyleInternal, TableStyleProps, TableStyleRegionProps, TableToSlidesProps, TextBaseProps, TextFitShrinkProps, TextGlowProps, TextProps, TextPropsOptions, TextVertType, ThemeColor, ThemeProps, VALID_SHAPE_PRESETS, VAlign, WRITE_OUTPUT_TYPE, WriteBaseProps, WriteFileProps, WriteProps, coordToEmu, emuToInches, emuToPixels, emuToPoints, inchesToEmu, percentToEmu, pixelsToEmu, pointsToEmu, textRun, textRuns };
|
|
1
|
+
import { $ as LETTERS, $n as TableToSlidesProps, $t as IChartPropsChartRadar, A as DEF_BULLET_MARGIN, An as PresentationProps, At as ConnectorType, B as DEF_PRES_LAYOUT_NAME, Bn as SlideLayoutInternal, Bt as HyperlinkProps, C as BARCHART_COLORS, Cn as PatternFillProps, Ct as BorderProps, D as CONNECTOR_PRESETS, Dn as PresLayout, Dt as ChartLineDash, E as CHART_TYPE, En as PositionProps, Et as ChartLineCap, F as DEF_CHART_GRIDLINE, Fn as ShapeFillProps, Ft as GeometryPoint, G as DEF_TEXT_GLOW, Gn as TableCell, Gt as IChartPropsAxisCat, H as DEF_SHAPE_SHADOW, Hn as SlideMasterObject, Ht as IChartMulti, I as DEF_FONT_COLOR, In as ShapeLineProps, It as GradientFillProps, J as IMG_BROKEN, Jn as TableRow, Jt as IChartPropsBase, K as DEF_TEXT_SHADOW, Kn as TableCellProps, Kt as IChartPropsAxisSer, L as DEF_FONT_SIZE, Ln as ShapeProps, Lt as GradientStopProps, M as DEF_CELL_MARGIN_IN, Mn as SectionProps, Mt as CustomPropertyValue, N as DEF_CELL_MARGIN_PT, Nn as ShadowProps, Nt as DataOrPathProps, O as CRLF, On as PresSlide, Ot as Color, P as DEF_CHART_BORDER, Pn as ShapeAdjustValue, Pt as DataOrPathRequiredProps, Q as LAYOUT_IDX_SERIES_BASE, Qn as TableStyleRegionProps, Qt as IChartPropsChartPie, R as DEF_FONT_TITLE_SIZE, Rn as SlideBaseProps, Rt as HAlign, S as AlignV, Sn as OptsChartGridLine, St as BackgroundProps, T as CHART_NAME, Tn as PlaceholderProps, Tt as ChartDataPointStyle, U as DEF_SLIDE_BKGD, Un as SlideMasterProps, Ut as IChartOpts, V as DEF_SHAPE_LINE_COLOR, Vn as SlideMasterChartProps, Vt as IChartAreaProps, W as DEF_SLIDE_MARGIN_IN, Wn as SlideNumberProps, Wt as IChartOptsLib, X as IMG_SVG_PLACEHOLDER, Xn as TableStyleInternal, Xt as IChartPropsChartDoughnut, Y as IMG_PLAYBTN, Yn as TableRowSlide, Yt as IChartPropsChartBar, Z as JSZIP_OUTPUT_TYPE, Zn as TableStyleProps, Zt as IChartPropsChartLine, _ as AXIS_ID_CATEGORY_SECONDARY, _n as MediaType, _t as TEXT_HALIGN, a as STANDARD_LAYOUTS, an as IChartSeriesOpts, ar as TextVertType, at as PLACEHOLDER_TYPE, b as AXIS_ID_VALUE_SECONDARY, bn as ObjectOptions, bt as WRITE_OUTPUT_TYPE, c as coordToEmu, cn as ISlideObject, cr as ThemeProps, ct as SCHEME_COLORS, d as emuToPoints, dn as ISlideRelMedia, dr as WriteFileProps, dt as SHAPE_TYPE, en as IChartPropsDataLabel, er as TextBaseProps, et as LINEH_MODIFIER, f as inchesToEmu, fn as ImageProps, fr as WriteProps, ft as SLDNUMFLDID, g as AXIS_ID_CATEGORY_PRIMARY, gn as MediaProps, gt as TABLE_STYLE, h as pointsToEmu, hn as Margin, ht as ShapeType, i as POINTS_PER_INCH, in as IChartPropsTitle, ir as TextPropsOptions, it as PIECHART_COLORS, j as DEF_CELL_BORDER, jn as SectionInternalProps, jt as Coord, k as ChartType, kn as PresSlideInternal, kt as ConnectorProps, l as emuToInches, ln as ISlideRel, lr as VAlign, lt as SCHEME_COLOR_NAMES, m as pixelsToEmu, mn as LinearGradientFillProps, mr as textRuns, mt as SchemeColor, n as EMU_PER_POINT, nn as IChartPropsFillLine, nr as TextGlowProps, nt as ONEPT, o as StandardLayout, on as IOptsChartData, or as ThemeColor, ot as PLACEHOLDER_TYPES, p as percentToEmu, pn as LineCap, pr as textRun, pt as SLIDE_OBJECT_TYPES, q as EMU, qn as TableProps, qt as IChartPropsAxisVal, r as Emu, rn as IChartPropsLegend, rr as TextProps, rt as OutputType, s as StandardLayoutName, sn as IPresentationProps, sr as ThemeColorScheme, st as REGEX_HEX_COLOR, t as EMU_PER_INCH, tn as IChartPropsDataTable, tr as TextFitShrinkProps, tt as MASTER_OBJECTS, u as emuToPixels, un as ISlideRelChart, ur as WriteBaseProps, ut as SHAPE_NAME, v as AXIS_ID_SERIES_PRIMARY, vn as ObjectLockProps, vt as TEXT_VALIGN, w as BULLET_TYPES, wn as PatternPreset, wt as ChartAxisTickMark, x as AlignH, xn as OptsChartData, xt as AddSlideProps, y as AXIS_ID_VALUE_PRIMARY, yn as ObjectNameProps, yt as VALID_SHAPE_PRESETS, z as DEF_PRES_LAYOUT, zn as SlideLayout, zt as HexColor } from "./units-DlsWUw1U.js";
|
|
2
|
+
export { AXIS_ID_CATEGORY_PRIMARY, AXIS_ID_CATEGORY_SECONDARY, AXIS_ID_SERIES_PRIMARY, AXIS_ID_VALUE_PRIMARY, AXIS_ID_VALUE_SECONDARY, AddSlideProps, AlignH, AlignV, BARCHART_COLORS, BULLET_TYPES, BackgroundProps, BorderProps, CHART_NAME, CHART_TYPE, CONNECTOR_PRESETS, CRLF, ChartAxisTickMark, ChartDataPointStyle, ChartLineCap, ChartLineDash, ChartType, Color, ConnectorProps, ConnectorType, Coord, CustomPropertyValue, DEF_BULLET_MARGIN, DEF_CELL_BORDER, DEF_CELL_MARGIN_IN, DEF_CELL_MARGIN_PT, DEF_CHART_BORDER, DEF_CHART_GRIDLINE, DEF_FONT_COLOR, DEF_FONT_SIZE, DEF_FONT_TITLE_SIZE, DEF_PRES_LAYOUT, DEF_PRES_LAYOUT_NAME, DEF_SHAPE_LINE_COLOR, DEF_SHAPE_SHADOW, DEF_SLIDE_BKGD, DEF_SLIDE_MARGIN_IN, DEF_TEXT_GLOW, DEF_TEXT_SHADOW, DataOrPathProps, DataOrPathRequiredProps, EMU, EMU_PER_INCH, EMU_PER_POINT, Emu, GeometryPoint, GradientFillProps, GradientStopProps, HAlign, HexColor, HyperlinkProps, IChartAreaProps, IChartMulti, IChartOpts, IChartOptsLib, IChartPropsAxisCat, IChartPropsAxisSer, IChartPropsAxisVal, IChartPropsBase, IChartPropsChartBar, IChartPropsChartDoughnut, IChartPropsChartLine, IChartPropsChartPie, IChartPropsChartRadar, IChartPropsDataLabel, IChartPropsDataTable, IChartPropsFillLine, IChartPropsLegend, IChartPropsTitle, IChartSeriesOpts, IMG_BROKEN, IMG_PLAYBTN, IMG_SVG_PLACEHOLDER, IOptsChartData, IPresentationProps, ISlideObject, ISlideRel, ISlideRelChart, ISlideRelMedia, ImageProps, JSZIP_OUTPUT_TYPE, LAYOUT_IDX_SERIES_BASE, LETTERS, LINEH_MODIFIER, LineCap, LinearGradientFillProps, MASTER_OBJECTS, Margin, MediaProps, MediaType, ONEPT, ObjectLockProps, ObjectNameProps, ObjectOptions, OptsChartData, OptsChartGridLine, OutputType, PIECHART_COLORS, PLACEHOLDER_TYPE, PLACEHOLDER_TYPES, POINTS_PER_INCH, PatternFillProps, PatternPreset, PlaceholderProps, PositionProps, PresLayout, PresSlide, type PresSlide as Slide, PresSlideInternal, PresentationProps, REGEX_HEX_COLOR, SCHEME_COLORS, SCHEME_COLOR_NAMES, SHAPE_NAME, SHAPE_TYPE, SLDNUMFLDID, SLIDE_OBJECT_TYPES, STANDARD_LAYOUTS, SchemeColor, SectionInternalProps, SectionProps, ShadowProps, ShapeAdjustValue, ShapeFillProps, ShapeLineProps, ShapeProps, ShapeType, SlideBaseProps, SlideLayout, SlideLayoutInternal, SlideMasterChartProps, SlideMasterObject, SlideMasterProps, SlideNumberProps, StandardLayout, StandardLayoutName, TABLE_STYLE, TEXT_HALIGN, TEXT_VALIGN, TableCell, TableCellProps, TableProps, TableRow, TableRowSlide, TableStyleInternal, TableStyleProps, TableStyleRegionProps, TableToSlidesProps, TextBaseProps, TextFitShrinkProps, TextGlowProps, TextProps, TextPropsOptions, TextVertType, ThemeColor, ThemeColorScheme, ThemeProps, VALID_SHAPE_PRESETS, VAlign, WRITE_OUTPUT_TYPE, WriteBaseProps, WriteFileProps, WriteProps, coordToEmu, emuToInches, emuToPixels, emuToPoints, inchesToEmu, percentToEmu, pixelsToEmu, pointsToEmu, textRun, textRuns };
|