UNPKG

react-canvaskit

Version:

A React implementation of the Skia-CanvasKit drawing library.

172 lines 21.6 kB
import { createCkCanvas } from './CkCanvas'; import { createCkEncodedImage } from './CkEncodedImage'; import { createCkLine } from './CkLine'; import { createCkParagraph } from './CkParagraph'; import { createCkSurface } from './CkSurface'; import { createCkText } from './CkText'; export function isContainerElement(ckElement) { return ckElement.children !== undefined; } var CkPropTypes; (function (CkPropTypes) { CkPropTypes.Color = { red: 'number', green: 'number', blue: 'number', alpha: 'number', }; })(CkPropTypes || (CkPropTypes = {})); export var FilterQuality; (function (FilterQuality) { })(FilterQuality || (FilterQuality = {})); // TODO export var StrokeCap; (function (StrokeCap) { })(StrokeCap || (StrokeCap = {})); // TODO export var StrokeJoin; (function (StrokeJoin) { })(StrokeJoin || (StrokeJoin = {})); // TODO export var BlendMode; (function (BlendMode) { })(BlendMode || (BlendMode = {})); export var TileMode; (function (TileMode) { })(TileMode || (TileMode = {})); (function (FilterQuality) { })(FilterQuality || (FilterQuality = {})); export var BlurStyle; (function (BlurStyle) { })(BlurStyle || (BlurStyle = {})); export var PaintStyle; (function (PaintStyle) { /** * Fill the geometry. */ PaintStyle[PaintStyle["Fill"] = 0] = "Fill"; /** * Stroke the geometry. */ PaintStyle[PaintStyle["Stroke"] = 1] = "Stroke"; /** * Fill and stroke the geometry. */ PaintStyle[PaintStyle["StrokeAndFill"] = 2] = "StrokeAndFill"; })(PaintStyle || (PaintStyle = {})); export var TextAlignEnum; (function (TextAlignEnum) { TextAlignEnum[TextAlignEnum["Left"] = 0] = "Left"; TextAlignEnum[TextAlignEnum["Center"] = 1] = "Center"; TextAlignEnum[TextAlignEnum["Right"] = 2] = "Right"; })(TextAlignEnum || (TextAlignEnum = {})); export var TextDirectionEnum; (function (TextDirectionEnum) { TextDirectionEnum[TextDirectionEnum["Ltr"] = 0] = "Ltr"; TextDirectionEnum[TextDirectionEnum["Rtl"] = 1] = "Rtl"; // TODO })(TextDirectionEnum || (TextDirectionEnum = {})); export var FontWeightEnum; (function (FontWeightEnum) { /** * A thick font weight of 900. */ FontWeightEnum[FontWeightEnum["Black"] = 900] = "Black"; /** * A thick font weight of 700. This is the default for a bold font. */ FontWeightEnum[FontWeightEnum["Bold"] = 700] = "Bold"; /** * A thick font weight of 1000. */ FontWeightEnum[FontWeightEnum["ExtraBlack"] = 1000] = "ExtraBlack"; /** * A thick font weight of 800. */ FontWeightEnum[FontWeightEnum["ExtraBold"] = 800] = "ExtraBold"; /** * A thin font weight of 200. */ FontWeightEnum[FontWeightEnum["ExtraLight"] = 200] = "ExtraLight"; /** * The font has no thickness at all. */ FontWeightEnum[FontWeightEnum["Invisible"] = 0] = "Invisible"; /** * A thin font weight of 300. */ FontWeightEnum[FontWeightEnum["Light"] = 300] = "Light"; /** *A thicker font weight of 500. */ FontWeightEnum[FontWeightEnum["Medium"] = 500] = "Medium"; /** *A typical font weight of 400. This is the default font weight. */ FontWeightEnum[FontWeightEnum["Normal"] = 400] = "Normal"; /** *A thick font weight of 600. */ FontWeightEnum[FontWeightEnum["SemiBold"] = 600] = "SemiBold"; /** *A thin font weight of 100. */ FontWeightEnum[FontWeightEnum["Thin"] = 100] = "Thin"; })(FontWeightEnum || (FontWeightEnum = {})); export var FontSlantEnum; (function (FontSlantEnum) { FontSlantEnum[FontSlantEnum["Upright"] = 0] = "Upright"; FontSlantEnum[FontSlantEnum["Italic"] = 1] = "Italic"; FontSlantEnum[FontSlantEnum["Oblique"] = 2] = "Oblique"; })(FontSlantEnum || (FontSlantEnum = {})); export var FontWidthEnum; (function (FontWidthEnum) { /** * A condensed font width of 3. */ FontWidthEnum[FontWidthEnum["Condensed"] = 3] = "Condensed"; /** * An expanded font width of 7. */ FontWidthEnum[FontWidthEnum["Expanded"] = 7] = "Expanded"; /** *A condensed font width of 2. */ FontWidthEnum[FontWidthEnum["ExtraCondensed"] = 2] = "ExtraCondensed"; /** *An expanded font width of 8. */ FontWidthEnum[FontWidthEnum["ExtraExpanded"] = 8] = "ExtraExpanded"; /** *A normal font width of 5. This is the default font width. */ FontWidthEnum[FontWidthEnum["Normal"] = 5] = "Normal"; /** *A condensed font width of 4. */ FontWidthEnum[FontWidthEnum["SemiCondensed"] = 4] = "SemiCondensed"; /** *An expanded font width of 6. */ FontWidthEnum[FontWidthEnum["SemiExpanded"] = 6] = "SemiExpanded"; /** *A condensed font width of 1. */ FontWidthEnum[FontWidthEnum["UltraCondensed"] = 1] = "UltraCondensed"; /** *An expanded font width of 9. */ FontWidthEnum[FontWidthEnum["UltraExpanded"] = 9] = "UltraExpanded"; })(FontWidthEnum || (FontWidthEnum = {})); const CkElements = { 'ck-text': createCkText, 'ck-line': createCkLine, 'ck-surface': createCkSurface, 'ck-canvas': createCkCanvas, 'ck-paragraph': createCkParagraph, 'ck-encoded-image': createCkEncodedImage, }; export function createCkElement(type, props, canvasKit) { return CkElements[type](type, props, canvasKit); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tpYUVsZW1lbnRUeXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ta2lhRWxlbWVudFR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUV2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUU3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBaUN2QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBeUI7SUFDMUQsT0FBUSxTQUFxQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUE7QUFDdEUsQ0FBQztBQU1ELElBQVUsV0FBVyxDQU9wQjtBQVBELFdBQVUsV0FBVztJQUNOLGlCQUFLLEdBQUc7UUFDbkIsR0FBRyxFQUFFLFFBQVE7UUFDYixLQUFLLEVBQUUsUUFBUTtRQUNmLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLFFBQVE7S0FDaEIsQ0FBQTtBQUNILENBQUMsRUFQUyxXQUFXLEtBQVgsV0FBVyxRQU9wQjtBQVdELE1BQU0sQ0FBTixJQUFZLGFBQWdCO0FBQTVCLFdBQVksYUFBYTtBQUFFLENBQUMsRUFBaEIsYUFBYSxLQUFiLGFBQWEsUUFBRztBQUM1QixPQUFPO0FBRVAsTUFBTSxDQUFOLElBQVksU0FBWTtBQUF4QixXQUFZLFNBQVM7QUFBRSxDQUFDLEVBQVosU0FBUyxLQUFULFNBQVMsUUFBRztBQUN4QixPQUFPO0FBRVAsTUFBTSxDQUFOLElBQVksVUFBYTtBQUF6QixXQUFZLFVBQVU7QUFBRSxDQUFDLEVBQWIsVUFBVSxLQUFWLFVBQVUsUUFBRztBQUN6QixP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SUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDYW52YXMgYXMgU2tDYW52YXMsXG4gIENhbnZhc0tpdCxcbiAgSW1hZ2UgYXMgU2tJbWFnZSxcbiAgUGFyYWdyYXBoIGFzIFNrUGFyYWdyYXBoLFxuICBTdXJmYWNlIGFzIFNrU3VyZmFjZSxcbn0gZnJvbSAnY2FudmFza2l0LXdhc20nXG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQ2tDYW52YXNQcm9wcyB9IGZyb20gJy4vQ2tDYW52YXMnXG5pbXBvcnQgeyBjcmVhdGVDa0NhbnZhcyB9IGZyb20gJy4vQ2tDYW52YXMnXG5pbXBvcnQgdHlwZSB7IENrRW5jb2RlZEltYWdlUHJvcHMgfSBmcm9tICcuL0NrRW5jb2RlZEltYWdlJ1xuaW1wb3J0IHsgY3JlYXRlQ2tFbmNvZGVkSW1hZ2UgfSBmcm9tICcuL0NrRW5jb2RlZEltYWdlJ1xuaW1wb3J0IHR5cGUgeyBDa0xpbmVQcm9wcyB9IGZyb20gJy4vQ2tMaW5lJ1xuaW1wb3J0IHsgY3JlYXRlQ2tMaW5lIH0gZnJvbSAnLi9Da0xpbmUnXG5pbXBvcnQgdHlwZSB7IENrUGFyYWdyYXBoUHJvcHMgfSBmcm9tICcuL0NrUGFyYWdyYXBoJ1xuaW1wb3J0IHsgY3JlYXRlQ2tQYXJhZ3JhcGggfSBmcm9tICcuL0NrUGFyYWdyYXBoJ1xuaW1wb3J0IHR5cGUgeyBDa1N1cmZhY2VQcm9wcyB9IGZyb20gJy4vQ2tTdXJmYWNlJ1xuaW1wb3J0IHsgY3JlYXRlQ2tTdXJmYWNlIH0gZnJvbSAnLi9Da1N1cmZhY2UnXG5pbXBvcnQgdHlwZSB7IENrVGV4dFByb3BzIH0gZnJvbSAnLi9Da1RleHQnXG5pbXBvcnQgeyBjcmVhdGVDa1RleHQgfSBmcm9tICcuL0NrVGV4dCdcblxuZXhwb3J0IHR5cGUgQ2tFbGVtZW50UHJvcHM8VD4gPSB7XG4gIHJlZj86IE11dGFibGVSZWZPYmplY3Q8VCB8IG51bGwgfCB1bmRlZmluZWQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2tPYmplY3RUeXBpbmcge1xuICAnY2stc3VyZmFjZSc6IHsgdHlwZTogU2tTdXJmYWNlOyBuYW1lOiAnU2tTdXJmYWNlJzsgcHJvcHM6IENrU3VyZmFjZVByb3BzIH1cbiAgJ2NrLWNhbnZhcyc6IHsgdHlwZTogU2tDYW52YXM7IG5hbWU6ICdTa0NhbnZhcyc7IHByb3BzOiBDa0NhbnZhc1Byb3BzIH1cbiAgJ2NrLWxpbmUnOiB7IHR5cGU6IG5ldmVyOyBuYW1lOiAnTGluZSc7IHByb3BzOiBDa0xpbmVQcm9wcyB9XG4gICdjay10ZXh0JzogeyB0eXBlOiBuZXZlcjsgbmFtZTogJ1RleHQnOyBwcm9wczogQ2tUZXh0UHJvcHMgfVxuICAnY2stcGFyYWdyYXBoJzogeyB0eXBlOiBTa1BhcmFncmFwaDsgbmFtZTogJ1NrUGFyYWdyYXBoJzsgcHJvcHM6IENrUGFyYWdyYXBoUHJvcHMgfVxuICAnY2stZW5jb2RlZC1pbWFnZSc6IHsgdHlwZTogU2tJbWFnZTsgbmFtZTogJ1NrSW1hZ2UnOyBwcm9wczogQ2tFbmNvZGVkSW1hZ2VQcm9wcyB9XG59XG5cbmV4cG9ydCB0eXBlIENrRWxlbWVudFR5cGUgPSBrZXlvZiBDa09iamVjdFR5cGluZ1xuXG5leHBvcnQgaW50ZXJmYWNlIENrRWxlbWVudDxUeXBlTmFtZSBleHRlbmRzIGtleW9mIENrT2JqZWN0VHlwaW5nPiB7XG4gIHJlYWRvbmx5IGNhbnZhc0tpdDogQ2FudmFzS2l0XG4gIHJlYWRvbmx5IHR5cGU6IFR5cGVOYW1lXG4gIHByb3BzOiBDa09iamVjdFR5cGluZ1tUeXBlTmFtZV1bJ3Byb3BzJ11cbiAgcmVhZG9ubHkgc2tPYmplY3RUeXBlOiBDa09iamVjdFR5cGluZ1tUeXBlTmFtZV1bJ25hbWUnXVxuICBza09iamVjdD86IENrT2JqZWN0VHlwaW5nW1R5cGVOYW1lXVsndHlwZSddXG5cbiAgcmVuZGVyKHBhcmVudDogQ2tFbGVtZW50Q29udGFpbmVyPGFueT4pOiB2b2lkXG5cbiAgZGVsZXRlKCk6IHZvaWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDa0VsZW1lbnRDcmVhdG9yPFR5cGVOYW1lIGV4dGVuZHMga2V5b2YgQ2tPYmplY3RUeXBpbmc+IHtcbiAgKHR5cGU6IFR5cGVOYW1lLCBwcm9wczogQ2tPYmplY3RUeXBpbmdbVHlwZU5hbWVdWydwcm9wcyddLCBjYW52YXNLaXQ6IENhbnZhc0tpdCk6IENrRWxlbWVudDxUeXBlTmFtZT5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGFpbmVyRWxlbWVudChja0VsZW1lbnQ6IENrRWxlbWVudDxhbnk+KTogY2tFbGVtZW50IGlzIENrRWxlbWVudENvbnRhaW5lcjxhbnk+IHtcbiAgcmV0dXJuIChja0VsZW1lbnQgYXMgQ2tFbGVtZW50Q29udGFpbmVyPGFueT4pLmNoaWxkcmVuICE9PSB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDa0VsZW1lbnRDb250YWluZXI8VHlwZU5hbWUgZXh0ZW5kcyBrZXlvZiBDa09iamVjdFR5cGluZz4gZXh0ZW5kcyBDa0VsZW1lbnQ8VHlwZU5hbWU+IHtcbiAgY2hpbGRyZW46IENrRWxlbWVudDxhbnk+W11cbn1cblxubmFtZXNwYWNlIENrUHJvcFR5cGVzIHtcbiAgZXhwb3J0IGNvbnN0IENvbG9yID0ge1xuICAgIHJlZDogJ251bWJlcicsXG4gICAgZ3JlZW46ICdudW1iZXInLFxuICAgIGJsdWU6ICdudW1iZXInLFxuICAgIGFscGhhOiAnbnVtYmVyJyxcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbG9yIHtcbiAgcmVkOiBudW1iZXJcbiAgZ3JlZW46IG51bWJlclxuICBibHVlOiBudW1iZXJcbiAgYWxwaGE/OiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgQ29sb3JUeXBlTmFtZSA9ICdDb2xvcidcblxuZXhwb3J0IGVudW0gRmlsdGVyUXVhbGl0eSB7fVxuLy8gVE9ET1xuXG5leHBvcnQgZW51bSBTdHJva2VDYXAge31cbi8vIFRPRE9cblxuZXhwb3J0IGVudW0gU3Ryb2tlSm9pbiB7fVxuLy8gVE9ET1xuXG5leHBvcnQgZW51bSBCbGVuZE1vZGUge31cbi8vIFRPRE9cblxuZXhwb3J0IHR5cGUgQ29sb3JGaWx0ZXIgPVxuICB8IEJsZW5kQ29sb3JGaWx0ZXJcbiAgfCBDb21wb3NlQ29sb3JGaWx0ZXJcbiAgfCBMZXJwQ29sb3JGaWx0ZXJcbiAgfCBMaW5lYXJUb1NSR0JHYW1tYUNvbG9yRmlsdGVyXG4gIHwgTWF0cml4Q29sb3JGaWx0ZXJcbiAgfCBTUkdCVG9MaW5lYXJHYW1tYUNvbG9yRmlsdGVyXG5cbmV4cG9ydCBpbnRlcmZhY2UgQmxlbmRDb2xvckZpbHRlciB7XG4gIGNvbG9yOiBDb2xvclxuICBibGVuZE1vZGU6IEJsZW5kTW9kZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvc2VDb2xvckZpbHRlciB7XG4gIGZpcnN0OiBDb2xvckZpbHRlclxuICBzZWNvbmQ6IENvbG9yRmlsdGVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVycENvbG9yRmlsdGVyIHtcbiAgbGVycDogbnVtYmVyXG4gIGZpcnN0OiBDb2xvckZpbHRlclxuICBzZWNvbmQ6IENvbG9yRmlsdGVyXG59XG5cbmV4cG9ydCB0eXBlIExpbmVhclRvU1JHQkdhbW1hQ29sb3JGaWx0ZXIgPSAnTGluZWFyVG9TUkdCR2FtbWEnXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF0cml4Q29sb3JGaWx0ZXIge1xuICBtYXRyaXg6IE1hdHJpeFxufVxuXG5leHBvcnQgdHlwZSBTUkdCVG9MaW5lYXJHYW1tYUNvbG9yRmlsdGVyID0gJ1NSR0JUb0xpbmVhckdhbW1hJ1xuXG5leHBvcnQgdHlwZSBJbWFnZUZpbHRlciA9IEJsdXJJbWFnZUZpbHRlciB8IENvbG9ySW1hZ2VGaWx0ZXIgfCBDb21wb3NlSW1hZ2VGaWx0ZXIgfCBNYXRyaXhUcmFuc2Zvcm1JbWFnZUZpbHRlclxuXG5leHBvcnQgZW51bSBUaWxlTW9kZSB7fVxuLy8gVE9ET1xuXG5leHBvcnQgaW50ZXJmYWNlIEJsdXJJbWFnZUZpbHRlciB7XG4gIHJ4OiBudW1iZXJcbiAgcnk6IG51bWJlclxuICB0aWxlTW9kZTogVGlsZU1vZGVcbiAgbmV4dDogSW1hZ2VGaWx0ZXIgfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JJbWFnZUZpbHRlciB7XG4gIGZpbHRlcjogQ29sb3JGaWx0ZXJcbiAgbmV4dDogSW1hZ2VGaWx0ZXIgfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9zZUltYWdlRmlsdGVyIHtcbiAgZmlyc3Q6IEltYWdlRmlsdGVyXG4gIHNlY29uZDogSW1hZ2VGaWx0ZXJcbn1cblxuZXhwb3J0IGVudW0gRmlsdGVyUXVhbGl0eSB7fVxuLy8gVE9ET1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hdHJpeFRyYW5zZm9ybUltYWdlRmlsdGVyIHtcbiAgbWF0cml4OiBNYXRyaXhDb2xvckZpbHRlclxuICBmaWx0ZXJRdWFsaXR5OiBGaWx0ZXJRdWFsaXR5XG4gIG5leHQ6IEltYWdlRmlsdGVyIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBNYXNrRmlsdGVyID0gQmx1ck1hc2tGaWx0ZXJcblxuZXhwb3J0IGVudW0gQmx1clN0eWxlIHt9XG4vLyBUT0RPXG5cbmV4cG9ydCBpbnRlcmZhY2UgQmx1ck1hc2tGaWx0ZXIge1xuICBibHVyU3R5bGU6IEJsdXJTdHlsZVxuICByYWRpdXM6IG51bWJlclxuICBiOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIFBhdGhFZmZlY3QgPSBEYXNoUGF0aEVmZmVjdCB8IENvcm5lclBhdGhFZmZlY3QgfCBEaXNjcmV0ZVBhdGhFZmZlY3RcblxuZXhwb3J0IGludGVyZmFjZSBEYXNoUGF0aEVmZmVjdCB7XG4gIGludGVydmFsczogbnVtYmVyW11cbiAgcGhhc2U6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvcm5lclBhdGhFZmZlY3Qge1xuICByYWRpdXM6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc2NyZXRlUGF0aEVmZmVjdCB7XG4gIGZyZXF1ZW5jeTogbnVtYmVyXG4gIGFtcGxpdHVkZTogbnVtYmVyXG4gIHNlZWQ6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBTaGFkZXIgPSBMaW5lYXJHcmFkaWVudFNoYWRlciB8IFJhZGlhbEdyYWRpZW50U2hhZGVyIHwgVHdvUG9pbnRDb25pY2FsR3JhZGllbnRTaGFkZXJcblxuZXhwb3J0IHR5cGUgUG9pbnQgPSBbbnVtYmVyLCBudW1iZXJdXG5cbmV4cG9ydCB0eXBlIE1hdHJpeCA9IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuXG5leHBvcnQgaW50ZXJmYWNlIExpbmVhckdyYWRpZW50U2hhZGVyIHtcbiAgc3RhcnQ6IFBvaW50XG4gIGVuZDogUG9pbnRcbiAgY29sb3JzOiBDb2xvcltdXG4gIHBvc2l0aW9uczogbnVtYmVyW11cbiAgbW9kZTogbnVtYmVyXG4gIGxvY2FsTWF0cml4OiBNYXRyaXggfCBudWxsXG4gIGZsYWdzOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYWRpYWxHcmFkaWVudFNoYWRlciB7XG4gIGNlbnRlcjogUG9pbnRcbiAgcmFkaXVzOiBudW1iZXJcbiAgY29sb3JzOiBDb2xvcltdXG4gIHBvc2l0aW9uczogbnVtYmVyW11cbiAgbW9kZTogbnVtYmVyXG4gIGxvY2FsTWF0cml4PzogTWF0cml4XG4gIGZsYWdzOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUd29Qb2ludENvbmljYWxHcmFkaWVudFNoYWRlciB7XG4gIHN0YXJ0OiBQb2ludFxuICBzdGFydFJhZGl1czogbnVtYmVyXG4gIGVuZDogUG9pbnRcbiAgZW5kUmFkaXVzOiBudW1iZXJcbiAgY29sb3JzOiBDb2xvcltdXG4gIHBvc2l0aW9uczogbnVtYmVyW11cbiAgbW9kZTogbnVtYmVyXG4gIGxvY2FsTWF0cml4PzogTWF0cml4XG4gIGZsYWdzOiBudW1iZXJcbn1cblxuZXhwb3J0IGVudW0gUGFpbnRTdHlsZSB7XG4gIC8qKlxuICAgKiBGaWxsIHRoZSBnZW9tZXRyeS5cbiAgICovXG4gIEZpbGwgPSAwLFxuICAvKipcbiAgICogU3Ryb2tlIHRoZSBnZW9tZXRyeS5cbiAgICovXG4gIFN0cm9rZSA9IDEsXG4gIC8qKlxuICAgKiBGaWxsIGFuZCBzdHJva2UgdGhlIGdlb21ldHJ5LlxuICAgKi9cbiAgU3Ryb2tlQW5kRmlsbCA9IDIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFpbnQge1xuICBibGVuZE1vZGU/OiBCbGVuZE1vZGVcbiAgY29sb3I/OiBDb2xvciB8IHN0cmluZ1xuICBmaWx0ZXJRdWFsaXR5PzogRmlsdGVyUXVhbGl0eVxuICBzdHJva2VDYXA/OiBTdHJva2VDYXBcbiAgc3Ryb2tlSm9pbj86IFN0cm9rZUpvaW5cbiAgc3Ryb2tlTWl0ZXI/OiBudW1iZXJcbiAgc3Ryb2tlV2lkdGg/OiBudW1iZXJcbiAgYW50aUFsaWFzPzogYm9vbGVhblxuICBjb2xvckZpbHRlcj86IENvbG9yRmlsdGVyXG4gIGltYWdlRmlsdGVyPzogSW1hZ2VGaWx0ZXJcbiAgbWFza0ZpbHRlcj86IE1hc2tGaWx0ZXJcbiAgcGF0aEVmZmVjdD86IFBhdGhFZmZlY3RcbiAgc2hhZGVyPzogU2hhZGVyXG4gIHN0eWxlPzogUGFpbnRTdHlsZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpbmVQcm9wcyB7XG4gIHgxOiBudW1iZXJcbiAgeTE6IG51bWJlclxuICB4MjogbnVtYmVyXG4gIHkyOiBudW1iZXJcbiAgcGFpbnQ6IFBhaW50XG59XG5cbmV4cG9ydCBlbnVtIFRleHRBbGlnbkVudW0ge1xuICBMZWZ0ID0gMCxcbiAgQ2VudGVyID0gMSxcbiAgUmlnaHQgPSAyLFxufVxuXG5leHBvcnQgZW51bSBUZXh0RGlyZWN0aW9uRW51bSB7XG4gIEx0ciA9IDAsXG4gIFJ0bCA9IDEsXG4gIC8vIFRPRE9cbn1cblxuZXhwb3J0IGVudW0gRm9udFdlaWdodEVudW0ge1xuICAvKipcbiAgICogQSB0aGljayBmb250IHdlaWdodCBvZiA5MDAuXG4gICAqL1xuICBCbGFjayA9IDkwMCxcbiAgLyoqXG4gICAqIEEgdGhpY2sgZm9udCB3ZWlnaHQgb2YgNzAwLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGZvciBhIGJvbGQgZm9udC5cbiAgICovXG4gIEJvbGQgPSA3MDAsXG4gIC8qKlxuICAgKiBBIHRoaWNrIGZvbnQgd2VpZ2h0IG9mIDEwMDAuXG4gICAqL1xuICBFeHRyYUJsYWNrID0gMTAwMCxcbiAgLyoqXG4gICAqIEEgdGhpY2sgZm9udCB3ZWlnaHQgb2YgODAwLlxuICAgKi9cbiAgRXh0cmFCb2xkID0gODAwLFxuICAvKipcbiAgICogQSB0aGluIGZvbnQgd2VpZ2h0IG9mIDIwMC5cbiAgICovXG4gIEV4dHJhTGlnaHQgPSAyMDAsXG4gIC8qKlxuICAgKiBUaGUgZm9udCBoYXMgbm8gdGhpY2tuZXNzIGF0IGFsbC5cbiAgICovXG4gIEludmlzaWJsZSA9IDAsXG5cbiAgLyoqXG4gICAqIEEgdGhpbiBmb250IHdlaWdodCBvZiAzMDAuXG4gICAqL1xuICBMaWdodCA9IDMwMCxcblxuICAvKipcbiAgICpBIHRoaWNrZXIgZm9udCB3ZWlnaHQgb2YgNTAwLlxuICAgKi9cbiAgTWVkaXVtID0gNTAwLFxuXG4gIC8qKlxuICAgKkEgdHlwaWNhbCBmb250IHdlaWdodCBvZiA0MDAuIFRoaXMgaXMgdGhlIGRlZmF1bHQgZm9udCB3ZWlnaHQuXG4gICAqL1xuICBOb3JtYWwgPSA0MDAsXG5cbiAgLyoqXG4gICAqQSB0aGljayBmb250IHdlaWdodCBvZiA2MDAuXG4gICAqL1xuICBTZW1pQm9sZCA9IDYwMCxcblxuICAvKipcbiAgICpBIHRoaW4gZm9udCB3ZWlnaHQgb2YgMTAwLlxuICAgKi9cbiAgVGhpbiA9IDEwMCxcbn1cblxuZXhwb3J0IGVudW0gRm9udFNsYW50RW51bSB7XG4gIFVwcmlnaHQsXG4gIEl0YWxpYyxcbiAgT2JsaXF1ZSxcbn1cblxuZXhwb3J0IGVudW0gRm9udFdpZHRoRW51bSB7XG4gIC8qKlxuICAgKiBBIGNvbmRlbnNlZCBmb250IHdpZHRoIG9mIDMuXG4gICAqL1xuICBDb25kZW5zZWQgPSAzLFxuICAvKipcbiAgICogQW4gZXhwYW5kZWQgZm9udCB3aWR0aCBvZiA3LlxuICAgKi9cbiAgRXhwYW5kZWQgPSA3LFxuICAvKipcbiAgICpBIGNvbmRlbnNlZCBmb250IHdpZHRoIG9mIDIuXG4gICAqL1xuICBFeHRyYUNvbmRlbnNlZCA9IDIsXG4gIC8qKlxuICAgKkFuIGV4cGFuZGVkIGZvbnQgd2lkdGggb2YgOC5cbiAgICovXG4gIEV4dHJhRXhwYW5kZWQgPSA4LFxuICAvKipcbiAgICpBIG5vcm1hbCBmb250IHdpZHRoIG9mIDUuIFRoaXMgaXMgdGhlIGRlZmF1bHQgZm9udCB3aWR0aC5cbiAgICovXG4gIE5vcm1hbCA9IDUsXG4gIC8qKlxuICAgKkEgY29uZGVuc2VkIGZvbnQgd2lkdGggb2YgNC5cbiAgICovXG4gIFNlbWlDb25kZW5zZWQgPSA0LFxuICAvKipcbiAgICpBbiBleHBhbmRlZCBmb250IHdpZHRoIG9mIDYuXG4gICAqL1xuICBTZW1pRXhwYW5kZWQgPSA2LFxuICAvKipcbiAgICpBIGNvbmRlbnNlZCBmb250IHdpZHRoIG9mIDEuXG4gICAqL1xuICBVbHRyYUNvbmRlbnNlZCA9IDEsXG4gIC8qKlxuICAgKkFuIGV4cGFuZGVkIGZvbnQgd2lkdGggb2YgOS5cbiAgICovXG4gIFVsdHJhRXhwYW5kZWQgPSA5LFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVGYWNlIHtcbiAgZGF0YTogQXJyYXlCdWZmZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb250IHtcbiAgdHlwZUZhY2U/OiBUeXBlRmFjZVxuICBzaXplOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDa0ZvbnRTdHlsZSB7XG4gIHdlaWdodD86IEZvbnRXZWlnaHRFbnVtXG4gIHNsYW50PzogRm9udFNsYW50RW51bVxuICB3aWR0aD86IEZvbnRXaWR0aEVudW1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0U3R5bGUge1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBDb2xvciB8IHN0cmluZ1xuICBjb2xvcj86IENvbG9yIHwgc3RyaW5nXG4gIGRlY29yYXRpb24/OiBudW1iZXJcbiAgZGVjb3JhdGlvblRoaWNrbmVzcz86IG51bWJlclxuICBmb250RmFtaWxpZXM/OiBzdHJpbmdbXVxuICBmb250U2l6ZT86IG51bWJlclxuICBmb250U3R5bGU/OiBDa0ZvbnRTdHlsZVxuICBmb3JlZ3JvdW5kQ29sb3I/OiBDb2xvciB8IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFncmFwaFN0eWxlIHtcbiAgZGlzYWJsZUhpbnRpbmc/OiBib29sZWFuXG4gIGhlaWdodE11bHRpcGxpZXI/OiBudW1iZXJcbiAgZWxsaXBzaXM/OiBzdHJpbmdcbiAgbWF4TGluZXM/OiBudW1iZXJcbiAgdGV4dEFsaWduPzogVGV4dEFsaWduRW51bVxuICB0ZXh0RGlyZWN0aW9uPzogVGV4dERpcmVjdGlvbkVudW1cbiAgdGV4dFN0eWxlOiBUZXh0U3R5bGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJhZ3JhcGhQcm9wcyB7XG4gIHN0eWxlOiBQYXJhZ3JhcGhTdHlsZVxuICBtYXhXaWR0aDogbnVtYmVyXG4gIHg6IG51bWJlclxuICB5OiBudW1iZXJcbn1cblxuY29uc3QgQ2tFbGVtZW50czogeyBba2V5IGluIENrRWxlbWVudFR5cGVdOiBDa0VsZW1lbnRDcmVhdG9yPGFueT4gfSA9IHtcbiAgJ2NrLXRleHQnOiBjcmVhdGVDa1RleHQsXG4gICdjay1saW5lJzogY3JlYXRlQ2tMaW5lLFxuICAnY2stc3VyZmFjZSc6IGNyZWF0ZUNrU3VyZmFjZSxcbiAgJ2NrLWNhbnZhcyc6IGNyZWF0ZUNrQ2FudmFzLFxuICAnY2stcGFyYWdyYXBoJzogY3JlYXRlQ2tQYXJhZ3JhcGgsXG4gICdjay1lbmNvZGVkLWltYWdlJzogY3JlYXRlQ2tFbmNvZGVkSW1hZ2UsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDa0VsZW1lbnQodHlwZTogQ2tFbGVtZW50VHlwZSwgcHJvcHM6IENrRWxlbWVudFByb3BzPGFueT4sIGNhbnZhc0tpdDogQ2FudmFzS2l0KTogQ2tFbGVtZW50PGFueT4ge1xuICByZXR1cm4gQ2tFbGVtZW50c1t0eXBlXSh0eXBlLCBwcm9wcywgY2FudmFzS2l0KVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIG5hbWVzcGFjZSBKU1gge1xuICAgIGludGVyZmFjZSBJbnRyaW5zaWNFbGVtZW50cyB7XG4gICAgICAnY2stdGV4dCc6IENrVGV4dFByb3BzXG4gICAgICAnY2stY2FudmFzJzogQ2tDYW52YXNQcm9wc1xuICAgICAgJ2NrLXN1cmZhY2UnOiBDa1N1cmZhY2VQcm9wc1xuICAgICAgJ2NrLWxpbmUnOiBDa0xpbmVQcm9wc1xuICAgICAgJ2NrLXBhcmFncmFwaCc6IENrUGFyYWdyYXBoUHJvcHNcbiAgICAgICdjay1lbmNvZGVkLWltYWdlJzogQ2tFbmNvZGVkSW1hZ2VQcm9wc1xuICAgIH1cbiAgfVxufVxuIl19