diff --git a/dist/plugin.js b/dist/plugin.js index 68f42132..2c4c44ac 100644 --- a/dist/plugin.js +++ b/dist/plugin.js @@ -1,2150 +1 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./src/index.ts"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./src/extractor/extractBorders.ts": -/*!*****************************************!*\ - !*** ./src/extractor/extractBorders.ts ***! - \*****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/roundWithDecimals */ "./src/utilities/roundWithDecimals.ts"); - -const strokeJoins = { - MITER: 'miter', - BEVEL: 'bevel', - ROUND: 'round' -}; -const strokeAligns = { - CENTER: 'center', - INSIDE: 'inside', - OUTSIDE: 'outside' -}; -const extractBorders = (tokenNodes) => { - const nodeName = 'borders'; - // return as object - return tokenNodes - // only get border nodes - .filter(node => node.name.substr(0, nodeName.length) === nodeName) - // remove nodes with no border property - .filter(node => node.strokes.length > 0) - // convert borders - .map(node => ({ - name: node.name, - category: 'border', - // @ts-ignore - description: node.description || null, - values: { - strokeAlign: { - value: strokeAligns[node.strokeAlign], - type: 'string' - }, - dashPattern: { - value: node.dashPattern.toString(), - type: 'string' - }, - strokeCap: { - value: ((typeof node.strokeCap === 'string') ? node.strokeCap.toLowerCase() : 'mixed'), - type: 'string' - }, - strokeJoin: { - value: strokeJoins[node.strokeJoin], - type: 'string' - }, - strokeMiterLimit: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.strokeMiterLimit), - unit: 'degree', - type: 'number' - }, - // strokeStyleId: { - // value: node.strokeStyleId - // }, - strokeWeight: { - value: node.strokeWeight, - unit: 'pixel', - type: 'number' - }, - stroke: { - value: node.strokes[0], - type: 'color' - } - } - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractBorders); - - -/***/ }), - -/***/ "./src/extractor/extractBreakpoints.ts": -/*!*********************************************!*\ - !*** ./src/extractor/extractBreakpoints.ts ***! - \*********************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/roundWithDecimals */ "./src/utilities/roundWithDecimals.ts"); - -const extractBreakpoints = (tokenNodes) => { - const nodeName = 'breakpoints'; - // return as object - return tokenNodes.filter(node => node.name.substr(0, nodeName.length) === nodeName).map(node => ({ - name: node.name, - // @ts-ignore - description: node.description || null, - category: 'breakpoint', - values: { - width: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.width, 2), - unit: 'pixel', - type: 'number' - } - } - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractBreakpoints); - - -/***/ }), - -/***/ "./src/extractor/extractColors.ts": -/*!****************************************!*\ - !*** ./src/extractor/extractColors.ts ***! - \****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utilities_convertColor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/convertColor */ "./src/utilities/convertColor.ts"); -/* harmony import */ var _utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utilities/roundWithDecimals */ "./src/utilities/roundWithDecimals.ts"); - - -const gradientType = { - GRADIENT_LINEAR: 'linear', - GRADIENT_RADIAL: 'radial', - GRADIENT_ANGULAR: 'angular', - GRADIENT_DIAMOND: 'diamond' -}; -const extractFills = (paint) => { - if (paint.type === 'SOLID') { - return { - fill: { - value: Object(_utilities_convertColor__WEBPACK_IMPORTED_MODULE_0__["convertPaintToRgba"])(paint), - type: 'color' - } - }; - } - if (['GRADIENT_LINEAR', 'GRADIENT_RADIAL', 'GRADIENT_ANGULAR', 'GRADIENT_DIAMOND'].includes(paint.type)) { - return { - gradientType: { - value: gradientType[paint.type], - type: 'string' - }, - stops: paint.gradientStops.map(stop => ({ - position: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_1__["default"])(stop.position), - type: 'number' - }, - color: { - value: Object(_utilities_convertColor__WEBPACK_IMPORTED_MODULE_0__["roundRgba"])(stop.color), - type: 'color' - } - })), - opacity: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_1__["default"])(paint.opacity), - type: 'number' - } - }; - } - // return null if no matching type - /* istanbul ignore next */ - return null; -}; -const extractColors = (tokenNodes) => { - // get all paint styles - return tokenNodes - // remove images fills from tokens - .map(node => { - node.paints = node.paints.filter(paint => paint.type !== 'IMAGE'); - return node; - }) - // remove tokens with no fill - .filter(node => node.paints.length > 0) - // transform style - .map(node => ({ - name: node.name, - // id: node.id, - description: node.description || null, - category: 'fill', - values: node.paints.map(paint => extractFills(paint)) - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractColors); - - -/***/ }), - -/***/ "./src/extractor/extractEffects.ts": -/*!*****************************************!*\ - !*** ./src/extractor/extractEffects.ts ***! - \*****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utilities_convertColor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/convertColor */ "./src/utilities/convertColor.ts"); - -const effectType = { - LAYER_BLUR: 'layerBlur', - BACKGROUND_BLUR: 'backgroundBlur', - DROP_SHADOW: 'dropShadow', - INNER_SHADOW: 'innerShadow' -}; -const blurValues = (effect) => ({ - type: { - value: effectType[effect.type], - type: 'string' - }, - radius: { - value: effect.radius, - unit: 'pixel', - type: 'number' - } -}); -const shadowValues = effect => ({ - type: { - value: effectType[effect.type], - type: 'string' - }, - radius: { - value: effect.radius, - unit: 'pixel', - type: 'number' - }, - color: { - value: Object(_utilities_convertColor__WEBPACK_IMPORTED_MODULE_0__["roundRgba"])(effect.color), - type: 'color' - }, - offset: { - x: { - value: effect.offset.x, - unit: 'pixel', - type: 'number' - }, - y: { - value: effect.offset.y, - unit: 'pixel', - type: 'number' - } - }, - spread: { - value: effect.spread, - unit: 'pixel', - type: 'number' - } -}); -const extractEffects = (tokenNodes) => { - // get effect styles - return tokenNodes.map(node => ({ - name: node.name, - description: node.description || null, - category: 'effect', - values: node.effects.map((effect) => effect.type === 'LAYER_BLUR' || effect.type === 'BACKGROUND_BLUR' - ? blurValues(effect) - : shadowValues(effect)) - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractEffects); - - -/***/ }), - -/***/ "./src/extractor/extractFonts.ts": -/*!***************************************!*\ - !*** ./src/extractor/extractFonts.ts ***! - \***************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/roundWithDecimals */ "./src/utilities/roundWithDecimals.ts"); - -const textDecorations = { - NONE: 'none', - UNDERLINE: 'underline', - STRIKETHROUGH: 'line-through' -}; -const textCases = { - ORIGINAL: 'none', - UPPER: 'uppercase', - LOWER: 'lowercase', - TITLE: 'capitalize' -}; -const fontWeights = { - thin: 100, - extralight: 200, - ultralight: 200, - light: 300, - normal: 400, - regular: 400, - medium: 500, - semibold: 600, - demibold: 600, - bold: 700, - extrabold: 800, - ultabold: 800, - black: 900, - heavy: 900, - super: 900 -}; -const fontStretch = { - normal: 'normal', - condensed: 'condensed', - expanded: 'expanded', - extended: 'expanded' -}; -const fontStyles = { - normal: 'normal', - italic: 'italic', - oblique: 'oblique' -}; -const parseFontWeight = (fontStyle) => { - const parts = fontStyle.toLowerCase().split(' '); - let weight = parts[0]; - // merge if space after extra - if (['extra', 'ultra', 'semi', 'demi'].includes(parts[0]) && ['bold', 'light'].includes(parts[1])) { - weight = `${parts[0]}${parts[1]}`; - } - return fontWeights[weight] || 400; -}; -const parseFontStretch = (fontStyle) => { - const parts = fontStyle.toLowerCase().split(' '); - return fontStretch[parts[parts.length - 1]] || fontStretch[parts[parts.length - 2]] || 'normal'; -}; -const parseFontStyle = (fontStyle) => { - const part = fontStyle.toLowerCase().split(' ').pop(); - return fontStyles[part] || 'normal'; -}; -const extractFonts = (tokenNodes) => { - // get raw text styles - return tokenNodes.map(node => ({ - name: node.name, - description: node.description || undefined, - category: 'font', - values: { - fontSize: { - value: node.fontSize, - unit: 'pixel', - type: 'number' - }, - textDecoration: { - value: textDecorations[node.textDecoration], - type: 'string' - }, - fontFamily: { - value: node.fontName.family, - type: 'string' - }, - fontWeight: { - value: parseFontWeight(node.fontName.style), - type: 'number' - }, - fontStyle: { - value: parseFontStyle(node.fontName.style), - type: 'string' - }, - fontStretch: { - value: parseFontStretch(node.fontName.style), - type: 'string' - }, - _fontStyleOld: { - value: node.fontName.style, - type: 'string' - }, - letterSpacing: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.letterSpacing.value), - unit: node.letterSpacing.unit.toLowerCase(), - type: 'number' - }, - lineHeight: { - // @ts-ignore - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.lineHeight.value) || 'normal', - unit: node.lineHeight.unit.toLowerCase(), - type: (Object.prototype.hasOwnProperty.call(node.lineHeight, 'value') ? 'number' : 'string') - }, - paragraphIndent: { - value: node.paragraphIndent, - unit: 'pixel', - type: 'number' - }, - paragraphSpacing: { - value: node.paragraphSpacing, - unit: 'pixel', - type: 'number' - }, - textCase: { - value: textCases[node.textCase], - type: 'string' - } - } - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractFonts); - - -/***/ }), - -/***/ "./src/extractor/extractGrids.ts": -/*!***************************************!*\ - !*** ./src/extractor/extractGrids.ts ***! - \***************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -const gridValues = (grid) => ({ - pattern: { - value: grid.pattern.toLowerCase(), - type: 'string' - }, - sectionSize: { - value: grid.sectionSize, - unit: 'pixel', - type: 'number' - } -}); -const getCount = count => { - if (count === Infinity) { - return { - value: 'auto', - type: 'string' - }; - } - return { - value: count, - type: 'number' - }; -}; -const rowColumnValues = (grid) => (Object.assign(Object.assign(Object.assign({ pattern: { - value: grid.pattern.toLowerCase(), - type: 'string' - } }, (grid.sectionSize !== undefined && { - sectionSize: { - value: grid.sectionSize, - unit: 'pixel', - type: 'number' - } -})), { gutterSize: { - value: grid.gutterSize, - unit: 'pixel', - type: 'number' - }, alignment: { - value: grid.alignment.toLowerCase(), - type: 'string' - }, count: getCount(grid.count) }), (grid.offset !== undefined && { - offset: { - value: grid.offset, - unit: 'pixel', - type: 'number' - } -}))); -const extractGrids = (tokenNodes) => { - // get grid styles - return tokenNodes.map(node => ({ - name: node.name, - description: node.description || null, - category: 'grid', - values: node.layoutGrids.map((grid) => grid.pattern === 'GRID' ? gridValues(grid) : rowColumnValues(grid)) - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractGrids); - - -/***/ }), - -/***/ "./src/extractor/extractMotion.ts": -/*!****************************************!*\ - !*** ./src/extractor/extractMotion.ts ***! - \****************************************/ -/*! exports provided: default, __testing */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__testing", function() { return __testing; }); -const direction = (transition) => { - if (Object.prototype.hasOwnProperty.call(transition, 'direction')) { - return { - direction: { - value: transition.direction.toLowerCase(), - type: 'string' - } - }; - } -}; -const easings = { - CUSTOM_CUBIC_BEZIER: {}, - LINEAR: { - type: 'linear', - easingFunctionCubicBezier: { - x1: 0, - y1: 0, - x2: 1, - y2: 1 - } - }, - EASE_IN: { - type: 'ease-in', - easingFunctionCubicBezier: { - x1: 0.41999998688697815, - y1: 0, - x2: 1, - y2: 1 - } - }, - EASE_OUT: { - type: 'ease-out', - easingFunctionCubicBezier: { - x1: 0, - y1: 0, - x2: 0.5799999833106995, - y2: 1 - } - }, - EASE_IN_AND_OUT: { - type: 'ease-in-out', - easingFunctionCubicBezier: { - x1: 0.41999998688697815, - y1: 0, - x2: 0.5799999833106995, - y2: 1 - } - }, - EASE_IN_BACK: { - type: 'ease-in-back', - easingFunctionCubicBezier: { - x1: 0.30000001192092896, - y1: -0.05000000074505806, - x2: 0.699999988079071, - y2: -0.5 - } - }, - EASE_OUT_BACK: { - type: 'ease-out-back', - easingFunctionCubicBezier: { - x1: 0.44999998807907104, - y1: 1.4500000476837158, - x2: 0.800000011920929, - y2: 1 - } - }, - EASE_IN_AND_OUT_BACK: { - type: 'ease-in-out-back', - easingFunctionCubicBezier: { - x1: 0.699999988079071, - y1: -0.4000000059604645, - x2: 0.4000000059604645, - y2: 1.399999976158142 - } - } -}; -const easing = (easing) => { - // abort if invalif easing type - if (!Object.hasOwnProperty.call(easings, easing.type)) { - return undefined; - } - // return custom easing - // @ts-ignore - if (easing.type === 'CUSTOM_CUBIC_BEZIER') { - easings.CUSTOM_CUBIC_BEZIER = { - type: 'cubic-bezier', - easingFunctionCubicBezier: { - x1: easing.easingFunctionCubicBezier.x1, - y1: easing.easingFunctionCubicBezier.y1, - x2: easing.easingFunctionCubicBezier.x2, - y2: easing.easingFunctionCubicBezier.y2 - } - }; - } - return { - easing: { - value: easings[easing.type].type, - type: 'string' - }, - easingFunction: { - x1: { - value: easings[easing.type].easingFunctionCubicBezier.x1, - type: 'number' - }, - x2: { - value: easings[easing.type].easingFunctionCubicBezier.x2, - type: 'number' - }, - y1: { - value: easings[easing.type].easingFunctionCubicBezier.y1, - type: 'number' - }, - y2: { - value: easings[easing.type].easingFunctionCubicBezier.y2, - type: 'number' - } - } - }; -}; -const extractMotion = (tokenNodes) => { - const nodeName = 'motion'; - // return as object - return tokenNodes - // only get motion nodes - .filter(node => node.name.substr(0, nodeName.length) === nodeName) - // filter to only include items which have a transition property - .filter(node => { - if (node.reactions.length > 0 && node.reactions[0].action.type === 'NODE' && node.reactions[0].action.transition !== null) { - return true; - } - return false; - }) - // retrieve values - .map((node) => ({ - name: node.name, - // @ts-ignore - description: node.description || null, - category: 'motion', - values: Object.assign(Object.assign({ type: { - value: node.reactions[0].action.transition.type.toLocaleLowerCase(), - type: 'string' - }, duration: { - value: Math.round((node.reactions[0].action.transition.duration + Number.EPSILON) * 1000) / 1000, - unit: 's', - type: 'number' - } }, easing(node.reactions[0].action.transition.easing)), direction(node.reactions[0].action.transition)) - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractMotion); -const __testing = { - easing: easing -}; - - -/***/ }), - -/***/ "./src/extractor/extractRadii.ts": -/*!***************************************!*\ - !*** ./src/extractor/extractRadii.ts ***! - \***************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/roundWithDecimals */ "./src/utilities/roundWithDecimals.ts"); - -const extractRadii = (tokenNodes) => { - const nodeName = 'radii'; - // get the type of the corner radius - const getRadiusType = radius => { - if (typeof radius === 'number') { - return 'single'; - } - return 'mixed'; - }; - // get the individual radii - const getRadii = (node) => ({ - topLeft: { - value: node.topLeftRadius || 0, - unit: 'pixel', - type: 'number' - }, - topRight: { - value: node.topRightRadius || 0, - unit: 'pixel', - type: 'number' - }, - bottomRight: { - value: node.bottomRightRadius || 0, - unit: 'pixel', - type: 'number' - }, - bottomLeft: { - value: node.bottomLeftRadius || 0, - unit: 'pixel', - type: 'number' - } - }); - // return as object - return tokenNodes.filter(node => node.name.substr(0, nodeName.length) === nodeName).map(node => ({ - name: node.name, - // @ts-ignore - description: node.description || null, - category: 'radius', - values: Object.assign(Object.assign({}, (typeof node.cornerRadius === 'number' && { - radius: { - value: node.cornerRadius, - unit: 'pixel', - type: 'number' - } - })), { radiusType: { - value: getRadiusType(node.cornerRadius), - type: 'string' - }, radii: getRadii(node), smoothing: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.cornerSmoothing, 2), - comment: 'Percent as decimal from 0.0 - 1.0', - type: 'number' - } }) - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractRadii); - - -/***/ }), - -/***/ "./src/extractor/extractSizes.ts": -/*!***************************************!*\ - !*** ./src/extractor/extractSizes.ts ***! - \***************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/roundWithDecimals */ "./src/utilities/roundWithDecimals.ts"); - -const extractSizes = (tokenNodes) => { - const nodeName = 'sizes'; - // return as object - return tokenNodes.filter(node => node.name.substr(0, nodeName.length) === nodeName).map(node => ({ - name: node.name, - // @ts-ignore - description: node.description || null, - category: 'size', - values: { - width: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.width, 2), - unit: 'pixel', - type: 'number' - }, - height: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.height, 2), - unit: 'pixel', - type: 'number' - } - } - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractSizes); - - -/***/ }), - -/***/ "./src/extractor/extractSpacing.ts": -/*!*****************************************!*\ - !*** ./src/extractor/extractSpacing.ts ***! - \*****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/roundWithDecimals */ "./src/utilities/roundWithDecimals.ts"); - -const extractSpacing = (tokenNodes) => { - const nodeName = 'spacing'; - // return as object - return tokenNodes.filter(node => node.name.substr(0, nodeName.length) === nodeName) - .map(node => ({ - name: node.name, - // @ts-ignore - description: node.description || null, - category: 'spacing', - values: { - top: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.paddingTop, 2), - unit: 'pixel', - type: 'number' - }, - right: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.paddingRight, 2), - unit: 'pixel', - type: 'number' - }, - bottom: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.paddingBottom, 2), - unit: 'pixel', - type: 'number' - }, - left: { - value: Object(_utilities_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(node.paddingLeft, 2), - unit: 'pixel', - type: 'number' - } - } - })); -}; -/* harmony default export */ __webpack_exports__["default"] = (extractSpacing); - - -/***/ }), - -/***/ "./src/index.ts": -/*!**********************!*\ - !*** ./src/index.ts ***! - \**********************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utilities_settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities/settings */ "./src/utilities/settings.ts"); -/* harmony import */ var _utilities_accessToken__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities/accessToken */ "./src/utilities/accessToken.ts"); -/* harmony import */ var _utilities_getJson__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities/getJson */ "./src/utilities/getJson.ts"); -/* harmony import */ var _utilities_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utilities/config */ "./src/utilities/config.ts"); -/* harmony import */ var _utilities_getVersionDifference__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utilities/getVersionDifference */ "./src/utilities/getVersionDifference.ts"); -/* harmony import */ var _utilities_getFileId__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utilities/getFileId */ "./src/utilities/getFileId.ts"); -var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - - - - - - -// initiate UI -figma.showUI(__html__, { - visible: false, - width: _utilities_config__WEBPACK_IMPORTED_MODULE_3__["default"].settingsDialog.width, - height: _utilities_config__WEBPACK_IMPORTED_MODULE_3__["default"].settingsDialog.height -}); -// Get the user settings -const userSettings = Object(_utilities_settings__WEBPACK_IMPORTED_MODULE_0__["getSettings"])(); -// --------------------------------- -// EXPORT TO FILE -// exports the design tokens to a file -if (figma.command === 'export') { - // write tokens to json file - figma.ui.postMessage({ - command: 'export', - data: { - filename: `${userSettings.filename}.json`, - data: Object(_utilities_getJson__WEBPACK_IMPORTED_MODULE_2__["default"])(figma, userSettings) - } - }); -} -// SEND TO URL -// send tokens to url -if (figma.command === 'urlExport') { - // needed for getAccessToken async - const urlExport = () => __awaiter(void 0, void 0, void 0, function* () { - figma.ui.postMessage({ - command: 'urlExport', - data: { - url: userSettings.serverUrl, - accessToken: yield Object(_utilities_accessToken__WEBPACK_IMPORTED_MODULE_1__["getAccessToken"])(Object(_utilities_getFileId__WEBPACK_IMPORTED_MODULE_5__["default"])(figma)), - acceptHeader: userSettings.acceptHeader, - authType: userSettings.authType, - data: { - event_type: userSettings.eventType, - client_payload: { - tokenFileName: `${userSettings.filename}.json`, - tokens: `${Object(_utilities_getJson__WEBPACK_IMPORTED_MODULE_2__["default"])(figma, userSettings, true)}`, - filename: figma.root.name - } - } - } - }); - }); - // run export url function - urlExport(); -} -// --------------------------------- -// SETTINGS -// settings for the design tokens -if (figma.command === 'settings') { - // wrap in function because of async client Storage - const openUi = () => __awaiter(void 0, void 0, void 0, function* () { - // get the current version differences to the last time the plugin was opened - const versionDifference = yield Object(_utilities_getVersionDifference__WEBPACK_IMPORTED_MODULE_4__["default"])(figma); - // resize UI if needed - if (versionDifference !== undefined && versionDifference !== 'patch') { - figma.ui.resize(_utilities_config__WEBPACK_IMPORTED_MODULE_3__["default"].settingsDialog.width, _utilities_config__WEBPACK_IMPORTED_MODULE_3__["default"].settingsDialog.height + 60); - } - // register the settings UI - figma.ui.show(); - // sent settings to UI - figma.ui.postMessage({ - command: 'getSettings', - settings: userSettings, - accessToken: yield Object(_utilities_accessToken__WEBPACK_IMPORTED_MODULE_1__["getAccessToken"])(Object(_utilities_getFileId__WEBPACK_IMPORTED_MODULE_5__["default"])(figma)), - versionDifference: versionDifference - }); - // @ts-ignore - figma.ui.show(); - }); - // run function - openUi(); -} -/** - * Open Help - * Open github help page - */ -if (figma.command === 'help') { - figma.ui.postMessage({ - command: 'help' - }); -} -/** - * React to messages - */ -figma.ui.onmessage = (message) => __awaiter(void 0, void 0, void 0, function* () { - /** - * on closePlugin - * close plugin and show notification if available - */ - if (message.command === 'closePlugin') { - // show notification if send - if (message.notification !== undefined && message.notification !== '') { - figma.notify(message.notification); - } - // close plugin - figma.ui.hide(); - figma.closePlugin(); - } - /** - * on saveSettings - * save settings, access token and close plugin - */ - if (message.command === 'saveSettings') { - // store settings - Object(_utilities_settings__WEBPACK_IMPORTED_MODULE_0__["setSettings"])(message.settings); - // accessToken - yield Object(_utilities_accessToken__WEBPACK_IMPORTED_MODULE_1__["setAccessToken"])(Object(_utilities_getFileId__WEBPACK_IMPORTED_MODULE_5__["default"])(figma), message.accessToken); - // close plugin - figma.closePlugin(); - } -}); - - -/***/ }), - -/***/ "./src/transformer/styleDictionaryTransformer.ts": -/*!*******************************************************!*\ - !*** ./src/transformer/styleDictionaryTransformer.ts ***! - \*******************************************************/ -/*! exports provided: default, __testing */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__testing", function() { return __testing; }); -/* harmony import */ var _utilities_convertColor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utilities/convertColor */ "./src/utilities/convertColor.ts"); -/* harmony import */ var _utilities_getDescription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities/getDescription */ "./src/transformer/utilities/getDescription.ts"); - - -const defaultTransformer = propertyGroupValues => { - // turn array with only one item into normal object - if (Array.isArray(propertyGroupValues) && propertyGroupValues.length === 1) { - propertyGroupValues = propertyGroupValues[0]; - } - // define object - const transformedProperties = {}; - // transform proeprties - Object.keys(propertyGroupValues).forEach(function (key) { - // if this is the final level - if (Object.prototype.hasOwnProperty.call(propertyGroupValues[key], 'value')) { - transformedProperties[key] = styleDictionaryFormat(propertyGroupValues[key]); - } - // if there is more nesting - else { - transformedProperties[key] = defaultTransformer(propertyGroupValues[key]); - } - }); - // if only one property is in object (e.g. only fill for color) - // return teh value of this property directly (e.g. color-blue: #0000AA instead of color-blue-fill: #0000AA) - if (Object.keys(transformedProperties).length === 1) { - return Object.values(transformedProperties)[0]; - } - // return transformed properties - return transformedProperties; -}; -const sizeTransformer = propertyGroupValues => { - return styleDictionaryFormat(propertyGroupValues.width); -}; -const categoryTransformer = { - default: defaultTransformer, - font: defaultTransformer, - border: defaultTransformer, - size: sizeTransformer, - grid: defaultTransformer, - effect: defaultTransformer, - radius: defaultTransformer, - fill: defaultTransformer -}; -const styleDictionaryConvertValue = (value, type) => { - if (value === undefined || value === null) { - return; - } - if (type === 'color') { - return Object(_utilities_convertColor__WEBPACK_IMPORTED_MODULE_0__["convertRgbaObjectToString"])(value); - } - return value; -}; -const styleDictionaryFormat = (property) => (Object.assign(Object.assign({ value: styleDictionaryConvertValue(property.value, property.type), type: property.type }, (property.description !== undefined && { comment: property.description })), (property.unit !== undefined && { unit: property.unit }))); -const propertyTransformer = (propertyGroup, category) => { - // if custom transformer is defined - if (Object.prototype.hasOwnProperty.call(categoryTransformer, propertyGroup.category)) { - return categoryTransformer[propertyGroup.category](propertyGroup.values); - } - // otherwise return with default transformer - return defaultTransformer(propertyGroup.values); -}; -const styleDictionaryTransformer = (propertyGroup) => { - // transform to amazon style Dictionary structure - const transformedProperties = propertyTransformer(propertyGroup, propertyGroup.category); - // return values - return Object.assign(Object.assign({ name: propertyGroup.name, category: propertyGroup.category }, Object(_utilities_getDescription__WEBPACK_IMPORTED_MODULE_1__["default"])(propertyGroup.description)), transformedProperties); -}; -/* harmony default export */ __webpack_exports__["default"] = (styleDictionaryTransformer); -const __testing = { - styleDictionaryConvertValue: styleDictionaryConvertValue, - sizeTransformer: sizeTransformer -}; - - -/***/ }), - -/***/ "./src/transformer/utilities/getDescription.ts": -/*!*****************************************************!*\ - !*** ./src/transformer/utilities/getDescription.ts ***! - \*****************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -const getDescription = (description, descriptionKey = 'comment') => { - // if valid description - if (description && typeof description === 'string' && description.length > 0) { - return { comment: description }; - } - // if invalid description return an empty object - return {}; -}; -/* harmony default export */ __webpack_exports__["default"] = (getDescription); - - -/***/ }), - -/***/ "./src/utilities/accessToken.ts": -/*!**************************************!*\ - !*** ./src/utilities/accessToken.ts ***! - \**************************************/ -/*! exports provided: getAccessToken, setAccessToken */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAccessToken", function() { return getAccessToken; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAccessToken", function() { return setAccessToken; }); -var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -/** - * @name getAccessToken - * @description returns the access token for the current file or undefined - * @param fileId {string} — ID of the current file - */ -const getAccessToken = (fileId) => __awaiter(void 0, void 0, void 0, function* () { - // get all access tokens - const accessTokens = yield figma.clientStorage.getAsync('accessTokens'); - // if access tokens object is present - if (accessTokens !== undefined && accessTokens instanceof Object) { - // retrieve the access token from the cache - const accessToken = accessTokens[fileId]; - // return the access token or an empty string - return accessToken || ''; - } - // return empty string if no token is stored - return ''; -}); -/** - * @name setAccessToken - * @description store the access token for the current fiven file in the user clientStorage - * @param fileId {string} — ID of the current file - * @param fileId {string} — access token - */ -/* istanbul ignore next */ -const setAccessToken = (fileId, accessToken) => __awaiter(void 0, void 0, void 0, function* () { - // get the access token object - const accessTokens = (yield figma.clientStorage.getAsync('accessTokens')) || {}; - // merge tokens - const mergedTokens = Object.assign(Object.assign({}, accessTokens), { [fileId]: accessToken }); - // merge the new token into the object - return yield figma.clientStorage.setAsync('accessTokens', mergedTokens); -}); - - - -/***/ }), - -/***/ "./src/utilities/buildFigmaData.ts": -/*!*****************************************!*\ - !*** ./src/utilities/buildFigmaData.ts ***! - \*****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _filterByNameProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filterByNameProperty */ "./src/utilities/filterByNameProperty.ts"); -/* harmony import */ var _getPaintStyles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getPaintStyles */ "./src/utilities/getPaintStyles.ts"); -/* harmony import */ var _getGridStyles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getGridStyles */ "./src/utilities/getGridStyles.ts"); -/* harmony import */ var _getTokenNodes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getTokenNodes */ "./src/utilities/getTokenNodes.ts"); -/* harmony import */ var _getTextStyles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getTextStyles */ "./src/utilities/getTextStyles.ts"); -/* harmony import */ var _getEffectStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getEffectStyles */ "./src/utilities/getEffectStyles.ts"); - - - - - - -/** - * @function buildFigmaData – return an object with all styles & frame to use for export - * @param {PluginAPI} figma — the figma PluginAPI object - * @param options – options object - */ -const buildFigmaData = (figma, options = { - prefix: '_', - excludePrefix: true -}) => { - // use spread operator because the original is readOnly - const tokenFrames = Object(_getTokenNodes__WEBPACK_IMPORTED_MODULE_3__["default"])([...figma.root.children]); - // get data from figma - return { - tokenFrames: tokenFrames, - paintStyles: Object(_getPaintStyles__WEBPACK_IMPORTED_MODULE_1__["default"])(figma.getLocalPaintStyles()).filter(Object(_filterByNameProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(options.prefix, options.excludePrefix)), - gridStyles: Object(_getGridStyles__WEBPACK_IMPORTED_MODULE_2__["default"])(figma.getLocalGridStyles()).filter(Object(_filterByNameProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(options.prefix, options.excludePrefix)), - textStyles: Object(_getTextStyles__WEBPACK_IMPORTED_MODULE_4__["default"])(figma.getLocalTextStyles()).filter(Object(_filterByNameProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(options.prefix, options.excludePrefix)), - effectStyles: Object(_getEffectStyles__WEBPACK_IMPORTED_MODULE_5__["default"])(figma.getLocalEffectStyles()).filter(Object(_filterByNameProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(options.prefix, options.excludePrefix)) - }; -}; -/* harmony default export */ __webpack_exports__["default"] = (buildFigmaData); - - -/***/ }), - -/***/ "./src/utilities/config.ts": -/*!*********************************!*\ - !*** ./src/utilities/config.ts ***! - \*********************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* istanbul ignore file */ -/* harmony default export */ __webpack_exports__["default"] = ({ - settingsDialog: { - width: 550, - height: 565 - }, - key: { - lastVersionSettingsOpened: 'lastVersionSettingsOpened', - fileId: 'fileId' - } -}); - - -/***/ }), - -/***/ "./src/utilities/convertColor.ts": -/*!***************************************!*\ - !*** ./src/utilities/convertColor.ts ***! - \***************************************/ -/*! exports provided: roundRgba, convertPaintToRgba, convertRgbaObjectToString */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "roundRgba", function() { return roundRgba; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertPaintToRgba", function() { return convertPaintToRgba; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertRgbaObjectToString", function() { return convertRgbaObjectToString; }); -/* harmony import */ var _roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./roundWithDecimals */ "./src/utilities/roundWithDecimals.ts"); - -const roundRgba = (rgba, opacity) => ({ - r: Object(_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(rgba.r * 255, 0), - g: Object(_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(rgba.g * 255, 0), - b: Object(_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(rgba.b * 255, 0), - a: Object(_roundWithDecimals__WEBPACK_IMPORTED_MODULE_0__["default"])(opacity || rgba.a || 1) -}); -const convertPaintToRgba = (paint) => { - if (paint.type === 'SOLID' && paint.visible === true) { - return roundRgba(paint.color, (paint.opacity || null)); - } - return null; -}; -const convertRgbaObjectToString = (rgbaObject) => `rgba(${rgbaObject.r}, ${rgbaObject.g}, ${rgbaObject.b}, ${rgbaObject.a})`; - - -/***/ }), - -/***/ "./src/utilities/deepMerge.ts": -/*!************************************!*\ - !*** ./src/utilities/deepMerge.ts ***! - \************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/** - * Performs a deep merge of `source` into `target`. - * Mutates `target` only but not its objects and arrays. - * - * @author inspired by [jhildenbiddle](https://stackoverflow.com/a/48218209). - */ -const deepMerge = (target, source) => { - // function to test if a variable is an object - const isObject = (obj) => obj && typeof obj === 'object'; - // make sure both the target and the source are objects - // otherwise return source - if (!isObject(target) || !isObject(source)) { - return source; - } - // iteratre over source - Object.keys(source).forEach(key => { - // get values from both target and source for the given key - const targetValue = target[key]; - const sourceValue = source[key]; - // merge both values - if (Array.isArray(targetValue) && Array.isArray(sourceValue)) { - target[key] = targetValue.concat(sourceValue); - } - else if (isObject(targetValue) && isObject(sourceValue)) { - target[key] = deepMerge(Object.assign({}, targetValue), sourceValue); - } - else { - target[key] = sourceValue; - } - }); - // return merge object - return target; -}; -/* harmony default export */ __webpack_exports__["default"] = (deepMerge); - - -/***/ }), - -/***/ "./src/utilities/extractTokenNodeValues.ts": -/*!*************************************************!*\ - !*** ./src/utilities/extractTokenNodeValues.ts ***! - \*************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _convertColor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./convertColor */ "./src/utilities/convertColor.ts"); - -/** - * Return an array of solid stroke colors - */ -const getSolidStrokes = (paints) => { - // clone without reference - return [...paints] - .map(paint => Object(_convertColor__WEBPACK_IMPORTED_MODULE_0__["convertPaintToRgba"])(paint)); -}; -/** - * extractTokenNodeValues - * @param node: SceneNode - * @returns node object - */ -const extractTokenNodeValues = (node) => ({ - name: node.name, - // @ts-ignore - description: node.description || undefined, - bottomLeftRadius: node.bottomLeftRadius, - bottomRightRadius: node.bottomRightRadius, - topLeftRadius: node.topLeftRadius, - topRightRadius: node.topRightRadius, - cornerRadius: node.cornerRadius || undefined, - cornerSmoothing: node.cornerSmoothing, - strokes: getSolidStrokes(node.strokes), - strokeWeight: node.strokeWeight, - strokeStyleId: node.strokeStyleId, - strokeMiterLimit: node.strokeMiterLimit, - strokeJoin: node.strokeJoin, - strokeCap: node.strokeCap, - dashPattern: node.dashPattern, - strokeAlign: node.strokeAlign, - width: node.width, - height: node.height, - reactions: node.reactions || undefined, - // @ts-ignore - paddingTop: node.paddingTop || 0, - // @ts-ignore - paddingRight: node.paddingRight || 0, - // @ts-ignore - paddingBottom: node.paddingBottom || 0, - // @ts-ignore - paddingLeft: node.paddingLeft || 0 -}); -/* harmony default export */ __webpack_exports__["default"] = (extractTokenNodeValues); - - -/***/ }), - -/***/ "./src/utilities/filterByNameProperty.ts": -/*!***********************************************!*\ - !*** ./src/utilities/filterByNameProperty.ts ***! - \***********************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -const filterByPropertyName = (prefix = '_', exclude = true) => { - return (object) => (object.name.trim().substr(0, prefix.length) !== prefix) === exclude; -}; -/* harmony default export */ __webpack_exports__["default"] = (filterByPropertyName); - - -/***/ }), - -/***/ "./src/utilities/getEffectStyles.ts": -/*!******************************************!*\ - !*** ./src/utilities/getEffectStyles.ts ***! - \******************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/** - * @function getEffectStyles - * @param {Array} styles – the effectStyle from the figma file - */ -const getEffectStyles = (styles) => { - // init styleArray - const styleArray = []; - // loop through Figma styles and add to array - styles.forEach(style => { - styleArray.push({ - name: style.name, - description: style.description, - effects: style.effects - }); - }); - // return array - return styleArray; -}; -/* harmony default export */ __webpack_exports__["default"] = (getEffectStyles); - - -/***/ }), - -/***/ "./src/utilities/getFileId.ts": -/*!************************************!*\ - !*** ./src/utilities/getFileId.ts ***! - \************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ "./src/utilities/config.ts"); - -const getFileId = (figma) => { - let fileId = figma.root.getPluginData(_config__WEBPACK_IMPORTED_MODULE_0__["default"].key.fileId); - // set plugin id if it does not exist - if (fileId === undefined || fileId === '') { - figma.root.setPluginData(_config__WEBPACK_IMPORTED_MODULE_0__["default"].key.fileId, figma.root.name + ' ' + Math.floor(Math.random() * 1000000000)); - // grab file ID - fileId = figma.root.getPluginData(_config__WEBPACK_IMPORTED_MODULE_0__["default"].key.fileId); - } - return fileId; -}; -/* harmony default export */ __webpack_exports__["default"] = (getFileId); - - -/***/ }), - -/***/ "./src/utilities/getGridStyles.ts": -/*!****************************************!*\ - !*** ./src/utilities/getGridStyles.ts ***! - \****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/** - * @function getGridStyles - * @param {Array} gridStyles – the gridStyles from the figma file - */ -const getGridStyles = (styles) => { - // init styleArray - const styleArray = []; - // loop through Figma styles and add to array - styles.forEach(style => { - styleArray.push({ - name: style.name, - description: style.description, - layoutGrids: style.layoutGrids - }); - }); - // return array - return styleArray; -}; -/* harmony default export */ __webpack_exports__["default"] = (getGridStyles); - - -/***/ }), - -/***/ "./src/utilities/getJson.ts": -/*!**********************************!*\ - !*** ./src/utilities/getJson.ts ***! - \**********************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _getTokenJson__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getTokenJson */ "./src/utilities/getTokenJson.ts"); -/* harmony import */ var _buildFigmaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buildFigmaData */ "./src/utilities/buildFigmaData.ts"); - - -/** - * @name getJson - * @param {PluginAPI} figma - * @param {boolean} stringify - */ -const getJson = (figma, userSettings, stringify = true) => { - // construct figma data object - const figmaData = Object(_buildFigmaData__WEBPACK_IMPORTED_MODULE_1__["default"])(figma, { - prefix: userSettings.prefix, - excludePrefix: userSettings.excludePrefix - }); - if (stringify === false) { - return Object(_getTokenJson__WEBPACK_IMPORTED_MODULE_0__["default"])(figmaData, 'styleDictionary', userSettings.nameConversion); - } - // get tokens as stringified json - return JSON.stringify(Object(_getTokenJson__WEBPACK_IMPORTED_MODULE_0__["default"])(figmaData, 'styleDictionary', userSettings.nameConversion)); -}; -/* harmony default export */ __webpack_exports__["default"] = (getJson); - - -/***/ }), - -/***/ "./src/utilities/getPaintStyles.ts": -/*!*****************************************!*\ - !*** ./src/utilities/getPaintStyles.ts ***! - \*****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/** - * @function getPaintStyles - * @param {Array} paintStyles – the paintStyles from the figma file (somehow still connected) - */ -const getPaintStyles = (styles) => { - // init styleArray - const styleArray = []; - // loop through Figma styles and add to array - styles.forEach(style => { - styleArray.push({ - name: style.name, - description: style.description, - paints: style.paints - }); - }); - // return array - return styleArray; -}; -/* harmony default export */ __webpack_exports__["default"] = (getPaintStyles); - - -/***/ }), - -/***/ "./src/utilities/getTextStyles.ts": -/*!****************************************!*\ - !*** ./src/utilities/getTextStyles.ts ***! - \****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/** - * @function getTextStyles - * @param {Array} styles – the paintStyles from the figma file (somehow still connected) - */ -const getTextStyles = (styles) => { - // init styleArray - const styleArray = []; - // loop through Figma styles and add to array - styles.forEach(style => { - styleArray.push({ - name: style.name, - description: style.description, - fontSize: style.fontSize, - textDecoration: style.textDecoration, - fontName: style.fontName, - letterSpacing: style.letterSpacing, - lineHeight: style.lineHeight, - paragraphIndent: style.paragraphIndent, - paragraphSpacing: style.paragraphSpacing, - textCase: style.textCase - }); - }); - // return array - return styleArray; -}; -/* harmony default export */ __webpack_exports__["default"] = (getTextStyles); - - -/***/ }), - -/***/ "./src/utilities/getTokenJson.ts": -/*!***************************************!*\ - !*** ./src/utilities/getTokenJson.ts ***! - \***************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _extractor_extractColors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../extractor/extractColors */ "./src/extractor/extractColors.ts"); -/* harmony import */ var _extractor_extractGrids__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../extractor/extractGrids */ "./src/extractor/extractGrids.ts"); -/* harmony import */ var _extractor_extractFonts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../extractor/extractFonts */ "./src/extractor/extractFonts.ts"); -/* harmony import */ var _extractor_extractEffects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../extractor/extractEffects */ "./src/extractor/extractEffects.ts"); -/* harmony import */ var _extractor_extractMotion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../extractor/extractMotion */ "./src/extractor/extractMotion.ts"); -/* harmony import */ var _extractor_extractSizes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../extractor/extractSizes */ "./src/extractor/extractSizes.ts"); -/* harmony import */ var _extractor_extractSpacing__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../extractor/extractSpacing */ "./src/extractor/extractSpacing.ts"); -/* harmony import */ var _extractor_extractBorders__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../extractor/extractBorders */ "./src/extractor/extractBorders.ts"); -/* harmony import */ var _extractor_extractRadii__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../extractor/extractRadii */ "./src/extractor/extractRadii.ts"); -/* harmony import */ var _extractor_extractBreakpoints__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../extractor/extractBreakpoints */ "./src/extractor/extractBreakpoints.ts"); -/* harmony import */ var _groupByName__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./groupByName */ "./src/utilities/groupByName.ts"); -/* harmony import */ var _transformer_styleDictionaryTransformer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../transformer/styleDictionaryTransformer */ "./src/transformer/styleDictionaryTransformer.ts"); - - - - - - - - - - - - -const transformer = { - styleDictionary: _transformer_styleDictionaryTransformer__WEBPACK_IMPORTED_MODULE_11__["default"] -}; -const exportRawTokenArray = (figmaData) => { - // get tokens - return [ - ...Object(_extractor_extractSizes__WEBPACK_IMPORTED_MODULE_5__["default"])(figmaData.tokenFrames), - ...Object(_extractor_extractBreakpoints__WEBPACK_IMPORTED_MODULE_9__["default"])(figmaData.tokenFrames), - ...Object(_extractor_extractSpacing__WEBPACK_IMPORTED_MODULE_6__["default"])(figmaData.tokenFrames), - ...Object(_extractor_extractBorders__WEBPACK_IMPORTED_MODULE_7__["default"])(figmaData.tokenFrames), - ...Object(_extractor_extractRadii__WEBPACK_IMPORTED_MODULE_8__["default"])(figmaData.tokenFrames), - ...Object(_extractor_extractMotion__WEBPACK_IMPORTED_MODULE_4__["default"])(figmaData.tokenFrames), - ...Object(_extractor_extractColors__WEBPACK_IMPORTED_MODULE_0__["default"])(figmaData.paintStyles), - ...Object(_extractor_extractGrids__WEBPACK_IMPORTED_MODULE_1__["default"])(figmaData.gridStyles), - ...Object(_extractor_extractFonts__WEBPACK_IMPORTED_MODULE_2__["default"])(figmaData.textStyles), - ...Object(_extractor_extractEffects__WEBPACK_IMPORTED_MODULE_3__["default"])(figmaData.effectStyles) - ]; -}; -const getTokenJson = (figmaData, format = 'styleDictionary', nameConversion = 'default') => { - // get token array - const tokenArray = exportRawTokenArray(figmaData); - // format tokens - const formattedTokens = tokenArray.map((token) => transformer[format](token)); - // group tokens - const groupedTokens = Object(_groupByName__WEBPACK_IMPORTED_MODULE_10__["default"])(formattedTokens, true, nameConversion); - // return group tokens - return groupedTokens; -}; -/* harmony default export */ __webpack_exports__["default"] = (getTokenJson); - - -/***/ }), - -/***/ "./src/utilities/getTokenNodes.ts": -/*!****************************************!*\ - !*** ./src/utilities/getTokenNodes.ts ***! - \****************************************/ -/*! exports provided: default, __testing */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__testing", function() { return __testing; }); -/* harmony import */ var _extractTokenNodeValues__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./extractTokenNodeValues */ "./src/utilities/extractTokenNodeValues.ts"); -/* harmony import */ var _isTokenNode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isTokenNode */ "./src/utilities/isTokenNode.ts"); - - -// the name that token frames have -const tokenFrameName = '_tokens'; -// check if a frame is a _token frame -const isTokenFrame = (node) => node.type === 'FRAME' && node.name.trim().toLowerCase().substr(0, tokenFrameName.length) === tokenFrameName; -// return only nodes that are frames -const getFrameNodes = (nodes) => [...nodes.map(page => page.findChildren(node => isTokenFrame(node))).reduce((flatten, arr) => [...flatten, ...arr])]; -/** - * getVariantName - * creates the variant name of the parent and child name - */ -const getVariantName = (parentName, childName) => { - // split into array - childName = childName.split(',') - // remove hidden names - .filter(part => !['_', '.'].includes(part.trim().substr(0, 1))) - // cleanup names, only return value part - .map(part => part.split('=')[1]) - // combine - .join('/'); - // return full name - return `${parentName}/${childName}`; -}; -/** - * Returns all frames from the file that have a name that starts with _tokens or the user defined token specifier - * - * @param pages PageNodes - */ -const getTokenNodes = (pages) => { - // get token frames - const tokenFrames = getFrameNodes(pages); - // get all children of token frames - return tokenFrames.map(frame => frame - // check if children are of valide types - .findAll( - /* istanbul ignore next */ - node => Object(_isTokenNode__WEBPACK_IMPORTED_MODULE_1__["default"])(node))) - // merges all children into one array - .reduce((flatten, arr) => [...flatten, ...arr], []) - // unpack variants & warn about deprecated types - .map((item) => { - if (item.type === 'RECTANGLE' || item.type === 'FRAME') { - console.warn('Please use only main components and variants, other types may be deprecated as tokens in the future'); - } - // unpack variants - if (item.type === 'COMPONENT_SET') { - // TODO: Name is overwriting real object in figma - // -> create clone and move to new array to return - return item.children.map((child) => (Object.assign(Object.assign({}, Object(_extractTokenNodeValues__WEBPACK_IMPORTED_MODULE_0__["default"])(child)), { name: getVariantName(item.name, child.name) }))); - } - // return normal item as array to unpack later - // @ts-ignore - return [Object(_extractTokenNodeValues__WEBPACK_IMPORTED_MODULE_0__["default"])(item)]; - }) - // merges the variant children into one array - .reduce((flatten, arr) => [...flatten, ...arr], []); -}; -/* harmony default export */ __webpack_exports__["default"] = (getTokenNodes); -const __testing = { - isTokenNode: _isTokenNode__WEBPACK_IMPORTED_MODULE_1__["default"], - isTokenFrame: isTokenFrame -}; - - -/***/ }), - -/***/ "./src/utilities/getVersionDifference.ts": -/*!***********************************************!*\ - !*** ./src/utilities/getVersionDifference.ts ***! - \***********************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _semVerDifference__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./semVerDifference */ "./src/utilities/semVerDifference.ts"); -/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./version */ "./src/utilities/version.ts"); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./config */ "./src/utilities/config.ts"); -var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; - - - -const getVersionDifference = (figma) => __awaiter(void 0, void 0, void 0, function* () { - // get version & version difference - const lastVersionSettingsOpened = yield figma.clientStorage.getAsync(_config__WEBPACK_IMPORTED_MODULE_2__["default"].key.lastVersionSettingsOpened); - const versionDifference = Object(_semVerDifference__WEBPACK_IMPORTED_MODULE_0__["default"])(_version__WEBPACK_IMPORTED_MODULE_1__["default"], lastVersionSettingsOpened); - // update version - if (!lastVersionSettingsOpened || lastVersionSettingsOpened !== _version__WEBPACK_IMPORTED_MODULE_1__["default"]) { - yield figma.clientStorage.setAsync(_config__WEBPACK_IMPORTED_MODULE_2__["default"].key.lastVersionSettingsOpened, _version__WEBPACK_IMPORTED_MODULE_1__["default"]); - } - // return version Difference - return versionDifference; -}); -/* harmony default export */ __webpack_exports__["default"] = (getVersionDifference); - - -/***/ }), - -/***/ "./src/utilities/groupByName.ts": -/*!**************************************!*\ - !*** ./src/utilities/groupByName.ts ***! - \**************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _deepMerge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deepMerge */ "./src/utilities/deepMerge.ts"); -/* harmony import */ var _utilities_transformName__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utilities/transformName */ "./src/utilities/transformName.ts"); - - -// create a nested object structure from the array (['style','colors','main','red']) -const nestedObjectFromArray = (array, value) => { - // reducer - const reducer = (val, key) => ({ [key]: val }); - // return reduced array - return array.reduceRight(reducer, value); -}; -const groupByName = (tokenArray, removeName = true, nameConversion = 'default') => { - // nest tokens into object with hierachy defined by name using / - const groupedTokens = tokenArray.map(token => { - // split token name into array - // remove leading and following whitespace for every item - // transform items to lowerCase - const groupsFromName = token.name.split('/').map(group => Object(_utilities_transformName__WEBPACK_IMPORTED_MODULE_1__["default"])(group, nameConversion)); - // remove name if not otherwise specified - if (removeName === true) { - delete token.name; - } - // return - return nestedObjectFromArray(groupsFromName, token); - }); - if (groupedTokens.length > 0) { - // return merged object of tokens grouped by name hierachy - return groupedTokens.reduce((accumulator = {}, currentValue) => Object(_deepMerge__WEBPACK_IMPORTED_MODULE_0__["default"])(accumulator, currentValue)); - } - return []; -}; -/* harmony default export */ __webpack_exports__["default"] = (groupByName); - - -/***/ }), - -/***/ "./src/utilities/isTokenNode.ts": -/*!**************************************!*\ - !*** ./src/utilities/isTokenNode.ts ***! - \**************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// the node types that can be used for tokens -const tokenNodeTypes = [ - 'COMPONENT', - 'COMPONENT_SET', - 'RECTANGLE', - 'FRAME' -]; -/** - * check if a node is a valid token node type - * Currently: 'COMPONENT', 'FRAME or 'RECTANGLE' - * @param SceneNode node - */ -const isTokenNode = (node) => { - return node.parent.type !== 'COMPONENT_SET' && tokenNodeTypes.includes(node.type); -}; -/* harmony default export */ __webpack_exports__["default"] = (isTokenNode); - - -/***/ }), - -/***/ "./src/utilities/roundWithDecimals.ts": -/*!********************************************!*\ - !*** ./src/utilities/roundWithDecimals.ts ***! - \********************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/** - * If the provided value is a number - * it is rounded to 3 decimal positions - * otherwise it is returned as is - * @param value number - * @param decimalPlaces int - */ -const roundWithDecimals = (value, decimalPlaces = 2) => { - // exit if value is undefined - if (value === undefined) { - return; - } - // check for correct inputs - if (typeof value !== 'number' || typeof decimalPlaces !== 'number') { - throw new Error(`Invalid parameters, both value "${value}" (${typeof value}) and decimalPlaces "${decimalPlaces}" (${typeof decimalPlaces}) must be of type number`); - } - // set decimal places - const factorOfTen = Math.pow(10, decimalPlaces); - // round result and return - return Math.round(value * factorOfTen) / factorOfTen; -}; -/* harmony default export */ __webpack_exports__["default"] = (roundWithDecimals); - - -/***/ }), - -/***/ "./src/utilities/semVerDifference.ts": -/*!*******************************************!*\ - !*** ./src/utilities/semVerDifference.ts ***! - \*******************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ((currentSemVer, prevSemVers = '1.0.0') => { - const [pMajor, pMinor, pPatch] = prevSemVers.split('.'); - const [cMajor, cMinor, cPatch] = currentSemVer.split('.'); - if (pMajor < cMajor) { - return 'major'; - } - if (pMinor < cMinor) { - return 'minor'; - } - if (pPatch < cPatch) { - return 'patch'; - } -}); - - -/***/ }), - -/***/ "./src/utilities/settings.ts": -/*!***********************************!*\ - !*** ./src/utilities/settings.ts ***! - \***********************************/ -/*! exports provided: settingsKey, getSettings, setSettings, __testing */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settingsKey", function() { return settingsKey; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSettings", function() { return getSettings; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setSettings", function() { return setSettings; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__testing", function() { return __testing; }); -/* harmony import */ var _settingsDefault__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settingsDefault */ "./src/utilities/settingsDefault.ts"); - -const settingsKey = 'settings'; -/** - * Function sanitizes and prepares settings to be stored - * @param newSettings - * @param currentSettings - */ -const settingsPrepare = (newSettings, currentSettings) => { - // initialize object - const mergedSettings = {}; - // add public settings - for (const [key, value] of Object.entries(_settingsDefault__WEBPACK_IMPORTED_MODULE_0__["default"])) { - // avoid empty values - if (typeof value.default === 'string' && value.empty === false) { - if (newSettings[key].trim() === '') { - newSettings[key] = currentSettings[key] || value.default; - } - } - // if valid new settings - if (typeof newSettings[key] === typeof value.default) { - mergedSettings[key] = newSettings[key]; - } - // if valid current settings - else if (typeof currentSettings[key] === typeof value.default) { - mergedSettings[key] = currentSettings[key]; - } - else { - // if both new and old value don't fit, use default - mergedSettings[key] = value.default; - } - } - // return merged settings object - return mergedSettings; -}; -/** - * get the current users settings - * for settings that are not set, the defaults will be used - * @return object - */ -const getSettings = () => { - let userSettings = figma.root.getPluginData(settingsKey); - if (userSettings.length > 0) { - userSettings = JSON.parse(userSettings); - } - else { - userSettings = undefined; - } - // init settings object - const settings = {}; - // fill with user settings or defaults - Object.entries(_settingsDefault__WEBPACK_IMPORTED_MODULE_0__["default"]).forEach(([key, value]) => { - if (userSettings !== undefined && userSettings[key] !== undefined) { - return settings[key] = userSettings[key]; - } - return settings[key] = value.default; - }); - return settings; -}; -/** - * @name saveSettings - * @description save the user settings to the "cache" - * @param {UserSettings} settings - */ -const setSettings = (settings) => { - settings = settingsPrepare(settings, getSettings()); - // store public settings that should be shared across org - figma.root.setPluginData(settingsKey, JSON.stringify(settings, null, 2)); -}; -// exports - -const __testing = { - settingsPrepare: settingsPrepare -}; - - -/***/ }), - -/***/ "./src/utilities/settingsDefault.ts": -/*!******************************************!*\ - !*** ./src/utilities/settingsDefault.ts ***! - \******************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* istanbul ignore file */ -// settings structure & default values -/* harmony default export */ __webpack_exports__["default"] = ({ - filename: { - default: 'design-tokens', - empty: false - }, - nameConversion: { - default: 'default', - empty: false - }, - excludePrefix: { - default: true, - empty: false - }, - prefix: { - default: '_', - empty: false - }, - serverUrl: { - default: '', - empty: true - }, - eventType: { - default: 'update-tokens', - empty: false - }, - acceptHeader: { - default: 'application/vnd.github.everest-preview+json', - empty: true - }, - authType: { - default: 'token', - empty: false - } -}); - - -/***/ }), - -/***/ "./src/utilities/transformName.ts": -/*!****************************************!*\ - !*** ./src/utilities/transformName.ts ***! - \****************************************/ -/*! exports provided: default, __testing */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__testing", function() { return __testing; }); -const returnOrThrow = (convertedString, originalString, stringCase) => { - // return converted string if successful - if (typeof convertedString === 'string' && convertedString !== '') { - return convertedString; - } - // throw error - throw new Error(`converting "${originalString}" to ${stringCase}, resulting in "${convertedString}"`); -}; -const toCamelCase = (string) => { - const convertedString = string.toLowerCase() - .replace(/['"]/g, '') - .replace(/([-_ ]){1,}/g, ' ') - .replace(/\W+/g, ' ') - .trim() - .replace(/ (.)/g, function ($1) { return $1.toUpperCase(); }) - .replace(/ /g, ''); - // return or throw - return returnOrThrow(convertedString, string, 'camelCase'); -}; -const toKebabCase = (string) => { - const convertedString = string.toLowerCase() - .replace(/['"]/g, '') - .replace(/([-_ ]){1,}/g, ' ') - .replace(/\W+/g, ' ') - .trim() - .replace(/ /g, '-'); - // return or throw - return returnOrThrow(convertedString, string, 'kebabCase'); -}; -const transformName = (name, nameConversion = 'default') => { - // if camelCase - if (nameConversion === 'camelCase') { - return toCamelCase(name); - } - // if kebabCase - if (nameConversion === 'kebabCase') { - return toKebabCase(name); - } - return name.trim().toLowerCase(); -}; -/* harmony default export */ __webpack_exports__["default"] = (transformName); -const __testing = { - toCamelCase: toCamelCase, - toKebabCase: toKebabCase -}; - - -/***/ }), - -/***/ "./src/utilities/version.ts": -/*!**********************************!*\ - !*** ./src/utilities/version.ts ***! - \**********************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* istanbul ignore file */ -const version = '4.0.0'; -/* harmony default export */ __webpack_exports__["default"] = (version); - - -/***/ }) - -/******/ }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V4dHJhY3Rvci9leHRyYWN0Qm9yZGVycy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvZXh0cmFjdG9yL2V4dHJhY3RCcmVha3BvaW50cy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvZXh0cmFjdG9yL2V4dHJhY3RDb2xvcnMudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V4dHJhY3Rvci9leHRyYWN0RWZmZWN0cy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvZXh0cmFjdG9yL2V4dHJhY3RGb250cy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvZXh0cmFjdG9yL2V4dHJhY3RHcmlkcy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvZXh0cmFjdG9yL2V4dHJhY3RNb3Rpb24udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V4dHJhY3Rvci9leHRyYWN0UmFkaWkudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V4dHJhY3Rvci9leHRyYWN0U2l6ZXMudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V4dHJhY3Rvci9leHRyYWN0U3BhY2luZy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3RyYW5zZm9ybWVyL3N0eWxlRGljdGlvbmFyeVRyYW5zZm9ybWVyLnRzIiwid2VicGFjazovLy8uL3NyYy90cmFuc2Zvcm1lci91dGlsaXRpZXMvZ2V0RGVzY3JpcHRpb24udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWxpdGllcy9hY2Nlc3NUb2tlbi50cyIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbGl0aWVzL2J1aWxkRmlnbWFEYXRhLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvY29uZmlnLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvY29udmVydENvbG9yLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvZGVlcE1lcmdlLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvZXh0cmFjdFRva2VuTm9kZVZhbHVlcy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbGl0aWVzL2ZpbHRlckJ5TmFtZVByb3BlcnR5LnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvZ2V0RWZmZWN0U3R5bGVzLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvZ2V0RmlsZUlkLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvZ2V0R3JpZFN0eWxlcy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbGl0aWVzL2dldEpzb24udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWxpdGllcy9nZXRQYWludFN0eWxlcy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbGl0aWVzL2dldFRleHRTdHlsZXMudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWxpdGllcy9nZXRUb2tlbkpzb24udHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWxpdGllcy9nZXRUb2tlbk5vZGVzLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvZ2V0VmVyc2lvbkRpZmZlcmVuY2UudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWxpdGllcy9ncm91cEJ5TmFtZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbGl0aWVzL2lzVG9rZW5Ob2RlLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvcm91bmRXaXRoRGVjaW1hbHMudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWxpdGllcy9zZW1WZXJEaWZmZXJlbmNlLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvc2V0dGluZ3MudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWxpdGllcy9zZXR0aW5nc0RlZmF1bHQudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3V0aWxpdGllcy90cmFuc2Zvcm1OYW1lLnRzIiwid2VicGFjazovLy8uL3NyYy91dGlsaXRpZXMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO1FBQUE7UUFD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Q0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhFQUE4RTtBQUM5RTtBQUNBO0FBQ0EsS0FBSyxFQUFFO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsS0FBSztBQUNOO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSywrQkFBK0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNlLDJFQUFZLEVBQUM7Ozs7Ozs7Ozs7Ozs7QUN2RDVCO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFD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QSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7Ozs7Ozs7Ozs7Ozs7QUNuQ0Y7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxlQUFlLE9BQU8sV0FBVyxrQkFBa0IsZ0JBQWdCO0FBQ3RHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLEdBQUc7QUFDN0I7QUFDQTtBQUNBLHlDQUF5Qyx5QkFBeUIsRUFBRTtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixHQUFHO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZSw0RUFBYSxFQUFDO0FBQ3RCO0FBQ1A7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O0FDNUNBO0FBQUE7QUFDQTtBQUNlLHNFQUFPLEVBQUMiLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IFwiLi9zcmMvaW5kZXgudHNcIik7XG4iLCJpbXBvcnQgcm91bmRXaXRoRGVjaW1hbHMgZnJvbSAnLi4vdXRpbGl0aWVzL3JvdW5kV2l0aERlY2ltYWxzJztcbmNvbnN0IHN0cm9rZUpvaW5zID0ge1xuICAgIE1JVEVSOiAnbWl0ZXInLFxuICAgIEJFVkVMOiAnYmV2ZWwnLFxuICAgIFJPVU5EOiAncm91bmQnXG59O1xuY29uc3Qgc3Ryb2tlQWxpZ25zID0ge1xuICAgIENFTlRFUjogJ2NlbnRlcicsXG4gICAgSU5TSURFOiAnaW5zaWRlJyxcbiAgICBPVVRTSURFOiAnb3V0c2lkZSdcbn07XG5jb25zdCBleHRyYWN0Qm9yZGVycyA9ICh0b2tlbk5vZGVzKSA9PiB7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSAnYm9yZGVycyc7XG4gICAgLy8gcmV0dXJuIGFzIG9iamVjdFxuICAgIHJldHVybiB0b2tlbk5vZGVzXG4gICAgICAgIC8vIG9ubHkgZ2V0IGJvcmRlciBub2Rlc1xuICAgICAgICAuZmlsdGVyKG5vZGUgPT4gbm9kZS5uYW1lLnN1YnN0cigwLCBub2RlTmFtZS5sZW5ndGgpID09PSBub2RlTmFtZSlcbiAgICAgICAgLy8gcmVtb3ZlIG5vZGVzIHdpdGggbm8gYm9yZGVyIHByb3BlcnR5XG4gICAgICAgIC5maWx0ZXIobm9kZSA9PiBub2RlLnN0cm9rZXMubGVuZ3RoID4gMClcbiAgICAgICAgLy8gY29udmVydCBib3JkZXJzXG4gICAgICAgIC5tYXAobm9kZSA9PiAoe1xuICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgIGNhdGVnb3J5OiAnYm9yZGVyJyxcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBkZXNjcmlwdGlvbjogbm9kZS5kZXNjcmlwdGlvbiB8fCBudWxsLFxuICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgIHN0cm9rZUFsaWduOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHN0cm9rZUFsaWduc1tub2RlLnN0cm9rZUFsaWduXSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRhc2hQYXR0ZXJuOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG5vZGUuZGFzaFBhdHRlcm4udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0cm9rZUNhcDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAoKHR5cGVvZiBub2RlLnN0cm9rZUNhcCA9PT0gJ3N0cmluZycpID8gbm9kZS5zdHJva2VDYXAudG9Mb3dlckNhc2UoKSA6ICdtaXhlZCcpLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3Ryb2tlSm9pbjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBzdHJva2VKb2luc1tub2RlLnN0cm9rZUpvaW5dLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3Ryb2tlTWl0ZXJMaW1pdDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByb3VuZFdpdGhEZWNpbWFscyhub2RlLnN0cm9rZU1pdGVyTGltaXQpLFxuICAgICAgICAgICAgICAgIHVuaXQ6ICdkZWdyZWUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gc3Ryb2tlU3R5bGVJZDoge1xuICAgICAgICAgICAgLy8gICB2YWx1ZTogbm9kZS5zdHJva2VTdHlsZUlkXG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgc3Ryb2tlV2VpZ2h0OiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG5vZGUuc3Ryb2tlV2VpZ2h0LFxuICAgICAgICAgICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHJva2U6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogbm9kZS5zdHJva2VzWzBdLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdjb2xvcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBleHRyYWN0Qm9yZGVycztcbiIsImltcG9ydCByb3VuZFdpdGhEZWNpbWFscyBmcm9tICcuLi91dGlsaXRpZXMvcm91bmRXaXRoRGVjaW1hbHMnO1xuY29uc3QgZXh0cmFjdEJyZWFrcG9pbnRzID0gKHRva2VuTm9kZXMpID0+IHtcbiAgICBjb25zdCBub2RlTmFtZSA9ICdicmVha3BvaW50cyc7XG4gICAgLy8gcmV0dXJuIGFzIG9iamVjdFxuICAgIHJldHVybiB0b2tlbk5vZGVzLmZpbHRlcihub2RlID0+IG5vZGUubmFtZS5zdWJzdHIoMCwgbm9kZU5hbWUubGVuZ3RoKSA9PT0gbm9kZU5hbWUpLm1hcChub2RlID0+ICh7XG4gICAgICAgIG5hbWU6IG5vZGUubmFtZSxcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBkZXNjcmlwdGlvbjogbm9kZS5kZXNjcmlwdGlvbiB8fCBudWxsLFxuICAgICAgICBjYXRlZ29yeTogJ2JyZWFrcG9pbnQnLFxuICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgIHdpZHRoOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHJvdW5kV2l0aERlY2ltYWxzKG5vZGUud2lkdGgsIDIpLFxuICAgICAgICAgICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBleHRyYWN0QnJlYWtwb2ludHM7XG4iLCJpbXBvcnQgeyBjb252ZXJ0UGFpbnRUb1JnYmEsIHJvdW5kUmdiYSB9IGZyb20gJy4uL3V0aWxpdGllcy9jb252ZXJ0Q29sb3InO1xuaW1wb3J0IHJvdW5kV2l0aERlY2ltYWxzIGZyb20gJy4uL3V0aWxpdGllcy9yb3VuZFdpdGhEZWNpbWFscyc7XG5jb25zdCBncmFkaWVudFR5cGUgPSB7XG4gICAgR1JBRElFTlRfTElORUFSOiAnbGluZWFyJyxcbiAgICBHUkFESUVOVF9SQURJQUw6ICdyYWRpYWwnLFxuICAgIEdSQURJRU5UX0FOR1VMQVI6ICdhbmd1bGFyJyxcbiAgICBHUkFESUVOVF9ESUFNT05EOiAnZGlhbW9uZCdcbn07XG5jb25zdCBleHRyYWN0RmlsbHMgPSAocGFpbnQpID0+IHtcbiAgICBpZiAocGFpbnQudHlwZSA9PT0gJ1NPTElEJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmlsbDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBjb252ZXJ0UGFpbnRUb1JnYmEocGFpbnQpLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdjb2xvcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKFsnR1JBRElFTlRfTElORUFSJywgJ0dSQURJRU5UX1JBRElBTCcsICdHUkFESUVOVF9BTkdVTEFSJywgJ0dSQURJRU5UX0RJQU1PTkQnXS5pbmNsdWRlcyhwYWludC50eXBlKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JhZGllbnRUeXBlOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGdyYWRpZW50VHlwZVtwYWludC50eXBlXSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0b3BzOiBwYWludC5ncmFkaWVudFN0b3BzLm1hcChzdG9wID0+ICh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvdW5kV2l0aERlY2ltYWxzKHN0b3AucG9zaXRpb24pLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvdW5kUmdiYShzdG9wLmNvbG9yKSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbG9yJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIG9wYWNpdHk6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcm91bmRXaXRoRGVjaW1hbHMocGFpbnQub3BhY2l0eSksXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy8gcmV0dXJuIG51bGwgaWYgbm8gbWF0Y2hpbmcgdHlwZVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIG51bGw7XG59O1xuY29uc3QgZXh0cmFjdENvbG9ycyA9ICh0b2tlbk5vZGVzKSA9PiB7XG4gICAgLy8gZ2V0IGFsbCBwYWludCBzdHlsZXNcbiAgICByZXR1cm4gdG9rZW5Ob2Rlc1xuICAgICAgICAvLyByZW1vdmUgaW1hZ2VzIGZpbGxzIGZyb20gdG9rZW5zXG4gICAgICAgIC5tYXAobm9kZSA9PiB7XG4gICAgICAgIG5vZGUucGFpbnRzID0gbm9kZS5wYWludHMuZmlsdGVyKHBhaW50ID0+IHBhaW50LnR5cGUgIT09ICdJTUFHRScpO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9KVxuICAgICAgICAvLyByZW1vdmUgdG9rZW5zIHdpdGggbm8gZmlsbFxuICAgICAgICAuZmlsdGVyKG5vZGUgPT4gbm9kZS5wYWludHMubGVuZ3RoID4gMClcbiAgICAgICAgLy8gdHJhbnNmb3JtIHN0eWxlXG4gICAgICAgIC5tYXAobm9kZSA9PiAoe1xuICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgIC8vIGlkOiBub2RlLmlkLFxuICAgICAgICBkZXNjcmlwdGlvbjogbm9kZS5kZXNjcmlwdGlvbiB8fCBudWxsLFxuICAgICAgICBjYXRlZ29yeTogJ2ZpbGwnLFxuICAgICAgICB2YWx1ZXM6IG5vZGUucGFpbnRzLm1hcChwYWludCA9PiBleHRyYWN0RmlsbHMocGFpbnQpKVxuICAgIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBleHRyYWN0Q29sb3JzO1xuIiwiaW1wb3J0IHsgcm91bmRSZ2JhIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbnZlcnRDb2xvcic7XG5jb25zdCBlZmZlY3RUeXBlID0ge1xuICAgIExBWUVSX0JMVVI6ICdsYXllckJsdXInLFxuICAgIEJBQ0tHUk9VTkRfQkxVUjogJ2JhY2tncm91bmRCbHVyJyxcbiAgICBEUk9QX1NIQURPVzogJ2Ryb3BTaGFkb3cnLFxuICAgIElOTkVSX1NIQURPVzogJ2lubmVyU2hhZG93J1xufTtcbmNvbnN0IGJsdXJWYWx1ZXMgPSAoZWZmZWN0KSA9PiAoe1xuICAgIHR5cGU6IHtcbiAgICAgICAgdmFsdWU6IGVmZmVjdFR5cGVbZWZmZWN0LnR5cGVdLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgIH0sXG4gICAgcmFkaXVzOiB7XG4gICAgICAgIHZhbHVlOiBlZmZlY3QucmFkaXVzLFxuICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgIH1cbn0pO1xuY29uc3Qgc2hhZG93VmFsdWVzID0gZWZmZWN0ID0+ICh7XG4gICAgdHlwZToge1xuICAgICAgICB2YWx1ZTogZWZmZWN0VHlwZVtlZmZlY3QudHlwZV0sXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnXG4gICAgfSxcbiAgICByYWRpdXM6IHtcbiAgICAgICAgdmFsdWU6IGVmZmVjdC5yYWRpdXMsXG4gICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgfSxcbiAgICBjb2xvcjoge1xuICAgICAgICB2YWx1ZTogcm91bmRSZ2JhKGVmZmVjdC5jb2xvciksXG4gICAgICAgIHR5cGU6ICdjb2xvcidcbiAgICB9LFxuICAgIG9mZnNldDoge1xuICAgICAgICB4OiB7XG4gICAgICAgICAgICB2YWx1ZTogZWZmZWN0Lm9mZnNldC54LFxuICAgICAgICAgICAgdW5pdDogJ3BpeGVsJyxcbiAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICAgIHZhbHVlOiBlZmZlY3Qub2Zmc2V0LnksXG4gICAgICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc3ByZWFkOiB7XG4gICAgICAgIHZhbHVlOiBlZmZlY3Quc3ByZWFkLFxuICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgIH1cbn0pO1xuY29uc3QgZXh0cmFjdEVmZmVjdHMgPSAodG9rZW5Ob2RlcykgPT4ge1xuICAgIC8vIGdldCBlZmZlY3Qgc3R5bGVzXG4gICAgcmV0dXJuIHRva2VuTm9kZXMubWFwKG5vZGUgPT4gKHtcbiAgICAgICAgbmFtZTogbm9kZS5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogbm9kZS5kZXNjcmlwdGlvbiB8fCBudWxsLFxuICAgICAgICBjYXRlZ29yeTogJ2VmZmVjdCcsXG4gICAgICAgIHZhbHVlczogbm9kZS5lZmZlY3RzLm1hcCgoZWZmZWN0KSA9PiBlZmZlY3QudHlwZSA9PT0gJ0xBWUVSX0JMVVInIHx8IGVmZmVjdC50eXBlID09PSAnQkFDS0dST1VORF9CTFVSJ1xuICAgICAgICAgICAgPyBibHVyVmFsdWVzKGVmZmVjdClcbiAgICAgICAgICAgIDogc2hhZG93VmFsdWVzKGVmZmVjdCkpXG4gICAgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IGV4dHJhY3RFZmZlY3RzO1xuIiwiaW1wb3J0IHJvdW5kV2l0aERlY2ltYWxzIGZyb20gJy4uL3V0aWxpdGllcy9yb3VuZFdpdGhEZWNpbWFscyc7XG5jb25zdCB0ZXh0RGVjb3JhdGlvbnMgPSB7XG4gICAgTk9ORTogJ25vbmUnLFxuICAgIFVOREVSTElORTogJ3VuZGVybGluZScsXG4gICAgU1RSSUtFVEhST1VHSDogJ2xpbmUtdGhyb3VnaCdcbn07XG5jb25zdCB0ZXh0Q2FzZXMgPSB7XG4gICAgT1JJR0lOQUw6ICdub25lJyxcbiAgICBVUFBFUjogJ3VwcGVyY2FzZScsXG4gICAgTE9XRVI6ICdsb3dlcmNhc2UnLFxuICAgIFRJVExFOiAnY2FwaXRhbGl6ZSdcbn07XG5jb25zdCBmb250V2VpZ2h0cyA9IHtcbiAgICB0aGluOiAxMDAsXG4gICAgZXh0cmFsaWdodDogMjAwLFxuICAgIHVsdHJhbGlnaHQ6IDIwMCxcbiAgICBsaWdodDogMzAwLFxuICAgIG5vcm1hbDogNDAwLFxuICAgIHJlZ3VsYXI6IDQwMCxcbiAgICBtZWRpdW06IDUwMCxcbiAgICBzZW1pYm9sZDogNjAwLFxuICAgIGRlbWlib2xkOiA2MDAsXG4gICAgYm9sZDogNzAwLFxuICAgIGV4dHJhYm9sZDogODAwLFxuICAgIHVsdGFib2xkOiA4MDAsXG4gICAgYmxhY2s6IDkwMCxcbiAgICBoZWF2eTogOTAwLFxuICAgIHN1cGVyOiA5MDBcbn07XG5jb25zdCBmb250U3RyZXRjaCA9IHtcbiAgICBub3JtYWw6ICdub3JtYWwnLFxuICAgIGNvbmRlbnNlZDogJ2NvbmRlbnNlZCcsXG4gICAgZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICAgZXh0ZW5kZWQ6ICdleHBhbmRlZCdcbn07XG5jb25zdCBmb250U3R5bGVzID0ge1xuICAgIG5vcm1hbDogJ25vcm1hbCcsXG4gICAgaXRhbGljOiAnaXRhbGljJyxcbiAgICBvYmxpcXVlOiAnb2JsaXF1ZSdcbn07XG5jb25zdCBwYXJzZUZvbnRXZWlnaHQgPSAoZm9udFN0eWxlKSA9PiB7XG4gICAgY29uc3QgcGFydHMgPSBmb250U3R5bGUudG9Mb3dlckNhc2UoKS5zcGxpdCgnICcpO1xuICAgIGxldCB3ZWlnaHQgPSBwYXJ0c1swXTtcbiAgICAvLyBtZXJnZSBpZiBzcGFjZSBhZnRlciBleHRyYVxuICAgIGlmIChbJ2V4dHJhJywgJ3VsdHJhJywgJ3NlbWknLCAnZGVtaSddLmluY2x1ZGVzKHBhcnRzWzBdKSAmJiBbJ2JvbGQnLCAnbGlnaHQnXS5pbmNsdWRlcyhwYXJ0c1sxXSkpIHtcbiAgICAgICAgd2VpZ2h0ID0gYCR7cGFydHNbMF19JHtwYXJ0c1sxXX1gO1xuICAgIH1cbiAgICByZXR1cm4gZm9udFdlaWdodHNbd2VpZ2h0XSB8fCA0MDA7XG59O1xuY29uc3QgcGFyc2VGb250U3RyZXRjaCA9IChmb250U3R5bGUpID0+IHtcbiAgICBjb25zdCBwYXJ0cyA9IGZvbnRTdHlsZS50b0xvd2VyQ2FzZSgpLnNwbGl0KCcgJyk7XG4gICAgcmV0dXJuIGZvbnRTdHJldGNoW3BhcnRzW3BhcnRzLmxlbmd0aCAtIDFdXSB8fCBmb250U3RyZXRjaFtwYXJ0c1twYXJ0cy5sZW5ndGggLSAyXV0gfHwgJ25vcm1hbCc7XG59O1xuY29uc3QgcGFyc2VGb250U3R5bGUgPSAoZm9udFN0eWxlKSA9PiB7XG4gICAgY29uc3QgcGFydCA9IGZvbnRTdHlsZS50b0xvd2VyQ2FzZSgpLnNwbGl0KCcgJykucG9wKCk7XG4gICAgcmV0dXJuIGZvbnRTdHlsZXNbcGFydF0gfHwgJ25vcm1hbCc7XG59O1xuY29uc3QgZXh0cmFjdEZvbnRzID0gKHRva2VuTm9kZXMpID0+IHtcbiAgICAvLyBnZXQgcmF3IHRleHQgc3R5bGVzXG4gICAgcmV0dXJuIHRva2VuTm9kZXMubWFwKG5vZGUgPT4gKHtcbiAgICAgICAgbmFtZTogbm9kZS5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogbm9kZS5kZXNjcmlwdGlvbiB8fCB1bmRlZmluZWQsXG4gICAgICAgIGNhdGVnb3J5OiAnZm9udCcsXG4gICAgICAgIHZhbHVlczoge1xuICAgICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogbm9kZS5mb250U2l6ZSxcbiAgICAgICAgICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGV4dERlY29yYXRpb246IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGV4dERlY29yYXRpb25zW25vZGUudGV4dERlY29yYXRpb25dLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9udEZhbWlseToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBub2RlLmZvbnROYW1lLmZhbWlseSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZvbnRXZWlnaHQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcGFyc2VGb250V2VpZ2h0KG5vZGUuZm9udE5hbWUuc3R5bGUpLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9udFN0eWxlOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHBhcnNlRm9udFN0eWxlKG5vZGUuZm9udE5hbWUuc3R5bGUpLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9udFN0cmV0Y2g6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcGFyc2VGb250U3RyZXRjaChub2RlLmZvbnROYW1lLnN0eWxlKSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9mb250U3R5bGVPbGQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogbm9kZS5mb250TmFtZS5zdHlsZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxldHRlclNwYWNpbmc6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcm91bmRXaXRoRGVjaW1hbHMobm9kZS5sZXR0ZXJTcGFjaW5nLnZhbHVlKSxcbiAgICAgICAgICAgICAgICB1bml0OiBub2RlLmxldHRlclNwYWNpbmcudW5pdC50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGluZUhlaWdodDoge1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICB2YWx1ZTogcm91bmRXaXRoRGVjaW1hbHMobm9kZS5saW5lSGVpZ2h0LnZhbHVlKSB8fCAnbm9ybWFsJyxcbiAgICAgICAgICAgICAgICB1bml0OiBub2RlLmxpbmVIZWlnaHQudW5pdC50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgICAgIHR5cGU6IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobm9kZS5saW5lSGVpZ2h0LCAndmFsdWUnKSA/ICdudW1iZXInIDogJ3N0cmluZycpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFyYWdyYXBoSW5kZW50OiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG5vZGUucGFyYWdyYXBoSW5kZW50LFxuICAgICAgICAgICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXJhZ3JhcGhTcGFjaW5nOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG5vZGUucGFyYWdyYXBoU3BhY2luZyxcbiAgICAgICAgICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGV4dENhc2U6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGV4dENhc2VzW25vZGUudGV4dENhc2VdLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgZXh0cmFjdEZvbnRzO1xuIiwiY29uc3QgZ3JpZFZhbHVlcyA9IChncmlkKSA9PiAoe1xuICAgIHBhdHRlcm46IHtcbiAgICAgICAgdmFsdWU6IGdyaWQucGF0dGVybi50b0xvd2VyQ2FzZSgpLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgIH0sXG4gICAgc2VjdGlvblNpemU6IHtcbiAgICAgICAgdmFsdWU6IGdyaWQuc2VjdGlvblNpemUsXG4gICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgfVxufSk7XG5jb25zdCBnZXRDb3VudCA9IGNvdW50ID0+IHtcbiAgICBpZiAoY291bnQgPT09IEluZmluaXR5KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogJ2F1dG8nLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZydcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IGNvdW50LFxuICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgIH07XG59O1xuY29uc3Qgcm93Q29sdW1uVmFsdWVzID0gKGdyaWQpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IHBhdHRlcm46IHtcbiAgICAgICAgdmFsdWU6IGdyaWQucGF0dGVybi50b0xvd2VyQ2FzZSgpLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgIH0gfSwgKGdyaWQuc2VjdGlvblNpemUgIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgc2VjdGlvblNpemU6IHtcbiAgICAgICAgdmFsdWU6IGdyaWQuc2VjdGlvblNpemUsXG4gICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgfVxufSkpLCB7IGd1dHRlclNpemU6IHtcbiAgICAgICAgdmFsdWU6IGdyaWQuZ3V0dGVyU2l6ZSxcbiAgICAgICAgdW5pdDogJ3BpeGVsJyxcbiAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICB9LCBhbGlnbm1lbnQ6IHtcbiAgICAgICAgdmFsdWU6IGdyaWQuYWxpZ25tZW50LnRvTG93ZXJDYXNlKCksXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnXG4gICAgfSwgY291bnQ6IGdldENvdW50KGdyaWQuY291bnQpIH0pLCAoZ3JpZC5vZmZzZXQgIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgb2Zmc2V0OiB7XG4gICAgICAgIHZhbHVlOiBncmlkLm9mZnNldCxcbiAgICAgICAgdW5pdDogJ3BpeGVsJyxcbiAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICB9XG59KSkpO1xuY29uc3QgZXh0cmFjdEdyaWRzID0gKHRva2VuTm9kZXMpID0+IHtcbiAgICAvLyBnZXQgZ3JpZCBzdHlsZXNcbiAgICByZXR1cm4gdG9rZW5Ob2Rlcy5tYXAobm9kZSA9PiAoe1xuICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBub2RlLmRlc2NyaXB0aW9uIHx8IG51bGwsXG4gICAgICAgIGNhdGVnb3J5OiAnZ3JpZCcsXG4gICAgICAgIHZhbHVlczogbm9kZS5sYXlvdXRHcmlkcy5tYXAoKGdyaWQpID0+IGdyaWQucGF0dGVybiA9PT0gJ0dSSUQnID8gZ3JpZFZhbHVlcyhncmlkKSA6IHJvd0NvbHVtblZhbHVlcyhncmlkKSlcbiAgICB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgZXh0cmFjdEdyaWRzO1xuIiwiY29uc3QgZGlyZWN0aW9uID0gKHRyYW5zaXRpb24pID0+IHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRyYW5zaXRpb24sICdkaXJlY3Rpb24nKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGlyZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHRyYW5zaXRpb24uZGlyZWN0aW9uLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZydcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59O1xuY29uc3QgZWFzaW5ncyA9IHtcbiAgICBDVVNUT01fQ1VCSUNfQkVaSUVSOiB7fSxcbiAgICBMSU5FQVI6IHtcbiAgICAgICAgdHlwZTogJ2xpbmVhcicsXG4gICAgICAgIGVhc2luZ0Z1bmN0aW9uQ3ViaWNCZXppZXI6IHtcbiAgICAgICAgICAgIHgxOiAwLFxuICAgICAgICAgICAgeTE6IDAsXG4gICAgICAgICAgICB4MjogMSxcbiAgICAgICAgICAgIHkyOiAxXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEVBU0VfSU46IHtcbiAgICAgICAgdHlwZTogJ2Vhc2UtaW4nLFxuICAgICAgICBlYXNpbmdGdW5jdGlvbkN1YmljQmV6aWVyOiB7XG4gICAgICAgICAgICB4MTogMC40MTk5OTk5ODY4ODY5NzgxNSxcbiAgICAgICAgICAgIHkxOiAwLFxuICAgICAgICAgICAgeDI6IDEsXG4gICAgICAgICAgICB5MjogMVxuICAgICAgICB9XG4gICAgfSxcbiAgICBFQVNFX09VVDoge1xuICAgICAgICB0eXBlOiAnZWFzZS1vdXQnLFxuICAgICAgICBlYXNpbmdGdW5jdGlvbkN1YmljQmV6aWVyOiB7XG4gICAgICAgICAgICB4MTogMCxcbiAgICAgICAgICAgIHkxOiAwLFxuICAgICAgICAgICAgeDI6IDAuNTc5OTk5OTgzMzEwNjk5NSxcbiAgICAgICAgICAgIHkyOiAxXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEVBU0VfSU5fQU5EX09VVDoge1xuICAgICAgICB0eXBlOiAnZWFzZS1pbi1vdXQnLFxuICAgICAgICBlYXNpbmdGdW5jdGlvbkN1YmljQmV6aWVyOiB7XG4gICAgICAgICAgICB4MTogMC40MTk5OTk5ODY4ODY5NzgxNSxcbiAgICAgICAgICAgIHkxOiAwLFxuICAgICAgICAgICAgeDI6IDAuNTc5OTk5OTgzMzEwNjk5NSxcbiAgICAgICAgICAgIHkyOiAxXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEVBU0VfSU5fQkFDSzoge1xuICAgICAgICB0eXBlOiAnZWFzZS1pbi1iYWNrJyxcbiAgICAgICAgZWFzaW5nRnVuY3Rpb25DdWJpY0Jlemllcjoge1xuICAgICAgICAgICAgeDE6IDAuMzAwMDAwMDExOTIwOTI4OTYsXG4gICAgICAgICAgICB5MTogLTAuMDUwMDAwMDAwNzQ1MDU4MDYsXG4gICAgICAgICAgICB4MjogMC42OTk5OTk5ODgwNzkwNzEsXG4gICAgICAgICAgICB5MjogLTAuNVxuICAgICAgICB9XG4gICAgfSxcbiAgICBFQVNFX09VVF9CQUNLOiB7XG4gICAgICAgIHR5cGU6ICdlYXNlLW91dC1iYWNrJyxcbiAgICAgICAgZWFzaW5nRnVuY3Rpb25DdWJpY0Jlemllcjoge1xuICAgICAgICAgICAgeDE6IDAuNDQ5OTk5OTg4MDc5MDcxMDQsXG4gICAgICAgICAgICB5MTogMS40NTAwMDAwNDc2ODM3MTU4LFxuICAgICAgICAgICAgeDI6IDAuODAwMDAwMDExOTIwOTI5LFxuICAgICAgICAgICAgeTI6IDFcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRUFTRV9JTl9BTkRfT1VUX0JBQ0s6IHtcbiAgICAgICAgdHlwZTogJ2Vhc2UtaW4tb3V0LWJhY2snLFxuICAgICAgICBlYXNpbmdGdW5jdGlvbkN1YmljQmV6aWVyOiB7XG4gICAgICAgICAgICB4MTogMC42OTk5OTk5ODgwNzkwNzEsXG4gICAgICAgICAgICB5MTogLTAuNDAwMDAwMDA1OTYwNDY0NSxcbiAgICAgICAgICAgIHgyOiAwLjQwMDAwMDAwNTk2MDQ2NDUsXG4gICAgICAgICAgICB5MjogMS4zOTk5OTk5NzYxNTgxNDJcbiAgICAgICAgfVxuICAgIH1cbn07XG5jb25zdCBlYXNpbmcgPSAoZWFzaW5nKSA9PiB7XG4gICAgLy8gYWJvcnQgaWYgaW52YWxpZiBlYXNpbmcgdHlwZVxuICAgIGlmICghT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZWFzaW5ncywgZWFzaW5nLnR5cGUpKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8vIHJldHVybiBjdXN0b20gZWFzaW5nXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmIChlYXNpbmcudHlwZSA9PT0gJ0NVU1RPTV9DVUJJQ19CRVpJRVInKSB7XG4gICAgICAgIGVhc2luZ3MuQ1VTVE9NX0NVQklDX0JFWklFUiA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdjdWJpYy1iZXppZXInLFxuICAgICAgICAgICAgZWFzaW5nRnVuY3Rpb25DdWJpY0Jlemllcjoge1xuICAgICAgICAgICAgICAgIHgxOiBlYXNpbmcuZWFzaW5nRnVuY3Rpb25DdWJpY0Jlemllci54MSxcbiAgICAgICAgICAgICAgICB5MTogZWFzaW5nLmVhc2luZ0Z1bmN0aW9uQ3ViaWNCZXppZXIueTEsXG4gICAgICAgICAgICAgICAgeDI6IGVhc2luZy5lYXNpbmdGdW5jdGlvbkN1YmljQmV6aWVyLngyLFxuICAgICAgICAgICAgICAgIHkyOiBlYXNpbmcuZWFzaW5nRnVuY3Rpb25DdWJpY0Jlemllci55MlxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBlYXNpbmc6IHtcbiAgICAgICAgICAgIHZhbHVlOiBlYXNpbmdzW2Vhc2luZy50eXBlXS50eXBlLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZydcbiAgICAgICAgfSxcbiAgICAgICAgZWFzaW5nRnVuY3Rpb246IHtcbiAgICAgICAgICAgIHgxOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGVhc2luZ3NbZWFzaW5nLnR5cGVdLmVhc2luZ0Z1bmN0aW9uQ3ViaWNCZXppZXIueDEsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB4Mjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBlYXNpbmdzW2Vhc2luZy50eXBlXS5lYXNpbmdGdW5jdGlvbkN1YmljQmV6aWVyLngyLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeTE6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogZWFzaW5nc1tlYXNpbmcudHlwZV0uZWFzaW5nRnVuY3Rpb25DdWJpY0Jlemllci55MSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHkyOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGVhc2luZ3NbZWFzaW5nLnR5cGVdLmVhc2luZ0Z1bmN0aW9uQ3ViaWNCZXppZXIueTIsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG59O1xuY29uc3QgZXh0cmFjdE1vdGlvbiA9ICh0b2tlbk5vZGVzKSA9PiB7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSAnbW90aW9uJztcbiAgICAvLyByZXR1cm4gYXMgb2JqZWN0XG4gICAgcmV0dXJuIHRva2VuTm9kZXNcbiAgICAgICAgLy8gb25seSBnZXQgbW90aW9uIG5vZGVzXG4gICAgICAgIC5maWx0ZXIobm9kZSA9PiBub2RlLm5hbWUuc3Vic3RyKDAsIG5vZGVOYW1lLmxlbmd0aCkgPT09IG5vZGVOYW1lKVxuICAgICAgICAvLyBmaWx0ZXIgdG8gb25seSBpbmNsdWRlIGl0ZW1zIHdoaWNoIGhhdmUgYSB0cmFuc2l0aW9uIHByb3BlcnR5XG4gICAgICAgIC5maWx0ZXIobm9kZSA9PiB7XG4gICAgICAgIGlmIChub2RlLnJlYWN0aW9ucy5sZW5ndGggPiAwICYmIG5vZGUucmVhY3Rpb25zWzBdLmFjdGlvbi50eXBlID09PSAnTk9ERScgJiYgbm9kZS5yZWFjdGlvbnNbMF0uYWN0aW9uLnRyYW5zaXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KVxuICAgICAgICAvLyByZXRyaWV2ZSB2YWx1ZXNcbiAgICAgICAgLm1hcCgobm9kZSkgPT4gKHtcbiAgICAgICAgbmFtZTogbm9kZS5uYW1lLFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGRlc2NyaXB0aW9uOiBub2RlLmRlc2NyaXB0aW9uIHx8IG51bGwsXG4gICAgICAgIGNhdGVnb3J5OiAnbW90aW9uJyxcbiAgICAgICAgdmFsdWVzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyB0eXBlOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG5vZGUucmVhY3Rpb25zWzBdLmFjdGlvbi50cmFuc2l0aW9uLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICAgICAgfSwgZHVyYXRpb246IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogTWF0aC5yb3VuZCgobm9kZS5yZWFjdGlvbnNbMF0uYWN0aW9uLnRyYW5zaXRpb24uZHVyYXRpb24gKyBOdW1iZXIuRVBTSUxPTikgKiAxMDAwKSAvIDEwMDAsXG4gICAgICAgICAgICAgICAgdW5pdDogJ3MnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9IH0sIGVhc2luZyhub2RlLnJlYWN0aW9uc1swXS5hY3Rpb24udHJhbnNpdGlvbi5lYXNpbmcpKSwgZGlyZWN0aW9uKG5vZGUucmVhY3Rpb25zWzBdLmFjdGlvbi50cmFuc2l0aW9uKSlcbiAgICB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgZXh0cmFjdE1vdGlvbjtcbmV4cG9ydCBjb25zdCBfX3Rlc3RpbmcgPSB7XG4gICAgZWFzaW5nOiBlYXNpbmdcbn07XG4iLCJpbXBvcnQgcm91bmRXaXRoRGVjaW1hbHMgZnJvbSAnLi4vdXRpbGl0aWVzL3JvdW5kV2l0aERlY2ltYWxzJztcbmNvbnN0IGV4dHJhY3RSYWRpaSA9ICh0b2tlbk5vZGVzKSA9PiB7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSAncmFkaWknO1xuICAgIC8vIGdldCB0aGUgdHlwZSBvZiB0aGUgY29ybmVyIHJhZGl1c1xuICAgIGNvbnN0IGdldFJhZGl1c1R5cGUgPSByYWRpdXMgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHJhZGl1cyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiAnc2luZ2xlJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ21peGVkJztcbiAgICB9O1xuICAgIC8vIGdldCB0aGUgaW5kaXZpZHVhbCByYWRpaVxuICAgIGNvbnN0IGdldFJhZGlpID0gKG5vZGUpID0+ICh7XG4gICAgICAgIHRvcExlZnQ6IHtcbiAgICAgICAgICAgIHZhbHVlOiBub2RlLnRvcExlZnRSYWRpdXMgfHwgMCxcbiAgICAgICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgICAgICB9LFxuICAgICAgICB0b3BSaWdodDoge1xuICAgICAgICAgICAgdmFsdWU6IG5vZGUudG9wUmlnaHRSYWRpdXMgfHwgMCxcbiAgICAgICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgICAgICB9LFxuICAgICAgICBib3R0b21SaWdodDoge1xuICAgICAgICAgICAgdmFsdWU6IG5vZGUuYm90dG9tUmlnaHRSYWRpdXMgfHwgMCxcbiAgICAgICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgICAgICB9LFxuICAgICAgICBib3R0b21MZWZ0OiB7XG4gICAgICAgICAgICB2YWx1ZTogbm9kZS5ib3R0b21MZWZ0UmFkaXVzIHx8IDAsXG4gICAgICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIHJldHVybiBhcyBvYmplY3RcbiAgICByZXR1cm4gdG9rZW5Ob2Rlcy5maWx0ZXIobm9kZSA9PiBub2RlLm5hbWUuc3Vic3RyKDAsIG5vZGVOYW1lLmxlbmd0aCkgPT09IG5vZGVOYW1lKS5tYXAobm9kZSA9PiAoe1xuICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgZGVzY3JpcHRpb246IG5vZGUuZGVzY3JpcHRpb24gfHwgbnVsbCxcbiAgICAgICAgY2F0ZWdvcnk6ICdyYWRpdXMnLFxuICAgICAgICB2YWx1ZXM6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKHR5cGVvZiBub2RlLmNvcm5lclJhZGl1cyA9PT0gJ251bWJlcicgJiYge1xuICAgICAgICAgICAgcmFkaXVzOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG5vZGUuY29ybmVyUmFkaXVzLFxuICAgICAgICAgICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkpLCB7IHJhZGl1c1R5cGU6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogZ2V0UmFkaXVzVHlwZShub2RlLmNvcm5lclJhZGl1cyksXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZydcbiAgICAgICAgICAgIH0sIHJhZGlpOiBnZXRSYWRpaShub2RlKSwgc21vb3RoaW5nOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHJvdW5kV2l0aERlY2ltYWxzKG5vZGUuY29ybmVyU21vb3RoaW5nLCAyKSxcbiAgICAgICAgICAgICAgICBjb21tZW50OiAnUGVyY2VudCBhcyBkZWNpbWFsIGZyb20gMC4wIC0gMS4wJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgICAgICAgICAgfSB9KVxuICAgIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBleHRyYWN0UmFkaWk7XG4iLCJpbXBvcnQgcm91bmRXaXRoRGVjaW1hbHMgZnJvbSAnLi4vdXRpbGl0aWVzL3JvdW5kV2l0aERlY2ltYWxzJztcbmNvbnN0IGV4dHJhY3RTaXplcyA9ICh0b2tlbk5vZGVzKSA9PiB7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSAnc2l6ZXMnO1xuICAgIC8vIHJldHVybiBhcyBvYmplY3RcbiAgICByZXR1cm4gdG9rZW5Ob2Rlcy5maWx0ZXIobm9kZSA9PiBub2RlLm5hbWUuc3Vic3RyKDAsIG5vZGVOYW1lLmxlbmd0aCkgPT09IG5vZGVOYW1lKS5tYXAobm9kZSA9PiAoe1xuICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgZGVzY3JpcHRpb246IG5vZGUuZGVzY3JpcHRpb24gfHwgbnVsbCxcbiAgICAgICAgY2F0ZWdvcnk6ICdzaXplJyxcbiAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICB3aWR0aDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByb3VuZFdpdGhEZWNpbWFscyhub2RlLndpZHRoLCAyKSxcbiAgICAgICAgICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGVpZ2h0OiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHJvdW5kV2l0aERlY2ltYWxzKG5vZGUuaGVpZ2h0LCAyKSxcbiAgICAgICAgICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgZXh0cmFjdFNpemVzO1xuIiwiaW1wb3J0IHJvdW5kV2l0aERlY2ltYWxzIGZyb20gJy4uL3V0aWxpdGllcy9yb3VuZFdpdGhEZWNpbWFscyc7XG5jb25zdCBleHRyYWN0U3BhY2luZyA9ICh0b2tlbk5vZGVzKSA9PiB7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSAnc3BhY2luZyc7XG4gICAgLy8gcmV0dXJuIGFzIG9iamVjdFxuICAgIHJldHVybiB0b2tlbk5vZGVzLmZpbHRlcihub2RlID0+IG5vZGUubmFtZS5zdWJzdHIoMCwgbm9kZU5hbWUubGVuZ3RoKSA9PT0gbm9kZU5hbWUpXG4gICAgICAgIC5tYXAobm9kZSA9PiAoe1xuICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgZGVzY3JpcHRpb246IG5vZGUuZGVzY3JpcHRpb24gfHwgbnVsbCxcbiAgICAgICAgY2F0ZWdvcnk6ICdzcGFjaW5nJyxcbiAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICB0b3A6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcm91bmRXaXRoRGVjaW1hbHMobm9kZS5wYWRkaW5nVG9wLCAyKSxcbiAgICAgICAgICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmlnaHQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcm91bmRXaXRoRGVjaW1hbHMobm9kZS5wYWRkaW5nUmlnaHQsIDIpLFxuICAgICAgICAgICAgICAgIHVuaXQ6ICdwaXhlbCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib3R0b206IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcm91bmRXaXRoRGVjaW1hbHMobm9kZS5wYWRkaW5nQm90dG9tLCAyKSxcbiAgICAgICAgICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGVmdDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByb3VuZFdpdGhEZWNpbWFscyhub2RlLnBhZGRpbmdMZWZ0LCAyKSxcbiAgICAgICAgICAgICAgICB1bml0OiAncGl4ZWwnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgZXh0cmFjdFNwYWNpbmc7XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IGdldFNldHRpbmdzLCBzZXRTZXR0aW5ncyB9IGZyb20gJy4vdXRpbGl0aWVzL3NldHRpbmdzJztcbmltcG9ydCB7IGdldEFjY2Vzc1Rva2VuLCBzZXRBY2Nlc3NUb2tlbiB9IGZyb20gJy4vdXRpbGl0aWVzL2FjY2Vzc1Rva2VuJztcbmltcG9ydCBnZXRKc29uIGZyb20gJy4vdXRpbGl0aWVzL2dldEpzb24nO1xuaW1wb3J0IGNvbmZpZyBmcm9tICcuL3V0aWxpdGllcy9jb25maWcnO1xuaW1wb3J0IGdldFZlcnNpb25EaWZmZXJlbmNlIGZyb20gJy4vdXRpbGl0aWVzL2dldFZlcnNpb25EaWZmZXJlbmNlJztcbmltcG9ydCBnZXRGaWxlSWQgZnJvbSAnLi91dGlsaXRpZXMvZ2V0RmlsZUlkJztcbi8vIGluaXRpYXRlIFVJXG5maWdtYS5zaG93VUkoX19odG1sX18sIHtcbiAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICB3aWR0aDogY29uZmlnLnNldHRpbmdzRGlhbG9nLndpZHRoLFxuICAgIGhlaWdodDogY29uZmlnLnNldHRpbmdzRGlhbG9nLmhlaWdodFxufSk7XG4vLyBHZXQgdGhlIHVzZXIgc2V0dGluZ3NcbmNvbnN0IHVzZXJTZXR0aW5ncyA9IGdldFNldHRpbmdzKCk7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEVYUE9SVCBUTyBGSUxFXG4vLyBleHBvcnRzIHRoZSBkZXNpZ24gdG9rZW5zIHRvIGEgZmlsZVxuaWYgKGZpZ21hLmNvbW1hbmQgPT09ICdleHBvcnQnKSB7XG4gICAgLy8gd3JpdGUgdG9rZW5zIHRvIGpzb24gZmlsZVxuICAgIGZpZ21hLnVpLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgY29tbWFuZDogJ2V4cG9ydCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGZpbGVuYW1lOiBgJHt1c2VyU2V0dGluZ3MuZmlsZW5hbWV9Lmpzb25gLFxuICAgICAgICAgICAgZGF0YTogZ2V0SnNvbihmaWdtYSwgdXNlclNldHRpbmdzKVxuICAgICAgICB9XG4gICAgfSk7XG59XG4vLyBTRU5EIFRPIFVSTFxuLy8gc2VuZCB0b2tlbnMgdG8gdXJsXG5pZiAoZmlnbWEuY29tbWFuZCA9PT0gJ3VybEV4cG9ydCcpIHtcbiAgICAvLyBuZWVkZWQgZm9yIGdldEFjY2Vzc1Rva2VuIGFzeW5jXG4gICAgY29uc3QgdXJsRXhwb3J0ID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGZpZ21hLnVpLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgIGNvbW1hbmQ6ICd1cmxFeHBvcnQnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHVybDogdXNlclNldHRpbmdzLnNlcnZlclVybCxcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbjogeWllbGQgZ2V0QWNjZXNzVG9rZW4oZ2V0RmlsZUlkKGZpZ21hKSksXG4gICAgICAgICAgICAgICAgYWNjZXB0SGVhZGVyOiB1c2VyU2V0dGluZ3MuYWNjZXB0SGVhZGVyLFxuICAgICAgICAgICAgICAgIGF1dGhUeXBlOiB1c2VyU2V0dGluZ3MuYXV0aFR5cGUsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBldmVudF90eXBlOiB1c2VyU2V0dGluZ3MuZXZlbnRUeXBlLFxuICAgICAgICAgICAgICAgICAgICBjbGllbnRfcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5GaWxlTmFtZTogYCR7dXNlclNldHRpbmdzLmZpbGVuYW1lfS5qc29uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuczogYCR7Z2V0SnNvbihmaWdtYSwgdXNlclNldHRpbmdzLCB0cnVlKX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU6IGZpZ21hLnJvb3QubmFtZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyBydW4gZXhwb3J0IHVybCBmdW5jdGlvblxuICAgIHVybEV4cG9ydCgpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTRVRUSU5HU1xuLy8gc2V0dGluZ3MgZm9yIHRoZSBkZXNpZ24gdG9rZW5zXG5pZiAoZmlnbWEuY29tbWFuZCA9PT0gJ3NldHRpbmdzJykge1xuICAgIC8vIHdyYXAgaW4gZnVuY3Rpb24gYmVjYXVzZSBvZiBhc3luYyBjbGllbnQgU3RvcmFnZVxuICAgIGNvbnN0IG9wZW5VaSA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBnZXQgdGhlIGN1cnJlbnQgdmVyc2lvbiBkaWZmZXJlbmNlcyB0byB0aGUgbGFzdCB0aW1lIHRoZSBwbHVnaW4gd2FzIG9wZW5lZFxuICAgICAgICBjb25zdCB2ZXJzaW9uRGlmZmVyZW5jZSA9IHlpZWxkIGdldFZlcnNpb25EaWZmZXJlbmNlKGZpZ21hKTtcbiAgICAgICAgLy8gcmVzaXplIFVJIGlmIG5lZWRlZFxuICAgICAgICBpZiAodmVyc2lvbkRpZmZlcmVuY2UgIT09IHVuZGVmaW5lZCAmJiB2ZXJzaW9uRGlmZmVyZW5jZSAhPT0gJ3BhdGNoJykge1xuICAgICAgICAgICAgZmlnbWEudWkucmVzaXplKGNvbmZpZy5zZXR0aW5nc0RpYWxvZy53aWR0aCwgY29uZmlnLnNldHRpbmdzRGlhbG9nLmhlaWdodCArIDYwKTtcbiAgICAgICAgfVxuICAgICAgICAvLyByZWdpc3RlciB0aGUgc2V0dGluZ3MgVUlcbiAgICAgICAgZmlnbWEudWkuc2hvdygpO1xuICAgICAgICAvLyBzZW50IHNldHRpbmdzIHRvIFVJXG4gICAgICAgIGZpZ21hLnVpLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgIGNvbW1hbmQ6ICdnZXRTZXR0aW5ncycsXG4gICAgICAgICAgICBzZXR0aW5nczogdXNlclNldHRpbmdzLFxuICAgICAgICAgICAgYWNjZXNzVG9rZW46IHlpZWxkIGdldEFjY2Vzc1Rva2VuKGdldEZpbGVJZChmaWdtYSkpLFxuICAgICAgICAgICAgdmVyc2lvbkRpZmZlcmVuY2U6IHZlcnNpb25EaWZmZXJlbmNlXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGZpZ21hLnVpLnNob3coKTtcbiAgICB9KTtcbiAgICAvLyBydW4gZnVuY3Rpb25cbiAgICBvcGVuVWkoKTtcbn1cbi8qKlxuICogT3BlbiBIZWxwXG4gKiBPcGVuIGdpdGh1YiBoZWxwIHBhZ2VcbiAqL1xuaWYgKGZpZ21hLmNvbW1hbmQgPT09ICdoZWxwJykge1xuICAgIGZpZ21hLnVpLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgY29tbWFuZDogJ2hlbHAnXG4gICAgfSk7XG59XG4vKipcbiAqIFJlYWN0IHRvIG1lc3NhZ2VzXG4gKi9cbmZpZ21hLnVpLm9ubWVzc2FnZSA9IChtZXNzYWdlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAvKipcbiAgICAgKiBvbiBjbG9zZVBsdWdpblxuICAgICAqIGNsb3NlIHBsdWdpbiBhbmQgc2hvdyBub3RpZmljYXRpb24gaWYgYXZhaWxhYmxlXG4gICAgICovXG4gICAgaWYgKG1lc3NhZ2UuY29tbWFuZCA9PT0gJ2Nsb3NlUGx1Z2luJykge1xuICAgICAgICAvLyBzaG93IG5vdGlmaWNhdGlvbiBpZiBzZW5kXG4gICAgICAgIGlmIChtZXNzYWdlLm5vdGlmaWNhdGlvbiAhPT0gdW5kZWZpbmVkICYmIG1lc3NhZ2Uubm90aWZpY2F0aW9uICE9PSAnJykge1xuICAgICAgICAgICAgZmlnbWEubm90aWZ5KG1lc3NhZ2Uubm90aWZpY2F0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjbG9zZSBwbHVnaW5cbiAgICAgICAgZmlnbWEudWkuaGlkZSgpO1xuICAgICAgICBmaWdtYS5jbG9zZVBsdWdpbigpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBvbiBzYXZlU2V0dGluZ3NcbiAgICAgKiBzYXZlIHNldHRpbmdzLCBhY2Nlc3MgdG9rZW4gYW5kIGNsb3NlIHBsdWdpblxuICAgICAqL1xuICAgIGlmIChtZXNzYWdlLmNvbW1hbmQgPT09ICdzYXZlU2V0dGluZ3MnKSB7XG4gICAgICAgIC8vIHN0b3JlIHNldHRpbmdzXG4gICAgICAgIHNldFNldHRpbmdzKG1lc3NhZ2Uuc2V0dGluZ3MpO1xuICAgICAgICAvLyBhY2Nlc3NUb2tlblxuICAgICAgICB5aWVsZCBzZXRBY2Nlc3NUb2tlbihnZXRGaWxlSWQoZmlnbWEpLCBtZXNzYWdlLmFjY2Vzc1Rva2VuKTtcbiAgICAgICAgLy8gY2xvc2UgcGx1Z2luXG4gICAgICAgIGZpZ21hLmNsb3NlUGx1Z2luKCk7XG4gICAgfVxufSk7XG4iLCJpbXBvcnQgeyBjb252ZXJ0UmdiYU9iamVjdFRvU3RyaW5nIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbnZlcnRDb2xvcic7XG5pbXBvcnQgZ2V0RGVzY3JpcHRpb24gZnJvbSAnLi91dGlsaXRpZXMvZ2V0RGVzY3JpcHRpb24nO1xuY29uc3QgZGVmYXVsdFRyYW5zZm9ybWVyID0gcHJvcGVydHlHcm91cFZhbHVlcyA9PiB7XG4gICAgLy8gdHVybiBhcnJheSB3aXRoIG9ubHkgb25lIGl0ZW0gaW50byBub3JtYWwgb2JqZWN0XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlHcm91cFZhbHVlcykgJiYgcHJvcGVydHlHcm91cFZhbHVlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcHJvcGVydHlHcm91cFZhbHVlcyA9IHByb3BlcnR5R3JvdXBWYWx1ZXNbMF07XG4gICAgfVxuICAgIC8vIGRlZmluZSBvYmplY3RcbiAgICBjb25zdCB0cmFuc2Zvcm1lZFByb3BlcnRpZXMgPSB7fTtcbiAgICAvLyB0cmFuc2Zvcm0gcHJvZXBydGllc1xuICAgIE9iamVjdC5rZXlzKHByb3BlcnR5R3JvdXBWYWx1ZXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAvLyBpZiB0aGlzIGlzIHRoZSBmaW5hbCBsZXZlbFxuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BlcnR5R3JvdXBWYWx1ZXNba2V5XSwgJ3ZhbHVlJykpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkUHJvcGVydGllc1trZXldID0gc3R5bGVEaWN0aW9uYXJ5Rm9ybWF0KHByb3BlcnR5R3JvdXBWYWx1ZXNba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlcmUgaXMgbW9yZSBuZXN0aW5nXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdHJhbnNmb3JtZWRQcm9wZXJ0aWVzW2tleV0gPSBkZWZhdWx0VHJhbnNmb3JtZXIocHJvcGVydHlHcm91cFZhbHVlc1trZXldKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIGlmIG9ubHkgb25lIHByb3BlcnR5IGlzIGluIG9iamVjdCAoZS5nLiBvbmx5IGZpbGwgZm9yIGNvbG9yKVxuICAgIC8vIHJldHVybiB0ZWggdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSBkaXJlY3RseSAoZS5nLiBjb2xvci1ibHVlOiAjMDAwMEFBIGluc3RlYWQgb2YgY29sb3ItYmx1ZS1maWxsOiAjMDAwMEFBKVxuICAgIGlmIChPYmplY3Qua2V5cyh0cmFuc2Zvcm1lZFByb3BlcnRpZXMpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0cmFuc2Zvcm1lZFByb3BlcnRpZXMpWzBdO1xuICAgIH1cbiAgICAvLyByZXR1cm4gdHJhbnNmb3JtZWQgcHJvcGVydGllc1xuICAgIHJldHVybiB0cmFuc2Zvcm1lZFByb3BlcnRpZXM7XG59O1xuY29uc3Qgc2l6ZVRyYW5zZm9ybWVyID0gcHJvcGVydHlHcm91cFZhbHVlcyA9PiB7XG4gICAgcmV0dXJuIHN0eWxlRGljdGlvbmFyeUZvcm1hdChwcm9wZXJ0eUdyb3VwVmFsdWVzLndpZHRoKTtcbn07XG5jb25zdCBjYXRlZ29yeVRyYW5zZm9ybWVyID0ge1xuICAgIGRlZmF1bHQ6IGRlZmF1bHRUcmFuc2Zvcm1lcixcbiAgICBmb250OiBkZWZhdWx0VHJhbnNmb3JtZXIsXG4gICAgYm9yZGVyOiBkZWZhdWx0VHJhbnNmb3JtZXIsXG4gICAgc2l6ZTogc2l6ZVRyYW5zZm9ybWVyLFxuICAgIGdyaWQ6IGRlZmF1bHRUcmFuc2Zvcm1lcixcbiAgICBlZmZlY3Q6IGRlZmF1bHRUcmFuc2Zvcm1lcixcbiAgICByYWRpdXM6IGRlZmF1bHRUcmFuc2Zvcm1lcixcbiAgICBmaWxsOiBkZWZhdWx0VHJhbnNmb3JtZXJcbn07XG5jb25zdCBzdHlsZURpY3Rpb25hcnlDb252ZXJ0VmFsdWUgPSAodmFsdWUsIHR5cGUpID0+IHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnY29sb3InKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0UmdiYU9iamVjdFRvU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmNvbnN0IHN0eWxlRGljdGlvbmFyeUZvcm1hdCA9IChwcm9wZXJ0eSkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IHZhbHVlOiBzdHlsZURpY3Rpb25hcnlDb252ZXJ0VmFsdWUocHJvcGVydHkudmFsdWUsIHByb3BlcnR5LnR5cGUpLCB0eXBlOiBwcm9wZXJ0eS50eXBlIH0sIChwcm9wZXJ0eS5kZXNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkICYmIHsgY29tbWVudDogcHJvcGVydHkuZGVzY3JpcHRpb24gfSkpLCAocHJvcGVydHkudW5pdCAhPT0gdW5kZWZpbmVkICYmIHsgdW5pdDogcHJvcGVydHkudW5pdCB9KSkpO1xuY29uc3QgcHJvcGVydHlUcmFuc2Zvcm1lciA9IChwcm9wZXJ0eUdyb3VwLCBjYXRlZ29yeSkgPT4ge1xuICAgIC8vIGlmIGN1c3RvbSB0cmFuc2Zvcm1lciBpcyBkZWZpbmVkXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjYXRlZ29yeVRyYW5zZm9ybWVyLCBwcm9wZXJ0eUdyb3VwLmNhdGVnb3J5KSkge1xuICAgICAgICByZXR1cm4gY2F0ZWdvcnlUcmFuc2Zvcm1lcltwcm9wZXJ0eUdyb3VwLmNhdGVnb3J5XShwcm9wZXJ0eUdyb3VwLnZhbHVlcyk7XG4gICAgfVxuICAgIC8vIG90aGVyd2lzZSByZXR1cm4gd2l0aCBkZWZhdWx0IHRyYW5zZm9ybWVyXG4gICAgcmV0dXJuIGRlZmF1bHRUcmFuc2Zvcm1lcihwcm9wZXJ0eUdyb3VwLnZhbHVlcyk7XG59O1xuY29uc3Qgc3R5bGVEaWN0aW9uYXJ5VHJhbnNmb3JtZXIgPSAocHJvcGVydHlHcm91cCkgPT4ge1xuICAgIC8vIHRyYW5zZm9ybSB0byBhbWF6b24gc3R5bGUgRGljdGlvbmFyeSBzdHJ1Y3R1cmVcbiAgICBjb25zdCB0cmFuc2Zvcm1lZFByb3BlcnRpZXMgPSBwcm9wZXJ0eVRyYW5zZm9ybWVyKHByb3BlcnR5R3JvdXAsIHByb3BlcnR5R3JvdXAuY2F0ZWdvcnkpO1xuICAgIC8vIHJldHVybiB2YWx1ZXNcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgbmFtZTogcHJvcGVydHlHcm91cC5uYW1lLCBjYXRlZ29yeTogcHJvcGVydHlHcm91cC5jYXRlZ29yeSB9LCBnZXREZXNjcmlwdGlvbihwcm9wZXJ0eUdyb3VwLmRlc2NyaXB0aW9uKSksIHRyYW5zZm9ybWVkUHJvcGVydGllcyk7XG59O1xuZXhwb3J0IGRlZmF1bHQgc3R5bGVEaWN0aW9uYXJ5VHJhbnNmb3JtZXI7XG5leHBvcnQgY29uc3QgX190ZXN0aW5nID0ge1xuICAgIHN0eWxlRGljdGlvbmFyeUNvbnZlcnRWYWx1ZTogc3R5bGVEaWN0aW9uYXJ5Q29udmVydFZhbHVlLFxuICAgIHNpemVUcmFuc2Zvcm1lcjogc2l6ZVRyYW5zZm9ybWVyXG59O1xuIiwiY29uc3QgZ2V0RGVzY3JpcHRpb24gPSAoZGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uS2V5ID0gJ2NvbW1lbnQnKSA9PiB7XG4gICAgLy8gaWYgdmFsaWQgZGVzY3JpcHRpb25cbiAgICBpZiAoZGVzY3JpcHRpb24gJiYgdHlwZW9mIGRlc2NyaXB0aW9uID09PSAnc3RyaW5nJyAmJiBkZXNjcmlwdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB7IGNvbW1lbnQ6IGRlc2NyaXB0aW9uIH07XG4gICAgfVxuICAgIC8vIGlmIGludmFsaWQgZGVzY3JpcHRpb24gcmV0dXJuIGFuIGVtcHR5IG9iamVjdFxuICAgIHJldHVybiB7fTtcbn07XG5leHBvcnQgZGVmYXVsdCBnZXREZXNjcmlwdGlvbjtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuLyoqXG4gKiBAbmFtZSBnZXRBY2Nlc3NUb2tlblxuICogQGRlc2NyaXB0aW9uIHJldHVybnMgdGhlIGFjY2VzcyB0b2tlbiBmb3IgdGhlIGN1cnJlbnQgZmlsZSBvciB1bmRlZmluZWRcbiAqIEBwYXJhbSBmaWxlSWQge3N0cmluZ30g4oCUIElEIG9mIHRoZSBjdXJyZW50IGZpbGVcbiAqL1xuY29uc3QgZ2V0QWNjZXNzVG9rZW4gPSAoZmlsZUlkKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAvLyBnZXQgYWxsIGFjY2VzcyB0b2tlbnNcbiAgICBjb25zdCBhY2Nlc3NUb2tlbnMgPSB5aWVsZCBmaWdtYS5jbGllbnRTdG9yYWdlLmdldEFzeW5jKCdhY2Nlc3NUb2tlbnMnKTtcbiAgICAvLyBpZiBhY2Nlc3MgdG9rZW5zIG9iamVjdCBpcyBwcmVzZW50XG4gICAgaWYgKGFjY2Vzc1Rva2VucyAhPT0gdW5kZWZpbmVkICYmIGFjY2Vzc1Rva2VucyBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICAvLyByZXRyaWV2ZSB0aGUgYWNjZXNzIHRva2VuIGZyb20gdGhlIGNhY2hlXG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYWNjZXNzVG9rZW5zW2ZpbGVJZF07XG4gICAgICAgIC8vIHJldHVybiB0aGUgYWNjZXNzIHRva2VuIG9yIGFuIGVtcHR5IHN0cmluZ1xuICAgICAgICByZXR1cm4gYWNjZXNzVG9rZW4gfHwgJyc7XG4gICAgfVxuICAgIC8vIHJldHVybiBlbXB0eSBzdHJpbmcgaWYgbm8gdG9rZW4gaXMgc3RvcmVkXG4gICAgcmV0dXJuICcnO1xufSk7XG4vKipcbiAqIEBuYW1lIHNldEFjY2Vzc1Rva2VuXG4gKiBAZGVzY3JpcHRpb24gc3RvcmUgdGhlIGFjY2VzcyB0b2tlbiBmb3IgdGhlIGN1cnJlbnQgZml2ZW4gZmlsZSBpbiB0aGUgdXNlciBjbGllbnRTdG9yYWdlXG4gKiBAcGFyYW0gZmlsZUlkIHtzdHJpbmd9IOKAlCBJRCBvZiB0aGUgY3VycmVudCBmaWxlXG4gKiBAcGFyYW0gZmlsZUlkIHtzdHJpbmd9IOKAlCBhY2Nlc3MgdG9rZW5cbiAqL1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmNvbnN0IHNldEFjY2Vzc1Rva2VuID0gKGZpbGVJZCwgYWNjZXNzVG9rZW4pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgIC8vIGdldCB0aGUgYWNjZXNzIHRva2VuIG9iamVjdFxuICAgIGNvbnN0IGFjY2Vzc1Rva2VucyA9ICh5aWVsZCBmaWdtYS5jbGllbnRTdG9yYWdlLmdldEFzeW5jKCdhY2Nlc3NUb2tlbnMnKSkgfHwge307XG4gICAgLy8gbWVyZ2UgdG9rZW5zXG4gICAgY29uc3QgbWVyZ2VkVG9rZW5zID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhY2Nlc3NUb2tlbnMpLCB7IFtmaWxlSWRdOiBhY2Nlc3NUb2tlbiB9KTtcbiAgICAvLyBtZXJnZSB0aGUgbmV3IHRva2VuIGludG8gdGhlIG9iamVjdFxuICAgIHJldHVybiB5aWVsZCBmaWdtYS5jbGllbnRTdG9yYWdlLnNldEFzeW5jKCdhY2Nlc3NUb2tlbnMnLCBtZXJnZWRUb2tlbnMpO1xufSk7XG5leHBvcnQgeyBnZXRBY2Nlc3NUb2tlbiwgc2V0QWNjZXNzVG9rZW4gfTtcbiIsImltcG9ydCBmaWx0ZXJCeU5hbWVQcm9wZXJ0eSBmcm9tICcuL2ZpbHRlckJ5TmFtZVByb3BlcnR5JztcbmltcG9ydCBnZXRQYWludFN0eWxlcyBmcm9tICcuL2dldFBhaW50U3R5bGVzJztcbmltcG9ydCBnZXRHcmlkU3R5bGVzIGZyb20gJy4vZ2V0R3JpZFN0eWxlcyc7XG5pbXBvcnQgZ2V0VG9rZW5Ob2RlcyBmcm9tICcuL2dldFRva2VuTm9kZXMnO1xuaW1wb3J0IGdldFRleHRTdHlsZXMgZnJvbSAnLi9nZXRUZXh0U3R5bGVzJztcbmltcG9ydCBnZXRFZmZlY3RTdHlsZXMgZnJvbSAnLi9nZXRFZmZlY3RTdHlsZXMnO1xuLyoqXG4gKiBAZnVuY3Rpb24gYnVpbGRGaWdtYURhdGEg4oCTIHJldHVybiBhbiBvYmplY3Qgd2l0aCBhbGwgc3R5bGVzICYgZnJhbWUgdG8gdXNlIGZvciBleHBvcnRcbiAqIEBwYXJhbSB7UGx1Z2luQVBJfSBmaWdtYSDigJQgdGhlIGZpZ21hIFBsdWdpbkFQSSBvYmplY3RcbiAqIEBwYXJhbSBvcHRpb25zIOKAkyBvcHRpb25zIG9iamVjdFxuICovXG5jb25zdCBidWlsZEZpZ21hRGF0YSA9IChmaWdtYSwgb3B0aW9ucyA9IHtcbiAgICBwcmVmaXg6ICdfJyxcbiAgICBleGNsdWRlUHJlZml4OiB0cnVlXG59KSA9PiB7XG4gICAgLy8gdXNlIHNwcmVhZCBvcGVyYXRvciBiZWNhdXNlIHRoZSBvcmlnaW5hbCBpcyByZWFkT25seVxuICAgIGNvbnN0IHRva2VuRnJhbWVzID0gZ2V0VG9rZW5Ob2RlcyhbLi4uZmlnbWEucm9vdC5jaGlsZHJlbl0pO1xuICAgIC8vIGdldCBkYXRhIGZyb20gZmlnbWFcbiAgICByZXR1cm4ge1xuICAgICAgICB0b2tlbkZyYW1lczogdG9rZW5GcmFtZXMsXG4gICAgICAgIHBhaW50U3R5bGVzOiBnZXRQYWludFN0eWxlcyhmaWdtYS5nZXRMb2NhbFBhaW50U3R5bGVzKCkpLmZpbHRlcihmaWx0ZXJCeU5hbWVQcm9wZXJ0eShvcHRpb25zLnByZWZpeCwgb3B0aW9ucy5leGNsdWRlUHJlZml4KSksXG4gICAgICAgIGdyaWRTdHlsZXM6IGdldEdyaWRTdHlsZXMoZmlnbWEuZ2V0TG9jYWxHcmlkU3R5bGVzKCkpLmZpbHRlcihmaWx0ZXJCeU5hbWVQcm9wZXJ0eShvcHRpb25zLnByZWZpeCwgb3B0aW9ucy5leGNsdWRlUHJlZml4KSksXG4gICAgICAgIHRleHRTdHlsZXM6IGdldFRleHRTdHlsZXMoZmlnbWEuZ2V0TG9jYWxUZXh0U3R5bGVzKCkpLmZpbHRlcihmaWx0ZXJCeU5hbWVQcm9wZXJ0eShvcHRpb25zLnByZWZpeCwgb3B0aW9ucy5leGNsdWRlUHJlZml4KSksXG4gICAgICAgIGVmZmVjdFN0eWxlczogZ2V0RWZmZWN0U3R5bGVzKGZpZ21hLmdldExvY2FsRWZmZWN0U3R5bGVzKCkpLmZpbHRlcihmaWx0ZXJCeU5hbWVQcm9wZXJ0eShvcHRpb25zLnByZWZpeCwgb3B0aW9ucy5leGNsdWRlUHJlZml4KSlcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IGJ1aWxkRmlnbWFEYXRhO1xuIiwiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBzZXR0aW5nc0RpYWxvZzoge1xuICAgICAgICB3aWR0aDogNTUwLFxuICAgICAgICBoZWlnaHQ6IDU2NVxuICAgIH0sXG4gICAga2V5OiB7XG4gICAgICAgIGxhc3RWZXJzaW9uU2V0dGluZ3NPcGVuZWQ6ICdsYXN0VmVyc2lvblNldHRpbmdzT3BlbmVkJyxcbiAgICAgICAgZmlsZUlkOiAnZmlsZUlkJ1xuICAgIH1cbn07XG4iLCJpbXBvcnQgcm91bmRXaXRoRGVjaW1hbHMgZnJvbSAnLi9yb3VuZFdpdGhEZWNpbWFscyc7XG5leHBvcnQgY29uc3Qgcm91bmRSZ2JhID0gKHJnYmEsIG9wYWNpdHkpID0+ICh7XG4gICAgcjogcm91bmRXaXRoRGVjaW1hbHMocmdiYS5yICogMjU1LCAwKSxcbiAgICBnOiByb3VuZFdpdGhEZWNpbWFscyhyZ2JhLmcgKiAyNTUsIDApLFxuICAgIGI6IHJvdW5kV2l0aERlY2ltYWxzKHJnYmEuYiAqIDI1NSwgMCksXG4gICAgYTogcm91bmRXaXRoRGVjaW1hbHMob3BhY2l0eSB8fCByZ2JhLmEgfHwgMSlcbn0pO1xuZXhwb3J0IGNvbnN0IGNvbnZlcnRQYWludFRvUmdiYSA9IChwYWludCkgPT4ge1xuICAgIGlmIChwYWludC50eXBlID09PSAnU09MSUQnICYmIHBhaW50LnZpc2libGUgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHJvdW5kUmdiYShwYWludC5jb2xvciwgKHBhaW50Lm9wYWNpdHkgfHwgbnVsbCkpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5leHBvcnQgY29uc3QgY29udmVydFJnYmFPYmplY3RUb1N0cmluZyA9IChyZ2JhT2JqZWN0KSA9PiBgcmdiYSgke3JnYmFPYmplY3Qucn0sICR7cmdiYU9iamVjdC5nfSwgJHtyZ2JhT2JqZWN0LmJ9LCAke3JnYmFPYmplY3QuYX0pYDtcbiIsIi8qKlxuICogUGVyZm9ybXMgYSBkZWVwIG1lcmdlIG9mIGBzb3VyY2VgIGludG8gYHRhcmdldGAuXG4gKiBNdXRhdGVzIGB0YXJnZXRgIG9ubHkgYnV0IG5vdCBpdHMgb2JqZWN0cyBhbmQgYXJyYXlzLlxuICpcbiAqIEBhdXRob3IgaW5zcGlyZWQgYnkgW2poaWxkZW5iaWRkbGVdKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80ODIxODIwOSkuXG4gKi9cbmNvbnN0IGRlZXBNZXJnZSA9ICh0YXJnZXQsIHNvdXJjZSkgPT4ge1xuICAgIC8vIGZ1bmN0aW9uIHRvIHRlc3QgaWYgYSB2YXJpYWJsZSBpcyBhbiBvYmplY3RcbiAgICBjb25zdCBpc09iamVjdCA9IChvYmopID0+IG9iaiAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JztcbiAgICAvLyBtYWtlIHN1cmUgYm90aCB0aGUgdGFyZ2V0IGFuZCB0aGUgc291cmNlIGFyZSBvYmplY3RzXG4gICAgLy8gb3RoZXJ3aXNlIHJldHVybiBzb3VyY2VcbiAgICBpZiAoIWlzT2JqZWN0KHRhcmdldCkgfHwgIWlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICB9XG4gICAgLy8gaXRlcmF0cmUgb3ZlciBzb3VyY2VcbiAgICBPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgLy8gZ2V0IHZhbHVlcyBmcm9tIGJvdGggdGFyZ2V0IGFuZCBzb3VyY2UgZm9yIHRoZSBnaXZlbiBrZXlcbiAgICAgICAgY29uc3QgdGFyZ2V0VmFsdWUgPSB0YXJnZXRba2V5XTtcbiAgICAgICAgY29uc3Qgc291cmNlVmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgLy8gbWVyZ2UgYm90aCB2YWx1ZXNcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0VmFsdWUpICYmIEFycmF5LmlzQXJyYXkoc291cmNlVmFsdWUpKSB7XG4gICAgICAgICAgICB0YXJnZXRba2V5XSA9IHRhcmdldFZhbHVlLmNvbmNhdChzb3VyY2VWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNPYmplY3QodGFyZ2V0VmFsdWUpICYmIGlzT2JqZWN0KHNvdXJjZVZhbHVlKSkge1xuICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBkZWVwTWVyZ2UoT2JqZWN0LmFzc2lnbih7fSwgdGFyZ2V0VmFsdWUpLCBzb3VyY2VWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVZhbHVlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gcmV0dXJuIG1lcmdlIG9iamVjdFxuICAgIHJldHVybiB0YXJnZXQ7XG59O1xuZXhwb3J0IGRlZmF1bHQgZGVlcE1lcmdlO1xuIiwiaW1wb3J0IHsgY29udmVydFBhaW50VG9SZ2JhIH0gZnJvbSAnLi9jb252ZXJ0Q29sb3InO1xuLyoqXG4gKiBSZXR1cm4gYW4gYXJyYXkgb2Ygc29saWQgc3Ryb2tlIGNvbG9yc1xuICovXG5jb25zdCBnZXRTb2xpZFN0cm9rZXMgPSAocGFpbnRzKSA9PiB7XG4gICAgLy8gY2xvbmUgd2l0aG91dCByZWZlcmVuY2VcbiAgICByZXR1cm4gWy4uLnBhaW50c11cbiAgICAgICAgLm1hcChwYWludCA9PiBjb252ZXJ0UGFpbnRUb1JnYmEocGFpbnQpKTtcbn07XG4vKipcbiAqIGV4dHJhY3RUb2tlbk5vZGVWYWx1ZXNcbiAqIEBwYXJhbSBub2RlOiBTY2VuZU5vZGVcbiAqIEByZXR1cm5zIG5vZGUgb2JqZWN0XG4gKi9cbmNvbnN0IGV4dHJhY3RUb2tlbk5vZGVWYWx1ZXMgPSAobm9kZSkgPT4gKHtcbiAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGRlc2NyaXB0aW9uOiBub2RlLmRlc2NyaXB0aW9uIHx8IHVuZGVmaW5lZCxcbiAgICBib3R0b21MZWZ0UmFkaXVzOiBub2RlLmJvdHRvbUxlZnRSYWRpdXMsXG4gICAgYm90dG9tUmlnaHRSYWRpdXM6IG5vZGUuYm90dG9tUmlnaHRSYWRpdXMsXG4gICAgdG9wTGVmdFJhZGl1czogbm9kZS50b3BMZWZ0UmFkaXVzLFxuICAgIHRvcFJpZ2h0UmFkaXVzOiBub2RlLnRvcFJpZ2h0UmFkaXVzLFxuICAgIGNvcm5lclJhZGl1czogbm9kZS5jb3JuZXJSYWRpdXMgfHwgdW5kZWZpbmVkLFxuICAgIGNvcm5lclNtb290aGluZzogbm9kZS5jb3JuZXJTbW9vdGhpbmcsXG4gICAgc3Ryb2tlczogZ2V0U29saWRTdHJva2VzKG5vZGUuc3Ryb2tlcyksXG4gICAgc3Ryb2tlV2VpZ2h0OiBub2RlLnN0cm9rZVdlaWdodCxcbiAgICBzdHJva2VTdHlsZUlkOiBub2RlLnN0cm9rZVN0eWxlSWQsXG4gICAgc3Ryb2tlTWl0ZXJMaW1pdDogbm9kZS5zdHJva2VNaXRlckxpbWl0LFxuICAgIHN0cm9rZUpvaW46IG5vZGUuc3Ryb2tlSm9pbixcbiAgICBzdHJva2VDYXA6IG5vZGUuc3Ryb2tlQ2FwLFxuICAgIGRhc2hQYXR0ZXJuOiBub2RlLmRhc2hQYXR0ZXJuLFxuICAgIHN0cm9rZUFsaWduOiBub2RlLnN0cm9rZUFsaWduLFxuICAgIHdpZHRoOiBub2RlLndpZHRoLFxuICAgIGhlaWdodDogbm9kZS5oZWlnaHQsXG4gICAgcmVhY3Rpb25zOiBub2RlLnJlYWN0aW9ucyB8fCB1bmRlZmluZWQsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHBhZGRpbmdUb3A6IG5vZGUucGFkZGluZ1RvcCB8fCAwLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBwYWRkaW5nUmlnaHQ6IG5vZGUucGFkZGluZ1JpZ2h0IHx8IDAsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHBhZGRpbmdCb3R0b206IG5vZGUucGFkZGluZ0JvdHRvbSB8fCAwLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBwYWRkaW5nTGVmdDogbm9kZS5wYWRkaW5nTGVmdCB8fCAwXG59KTtcbmV4cG9ydCBkZWZhdWx0IGV4dHJhY3RUb2tlbk5vZGVWYWx1ZXM7XG4iLCJjb25zdCBmaWx0ZXJCeVByb3BlcnR5TmFtZSA9IChwcmVmaXggPSAnXycsIGV4Y2x1ZGUgPSB0cnVlKSA9PiB7XG4gICAgcmV0dXJuIChvYmplY3QpID0+IChvYmplY3QubmFtZS50cmltKCkuc3Vic3RyKDAsIHByZWZpeC5sZW5ndGgpICE9PSBwcmVmaXgpID09PSBleGNsdWRlO1xufTtcbmV4cG9ydCBkZWZhdWx0IGZpbHRlckJ5UHJvcGVydHlOYW1lO1xuIiwiLyoqXG4gKiBAZnVuY3Rpb24gZ2V0RWZmZWN0U3R5bGVzXG4gKiBAcGFyYW0ge0FycmF5PEVmZmVjdFN0eWxlPn0gc3R5bGVzIOKAkyB0aGUgZWZmZWN0U3R5bGUgZnJvbSB0aGUgZmlnbWEgZmlsZVxuICovXG5jb25zdCBnZXRFZmZlY3RTdHlsZXMgPSAoc3R5bGVzKSA9PiB7XG4gICAgLy8gaW5pdCBzdHlsZUFycmF5XG4gICAgY29uc3Qgc3R5bGVBcnJheSA9IFtdO1xuICAgIC8vIGxvb3AgdGhyb3VnaCBGaWdtYSBzdHlsZXMgYW5kIGFkZCB0byBhcnJheVxuICAgIHN0eWxlcy5mb3JFYWNoKHN0eWxlID0+IHtcbiAgICAgICAgc3R5bGVBcnJheS5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IHN0eWxlLm5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc3R5bGUuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBlZmZlY3RzOiBzdHlsZS5lZmZlY3RzXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIHJldHVybiBhcnJheVxuICAgIHJldHVybiBzdHlsZUFycmF5O1xufTtcbmV4cG9ydCBkZWZhdWx0IGdldEVmZmVjdFN0eWxlcztcbiIsImltcG9ydCBjb25maWcgZnJvbSAnLi9jb25maWcnO1xuY29uc3QgZ2V0RmlsZUlkID0gKGZpZ21hKSA9PiB7XG4gICAgbGV0IGZpbGVJZCA9IGZpZ21hLnJvb3QuZ2V0UGx1Z2luRGF0YShjb25maWcua2V5LmZpbGVJZCk7XG4gICAgLy8gc2V0IHBsdWdpbiBpZCBpZiBpdCBkb2VzIG5vdCBleGlzdFxuICAgIGlmIChmaWxlSWQgPT09IHVuZGVmaW5lZCB8fCBmaWxlSWQgPT09ICcnKSB7XG4gICAgICAgIGZpZ21hLnJvb3Quc2V0UGx1Z2luRGF0YShjb25maWcua2V5LmZpbGVJZCwgZmlnbWEucm9vdC5uYW1lICsgJyAnICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMDAwMCkpO1xuICAgICAgICAvLyBncmFiIGZpbGUgSURcbiAgICAgICAgZmlsZUlkID0gZmlnbWEucm9vdC5nZXRQbHVnaW5EYXRhKGNvbmZpZy5rZXkuZmlsZUlkKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGVJZDtcbn07XG5leHBvcnQgZGVmYXVsdCBnZXRGaWxlSWQ7XG4iLCIvKipcbiAqIEBmdW5jdGlvbiBnZXRHcmlkU3R5bGVzXG4gKiBAcGFyYW0ge0FycmF5fSBncmlkU3R5bGVzIOKAkyB0aGUgZ3JpZFN0eWxlcyBmcm9tIHRoZSBmaWdtYSBmaWxlXG4gKi9cbmNvbnN0IGdldEdyaWRTdHlsZXMgPSAoc3R5bGVzKSA9PiB7XG4gICAgLy8gaW5pdCBzdHlsZUFycmF5XG4gICAgY29uc3Qgc3R5bGVBcnJheSA9IFtdO1xuICAgIC8vIGxvb3AgdGhyb3VnaCBGaWdtYSBzdHlsZXMgYW5kIGFkZCB0byBhcnJheVxuICAgIHN0eWxlcy5mb3JFYWNoKHN0eWxlID0+IHtcbiAgICAgICAgc3R5bGVBcnJheS5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IHN0eWxlLm5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc3R5bGUuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBsYXlvdXRHcmlkczogc3R5bGUubGF5b3V0R3JpZHNcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgLy8gcmV0dXJuIGFycmF5XG4gICAgcmV0dXJuIHN0eWxlQXJyYXk7XG59O1xuZXhwb3J0IGRlZmF1bHQgZ2V0R3JpZFN0eWxlcztcbiIsImltcG9ydCBnZXRUb2tlbkpzb24gZnJvbSAnLi9nZXRUb2tlbkpzb24nO1xuaW1wb3J0IGJ1aWxkRmlnbWFEYXRhIGZyb20gJy4vYnVpbGRGaWdtYURhdGEnO1xuLyoqXG4gKiBAbmFtZSBnZXRKc29uXG4gKiBAcGFyYW0ge1BsdWdpbkFQSX0gZmlnbWFcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc3RyaW5naWZ5XG4gKi9cbmNvbnN0IGdldEpzb24gPSAoZmlnbWEsIHVzZXJTZXR0aW5ncywgc3RyaW5naWZ5ID0gdHJ1ZSkgPT4ge1xuICAgIC8vIGNvbnN0cnVjdCBmaWdtYSBkYXRhIG9iamVjdFxuICAgIGNvbnN0IGZpZ21hRGF0YSA9IGJ1aWxkRmlnbWFEYXRhKGZpZ21hLCB7XG4gICAgICAgIHByZWZpeDogdXNlclNldHRpbmdzLnByZWZpeCxcbiAgICAgICAgZXhjbHVkZVByZWZpeDogdXNlclNldHRpbmdzLmV4Y2x1ZGVQcmVmaXhcbiAgICB9KTtcbiAgICBpZiAoc3RyaW5naWZ5ID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gZ2V0VG9rZW5Kc29uKGZpZ21hRGF0YSwgJ3N0eWxlRGljdGlvbmFyeScsIHVzZXJTZXR0aW5ncy5uYW1lQ29udmVyc2lvbik7XG4gICAgfVxuICAgIC8vIGdldCB0b2tlbnMgYXMgc3RyaW5naWZpZWQganNvblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShnZXRUb2tlbkpzb24oZmlnbWFEYXRhLCAnc3R5bGVEaWN0aW9uYXJ5JywgdXNlclNldHRpbmdzLm5hbWVDb252ZXJzaW9uKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgZ2V0SnNvbjtcbiIsIi8qKlxuICogQGZ1bmN0aW9uIGdldFBhaW50U3R5bGVzXG4gKiBAcGFyYW0ge0FycmF5fSBwYWludFN0eWxlcyDigJMgdGhlIHBhaW50U3R5bGVzIGZyb20gdGhlIGZpZ21hIGZpbGUgKHNvbWVob3cgc3RpbGwgY29ubmVjdGVkKVxuICovXG5jb25zdCBnZXRQYWludFN0eWxlcyA9IChzdHlsZXMpID0+IHtcbiAgICAvLyBpbml0IHN0eWxlQXJyYXlcbiAgICBjb25zdCBzdHlsZUFycmF5ID0gW107XG4gICAgLy8gbG9vcCB0aHJvdWdoIEZpZ21hIHN0eWxlcyBhbmQgYWRkIHRvIGFycmF5XG4gICAgc3R5bGVzLmZvckVhY2goc3R5bGUgPT4ge1xuICAgICAgICBzdHlsZUFycmF5LnB1c2goe1xuICAgICAgICAgICAgbmFtZTogc3R5bGUubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHlsZS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHBhaW50czogc3R5bGUucGFpbnRzXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIHJldHVybiBhcnJheVxuICAgIHJldHVybiBzdHlsZUFycmF5O1xufTtcbmV4cG9ydCBkZWZhdWx0IGdldFBhaW50U3R5bGVzO1xuIiwiLyoqXG4gKiBAZnVuY3Rpb24gZ2V0VGV4dFN0eWxlc1xuICogQHBhcmFtIHtBcnJheTxUZXh0U3R5bGU+fSBzdHlsZXMg4oCTIHRoZSBwYWludFN0eWxlcyBmcm9tIHRoZSBmaWdtYSBmaWxlIChzb21laG93IHN0aWxsIGNvbm5lY3RlZClcbiAqL1xuY29uc3QgZ2V0VGV4dFN0eWxlcyA9IChzdHlsZXMpID0+IHtcbiAgICAvLyBpbml0IHN0eWxlQXJyYXlcbiAgICBjb25zdCBzdHlsZUFycmF5ID0gW107XG4gICAgLy8gbG9vcCB0aHJvdWdoIEZpZ21hIHN0eWxlcyBhbmQgYWRkIHRvIGFycmF5XG4gICAgc3R5bGVzLmZvckVhY2goc3R5bGUgPT4ge1xuICAgICAgICBzdHlsZUFycmF5LnB1c2goe1xuICAgICAgICAgICAgbmFtZTogc3R5bGUubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHlsZS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGZvbnRTaXplOiBzdHlsZS5mb250U2l6ZSxcbiAgICAgICAgICAgIHRleHREZWNvcmF0aW9uOiBzdHlsZS50ZXh0RGVjb3JhdGlvbixcbiAgICAgICAgICAgIGZvbnROYW1lOiBzdHlsZS5mb250TmFtZSxcbiAgICAgICAgICAgIGxldHRlclNwYWNpbmc6IHN0eWxlLmxldHRlclNwYWNpbmcsXG4gICAgICAgICAgICBsaW5lSGVpZ2h0OiBzdHlsZS5saW5lSGVpZ2h0LFxuICAgICAgICAgICAgcGFyYWdyYXBoSW5kZW50OiBzdHlsZS5wYXJhZ3JhcGhJbmRlbnQsXG4gICAgICAgICAgICBwYXJhZ3JhcGhTcGFjaW5nOiBzdHlsZS5wYXJhZ3JhcGhTcGFjaW5nLFxuICAgICAgICAgICAgdGV4dENhc2U6IHN0eWxlLnRleHRDYXNlXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIHJldHVybiBhcnJheVxuICAgIHJldHVybiBzdHlsZUFycmF5O1xufTtcbmV4cG9ydCBkZWZhdWx0IGdldFRleHRTdHlsZXM7XG4iLCJpbXBvcnQgZXh0cmFjdENvbG9ycyBmcm9tICcuLi9leHRyYWN0b3IvZXh0cmFjdENvbG9ycyc7XG5pbXBvcnQgZXh0cmFjdEdyaWRzIGZyb20gJy4uL2V4dHJhY3Rvci9leHRyYWN0R3JpZHMnO1xuaW1wb3J0IGV4dHJhY3RGb250cyBmcm9tICcuLi9leHRyYWN0b3IvZXh0cmFjdEZvbnRzJztcbmltcG9ydCBleHRyYWN0RWZmZWN0cyBmcm9tICcuLi9leHRyYWN0b3IvZXh0cmFjdEVmZmVjdHMnO1xuaW1wb3J0IGV4dHJhY3RNb3Rpb24gZnJvbSAnLi4vZXh0cmFjdG9yL2V4dHJhY3RNb3Rpb24nO1xuaW1wb3J0IGV4dHJhY3RTaXplcyBmcm9tICcuLi9leHRyYWN0b3IvZXh0cmFjdFNpemVzJztcbmltcG9ydCBleHRyYWN0U3BhY2luZyBmcm9tICcuLi9leHRyYWN0b3IvZXh0cmFjdFNwYWNpbmcnO1xuaW1wb3J0IGV4dHJhY3RCb3JkZXJzIGZyb20gJy4uL2V4dHJhY3Rvci9leHRyYWN0Qm9yZGVycyc7XG5pbXBvcnQgZXh0cmFjdFJhZGlpIGZyb20gJy4uL2V4dHJhY3Rvci9leHRyYWN0UmFkaWknO1xuaW1wb3J0IGV4dHJhY3RCcmVha3BvaW50cyBmcm9tICcuLi9leHRyYWN0b3IvZXh0cmFjdEJyZWFrcG9pbnRzJztcbmltcG9ydCBncm91cEJ5TmFtZSBmcm9tICcuL2dyb3VwQnlOYW1lJztcbmltcG9ydCBzdHlsZURpY3Rpb25hcnlUcmFuc2Zvcm1lciBmcm9tICcuLi90cmFuc2Zvcm1lci9zdHlsZURpY3Rpb25hcnlUcmFuc2Zvcm1lcic7XG5jb25zdCB0cmFuc2Zvcm1lciA9IHtcbiAgICBzdHlsZURpY3Rpb25hcnk6IHN0eWxlRGljdGlvbmFyeVRyYW5zZm9ybWVyXG59O1xuY29uc3QgZXhwb3J0UmF3VG9rZW5BcnJheSA9IChmaWdtYURhdGEpID0+IHtcbiAgICAvLyBnZXQgdG9rZW5zXG4gICAgcmV0dXJuIFtcbiAgICAgICAgLi4uZXh0cmFjdFNpemVzKGZpZ21hRGF0YS50b2tlbkZyYW1lcyksXG4gICAgICAgIC4uLmV4dHJhY3RCcmVha3BvaW50cyhmaWdtYURhdGEudG9rZW5GcmFtZXMpLFxuICAgICAgICAuLi5leHRyYWN0U3BhY2luZyhmaWdtYURhdGEudG9rZW5GcmFtZXMpLFxuICAgICAgICAuLi5leHRyYWN0Qm9yZGVycyhmaWdtYURhdGEudG9rZW5GcmFtZXMpLFxuICAgICAgICAuLi5leHRyYWN0UmFkaWkoZmlnbWFEYXRhLnRva2VuRnJhbWVzKSxcbiAgICAgICAgLi4uZXh0cmFjdE1vdGlvbihmaWdtYURhdGEudG9rZW5GcmFtZXMpLFxuICAgICAgICAuLi5leHRyYWN0Q29sb3JzKGZpZ21hRGF0YS5wYWludFN0eWxlcyksXG4gICAgICAgIC4uLmV4dHJhY3RHcmlkcyhmaWdtYURhdGEuZ3JpZFN0eWxlcyksXG4gICAgICAgIC4uLmV4dHJhY3RGb250cyhmaWdtYURhdGEudGV4dFN0eWxlcyksXG4gICAgICAgIC4uLmV4dHJhY3RFZmZlY3RzKGZpZ21hRGF0YS5lZmZlY3RTdHlsZXMpXG4gICAgXTtcbn07XG5jb25zdCBnZXRUb2tlbkpzb24gPSAoZmlnbWFEYXRhLCBmb3JtYXQgPSAnc3R5bGVEaWN0aW9uYXJ5JywgbmFtZUNvbnZlcnNpb24gPSAnZGVmYXVsdCcpID0+IHtcbiAgICAvLyBnZXQgdG9rZW4gYXJyYXlcbiAgICBjb25zdCB0b2tlbkFycmF5ID0gZXhwb3J0UmF3VG9rZW5BcnJheShmaWdtYURhdGEpO1xuICAgIC8vIGZvcm1hdCB0b2tlbnNcbiAgICBjb25zdCBmb3JtYXR0ZWRUb2tlbnMgPSB0b2tlbkFycmF5Lm1hcCgodG9rZW4pID0+IHRyYW5zZm9ybWVyW2Zvcm1hdF0odG9rZW4pKTtcbiAgICAvLyBncm91cCB0b2tlbnNcbiAgICBjb25zdCBncm91cGVkVG9rZW5zID0gZ3JvdXBCeU5hbWUoZm9ybWF0dGVkVG9rZW5zLCB0cnVlLCBuYW1lQ29udmVyc2lvbik7XG4gICAgLy8gcmV0dXJuIGdyb3VwIHRva2Vuc1xuICAgIHJldHVybiBncm91cGVkVG9rZW5zO1xufTtcbmV4cG9ydCBkZWZhdWx0IGdldFRva2VuSnNvbjtcbiIsImltcG9ydCBleHRyYWN0VG9rZW5Ob2RlVmFsdWVzIGZyb20gJy4vZXh0cmFjdFRva2VuTm9kZVZhbHVlcyc7XG5pbXBvcnQgaXNUb2tlbk5vZGUgZnJvbSAnLi9pc1Rva2VuTm9kZSc7XG4vLyB0aGUgbmFtZSB0aGF0IHRva2VuIGZyYW1lcyBoYXZlXG5jb25zdCB0b2tlbkZyYW1lTmFtZSA9ICdfdG9rZW5zJztcbi8vIGNoZWNrIGlmIGEgZnJhbWUgaXMgYSBfdG9rZW4gZnJhbWVcbmNvbnN0IGlzVG9rZW5GcmFtZSA9IChub2RlKSA9PiBub2RlLnR5cGUgPT09ICdGUkFNRScgJiYgbm9kZS5uYW1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnN1YnN0cigwLCB0b2tlbkZyYW1lTmFtZS5sZW5ndGgpID09PSB0b2tlbkZyYW1lTmFtZTtcbi8vIHJldHVybiBvbmx5IG5vZGVzIHRoYXQgYXJlIGZyYW1lc1xuY29uc3QgZ2V0RnJhbWVOb2RlcyA9IChub2RlcykgPT4gWy4uLm5vZGVzLm1hcChwYWdlID0+IHBhZ2UuZmluZENoaWxkcmVuKG5vZGUgPT4gaXNUb2tlbkZyYW1lKG5vZGUpKSkucmVkdWNlKChmbGF0dGVuLCBhcnIpID0+IFsuLi5mbGF0dGVuLCAuLi5hcnJdKV07XG4vKipcbiAqIGdldFZhcmlhbnROYW1lXG4gKiBjcmVhdGVzIHRoZSB2YXJpYW50IG5hbWUgb2YgdGhlIHBhcmVudCBhbmQgY2hpbGQgbmFtZVxuICovXG5jb25zdCBnZXRWYXJpYW50TmFtZSA9IChwYXJlbnROYW1lLCBjaGlsZE5hbWUpID0+IHtcbiAgICAvLyBzcGxpdCBpbnRvIGFycmF5XG4gICAgY2hpbGROYW1lID0gY2hpbGROYW1lLnNwbGl0KCcsJylcbiAgICAgICAgLy8gcmVtb3ZlIGhpZGRlbiBuYW1lc1xuICAgICAgICAuZmlsdGVyKHBhcnQgPT4gIVsnXycsICcuJ10uaW5jbHVkZXMocGFydC50cmltKCkuc3Vic3RyKDAsIDEpKSlcbiAgICAgICAgLy8gY2xlYW51cCBuYW1lcywgb25seSByZXR1cm4gdmFsdWUgcGFydFxuICAgICAgICAubWFwKHBhcnQgPT4gcGFydC5zcGxpdCgnPScpWzFdKVxuICAgICAgICAvLyBjb21iaW5lXG4gICAgICAgIC5qb2luKCcvJyk7XG4gICAgLy8gcmV0dXJuIGZ1bGwgbmFtZVxuICAgIHJldHVybiBgJHtwYXJlbnROYW1lfS8ke2NoaWxkTmFtZX1gO1xufTtcbi8qKlxuICogUmV0dXJucyBhbGwgZnJhbWVzIGZyb20gdGhlIGZpbGUgdGhhdCBoYXZlIGEgbmFtZSB0aGF0IHN0YXJ0cyB3aXRoIF90b2tlbnMgb3IgdGhlIHVzZXIgZGVmaW5lZCB0b2tlbiBzcGVjaWZpZXJcbiAqXG4gKiBAcGFyYW0gcGFnZXMgUGFnZU5vZGVzXG4gKi9cbmNvbnN0IGdldFRva2VuTm9kZXMgPSAocGFnZXMpID0+IHtcbiAgICAvLyBnZXQgdG9rZW4gZnJhbWVzXG4gICAgY29uc3QgdG9rZW5GcmFtZXMgPSBnZXRGcmFtZU5vZGVzKHBhZ2VzKTtcbiAgICAvLyBnZXQgYWxsIGNoaWxkcmVuIG9mIHRva2VuIGZyYW1lc1xuICAgIHJldHVybiB0b2tlbkZyYW1lcy5tYXAoZnJhbWUgPT4gZnJhbWVcbiAgICAgICAgLy8gY2hlY2sgaWYgY2hpbGRyZW4gYXJlIG9mIHZhbGlkZSB0eXBlc1xuICAgICAgICAuZmluZEFsbChcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIG5vZGUgPT4gaXNUb2tlbk5vZGUobm9kZSkpKVxuICAgICAgICAvLyBtZXJnZXMgYWxsIGNoaWxkcmVuIGludG8gb25lIGFycmF5XG4gICAgICAgIC5yZWR1Y2UoKGZsYXR0ZW4sIGFycikgPT4gWy4uLmZsYXR0ZW4sIC4uLmFycl0sIFtdKVxuICAgICAgICAvLyB1bnBhY2sgdmFyaWFudHMgJiB3YXJuIGFib3V0IGRlcHJlY2F0ZWQgdHlwZXNcbiAgICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS50eXBlID09PSAnUkVDVEFOR0xFJyB8fCBpdGVtLnR5cGUgPT09ICdGUkFNRScpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignUGxlYXNlIHVzZSBvbmx5IG1haW4gY29tcG9uZW50cyBhbmQgdmFyaWFudHMsIG90aGVyIHR5cGVzIG1heSBiZSBkZXByZWNhdGVkIGFzIHRva2VucyBpbiB0aGUgZnV0dXJlJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdW5wYWNrIHZhcmlhbnRzXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdDT01QT05FTlRfU0VUJykge1xuICAgICAgICAgICAgLy8gVE9ETzogTmFtZSBpcyBvdmVyd3JpdGluZyByZWFsIG9iamVjdCBpbiBmaWdtYVxuICAgICAgICAgICAgLy8gLT4gY3JlYXRlIGNsb25lIGFuZCBtb3ZlIHRvIG5ldyBhcnJheSB0byByZXR1cm5cbiAgICAgICAgICAgIHJldHVybiBpdGVtLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGV4dHJhY3RUb2tlbk5vZGVWYWx1ZXMoY2hpbGQpKSwgeyBuYW1lOiBnZXRWYXJpYW50TmFtZShpdGVtLm5hbWUsIGNoaWxkLm5hbWUpIH0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmV0dXJuIG5vcm1hbCBpdGVtIGFzIGFycmF5IHRvIHVucGFjayBsYXRlclxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBbZXh0cmFjdFRva2VuTm9kZVZhbHVlcyhpdGVtKV07XG4gICAgfSlcbiAgICAgICAgLy8gbWVyZ2VzIHRoZSB2YXJpYW50IGNoaWxkcmVuIGludG8gb25lIGFycmF5XG4gICAgICAgIC5yZWR1Y2UoKGZsYXR0ZW4sIGFycikgPT4gWy4uLmZsYXR0ZW4sIC4uLmFycl0sIFtdKTtcbn07XG5leHBvcnQgZGVmYXVsdCBnZXRUb2tlbk5vZGVzO1xuZXhwb3J0IGNvbnN0IF9fdGVzdGluZyA9IHtcbiAgICBpc1Rva2VuTm9kZTogaXNUb2tlbk5vZGUsXG4gICAgaXNUb2tlbkZyYW1lOiBpc1Rva2VuRnJhbWVcbn07XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCBzZW1WZXJEaWZmZXJlbmNlIGZyb20gJy4vc2VtVmVyRGlmZmVyZW5jZSc7XG5pbXBvcnQgY3VycmVudFZlcnNpb24gZnJvbSAnLi92ZXJzaW9uJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi9jb25maWcnO1xuY29uc3QgZ2V0VmVyc2lvbkRpZmZlcmVuY2UgPSAoZmlnbWEpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgIC8vIGdldCB2ZXJzaW9uICYgdmVyc2lvbiBkaWZmZXJlbmNlXG4gICAgY29uc3QgbGFzdFZlcnNpb25TZXR0aW5nc09wZW5lZCA9IHlpZWxkIGZpZ21hLmNsaWVudFN0b3JhZ2UuZ2V0QXN5bmMoY29uZmlnLmtleS5sYXN0VmVyc2lvblNldHRpbmdzT3BlbmVkKTtcbiAgICBjb25zdCB2ZXJzaW9uRGlmZmVyZW5jZSA9IHNlbVZlckRpZmZlcmVuY2UoY3VycmVudFZlcnNpb24sIGxhc3RWZXJzaW9uU2V0dGluZ3NPcGVuZWQpO1xuICAgIC8vIHVwZGF0ZSB2ZXJzaW9uXG4gICAgaWYgKCFsYXN0VmVyc2lvblNldHRpbmdzT3BlbmVkIHx8IGxhc3RWZXJzaW9uU2V0dGluZ3NPcGVuZWQgIT09IGN1cnJlbnRWZXJzaW9uKSB7XG4gICAgICAgIHlpZWxkIGZpZ21hLmNsaWVudFN0b3JhZ2Uuc2V0QXN5bmMoY29uZmlnLmtleS5sYXN0VmVyc2lvblNldHRpbmdzT3BlbmVkLCBjdXJyZW50VmVyc2lvbik7XG4gICAgfVxuICAgIC8vIHJldHVybiB2ZXJzaW9uIERpZmZlcmVuY2VcbiAgICByZXR1cm4gdmVyc2lvbkRpZmZlcmVuY2U7XG59KTtcbmV4cG9ydCBkZWZhdWx0IGdldFZlcnNpb25EaWZmZXJlbmNlO1xuIiwiaW1wb3J0IGRlZXBNZXJnZSBmcm9tICcuL2RlZXBNZXJnZSc7XG5pbXBvcnQgdHJhbnNmb3JtTmFtZSBmcm9tICcuLi91dGlsaXRpZXMvdHJhbnNmb3JtTmFtZSc7XG4vLyBjcmVhdGUgYSBuZXN0ZWQgb2JqZWN0IHN0cnVjdHVyZSBmcm9tIHRoZSBhcnJheSAoWydzdHlsZScsJ2NvbG9ycycsJ21haW4nLCdyZWQnXSlcbmNvbnN0IG5lc3RlZE9iamVjdEZyb21BcnJheSA9IChhcnJheSwgdmFsdWUpID0+IHtcbiAgICAvLyByZWR1Y2VyXG4gICAgY29uc3QgcmVkdWNlciA9ICh2YWwsIGtleSkgPT4gKHsgW2tleV06IHZhbCB9KTtcbiAgICAvLyByZXR1cm4gcmVkdWNlZCBhcnJheVxuICAgIHJldHVybiBhcnJheS5yZWR1Y2VSaWdodChyZWR1Y2VyLCB2YWx1ZSk7XG59O1xuY29uc3QgZ3JvdXBCeU5hbWUgPSAodG9rZW5BcnJheSwgcmVtb3ZlTmFtZSA9IHRydWUsIG5hbWVDb252ZXJzaW9uID0gJ2RlZmF1bHQnKSA9PiB7XG4gICAgLy8gbmVzdCB0b2tlbnMgaW50byBvYmplY3Qgd2l0aCBoaWVyYWNoeSBkZWZpbmVkIGJ5IG5hbWUgdXNpbmcgL1xuICAgIGNvbnN0IGdyb3VwZWRUb2tlbnMgPSB0b2tlbkFycmF5Lm1hcCh0b2tlbiA9PiB7XG4gICAgICAgIC8vIHNwbGl0IHRva2VuIG5hbWUgaW50byBhcnJheVxuICAgICAgICAvLyByZW1vdmUgbGVhZGluZyBhbmQgZm9sbG93aW5nIHdoaXRlc3BhY2UgZm9yIGV2ZXJ5IGl0ZW1cbiAgICAgICAgLy8gdHJhbnNmb3JtIGl0ZW1zIHRvIGxvd2VyQ2FzZVxuICAgICAgICBjb25zdCBncm91cHNGcm9tTmFtZSA9IHRva2VuLm5hbWUuc3BsaXQoJy8nKS5tYXAoZ3JvdXAgPT4gdHJhbnNmb3JtTmFtZShncm91cCwgbmFtZUNvbnZlcnNpb24pKTtcbiAgICAgICAgLy8gcmVtb3ZlIG5hbWUgaWYgbm90IG90aGVyd2lzZSBzcGVjaWZpZWRcbiAgICAgICAgaWYgKHJlbW92ZU5hbWUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0b2tlbi5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJldHVyblxuICAgICAgICByZXR1cm4gbmVzdGVkT2JqZWN0RnJvbUFycmF5KGdyb3Vwc0Zyb21OYW1lLCB0b2tlbik7XG4gICAgfSk7XG4gICAgaWYgKGdyb3VwZWRUb2tlbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyByZXR1cm4gbWVyZ2VkIG9iamVjdCBvZiB0b2tlbnMgZ3JvdXBlZCBieSBuYW1lIGhpZXJhY2h5XG4gICAgICAgIHJldHVybiBncm91cGVkVG9rZW5zLnJlZHVjZSgoYWNjdW11bGF0b3IgPSB7fSwgY3VycmVudFZhbHVlKSA9PiBkZWVwTWVyZ2UoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG59O1xuZXhwb3J0IGRlZmF1bHQgZ3JvdXBCeU5hbWU7XG4iLCIvLyB0aGUgbm9kZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIGZvciB0b2tlbnNcbmNvbnN0IHRva2VuTm9kZVR5cGVzID0gW1xuICAgICdDT01QT05FTlQnLFxuICAgICdDT01QT05FTlRfU0VUJyxcbiAgICAnUkVDVEFOR0xFJyxcbiAgICAnRlJBTUUnXG5dO1xuLyoqXG4gKiBjaGVjayBpZiBhIG5vZGUgaXMgYSB2YWxpZCB0b2tlbiBub2RlIHR5cGVcbiAqIEN1cnJlbnRseTogJ0NPTVBPTkVOVCcsICdGUkFNRSBvciAnUkVDVEFOR0xFJ1xuICogQHBhcmFtIFNjZW5lTm9kZSBub2RlXG4gKi9cbmNvbnN0IGlzVG9rZW5Ob2RlID0gKG5vZGUpID0+IHtcbiAgICByZXR1cm4gbm9kZS5wYXJlbnQudHlwZSAhPT0gJ0NPTVBPTkVOVF9TRVQnICYmIHRva2VuTm9kZVR5cGVzLmluY2x1ZGVzKG5vZGUudHlwZSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgaXNUb2tlbk5vZGU7XG4iLCIvKipcbiAqIElmIHRoZSBwcm92aWRlZCB2YWx1ZSBpcyBhIG51bWJlclxuICogaXQgaXMgcm91bmRlZCB0byAzIGRlY2ltYWwgcG9zaXRpb25zXG4gKiBvdGhlcndpc2UgaXQgaXMgcmV0dXJuZWQgYXMgaXNcbiAqIEBwYXJhbSB2YWx1ZSBudW1iZXJcbiAqIEBwYXJhbSBkZWNpbWFsUGxhY2VzIGludFxuICovXG5jb25zdCByb3VuZFdpdGhEZWNpbWFscyA9ICh2YWx1ZSwgZGVjaW1hbFBsYWNlcyA9IDIpID0+IHtcbiAgICAvLyBleGl0IGlmIHZhbHVlIGlzIHVuZGVmaW5lZFxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gY2hlY2sgZm9yIGNvcnJlY3QgaW5wdXRzXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicgfHwgdHlwZW9mIGRlY2ltYWxQbGFjZXMgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYXJhbWV0ZXJzLCBib3RoIHZhbHVlIFwiJHt2YWx1ZX1cIiAoJHt0eXBlb2YgdmFsdWV9KSBhbmQgZGVjaW1hbFBsYWNlcyBcIiR7ZGVjaW1hbFBsYWNlc31cIiAoJHt0eXBlb2YgZGVjaW1hbFBsYWNlc30pIG11c3QgYmUgb2YgdHlwZSBudW1iZXJgKTtcbiAgICB9XG4gICAgLy8gc2V0IGRlY2ltYWwgcGxhY2VzXG4gICAgY29uc3QgZmFjdG9yT2ZUZW4gPSBNYXRoLnBvdygxMCwgZGVjaW1hbFBsYWNlcyk7XG4gICAgLy8gcm91bmQgcmVzdWx0IGFuZCByZXR1cm5cbiAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIGZhY3Rvck9mVGVuKSAvIGZhY3Rvck9mVGVuO1xufTtcbmV4cG9ydCBkZWZhdWx0IHJvdW5kV2l0aERlY2ltYWxzO1xuIiwiZXhwb3J0IGRlZmF1bHQgKGN1cnJlbnRTZW1WZXIsIHByZXZTZW1WZXJzID0gJzEuMC4wJykgPT4ge1xuICAgIGNvbnN0IFtwTWFqb3IsIHBNaW5vciwgcFBhdGNoXSA9IHByZXZTZW1WZXJzLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgW2NNYWpvciwgY01pbm9yLCBjUGF0Y2hdID0gY3VycmVudFNlbVZlci5zcGxpdCgnLicpO1xuICAgIGlmIChwTWFqb3IgPCBjTWFqb3IpIHtcbiAgICAgICAgcmV0dXJuICdtYWpvcic7XG4gICAgfVxuICAgIGlmIChwTWlub3IgPCBjTWlub3IpIHtcbiAgICAgICAgcmV0dXJuICdtaW5vcic7XG4gICAgfVxuICAgIGlmIChwUGF0Y2ggPCBjUGF0Y2gpIHtcbiAgICAgICAgcmV0dXJuICdwYXRjaCc7XG4gICAgfVxufTtcbiIsImltcG9ydCBzZXR0aW5nc0RlZmF1bHQgZnJvbSAnLi9zZXR0aW5nc0RlZmF1bHQnO1xuY29uc3Qgc2V0dGluZ3NLZXkgPSAnc2V0dGluZ3MnO1xuLyoqXG4gKiBGdW5jdGlvbiBzYW5pdGl6ZXMgYW5kIHByZXBhcmVzIHNldHRpbmdzIHRvIGJlIHN0b3JlZFxuICogQHBhcmFtIG5ld1NldHRpbmdzXG4gKiBAcGFyYW0gY3VycmVudFNldHRpbmdzXG4gKi9cbmNvbnN0IHNldHRpbmdzUHJlcGFyZSA9IChuZXdTZXR0aW5ncywgY3VycmVudFNldHRpbmdzKSA9PiB7XG4gICAgLy8gaW5pdGlhbGl6ZSBvYmplY3RcbiAgICBjb25zdCBtZXJnZWRTZXR0aW5ncyA9IHt9O1xuICAgIC8vIGFkZCBwdWJsaWMgc2V0dGluZ3NcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhzZXR0aW5nc0RlZmF1bHQpKSB7XG4gICAgICAgIC8vIGF2b2lkIGVtcHR5IHZhbHVlc1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlLmRlZmF1bHQgPT09ICdzdHJpbmcnICYmIHZhbHVlLmVtcHR5ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgaWYgKG5ld1NldHRpbmdzW2tleV0udHJpbSgpID09PSAnJykge1xuICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW2tleV0gPSBjdXJyZW50U2V0dGluZ3Nba2V5XSB8fCB2YWx1ZS5kZWZhdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHZhbGlkIG5ldyBzZXR0aW5nc1xuICAgICAgICBpZiAodHlwZW9mIG5ld1NldHRpbmdzW2tleV0gPT09IHR5cGVvZiB2YWx1ZS5kZWZhdWx0KSB7XG4gICAgICAgICAgICBtZXJnZWRTZXR0aW5nc1trZXldID0gbmV3U2V0dGluZ3Nba2V5XTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB2YWxpZCBjdXJyZW50IHNldHRpbmdzXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjdXJyZW50U2V0dGluZ3Nba2V5XSA9PT0gdHlwZW9mIHZhbHVlLmRlZmF1bHQpIHtcbiAgICAgICAgICAgIG1lcmdlZFNldHRpbmdzW2tleV0gPSBjdXJyZW50U2V0dGluZ3Nba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIGJvdGggbmV3IGFuZCBvbGQgdmFsdWUgZG9uJ3QgZml0LCB1c2UgZGVmYXVsdFxuICAgICAgICAgICAgbWVyZ2VkU2V0dGluZ3Nba2V5XSA9IHZhbHVlLmRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gcmV0dXJuIG1lcmdlZCBzZXR0aW5ncyBvYmplY3RcbiAgICByZXR1cm4gbWVyZ2VkU2V0dGluZ3M7XG59O1xuLyoqXG4gKiBnZXQgdGhlIGN1cnJlbnQgdXNlcnMgc2V0dGluZ3NcbiAqIGZvciBzZXR0aW5ncyB0aGF0IGFyZSBub3Qgc2V0LCB0aGUgZGVmYXVsdHMgd2lsbCBiZSB1c2VkXG4gKiBAcmV0dXJuIG9iamVjdFxuICovXG5jb25zdCBnZXRTZXR0aW5ncyA9ICgpID0+IHtcbiAgICBsZXQgdXNlclNldHRpbmdzID0gZmlnbWEucm9vdC5nZXRQbHVnaW5EYXRhKHNldHRpbmdzS2V5KTtcbiAgICBpZiAodXNlclNldHRpbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdXNlclNldHRpbmdzID0gSlNPTi5wYXJzZSh1c2VyU2V0dGluZ3MpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdXNlclNldHRpbmdzID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvLyBpbml0IHNldHRpbmdzIG9iamVjdFxuICAgIGNvbnN0IHNldHRpbmdzID0ge307XG4gICAgLy8gZmlsbCB3aXRoIHVzZXIgc2V0dGluZ3Mgb3IgZGVmYXVsdHNcbiAgICBPYmplY3QuZW50cmllcyhzZXR0aW5nc0RlZmF1bHQpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBpZiAodXNlclNldHRpbmdzICE9PSB1bmRlZmluZWQgJiYgdXNlclNldHRpbmdzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNldHRpbmdzW2tleV0gPSB1c2VyU2V0dGluZ3Nba2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2V0dGluZ3Nba2V5XSA9IHZhbHVlLmRlZmF1bHQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNldHRpbmdzO1xufTtcbi8qKlxuICogQG5hbWUgc2F2ZVNldHRpbmdzXG4gKiBAZGVzY3JpcHRpb24gc2F2ZSB0aGUgdXNlciBzZXR0aW5ncyB0byB0aGUgXCJjYWNoZVwiXG4gKiBAcGFyYW0ge1VzZXJTZXR0aW5nc30gc2V0dGluZ3NcbiAqL1xuY29uc3Qgc2V0U2V0dGluZ3MgPSAoc2V0dGluZ3MpID0+IHtcbiAgICBzZXR0aW5ncyA9IHNldHRpbmdzUHJlcGFyZShzZXR0aW5ncywgZ2V0U2V0dGluZ3MoKSk7XG4gICAgLy8gc3RvcmUgcHVibGljIHNldHRpbmdzIHRoYXQgc2hvdWxkIGJlIHNoYXJlZCBhY3Jvc3Mgb3JnXG4gICAgZmlnbWEucm9vdC5zZXRQbHVnaW5EYXRhKHNldHRpbmdzS2V5LCBKU09OLnN0cmluZ2lmeShzZXR0aW5ncywgbnVsbCwgMikpO1xufTtcbi8vIGV4cG9ydHNcbmV4cG9ydCB7IHNldHRpbmdzS2V5LCBnZXRTZXR0aW5ncywgc2V0U2V0dGluZ3MgfTtcbmV4cG9ydCBjb25zdCBfX3Rlc3RpbmcgPSB7XG4gICAgc2V0dGluZ3NQcmVwYXJlOiBzZXR0aW5nc1ByZXBhcmVcbn07XG4iLCIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLy8gc2V0dGluZ3Mgc3RydWN0dXJlICYgZGVmYXVsdCB2YWx1ZXNcbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBmaWxlbmFtZToge1xuICAgICAgICBkZWZhdWx0OiAnZGVzaWduLXRva2VucycsXG4gICAgICAgIGVtcHR5OiBmYWxzZVxuICAgIH0sXG4gICAgbmFtZUNvbnZlcnNpb246IHtcbiAgICAgICAgZGVmYXVsdDogJ2RlZmF1bHQnLFxuICAgICAgICBlbXB0eTogZmFsc2VcbiAgICB9LFxuICAgIGV4Y2x1ZGVQcmVmaXg6IHtcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgZW1wdHk6IGZhbHNlXG4gICAgfSxcbiAgICBwcmVmaXg6IHtcbiAgICAgICAgZGVmYXVsdDogJ18nLFxuICAgICAgICBlbXB0eTogZmFsc2VcbiAgICB9LFxuICAgIHNlcnZlclVybDoge1xuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgZW1wdHk6IHRydWVcbiAgICB9LFxuICAgIGV2ZW50VHlwZToge1xuICAgICAgICBkZWZhdWx0OiAndXBkYXRlLXRva2VucycsXG4gICAgICAgIGVtcHR5OiBmYWxzZVxuICAgIH0sXG4gICAgYWNjZXB0SGVhZGVyOiB7XG4gICAgICAgIGRlZmF1bHQ6ICdhcHBsaWNhdGlvbi92bmQuZ2l0aHViLmV2ZXJlc3QtcHJldmlldytqc29uJyxcbiAgICAgICAgZW1wdHk6IHRydWVcbiAgICB9LFxuICAgIGF1dGhUeXBlOiB7XG4gICAgICAgIGRlZmF1bHQ6ICd0b2tlbicsXG4gICAgICAgIGVtcHR5OiBmYWxzZVxuICAgIH1cbn07XG4iLCJjb25zdCByZXR1cm5PclRocm93ID0gKGNvbnZlcnRlZFN0cmluZywgb3JpZ2luYWxTdHJpbmcsIHN0cmluZ0Nhc2UpID0+IHtcbiAgICAvLyByZXR1cm4gY29udmVydGVkIHN0cmluZyBpZiBzdWNjZXNzZnVsXG4gICAgaWYgKHR5cGVvZiBjb252ZXJ0ZWRTdHJpbmcgPT09ICdzdHJpbmcnICYmIGNvbnZlcnRlZFN0cmluZyAhPT0gJycpIHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRlZFN0cmluZztcbiAgICB9XG4gICAgLy8gdGhyb3cgZXJyb3JcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbnZlcnRpbmcgXCIke29yaWdpbmFsU3RyaW5nfVwiIHRvICR7c3RyaW5nQ2FzZX0sIHJlc3VsdGluZyBpbiBcIiR7Y29udmVydGVkU3RyaW5nfVwiYCk7XG59O1xuY29uc3QgdG9DYW1lbENhc2UgPSAoc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgY29udmVydGVkU3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1snXCJdL2csICcnKVxuICAgICAgICAucmVwbGFjZSgvKFstXyBdKXsxLH0vZywgJyAnKVxuICAgICAgICAucmVwbGFjZSgvXFxXKy9nLCAnICcpXG4gICAgICAgIC50cmltKClcbiAgICAgICAgLnJlcGxhY2UoLyAoLikvZywgZnVuY3Rpb24gKCQxKSB7IHJldHVybiAkMS50b1VwcGVyQ2FzZSgpOyB9KVxuICAgICAgICAucmVwbGFjZSgvIC9nLCAnJyk7XG4gICAgLy8gcmV0dXJuIG9yIHRocm93XG4gICAgcmV0dXJuIHJldHVybk9yVGhyb3coY29udmVydGVkU3RyaW5nLCBzdHJpbmcsICdjYW1lbENhc2UnKTtcbn07XG5jb25zdCB0b0tlYmFiQ2FzZSA9IChzdHJpbmcpID0+IHtcbiAgICBjb25zdCBjb252ZXJ0ZWRTdHJpbmcgPSBzdHJpbmcudG9Mb3dlckNhc2UoKVxuICAgICAgICAucmVwbGFjZSgvWydcIl0vZywgJycpXG4gICAgICAgIC5yZXBsYWNlKC8oWy1fIF0pezEsfS9nLCAnICcpXG4gICAgICAgIC5yZXBsYWNlKC9cXFcrL2csICcgJylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAucmVwbGFjZSgvIC9nLCAnLScpO1xuICAgIC8vIHJldHVybiBvciB0aHJvd1xuICAgIHJldHVybiByZXR1cm5PclRocm93KGNvbnZlcnRlZFN0cmluZywgc3RyaW5nLCAna2ViYWJDYXNlJyk7XG59O1xuY29uc3QgdHJhbnNmb3JtTmFtZSA9IChuYW1lLCBuYW1lQ29udmVyc2lvbiA9ICdkZWZhdWx0JykgPT4ge1xuICAgIC8vIGlmIGNhbWVsQ2FzZVxuICAgIGlmIChuYW1lQ29udmVyc2lvbiA9PT0gJ2NhbWVsQ2FzZScpIHtcbiAgICAgICAgcmV0dXJuIHRvQ2FtZWxDYXNlKG5hbWUpO1xuICAgIH1cbiAgICAvLyBpZiBrZWJhYkNhc2VcbiAgICBpZiAobmFtZUNvbnZlcnNpb24gPT09ICdrZWJhYkNhc2UnKSB7XG4gICAgICAgIHJldHVybiB0b0tlYmFiQ2FzZShuYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG59O1xuZXhwb3J0IGRlZmF1bHQgdHJhbnNmb3JtTmFtZTtcbmV4cG9ydCBjb25zdCBfX3Rlc3RpbmcgPSB7XG4gICAgdG9DYW1lbENhc2U6IHRvQ2FtZWxDYXNlLFxuICAgIHRvS2ViYWJDYXNlOiB0b0tlYmFiQ2FzZVxufTtcbiIsIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG5jb25zdCB2ZXJzaW9uID0gJzQuMC4wJztcbmV4cG9ydCBkZWZhdWx0IHZlcnNpb247XG4iXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file +!function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(i,a,function(t){return e[t]}.bind(null,a));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=5)}({5:function(e,t,n){"use strict";n.r(t);var i={filename:{default:"design-tokens",empty:!1},nameConversion:{default:"default",empty:!1},excludePrefix:{default:!0,empty:!1},prefix:{default:"_",empty:!1},serverUrl:{default:"",empty:!0},eventType:{default:"update-tokens",empty:!1},acceptHeader:{default:"application/vnd.github.everest-preview+json",empty:!0},authType:{default:"token",empty:!1}};const a=(e,t)=>{const n={};for(const[a,r]of Object.entries(i))"string"==typeof r.default&&!1===r.empty&&""===e[a].trim()&&(e[a]=t[a]||r.default),typeof e[a]==typeof r.default?n[a]=e[a]:typeof t[a]==typeof r.default?n[a]=t[a]:n[a]=r.default;return n},r=()=>{let e=figma.root.getPluginData("settings");e=e.length>0?JSON.parse(e):void 0;const t={};return Object.entries(i).forEach(([n,i])=>void 0!==e&&void 0!==e[n]?t[n]=e[n]:t[n]=i.default),t};var o=function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function o(e){try{u(i.next(e))}catch(e){r(e)}}function s(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((i=i.apply(e,t||[])).next())}))};const s=e=>o(void 0,void 0,void 0,(function*(){const t=yield figma.clientStorage.getAsync("accessTokens");if(void 0!==t&&t instanceof Object){return t[e]||""}return""}));var u=(e,t=2)=>{if(void 0===e)return;if("number"!=typeof e||"number"!=typeof t)throw new Error(`Invalid parameters, both value "${e}" (${typeof e}) and decimalPlaces "${t}" (${typeof t}) must be of type number`);const n=Math.pow(10,t);return Math.round(e*n)/n};const l=(e,t)=>({r:u(255*e.r,0),g:u(255*e.g,0),b:u(255*e.b,0),a:u(t||e.a||1)}),c=e=>"SOLID"===e.type&&!0===e.visible?l(e.color,e.opacity||null):null,p={GRADIENT_LINEAR:"linear",GRADIENT_RADIAL:"radial",GRADIENT_ANGULAR:"angular",GRADIENT_DIAMOND:"diamond"};var d=e=>e.map(e=>(e.paints=e.paints.filter(e=>"IMAGE"!==e.type),e)).filter(e=>e.paints.length>0).map(e=>({name:e.name,description:e.description||null,category:"fill",values:e.paints.map(e=>(e=>"SOLID"===e.type?{fill:{value:c(e),type:"color"}}:["GRADIENT_LINEAR","GRADIENT_RADIAL","GRADIENT_ANGULAR","GRADIENT_DIAMOND"].includes(e.type)?{gradientType:{value:p[e.type],type:"string"},stops:e.gradientStops.map(e=>({position:{value:u(e.position),type:"number"},color:{value:l(e.color),type:"color"}})),opacity:{value:u(e.opacity),type:"number"}}:null)(e))}));var g=e=>e.map(e=>({name:e.name,description:e.description||null,category:"grid",values:e.layoutGrids.map(e=>"GRID"===e.pattern?(e=>({pattern:{value:e.pattern.toLowerCase(),type:"string"},sectionSize:{value:e.sectionSize,unit:"pixel",type:"number"}}))(e):(e=>{return Object.assign(Object.assign(Object.assign({pattern:{value:e.pattern.toLowerCase(),type:"string"}},void 0!==e.sectionSize&&{sectionSize:{value:e.sectionSize,unit:"pixel",type:"number"}}),{gutterSize:{value:e.gutterSize,unit:"pixel",type:"number"},alignment:{value:e.alignment.toLowerCase(),type:"string"},count:(t=e.count,t===1/0?{value:"auto",type:"string"}:{value:t,type:"number"})}),void 0!==e.offset&&{offset:{value:e.offset,unit:"pixel",type:"number"}});var t})(e))}));const m={NONE:"none",UNDERLINE:"underline",STRIKETHROUGH:"line-through"},y={ORIGINAL:"none",UPPER:"uppercase",LOWER:"lowercase",TITLE:"capitalize"},f={thin:100,extralight:200,ultralight:200,light:300,normal:400,regular:400,medium:500,semibold:600,demibold:600,bold:700,extrabold:800,ultabold:800,black:900,heavy:900,super:900},v={normal:"normal",condensed:"condensed",expanded:"expanded",extended:"expanded"},b={normal:"normal",italic:"italic",oblique:"oblique"},h=e=>{const t=e.toLowerCase().split(" ");let n=t[0];return["extra","ultra","semi","demi"].includes(t[0])&&["bold","light"].includes(t[1])&&(n=`${t[0]}${t[1]}`),f[n]||400},x=e=>{const t=e.toLowerCase().split(" ");return v[t[t.length-1]]||v[t[t.length-2]]||"normal"},S=e=>{const t=e.toLowerCase().split(" ").pop();return b[t]||"normal"};var O=e=>e.map(e=>({name:e.name,description:e.description||void 0,category:"font",values:{fontSize:{value:e.fontSize,unit:"pixel",type:"number"},textDecoration:{value:m[e.textDecoration],type:"string"},fontFamily:{value:e.fontName.family,type:"string"},fontWeight:{value:h(e.fontName.style),type:"number"},fontStyle:{value:S(e.fontName.style),type:"string"},fontStretch:{value:x(e.fontName.style),type:"string"},_fontStyleOld:{value:e.fontName.style,type:"string"},letterSpacing:{value:u(e.letterSpacing.value),unit:e.letterSpacing.unit.toLowerCase(),type:"number"},lineHeight:{value:u(e.lineHeight.value)||"normal",unit:e.lineHeight.unit.toLowerCase(),type:Object.prototype.hasOwnProperty.call(e.lineHeight,"value")?"number":"string"},paragraphIndent:{value:e.paragraphIndent,unit:"pixel",type:"number"},paragraphSpacing:{value:e.paragraphSpacing,unit:"pixel",type:"number"},textCase:{value:y[e.textCase],type:"string"}}}));const E={LAYER_BLUR:"layerBlur",BACKGROUND_BLUR:"backgroundBlur",DROP_SHADOW:"dropShadow",INNER_SHADOW:"innerShadow"};var R=e=>e.map(e=>({name:e.name,description:e.description||null,category:"effect",values:e.effects.map(e=>"LAYER_BLUR"===e.type||"BACKGROUND_BLUR"===e.type?(e=>({type:{value:E[e.type],type:"string"},radius:{value:e.radius,unit:"pixel",type:"number"}}))(e):(e=>({type:{value:E[e.type],type:"string"},radius:{value:e.radius,unit:"pixel",type:"number"},color:{value:l(e.color),type:"color"},offset:{x:{value:e.offset.x,unit:"pixel",type:"number"},y:{value:e.offset.y,unit:"pixel",type:"number"}},spread:{value:e.spread,unit:"pixel",type:"number"}}))(e))}));const C=e=>{if(Object.prototype.hasOwnProperty.call(e,"direction"))return{direction:{value:e.direction.toLowerCase(),type:"string"}}},k={CUSTOM_CUBIC_BEZIER:{},LINEAR:{type:"linear",easingFunctionCubicBezier:{x1:0,y1:0,x2:1,y2:1}},EASE_IN:{type:"ease-in",easingFunctionCubicBezier:{x1:.41999998688697815,y1:0,x2:1,y2:1}},EASE_OUT:{type:"ease-out",easingFunctionCubicBezier:{x1:0,y1:0,x2:.5799999833106995,y2:1}},EASE_IN_AND_OUT:{type:"ease-in-out",easingFunctionCubicBezier:{x1:.41999998688697815,y1:0,x2:.5799999833106995,y2:1}},EASE_IN_BACK:{type:"ease-in-back",easingFunctionCubicBezier:{x1:.30000001192092896,y1:-.05000000074505806,x2:.699999988079071,y2:-.5}},EASE_OUT_BACK:{type:"ease-out-back",easingFunctionCubicBezier:{x1:.44999998807907104,y1:1.4500000476837158,x2:.800000011920929,y2:1}},EASE_IN_AND_OUT_BACK:{type:"ease-in-out-back",easingFunctionCubicBezier:{x1:.699999988079071,y1:-.4000000059604645,x2:.4000000059604645,y2:1.399999976158142}}},A=e=>{if(Object.hasOwnProperty.call(k,e.type))return"CUSTOM_CUBIC_BEZIER"===e.type&&(k.CUSTOM_CUBIC_BEZIER={type:"cubic-bezier",easingFunctionCubicBezier:{x1:e.easingFunctionCubicBezier.x1,y1:e.easingFunctionCubicBezier.y1,x2:e.easingFunctionCubicBezier.x2,y2:e.easingFunctionCubicBezier.y2}}),{easing:{value:k[e.type].type,type:"string"},easingFunction:{x1:{value:k[e.type].easingFunctionCubicBezier.x1,type:"number"},x2:{value:k[e.type].easingFunctionCubicBezier.x2,type:"number"},y1:{value:k[e.type].easingFunctionCubicBezier.y1,type:"number"},y2:{value:k[e.type].easingFunctionCubicBezier.y2,type:"number"}}}};var L=e=>e.filter(e=>"motion"===e.name.substr(0,"motion".length)).filter(e=>e.reactions.length>0&&"NODE"===e.reactions[0].action.type&&null!==e.reactions[0].action.transition).map(e=>({name:e.name,description:e.description||null,category:"motion",values:Object.assign(Object.assign({type:{value:e.reactions[0].action.transition.type.toLocaleLowerCase(),type:"string"},duration:{value:Math.round(1e3*(e.reactions[0].action.transition.duration+Number.EPSILON))/1e3,unit:"s",type:"number"}},A(e.reactions[0].action.transition.easing)),C(e.reactions[0].action.transition))}));var N=e=>e.filter(e=>"sizes"===e.name.substr(0,"sizes".length)).map(e=>({name:e.name,description:e.description||null,category:"size",values:{width:{value:u(e.width,2),unit:"pixel",type:"number"},height:{value:u(e.height,2),unit:"pixel",type:"number"}}}));var _=e=>e.filter(e=>"spacing"===e.name.substr(0,"spacing".length)).map(e=>({name:e.name,description:e.description||null,category:"spacing",values:{top:{value:u(e.paddingTop,2),unit:"pixel",type:"number"},right:{value:u(e.paddingRight,2),unit:"pixel",type:"number"},bottom:{value:u(e.paddingBottom,2),unit:"pixel",type:"number"},left:{value:u(e.paddingLeft,2),unit:"pixel",type:"number"}}}));const w={MITER:"miter",BEVEL:"bevel",ROUND:"round"},I={CENTER:"center",INSIDE:"inside",OUTSIDE:"outside"};var T=e=>e.filter(e=>"borders"===e.name.substr(0,"borders".length)).filter(e=>e.strokes.length>0).map(e=>({name:e.name,category:"border",description:e.description||null,values:{strokeAlign:{value:I[e.strokeAlign],type:"string"},dashPattern:{value:e.dashPattern.toString(),type:"string"},strokeCap:{value:"string"==typeof e.strokeCap?e.strokeCap.toLowerCase():"mixed",type:"string"},strokeJoin:{value:w[e.strokeJoin],type:"string"},strokeMiterLimit:{value:u(e.strokeMiterLimit),unit:"degree",type:"number"},strokeWeight:{value:e.strokeWeight,unit:"pixel",type:"number"},stroke:{value:e.strokes[0],type:"color"}}}));var P=e=>{const t=e=>({topLeft:{value:e.topLeftRadius||0,unit:"pixel",type:"number"},topRight:{value:e.topRightRadius||0,unit:"pixel",type:"number"},bottomRight:{value:e.bottomRightRadius||0,unit:"pixel",type:"number"},bottomLeft:{value:e.bottomLeftRadius||0,unit:"pixel",type:"number"}});return e.filter(e=>"radii"===e.name.substr(0,"radii".length)).map(e=>{return{name:e.name,description:e.description||null,category:"radius",values:Object.assign(Object.assign({},"number"==typeof e.cornerRadius&&{radius:{value:e.cornerRadius,unit:"pixel",type:"number"}}),{radiusType:{value:(n=e.cornerRadius,"number"==typeof n?"single":"mixed"),type:"string"},radii:t(e),smoothing:{value:u(e.cornerSmoothing,2),comment:"Percent as decimal from 0.0 - 1.0",type:"number"}})};var n})};var D=e=>e.filter(e=>"breakpoints"===e.name.substr(0,"breakpoints".length)).map(e=>({name:e.name,description:e.description||null,category:"breakpoint",values:{width:{value:u(e.width,2),unit:"pixel",type:"number"}}}));const j=(e,t)=>{const n=e=>e&&"object"==typeof e;return n(e)&&n(t)?(Object.keys(t).forEach(i=>{const a=e[i],r=t[i];Array.isArray(a)&&Array.isArray(r)?e[i]=a.concat(r):n(a)&&n(r)?e[i]=j(Object.assign({},a),r):e[i]=r}),e):t};var B=j;const z=(e,t,n)=>{if("string"==typeof e&&""!==e)return e;throw new Error(`converting "${t}" to ${n}, resulting in "${e}"`)},M=e=>{const t=e.toLowerCase().replace(/['"]/g,"").replace(/([-_ ]){1,}/g," ").replace(/\W+/g," ").trim().replace(/ (.)/g,(function(e){return e.toUpperCase()})).replace(/ /g,"");return z(t,e,"camelCase")},F=e=>{const t=e.toLowerCase().replace(/['"]/g,"").replace(/([-_ ]){1,}/g," ").replace(/\W+/g," ").trim().replace(/ /g,"-");return z(t,e,"kebabCase")};var U=(e,t="default")=>"camelCase"===t?M(e):"kebabCase"===t?F(e):e.trim().toLowerCase();var G=(e,t=!0,n="default")=>{const i=e.map(e=>{const i=e.name.split("/").map(e=>U(e,n));return!0===t&&delete e.name,a=e,i.reduceRight((e,t)=>({[t]:e}),a);var a});return i.length>0?i.reduce((e={},t)=>B(e,t)):[]};var $=(e,t="comment")=>e&&"string"==typeof e&&e.length>0?{comment:e}:{};const H=e=>{Array.isArray(e)&&1===e.length&&(e=e[0]);const t={};return Object.keys(e).forEach((function(n){Object.prototype.hasOwnProperty.call(e[n],"value")?t[n]=V(e[n]):t[n]=H(e[n])})),1===Object.keys(t).length?Object.values(t)[0]:t},W=e=>V(e.width),J={default:H,font:H,border:H,size:W,grid:H,effect:H,radius:H,fill:H},K=(e,t)=>{var n;if(null!=e)return"color"===t?`rgba(${(n=e).r}, ${n.g}, ${n.b}, ${n.a})`:e},V=e=>Object.assign(Object.assign({value:K(e.value,e.type),type:e.type},void 0!==e.description&&{comment:e.description}),void 0!==e.unit&&{unit:e.unit});const Z={styleDictionary:e=>{const t=((e,t)=>Object.prototype.hasOwnProperty.call(J,e.category)?J[e.category](e.values):H(e.values))(e,e.category);return Object.assign(Object.assign({name:e.name,category:e.category},$(e.description)),t)}};var q=(e,t="styleDictionary",n="default")=>{const i=(e=>[...N(e.tokenFrames),...D(e.tokenFrames),..._(e.tokenFrames),...T(e.tokenFrames),...P(e.tokenFrames),...L(e.tokenFrames),...d(e.paintStyles),...g(e.gridStyles),...O(e.textStyles),...R(e.effectStyles)])(e).map(e=>Z[t](e));return G(i,!0,n)};var Y=(e="_",t=!0)=>n=>n.name.trim().substr(0,e.length)!==e===t;var Q=e=>{const t=[];return e.forEach(e=>{t.push({name:e.name,description:e.description,paints:e.paints})}),t};var X=e=>{const t=[];return e.forEach(e=>{t.push({name:e.name,description:e.description,layoutGrids:e.layoutGrids})}),t};var ee=e=>{return{name:e.name,description:e.description||void 0,bottomLeftRadius:e.bottomLeftRadius,bottomRightRadius:e.bottomRightRadius,topLeftRadius:e.topLeftRadius,topRightRadius:e.topRightRadius,cornerRadius:e.cornerRadius||void 0,cornerSmoothing:e.cornerSmoothing,strokes:(t=e.strokes,[...t].map(e=>c(e))),strokeWeight:e.strokeWeight,strokeStyleId:e.strokeStyleId,strokeMiterLimit:e.strokeMiterLimit,strokeJoin:e.strokeJoin,strokeCap:e.strokeCap,dashPattern:e.dashPattern,strokeAlign:e.strokeAlign,width:e.width,height:e.height,reactions:e.reactions||void 0,paddingTop:e.paddingTop||0,paddingRight:e.paddingRight||0,paddingBottom:e.paddingBottom||0,paddingLeft:e.paddingLeft||0};var t};const te=["COMPONENT","COMPONENT_SET","RECTANGLE","FRAME"];var ne=e=>"COMPONENT_SET"!==e.parent.type&&te.includes(e.type);const ie=e=>"FRAME"===e.type&&"_tokens"===e.name.trim().toLowerCase().substr(0,"_tokens".length);var ae=e=>[...e.map(e=>e.findChildren(e=>ie(e))).reduce((e,t)=>[...e,...t])].map(e=>e.findAll(e=>ne(e))).reduce((e,t)=>[...e,...t],[]).map(e=>("RECTANGLE"!==e.type&&"FRAME"!==e.type||console.warn("Please use only main components and variants, other types may be deprecated as tokens in the future"),"COMPONENT_SET"===e.type?e.children.map(t=>{return Object.assign(Object.assign({},ee(t)),{name:(n=e.name,i=t.name,`${n}/${i=i.split(",").filter(e=>!["_","."].includes(e.trim().substr(0,1))).map(e=>e.split("=")[1]).join("/")}`)});var n,i}):[ee(e)])).reduce((e,t)=>[...e,...t],[]);var re=e=>{const t=[];return e.forEach(e=>{t.push({name:e.name,description:e.description,fontSize:e.fontSize,textDecoration:e.textDecoration,fontName:e.fontName,letterSpacing:e.letterSpacing,lineHeight:e.lineHeight,paragraphIndent:e.paragraphIndent,paragraphSpacing:e.paragraphSpacing,textCase:e.textCase})}),t};var oe=e=>{const t=[];return e.forEach(e=>{t.push({name:e.name,description:e.description,effects:e.effects})}),t};var se=(e,t={prefix:"_",excludePrefix:!0})=>({tokenFrames:ae([...e.root.children]),paintStyles:Q(e.getLocalPaintStyles()).filter(Y(t.prefix,t.excludePrefix)),gridStyles:X(e.getLocalGridStyles()).filter(Y(t.prefix,t.excludePrefix)),textStyles:re(e.getLocalTextStyles()).filter(Y(t.prefix,t.excludePrefix)),effectStyles:oe(e.getLocalEffectStyles()).filter(Y(t.prefix,t.excludePrefix))});var ue=(e,t,n=!0)=>{const i=se(e,{prefix:t.prefix,excludePrefix:t.excludePrefix});return!1===n?q(i,"styleDictionary",t.nameConversion):JSON.stringify(q(i,"styleDictionary",t.nameConversion))},le={width:550,height:565},ce={lastVersionSettingsOpened:"lastVersionSettingsOpened",fileId:"fileId"};var pe=function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function o(e){try{u(i.next(e))}catch(e){r(e)}}function s(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((i=i.apply(e,t||[])).next())}))};var de=e=>pe(void 0,void 0,void 0,(function*(){const t=yield e.clientStorage.getAsync(ce.lastVersionSettingsOpened),n=((e,t="1.0.0")=>{const[n,i,a]=t.split("."),[r,o,s]=e.split(".");return n{let t=e.root.getPluginData(ce.fileId);return void 0!==t&&""!==t||(e.root.setPluginData(ce.fileId,e.root.name+" "+Math.floor(1e9*Math.random())),t=e.root.getPluginData(ce.fileId)),t},me=function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function o(e){try{u(i.next(e))}catch(e){r(e)}}function s(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((i=i.apply(e,t||[])).next())}))};figma.showUI(__html__,{visible:!1,width:le.width,height:le.height});const ye=r();if("export"===figma.command&&figma.ui.postMessage({command:"export",data:{filename:ye.filename+".json",data:ue(figma,ye)}}),"urlExport"===figma.command){(()=>me(void 0,void 0,void 0,(function*(){figma.ui.postMessage({command:"urlExport",data:{url:ye.serverUrl,accessToken:yield s(ge(figma)),acceptHeader:ye.acceptHeader,authType:ye.authType,data:{event_type:ye.eventType,client_payload:{tokenFileName:ye.filename+".json",tokens:""+ue(figma,ye,!0),filename:figma.root.name}}}})})))()}if("settings"===figma.command){(()=>me(void 0,void 0,void 0,(function*(){const e=yield de(figma);void 0!==e&&"patch"!==e&&figma.ui.resize(le.width,le.height+60),figma.ui.show(),figma.ui.postMessage({command:"getSettings",settings:ye,accessToken:yield s(ge(figma)),versionDifference:e}),figma.ui.show()})))()}"help"===figma.command&&figma.ui.postMessage({command:"help"}),figma.ui.onmessage=e=>me(void 0,void 0,void 0,(function*(){var t,n,i;"closePlugin"===e.command&&(void 0!==e.notification&&""!==e.notification&&figma.notify(e.notification),figma.ui.hide(),figma.closePlugin()),"saveSettings"===e.command&&(i=e.settings,i=a(i,r()),figma.root.setPluginData("settings",JSON.stringify(i,null,2)),yield(t=ge(figma),n=e.accessToken,o(void 0,void 0,void 0,(function*(){const e=(yield figma.clientStorage.getAsync("accessTokens"))||{},i=Object.assign(Object.assign({},e),{[t]:n});return yield figma.clientStorage.setAsync("accessTokens",i)}))),figma.closePlugin())}))}}); \ No newline at end of file diff --git a/dist/ui.html b/dist/ui.html index 55a6069d..678fe5de 100644 --- a/dist/ui.html +++ b/dist/ui.html @@ -67,947 +67,4 @@

Design Token Settings

- \ No newline at end of file + \ No newline at end of file diff --git a/dist/ui.js b/dist/ui.js index 1709f40d..2953ecde 100644 --- a/dist/ui.js +++ b/dist/ui.js @@ -1,944 +1 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./src/ui/ui.ts"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/figma-plugin-ds/dist/figma-plugin-ds.css": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/figma-plugin-ds/dist/figma-plugin-ds.css ***! - \*****************************************************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/cssWithMappingToString.js */ "./node_modules/css-loader/dist/runtime/cssWithMappingToString.js"); -/* harmony import */ var _css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a); -// Module -___CSS_LOADER_EXPORT___.push([module.i, "/* Vars */\n:root {\n /* COLORS */\n /* Accent */\n --blue: #18a0fb;\n --purple: #7b61ff;\n --hot-pink: #ff00ff;\n --green: #1bc47d;\n --red: #f24822;\n --yellow: #ffeb00;\n /* Basic foreground */\n --black: #000000;\n --black8: rgba(0, 0, 0, .8);\n --black8-opaque: #333333;\n --black3: rgba(0, 0, 0, .3);\n --black3-opaque: #B3B3B3;\n --white: #ffffff;\n --white8: rgba(255, 255, 255, .8);\n --white4: rgba(255, 255, 255, .4);\n /* Basic background */\n --grey: #f0f0f0;\n --silver: #e5e5e5;\n --hud: #222222;\n --toolbar: #2c2c2c;\n /* Special */\n --black1: rgba(0, 0, 0, .1);\n --blue3: rgba(24, 145, 251, .3);\n --purple4: rgba(123, 97, 255, .4);\n --hover-fill: rgba(0, 0, 0, .06);\n --selection-a: #daebf7;\n --selection-b: #edf5fa;\n --white2: rgba(255, 255, 255, .2);\n /* TYPOGRAPHY */\n /* Pos = positive applications (black on white) */\n /* Neg = negative applications (white on black) */\n /* Font stack */\n --font-stack: 'Inter', sans-serif;\n /* Font sizes */\n --font-size-xsmall: 11px;\n --font-size-small: 12px;\n --font-size-large: 13px;\n --font-size-xlarge: 14px;\n /* Font weights */\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-bold: 600;\n /* Lineheight */\n --font-line-height: 16px;\n /* Use For xsmall, small font sizes */\n --font-line-height-large: 24px;\n /* Use For large, xlarge font sizes */\n /* Letterspacing */\n --font-letter-spacing-pos-xsmall: .005em;\n --font-letter-spacing-neg-xsmall: .01em;\n --font-letter-spacing-pos-small: 0;\n --font-letter-spacing-neg-small: .005em;\n --font-letter-spacing-pos-large: -.0025em;\n --font-letter-spacing-neg-large: .0025em;\n --font-letter-spacing-pos-xlarge: -.001em;\n --font-letter-spacing-neg-xlarge: -.001em;\n /* BORDER RADIUS */\n --border-radius-small: 2px;\n --border-radius-med: 5px;\n --border-radius-large: 6px;\n /* SHADOWS */\n --shadow-hud: 0 5px 17px rgba(0, 0, 0, .2), 0 2px 7px rgba(0, 0, 0, .15);\n --shadow-floating-window: 0 2px 14px rgba(0, 0, 0, .15);\n /* SPACING + SIZING */\n --size-xxxsmall: 4px;\n --size-xxsmall: 8px;\n --size-xsmall: 16px;\n --size-small: 24px;\n --size-medium: 32px;\n --size-large: 40px;\n --size-xlarge: 48px;\n --size-xxlarge: 64px;\n --size-xxxlarge: 80px;\n}\n\n/* Global styles */\n* {\n box-sizing: border-box;\n}\n\nbody {\n position: relative;\n box-sizing: border-box;\n font-family: 'Inter', sans-serif;\n margin: 0;\n padding: 0;\n}\n\n/* FONTS */\n@font-face {\n font-family: 'Inter';\n font-weight: 400;\n font-style: normal;\n src: url(\"https://rsms.me/inter/font-files/Inter-Regular.woff2?v=3.7\") format(\"woff2\"), url(\"https://rsms.me/inter/font-files/Inter-Regular.woff?v=3.7\") format(\"woff\");\n}\n\n@font-face {\n font-family: 'Inter';\n font-weight: 500;\n font-style: normal;\n src: url(\"https://rsms.me/inter/font-files/Inter-Medium.woff2?v=3.7\") format(\"woff2\"), url(\"https://rsms.me/inter/font-files/Inter-Medium.woff2?v=3.7\") format(\"woff\");\n}\n\n@font-face {\n font-family: 'Inter';\n font-weight: 600;\n font-style: normal;\n src: url(\"https://rsms.me/inter/font-files/Inter-SemiBold.woff2?v=3.7\") format(\"woff2\"), url(\"https://rsms.me/inter/font-files/Inter-SemiBold.woff2?v=3.7\") format(\"woff\");\n}\n\n/* UTILITIES */\n/* padding */\n.p-xxxsmall {\n padding: var(--size-xxxsmall);\n}\n\n.p-xxsmall {\n padding: var(--size-xxsmall);\n}\n\n.p-xsmall {\n padding: var(--size-xsmall);\n}\n\n.p-small {\n padding: var(--size-small);\n}\n\n.p-medium {\n padding: var(--size-medium);\n}\n\n.p-large {\n padding: var(--size-large);\n}\n\n.p-xlarge {\n padding: var(--size-xlarge);\n}\n\n.p-xxlarge {\n padding: var(--size-xxlarge);\n}\n\n.p-huge {\n padding: var(--size-xxxlarge);\n}\n\n/* padding top */\n.pt-xxxsmall {\n padding-top: var(--size-xxxsmall);\n}\n\n.pt-xxsmall {\n padding-top: var(--size-xxsmall);\n}\n\n.pt-xsmall {\n padding-top: var(--size-xsmall);\n}\n\n.pt-small {\n padding-top: var(--size-small);\n}\n\n.pt-medium {\n padding-top: var(--size-medium);\n}\n\n.pt-large {\n padding-top: var(--size-large);\n}\n\n.pt-xlarge {\n padding-top: var(--size-xlarge);\n}\n\n.pt-xxlarge {\n padding-top: var(--size-xxlarge);\n}\n\n.pt-huge {\n padding-top: var(--size-xxxlarge);\n}\n\n/* padding right */\n.pr-xxxsmall {\n padding-right: var(--size-xxxsmall);\n}\n\n.pr-xxsmall {\n padding-right: var(--size-xxsmall);\n}\n\n.pr-xsmall {\n padding-right: var(--size-xsmall);\n}\n\n.pr-small {\n padding-right: var(--size-small);\n}\n\n.pr-medium {\n padding-right: var(--size-medium);\n}\n\n.pr-large {\n padding-right: var(--size-large);\n}\n\n.pr-xlarge {\n padding-right: var(--size-xlarge);\n}\n\n.pr-xxlarge {\n padding-right: var(--size-xxlarge);\n}\n\n.pr-huge {\n padding-right: var(--size-xxxlarge);\n}\n\n/* padding bottom */\n.pb-xxxsmall {\n padding-bottom: var(--size-xxxsmall);\n}\n\n.pb-xxsmall {\n padding-bottom: var(--size-xxsmall);\n}\n\n.pb-xsmall {\n padding-bottom: var(--size-xsmall);\n}\n\n.pb-small {\n padding-bottom: var(--size-small);\n}\n\n.pb-medium {\n padding-bottom: var(--size-medium);\n}\n\n.pb-large {\n padding-bottom: var(--size-large);\n}\n\n.pb-xlarge {\n padding-bottom: var(--size-xlarge);\n}\n\n.pb-xxlarge {\n padding-bottom: var(--size-xxlarge);\n}\n\n.pb-huge {\n padding-bottom: var(--size-xxxlarge);\n}\n\n/* padding left */\n.pl-xxxsmall {\n padding-left: var(--size-xxxsmall);\n}\n\n.pl-xxsmall {\n padding-left: var(--size-xxsmall);\n}\n\n.pl-xsmall {\n padding-left: var(--size-xsmall);\n}\n\n.pl-small {\n padding-left: var(--size-small);\n}\n\n.pl-medium {\n padding-left: var(--size-medium);\n}\n\n.pl-large {\n padding-left: var(--size-large);\n}\n\n.pl-xlarge {\n padding-left: var(--size-xlarge);\n}\n\n.pl-xxlarge {\n padding-left: var(--size-xxlarge);\n}\n\n.pl-huge {\n padding-left: var(--size-xxxlarge);\n}\n\n/* margin */\n.m-xxxsmall {\n margin: var(--size-xxxsmall);\n}\n\n.m-xxsmall {\n margin: var(--size-xxsmall);\n}\n\n.m-xsmall {\n margin: var(--size-xsmall);\n}\n\n.m-small {\n margin: var(--size-small);\n}\n\n.m-medium {\n margin: var(--size-medium);\n}\n\n.m-large {\n margin: var(--size-large);\n}\n\n.m-xlarge {\n margin: var(--size-xlarge);\n}\n\n.m-xxlarge {\n margin: var(--size-xxlarge);\n}\n\n.m-huge {\n margin: var(--size-xxxlarge);\n}\n\n/* margin top */\n.mt-xxxsmall {\n margin-top: var(--size-xxxsmall);\n}\n\n.mt-xxsmall {\n margin-top: var(--size-xxsmall);\n}\n\n.mt-xsmall {\n margin-top: var(--size-xsmall);\n}\n\n.mt-small {\n margin-top: var(--size-small);\n}\n\n.mt-medium {\n margin-top: var(--size-medium);\n}\n\n.mt-large {\n margin-top: var(--size-large);\n}\n\n.mt-xlarge {\n margin-top: var(--size-xlarge);\n}\n\n.mt-xxlarge {\n margin-top: var(--size-xxlarge);\n}\n\n.mt-huge {\n margin-top: var(--size-xxxlarge);\n}\n\n/* margin right */\n.mr-xxxsmall {\n margin-right: var(--size-xxxsmall);\n}\n\n.mr-xxsmall {\n margin-right: var(--size-xxsmall);\n}\n\n.mr-xsmall {\n margin-right: var(--size-xsmall);\n}\n\n.mr-small {\n margin-right: var(--size-small);\n}\n\n.mr-medium {\n margin-right: var(--size-medium);\n}\n\n.mr-large {\n margin-right: var(--size-large);\n}\n\n.mr-xlarge {\n margin-right: var(--size-xlarge);\n}\n\n.mr-xxlarge {\n margin-right: var(--size-xxlarge);\n}\n\n.mr-huge {\n margin-right: var(--size-xxxlarge);\n}\n\n/* margin bottom */\n.mb-xxxsmall {\n margin-bottom: var(--size-xxxsmall);\n}\n\n.mb-xxsmall {\n margin-bottom: var(--size-xxsmall);\n}\n\n.mb-xsmall {\n margin-bottom: var(--size-xsmall);\n}\n\n.mb-small {\n margin-bottom: var(--size-small);\n}\n\n.mb-medium {\n margin-bottom: var(--size-medium);\n}\n\n.mb-large {\n margin-bottom: var(--size-large);\n}\n\n.mb-xlarge {\n margin-bottom: var(--size-xlarge);\n}\n\n.mb-xxlarge {\n margin-bottom: var(--size-xxlarge);\n}\n\n.mb-huge {\n margin-bottom: var(--size-xxxlarge);\n}\n\n/* margin left */\n.ml-xxxsmall {\n margin-left: var(--size-xxxsmall);\n}\n\n.ml-xxsmall {\n margin-left: var(--size-xxsmall);\n}\n\n.ml-xsmall {\n margin-left: var(--size-xsmall);\n}\n\n.ml-small {\n margin-left: var(--size-small);\n}\n\n.ml-medium {\n margin-left: var(--size-medium);\n}\n\n.ml-large {\n margin-left: var(--size-large);\n}\n\n.ml-xlarge {\n margin-left: var(--size-xlarge);\n}\n\n.ml-xxlarge {\n margin-left: var(--size-xxlarge);\n}\n\n.ml-huge {\n margin-left: var(--size-xxxlarge);\n}\n\n/* layout utilities */\n.hidden {\n display: none;\n}\n\n.inline {\n display: inline;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.column {\n flex-direction: column;\n}\n\n.column-reverse {\n flex-direction: column-reverse;\n}\n\n.row {\n flex-direction: row;\n}\n\n.row-reverse {\n flex-direction: row-reverse;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n}\n\n.flex-no-wrap {\n flex-wrap: nowrap;\n}\n\n.flex-shrink {\n flex-shrink: 1;\n}\n\n.flex-no-shrink {\n flex-shrink: 0;\n}\n\n.flex-grow {\n flex-grow: 1;\n}\n\n.flex-no-grow {\n flex-grow: 0;\n}\n\n.justify-content-start {\n justify-content: flex-start;\n}\n\n.justify-content-end {\n justify-content: flex-end;\n}\n\n.justify-content-center {\n justify-content: center;\n}\n\n.justify-content-between {\n justify-content: space-between;\n}\n\n.justify-content-around {\n justify-content: space-around;\n}\n\n.align-items-start {\n align-items: flex-start;\n}\n\n.align-items-end {\n align-items: flex-end;\n}\n\n.align-items-center {\n align-items: center;\n}\n\n.align-items-stretch {\n align-items: stretch;\n}\n\n.align-content-start {\n align-content: flex-start;\n}\n\n.align-content-end {\n align-content: flex-end;\n}\n\n.align-content-center {\n align-content: center;\n}\n\n.align-content-stretch {\n align-content: stretch;\n}\n\n.align-self-start {\n align-self: flex-start;\n}\n\n.align-self-end {\n align-items: flex-end;\n}\n\n.align-self-center {\n align-self: center;\n}\n\n.align-self-stretch {\n align-self: stretch;\n}\n\n.button {\n display: flex;\n align-items: center;\n border-radius: var(--border-radius-large);\n color: var(--white);\n flex-shrink: 0;\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-medium);\n letter-spacing: var(--font-letter-spacing-neg-small);\n line-height: var(--font-line-height);\n height: var(--size-medium);\n padding: 0 var(--size-xsmall) 0 var(--size-xsmall);\n text-decoration: none;\n outline: none;\n border: 2px solid transparent;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.button--primary {\n background-color: var(--blue);\n}\n\n.button--primary:enabled:active, .button--primary:enabled:focus {\n border: 2px solid var(--black3);\n}\n\n.button--primary:disabled {\n background-color: var(--black3);\n}\n\n.button--primary-destructive {\n background-color: var(--red);\n}\n\n.button--primary-destructive:enabled:active, .button--primary-destructive:enabled:focus {\n border: 2px solid var(--black3);\n}\n\n.button--primary-destructive:disabled {\n opacity: 0.3;\n}\n\n.button--secondary, .button--secondary-destructive {\n background-color: var(--white);\n border: 1px solid var(--black8);\n color: var(--black8);\n padding: 0 calc(var(--size-xsmall) + 1px) 0 calc(var(--size-xsmall) + 1px);\n letter-spacing: var(--font-letter-spacing-pos-small);\n}\n\n.button--secondary:enabled:active, .button--secondary-destructive:enabled:active, .button--secondary:enabled:focus, .button--secondary-destructive:enabled:focus {\n border: 2px solid var(--blue);\n padding: 0 var(--size-xsmall) 0 var(--size-xsmall);\n}\n\n.button--secondary:disabled, .button--secondary-destructive:disabled {\n border: 1px solid var(--black3);\n color: var(--black3);\n}\n\n.button--secondary-destructive {\n border-color: var(--red);\n color: var(--red);\n}\n\n.button--secondary-destructive:disabled {\n background-color: var(--white);\n}\n\n.button--secondary-destructive:enabled:active, .button--secondary-destructive:enabled:focus {\n border: 2px solid var(--red);\n padding: 0 var(--size-xsmall) 0 var(--size-xsmall);\n}\n\n.button--secondary-destructive:disabled {\n border: 1px solid var(--red);\n background-color: var(--white);\n color: var(--red);\n opacity: 0.4;\n}\n\n.button--tertiary, .button--tertiary-destructive {\n border: 1px solid transparent;\n color: var(--blue);\n padding: 0;\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-small);\n cursor: pointer;\n}\n\n.button--tertiary:enabled:focus, .button--tertiary-destructive:enabled:focus {\n text-decoration: underline;\n}\n\n.button--tertiary:disabled, .button--tertiary-destructive:disabled {\n cursor: default;\n color: var(--black3);\n}\n\n.button--tertiary-destructive {\n color: var(--red);\n}\n\n.button--tertiary-destructive:enabled:focus {\n text-decoration: underline;\n}\n\n.button--tertiary-destructive:disabled {\n opacity: 0.4;\n}\n\n.checkbox {\n align-items: center;\n cursor: default;\n display: flex;\n height: var(--size-medium);\n position: relative;\n /* unchecked */\n /*\n\t&__box:focus + &__label:before {\n\t\tborder: 1px solid var(--white);\n\t box-shadow: 0 0 0 2px var(--blue);\n\t}*/\n /* checked */\n /*\n\t&__box:checked:focus + &__label:before {\n\t\tborder: 1px solid var(--white);\n\t box-shadow: 0 0 0 2px var(--blue);\n\t}*/\n}\n\n.checkbox__box {\n opacity: 0;\n width: 10px;\n height: 10px;\n margin: 0;\n padding: 0;\n}\n\n.checkbox__label {\n align-items: center;\n color: var(--black8);\n display: flex;\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n line-height: var(--font-line-height);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n margin-left: -16px;\n padding: 0 var(--size-xsmall) 0 var(--size-small);\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.checkbox__label:before {\n border: 1px solid var(--black8);\n border-radius: var(--border-radius-small);\n content: '';\n display: block;\n width: 10px;\n height: 10px;\n margin: -1px 10px 0 -8px;\n box-shadow: none;\n}\n\n.checkbox__box:disabled + .checkbox__label {\n color: var(--black);\n opacity: 0.3;\n}\n\n.checkbox__box:checked + .checkbox__label:before {\n background-color: var(--blue);\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%227%22%20viewBox%3D%220%200%208%207%22%20width%3D%228%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20clip-rule%3D%22evenodd%22%20d%3D%22m1.17647%201.88236%201.88235%201.88236%203.76471-3.76472%201.17647%201.17648-4.94118%204.9412-3.05882-3.05884z%22%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: 1px 2px;\n border: 1px solid var(--blue);\n}\n\n.checkbox__box:checked:disabled + .checkbox__label:before {\n border: 1px solid transparent;\n background-color: var(--black8);\n}\n\n.disclosure {\n position: relative;\n width: 100%;\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.disclosure__item {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n margin: 0;\n padding: 0;\n list-style-type: none;\n border-bottom: 1px solid var(--silver);\n}\n\n.disclosure__item:last-child {\n border-bottom: 1px solid transparent;\n}\n\n.disclosure__label {\n display: flex;\n align-items: center;\n height: var(--size-medium);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n padding: 0 8px 0 24px;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.disclosure__label:before {\n content: '';\n position: absolute;\n top: 8px;\n left: 4px;\n display: block;\n width: 16px;\n height: 16px;\n opacity: 0.3;\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20width%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m11%208-4-3v6z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: center center;\n}\n\n.disclosure__label:hover:before {\n opacity: 0.8;\n}\n\n.disclosure__content {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n padding: var(--size-xxsmall) var(--size-xxsmall) var(--size-xxsmall) var(--size-small);\n display: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n pointer-events: none;\n}\n\n.disclosure--section {\n font-weight: var(--font-weight-bold);\n}\n\n.disclosure--expanded .disclosure__content {\n display: block;\n border-bottom: 1px solid transparent;\n}\n\n.disclosure--expanded .disclosure__label:before {\n opacity: 0.8;\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20width%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m9%2010%203-4h-6z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E\");\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: default;\n width: var(--size-medium);\n height: var(--size-medium);\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-position: -2px -1px;\n}\n\n.icon--spin {\n -webkit-animation: rotating 1.0s linear infinite;\n animation: rotating 1.0s linear infinite;\n}\n\n@-webkit-keyframes rotating {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes rotating {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n.icon--blue {\n -webkit-filter: invert(54%) sepia(16%) saturate(7499%) hue-rotate(179deg) brightness(98%) contrast(101%);\n filter: invert(54%) sepia(16%) saturate(7499%) hue-rotate(179deg) brightness(98%) contrast(101%);\n}\n\n.icon--purple {\n -webkit-filter: invert(40%) sepia(59%) saturate(4001%) hue-rotate(232deg) brightness(103%) contrast(102%);\n filter: invert(40%) sepia(59%) saturate(4001%) hue-rotate(232deg) brightness(103%) contrast(102%);\n}\n\n.icon--purple4 {\n -webkit-filter: invert(72%) sepia(40%) saturate(660%) hue-rotate(202deg) brightness(103%) contrast(103%);\n filter: invert(72%) sepia(40%) saturate(660%) hue-rotate(202deg) brightness(103%) contrast(103%);\n}\n\n.icon--hot-pink {\n -webkit-filter: invert(18%) sepia(90%) saturate(3347%) hue-rotate(293deg) brightness(116%) contrast(132%);\n filter: invert(18%) sepia(90%) saturate(3347%) hue-rotate(293deg) brightness(116%) contrast(132%);\n}\n\n.icon--green {\n -webkit-filter: invert(66%) sepia(39%) saturate(5382%) hue-rotate(114deg) brightness(102%) contrast(79%);\n filter: invert(66%) sepia(39%) saturate(5382%) hue-rotate(114deg) brightness(102%) contrast(79%);\n}\n\n.icon--red {\n -webkit-filter: invert(43%) sepia(56%) saturate(5632%) hue-rotate(349deg) brightness(97%) contrast(95%);\n filter: invert(43%) sepia(56%) saturate(5632%) hue-rotate(349deg) brightness(97%) contrast(95%);\n}\n\n.icon--yellow {\n -webkit-filter: invert(78%) sepia(86%) saturate(1608%) hue-rotate(1deg) brightness(107%) contrast(104%);\n filter: invert(78%) sepia(86%) saturate(1608%) hue-rotate(1deg) brightness(107%) contrast(104%);\n}\n\n.icon--black {\n -webkit-filter: invert(0%) sepia(0%) saturate(7500%) hue-rotate(117deg) brightness(109%) contrast(105%);\n filter: invert(0%) sepia(0%) saturate(7500%) hue-rotate(117deg) brightness(109%) contrast(105%);\n}\n\n.icon--black8 {\n -webkit-filter: invert(0%) sepia(56%) saturate(25%) hue-rotate(137deg) brightness(105%) contrast(60%);\n filter: invert(0%) sepia(56%) saturate(25%) hue-rotate(137deg) brightness(105%) contrast(60%);\n}\n\n.icon--black3 {\n -webkit-filter: invert(100%) sepia(0%) saturate(698%) hue-rotate(219deg) brightness(66%) contrast(127%);\n filter: invert(100%) sepia(0%) saturate(698%) hue-rotate(219deg) brightness(66%) contrast(127%);\n}\n\n.icon--white {\n -webkit-filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(269deg) brightness(103%) contrast(104%);\n filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(269deg) brightness(103%) contrast(104%);\n}\n\n.icon--white8 {\n -webkit-filter: invert(99%) sepia(2%) saturate(5%) hue-rotate(55deg) brightness(104%) contrast(98%);\n filter: invert(99%) sepia(2%) saturate(5%) hue-rotate(55deg) brightness(104%) contrast(98%);\n}\n\n.icon--white4 {\n -webkit-filter: invert(99%) sepia(2%) saturate(897%) hue-rotate(245deg) brightness(117%) contrast(93%);\n filter: invert(99%) sepia(2%) saturate(897%) hue-rotate(245deg) brightness(117%) contrast(93%);\n}\n\n.icon--adjust {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-rule='evenodd' fill='%23000' fill-rule='evenodd'%3E%3Cpath d='M12 16.05V9h1v7.05a2.5 2.5 0 010 4.9V23h-1v-2.05a2.5 2.5 0 010-4.9zm2 2.45a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM19 23h1v-7.05a2.5 2.5 0 000-4.9V9h-1v2.05a2.5 2.5 0 000 4.9zm2-9.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--alert {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath clip-rule='evenodd' d='M21.25 17.393a1.75 1.75 0 001.75 1.75V20H9v-.857a1.75 1.75 0 001.75-1.75V14c0-3.314 2.35-6 5.25-6s5.25 2.686 5.25 6zm-1-3.393v3.393c0 .6.192 1.155.518 1.607h-9.536a2.738 2.738 0 00.518-1.607V14c0-2.891 2.024-5 4.25-5s4.25 2.109 4.25 5z' fill-rule='evenodd'/%3E%3Cpath d='M16 23a2 2 0 01-2-2h-1a3 3 0 106 0h-1a2 2 0 01-2 2z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--angle {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M12 12v8h8v-1h-3a4 4 0 00-4-4v-3zm1 4v3h3a3 3 0 00-3-3z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--arrow-left-right {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 16.5l1.647 1.646-.707.708L10.293 16l2.854-2.854.707.708-1.647 1.646h7.586l-1.646-1.646.707-.708L21.707 16l-2.853 2.854-.707-.708 1.646-1.646z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--up-down {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 10.292l2.854 2.854-.707.707-1.646-1.646v7.585l1.646-1.646.707.707-2.853 2.854-2.854-2.854.707-.707 1.647 1.646v-7.585l-1.647 1.646-.707-.707z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--auto-layout-horizontal {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M10 10h5v12h-5zm1 1h3v10h-3zm6-1h5v12h-5zm1 1h3v10h-3z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--auto-layout-vertical {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M10 10h12v5H10zm1 1h10v3H11zm-1 6h12v5H10zm1 1h10v3H11z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--back {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M13.707 16l4.646-4.646-.707-.707L12.293 16l5.353 5.354.707-.707z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--blend-empty {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16.695 11.72l-.693-.718L16 11l-.001.002-.694.718C13.102 14.012 12 15.294 12 16.852a4.199 4.199 0 001.172 2.936 3.906 3.906 0 005.656 0A4.199 4.199 0 0020 16.852c0-1.558-1.102-2.84-3.305-5.132zm-.695.72c-.977 1.017-1.693 1.79-2.195 2.471-.6.814-.805 1.38-.805 1.94v.003a3.2 3.2 0 00.89 2.239 2.906 2.906 0 004.22 0 3.2 3.2 0 00.89-2.239v-.002c0-.56-.205-1.127-.805-1.94-.502-.681-1.219-1.455-2.195-2.472z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--blend {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16.002 11.002l.693.718C18.898 14.012 20 15.294 20 16.852a4.199 4.199 0 01-1.172 2.936 3.906 3.906 0 01-5.656 0A4.199 4.199 0 0112 16.852c0-1.558 1.102-2.84 3.305-5.132l.694-.719zm-2.197 3.91c.502-.681 1.219-1.455 2.195-2.472.976 1.017 1.693 1.79 2.195 2.471.6.814.805 1.38.805 1.94v.003c0 .049 0 .098-.003.146h-5.994a3.37 3.37 0 01-.003-.146v-.002c0-.56.205-1.127.805-1.94z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--break {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000' opacity='.9'%3E%3Cpath d='M13 9v3h1V9zM22.103 9.896a2.975 2.975 0 00-4.207 0l-2.75 2.75.707.707 2.75-2.75a1.975 1.975 0 012.793 2.793l-2.75 2.75.707.707 2.75-2.75a2.975 2.975 0 000-4.207zM9.896 22.104a2.975 2.975 0 010-4.208l2.75-2.75.707.707-2.75 2.75a1.975 1.975 0 002.793 2.793l2.75-2.75.707.707-2.75 2.75a2.975 2.975 0 01-4.207 0zM23 19h-3v-1h3zM19 20v3h-1v-3zM12 13H9v1h3z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--caret-down {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 18l3-4h-6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--caret-left {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13 16l4-3v6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--caret-right {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 16l-4-3v6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--caret-up {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 14l3 4h-6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--check {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M21.207 13.707L15 19.914l-3.707-3.707 1.414-1.414L15 17.086l4.793-4.793z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--close {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 15.293l4.646-4.646.708.707L16.707 16l4.647 4.647-.707.707L16 16.707l-4.646 4.647-.707-.707L15.293 16l-4.646-4.646.707-.707z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--component {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M12.063 10.938L16 14.874l3.938-3.938L16 7zm6.46 0L16 13.46l-2.523-2.524L16 8.415zm-6.46 10.124L16 25l3.938-3.938L16 17.125zm6.46 0L16 23.587l-2.523-2.523L16 18.538zM7 16l3.937-3.938L14.875 16l-3.938 3.938zm3.937 2.523L13.461 16l-2.524-2.523L8.415 16zM17.125 16l3.938 3.938L25 16l-3.938-3.938zm6.46 0l-2.523 2.523L18.54 16l2.523-2.523z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--corner-radius {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M21 13h-4a4 4 0 00-4 4v4h-1v-4a5 5 0 015-5h4z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--corners {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M11 11h3v1h-2v2h-1zm7 0h3v3h-1v-2h-2zm-6 9v-2h-1v3h3v-1zm9-2v3h-3v-1h2v-2z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--distribute-horizontal-spacing {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M11 22.5v-13h-1v13zM22 9.5v13h-1v-13zM17 12.5v7h-2v-7z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--distribute-vertical-spacing {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9.5 10h13v1h-13zM12.5 15h7v2h-7zM22.5 21h-13v1h13z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--draft {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M10 8.5h7.707L22 12.793V23.5H10zm1 1v13h10v-9h-4v-4zm7 .707l2.293 2.293H18z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--effects {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M16.5 8.5h-1v3h1zM11.05 10.343l-.707.707 2.121 2.122.708-.708zM21.657 11.05l-.707-.707-2.121 2.121.707.708zM8.5 15.5v1h3v-1zM20.5 15.5v1h3v-1zM13.172 19.535l-.708-.707-2.12 2.122.706.707zM19.535 18.828l-.707.707 2.122 2.122.707-.707zM16.5 20.5h-1v3h1z'/%3E%3Cpath clip-rule='evenodd' d='M18.498 15.998a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm-1 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--ellipses {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M11.5 16a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm6 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm4.5 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--eyedropper {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22.447 9.6c-.8-.8-2-.8-2.8 0l-2.8 2.8-.8-.7c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l.7.7-5.8 5.8c-.4.4-1 1.9 0 2.9s2.5.4 2.9 0l5.8-5.8.7.7c.4.4 1 .4 1.4 0s.4-1 0-1.4l-.7-.7 2.8-2.8c.8-.9.8-2.1 0-2.9zm-10.9 11.9h-1v-1l5.8-5.8 1 1c-.1 0-5.8 5.8-5.8 5.8z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--forward {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M17.94 16l-4.647-4.646.707-.707L19.354 16 14 21.354l-.707-.707z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--frame {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M11 24v-3H8v-1h3v-8H8v-1h3V8h1v3h8V8h1v3h3v1h-3v8h3v1h-3v3h-1v-3h-8v3zm9-4v-8h-8v8z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--group {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M17.4 9h-2.8v1h2.8zM20.9 22H22v-1.1h1V23h-2.1zM10 14.6v2.8H9v-2.8zM22 11.1V10h-1.1V9H23v2.1zM22 14.6v2.8h1v-2.8zM10 11.1V10h1.1V9H9v2.1zM9 20.9h1V22h1.1v1H9zM17.4 22h-2.8v1h2.8z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--hidden {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M21.509 15.801A8.033 8.033 0 0022.928 14h-1.184A6.992 6.992 0 0116 17a6.992 6.992 0 01-5.745-3H9.07a8.033 8.033 0 001.421 1.801l-1.595 1.595.708.707 1.657-1.657c.71.523 1.511.932 2.374 1.199l-.617 2.221.964.268.626-2.255a8.051 8.051 0 002.784 0l.626 2.255.964-.268-.617-2.221a7.971 7.971 0 002.374-1.2l1.658 1.658.707-.707z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--horizontal-padding {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9v14h1V9zm13 0v14h1V9z'/%3E%3Cpath clip-rule='evenodd' d='M13 19v-6h6v6zm-1-7h8v8h-8z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--hyperlink {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.824 14.492l-1.657 1.657.828.829 1.658-1.657a3.517 3.517 0 00-4.973-4.973l-1.657 1.658.829.828 1.657-1.657a2.345 2.345 0 013.315 3.315zm-4.974 4.972l.829.829-1.658 1.657a3.516 3.516 0 11-4.972-4.972l1.659-1.658.828.829-1.656 1.657a2.343 2.343 0 103.315 3.315l1.657-1.657zm2.072-6.216l-4.972 4.973.828.829 4.973-4.973z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--image {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M22 10H10v7.793l3.083-3.083 7.29 7.29H22zM10 22v-2.793l3.083-3.083L18.96 22zm0-13a1 1 0 00-1 1v12a1 1 0 001 1h12a1 1 0 001-1V10a1 1 0 00-1-1zm9.667 4.667a1.333 1.333 0 11-2.667 0 1.333 1.333 0 012.667 0zm1 0a2.333 2.333 0 11-4.667 0 2.333 2.333 0 014.667 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--instance {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16 7l9 9-9 9-9-9zm-7.586 9L16 23.586 23.586 16 16 8.414z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--key {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M15.14 20.14a3.014 3.014 0 00.331-3.868l2.047-2.047 1.767 1.767a.5.5 0 10.707-.707l-1.767-1.767 1.293-1.293 1.784 1.784a.5.5 0 10.707-.707l-1.784-1.784.762-.761a.5.5 0 00-.707-.708l-5.513 5.513a3.014 3.014 0 10.373 4.578zm-.712-.712a2.006 2.006 0 10-2.837-2.837 2.006 2.006 0 002.837 2.837z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--layout-align-bottom {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M14.5 10v10h-2V10zm8 12v1h-13v-1zm-3-2v-6h-2v6z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--align-horizontal-centers {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.5 9.5h-1v3h-5v2h5v3h-3v2h3v3h1v-3h3v-2h-3v-3h5v-2h-5z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--align-left {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M10 22.5H9v-13h1zM22 14.5H12v-2h10zM12 19.5h6v-2h-6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--align-right {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M22 22.5h1v-13h-1zM10 14.5h10v-2H10zM20 19.5h-6v-2h6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--align-top {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M14.5 22V12h-2v10zM22.5 10V9h-13v1zM19.5 12v6h-2v-6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--align-vertical-centers {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.5 15.5v-5h2v5h3v-3h2v3h3v1h-3v3h-2v-3h-3v5h-2v-5h-3v-1z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--layout-grid-columns {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9h3v14H9zM14.5 9h3v14h-3zM20 9h3v14h-3z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--layout-grid-rows {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9h14v3H9zM9 14.5h14v3H9zM9 20h14v3H9z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--layout-grid-uniform {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9h3v3H9zM20 9h3v3h-3zM14.5 9h3v3h-3zM9 14.5h3v3H9zM20 14.5h3v3h-3zM14.5 14.5h3v3h-3zM9 20h3v3H9zM20 20h3v3h-3zM14.5 20h3v3h-3z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--library {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M15.373 22h1.258c.28-.32.616-.597.995-.819 1.478-.862 4.005-.909 5.386.109H24.5v-9.2s-.797-2.25-4.42-2.25c-1.875 0-2.902.602-3.456 1.184a2.568 2.568 0 00-.6.976h-.048a2.569 2.569 0 00-.6-.976c-.554-.582-1.581-1.184-3.456-1.184-3.623 0-4.42 2.25-4.42 2.25v9.19h1.488c1.382-1.019 3.91-.97 5.388-.105.38.223.717.503.997.825zm1.127-9.711v8.457c.195-.157.403-.3.622-.428.927-.541 2.115-.796 3.241-.787 1.006.008 2.081.227 2.952.759h.185v-7.973a2.414 2.414 0 00-.505-.595c-.46-.397-1.33-.882-2.915-.882-1.586 0-2.34.483-2.695.835a1.749 1.749 0 00-.353.49 1.076 1.076 0 00-.052.131l-.005.017.001-.006.002-.008v-.005l.001-.002v-.002l-.005-.001zm-1 0h-.474l-.006.001v.002l.001.002.001.005.002.008.001.006-.005-.017a1.076 1.076 0 00-.053-.131 1.749 1.749 0 00-.353-.49c-.354-.351-1.108-.835-2.694-.835-1.585 0-2.455.485-2.916.882a2.411 2.411 0 00-.504.595v7.963h.185c.872-.532 1.948-.752 2.954-.759 1.128-.008 2.316.249 3.243.792.217.127.424.27.618.426z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--link-broken {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M18 14v-2a2 2 0 10-4 0v2h-1v-2a3 3 0 116 0v2zM19 18h-1v2a2 2 0 11-4 0v-2h-1v2a3 3 0 106 0z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--link-connected {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M16 10a2 2 0 012 2v2h1v-2a3 3 0 10-6 0v2h1v-2a2 2 0 012-2zM18 18h1v2a3 3 0 11-6 0v-2h1v2a2 2 0 104 0z'/%3E%3Cpath d='M15.5 13v6h1v-6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--list-detailed {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M12 10h-2v1h2zM12 20h-2v1h2zM10 15h2v1h-2zM22 10h-8v1h8zM14 20h8v1h-8zM22 15h-8v1h8z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--list-tile {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M14 11h-3v3h3zm-4-1v5h5v-5zm11 1h-3v3h3zm-4-1v5h5v-5zm-3 8h-3v3h3zm-4-1v5h5v-5zm11 1h-3v3h3zm-4-1v5h5v-5z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--list {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000' fill-opacity='.8'%3E%3Cpath d='M23 10H9v1h14zM9 15.5h14v1H9zM9 21h14v1H9z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--lock-off {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 15h.5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-6a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5H17v-2.5a2.5 2.5 0 015 0V14h-1v-1.5a1.5 1.5 0 00-3 0z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--lock-on {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M13.5 15v-1.5a2.5 2.5 0 015 0V15h.5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-6a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5zm4-1.5V15h-3v-1.5a1.5 1.5 0 013 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--minus {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 16.5h-11v-1h11z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--play {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M13 10.098L22.443 16 13 21.902zm1 1.804v8.196L20.557 16z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--plus {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.5 15.5v-5h1v5h5v1h-5v5h-1v-5h-5v-1z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--random {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath clip-rule='evenodd' d='M15.118 11a2.5 2.5 0 00-1.335.386L11.228 13H18.5v1h-8.497a.512.512 0 00-.003.051V20.5c0 .278.223.5.497.5h7.628a.498.498 0 00.328-.123l3.206-2.805a1 1 0 00.341-.753V11.5a.5.5 0 00-.5-.5zm-1.869-.46a3.5 3.5 0 011.87-.54H21.5a1.5 1.5 0 011.5 1.5v5.82a2 2 0 01-.683 1.504l-3.205 2.805c-.274.24-.624.371-.987.371h-7.627C9.668 22 9 21.327 9 20.5v-6.449a1.5 1.5 0 01.699-1.268z' fill-rule='evenodd'/%3E%3Cpath d='M13 16a1 1 0 11-2 0 1 1 0 012 0zM17 16a1 1 0 11-2 0 1 1 0 012 0zM17 19a1 1 0 11-2 0 1 1 0 012 0zM13 19a1 1 0 11-2 0 1 1 0 012 0z'/%3E%3Cg clip-rule='evenodd' fill-rule='evenodd'%3E%3Cpath d='M22.407 10.71a.5.5 0 01-.116.697l-3.5 2.5a.5.5 0 01-.582-.814l3.5-2.5a.5.5 0 01.698.116z'/%3E%3Cpath d='M18 21v-8h1v8z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--recent {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M15 12v5h5v-1h-4v-4z'/%3E%3Cpath clip-rule='evenodd' d='M24 16a8 8 0 11-16 0 8 8 0 0116 0zm-1 0a7 7 0 11-14 0 7 7 0 0114 0z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--resize-to-fit {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M8.646 9.354L12.293 13H10v1h4v-4h-1v2.293L9.354 8.646zM19.707 13l3.647-3.646-.707-.708L19 12.293V10h-1v4h4v-1zM19.707 19l3.647 3.646-.707.708L19 19.707V22h-1v-4h4v1zM12.293 19l-3.647 3.646.708.708L13 19.707V22h1v-4h-4v1z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--resolve-filled {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16 24a8 8 0 100-16 8 8 0 000 16zm3.911-9.635l-.822-.73-3.613 4.064-2.587-2.588-.778.778 3.413 3.412z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--resolve {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M19.911 14.365l-.822-.73-3.613 4.063-2.587-2.587-.778.778 3.413 3.412z'/%3E%3Cpath clip-rule='evenodd' d='M24 16a8 8 0 11-16 0 8 8 0 0116 0zm-1 0a7 7 0 11-14 0 7 7 0 0114 0z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--reverse {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M15.854 8.646L18.207 11l-2.353 2.354-.708-.708 1.147-1.146H14c-.503 0-1.27.155-1.895.606-.6.432-1.105 1.157-1.105 2.394v7.25h-1V14.5c0-1.563.662-2.588 1.52-3.206.833-.6 1.817-.794 2.48-.794h2.293l-1.147-1.146zM22 10v7.25c0 1.563-.662 2.588-1.52 3.206-.833.6-1.817.794-2.48.794h-2.293l1.147 1.146-.708.708-2.353-2.354 2.353-2.354.708.708-1.147 1.146H18c.503 0 1.27-.155 1.895-.606.6-.432 1.105-1.157 1.105-2.394V10z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--search-large {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M18.874 19.581a6 6 0 11.707-.707l4.273 4.272-.708.708zM20 15a5 5 0 11-10 0 5 5 0 0110 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--search {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M18.397 18.605a4.552 4.552 0 11.707-.707l3.25 3.249-.708.707zm.706-3.553a3.552 3.552 0 11-7.103 0 3.552 3.552 0 017.103 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--settings {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-rule='evenodd' fill='%23000' fill-rule='evenodd'%3E%3Cpath d='M16.954 9.928l-.139-.331C16.635 9.165 16.301 9 16 9s-.635.165-.815.597l-.139.331c-.56 1.343-1.992 2.13-3.425 1.72l-.5-.144c-.309-.088-.606.025-.815.327a1.05 1.05 0 00-.049 1.123c.743 1.323.402 3.068-.86 3.95-.318.222-.456.614-.375 1.024.081.409.342.668.673.723l.195.033c1.525.253 2.51 1.687 2.423 3.18-.03.503.22.861.52 1.028.288.161.623.155.921-.108l.373-.33a2.8 2.8 0 013.746 0l.373.33c.298.264.633.27.922.108.3-.167.549-.525.52-1.028-.088-1.493.897-2.927 2.423-3.18l.194-.033c.33-.055.592-.314.673-.723.081-.41-.057-.802-.375-1.024-1.262-.882-1.603-2.627-.86-3.95a1.05 1.05 0 00-.05-1.123c-.208-.302-.505-.415-.815-.327l-.499.143c-1.433.41-2.865-.376-3.425-1.719zm.784-.717c-.674-1.615-2.802-1.615-3.476 0l-.138.332c-.383.917-1.326 1.401-2.228 1.143l-.499-.143c-1.575-.45-2.855 1.398-2.012 2.9.505.9.257 2.07-.56 2.64-1.392.973-.933 3.282.706 3.555l.195.032c.96.16 1.65 1.09 1.588 2.135-.104 1.788 1.82 2.864 3.103 1.727l.373-.33a1.8 1.8 0 012.42 0l.373.33c1.284 1.137 3.207.061 3.103-1.727-.061-1.046.628-1.975 1.589-2.135l.194-.032c1.639-.273 2.098-2.582.707-3.554-.818-.572-1.066-1.742-.561-2.64.843-1.503-.437-3.352-2.012-2.901l-.5.143c-.9.258-1.844-.226-2.226-1.143z'/%3E%3Cpath d='M16 18.5a2 2 0 100-4 2 2 0 000 4zm0 1a3 3 0 100-6 3 3 0 000 6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--share {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M20 9.5a3.5 3.5 0 00-1.383 6.716A4.513 4.513 0 0016 18.436a4.513 4.513 0 00-2.618-2.22 3.501 3.501 0 10-2.764 0A4.502 4.502 0 007.5 20.5V22h17v-1.5c0-2.003-1.309-3.7-3.118-4.284A3.501 3.501 0 0020 9.5zM17.5 13a2.5 2.5 0 115 0 2.5 2.5 0 01-5 0zm-1 8v-.5a3.5 3.5 0 117 0v.5zm-1-.5v.5h-7v-.5a3.5 3.5 0 117 0zm-6-7.5a2.5 2.5 0 115 0 2.5 2.5 0 01-5 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--smiley {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M16 20a4.002 4.002 0 01-3.874-3h1.045a3.001 3.001 0 005.658 0h1.045A4.002 4.002 0 0116 20zM19.5 14.125a.875.875 0 11-1.75 0 .875.875 0 011.75 0zM13.125 15a.875.875 0 100-1.75.875.875 0 000 1.75z'/%3E%3Cpath clip-rule='evenodd' d='M24 16a8 8 0 11-16 0 8 8 0 0116 0zm-1 0a7 7 0 11-14 0 7 7 0 0114 0z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--sort-alpha-asc {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-rule='evenodd' fill='%23000' fill-rule='evenodd'%3E%3Cpath d='M10.897 9L9 14h1.07l.379-1h2.133l.338 1h1.056l-1.69-5zm1.347 3l-.667-1.973L10.828 12zM12.553 19H9.5v-1H14v.979L10.932 22H14v1H9.5v-.993zM20.5 8.293l3.354 3.353-.708.708L21 10.207V23h-1V10.207l-2.146 2.147-.708-.708z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--sort-alpha-dsc {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-rule='evenodd' fill='%23000' fill-rule='evenodd'%3E%3Cpath d='M10.897 9L9 14h1.07l.379-1h2.133l.338 1h1.056l-1.69-5zm1.347 3l-.667-1.973L10.828 12zM12.553 19H9.5v-1H14v.979L10.932 22H14v1H9.5v-.993zM20 21.793V9h1v12.793l2.146-2.147.708.708-3.354 3.353-3.354-3.353.708-.708z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--sort-top-bottom {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M20.45 12H10v-1h10.45c.97 0 1.372 1.244.584 1.812L11.05 20h9.243l-1.647-1.646.708-.708 2.853 2.854-2.853 2.854-.708-.708L20.293 21H11.05c-.97 0-1.372-1.244-.584-1.812z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--spacing {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22 11h-2v10h2v1h-3V10h3zm-10-1v12H9v-1h2V11H9v-1zm4 3h-1v6h1z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--spinner {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M15.165 8.53a.5.5 0 01-.404.58A7 7 0 1023 16a.5.5 0 011 0 8 8 0 11-9.416-7.874.5.5 0 01.58.404z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--star-off {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M18 14.004L16 8l-2 6.004H8L12.96 18l-1.904 6L16 20l4.944 4-1.904-6L24 14zm3.165.998l-3.886.002L16 11.164l-1.28 3.84h-3.885l3.285 2.646-1.103 3.477L16 18.714l2.983 2.413-1.103-3.476z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--star-on {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8l2 6.004L24 14l-4.96 4 1.904 6L16 20l-4.944 4 1.904-6L8 14.004h6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--stroke-weight {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M10 10h12v1H10zm0 4h12v2H10zm12 5H10v3h12z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--styles {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M11.5 13a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zM17.5 13a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zM19 20.5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM11.5 19a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--swap {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M23 13.188l-1.175 1.468a5.5 5.5 0 00-10.003-2.219l.83.557a4.5 4.5 0 018.216 2.057l-2.2-1.467-.555.832 3.381 2.254 2.287-2.858zM9 17.188l.78.624 1.176-1.468.026.156a5.5 5.5 0 009.976 2.065v-.002l-.83-.557-.001.001a4.5 4.5 0 01-8.214-2.058l2.2 1.467.555-.832-3.382-2.254z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--theme {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath clip-rule='evenodd' d='M13 10h-3v12h3zm-3-1a1 1 0 00-1 1v12a1 1 0 001 1h3a1 1 0 001-1V10a1 1 0 00-1-1z' fill-rule='evenodd'/%3E%3Cpath d='M10.75 20.5a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM22 18a1 1 0 011 1v3a1 1 0 01-1 1h-7v-1h7v-3h-7v-1zM18.385 17l2.757-2.757a1 1 0 000-1.415l-2.121-2.12a1 1 0 00-1.414 0L15 13.313v1.414l3.314-3.314 2.121 2.122L16.971 17z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--tidy-up-grid {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M10 10h2v2h-2zM20 10h2v2h-2zM12 15h-2v2h2zM20 15h2v2h-2zM12 20h-2v2h2zM20 20h2v2h-2zM17 10h-2v2h2zM15 15h2v2h-2zM17 20h-2v2h2z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--tidy-up-list-horizontal {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M10 22.5v-13h2v13zM15 22.5v-13h2v13zM20 9.5v13h2v-13z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--tidy-up-list-vertical {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9.5 10h13v2h-13zM9.5 15h13v2h-13zM22.5 20h-13v2h13z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--timer {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M19 8h-6V7h6zM16.5 17v-5h-1v5a.5.5 0 001 0z'/%3E%3Cpath clip-rule='evenodd' d='M22.715 12.65l1.527-1.529L22.122 9l-1.483 1.482a8 8 0 102.075 2.167zM23 17a7 7 0 11-2.384-5.263l.647.647A6.974 6.974 0 0123 17zm-1.008-5.3l.13.128.706-.707-.707-.707-.701.701c.2.185.391.38.572.585z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--trash {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M14 18.5v-4h1v4zM17 18.5v-4h1v4z'/%3E%3Cpath clip-rule='evenodd' d='M19 10.5a2 2 0 00-2-2h-2a2 2 0 00-2 2h-3v1h1v10a2 2 0 002 2h6a2 2 0 002-2v-10h1v-1zm-4-1a1 1 0 00-1 1h4a1 1 0 00-1-1zm5 2h-8v10a1 1 0 001 1h6a1 1 0 001-1z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--vertical-padding {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9h14v1H9zm0 13h14v1H9z'/%3E%3Cpath clip-rule='evenodd' d='M19 13h-6v6h6zm-7-1v8h8v-8z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--visible {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M16 18a2 2 0 100-4 2 2 0 000 4z'/%3E%3Cpath clip-rule='evenodd' d='M16 12a7.499 7.499 0 016.635 4A7.499 7.499 0 0116 20a7.499 7.499 0 01-6.635-4A7.499 7.499 0 0116 12zm0 7a6.495 6.495 0 01-5.478-3A6.495 6.495 0 0116 13c2.3 0 4.322 1.194 5.478 3A6.495 6.495 0 0116 19z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--warning-large {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16 6l10 18H6zm-1 11v-4h2v4zm0 2v2h2v-2z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--warning {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16 9l8 14H8zm-1 8.5V14h2v3.5zm0 1.5v2h2v-2z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon-button {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n width: var(--size-medium);\n height: var(--size-medium);\n border-radius: var(--border-radius-small);\n border: 2px solid transparent;\n}\n\n.icon-button * {\n -webkit-filter: invert(0%) sepia(0%) saturate(7500%) hue-rotate(117deg) brightness(109%) contrast(105%);\n filter: invert(0%) sepia(0%) saturate(7500%) hue-rotate(117deg) brightness(109%) contrast(105%);\n}\n\n.icon-button:hover {\n background: var(--hover-fill);\n}\n\n.icon-button:active, .icon-button:focus {\n border: 2px solid var(--blue);\n outline: none;\n}\n\n.icon-button--selected {\n background-color: var(--blue);\n}\n\n.icon-button--selected:hover {\n background-color: var(--blue);\n}\n\n.icon-button--selected:active, .icon-button--selected:focus {\n border: 2px solid var(--black3);\n}\n\n.icon-button--selected * {\n -webkit-filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(269deg) brightness(103%) contrast(104%);\n filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(269deg) brightness(103%) contrast(104%);\n}\n\n.input {\n position: relative;\n}\n\n.input__field {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n line-height: var(--line-height);\n position: relative;\n display: flex;\n overflow: visible;\n align-items: center;\n width: 100%;\n height: 30px;\n margin: 1px 0 1px 0;\n padding: var(--size-xxsmall) var(--size-xxxsmall) var(--size-xxsmall) var(--size-xxsmall);\n color: var(--black8);\n border: 1px solid transparent;\n border-radius: var(--border-radius-small);\n outline: none;\n background-color: var(--white);\n}\n\n.input__field:hover, .input__field:placeholder-shown:hover {\n color: var(--black8);\n border: 1px solid var(--black1);\n background-image: none;\n}\n\n.input__field::-moz-selection {\n color: var(--black);\n background-color: var(--blue3);\n}\n\n.input__field::selection {\n color: var(--black);\n background-color: var(--blue3);\n}\n\n.input__field::-webkit-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field::-moz-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field:-ms-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field::-ms-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field::placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field:placeholder-shown {\n border: 1px solid var(--black1);\n}\n\n.input__field:focus:placeholder-shown {\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.input__field:disabled:hover {\n border: 1px solid transparent;\n}\n\n.input__field:active, .input__field:focus {\n color: var(--black);\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.input__field:disabled {\n position: relative;\n color: var(--black3);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.input__field:disabled:active {\n outline: none;\n}\n\n.input--with-icon .input__field {\n padding-left: 32px;\n}\n\n.input .icon {\n position: absolute;\n top: 0px;\n left: 0;\n width: var(--size-medium);\n height: var(--size-medium);\n z-index: 1;\n opacity: 0.3;\n}\n\n.label {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black3);\n height: var(--size-medium);\n width: 100%;\n display: flex;\n align-items: center;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 0 var(--size-xxxsmall) 0 var(--size-xxsmall);\n}\n\n.onboarding-tip {\n display: flex;\n align-items: top;\n padding: 0 var(--size-xsmall) 0 0;\n}\n\n.onboarding-tip .icon {\n margin-right: var(--size-xxsmall);\n}\n\n.onboarding-tip__msg {\n padding: var(--size-xxsmall) 0 var(--size-xxsmall) 0;\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n margin: 0;\n}\n\n.radio {\n align-items: center;\n cursor: default;\n display: flex;\n height: var(--size-medium);\n position: relative;\n}\n\n.radio__button {\n opacity: 0;\n width: 10px;\n height: 10px;\n margin: 0;\n padding: 0;\n}\n\n.radio__button:checked + .radio__label:before {\n background-image: url('data:image/svg+xml,%3Csvg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Crect width=\"6\" height=\"6\" rx=\"3\" fill=\"black\" fill-opacity=\"0.8\"/%3E%3C/svg%3E%0A');\n background-repeat: no-repeat;\n background-position: 2px 2px;\n}\n\n.radio__button:disabled + .radio__label {\n opacity: 0.3;\n}\n\n.radio__button:checked:disabled + .radio__label:before {\n border: 1px solid var(--black);\n}\n\n.radio__label {\n align-items: center;\n color: var(--black8);\n display: flex;\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n line-height: var(--font-line-height);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n margin-left: -16px;\n padding: 0 var(--size-xsmall) 0 var(--size-small);\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.radio__label:before {\n border: 1px solid var(--black8);\n border-radius: var(--border-radius-small);\n content: '';\n display: block;\n width: 10px;\n height: 10px;\n margin: 2px 10px 0 -8px;\n border-radius: 50%;\n}\n\n.section-title {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-bold);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n height: var(--size-medium);\n width: 100%;\n display: flex;\n align-items: center;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 0 calc(var(--size-xxsmall) / 2) 0 var(--size-xxsmall);\n}\n\nselect.select-menu {\n display: none;\n}\n\n.select-menu {\n position: relative;\n}\n\n.select-menu__button {\n display: flex;\n align-items: center;\n border: 1px solid transparent;\n height: 30px;\n width: 100%;\n margin: 1px 0 1px 0;\n padding: 0px var(--size-xxsmall) 0px var(--size-xxsmall);\n overflow-y: hidden;\n border-radius: var(--border-radius-small);\n background-color: var(--white);\n}\n\n.select-menu__button:hover {\n border-color: var(--black1);\n}\n\n.select-menu__button:focus {\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.select-menu__button:disabled:hover {\n justify-content: flex-start;\n border-color: transparent;\n}\n\n.select-menu__button * {\n pointer-events: none;\n}\n\n.select-menu__button:hover .select-menu__label--placeholder {\n color: var(--black8);\n}\n\n.select-menu__button:focus .select-menu__label--placeholder {\n color: var(--black8);\n}\n\n.select-menu__button:disabled:hover .select-menu__label--placeholder {\n color: var(--black3);\n}\n\n.select-menu__button:hover .select-menu__caret, .select-menu__button:focus .select-menu__caret {\n opacity: 1.0;\n margin-left: auto;\n}\n\n.select-menu__button:disabled:hover .select-menu__caret {\n opacity: 0.3;\n margin-left: -12px;\n}\n\n.select-menu__button:disabled .select-menu__label {\n color: var(--black3);\n}\n\n.select-menu__label {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n margin-right: 6px;\n margin-top: -2px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n\n.select-menu__label--placeholder {\n color: var(--black3);\n}\n\n.select-menu__caret {\n width: 30px;\n height: 30px;\n display: block;\n margin-top: -1px;\n margin-left: -12px;\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20width%3D%2230%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20clip-rule%3D%22evenodd%22%20d%3D%22m15%2016.7071-3-3%20.7071-.7071%202.6465%202.6464%202.6464-2.6464.7071.7071-3%203-.3535.3536z%22%20fill%3D%22%23000%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: center center;\n opacity: 0.3;\n}\n\n.select-menu .icon {\n margin-left: -8px;\n margin-top: -2px;\n margin-right: 0;\n opacity: 0.3;\n}\n\n.select-menu__menu {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n background-color: var(--hud);\n box-shadow: var(--shadow-hud);\n padding: var(--size-xxsmall) 0 var(--size-xxsmall) 0;\n border-radius: var(--border-radius-small);\n margin: 0;\n z-index: 1000;\n overflow-x: overlay;\n overflow-y: auto;\n}\n\n.select-menu__menu--active {\n display: block;\n}\n\n.select-menu__menu::-webkit-scrollbar {\n width: 12px;\n background-color: transparent;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);\n background-repeat: repeat;\n background-size: 100% auto;\n}\n\n.select-menu__menu::-webkit-scrollbar-track {\n border: solid 3px transparent;\n box-shadow: inset 0 0 10px 10px transparent;\n}\n\n.select-menu__menu::-webkit-scrollbar-thumb {\n border: solid 3px transparent;\n border-radius: 6px;\n box-shadow: inset 0 0 10px 10px rgba(255, 255, 255, 0.4);\n}\n\n.select-menu__item {\n align-items: center;\n color: var(--white);\n cursor: default;\n display: flex;\n font-family: var(--font-stack);\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n line-height: var(--font-line-height);\n height: var(--size-small);\n padding: 0px var(--size-xsmall) 0px var(--size-xxsmall);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n outline: none;\n}\n\n.select-menu__item--selected .select-menu__item-icon {\n opacity: 1.0;\n}\n\n.select-menu__item-label {\n overflow-x: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n\n.select-menu__item-icon {\n width: var(--size-xsmall);\n height: var(--size-xsmall);\n margin-right: var(--size-xxsmall);\n opacity: 0;\n pointer-events: none;\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20width%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20clip-rule%3D%22evenodd%22%20d%3D%22m13.2069%205.20724-5.50002%205.49996-.70711.7072-.70711-.7072-3-2.99996%201.41422-1.41421%202.29289%202.29289%204.79293-4.79289z%22%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: center center;\n}\n\n.select-menu--highlight, .select-menu__item:hover, .select-menu__item:focus {\n background-color: var(--blue);\n}\n\n.select-menu__divider-label {\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-small);\n line-height: var(--line-height);\n display: flex;\n align-items: center;\n height: var(--size-small);\n padding: 0 var(--size-xxsmall) 0 var(--size-medium);\n color: var(--white4);\n margin-top: 0;\n}\n\n.select-menu__divider {\n background-color: var(--white2);\n display: block;\n height: 1px;\n margin: 8px 0 7px 0;\n}\n\n.switch {\n align-items: center;\n cursor: default;\n display: flex;\n height: var(--size-medium);\n position: relative;\n /*\n &__toggle:focus + &__label:before {\n box-shadow: 0 0 0 2px var(--blue);\n }\n */\n}\n\n.switch__toggle {\n opacity: 0;\n}\n\n.switch__toggle:checked + .switch__label:before {\n color: var(--black8);\n background-color: var(--black8-opaque);\n}\n\n.switch__toggle:checked + .switch__label:after {\n transform: translateX(12px);\n}\n\n.switch__toggle:checked:disabled + .switch__label:before {\n border: 1px solid var(--black);\n background-color: var(--black);\n}\n\n.switch__toggle:disabled + .switch__label {\n color: var(--black);\n opacity: 0.3;\n}\n\n.switch__label {\n align-items: center;\n color: var(--black8);\n display: flex;\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n height: 100%;\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--font-line-height);\n margin-left: -16px;\n padding: 0 var(--size-xsmall) 0 calc(var(--size-xlarge) - 2px);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.switch__label:before {\n background-color: var(--white);\n border: 1px solid var(--black8-opaque);\n border-radius: 6px;\n content: '';\n display: block;\n height: 10px;\n left: 8px;\n position: absolute;\n top: 10px;\n transition: background-color 0 0.2s;\n width: 22px;\n}\n\n.switch__label:after {\n background-color: var(--white);\n border: 1px solid var(--black8-opaque);\n border-radius: 50%;\n content: '';\n display: block;\n height: 10px;\n left: 8px;\n position: absolute;\n top: 10px;\n transition: transform 0.2s;\n width: 10px;\n}\n\n.textarea {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n line-height: var(--line-height);\n position: relative;\n display: flex;\n overflow: visible;\n align-items: center;\n width: 100%;\n min-height: 62px;\n margin: 1px 0 1px 0;\n padding: var(--size-xxsmall) var(--size-xxxsmall) var(--size-xxsmall) var(--size-xxsmall);\n color: var(--black8);\n border: 1px solid var(--black1);\n border-radius: var(--border-radius-small);\n outline: none;\n background-color: var(--white);\n resize: none;\n overflow-y: auto;\n}\n\n.textarea:hover, .textarea:placeholder-shown:hover {\n color: var(--black8);\n border: 1px solid var(--black1);\n background-image: none;\n}\n\n.textarea::-moz-selection {\n color: var(--black);\n background-color: var(--blue3);\n}\n\n.textarea::selection {\n color: var(--black);\n background-color: var(--blue3);\n}\n\n.textarea::-webkit-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea::-moz-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea:-ms-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea::-ms-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea::placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea:focus:placeholder-shown {\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.textarea:active, .textarea:focus {\n color: var(--black);\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.textarea:disabled, .textarea:disabled:hover {\n position: relative;\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea:disabled:active {\n outline: none;\n}\n\n.type {\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n line-height: var(--font-line-height);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n /* sizes */\n /* weights */\n /* letter spacing adjustments based pos/neg application */\n}\n\n.type--small {\n font-size: var(--font-size-small);\n letter-spacing: var(--font-letter-spacing-pos-small);\n}\n\n.type--large {\n font-size: var(--font-size-large);\n line-height: var(--font-line-height-large);\n letter-spacing: var(--font-letter-spacing-pos-large);\n}\n\n.type--xlarge {\n font-size: var(--font-size-xlarge);\n line-height: var(--font-line-height-large);\n letter-spacing: var(--font-letter-spacing-pos-xlarge);\n}\n\n.type--medium {\n font-weight: var(--font-weight-medium);\n}\n\n.type--bold {\n font-weight: var(--font-weight-bold);\n}\n\n.type--inverse {\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n}\n\n.type--inverse + .type--small {\n letter-spacing: var(--font-letter-spacing-neg-small);\n}\n\n.type--inverse + .type--large {\n letter-spacing: var(--font-letter-spacing-neg-large);\n}\n\n.type--inverse + .type--xlarge {\n letter-spacing: var(--font-letter-spacing-neg-xlarge);\n}\n\n.type--inline {\n display: inline-block;\n}\n", "",{"version":3,"sources":["webpack://./node_modules/figma-plugin-ds/dist/figma-plugin-ds.css"],"names":[],"mappings":"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","sourcesContent":["/* Vars */\n:root {\n /* COLORS */\n /* Accent */\n --blue: #18a0fb;\n --purple: #7b61ff;\n --hot-pink: #ff00ff;\n --green: #1bc47d;\n --red: #f24822;\n --yellow: #ffeb00;\n /* Basic foreground */\n --black: #000000;\n --black8: rgba(0, 0, 0, .8);\n --black8-opaque: #333333;\n --black3: rgba(0, 0, 0, .3);\n --black3-opaque: #B3B3B3;\n --white: #ffffff;\n --white8: rgba(255, 255, 255, .8);\n --white4: rgba(255, 255, 255, .4);\n /* Basic background */\n --grey: #f0f0f0;\n --silver: #e5e5e5;\n --hud: #222222;\n --toolbar: #2c2c2c;\n /* Special */\n --black1: rgba(0, 0, 0, .1);\n --blue3: rgba(24, 145, 251, .3);\n --purple4: rgba(123, 97, 255, .4);\n --hover-fill: rgba(0, 0, 0, .06);\n --selection-a: #daebf7;\n --selection-b: #edf5fa;\n --white2: rgba(255, 255, 255, .2);\n /* TYPOGRAPHY */\n /* Pos = positive applications (black on white) */\n /* Neg = negative applications (white on black) */\n /* Font stack */\n --font-stack: 'Inter', sans-serif;\n /* Font sizes */\n --font-size-xsmall: 11px;\n --font-size-small: 12px;\n --font-size-large: 13px;\n --font-size-xlarge: 14px;\n /* Font weights */\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-bold: 600;\n /* Lineheight */\n --font-line-height: 16px;\n /* Use For xsmall, small font sizes */\n --font-line-height-large: 24px;\n /* Use For large, xlarge font sizes */\n /* Letterspacing */\n --font-letter-spacing-pos-xsmall: .005em;\n --font-letter-spacing-neg-xsmall: .01em;\n --font-letter-spacing-pos-small: 0;\n --font-letter-spacing-neg-small: .005em;\n --font-letter-spacing-pos-large: -.0025em;\n --font-letter-spacing-neg-large: .0025em;\n --font-letter-spacing-pos-xlarge: -.001em;\n --font-letter-spacing-neg-xlarge: -.001em;\n /* BORDER RADIUS */\n --border-radius-small: 2px;\n --border-radius-med: 5px;\n --border-radius-large: 6px;\n /* SHADOWS */\n --shadow-hud: 0 5px 17px rgba(0, 0, 0, .2), 0 2px 7px rgba(0, 0, 0, .15);\n --shadow-floating-window: 0 2px 14px rgba(0, 0, 0, .15);\n /* SPACING + SIZING */\n --size-xxxsmall: 4px;\n --size-xxsmall: 8px;\n --size-xsmall: 16px;\n --size-small: 24px;\n --size-medium: 32px;\n --size-large: 40px;\n --size-xlarge: 48px;\n --size-xxlarge: 64px;\n --size-xxxlarge: 80px;\n}\n\n/* Global styles */\n* {\n box-sizing: border-box;\n}\n\nbody {\n position: relative;\n box-sizing: border-box;\n font-family: 'Inter', sans-serif;\n margin: 0;\n padding: 0;\n}\n\n/* FONTS */\n@font-face {\n font-family: 'Inter';\n font-weight: 400;\n font-style: normal;\n src: url(\"https://rsms.me/inter/font-files/Inter-Regular.woff2?v=3.7\") format(\"woff2\"), url(\"https://rsms.me/inter/font-files/Inter-Regular.woff?v=3.7\") format(\"woff\");\n}\n\n@font-face {\n font-family: 'Inter';\n font-weight: 500;\n font-style: normal;\n src: url(\"https://rsms.me/inter/font-files/Inter-Medium.woff2?v=3.7\") format(\"woff2\"), url(\"https://rsms.me/inter/font-files/Inter-Medium.woff2?v=3.7\") format(\"woff\");\n}\n\n@font-face {\n font-family: 'Inter';\n font-weight: 600;\n font-style: normal;\n src: url(\"https://rsms.me/inter/font-files/Inter-SemiBold.woff2?v=3.7\") format(\"woff2\"), url(\"https://rsms.me/inter/font-files/Inter-SemiBold.woff2?v=3.7\") format(\"woff\");\n}\n\n/* UTILITIES */\n/* padding */\n.p-xxxsmall {\n padding: var(--size-xxxsmall);\n}\n\n.p-xxsmall {\n padding: var(--size-xxsmall);\n}\n\n.p-xsmall {\n padding: var(--size-xsmall);\n}\n\n.p-small {\n padding: var(--size-small);\n}\n\n.p-medium {\n padding: var(--size-medium);\n}\n\n.p-large {\n padding: var(--size-large);\n}\n\n.p-xlarge {\n padding: var(--size-xlarge);\n}\n\n.p-xxlarge {\n padding: var(--size-xxlarge);\n}\n\n.p-huge {\n padding: var(--size-xxxlarge);\n}\n\n/* padding top */\n.pt-xxxsmall {\n padding-top: var(--size-xxxsmall);\n}\n\n.pt-xxsmall {\n padding-top: var(--size-xxsmall);\n}\n\n.pt-xsmall {\n padding-top: var(--size-xsmall);\n}\n\n.pt-small {\n padding-top: var(--size-small);\n}\n\n.pt-medium {\n padding-top: var(--size-medium);\n}\n\n.pt-large {\n padding-top: var(--size-large);\n}\n\n.pt-xlarge {\n padding-top: var(--size-xlarge);\n}\n\n.pt-xxlarge {\n padding-top: var(--size-xxlarge);\n}\n\n.pt-huge {\n padding-top: var(--size-xxxlarge);\n}\n\n/* padding right */\n.pr-xxxsmall {\n padding-right: var(--size-xxxsmall);\n}\n\n.pr-xxsmall {\n padding-right: var(--size-xxsmall);\n}\n\n.pr-xsmall {\n padding-right: var(--size-xsmall);\n}\n\n.pr-small {\n padding-right: var(--size-small);\n}\n\n.pr-medium {\n padding-right: var(--size-medium);\n}\n\n.pr-large {\n padding-right: var(--size-large);\n}\n\n.pr-xlarge {\n padding-right: var(--size-xlarge);\n}\n\n.pr-xxlarge {\n padding-right: var(--size-xxlarge);\n}\n\n.pr-huge {\n padding-right: var(--size-xxxlarge);\n}\n\n/* padding bottom */\n.pb-xxxsmall {\n padding-bottom: var(--size-xxxsmall);\n}\n\n.pb-xxsmall {\n padding-bottom: var(--size-xxsmall);\n}\n\n.pb-xsmall {\n padding-bottom: var(--size-xsmall);\n}\n\n.pb-small {\n padding-bottom: var(--size-small);\n}\n\n.pb-medium {\n padding-bottom: var(--size-medium);\n}\n\n.pb-large {\n padding-bottom: var(--size-large);\n}\n\n.pb-xlarge {\n padding-bottom: var(--size-xlarge);\n}\n\n.pb-xxlarge {\n padding-bottom: var(--size-xxlarge);\n}\n\n.pb-huge {\n padding-bottom: var(--size-xxxlarge);\n}\n\n/* padding left */\n.pl-xxxsmall {\n padding-left: var(--size-xxxsmall);\n}\n\n.pl-xxsmall {\n padding-left: var(--size-xxsmall);\n}\n\n.pl-xsmall {\n padding-left: var(--size-xsmall);\n}\n\n.pl-small {\n padding-left: var(--size-small);\n}\n\n.pl-medium {\n padding-left: var(--size-medium);\n}\n\n.pl-large {\n padding-left: var(--size-large);\n}\n\n.pl-xlarge {\n padding-left: var(--size-xlarge);\n}\n\n.pl-xxlarge {\n padding-left: var(--size-xxlarge);\n}\n\n.pl-huge {\n padding-left: var(--size-xxxlarge);\n}\n\n/* margin */\n.m-xxxsmall {\n margin: var(--size-xxxsmall);\n}\n\n.m-xxsmall {\n margin: var(--size-xxsmall);\n}\n\n.m-xsmall {\n margin: var(--size-xsmall);\n}\n\n.m-small {\n margin: var(--size-small);\n}\n\n.m-medium {\n margin: var(--size-medium);\n}\n\n.m-large {\n margin: var(--size-large);\n}\n\n.m-xlarge {\n margin: var(--size-xlarge);\n}\n\n.m-xxlarge {\n margin: var(--size-xxlarge);\n}\n\n.m-huge {\n margin: var(--size-xxxlarge);\n}\n\n/* margin top */\n.mt-xxxsmall {\n margin-top: var(--size-xxxsmall);\n}\n\n.mt-xxsmall {\n margin-top: var(--size-xxsmall);\n}\n\n.mt-xsmall {\n margin-top: var(--size-xsmall);\n}\n\n.mt-small {\n margin-top: var(--size-small);\n}\n\n.mt-medium {\n margin-top: var(--size-medium);\n}\n\n.mt-large {\n margin-top: var(--size-large);\n}\n\n.mt-xlarge {\n margin-top: var(--size-xlarge);\n}\n\n.mt-xxlarge {\n margin-top: var(--size-xxlarge);\n}\n\n.mt-huge {\n margin-top: var(--size-xxxlarge);\n}\n\n/* margin right */\n.mr-xxxsmall {\n margin-right: var(--size-xxxsmall);\n}\n\n.mr-xxsmall {\n margin-right: var(--size-xxsmall);\n}\n\n.mr-xsmall {\n margin-right: var(--size-xsmall);\n}\n\n.mr-small {\n margin-right: var(--size-small);\n}\n\n.mr-medium {\n margin-right: var(--size-medium);\n}\n\n.mr-large {\n margin-right: var(--size-large);\n}\n\n.mr-xlarge {\n margin-right: var(--size-xlarge);\n}\n\n.mr-xxlarge {\n margin-right: var(--size-xxlarge);\n}\n\n.mr-huge {\n margin-right: var(--size-xxxlarge);\n}\n\n/* margin bottom */\n.mb-xxxsmall {\n margin-bottom: var(--size-xxxsmall);\n}\n\n.mb-xxsmall {\n margin-bottom: var(--size-xxsmall);\n}\n\n.mb-xsmall {\n margin-bottom: var(--size-xsmall);\n}\n\n.mb-small {\n margin-bottom: var(--size-small);\n}\n\n.mb-medium {\n margin-bottom: var(--size-medium);\n}\n\n.mb-large {\n margin-bottom: var(--size-large);\n}\n\n.mb-xlarge {\n margin-bottom: var(--size-xlarge);\n}\n\n.mb-xxlarge {\n margin-bottom: var(--size-xxlarge);\n}\n\n.mb-huge {\n margin-bottom: var(--size-xxxlarge);\n}\n\n/* margin left */\n.ml-xxxsmall {\n margin-left: var(--size-xxxsmall);\n}\n\n.ml-xxsmall {\n margin-left: var(--size-xxsmall);\n}\n\n.ml-xsmall {\n margin-left: var(--size-xsmall);\n}\n\n.ml-small {\n margin-left: var(--size-small);\n}\n\n.ml-medium {\n margin-left: var(--size-medium);\n}\n\n.ml-large {\n margin-left: var(--size-large);\n}\n\n.ml-xlarge {\n margin-left: var(--size-xlarge);\n}\n\n.ml-xxlarge {\n margin-left: var(--size-xxlarge);\n}\n\n.ml-huge {\n margin-left: var(--size-xxxlarge);\n}\n\n/* layout utilities */\n.hidden {\n display: none;\n}\n\n.inline {\n display: inline;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.column {\n flex-direction: column;\n}\n\n.column-reverse {\n flex-direction: column-reverse;\n}\n\n.row {\n flex-direction: row;\n}\n\n.row-reverse {\n flex-direction: row-reverse;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n}\n\n.flex-no-wrap {\n flex-wrap: nowrap;\n}\n\n.flex-shrink {\n flex-shrink: 1;\n}\n\n.flex-no-shrink {\n flex-shrink: 0;\n}\n\n.flex-grow {\n flex-grow: 1;\n}\n\n.flex-no-grow {\n flex-grow: 0;\n}\n\n.justify-content-start {\n justify-content: flex-start;\n}\n\n.justify-content-end {\n justify-content: flex-end;\n}\n\n.justify-content-center {\n justify-content: center;\n}\n\n.justify-content-between {\n justify-content: space-between;\n}\n\n.justify-content-around {\n justify-content: space-around;\n}\n\n.align-items-start {\n align-items: flex-start;\n}\n\n.align-items-end {\n align-items: flex-end;\n}\n\n.align-items-center {\n align-items: center;\n}\n\n.align-items-stretch {\n align-items: stretch;\n}\n\n.align-content-start {\n align-content: flex-start;\n}\n\n.align-content-end {\n align-content: flex-end;\n}\n\n.align-content-center {\n align-content: center;\n}\n\n.align-content-stretch {\n align-content: stretch;\n}\n\n.align-self-start {\n align-self: flex-start;\n}\n\n.align-self-end {\n align-items: flex-end;\n}\n\n.align-self-center {\n align-self: center;\n}\n\n.align-self-stretch {\n align-self: stretch;\n}\n\n.button {\n display: flex;\n align-items: center;\n border-radius: var(--border-radius-large);\n color: var(--white);\n flex-shrink: 0;\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-medium);\n letter-spacing: var(--font-letter-spacing-neg-small);\n line-height: var(--font-line-height);\n height: var(--size-medium);\n padding: 0 var(--size-xsmall) 0 var(--size-xsmall);\n text-decoration: none;\n outline: none;\n border: 2px solid transparent;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.button--primary {\n background-color: var(--blue);\n}\n\n.button--primary:enabled:active, .button--primary:enabled:focus {\n border: 2px solid var(--black3);\n}\n\n.button--primary:disabled {\n background-color: var(--black3);\n}\n\n.button--primary-destructive {\n background-color: var(--red);\n}\n\n.button--primary-destructive:enabled:active, .button--primary-destructive:enabled:focus {\n border: 2px solid var(--black3);\n}\n\n.button--primary-destructive:disabled {\n opacity: 0.3;\n}\n\n.button--secondary, .button--secondary-destructive {\n background-color: var(--white);\n border: 1px solid var(--black8);\n color: var(--black8);\n padding: 0 calc(var(--size-xsmall) + 1px) 0 calc(var(--size-xsmall) + 1px);\n letter-spacing: var(--font-letter-spacing-pos-small);\n}\n\n.button--secondary:enabled:active, .button--secondary-destructive:enabled:active, .button--secondary:enabled:focus, .button--secondary-destructive:enabled:focus {\n border: 2px solid var(--blue);\n padding: 0 var(--size-xsmall) 0 var(--size-xsmall);\n}\n\n.button--secondary:disabled, .button--secondary-destructive:disabled {\n border: 1px solid var(--black3);\n color: var(--black3);\n}\n\n.button--secondary-destructive {\n border-color: var(--red);\n color: var(--red);\n}\n\n.button--secondary-destructive:disabled {\n background-color: var(--white);\n}\n\n.button--secondary-destructive:enabled:active, .button--secondary-destructive:enabled:focus {\n border: 2px solid var(--red);\n padding: 0 var(--size-xsmall) 0 var(--size-xsmall);\n}\n\n.button--secondary-destructive:disabled {\n border: 1px solid var(--red);\n background-color: var(--white);\n color: var(--red);\n opacity: 0.4;\n}\n\n.button--tertiary, .button--tertiary-destructive {\n border: 1px solid transparent;\n color: var(--blue);\n padding: 0;\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-small);\n cursor: pointer;\n}\n\n.button--tertiary:enabled:focus, .button--tertiary-destructive:enabled:focus {\n text-decoration: underline;\n}\n\n.button--tertiary:disabled, .button--tertiary-destructive:disabled {\n cursor: default;\n color: var(--black3);\n}\n\n.button--tertiary-destructive {\n color: var(--red);\n}\n\n.button--tertiary-destructive:enabled:focus {\n text-decoration: underline;\n}\n\n.button--tertiary-destructive:disabled {\n opacity: 0.4;\n}\n\n.checkbox {\n align-items: center;\n cursor: default;\n display: flex;\n height: var(--size-medium);\n position: relative;\n /* unchecked */\n /*\n\t&__box:focus + &__label:before {\n\t\tborder: 1px solid var(--white);\n\t box-shadow: 0 0 0 2px var(--blue);\n\t}*/\n /* checked */\n /*\n\t&__box:checked:focus + &__label:before {\n\t\tborder: 1px solid var(--white);\n\t box-shadow: 0 0 0 2px var(--blue);\n\t}*/\n}\n\n.checkbox__box {\n opacity: 0;\n width: 10px;\n height: 10px;\n margin: 0;\n padding: 0;\n}\n\n.checkbox__label {\n align-items: center;\n color: var(--black8);\n display: flex;\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n line-height: var(--font-line-height);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n margin-left: -16px;\n padding: 0 var(--size-xsmall) 0 var(--size-small);\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.checkbox__label:before {\n border: 1px solid var(--black8);\n border-radius: var(--border-radius-small);\n content: '';\n display: block;\n width: 10px;\n height: 10px;\n margin: -1px 10px 0 -8px;\n box-shadow: none;\n}\n\n.checkbox__box:disabled + .checkbox__label {\n color: var(--black);\n opacity: 0.3;\n}\n\n.checkbox__box:checked + .checkbox__label:before {\n background-color: var(--blue);\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%227%22%20viewBox%3D%220%200%208%207%22%20width%3D%228%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20clip-rule%3D%22evenodd%22%20d%3D%22m1.17647%201.88236%201.88235%201.88236%203.76471-3.76472%201.17647%201.17648-4.94118%204.9412-3.05882-3.05884z%22%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: 1px 2px;\n border: 1px solid var(--blue);\n}\n\n.checkbox__box:checked:disabled + .checkbox__label:before {\n border: 1px solid transparent;\n background-color: var(--black8);\n}\n\n.disclosure {\n position: relative;\n width: 100%;\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.disclosure__item {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n margin: 0;\n padding: 0;\n list-style-type: none;\n border-bottom: 1px solid var(--silver);\n}\n\n.disclosure__item:last-child {\n border-bottom: 1px solid transparent;\n}\n\n.disclosure__label {\n display: flex;\n align-items: center;\n height: var(--size-medium);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n padding: 0 8px 0 24px;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.disclosure__label:before {\n content: '';\n position: absolute;\n top: 8px;\n left: 4px;\n display: block;\n width: 16px;\n height: 16px;\n opacity: 0.3;\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20width%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m11%208-4-3v6z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: center center;\n}\n\n.disclosure__label:hover:before {\n opacity: 0.8;\n}\n\n.disclosure__content {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n padding: var(--size-xxsmall) var(--size-xxsmall) var(--size-xxsmall) var(--size-small);\n display: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n pointer-events: none;\n}\n\n.disclosure--section {\n font-weight: var(--font-weight-bold);\n}\n\n.disclosure--expanded .disclosure__content {\n display: block;\n border-bottom: 1px solid transparent;\n}\n\n.disclosure--expanded .disclosure__label:before {\n opacity: 0.8;\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20width%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m9%2010%203-4h-6z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E\");\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: default;\n width: var(--size-medium);\n height: var(--size-medium);\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-position: -2px -1px;\n}\n\n.icon--spin {\n -webkit-animation: rotating 1.0s linear infinite;\n animation: rotating 1.0s linear infinite;\n}\n\n@-webkit-keyframes rotating {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes rotating {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n.icon--blue {\n -webkit-filter: invert(54%) sepia(16%) saturate(7499%) hue-rotate(179deg) brightness(98%) contrast(101%);\n filter: invert(54%) sepia(16%) saturate(7499%) hue-rotate(179deg) brightness(98%) contrast(101%);\n}\n\n.icon--purple {\n -webkit-filter: invert(40%) sepia(59%) saturate(4001%) hue-rotate(232deg) brightness(103%) contrast(102%);\n filter: invert(40%) sepia(59%) saturate(4001%) hue-rotate(232deg) brightness(103%) contrast(102%);\n}\n\n.icon--purple4 {\n -webkit-filter: invert(72%) sepia(40%) saturate(660%) hue-rotate(202deg) brightness(103%) contrast(103%);\n filter: invert(72%) sepia(40%) saturate(660%) hue-rotate(202deg) brightness(103%) contrast(103%);\n}\n\n.icon--hot-pink {\n -webkit-filter: invert(18%) sepia(90%) saturate(3347%) hue-rotate(293deg) brightness(116%) contrast(132%);\n filter: invert(18%) sepia(90%) saturate(3347%) hue-rotate(293deg) brightness(116%) contrast(132%);\n}\n\n.icon--green {\n -webkit-filter: invert(66%) sepia(39%) saturate(5382%) hue-rotate(114deg) brightness(102%) contrast(79%);\n filter: invert(66%) sepia(39%) saturate(5382%) hue-rotate(114deg) brightness(102%) contrast(79%);\n}\n\n.icon--red {\n -webkit-filter: invert(43%) sepia(56%) saturate(5632%) hue-rotate(349deg) brightness(97%) contrast(95%);\n filter: invert(43%) sepia(56%) saturate(5632%) hue-rotate(349deg) brightness(97%) contrast(95%);\n}\n\n.icon--yellow {\n -webkit-filter: invert(78%) sepia(86%) saturate(1608%) hue-rotate(1deg) brightness(107%) contrast(104%);\n filter: invert(78%) sepia(86%) saturate(1608%) hue-rotate(1deg) brightness(107%) contrast(104%);\n}\n\n.icon--black {\n -webkit-filter: invert(0%) sepia(0%) saturate(7500%) hue-rotate(117deg) brightness(109%) contrast(105%);\n filter: invert(0%) sepia(0%) saturate(7500%) hue-rotate(117deg) brightness(109%) contrast(105%);\n}\n\n.icon--black8 {\n -webkit-filter: invert(0%) sepia(56%) saturate(25%) hue-rotate(137deg) brightness(105%) contrast(60%);\n filter: invert(0%) sepia(56%) saturate(25%) hue-rotate(137deg) brightness(105%) contrast(60%);\n}\n\n.icon--black3 {\n -webkit-filter: invert(100%) sepia(0%) saturate(698%) hue-rotate(219deg) brightness(66%) contrast(127%);\n filter: invert(100%) sepia(0%) saturate(698%) hue-rotate(219deg) brightness(66%) contrast(127%);\n}\n\n.icon--white {\n -webkit-filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(269deg) brightness(103%) contrast(104%);\n filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(269deg) brightness(103%) contrast(104%);\n}\n\n.icon--white8 {\n -webkit-filter: invert(99%) sepia(2%) saturate(5%) hue-rotate(55deg) brightness(104%) contrast(98%);\n filter: invert(99%) sepia(2%) saturate(5%) hue-rotate(55deg) brightness(104%) contrast(98%);\n}\n\n.icon--white4 {\n -webkit-filter: invert(99%) sepia(2%) saturate(897%) hue-rotate(245deg) brightness(117%) contrast(93%);\n filter: invert(99%) sepia(2%) saturate(897%) hue-rotate(245deg) brightness(117%) contrast(93%);\n}\n\n.icon--adjust {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-rule='evenodd' fill='%23000' fill-rule='evenodd'%3E%3Cpath d='M12 16.05V9h1v7.05a2.5 2.5 0 010 4.9V23h-1v-2.05a2.5 2.5 0 010-4.9zm2 2.45a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM19 23h1v-7.05a2.5 2.5 0 000-4.9V9h-1v2.05a2.5 2.5 0 000 4.9zm2-9.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--alert {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath clip-rule='evenodd' d='M21.25 17.393a1.75 1.75 0 001.75 1.75V20H9v-.857a1.75 1.75 0 001.75-1.75V14c0-3.314 2.35-6 5.25-6s5.25 2.686 5.25 6zm-1-3.393v3.393c0 .6.192 1.155.518 1.607h-9.536a2.738 2.738 0 00.518-1.607V14c0-2.891 2.024-5 4.25-5s4.25 2.109 4.25 5z' fill-rule='evenodd'/%3E%3Cpath d='M16 23a2 2 0 01-2-2h-1a3 3 0 106 0h-1a2 2 0 01-2 2z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--angle {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M12 12v8h8v-1h-3a4 4 0 00-4-4v-3zm1 4v3h3a3 3 0 00-3-3z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--arrow-left-right {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 16.5l1.647 1.646-.707.708L10.293 16l2.854-2.854.707.708-1.647 1.646h7.586l-1.646-1.646.707-.708L21.707 16l-2.853 2.854-.707-.708 1.646-1.646z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--up-down {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 10.292l2.854 2.854-.707.707-1.646-1.646v7.585l1.646-1.646.707.707-2.853 2.854-2.854-2.854.707-.707 1.647 1.646v-7.585l-1.647 1.646-.707-.707z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--auto-layout-horizontal {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M10 10h5v12h-5zm1 1h3v10h-3zm6-1h5v12h-5zm1 1h3v10h-3z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--auto-layout-vertical {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M10 10h12v5H10zm1 1h10v3H11zm-1 6h12v5H10zm1 1h10v3H11z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--back {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M13.707 16l4.646-4.646-.707-.707L12.293 16l5.353 5.354.707-.707z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--blend-empty {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16.695 11.72l-.693-.718L16 11l-.001.002-.694.718C13.102 14.012 12 15.294 12 16.852a4.199 4.199 0 001.172 2.936 3.906 3.906 0 005.656 0A4.199 4.199 0 0020 16.852c0-1.558-1.102-2.84-3.305-5.132zm-.695.72c-.977 1.017-1.693 1.79-2.195 2.471-.6.814-.805 1.38-.805 1.94v.003a3.2 3.2 0 00.89 2.239 2.906 2.906 0 004.22 0 3.2 3.2 0 00.89-2.239v-.002c0-.56-.205-1.127-.805-1.94-.502-.681-1.219-1.455-2.195-2.472z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--blend {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16.002 11.002l.693.718C18.898 14.012 20 15.294 20 16.852a4.199 4.199 0 01-1.172 2.936 3.906 3.906 0 01-5.656 0A4.199 4.199 0 0112 16.852c0-1.558 1.102-2.84 3.305-5.132l.694-.719zm-2.197 3.91c.502-.681 1.219-1.455 2.195-2.472.976 1.017 1.693 1.79 2.195 2.471.6.814.805 1.38.805 1.94v.003c0 .049 0 .098-.003.146h-5.994a3.37 3.37 0 01-.003-.146v-.002c0-.56.205-1.127.805-1.94z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--break {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000' opacity='.9'%3E%3Cpath d='M13 9v3h1V9zM22.103 9.896a2.975 2.975 0 00-4.207 0l-2.75 2.75.707.707 2.75-2.75a1.975 1.975 0 012.793 2.793l-2.75 2.75.707.707 2.75-2.75a2.975 2.975 0 000-4.207zM9.896 22.104a2.975 2.975 0 010-4.208l2.75-2.75.707.707-2.75 2.75a1.975 1.975 0 002.793 2.793l2.75-2.75.707.707-2.75 2.75a2.975 2.975 0 01-4.207 0zM23 19h-3v-1h3zM19 20v3h-1v-3zM12 13H9v1h3z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--caret-down {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 18l3-4h-6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--caret-left {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13 16l4-3v6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--caret-right {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 16l-4-3v6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--caret-up {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 14l3 4h-6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--check {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M21.207 13.707L15 19.914l-3.707-3.707 1.414-1.414L15 17.086l4.793-4.793z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--close {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 15.293l4.646-4.646.708.707L16.707 16l4.647 4.647-.707.707L16 16.707l-4.646 4.647-.707-.707L15.293 16l-4.646-4.646.707-.707z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--component {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M12.063 10.938L16 14.874l3.938-3.938L16 7zm6.46 0L16 13.46l-2.523-2.524L16 8.415zm-6.46 10.124L16 25l3.938-3.938L16 17.125zm6.46 0L16 23.587l-2.523-2.523L16 18.538zM7 16l3.937-3.938L14.875 16l-3.938 3.938zm3.937 2.523L13.461 16l-2.524-2.523L8.415 16zM17.125 16l3.938 3.938L25 16l-3.938-3.938zm6.46 0l-2.523 2.523L18.54 16l2.523-2.523z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--corner-radius {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M21 13h-4a4 4 0 00-4 4v4h-1v-4a5 5 0 015-5h4z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--corners {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M11 11h3v1h-2v2h-1zm7 0h3v3h-1v-2h-2zm-6 9v-2h-1v3h3v-1zm9-2v3h-3v-1h2v-2z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--distribute-horizontal-spacing {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M11 22.5v-13h-1v13zM22 9.5v13h-1v-13zM17 12.5v7h-2v-7z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--distribute-vertical-spacing {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9.5 10h13v1h-13zM12.5 15h7v2h-7zM22.5 21h-13v1h13z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--draft {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M10 8.5h7.707L22 12.793V23.5H10zm1 1v13h10v-9h-4v-4zm7 .707l2.293 2.293H18z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--effects {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M16.5 8.5h-1v3h1zM11.05 10.343l-.707.707 2.121 2.122.708-.708zM21.657 11.05l-.707-.707-2.121 2.121.707.708zM8.5 15.5v1h3v-1zM20.5 15.5v1h3v-1zM13.172 19.535l-.708-.707-2.12 2.122.706.707zM19.535 18.828l-.707.707 2.122 2.122.707-.707zM16.5 20.5h-1v3h1z'/%3E%3Cpath clip-rule='evenodd' d='M18.498 15.998a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm-1 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--ellipses {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M11.5 16a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm6 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm4.5 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--eyedropper {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22.447 9.6c-.8-.8-2-.8-2.8 0l-2.8 2.8-.8-.7c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l.7.7-5.8 5.8c-.4.4-1 1.9 0 2.9s2.5.4 2.9 0l5.8-5.8.7.7c.4.4 1 .4 1.4 0s.4-1 0-1.4l-.7-.7 2.8-2.8c.8-.9.8-2.1 0-2.9zm-10.9 11.9h-1v-1l5.8-5.8 1 1c-.1 0-5.8 5.8-5.8 5.8z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--forward {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M17.94 16l-4.647-4.646.707-.707L19.354 16 14 21.354l-.707-.707z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--frame {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M11 24v-3H8v-1h3v-8H8v-1h3V8h1v3h8V8h1v3h3v1h-3v8h3v1h-3v3h-1v-3h-8v3zm9-4v-8h-8v8z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--group {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M17.4 9h-2.8v1h2.8zM20.9 22H22v-1.1h1V23h-2.1zM10 14.6v2.8H9v-2.8zM22 11.1V10h-1.1V9H23v2.1zM22 14.6v2.8h1v-2.8zM10 11.1V10h1.1V9H9v2.1zM9 20.9h1V22h1.1v1H9zM17.4 22h-2.8v1h2.8z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--hidden {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M21.509 15.801A8.033 8.033 0 0022.928 14h-1.184A6.992 6.992 0 0116 17a6.992 6.992 0 01-5.745-3H9.07a8.033 8.033 0 001.421 1.801l-1.595 1.595.708.707 1.657-1.657c.71.523 1.511.932 2.374 1.199l-.617 2.221.964.268.626-2.255a8.051 8.051 0 002.784 0l.626 2.255.964-.268-.617-2.221a7.971 7.971 0 002.374-1.2l1.658 1.658.707-.707z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--horizontal-padding {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9v14h1V9zm13 0v14h1V9z'/%3E%3Cpath clip-rule='evenodd' d='M13 19v-6h6v6zm-1-7h8v8h-8z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--hyperlink {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.824 14.492l-1.657 1.657.828.829 1.658-1.657a3.517 3.517 0 00-4.973-4.973l-1.657 1.658.829.828 1.657-1.657a2.345 2.345 0 013.315 3.315zm-4.974 4.972l.829.829-1.658 1.657a3.516 3.516 0 11-4.972-4.972l1.659-1.658.828.829-1.656 1.657a2.343 2.343 0 103.315 3.315l1.657-1.657zm2.072-6.216l-4.972 4.973.828.829 4.973-4.973z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--image {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M22 10H10v7.793l3.083-3.083 7.29 7.29H22zM10 22v-2.793l3.083-3.083L18.96 22zm0-13a1 1 0 00-1 1v12a1 1 0 001 1h12a1 1 0 001-1V10a1 1 0 00-1-1zm9.667 4.667a1.333 1.333 0 11-2.667 0 1.333 1.333 0 012.667 0zm1 0a2.333 2.333 0 11-4.667 0 2.333 2.333 0 014.667 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--instance {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16 7l9 9-9 9-9-9zm-7.586 9L16 23.586 23.586 16 16 8.414z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--key {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M15.14 20.14a3.014 3.014 0 00.331-3.868l2.047-2.047 1.767 1.767a.5.5 0 10.707-.707l-1.767-1.767 1.293-1.293 1.784 1.784a.5.5 0 10.707-.707l-1.784-1.784.762-.761a.5.5 0 00-.707-.708l-5.513 5.513a3.014 3.014 0 10.373 4.578zm-.712-.712a2.006 2.006 0 10-2.837-2.837 2.006 2.006 0 002.837 2.837z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--layout-align-bottom {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M14.5 10v10h-2V10zm8 12v1h-13v-1zm-3-2v-6h-2v6z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--align-horizontal-centers {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.5 9.5h-1v3h-5v2h5v3h-3v2h3v3h1v-3h3v-2h-3v-3h5v-2h-5z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--align-left {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M10 22.5H9v-13h1zM22 14.5H12v-2h10zM12 19.5h6v-2h-6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--align-right {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M22 22.5h1v-13h-1zM10 14.5h10v-2H10zM20 19.5h-6v-2h6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--align-top {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M14.5 22V12h-2v10zM22.5 10V9h-13v1zM19.5 12v6h-2v-6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--align-vertical-centers {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.5 15.5v-5h2v5h3v-3h2v3h3v1h-3v3h-2v-3h-3v5h-2v-5h-3v-1z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--layout-grid-columns {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9h3v14H9zM14.5 9h3v14h-3zM20 9h3v14h-3z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--layout-grid-rows {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9h14v3H9zM9 14.5h14v3H9zM9 20h14v3H9z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--layout-grid-uniform {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9h3v3H9zM20 9h3v3h-3zM14.5 9h3v3h-3zM9 14.5h3v3H9zM20 14.5h3v3h-3zM14.5 14.5h3v3h-3zM9 20h3v3H9zM20 20h3v3h-3zM14.5 20h3v3h-3z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--library {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M15.373 22h1.258c.28-.32.616-.597.995-.819 1.478-.862 4.005-.909 5.386.109H24.5v-9.2s-.797-2.25-4.42-2.25c-1.875 0-2.902.602-3.456 1.184a2.568 2.568 0 00-.6.976h-.048a2.569 2.569 0 00-.6-.976c-.554-.582-1.581-1.184-3.456-1.184-3.623 0-4.42 2.25-4.42 2.25v9.19h1.488c1.382-1.019 3.91-.97 5.388-.105.38.223.717.503.997.825zm1.127-9.711v8.457c.195-.157.403-.3.622-.428.927-.541 2.115-.796 3.241-.787 1.006.008 2.081.227 2.952.759h.185v-7.973a2.414 2.414 0 00-.505-.595c-.46-.397-1.33-.882-2.915-.882-1.586 0-2.34.483-2.695.835a1.749 1.749 0 00-.353.49 1.076 1.076 0 00-.052.131l-.005.017.001-.006.002-.008v-.005l.001-.002v-.002l-.005-.001zm-1 0h-.474l-.006.001v.002l.001.002.001.005.002.008.001.006-.005-.017a1.076 1.076 0 00-.053-.131 1.749 1.749 0 00-.353-.49c-.354-.351-1.108-.835-2.694-.835-1.585 0-2.455.485-2.916.882a2.411 2.411 0 00-.504.595v7.963h.185c.872-.532 1.948-.752 2.954-.759 1.128-.008 2.316.249 3.243.792.217.127.424.27.618.426z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--link-broken {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M18 14v-2a2 2 0 10-4 0v2h-1v-2a3 3 0 116 0v2zM19 18h-1v2a2 2 0 11-4 0v-2h-1v2a3 3 0 106 0z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--link-connected {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M16 10a2 2 0 012 2v2h1v-2a3 3 0 10-6 0v2h1v-2a2 2 0 012-2zM18 18h1v2a3 3 0 11-6 0v-2h1v2a2 2 0 104 0z'/%3E%3Cpath d='M15.5 13v6h1v-6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--list-detailed {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M12 10h-2v1h2zM12 20h-2v1h2zM10 15h2v1h-2zM22 10h-8v1h8zM14 20h8v1h-8zM22 15h-8v1h8z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--list-tile {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M14 11h-3v3h3zm-4-1v5h5v-5zm11 1h-3v3h3zm-4-1v5h5v-5zm-3 8h-3v3h3zm-4-1v5h5v-5zm11 1h-3v3h3zm-4-1v5h5v-5z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--list {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000' fill-opacity='.8'%3E%3Cpath d='M23 10H9v1h14zM9 15.5h14v1H9zM9 21h14v1H9z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--lock-off {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 15h.5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-6a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5H17v-2.5a2.5 2.5 0 015 0V14h-1v-1.5a1.5 1.5 0 00-3 0z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--lock-on {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M13.5 15v-1.5a2.5 2.5 0 015 0V15h.5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5h-6a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5zm4-1.5V15h-3v-1.5a1.5 1.5 0 013 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--minus {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 16.5h-11v-1h11z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--play {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M13 10.098L22.443 16 13 21.902zm1 1.804v8.196L20.557 16z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--plus {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.5 15.5v-5h1v5h5v1h-5v5h-1v-5h-5v-1z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--random {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath clip-rule='evenodd' d='M15.118 11a2.5 2.5 0 00-1.335.386L11.228 13H18.5v1h-8.497a.512.512 0 00-.003.051V20.5c0 .278.223.5.497.5h7.628a.498.498 0 00.328-.123l3.206-2.805a1 1 0 00.341-.753V11.5a.5.5 0 00-.5-.5zm-1.869-.46a3.5 3.5 0 011.87-.54H21.5a1.5 1.5 0 011.5 1.5v5.82a2 2 0 01-.683 1.504l-3.205 2.805c-.274.24-.624.371-.987.371h-7.627C9.668 22 9 21.327 9 20.5v-6.449a1.5 1.5 0 01.699-1.268z' fill-rule='evenodd'/%3E%3Cpath d='M13 16a1 1 0 11-2 0 1 1 0 012 0zM17 16a1 1 0 11-2 0 1 1 0 012 0zM17 19a1 1 0 11-2 0 1 1 0 012 0zM13 19a1 1 0 11-2 0 1 1 0 012 0z'/%3E%3Cg clip-rule='evenodd' fill-rule='evenodd'%3E%3Cpath d='M22.407 10.71a.5.5 0 01-.116.697l-3.5 2.5a.5.5 0 01-.582-.814l3.5-2.5a.5.5 0 01.698.116z'/%3E%3Cpath d='M18 21v-8h1v8z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--recent {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M15 12v5h5v-1h-4v-4z'/%3E%3Cpath clip-rule='evenodd' d='M24 16a8 8 0 11-16 0 8 8 0 0116 0zm-1 0a7 7 0 11-14 0 7 7 0 0114 0z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--resize-to-fit {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M8.646 9.354L12.293 13H10v1h4v-4h-1v2.293L9.354 8.646zM19.707 13l3.647-3.646-.707-.708L19 12.293V10h-1v4h4v-1zM19.707 19l3.647 3.646-.707.708L19 19.707V22h-1v-4h4v1zM12.293 19l-3.647 3.646.708.708L13 19.707V22h1v-4h-4v1z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--resolve-filled {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16 24a8 8 0 100-16 8 8 0 000 16zm3.911-9.635l-.822-.73-3.613 4.064-2.587-2.588-.778.778 3.413 3.412z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--resolve {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M19.911 14.365l-.822-.73-3.613 4.063-2.587-2.587-.778.778 3.413 3.412z'/%3E%3Cpath clip-rule='evenodd' d='M24 16a8 8 0 11-16 0 8 8 0 0116 0zm-1 0a7 7 0 11-14 0 7 7 0 0114 0z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--reverse {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M15.854 8.646L18.207 11l-2.353 2.354-.708-.708 1.147-1.146H14c-.503 0-1.27.155-1.895.606-.6.432-1.105 1.157-1.105 2.394v7.25h-1V14.5c0-1.563.662-2.588 1.52-3.206.833-.6 1.817-.794 2.48-.794h2.293l-1.147-1.146zM22 10v7.25c0 1.563-.662 2.588-1.52 3.206-.833.6-1.817.794-2.48.794h-2.293l1.147 1.146-.708.708-2.353-2.354 2.353-2.354.708.708-1.147 1.146H18c.503 0 1.27-.155 1.895-.606.6-.432 1.105-1.157 1.105-2.394V10z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--search-large {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M18.874 19.581a6 6 0 11.707-.707l4.273 4.272-.708.708zM20 15a5 5 0 11-10 0 5 5 0 0110 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--search {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M18.397 18.605a4.552 4.552 0 11.707-.707l3.25 3.249-.708.707zm.706-3.553a3.552 3.552 0 11-7.103 0 3.552 3.552 0 017.103 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--settings {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-rule='evenodd' fill='%23000' fill-rule='evenodd'%3E%3Cpath d='M16.954 9.928l-.139-.331C16.635 9.165 16.301 9 16 9s-.635.165-.815.597l-.139.331c-.56 1.343-1.992 2.13-3.425 1.72l-.5-.144c-.309-.088-.606.025-.815.327a1.05 1.05 0 00-.049 1.123c.743 1.323.402 3.068-.86 3.95-.318.222-.456.614-.375 1.024.081.409.342.668.673.723l.195.033c1.525.253 2.51 1.687 2.423 3.18-.03.503.22.861.52 1.028.288.161.623.155.921-.108l.373-.33a2.8 2.8 0 013.746 0l.373.33c.298.264.633.27.922.108.3-.167.549-.525.52-1.028-.088-1.493.897-2.927 2.423-3.18l.194-.033c.33-.055.592-.314.673-.723.081-.41-.057-.802-.375-1.024-1.262-.882-1.603-2.627-.86-3.95a1.05 1.05 0 00-.05-1.123c-.208-.302-.505-.415-.815-.327l-.499.143c-1.433.41-2.865-.376-3.425-1.719zm.784-.717c-.674-1.615-2.802-1.615-3.476 0l-.138.332c-.383.917-1.326 1.401-2.228 1.143l-.499-.143c-1.575-.45-2.855 1.398-2.012 2.9.505.9.257 2.07-.56 2.64-1.392.973-.933 3.282.706 3.555l.195.032c.96.16 1.65 1.09 1.588 2.135-.104 1.788 1.82 2.864 3.103 1.727l.373-.33a1.8 1.8 0 012.42 0l.373.33c1.284 1.137 3.207.061 3.103-1.727-.061-1.046.628-1.975 1.589-2.135l.194-.032c1.639-.273 2.098-2.582.707-3.554-.818-.572-1.066-1.742-.561-2.64.843-1.503-.437-3.352-2.012-2.901l-.5.143c-.9.258-1.844-.226-2.226-1.143z'/%3E%3Cpath d='M16 18.5a2 2 0 100-4 2 2 0 000 4zm0 1a3 3 0 100-6 3 3 0 000 6z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--share {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M20 9.5a3.5 3.5 0 00-1.383 6.716A4.513 4.513 0 0016 18.436a4.513 4.513 0 00-2.618-2.22 3.501 3.501 0 10-2.764 0A4.502 4.502 0 007.5 20.5V22h17v-1.5c0-2.003-1.309-3.7-3.118-4.284A3.501 3.501 0 0020 9.5zM17.5 13a2.5 2.5 0 115 0 2.5 2.5 0 01-5 0zm-1 8v-.5a3.5 3.5 0 117 0v.5zm-1-.5v.5h-7v-.5a3.5 3.5 0 117 0zm-6-7.5a2.5 2.5 0 115 0 2.5 2.5 0 01-5 0z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--smiley {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M16 20a4.002 4.002 0 01-3.874-3h1.045a3.001 3.001 0 005.658 0h1.045A4.002 4.002 0 0116 20zM19.5 14.125a.875.875 0 11-1.75 0 .875.875 0 011.75 0zM13.125 15a.875.875 0 100-1.75.875.875 0 000 1.75z'/%3E%3Cpath clip-rule='evenodd' d='M24 16a8 8 0 11-16 0 8 8 0 0116 0zm-1 0a7 7 0 11-14 0 7 7 0 0114 0z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--sort-alpha-asc {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-rule='evenodd' fill='%23000' fill-rule='evenodd'%3E%3Cpath d='M10.897 9L9 14h1.07l.379-1h2.133l.338 1h1.056l-1.69-5zm1.347 3l-.667-1.973L10.828 12zM12.553 19H9.5v-1H14v.979L10.932 22H14v1H9.5v-.993zM20.5 8.293l3.354 3.353-.708.708L21 10.207V23h-1V10.207l-2.146 2.147-.708-.708z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--sort-alpha-dsc {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-rule='evenodd' fill='%23000' fill-rule='evenodd'%3E%3Cpath d='M10.897 9L9 14h1.07l.379-1h2.133l.338 1h1.056l-1.69-5zm1.347 3l-.667-1.973L10.828 12zM12.553 19H9.5v-1H14v.979L10.932 22H14v1H9.5v-.993zM20 21.793V9h1v12.793l2.146-2.147.708.708-3.354 3.353-3.354-3.353.708-.708z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--sort-top-bottom {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M20.45 12H10v-1h10.45c.97 0 1.372 1.244.584 1.812L11.05 20h9.243l-1.647-1.646.708-.708 2.853 2.854-2.853 2.854-.708-.708L20.293 21H11.05c-.97 0-1.372-1.244-.584-1.812z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--spacing {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22 11h-2v10h2v1h-3V10h3zm-10-1v12H9v-1h2V11H9v-1zm4 3h-1v6h1z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--spinner {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M15.165 8.53a.5.5 0 01-.404.58A7 7 0 1023 16a.5.5 0 011 0 8 8 0 11-9.416-7.874.5.5 0 01.58.404z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--star-off {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M18 14.004L16 8l-2 6.004H8L12.96 18l-1.904 6L16 20l4.944 4-1.904-6L24 14zm3.165.998l-3.886.002L16 11.164l-1.28 3.84h-3.885l3.285 2.646-1.103 3.477L16 18.714l2.983 2.413-1.103-3.476z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--star-on {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8l2 6.004L24 14l-4.96 4 1.904 6L16 20l-4.944 4 1.904-6L8 14.004h6z' fill='%23000'/%3E%3C/svg%3E\");\n}\n\n.icon--stroke-weight {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M10 10h12v1H10zm0 4h12v2H10zm12 5H10v3h12z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--styles {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M11.5 13a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zM17.5 13a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zM19 20.5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM11.5 19a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--swap {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M23 13.188l-1.175 1.468a5.5 5.5 0 00-10.003-2.219l.83.557a4.5 4.5 0 018.216 2.057l-2.2-1.467-.555.832 3.381 2.254 2.287-2.858zM9 17.188l.78.624 1.176-1.468.026.156a5.5 5.5 0 009.976 2.065v-.002l-.83-.557-.001.001a4.5 4.5 0 01-8.214-2.058l2.2 1.467.555-.832-3.382-2.254z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--theme {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath clip-rule='evenodd' d='M13 10h-3v12h3zm-3-1a1 1 0 00-1 1v12a1 1 0 001 1h3a1 1 0 001-1V10a1 1 0 00-1-1z' fill-rule='evenodd'/%3E%3Cpath d='M10.75 20.5a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM22 18a1 1 0 011 1v3a1 1 0 01-1 1h-7v-1h7v-3h-7v-1zM18.385 17l2.757-2.757a1 1 0 000-1.415l-2.121-2.12a1 1 0 00-1.414 0L15 13.313v1.414l3.314-3.314 2.121 2.122L16.971 17z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--tidy-up-grid {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M10 10h2v2h-2zM20 10h2v2h-2zM12 15h-2v2h2zM20 15h2v2h-2zM12 20h-2v2h2zM20 20h2v2h-2zM17 10h-2v2h2zM15 15h2v2h-2zM17 20h-2v2h2z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--tidy-up-list-horizontal {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M10 22.5v-13h2v13zM15 22.5v-13h2v13zM20 9.5v13h2v-13z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--tidy-up-list-vertical {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9.5 10h13v2h-13zM9.5 15h13v2h-13zM22.5 20h-13v2h13z'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--timer {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M19 8h-6V7h6zM16.5 17v-5h-1v5a.5.5 0 001 0z'/%3E%3Cpath clip-rule='evenodd' d='M22.715 12.65l1.527-1.529L22.122 9l-1.483 1.482a8 8 0 102.075 2.167zM23 17a7 7 0 11-2.384-5.263l.647.647A6.974 6.974 0 0123 17zm-1.008-5.3l.13.128.706-.707-.707-.707-.701.701c.2.185.391.38.572.585z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--trash {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M14 18.5v-4h1v4zM17 18.5v-4h1v4z'/%3E%3Cpath clip-rule='evenodd' d='M19 10.5a2 2 0 00-2-2h-2a2 2 0 00-2 2h-3v1h1v10a2 2 0 002 2h6a2 2 0 002-2v-10h1v-1zm-4-1a1 1 0 00-1 1h4a1 1 0 00-1-1zm5 2h-8v10a1 1 0 001 1h6a1 1 0 001-1z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--vertical-padding {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M9 9h14v1H9zm0 13h14v1H9z'/%3E%3Cpath clip-rule='evenodd' d='M19 13h-6v6h6zm-7-1v8h8v-8z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--visible {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000'%3E%3Cpath d='M16 18a2 2 0 100-4 2 2 0 000 4z'/%3E%3Cpath clip-rule='evenodd' d='M16 12a7.499 7.499 0 016.635 4A7.499 7.499 0 0116 20a7.499 7.499 0 01-6.635-4A7.499 7.499 0 0116 12zm0 7a6.495 6.495 0 01-5.478-3A6.495 6.495 0 0116 13c2.3 0 4.322 1.194 5.478 3A6.495 6.495 0 0116 19z' fill-rule='evenodd'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.icon--warning-large {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16 6l10 18H6zm-1 11v-4h2v4zm0 2v2h2v-2z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon--warning {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg fill='none' height='32' width='32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='M16 9l8 14H8zm-1 8.5V14h2v3.5zm0 1.5v2h2v-2z' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E\");\n}\n\n.icon-button {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n width: var(--size-medium);\n height: var(--size-medium);\n border-radius: var(--border-radius-small);\n border: 2px solid transparent;\n}\n\n.icon-button * {\n -webkit-filter: invert(0%) sepia(0%) saturate(7500%) hue-rotate(117deg) brightness(109%) contrast(105%);\n filter: invert(0%) sepia(0%) saturate(7500%) hue-rotate(117deg) brightness(109%) contrast(105%);\n}\n\n.icon-button:hover {\n background: var(--hover-fill);\n}\n\n.icon-button:active, .icon-button:focus {\n border: 2px solid var(--blue);\n outline: none;\n}\n\n.icon-button--selected {\n background-color: var(--blue);\n}\n\n.icon-button--selected:hover {\n background-color: var(--blue);\n}\n\n.icon-button--selected:active, .icon-button--selected:focus {\n border: 2px solid var(--black3);\n}\n\n.icon-button--selected * {\n -webkit-filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(269deg) brightness(103%) contrast(104%);\n filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(269deg) brightness(103%) contrast(104%);\n}\n\n.input {\n position: relative;\n}\n\n.input__field {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n line-height: var(--line-height);\n position: relative;\n display: flex;\n overflow: visible;\n align-items: center;\n width: 100%;\n height: 30px;\n margin: 1px 0 1px 0;\n padding: var(--size-xxsmall) var(--size-xxxsmall) var(--size-xxsmall) var(--size-xxsmall);\n color: var(--black8);\n border: 1px solid transparent;\n border-radius: var(--border-radius-small);\n outline: none;\n background-color: var(--white);\n}\n\n.input__field:hover, .input__field:placeholder-shown:hover {\n color: var(--black8);\n border: 1px solid var(--black1);\n background-image: none;\n}\n\n.input__field::-moz-selection {\n color: var(--black);\n background-color: var(--blue3);\n}\n\n.input__field::selection {\n color: var(--black);\n background-color: var(--blue3);\n}\n\n.input__field::-webkit-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field::-moz-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field:-ms-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field::-ms-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field::placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.input__field:placeholder-shown {\n border: 1px solid var(--black1);\n}\n\n.input__field:focus:placeholder-shown {\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.input__field:disabled:hover {\n border: 1px solid transparent;\n}\n\n.input__field:active, .input__field:focus {\n color: var(--black);\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.input__field:disabled {\n position: relative;\n color: var(--black3);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.input__field:disabled:active {\n outline: none;\n}\n\n.input--with-icon .input__field {\n padding-left: 32px;\n}\n\n.input .icon {\n position: absolute;\n top: 0px;\n left: 0;\n width: var(--size-medium);\n height: var(--size-medium);\n z-index: 1;\n opacity: 0.3;\n}\n\n.label {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black3);\n height: var(--size-medium);\n width: 100%;\n display: flex;\n align-items: center;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 0 var(--size-xxxsmall) 0 var(--size-xxsmall);\n}\n\n.onboarding-tip {\n display: flex;\n align-items: top;\n padding: 0 var(--size-xsmall) 0 0;\n}\n\n.onboarding-tip .icon {\n margin-right: var(--size-xxsmall);\n}\n\n.onboarding-tip__msg {\n padding: var(--size-xxsmall) 0 var(--size-xxsmall) 0;\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n margin: 0;\n}\n\n.radio {\n align-items: center;\n cursor: default;\n display: flex;\n height: var(--size-medium);\n position: relative;\n}\n\n.radio__button {\n opacity: 0;\n width: 10px;\n height: 10px;\n margin: 0;\n padding: 0;\n}\n\n.radio__button:checked + .radio__label:before {\n background-image: url('data:image/svg+xml,%3Csvg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Crect width=\"6\" height=\"6\" rx=\"3\" fill=\"black\" fill-opacity=\"0.8\"/%3E%3C/svg%3E%0A');\n background-repeat: no-repeat;\n background-position: 2px 2px;\n}\n\n.radio__button:disabled + .radio__label {\n opacity: 0.3;\n}\n\n.radio__button:checked:disabled + .radio__label:before {\n border: 1px solid var(--black);\n}\n\n.radio__label {\n align-items: center;\n color: var(--black8);\n display: flex;\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n line-height: var(--font-line-height);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n margin-left: -16px;\n padding: 0 var(--size-xsmall) 0 var(--size-small);\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.radio__label:before {\n border: 1px solid var(--black8);\n border-radius: var(--border-radius-small);\n content: '';\n display: block;\n width: 10px;\n height: 10px;\n margin: 2px 10px 0 -8px;\n border-radius: 50%;\n}\n\n.section-title {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-bold);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n height: var(--size-medium);\n width: 100%;\n display: flex;\n align-items: center;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 0 calc(var(--size-xxsmall) / 2) 0 var(--size-xxsmall);\n}\n\nselect.select-menu {\n display: none;\n}\n\n.select-menu {\n position: relative;\n}\n\n.select-menu__button {\n display: flex;\n align-items: center;\n border: 1px solid transparent;\n height: 30px;\n width: 100%;\n margin: 1px 0 1px 0;\n padding: 0px var(--size-xxsmall) 0px var(--size-xxsmall);\n overflow-y: hidden;\n border-radius: var(--border-radius-small);\n background-color: var(--white);\n}\n\n.select-menu__button:hover {\n border-color: var(--black1);\n}\n\n.select-menu__button:focus {\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.select-menu__button:disabled:hover {\n justify-content: flex-start;\n border-color: transparent;\n}\n\n.select-menu__button * {\n pointer-events: none;\n}\n\n.select-menu__button:hover .select-menu__label--placeholder {\n color: var(--black8);\n}\n\n.select-menu__button:focus .select-menu__label--placeholder {\n color: var(--black8);\n}\n\n.select-menu__button:disabled:hover .select-menu__label--placeholder {\n color: var(--black3);\n}\n\n.select-menu__button:hover .select-menu__caret, .select-menu__button:focus .select-menu__caret {\n opacity: 1.0;\n margin-left: auto;\n}\n\n.select-menu__button:disabled:hover .select-menu__caret {\n opacity: 0.3;\n margin-left: -12px;\n}\n\n.select-menu__button:disabled .select-menu__label {\n color: var(--black3);\n}\n\n.select-menu__label {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n line-height: var(--line-height);\n color: var(--black8);\n margin-right: 6px;\n margin-top: -2px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n\n.select-menu__label--placeholder {\n color: var(--black3);\n}\n\n.select-menu__caret {\n width: 30px;\n height: 30px;\n display: block;\n margin-top: -1px;\n margin-left: -12px;\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20width%3D%2230%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20clip-rule%3D%22evenodd%22%20d%3D%22m15%2016.7071-3-3%20.7071-.7071%202.6465%202.6464%202.6464-2.6464.7071.7071-3%203-.3535.3536z%22%20fill%3D%22%23000%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: center center;\n opacity: 0.3;\n}\n\n.select-menu .icon {\n margin-left: -8px;\n margin-top: -2px;\n margin-right: 0;\n opacity: 0.3;\n}\n\n.select-menu__menu {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n background-color: var(--hud);\n box-shadow: var(--shadow-hud);\n padding: var(--size-xxsmall) 0 var(--size-xxsmall) 0;\n border-radius: var(--border-radius-small);\n margin: 0;\n z-index: 1000;\n overflow-x: overlay;\n overflow-y: auto;\n}\n\n.select-menu__menu--active {\n display: block;\n}\n\n.select-menu__menu::-webkit-scrollbar {\n width: 12px;\n background-color: transparent;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);\n background-repeat: repeat;\n background-size: 100% auto;\n}\n\n.select-menu__menu::-webkit-scrollbar-track {\n border: solid 3px transparent;\n box-shadow: inset 0 0 10px 10px transparent;\n}\n\n.select-menu__menu::-webkit-scrollbar-thumb {\n border: solid 3px transparent;\n border-radius: 6px;\n box-shadow: inset 0 0 10px 10px rgba(255, 255, 255, 0.4);\n}\n\n.select-menu__item {\n align-items: center;\n color: var(--white);\n cursor: default;\n display: flex;\n font-family: var(--font-stack);\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n line-height: var(--font-line-height);\n height: var(--size-small);\n padding: 0px var(--size-xsmall) 0px var(--size-xxsmall);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n outline: none;\n}\n\n.select-menu__item--selected .select-menu__item-icon {\n opacity: 1.0;\n}\n\n.select-menu__item-label {\n overflow-x: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n\n.select-menu__item-icon {\n width: var(--size-xsmall);\n height: var(--size-xsmall);\n margin-right: var(--size-xxsmall);\n opacity: 0;\n pointer-events: none;\n background-image: url(\"data:image/svg+xml;utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20width%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20clip-rule%3D%22evenodd%22%20d%3D%22m13.2069%205.20724-5.50002%205.49996-.70711.7072-.70711-.7072-3-2.99996%201.41422-1.41421%202.29289%202.29289%204.79293-4.79289z%22%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: center center;\n}\n\n.select-menu--highlight, .select-menu__item:hover, .select-menu__item:focus {\n background-color: var(--blue);\n}\n\n.select-menu__divider-label {\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-small);\n line-height: var(--line-height);\n display: flex;\n align-items: center;\n height: var(--size-small);\n padding: 0 var(--size-xxsmall) 0 var(--size-medium);\n color: var(--white4);\n margin-top: 0;\n}\n\n.select-menu__divider {\n background-color: var(--white2);\n display: block;\n height: 1px;\n margin: 8px 0 7px 0;\n}\n\n.switch {\n align-items: center;\n cursor: default;\n display: flex;\n height: var(--size-medium);\n position: relative;\n /*\n &__toggle:focus + &__label:before {\n box-shadow: 0 0 0 2px var(--blue);\n }\n */\n}\n\n.switch__toggle {\n opacity: 0;\n}\n\n.switch__toggle:checked + .switch__label:before {\n color: var(--black8);\n background-color: var(--black8-opaque);\n}\n\n.switch__toggle:checked + .switch__label:after {\n transform: translateX(12px);\n}\n\n.switch__toggle:checked:disabled + .switch__label:before {\n border: 1px solid var(--black);\n background-color: var(--black);\n}\n\n.switch__toggle:disabled + .switch__label {\n color: var(--black);\n opacity: 0.3;\n}\n\n.switch__label {\n align-items: center;\n color: var(--black8);\n display: flex;\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n height: 100%;\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--font-line-height);\n margin-left: -16px;\n padding: 0 var(--size-xsmall) 0 calc(var(--size-xlarge) - 2px);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.switch__label:before {\n background-color: var(--white);\n border: 1px solid var(--black8-opaque);\n border-radius: 6px;\n content: '';\n display: block;\n height: 10px;\n left: 8px;\n position: absolute;\n top: 10px;\n transition: background-color 0 0.2s;\n width: 22px;\n}\n\n.switch__label:after {\n background-color: var(--white);\n border: 1px solid var(--black8-opaque);\n border-radius: 50%;\n content: '';\n display: block;\n height: 10px;\n left: 8px;\n position: absolute;\n top: 10px;\n transition: transform 0.2s;\n width: 10px;\n}\n\n.textarea {\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n line-height: var(--line-height);\n position: relative;\n display: flex;\n overflow: visible;\n align-items: center;\n width: 100%;\n min-height: 62px;\n margin: 1px 0 1px 0;\n padding: var(--size-xxsmall) var(--size-xxxsmall) var(--size-xxsmall) var(--size-xxsmall);\n color: var(--black8);\n border: 1px solid var(--black1);\n border-radius: var(--border-radius-small);\n outline: none;\n background-color: var(--white);\n resize: none;\n overflow-y: auto;\n}\n\n.textarea:hover, .textarea:placeholder-shown:hover {\n color: var(--black8);\n border: 1px solid var(--black1);\n background-image: none;\n}\n\n.textarea::-moz-selection {\n color: var(--black);\n background-color: var(--blue3);\n}\n\n.textarea::selection {\n color: var(--black);\n background-color: var(--blue3);\n}\n\n.textarea::-webkit-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea::-moz-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea:-ms-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea::-ms-input-placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea::placeholder {\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea:focus:placeholder-shown {\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.textarea:active, .textarea:focus {\n color: var(--black);\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}\n\n.textarea:disabled, .textarea:disabled:hover {\n position: relative;\n color: var(--black3);\n border: 1px solid transparent;\n}\n\n.textarea:disabled:active {\n outline: none;\n}\n\n.type {\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n line-height: var(--font-line-height);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n /* sizes */\n /* weights */\n /* letter spacing adjustments based pos/neg application */\n}\n\n.type--small {\n font-size: var(--font-size-small);\n letter-spacing: var(--font-letter-spacing-pos-small);\n}\n\n.type--large {\n font-size: var(--font-size-large);\n line-height: var(--font-line-height-large);\n letter-spacing: var(--font-letter-spacing-pos-large);\n}\n\n.type--xlarge {\n font-size: var(--font-size-xlarge);\n line-height: var(--font-line-height-large);\n letter-spacing: var(--font-letter-spacing-pos-xlarge);\n}\n\n.type--medium {\n font-weight: var(--font-weight-medium);\n}\n\n.type--bold {\n font-weight: var(--font-weight-bold);\n}\n\n.type--inverse {\n letter-spacing: var(--font-letter-spacing-neg-xsmall);\n}\n\n.type--inverse + .type--small {\n letter-spacing: var(--font-letter-spacing-neg-small);\n}\n\n.type--inverse + .type--large {\n letter-spacing: var(--font-letter-spacing-neg-large);\n}\n\n.type--inverse + .type--xlarge {\n letter-spacing: var(--font-letter-spacing-neg-xlarge);\n}\n\n.type--inline {\n display: inline-block;\n}\n"],"sourceRoot":""}]); -// Exports -/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./src/ui/css/ui.css": -/*!*****************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./src/ui/css/ui.css ***! - \*****************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ "./node_modules/css-loader/dist/runtime/cssWithMappingToString.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a); -// Module -___CSS_LOADER_EXPORT___.push([module.i, ".plugin-ui-content {\n padding: 2px var(--size-xxsmall) 0;\n margin-bottom: 0;\n}\nh3 {\n padding: 0 var(--size-xxsmall);\n}\n.label {\n color: var(--dark-grey);\n}\n.message-box {\n padding: 0 var(--size-xxxsmall) var(--size-xxsmall) var(--size-xxsmall);\n}\n.message-box .message {\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--font-line-height);\n}\n.notification:not(.hidden) {\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--font-line-height);\n margin-top: var(--size-xxsmall);\n padding: var(--size-xxsmall);\n border-radius: 3px;\n display: flex;\n align-items: center;\n}\n.notification--info {\n position: relative;\n background: var(--blue-10);\n color: var(--blue-black);\n}\n.notification--info a {\n color: var(--blue);\n}\n.notification--info a:hover {\n text-decoration: none;\n}\n.notification--info a.subtle {\n text-decoration: none;\n}\n.notification--info a.subtle:hover {\n text-decoration: underline;\n}\n.notification--icon {\n margin-right: var(--size-xxsmall);\n margin-left: var(--size-xxxsmall);\n}\n.flex-horizontal {\n display: flex;\n}\n.flex-horizontal ~ .flex-horizontal {\n margin-top: var(--size-xxsmall);\n}\n.flex-horizontal .label {\n width: auto;\n flex-shrink: 0;\n align-items: flex-start;\n padding-top: var(--size-xxsmall);\n}\n.label.label--info {\n color: var(--black4);\n flex-shrink: 1;\n height: auto;\n}\n.flex-horizontal input {\n min-width: 50px;\n}\n.inside-label-behind--sm {\n position: absolute;\n right: var(--size-xxsmall);\n}\n.with-inside-label-behind-sm {\n padding-right: 50px;\n}\ninput:invalid {\n border: 1px solid var(--red);\n outline: 1px solid var(--red);\n outline-offset: -2px;\n}\n#excludePrefix ~ .switch__label > .toggleText::before {\n position: relative;\n display: inline-block;\n content: \"(ONLY prefixed styles are included)\";\n padding-left: var(--size-xxxsmall);\n color: var(--dark-grey);\n}\n#excludePrefix:checked ~ .switch__label > .toggleText::before{\n content: \"(prefixed styles are excluded)\";\n}\nfooter {\n padding: var(--size-xxsmall) 0;\n display: flex;\n justify-content: flex-end;\n margin-top: var(--size-xsmall);\n border-top: 1px solid var(--silver);\n}\nfooter > * {\n margin-right: var(--size-xxsmall);\n}\nfooter > :last-child{\n margin-right: 0;\n}\n:not(h3) + .section-title {\n padding-top: var(--size-xxsmall);\n margin-top: var(--size-xsmall);\n border-top: 1px solid var(--silver);\n}\n#eventtype {\n width: 130px;\n flex-shrink: 0;\n}\n.select-css {\n display: flex;\n align-items: center;\n border: 1px solid transparent;\n height: 30px;\n width: 100%;\n margin: 1px 0 1px 0;\n padding: 0px var(--size-xxsmall) 0px var(--size-xxsmall);\n overflow-y: hidden;\n background-color: var(--white);\n margin: 1px 0 1px 0;\n color: var(--black8);\n border: 1px solid var(--black1);\n border-radius: 1px;\n font-size: var(--font-size-xsmall);\n}\n.select-css:hover {\n border-color: var(--black1);\n}\n.select-css:focus {\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}", "",{"version":3,"sources":["webpack://./src/ui/css/ui.css"],"names":[],"mappings":"AAAA;EACE,kCAAkC;EAClC,gBAAgB;AAClB;AACA;EACE,8BAA8B;AAChC;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uEAAuE;AACzE;AACA;EACE,8BAA8B;EAC9B,kCAAkC;EAClC,sCAAsC;EACtC,qDAAqD;EACrD,oCAAoC;AACtC;AACA;EACE,8BAA8B;EAC9B,kCAAkC;EAClC,sCAAsC;EACtC,qDAAqD;EACrD,oCAAoC;EACpC,+BAA+B;EAC/B,4BAA4B;EAC5B,kBAAkB;EAClB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,kBAAkB;EAClB,0BAA0B;EAC1B,wBAAwB;AAC1B;AACA;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,iCAAiC;EACjC,iCAAiC;AACnC;AACA;EACE,aAAa;AACf;AACA;EACE,+BAA+B;AACjC;AACA;EACE,WAAW;EACX,cAAc;EACd,uBAAuB;EACvB,gCAAgC;AAClC;AACA;EACE,oBAAoB;EACpB,cAAc;EACd,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,0BAA0B;AAC5B;AACA;EACE,mBAAmB;AACrB;AACA;EACE,4BAA4B;EAC5B,6BAA6B;EAC7B,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,8CAA8C;EAC9C,kCAAkC;EAClC,uBAAuB;AACzB;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,8BAA8B;EAC9B,aAAa;EACb,yBAAyB;EACzB,8BAA8B;EAC9B,mCAAmC;AACrC;AACA;EACE,iCAAiC;AACnC;AACA;EACE,eAAe;AACjB;AACA;EACE,gCAAgC;EAChC,8BAA8B;EAC9B,mCAAmC;AACrC;AACA;EACE,YAAY;EACZ,cAAc;AAChB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,6BAA6B;EAC7B,YAAY;EACZ,WAAW;EACX,mBAAmB;EACnB,wDAAwD;EACxD,kBAAkB;EAClB,8BAA8B;EAC9B,mBAAmB;EACnB,oBAAoB;EACpB,+BAA+B;EAC/B,kBAAkB;EAClB,kCAAkC;AACpC;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,6BAA6B;EAC7B,8BAA8B;EAC9B,oBAAoB;AACtB","sourcesContent":[".plugin-ui-content {\n padding: 2px var(--size-xxsmall) 0;\n margin-bottom: 0;\n}\nh3 {\n padding: 0 var(--size-xxsmall);\n}\n.label {\n color: var(--dark-grey);\n}\n.message-box {\n padding: 0 var(--size-xxxsmall) var(--size-xxsmall) var(--size-xxsmall);\n}\n.message-box .message {\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--font-line-height);\n}\n.notification:not(.hidden) {\n font-family: var(--font-stack);\n font-size: var(--font-size-xsmall);\n font-weight: var(--font-weight-normal);\n letter-spacing: var(--font-letter-spacing-pos-xsmall);\n line-height: var(--font-line-height);\n margin-top: var(--size-xxsmall);\n padding: var(--size-xxsmall);\n border-radius: 3px;\n display: flex;\n align-items: center;\n}\n.notification--info {\n position: relative;\n background: var(--blue-10);\n color: var(--blue-black);\n}\n.notification--info a {\n color: var(--blue);\n}\n.notification--info a:hover {\n text-decoration: none;\n}\n.notification--info a.subtle {\n text-decoration: none;\n}\n.notification--info a.subtle:hover {\n text-decoration: underline;\n}\n.notification--icon {\n margin-right: var(--size-xxsmall);\n margin-left: var(--size-xxxsmall);\n}\n.flex-horizontal {\n display: flex;\n}\n.flex-horizontal ~ .flex-horizontal {\n margin-top: var(--size-xxsmall);\n}\n.flex-horizontal .label {\n width: auto;\n flex-shrink: 0;\n align-items: flex-start;\n padding-top: var(--size-xxsmall);\n}\n.label.label--info {\n color: var(--black4);\n flex-shrink: 1;\n height: auto;\n}\n.flex-horizontal input {\n min-width: 50px;\n}\n.inside-label-behind--sm {\n position: absolute;\n right: var(--size-xxsmall);\n}\n.with-inside-label-behind-sm {\n padding-right: 50px;\n}\ninput:invalid {\n border: 1px solid var(--red);\n outline: 1px solid var(--red);\n outline-offset: -2px;\n}\n#excludePrefix ~ .switch__label > .toggleText::before {\n position: relative;\n display: inline-block;\n content: \"(ONLY prefixed styles are included)\";\n padding-left: var(--size-xxxsmall);\n color: var(--dark-grey);\n}\n#excludePrefix:checked ~ .switch__label > .toggleText::before{\n content: \"(prefixed styles are excluded)\";\n}\nfooter {\n padding: var(--size-xxsmall) 0;\n display: flex;\n justify-content: flex-end;\n margin-top: var(--size-xsmall);\n border-top: 1px solid var(--silver);\n}\nfooter > * {\n margin-right: var(--size-xxsmall);\n}\nfooter > :last-child{\n margin-right: 0;\n}\n:not(h3) + .section-title {\n padding-top: var(--size-xxsmall);\n margin-top: var(--size-xsmall);\n border-top: 1px solid var(--silver);\n}\n#eventtype {\n width: 130px;\n flex-shrink: 0;\n}\n.select-css {\n display: flex;\n align-items: center;\n border: 1px solid transparent;\n height: 30px;\n width: 100%;\n margin: 1px 0 1px 0;\n padding: 0px var(--size-xxsmall) 0px var(--size-xxsmall);\n overflow-y: hidden;\n background-color: var(--white);\n margin: 1px 0 1px 0;\n color: var(--black8);\n border: 1px solid var(--black1);\n border-radius: 1px;\n font-size: var(--font-size-xsmall);\n}\n.select-css:hover {\n border-color: var(--black1);\n}\n.select-css:focus {\n border: 1px solid var(--blue);\n outline: 1px solid var(--blue);\n outline-offset: -2px;\n}"],"sourceRoot":""}]); -// Exports -/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./src/ui/css/variables.css": -/*!************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./src/ui/css/variables.css ***! - \************************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ "./node_modules/css-loader/dist/runtime/cssWithMappingToString.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a); -// Module -___CSS_LOADER_EXPORT___.push([module.i, ":root {\n --black4: rgba(0, 0, 0, .4);\n --blue: rgb(24, 160, 351);\n --blue-10: rgba(24, 160, 351, 0.1);\n --blue-black: rgb(20, 45, 60);\n --dark-grey: rgb(100, 100, 100);\n}", "",{"version":3,"sources":["webpack://./src/ui/css/variables.css"],"names":[],"mappings":"AAAA;EACE,2BAA2B;EAC3B,yBAAyB;EACzB,kCAAkC;EAClC,6BAA6B;EAC7B,+BAA+B;AACjC","sourcesContent":[":root {\n --black4: rgba(0, 0, 0, .4);\n --blue: rgb(24, 160, 351);\n --blue-10: rgba(24, 160, 351, 0.1);\n --blue-black: rgb(20, 45, 60);\n --dark-grey: rgb(100, 100, 100);\n}"],"sourceRoot":""}]); -// Exports -/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/runtime/api.js": -/*!*****************************************************!*\ - !*** ./node_modules/css-loader/dist/runtime/api.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -// eslint-disable-next-line func-names -module.exports = function (cssWithMappingToString) { - var list = []; // return the list of modules as css string - - list.toString = function toString() { - return this.map(function (item) { - var content = cssWithMappingToString(item); - - if (item[2]) { - return "@media ".concat(item[2], " {").concat(content, "}"); - } - - return content; - }).join(""); - }; // import a list of modules into the list - // eslint-disable-next-line func-names - - - list.i = function (modules, mediaQuery, dedupe) { - if (typeof modules === "string") { - // eslint-disable-next-line no-param-reassign - modules = [[null, modules, ""]]; - } - - var alreadyImportedModules = {}; - - if (dedupe) { - for (var i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - var id = this[i][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - } - - for (var _i = 0; _i < modules.length; _i++) { - var item = [].concat(modules[_i]); - - if (dedupe && alreadyImportedModules[item[0]]) { - // eslint-disable-next-line no-continue - continue; - } - - if (mediaQuery) { - if (!item[2]) { - item[2] = mediaQuery; - } else { - item[2] = "".concat(mediaQuery, " and ").concat(item[2]); - } - } - - list.push(item); - } - }; - - return list; -}; - -/***/ }), - -/***/ "./node_modules/css-loader/dist/runtime/cssWithMappingToString.js": -/*!************************************************************************!*\ - !*** ./node_modules/css-loader/dist/runtime/cssWithMappingToString.js ***! - \************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -module.exports = function cssWithMappingToString(item) { - var _item = _slicedToArray(item, 4), - content = _item[1], - cssMapping = _item[3]; - - if (typeof btoa === "function") { - // eslint-disable-next-line no-undef - var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))); - var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); - var sourceMapping = "/*# ".concat(data, " */"); - var sourceURLs = cssMapping.sources.map(function (source) { - return "/*# sourceURL=".concat(cssMapping.sourceRoot || "").concat(source, " */"); - }); - return [content].concat(sourceURLs).concat([sourceMapping]).join("\n"); - } - - return [content].join("\n"); -}; - -/***/ }), - -/***/ "./node_modules/figma-plugin-ds/dist/figma-plugin-ds.css": -/*!***************************************************************!*\ - !*** ./node_modules/figma-plugin-ds/dist/figma-plugin-ds.css ***! - \***************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _css_loader_dist_cjs_js_figma_plugin_ds_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../css-loader/dist/cjs.js!./figma-plugin-ds.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/figma-plugin-ds/dist/figma-plugin-ds.css"); - - - -var options = {}; - -options.insert = "head"; -options.singleton = false; - -var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_figma_plugin_ds_css__WEBPACK_IMPORTED_MODULE_1__["default"], options); - - - -/* harmony default export */ __webpack_exports__["default"] = (_css_loader_dist_cjs_js_figma_plugin_ds_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {}); - -/***/ }), - -/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": -/*!****************************************************************************!*\ - !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! - \****************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isOldIE = function isOldIE() { - var memo; - return function memorize() { - if (typeof memo === 'undefined') { - // Test for IE <= 9 as proposed by Browserhacks - // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 - // Tests for existence of standard globals is to allow style-loader - // to operate correctly into non-standard environments - // @see https://github.com/webpack-contrib/style-loader/issues/177 - memo = Boolean(window && document && document.all && !window.atob); - } - - return memo; - }; -}(); - -var getTarget = function getTarget() { - var memo = {}; - return function memorize(target) { - if (typeof memo[target] === 'undefined') { - var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself - - if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch (e) { - // istanbul ignore next - styleTarget = null; - } - } - - memo[target] = styleTarget; - } - - return memo[target]; - }; -}(); - -var stylesInDom = []; - -function getIndexByIdentifier(identifier) { - var result = -1; - - for (var i = 0; i < stylesInDom.length; i++) { - if (stylesInDom[i].identifier === identifier) { - result = i; - break; - } - } - - return result; -} - -function modulesToDom(list, options) { - var idCountMap = {}; - var identifiers = []; - - for (var i = 0; i < list.length; i++) { - var item = list[i]; - var id = options.base ? item[0] + options.base : item[0]; - var count = idCountMap[id] || 0; - var identifier = "".concat(id, " ").concat(count); - idCountMap[id] = count + 1; - var index = getIndexByIdentifier(identifier); - var obj = { - css: item[1], - media: item[2], - sourceMap: item[3] - }; - - if (index !== -1) { - stylesInDom[index].references++; - stylesInDom[index].updater(obj); - } else { - stylesInDom.push({ - identifier: identifier, - updater: addStyle(obj, options), - references: 1 - }); - } - - identifiers.push(identifier); - } - - return identifiers; -} - -function insertStyleElement(options) { - var style = document.createElement('style'); - var attributes = options.attributes || {}; - - if (typeof attributes.nonce === 'undefined') { - var nonce = true ? __webpack_require__.nc : undefined; - - if (nonce) { - attributes.nonce = nonce; - } - } - - Object.keys(attributes).forEach(function (key) { - style.setAttribute(key, attributes[key]); - }); - - if (typeof options.insert === 'function') { - options.insert(style); - } else { - var target = getTarget(options.insert || 'head'); - - if (!target) { - throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); - } - - target.appendChild(style); - } - - return style; -} - -function removeStyleElement(style) { - // istanbul ignore if - if (style.parentNode === null) { - return false; - } - - style.parentNode.removeChild(style); -} -/* istanbul ignore next */ - - -var replaceText = function replaceText() { - var textStore = []; - return function replace(index, replacement) { - textStore[index] = replacement; - return textStore.filter(Boolean).join('\n'); - }; -}(); - -function applyToSingletonTag(style, index, remove, obj) { - var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE - - /* istanbul ignore if */ - - if (style.styleSheet) { - style.styleSheet.cssText = replaceText(index, css); - } else { - var cssNode = document.createTextNode(css); - var childNodes = style.childNodes; - - if (childNodes[index]) { - style.removeChild(childNodes[index]); - } - - if (childNodes.length) { - style.insertBefore(cssNode, childNodes[index]); - } else { - style.appendChild(cssNode); - } - } -} - -function applyToTag(style, options, obj) { - var css = obj.css; - var media = obj.media; - var sourceMap = obj.sourceMap; - - if (media) { - style.setAttribute('media', media); - } else { - style.removeAttribute('media'); - } - - if (sourceMap && typeof btoa !== 'undefined') { - css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); - } // For old IE - - /* istanbul ignore if */ - - - if (style.styleSheet) { - style.styleSheet.cssText = css; - } else { - while (style.firstChild) { - style.removeChild(style.firstChild); - } - - style.appendChild(document.createTextNode(css)); - } -} - -var singleton = null; -var singletonCounter = 0; - -function addStyle(obj, options) { - var style; - var update; - var remove; - - if (options.singleton) { - var styleIndex = singletonCounter++; - style = singleton || (singleton = insertStyleElement(options)); - update = applyToSingletonTag.bind(null, style, styleIndex, false); - remove = applyToSingletonTag.bind(null, style, styleIndex, true); - } else { - style = insertStyleElement(options); - update = applyToTag.bind(null, style, options); - - remove = function remove() { - removeStyleElement(style); - }; - } - - update(obj); - return function updateStyle(newObj) { - if (newObj) { - if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { - return; - } - - update(obj = newObj); - } else { - remove(); - } - }; -} - -module.exports = function (list, options) { - options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of