react-magma-dom 4.9.0-next.21 → 4.9.0-next.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.js +18 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/react-magma-dom.cjs.development.js +18 -13
- package/dist/react-magma-dom.cjs.development.js.map +1 -1
- package/dist/react-magma-dom.cjs.production.min.js +1 -1
- package/dist/react-magma-dom.cjs.production.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -3747,7 +3747,7 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__$8() { return "You have tried to string
|
|
|
3747
3747
|
InputIconPosition["right"] = "right";
|
|
3748
3748
|
})(exports.InputIconPosition || (exports.InputIconPosition = {}));
|
|
3749
3749
|
var inputWrapperStyles = function inputWrapperStyles(props) {
|
|
3750
|
-
return /*#__PURE__*/react.css("flex:1 1 auto;align-items:center;display:flex;position:relative;width:", props.width || 'auto', ";background-color:", props.isInverse ? polished.transparentize(0.8, props.theme.colors.neutral900) : props.theme.colors.neutral100, ";border-radius:", props.theme.borderRadius, ";border:1px solid ", props.isInverse ? polished.transparentize(0.5, props.theme.colors.neutral100) : props.theme.colors.neutral500, ";height:", props.theme.spaceScale.spacing09, ";&:focus-within{outline:2px solid ", props.isInverse ? props.theme.colors.focusInverse : props.theme.colors.focus, ";outline-offset:-1px;}", props.hasError && /*#__PURE__*/react.css("border-color:", props.isInverse ? props.theme.colors.danger300 : props.theme.colors.danger, ";;label:inputWrapperStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0RFEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBzZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICAgIGlmICghZXZlbnQudGFyZ2V0LnZhbHVlICYmXHJcbiAgICAgICAgICAgIG9uRGF0ZUNoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXNzd29yZEJ0bldpZHRoID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJ0bldpZHRoID0gY2hpbGRyZW4/LnByb3BzPy5jaGlsZHJlbj8uWzBdPy5yZWY/LmN1cnJlbnQ/Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGlmICh0eXBlb2YgYnRuV2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBidG5XaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFdoZW4gUGFzc3dvcmRCdXR0b24gaXMgdXNlZCBpbnNpZGUgU2NoZW1hUmVuZGVyZXIsIGl0IGRvZXNuJ3QgaGF2ZSBjaGlsZHJlbi5cclxuICAgICAgICAgICAgLy8gV2UnbGwgdXNlIHRoZSBkZWZhdWx0IGJ1dHRvbiBzaXplcy5cclxuICAgICAgICAgICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNjQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDU0O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyByZWY6IHNldFJlZmVyZW5jZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRDb250YWluZXIsIHsgc3R5bGU6IGlucHV0V3JhcHBlclN0eWxlLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZH0td3JhcHBlcmAgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dFdyYXBwZXIsIHsgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgc3R5bGU6IGNvbnRhaW5lclN0eWxlLCBoYXNFcnJvcjogaGFzRXJyb3IsIGlzQ2xlYXJhYmxlOiBpc0NsZWFyYWJsZSwgd2lkdGg6IHByb3BzLndpZHRoIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBcImFyaWEtaW52YWxpZFwiOiBoYXNFcnJvciwgZGlzYWJsZWQ6IGRpc2FibGVkLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgaGFzQ2hhcmFjdGVyQ291bnRlcjogaGFzQ2hhcmFjdGVyQ291bnRlciwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzQ2xlYXJhYmxlOiB0eXBlID09PSBJbnB1dFR5cGUuc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpbnB1dFdyYXBwZXJTdHlsZT8ud2lkdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXNDbGVhcmFibGUgJiYgaW5wdXRMZW5ndGggPiAwLCBpc0ludmVyc2U6IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCByZWY6IHJlZiwgbWF4TGVuZ3RoOiBtYXhMZW5ndGhOdW0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIHN0eWxlOiBpbnB1dFN0eWxlLCB0aGVtZTogdGhlbWUsIHR5cGU6IHR5cGUgPyB0eXBlIDogSW5wdXRUeXBlLnRleHQsIHZhbHVlOiB2YWx1ZSB9KSksXHJcbiAgICAgICAgICAgICAgICBpY29uICYmICFvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uV3JhcHBlciwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgdGhlbWU6IHRoZW1lLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgUmVhY3QuQ2hpbGRyZW4ub25seShSZWFjdC5jbG9uZUVsZW1lbnQoaWNvbiwge1xyXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGdldEljb25TaXplKGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZSwgaWNvblBvc2l0aW9uKSxcclxuICAgICAgICAgICAgICAgIH0pKSkpKSxcclxuICAgICAgICAgICAgaXNDbGVhcmFibGUgJiYgdmFsdWUgIT09ICcnICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KElzQ2xlYXJhYmxlQ29udGFpbmVyLCB7IHRoZW1lOiB0aGVtZSwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplLCBpY29uOiBpY29uIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGkxOG4uaW5wdXQuaXNDbGVhcmFibGVBcmlhTGFiZWwsIGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvbjogUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckljb24sIG51bGwpLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlQ2xlYXJJbnB1dCwgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdGVzdElkOiBcImNsZWFyLWJ1dHRvblwiLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIG9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b25Db250YWluZXIsIHsgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBpc0NsaWNrYWJsZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uOiBpY29uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogb25JY29uQ2xpY2ssIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBkaXNhYmxlZDogZGlzYWJsZWQsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBpc1Bhc3N3b3JkSW5wdXQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciwgeyBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGJ1dHRvbldpZHRoOiBwYXNzd29yZEJ0bldpZHRoKCkgfSwgY2hpbGRyZW4pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KEhlbHBMaW5rQ29udGFpbmVyLCB7IGlzTGFiZWxWaXN1YWxseUhpZGRlbjogaXNMYWJlbFZpc3VhbGx5SGlkZGVuIHx8IGZhbHNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBsYWJlbFBvc2l0aW9uOiBsYWJlbFBvc2l0aW9uID8/IExhYmVsUG9zaXRpb24udG9wLCB0aGVtZTogdGhlbWUgfSwgY2hpbGRyZW4pKSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdfQ== */")), " ", props.disabled && /*#__PURE__*/react.css("border-color:", props.isInverse ? polished.transparentize(0.85, props.theme.colors.neutral100) : props.theme.colors.neutral300, ";background-color:", props.isInverse ? polished.transparentize(0.9, props.theme.colors.neutral900) : props.theme.colors.neutral200, ";;label:inputWrapperStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtRVEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBzZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICAgIGlmICghZXZlbnQudGFyZ2V0LnZhbHVlICYmXHJcbiAgICAgICAgICAgIG9uRGF0ZUNoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXNzd29yZEJ0bldpZHRoID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJ0bldpZHRoID0gY2hpbGRyZW4/LnByb3BzPy5jaGlsZHJlbj8uWzBdPy5yZWY/LmN1cnJlbnQ/Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGlmICh0eXBlb2YgYnRuV2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBidG5XaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFdoZW4gUGFzc3dvcmRCdXR0b24gaXMgdXNlZCBpbnNpZGUgU2NoZW1hUmVuZGVyZXIsIGl0IGRvZXNuJ3QgaGF2ZSBjaGlsZHJlbi5cclxuICAgICAgICAgICAgLy8gV2UnbGwgdXNlIHRoZSBkZWZhdWx0IGJ1dHRvbiBzaXplcy5cclxuICAgICAgICAgICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNjQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDU0O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyByZWY6IHNldFJlZmVyZW5jZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRDb250YWluZXIsIHsgc3R5bGU6IGlucHV0V3JhcHBlclN0eWxlLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZH0td3JhcHBlcmAgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dFdyYXBwZXIsIHsgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgc3R5bGU6IGNvbnRhaW5lclN0eWxlLCBoYXNFcnJvcjogaGFzRXJyb3IsIGlzQ2xlYXJhYmxlOiBpc0NsZWFyYWJsZSwgd2lkdGg6IHByb3BzLndpZHRoIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBcImFyaWEtaW52YWxpZFwiOiBoYXNFcnJvciwgZGlzYWJsZWQ6IGRpc2FibGVkLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgaGFzQ2hhcmFjdGVyQ291bnRlcjogaGFzQ2hhcmFjdGVyQ291bnRlciwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzQ2xlYXJhYmxlOiB0eXBlID09PSBJbnB1dFR5cGUuc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpbnB1dFdyYXBwZXJTdHlsZT8ud2lkdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXNDbGVhcmFibGUgJiYgaW5wdXRMZW5ndGggPiAwLCBpc0ludmVyc2U6IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCByZWY6IHJlZiwgbWF4TGVuZ3RoOiBtYXhMZW5ndGhOdW0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIHN0eWxlOiBpbnB1dFN0eWxlLCB0aGVtZTogdGhlbWUsIHR5cGU6IHR5cGUgPyB0eXBlIDogSW5wdXRUeXBlLnRleHQsIHZhbHVlOiB2YWx1ZSB9KSksXHJcbiAgICAgICAgICAgICAgICBpY29uICYmICFvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uV3JhcHBlciwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgdGhlbWU6IHRoZW1lLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgUmVhY3QuQ2hpbGRyZW4ub25seShSZWFjdC5jbG9uZUVsZW1lbnQoaWNvbiwge1xyXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGdldEljb25TaXplKGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZSwgaWNvblBvc2l0aW9uKSxcclxuICAgICAgICAgICAgICAgIH0pKSkpKSxcclxuICAgICAgICAgICAgaXNDbGVhcmFibGUgJiYgdmFsdWUgIT09ICcnICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KElzQ2xlYXJhYmxlQ29udGFpbmVyLCB7IHRoZW1lOiB0aGVtZSwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplLCBpY29uOiBpY29uIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGkxOG4uaW5wdXQuaXNDbGVhcmFibGVBcmlhTGFiZWwsIGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvbjogUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckljb24sIG51bGwpLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlQ2xlYXJJbnB1dCwgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdGVzdElkOiBcImNsZWFyLWJ1dHRvblwiLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIG9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b25Db250YWluZXIsIHsgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBpc0NsaWNrYWJsZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uOiBpY29uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogb25JY29uQ2xpY2ssIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBkaXNhYmxlZDogZGlzYWJsZWQsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBpc1Bhc3N3b3JkSW5wdXQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciwgeyBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGJ1dHRvbldpZHRoOiBwYXNzd29yZEJ0bldpZHRoKCkgfSwgY2hpbGRyZW4pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KEhlbHBMaW5rQ29udGFpbmVyLCB7IGlzTGFiZWxWaXN1YWxseUhpZGRlbjogaXNMYWJlbFZpc3VhbGx5SGlkZGVuIHx8IGZhbHNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBsYWJlbFBvc2l0aW9uOiBsYWJlbFBvc2l0aW9uID8/IExhYmVsUG9zaXRpb24udG9wLCB0aGVtZTogdGhlbWUgfSwgY2hpbGRyZW4pKSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdfQ== */")), " ", props.inputSize === 'large' && /*#__PURE__*/react.css("height:", props.theme.spaceScale.spacing11, ";;label:inputWrapperStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RVEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBzZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICAgIGlmICghZXZlbnQudGFyZ2V0LnZhbHVlICYmXHJcbiAgICAgICAgICAgIG9uRGF0ZUNoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXNzd29yZEJ0bldpZHRoID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJ0bldpZHRoID0gY2hpbGRyZW4/LnByb3BzPy5jaGlsZHJlbj8uWzBdPy5yZWY/LmN1cnJlbnQ/Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGlmICh0eXBlb2YgYnRuV2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBidG5XaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFdoZW4gUGFzc3dvcmRCdXR0b24gaXMgdXNlZCBpbnNpZGUgU2NoZW1hUmVuZGVyZXIsIGl0IGRvZXNuJ3QgaGF2ZSBjaGlsZHJlbi5cclxuICAgICAgICAgICAgLy8gV2UnbGwgdXNlIHRoZSBkZWZhdWx0IGJ1dHRvbiBzaXplcy5cclxuICAgICAgICAgICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNjQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDU0O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyByZWY6IHNldFJlZmVyZW5jZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRDb250YWluZXIsIHsgc3R5bGU6IGlucHV0V3JhcHBlclN0eWxlLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZH0td3JhcHBlcmAgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dFdyYXBwZXIsIHsgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgc3R5bGU6IGNvbnRhaW5lclN0eWxlLCBoYXNFcnJvcjogaGFzRXJyb3IsIGlzQ2xlYXJhYmxlOiBpc0NsZWFyYWJsZSwgd2lkdGg6IHByb3BzLndpZHRoIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBcImFyaWEtaW52YWxpZFwiOiBoYXNFcnJvciwgZGlzYWJsZWQ6IGRpc2FibGVkLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgaGFzQ2hhcmFjdGVyQ291bnRlcjogaGFzQ2hhcmFjdGVyQ291bnRlciwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzQ2xlYXJhYmxlOiB0eXBlID09PSBJbnB1dFR5cGUuc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpbnB1dFdyYXBwZXJTdHlsZT8ud2lkdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXNDbGVhcmFibGUgJiYgaW5wdXRMZW5ndGggPiAwLCBpc0ludmVyc2U6IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCByZWY6IHJlZiwgbWF4TGVuZ3RoOiBtYXhMZW5ndGhOdW0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIHN0eWxlOiBpbnB1dFN0eWxlLCB0aGVtZTogdGhlbWUsIHR5cGU6IHR5cGUgPyB0eXBlIDogSW5wdXRUeXBlLnRleHQsIHZhbHVlOiB2YWx1ZSB9KSksXHJcbiAgICAgICAgICAgICAgICBpY29uICYmICFvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uV3JhcHBlciwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgdGhlbWU6IHRoZW1lLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgUmVhY3QuQ2hpbGRyZW4ub25seShSZWFjdC5jbG9uZUVsZW1lbnQoaWNvbiwge1xyXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGdldEljb25TaXplKGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZSwgaWNvblBvc2l0aW9uKSxcclxuICAgICAgICAgICAgICAgIH0pKSkpKSxcclxuICAgICAgICAgICAgaXNDbGVhcmFibGUgJiYgdmFsdWUgIT09ICcnICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KElzQ2xlYXJhYmxlQ29udGFpbmVyLCB7IHRoZW1lOiB0aGVtZSwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplLCBpY29uOiBpY29uIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGkxOG4uaW5wdXQuaXNDbGVhcmFibGVBcmlhTGFiZWwsIGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvbjogUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckljb24sIG51bGwpLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlQ2xlYXJJbnB1dCwgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdGVzdElkOiBcImNsZWFyLWJ1dHRvblwiLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIG9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b25Db250YWluZXIsIHsgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBpc0NsaWNrYWJsZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uOiBpY29uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogb25JY29uQ2xpY2ssIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBkaXNhYmxlZDogZGlzYWJsZWQsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBpc1Bhc3N3b3JkSW5wdXQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciwgeyBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGJ1dHRvbldpZHRoOiBwYXNzd29yZEJ0bldpZHRoKCkgfSwgY2hpbGRyZW4pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KEhlbHBMaW5rQ29udGFpbmVyLCB7IGlzTGFiZWxWaXN1YWxseUhpZGRlbjogaXNMYWJlbFZpc3VhbGx5SGlkZGVuIHx8IGZhbHNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBsYWJlbFBvc2l0aW9uOiBsYWJlbFBvc2l0aW9uID8/IExhYmVsUG9zaXRpb24udG9wLCB0aGVtZTogdGhlbWUgfSwgY2hpbGRyZW4pKSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdfQ== */")), ";;label:inputWrapperStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQ2lEIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3750
|
+
return /*#__PURE__*/react.css("flex:1 1 auto;align-items:center;display:flex;position:relative;width:", props.width || 'auto', ";background-color:", props.isInverse ? polished.transparentize(0.8, props.theme.colors.neutral900) : props.theme.colors.neutral100, ";border-radius:", props.theme.borderRadius, ";border:1px solid ", props.isInverse ? polished.transparentize(0.5, props.theme.colors.neutral100) : props.theme.colors.neutral500, ";height:", props.theme.spaceScale.spacing09, ";&:focus-within{outline:2px solid ", props.isInverse ? props.theme.colors.focusInverse : props.theme.colors.focus, ";outline-offset:-1px;}", props.hasError && /*#__PURE__*/react.css("border-color:", props.isInverse ? props.theme.colors.danger300 : props.theme.colors.danger, ";;label:inputWrapperStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0RFEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBjb25zdCBpc09uRGF0ZUNoYW5nZSA9IG9uRGF0ZUNoYW5nZSAmJiB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nO1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBzZXRWYWx1ZShpc09uRGF0ZUNoYW5nZSA/IHZhbHVlIDogKHByb3BzLnZhbHVlID8/IHZhbHVlKSk7XHJcbiAgICAgICAgaWYgKGlzT25EYXRlQ2hhbmdlICYmICF2YWx1ZSkge1xyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */")), " ", props.disabled && /*#__PURE__*/react.css("border-color:", props.isInverse ? polished.transparentize(0.85, props.theme.colors.neutral100) : props.theme.colors.neutral300, ";background-color:", props.isInverse ? polished.transparentize(0.9, props.theme.colors.neutral900) : props.theme.colors.neutral200, ";;label:inputWrapperStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtRVEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBjb25zdCBpc09uRGF0ZUNoYW5nZSA9IG9uRGF0ZUNoYW5nZSAmJiB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nO1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBzZXRWYWx1ZShpc09uRGF0ZUNoYW5nZSA/IHZhbHVlIDogKHByb3BzLnZhbHVlID8/IHZhbHVlKSk7XHJcbiAgICAgICAgaWYgKGlzT25EYXRlQ2hhbmdlICYmICF2YWx1ZSkge1xyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */")), " ", props.inputSize === 'large' && /*#__PURE__*/react.css("height:", props.theme.spaceScale.spacing11, ";;label:inputWrapperStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RVEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBjb25zdCBpc09uRGF0ZUNoYW5nZSA9IG9uRGF0ZUNoYW5nZSAmJiB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nO1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBzZXRWYWx1ZShpc09uRGF0ZUNoYW5nZSA/IHZhbHVlIDogKHByb3BzLnZhbHVlID8/IHZhbHVlKSk7XHJcbiAgICAgICAgaWYgKGlzT25EYXRlQ2hhbmdlICYmICF2YWx1ZSkge1xyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */")), ";;label:inputWrapperStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQ2lEIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */"));
|
|
3751
3751
|
};
|
|
3752
3752
|
function getInputPadding(props) {
|
|
3753
3753
|
var inputSize = props.inputSize,
|
|
@@ -3799,24 +3799,24 @@ function getInputPadding(props) {
|
|
|
3799
3799
|
return padding;
|
|
3800
3800
|
}
|
|
3801
3801
|
var inputBaseStyles = function inputBaseStyles(props) {
|
|
3802
|
-
return /*#__PURE__*/react.css("border:0;border-radius:", props.theme.borderRadius, ";background:transparent;color:", props.isInverse ? props.theme.colors.neutral100 : props.theme.colors.neutral700, ";display:block;font-size:", props.theme.typeScale.size03.fontSize, ";line-height:", props.theme.typeScale.size03.lineHeight, ";font-family:", props.theme.bodyFont, ";height:100%;padding:", props.theme.spaceScale.spacing03, ";-webkit-appearance:none;width:100%;", props.inputSize === 'large' && /*#__PURE__*/react.css("font-size:", props.theme.typeScale.size04.fontSize, ";line-height:", props.theme.typeScale.size04.lineHeight, ";padding:", props.theme.spaceScale.spacing04, ";;label:inputBaseStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SlEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBzZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICAgIGlmICghZXZlbnQudGFyZ2V0LnZhbHVlICYmXHJcbiAgICAgICAgICAgIG9uRGF0ZUNoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXNzd29yZEJ0bldpZHRoID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJ0bldpZHRoID0gY2hpbGRyZW4/LnByb3BzPy5jaGlsZHJlbj8uWzBdPy5yZWY/LmN1cnJlbnQ/Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGlmICh0eXBlb2YgYnRuV2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBidG5XaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFdoZW4gUGFzc3dvcmRCdXR0b24gaXMgdXNlZCBpbnNpZGUgU2NoZW1hUmVuZGVyZXIsIGl0IGRvZXNuJ3QgaGF2ZSBjaGlsZHJlbi5cclxuICAgICAgICAgICAgLy8gV2UnbGwgdXNlIHRoZSBkZWZhdWx0IGJ1dHRvbiBzaXplcy5cclxuICAgICAgICAgICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNjQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDU0O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyByZWY6IHNldFJlZmVyZW5jZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRDb250YWluZXIsIHsgc3R5bGU6IGlucHV0V3JhcHBlclN0eWxlLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZH0td3JhcHBlcmAgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dFdyYXBwZXIsIHsgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgc3R5bGU6IGNvbnRhaW5lclN0eWxlLCBoYXNFcnJvcjogaGFzRXJyb3IsIGlzQ2xlYXJhYmxlOiBpc0NsZWFyYWJsZSwgd2lkdGg6IHByb3BzLndpZHRoIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBcImFyaWEtaW52YWxpZFwiOiBoYXNFcnJvciwgZGlzYWJsZWQ6IGRpc2FibGVkLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgaGFzQ2hhcmFjdGVyQ291bnRlcjogaGFzQ2hhcmFjdGVyQ291bnRlciwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzQ2xlYXJhYmxlOiB0eXBlID09PSBJbnB1dFR5cGUuc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpbnB1dFdyYXBwZXJTdHlsZT8ud2lkdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXNDbGVhcmFibGUgJiYgaW5wdXRMZW5ndGggPiAwLCBpc0ludmVyc2U6IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCByZWY6IHJlZiwgbWF4TGVuZ3RoOiBtYXhMZW5ndGhOdW0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIHN0eWxlOiBpbnB1dFN0eWxlLCB0aGVtZTogdGhlbWUsIHR5cGU6IHR5cGUgPyB0eXBlIDogSW5wdXRUeXBlLnRleHQsIHZhbHVlOiB2YWx1ZSB9KSksXHJcbiAgICAgICAgICAgICAgICBpY29uICYmICFvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uV3JhcHBlciwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgdGhlbWU6IHRoZW1lLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgUmVhY3QuQ2hpbGRyZW4ub25seShSZWFjdC5jbG9uZUVsZW1lbnQoaWNvbiwge1xyXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGdldEljb25TaXplKGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZSwgaWNvblBvc2l0aW9uKSxcclxuICAgICAgICAgICAgICAgIH0pKSkpKSxcclxuICAgICAgICAgICAgaXNDbGVhcmFibGUgJiYgdmFsdWUgIT09ICcnICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KElzQ2xlYXJhYmxlQ29udGFpbmVyLCB7IHRoZW1lOiB0aGVtZSwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplLCBpY29uOiBpY29uIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGkxOG4uaW5wdXQuaXNDbGVhcmFibGVBcmlhTGFiZWwsIGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvbjogUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckljb24sIG51bGwpLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlQ2xlYXJJbnB1dCwgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdGVzdElkOiBcImNsZWFyLWJ1dHRvblwiLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIG9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b25Db250YWluZXIsIHsgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBpc0NsaWNrYWJsZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uOiBpY29uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogb25JY29uQ2xpY2ssIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBkaXNhYmxlZDogZGlzYWJsZWQsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBpc1Bhc3N3b3JkSW5wdXQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciwgeyBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGJ1dHRvbldpZHRoOiBwYXNzd29yZEJ0bldpZHRoKCkgfSwgY2hpbGRyZW4pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KEhlbHBMaW5rQ29udGFpbmVyLCB7IGlzTGFiZWxWaXN1YWxseUhpZGRlbjogaXNMYWJlbFZpc3VhbGx5SGlkZGVuIHx8IGZhbHNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBsYWJlbFBvc2l0aW9uOiBsYWJlbFBvc2l0aW9uID8/IExhYmVsUG9zaXRpb24udG9wLCB0aGVtZTogdGhlbWUgfSwgY2hpbGRyZW4pKSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdfQ== */")), " padding-left:", getInputPadding(props).left, ";padding-right:", getInputPadding(props).right, ";&::placeholder{color:", props.isInverse ? polished.transparentize(0.3, props.theme.colors.neutral100) : props.theme.colors.neutral500, ";}&:focus{outline:0;}&[type='search']{&::-webkit-search-decoration,&::-webkit-search-cancel-button,&::-webkit-search-results-button,&::-webkit-search-results-decoration{display:none;}}", props.disabled && /*#__PURE__*/react.css("color:", props.isInverse ? polished.transparentize(0.6, props.theme.colors.neutral100) : polished.transparentize(0.4, props.theme.colors.neutral500), ";cursor:not-allowed;&::placeholder{color:", props.isInverse ? polished.transparentize(0.8, props.theme.colors.neutral100) : props.theme.colors.neutral500, ";opacity:", props.isInverse ? 0.4 : 0.6, ";};label:inputBaseStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxTFEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBzZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICAgIGlmICghZXZlbnQudGFyZ2V0LnZhbHVlICYmXHJcbiAgICAgICAgICAgIG9uRGF0ZUNoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXNzd29yZEJ0bldpZHRoID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJ0bldpZHRoID0gY2hpbGRyZW4/LnByb3BzPy5jaGlsZHJlbj8uWzBdPy5yZWY/LmN1cnJlbnQ/Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGlmICh0eXBlb2YgYnRuV2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBidG5XaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFdoZW4gUGFzc3dvcmRCdXR0b24gaXMgdXNlZCBpbnNpZGUgU2NoZW1hUmVuZGVyZXIsIGl0IGRvZXNuJ3QgaGF2ZSBjaGlsZHJlbi5cclxuICAgICAgICAgICAgLy8gV2UnbGwgdXNlIHRoZSBkZWZhdWx0IGJ1dHRvbiBzaXplcy5cclxuICAgICAgICAgICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNjQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDU0O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyByZWY6IHNldFJlZmVyZW5jZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRDb250YWluZXIsIHsgc3R5bGU6IGlucHV0V3JhcHBlclN0eWxlLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZH0td3JhcHBlcmAgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dFdyYXBwZXIsIHsgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgc3R5bGU6IGNvbnRhaW5lclN0eWxlLCBoYXNFcnJvcjogaGFzRXJyb3IsIGlzQ2xlYXJhYmxlOiBpc0NsZWFyYWJsZSwgd2lkdGg6IHByb3BzLndpZHRoIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBcImFyaWEtaW52YWxpZFwiOiBoYXNFcnJvciwgZGlzYWJsZWQ6IGRpc2FibGVkLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgaGFzQ2hhcmFjdGVyQ291bnRlcjogaGFzQ2hhcmFjdGVyQ291bnRlciwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzQ2xlYXJhYmxlOiB0eXBlID09PSBJbnB1dFR5cGUuc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpbnB1dFdyYXBwZXJTdHlsZT8ud2lkdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXNDbGVhcmFibGUgJiYgaW5wdXRMZW5ndGggPiAwLCBpc0ludmVyc2U6IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCByZWY6IHJlZiwgbWF4TGVuZ3RoOiBtYXhMZW5ndGhOdW0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIHN0eWxlOiBpbnB1dFN0eWxlLCB0aGVtZTogdGhlbWUsIHR5cGU6IHR5cGUgPyB0eXBlIDogSW5wdXRUeXBlLnRleHQsIHZhbHVlOiB2YWx1ZSB9KSksXHJcbiAgICAgICAgICAgICAgICBpY29uICYmICFvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uV3JhcHBlciwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgdGhlbWU6IHRoZW1lLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgUmVhY3QuQ2hpbGRyZW4ub25seShSZWFjdC5jbG9uZUVsZW1lbnQoaWNvbiwge1xyXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGdldEljb25TaXplKGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZSwgaWNvblBvc2l0aW9uKSxcclxuICAgICAgICAgICAgICAgIH0pKSkpKSxcclxuICAgICAgICAgICAgaXNDbGVhcmFibGUgJiYgdmFsdWUgIT09ICcnICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KElzQ2xlYXJhYmxlQ29udGFpbmVyLCB7IHRoZW1lOiB0aGVtZSwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplLCBpY29uOiBpY29uIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGkxOG4uaW5wdXQuaXNDbGVhcmFibGVBcmlhTGFiZWwsIGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvbjogUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckljb24sIG51bGwpLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlQ2xlYXJJbnB1dCwgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdGVzdElkOiBcImNsZWFyLWJ1dHRvblwiLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIG9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b25Db250YWluZXIsIHsgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBpc0NsaWNrYWJsZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uOiBpY29uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogb25JY29uQ2xpY2ssIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBkaXNhYmxlZDogZGlzYWJsZWQsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBpc1Bhc3N3b3JkSW5wdXQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciwgeyBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGJ1dHRvbldpZHRoOiBwYXNzd29yZEJ0bldpZHRoKCkgfSwgY2hpbGRyZW4pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KEhlbHBMaW5rQ29udGFpbmVyLCB7IGlzTGFiZWxWaXN1YWxseUhpZGRlbjogaXNMYWJlbFZpc3VhbGx5SGlkZGVuIHx8IGZhbHNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBsYWJlbFBvc2l0aW9uOiBsYWJlbFBvc2l0aW9uID8/IExhYmVsUG9zaXRpb24udG9wLCB0aGVtZTogdGhlbWUgfSwgY2hpbGRyZW4pKSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdfQ== */")), " &:-webkit-autofill,&:-webkit-autofill:focus,&:-webkit-autofill:hover,&:-webkit-autofill:active{box-shadow:none!important;-webkit-background-clip:text;-webkit-text-fill-color:", props.isInverse ? props.theme.colors.neutral100 : props.theme.colors.neutral700, "!important;caret-color:", props.isInverse ? props.theme.colors.neutral100 : props.theme.colors.neutral700, "!important;};label:inputBaseStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1SThDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3802
|
+
return /*#__PURE__*/react.css("border:0;border-radius:", props.theme.borderRadius, ";background:transparent;color:", props.isInverse ? props.theme.colors.neutral100 : props.theme.colors.neutral700, ";display:block;font-size:", props.theme.typeScale.size03.fontSize, ";line-height:", props.theme.typeScale.size03.lineHeight, ";font-family:", props.theme.bodyFont, ";height:100%;padding:", props.theme.spaceScale.spacing03, ";-webkit-appearance:none;width:100%;", props.inputSize === 'large' && /*#__PURE__*/react.css("font-size:", props.theme.typeScale.size04.fontSize, ";line-height:", props.theme.typeScale.size04.lineHeight, ";padding:", props.theme.spaceScale.spacing04, ";;label:inputBaseStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SlEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBjb25zdCBpc09uRGF0ZUNoYW5nZSA9IG9uRGF0ZUNoYW5nZSAmJiB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nO1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBzZXRWYWx1ZShpc09uRGF0ZUNoYW5nZSA/IHZhbHVlIDogKHByb3BzLnZhbHVlID8/IHZhbHVlKSk7XHJcbiAgICAgICAgaWYgKGlzT25EYXRlQ2hhbmdlICYmICF2YWx1ZSkge1xyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */")), " padding-left:", getInputPadding(props).left, ";padding-right:", getInputPadding(props).right, ";&::placeholder{color:", props.isInverse ? polished.transparentize(0.3, props.theme.colors.neutral100) : props.theme.colors.neutral500, ";}&:focus{outline:0;}&[type='search']{&::-webkit-search-decoration,&::-webkit-search-cancel-button,&::-webkit-search-results-button,&::-webkit-search-results-decoration{display:none;}}", props.disabled && /*#__PURE__*/react.css("color:", props.isInverse ? polished.transparentize(0.6, props.theme.colors.neutral100) : polished.transparentize(0.4, props.theme.colors.neutral500), ";cursor:not-allowed;&::placeholder{color:", props.isInverse ? polished.transparentize(0.8, props.theme.colors.neutral100) : props.theme.colors.neutral500, ";opacity:", props.isInverse ? 0.4 : 0.6, ";};label:inputBaseStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxTFEiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBjb25zdCBpc09uRGF0ZUNoYW5nZSA9IG9uRGF0ZUNoYW5nZSAmJiB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nO1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBzZXRWYWx1ZShpc09uRGF0ZUNoYW5nZSA/IHZhbHVlIDogKHByb3BzLnZhbHVlID8/IHZhbHVlKSk7XHJcbiAgICAgICAgaWYgKGlzT25EYXRlQ2hhbmdlICYmICF2YWx1ZSkge1xyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */")), " &:-webkit-autofill,&:-webkit-autofill:focus,&:-webkit-autofill:hover,&:-webkit-autofill:active{box-shadow:none!important;-webkit-background-clip:text;-webkit-text-fill-color:", props.isInverse ? props.theme.colors.neutral100 : props.theme.colors.neutral700, "!important;caret-color:", props.isInverse ? props.theme.colors.neutral100 : props.theme.colors.neutral700, "!important;};label:inputBaseStyles;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1SThDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */"));
|
|
3803
3803
|
};
|
|
3804
3804
|
var InputContainer = /*#__PURE__*/_styled("div", {
|
|
3805
3805
|
target: "e1jxjjn77",
|
|
3806
3806
|
label: "InputContainer"
|
|
3807
3807
|
})( {
|
|
3808
3808
|
name: "zjik7",
|
|
3809
|
-
styles: "display:flex/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpTmtDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */",
|
|
3809
|
+
styles: "display:flex/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpTmtDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */",
|
|
3810
3810
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$8
|
|
3811
3811
|
});
|
|
3812
3812
|
var InputWrapper = /*#__PURE__*/_styled("div", {
|
|
3813
3813
|
target: "e1jxjjn76",
|
|
3814
3814
|
label: "InputWrapper"
|
|
3815
|
-
})(inputWrapperStyles, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvTnVDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3815
|
+
})(inputWrapperStyles, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvTnVDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */"));
|
|
3816
3816
|
var StyledInput = /*#__PURE__*/_styled("input", {
|
|
3817
3817
|
target: "e1jxjjn75",
|
|
3818
3818
|
label: "StyledInput"
|
|
3819
|
-
})(inputBaseStyles, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1TmlDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3819
|
+
})(inputBaseStyles, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1TmlDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */"));
|
|
3820
3820
|
var IconWrapper$3 = /*#__PURE__*/_styled("span", {
|
|
3821
3821
|
target: "e1jxjjn74",
|
|
3822
3822
|
label: "IconWrapper"
|
|
@@ -3833,8 +3833,8 @@ var IconWrapper$3 = /*#__PURE__*/_styled("span", {
|
|
|
3833
3833
|
return props.theme.spaceScale.spacing03;
|
|
3834
3834
|
};
|
|
3835
3835
|
}, ";", function (props) {
|
|
3836
|
-
return props.inputSize === 'large' && /*#__PURE__*/react.css("bottom:", props.iconPosition === 'top' ? '62px' : 'inherit', ";left:", props.iconPosition === 'left' ? props.theme.spaceScale.spacing04 : 'auto', ";right:", props.iconPosition === 'right' ? props.theme.spaceScale.spacing04 : props.iconPosition === 'top' ? '3px' : 'auto', ";top:", props.iconPosition === 'top' ? 'inherit' : props.theme.spaceScale.spacing04, ";;label:IconWrapper;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyT1EiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBzZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICAgIGlmICghZXZlbnQudGFyZ2V0LnZhbHVlICYmXHJcbiAgICAgICAgICAgIG9uRGF0ZUNoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXNzd29yZEJ0bldpZHRoID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJ0bldpZHRoID0gY2hpbGRyZW4/LnByb3BzPy5jaGlsZHJlbj8uWzBdPy5yZWY/LmN1cnJlbnQ/Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGlmICh0eXBlb2YgYnRuV2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBidG5XaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFdoZW4gUGFzc3dvcmRCdXR0b24gaXMgdXNlZCBpbnNpZGUgU2NoZW1hUmVuZGVyZXIsIGl0IGRvZXNuJ3QgaGF2ZSBjaGlsZHJlbi5cclxuICAgICAgICAgICAgLy8gV2UnbGwgdXNlIHRoZSBkZWZhdWx0IGJ1dHRvbiBzaXplcy5cclxuICAgICAgICAgICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNjQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDU0O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyByZWY6IHNldFJlZmVyZW5jZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRDb250YWluZXIsIHsgc3R5bGU6IGlucHV0V3JhcHBlclN0eWxlLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZH0td3JhcHBlcmAgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dFdyYXBwZXIsIHsgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgc3R5bGU6IGNvbnRhaW5lclN0eWxlLCBoYXNFcnJvcjogaGFzRXJyb3IsIGlzQ2xlYXJhYmxlOiBpc0NsZWFyYWJsZSwgd2lkdGg6IHByb3BzLndpZHRoIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBcImFyaWEtaW52YWxpZFwiOiBoYXNFcnJvciwgZGlzYWJsZWQ6IGRpc2FibGVkLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgaGFzQ2hhcmFjdGVyQ291bnRlcjogaGFzQ2hhcmFjdGVyQ291bnRlciwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzQ2xlYXJhYmxlOiB0eXBlID09PSBJbnB1dFR5cGUuc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpbnB1dFdyYXBwZXJTdHlsZT8ud2lkdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXNDbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXNDbGVhcmFibGUgJiYgaW5wdXRMZW5ndGggPiAwLCBpc0ludmVyc2U6IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCByZWY6IHJlZiwgbWF4TGVuZ3RoOiBtYXhMZW5ndGhOdW0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIHN0eWxlOiBpbnB1dFN0eWxlLCB0aGVtZTogdGhlbWUsIHR5cGU6IHR5cGUgPyB0eXBlIDogSW5wdXRUeXBlLnRleHQsIHZhbHVlOiB2YWx1ZSB9KSksXHJcbiAgICAgICAgICAgICAgICBpY29uICYmICFvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uV3JhcHBlciwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpc1ByZWRpY3RpdmU6IGlzUHJlZGljdGl2ZSwgdGhlbWU6IHRoZW1lLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgUmVhY3QuQ2hpbGRyZW4ub25seShSZWFjdC5jbG9uZUVsZW1lbnQoaWNvbiwge1xyXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGdldEljb25TaXplKGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZSwgaWNvblBvc2l0aW9uKSxcclxuICAgICAgICAgICAgICAgIH0pKSkpKSxcclxuICAgICAgICAgICAgaXNDbGVhcmFibGUgJiYgdmFsdWUgIT09ICcnICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KElzQ2xlYXJhYmxlQ29udGFpbmVyLCB7IHRoZW1lOiB0aGVtZSwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplLCBpY29uOiBpY29uIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGkxOG4uaW5wdXQuaXNDbGVhcmFibGVBcmlhTGFiZWwsIGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvbjogUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckljb24sIG51bGwpLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlQ2xlYXJJbnB1dCwgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdGVzdElkOiBcImNsZWFyLWJ1dHRvblwiLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIG9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b25Db250YWluZXIsIHsgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlucHV0U2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBpc0NsaWNrYWJsZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uOiBpY29uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgb25DbGljazogb25JY29uQ2xpY2ssIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBkaXNhYmxlZDogZGlzYWJsZWQsIHNoYXBlOiBCdXR0b25TaGFwZS5maWxsLCBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEJ1dHRvblNpemUubWVkaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQnV0dG9uU2l6ZS5zbWFsbCwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBpc1Bhc3N3b3JkSW5wdXQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciwgeyBzaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGJ1dHRvbldpZHRoOiBwYXNzd29yZEJ0bldpZHRoKCkgfSwgY2hpbGRyZW4pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KEhlbHBMaW5rQ29udGFpbmVyLCB7IGlzTGFiZWxWaXN1YWxseUhpZGRlbjogaXNMYWJlbFZpc3VhbGx5SGlkZGVuIHx8IGZhbHNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBsYWJlbFBvc2l0aW9uOiBsYWJlbFBvc2l0aW9uID8/IExhYmVsUG9zaXRpb24udG9wLCB0aGVtZTogdGhlbWUgfSwgY2hpbGRyZW4pKSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdfQ== */"));
|
|
3837
|
-
}, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwTmdDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3836
|
+
return props.inputSize === 'large' && /*#__PURE__*/react.css("bottom:", props.iconPosition === 'top' ? '62px' : 'inherit', ";left:", props.iconPosition === 'left' ? props.theme.spaceScale.spacing04 : 'auto', ";right:", props.iconPosition === 'right' ? props.theme.spaceScale.spacing04 : props.iconPosition === 'top' ? '3px' : 'auto', ";top:", props.iconPosition === 'top' ? 'inherit' : props.theme.spaceScale.spacing04, ";;label:IconWrapper;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyT1EiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IENsZWFySWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uU2hhcGUsIEJ1dHRvblNpemUsIEJ1dHRvblR5cGUsIEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9CdXR0b24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vSWNvbkJ1dHRvbic7XHJcbmltcG9ydCB7IExhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9MYWJlbCc7XHJcbmltcG9ydCB7IENoaWxkcmVuV3JhcHBlciB9IGZyb20gJy4uL1N0eWxlZEJ1dHRvbic7XHJcbmV4cG9ydCB2YXIgSW5wdXRTaXplO1xyXG4oZnVuY3Rpb24gKElucHV0U2l6ZSkge1xyXG4gICAgSW5wdXRTaXplW1wibGFyZ2VcIl0gPSBcImxhcmdlXCI7XHJcbiAgICBJbnB1dFNpemVbXCJtZWRpdW1cIl0gPSBcIm1lZGl1bVwiO1xyXG59KShJbnB1dFNpemUgfHwgKElucHV0U2l6ZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRUeXBlO1xyXG4oZnVuY3Rpb24gKElucHV0VHlwZSkge1xyXG4gICAgSW5wdXRUeXBlW1wiZW1haWxcIl0gPSBcImVtYWlsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJmaWxlXCJdID0gXCJmaWxlXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJudW1iZXJcIl0gPSBcIm51bWJlclwiO1xyXG4gICAgSW5wdXRUeXBlW1wicGFzc3dvcmRcIl0gPSBcInBhc3N3b3JkXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJzZWFyY2hcIl0gPSBcInNlYXJjaFwiO1xyXG4gICAgSW5wdXRUeXBlW1widGV4dFwiXSA9IFwidGV4dFwiO1xyXG4gICAgSW5wdXRUeXBlW1widXJsXCJdID0gXCJ1cmxcIjtcclxuICAgIElucHV0VHlwZVtcInRlbFwiXSA9IFwidGVsXCI7XHJcbn0pKElucHV0VHlwZSB8fCAoSW5wdXRUeXBlID0ge30pKTtcclxuZXhwb3J0IHZhciBJbnB1dEljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChJbnB1dEljb25Qb3NpdGlvbikge1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBJbnB1dEljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShJbnB1dEljb25Qb3NpdGlvbiB8fCAoSW5wdXRJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcy53aWR0aCB8fCAnYXV0byd9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDUwMH07XG4gIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOX07XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzSW52ZXJzZVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXN9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICB9XG5cbiAgJHtwcm9wcy5oYXNFcnJvciAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyMzAwXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5jb2xvcnMuZGFuZ2VyfTtcbiAgYH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuODUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwzMDB9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjksIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwyMDB9O1xuICBgfVxuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGhlaWdodDogJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX07XG4gIGB9XG5gO1xyXG5mdW5jdGlvbiBnZXRJbnB1dFBhZGRpbmcocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCBpc0NsZWFyYWJsZSwgaWNvblBvc2l0aW9uIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHBhZGRpbmcgPSB7XHJcbiAgICAgICAgbGVmdDogcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMsXHJcbiAgICAgICAgcmlnaHQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgfTtcclxuICAgIGlmIChpbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc5MnB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gJ21lZGl1bScpIHtcclxuICAgICAgICBpZiAoaXNDbGVhcmFibGUpIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9ICc2OHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpY29uIHRvcCwgbm8gaWNvblxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLnJpZ2h0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLmxlZnQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5nO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VTdHlsZXMgPSAocHJvcHMpID0+IGNzcyBgXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcy50aGVtZS5ib3JkZXJSYWRpdXN9O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTAzLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5saW5lSGVpZ2h0fTtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMudGhlbWUuYm9keUZvbnR9O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7cHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnICYmXHJcbiAgICBjc3MgYFxuICAgIGZvbnQtc2l6ZTogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcy50aGVtZS50eXBlU2NhbGUuc2l6ZTA0LmxpbmVIZWlnaHR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDR9O1xuICBgfVxuXG4gIHBhZGRpbmctbGVmdDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLmxlZnR9O1xuICBwYWRkaW5nLXJpZ2h0OiAke2dldElucHV0UGFkZGluZyhwcm9wcykucmlnaHR9O1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC4zLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZbdHlwZT0nc2VhcmNoJ10ge1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAke3Byb3BzLmRpc2FibGVkICYmXHJcbiAgICBjc3MgYFxuICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC42LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuNCwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDApfTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICAgICAgb3BhY2l0eTogJHtwcm9wcy5pc0ludmVyc2UgPyAwLjQgOiAwLjZ9O1xuICAgIH1cbiAgYH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfSAhaW1wb3J0YW50O1xuICAgIGNhcmV0LWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgfVxuYDtcclxuY29uc3QgSW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgJHtpbnB1dFdyYXBwZXJTdHlsZXN9XG5gO1xyXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dCBgXG4gICR7aW5wdXRCYXNlU3R5bGVzfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0NXB4JyA6ICdpbmhlcml0Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsZWZ0OiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnYXV0byd9O1xuICByaWdodDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNcclxuICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJzNweCdcclxuICAgICAgICA6ICdhdXRvJ307XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgID8gJ2luaGVyaXQnXHJcbiAgICA6IHByb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcblxuICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICAgIGJvdHRvbTogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzYycHgnIDogJ2luaGVyaXQnfTtcbiAgICAgIGxlZnQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAnbGVmdCdcclxuICAgICAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0XHJcbiAgICAgICAgOiAnYXV0byd9O1xuICAgICAgcmlnaHQ6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHRvcDogJHtwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICAgICAgPyAnaW5oZXJpdCdcclxuICAgICAgICA6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaXNDbGlja2FibGUgJiYgaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxuICAgIH1cclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubGFyZ2V9cHhgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5tZWRpdW19cHhgO1xyXG59XHJcbmZ1bmN0aW9uIGdldEhlbHBMaW5rU1ZHU2l6ZShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpbnB1dFNpemUsIHRoZW1lIH0gPSBwcm9wcztcclxuICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMuc21hbGx9cHhgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDc7XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykge1xyXG4gICAgY29uc3QgeyBpc0NsaWNrYWJsZSwgaWNvblBvc2l0aW9uLCBpbnB1dFNpemUsIGhhc0NoaWxkcmVuLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgeDogJycsIHk6ICcnIH07XHJcbiAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzBweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTI4cHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzVweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH1cclxuICAgIGlmIChpc0NsaWNrYWJsZSkge1xyXG4gICAgICAgIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQzcHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICcxNHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTQ5cHgnO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc4cHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0zNXB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc2cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICBwb3NpdGlvbi54ID0gYC0ke3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwfWA7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubWVkaXVtKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9ICctMjRweCc7XHJcbiAgICAgICAgcG9zaXRpb24ueSA9ICc3cHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJY29uQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnID8gJzQwcHgnIDogJ2luaGVyaXQnKX07XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnh9LFxuICAgICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblRyYW5zZm9ybShwcm9wcykueX1cbiAgKTtcbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uU1ZHU2l6ZShwcm9wcyl9O1xuICB9XG5gO1xyXG5jb25zdCBQYXNzd29yZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAke3Byb3BzID0+IHByb3BzLnNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA4fXB4YFxyXG4gICAgOiBgJHstcHJvcHMuYnV0dG9uV2lkdGggLSA2fXB4YH0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2UgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpIHtcclxuICAgIGlmIChwcm9wcy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgcHJvcHMuaWNvbikge1xyXG4gICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJzcycHgnO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJykge1xyXG4gICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMDtcclxuICAgIH1cclxuICAgIHJldHVybiAnMzRweCc7XHJcbn1cclxuY29uc3QgSXNDbGVhcmFibGVDb250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgLSR7cHJvcHMgPT4gZ2V0Q2xlYXJhYmxlUG9zaXRpb24ocHJvcHMpfSxcbiAgICAke3Byb3BzID0+IHByb3BzLmlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6ICc2cHgnfVxuICApO1xuYDtcclxuZnVuY3Rpb24gZ2V0SWNvblNpemUoc2l6ZSwgdGhlbWUsIGljb25Qb3NpdGlvbikge1xyXG4gICAgc3dpdGNoIChzaXplKSB7XHJcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgICAgICBpZiAoaWNvblBvc2l0aW9uID09PSBJbnB1dEljb25Qb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubGFyZ2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLnNtYWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZS5pY29uU2l6ZXMubWVkaXVtO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjb25zdCBpc0xlZnRPckhpZGRlbiA9ICh7IGxhYmVsUG9zaXRpb24sIGlzTGFiZWxWaXN1YWxseUhpZGRlbiwgfSkgPT4gbGFiZWxQb3NpdGlvbiA9PT0gTGFiZWxQb3NpdGlvbi5sZWZ0IHx8IGlzTGFiZWxWaXN1YWxseUhpZGRlbjtcclxuZXhwb3J0IGNvbnN0IEhlbHBMaW5rQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBwb3NpdGlvbjogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ3JlbGF0aXZlJyA6ICdhYnNvbHV0ZScpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnZml0LWNvbnRlbnQnKX07XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9YCA6ICdhdXRvJ307XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShcbiAgICAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKVxyXG4gICAgPyAnMCdcclxuICAgIDogYGNhbGMoLTEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfVxuICApO1xuICAke0NoaWxkcmVuV3JhcHBlcn0gPiBzdmcge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpfTtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBnZXRIZWxwSWNvbkJ1dHRvblNpemUocHJvcHMpfTtcbiAgfVxuICBpbnNldC1pbmxpbmUtZW5kOiAke3Byb3BzID0+IChpc0xlZnRPckhpZGRlbihwcm9wcykgPyAnYXV0bycgOiAnMCcpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBJbnB1dEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjb250YWluZXJTdHlsZSwgZGVmYXVsdFZhbHVlLCBkaXNhYmxlZCwgaGFzQ2hhcmFjdGVyQ291bnRlciwgaGFzRXJyb3IsIGljb24sIGljb25BcmlhTGFiZWwsIGljb25SZWYsIGlzQ2xlYXJhYmxlLCBpc1Bhc3N3b3JkSW5wdXQsIGlzUHJlZGljdGl2ZSwgbWF4Q291bnQsIG1heExlbmd0aCwgb25DbGVhciwgb25JY29uQ2xpY2ssIG9uSWNvbktleURvd24sIG9uRGF0ZUNoYW5nZSwgaW5wdXRMZW5ndGgsIGlucHV0U2l6ZSwgaW5wdXRTdHlsZSwgaW5wdXRXcmFwcGVyU3R5bGUsIHRlc3RJZCwgdHlwZSwgc2V0UmVmZXJlbmNlLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIGxhYmVsUG9zaXRpb24sIC4uLm90aGVyIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaWNvblBvc2l0aW9uID0gaWNvbiAmJiBvbkljb25DbGlja1xyXG4gICAgICAgID8gSW5wdXRJY29uUG9zaXRpb24ucmlnaHRcclxuICAgICAgICA6IGljb24gJiYgIXByb3BzLmljb25Qb3NpdGlvblxyXG4gICAgICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLmxlZnRcclxuICAgICAgICAgICAgOiBwcm9wcy5pY29uUG9zaXRpb247XHJcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gcHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgOiBwcm9wcy52YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBtYXhMZW5ndGhOdW0gPSAhaGFzQ2hhcmFjdGVyQ291bnRlciAmJiBtYXhMZW5ndGggPyBtYXhMZW5ndGggOiB1bmRlZmluZWQ7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMudmFsdWVdKTtcclxuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCByZWYgPSB1c2VGb3JrZWRSZWYoZm9yd2FyZGVkUmVmLCBpbnB1dFJlZik7XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGVhcklucHV0KCkge1xyXG4gICAgICAgIG9uQ2xlYXIgJiYgdHlwZW9mIG9uQ2xlYXIgPT09ICdmdW5jdGlvbicgJiYgb25DbGVhcigpO1xyXG4gICAgICAgIHNldFZhbHVlKCcnKTtcclxuICAgICAgICBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBjb25zdCBpc09uRGF0ZUNoYW5nZSA9IG9uRGF0ZUNoYW5nZSAmJiB0eXBlb2Ygb25EYXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nO1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBzZXRWYWx1ZShpc09uRGF0ZUNoYW5nZSA/IHZhbHVlIDogKHByb3BzLnZhbHVlID8/IHZhbHVlKSk7XHJcbiAgICAgICAgaWYgKGlzT25EYXRlQ2hhbmdlICYmICF2YWx1ZSkge1xyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3837
|
+
}, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwTmdDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */"));
|
|
3838
3838
|
function getIconButtonSVGSize(props) {
|
|
3839
3839
|
var isClickable = props.isClickable,
|
|
3840
3840
|
iconPosition = props.iconPosition,
|
|
@@ -3924,7 +3924,7 @@ var IconButtonContainer = /*#__PURE__*/_styled("span", {
|
|
|
3924
3924
|
return getIconButtonSVGSize(props);
|
|
3925
3925
|
}, ";width:", function (props) {
|
|
3926
3926
|
return getIconButtonSVGSize(props);
|
|
3927
|
-
}, ";}" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4VCtDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3927
|
+
}, ";}" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4VCtDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */"));
|
|
3928
3928
|
var PasswordButtonContainer = /*#__PURE__*/_styled("span", {
|
|
3929
3929
|
target: "e1jxjjn72",
|
|
3930
3930
|
label: "PasswordButtonContainer"
|
|
@@ -3932,7 +3932,7 @@ var PasswordButtonContainer = /*#__PURE__*/_styled("span", {
|
|
|
3932
3932
|
return props.size === exports.InputSize.large ? -props.buttonWidth - 8 + "px" : -props.buttonWidth - 6 + "px";
|
|
3933
3933
|
}, ",\n ", function (props) {
|
|
3934
3934
|
return props.size === exports.InputSize.large ? props.theme.spaceScale.spacing03 : '6px';
|
|
3935
|
-
}, "\n );" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4VTRDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3935
|
+
}, "\n );" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4VTRDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */"));
|
|
3936
3936
|
function getClearablePosition(props) {
|
|
3937
3937
|
if (props.iconPosition === 'right' && props.icon) {
|
|
3938
3938
|
if (props.inputSize === 'large') {
|
|
@@ -3952,7 +3952,7 @@ var IsClearableContainer = /*#__PURE__*/_styled("span", {
|
|
|
3952
3952
|
return getClearablePosition(props);
|
|
3953
3953
|
}, ",\n ", function (props) {
|
|
3954
3954
|
return props.inputSize === exports.InputSize.large ? props.theme.spaceScale.spacing03 : '6px';
|
|
3955
|
-
}, "\n );" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvV3lDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3955
|
+
}, "\n );" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvV3lDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */"));
|
|
3956
3956
|
function getIconSize$1(size, theme, iconPosition) {
|
|
3957
3957
|
switch (size) {
|
|
3958
3958
|
case 'large':
|
|
@@ -3993,7 +3993,7 @@ var HelpLinkContainer = /*#__PURE__*/_styled("span", {
|
|
|
3993
3993
|
return getHelpIconButtonSize(props);
|
|
3994
3994
|
}, ";}inset-inline-end:", function (props) {
|
|
3995
3995
|
return isLeftOrHidden(props) ? 'auto' : '0';
|
|
3996
|
-
}, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnWTZDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSAmJlxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFzc3dvcmRCdG5XaWR0aCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBidG5XaWR0aCA9IGNoaWxkcmVuPy5wcm9wcz8uY2hpbGRyZW4/LlswXT8ucmVmPy5jdXJyZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgICBpZiAodHlwZW9mIGJ0bldpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYnRuV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBXaGVuIFBhc3N3b3JkQnV0dG9uIGlzIHVzZWQgaW5zaWRlIFNjaGVtYVJlbmRlcmVyLCBpdCBkb2Vzbid0IGhhdmUgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZGVmYXVsdCBidXR0b24gc2l6ZXMuXHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDY0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA1NDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBzZXRSZWZlcmVuY2UgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0Q29udGFpbmVyLCB7IHN0eWxlOiBpbnB1dFdyYXBwZXJTdHlsZSwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWR9LXdyYXBwZXJgIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXRXcmFwcGVyLCB7IGRpc2FibGVkOiBkaXNhYmxlZCwgaWNvblBvc2l0aW9uOiBpY29uUG9zaXRpb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIHN0eWxlOiBjb250YWluZXJTdHlsZSwgaGFzRXJyb3I6IGhhc0Vycm9yLCBpc0NsZWFyYWJsZTogaXNDbGVhcmFibGUsIHdpZHRoOiBwcm9wcy53aWR0aCB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJbnB1dCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgXCJhcmlhLWludmFsaWRcIjogaGFzRXJyb3IsIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGhhc0NoYXJhY3RlckNvdW50ZXI6IGhhc0NoYXJhY3RlckNvdW50ZXIsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0NsZWFyYWJsZTogdHlwZSA9PT0gSW5wdXRUeXBlLnNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRXcmFwcGVyU3R5bGU/LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlzQ2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ2xlYXJhYmxlICYmIGlucHV0TGVuZ3RoID4gMCwgaXNJbnZlcnNlOiB1c2VJc0ludmVyc2UocHJvcHMuaXNJbnZlcnNlKSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIGhhc0Vycm9yOiBoYXNFcnJvciwgcmVmOiByZWYsIG1heExlbmd0aDogbWF4TGVuZ3RoTnVtLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBzdHlsZTogaW5wdXRTdHlsZSwgdGhlbWU6IHRoZW1lLCB0eXBlOiB0eXBlID8gdHlwZSA6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogdmFsdWUgfSkpLFxyXG4gICAgICAgICAgICAgICAgaWNvbiAmJiAhb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA/PyBJbnB1dFNpemUubWVkaXVtLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaXNQcmVkaWN0aXZlOiBpc1ByZWRpY3RpdmUsIHRoZW1lOiB0aGVtZSwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIFJlYWN0LkNoaWxkcmVuLm9ubHkoUmVhY3QuY2xvbmVFbGVtZW50KGljb24sIHtcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBnZXRJY29uU2l6ZShpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWUsIGljb25Qb3NpdGlvbiksXHJcbiAgICAgICAgICAgICAgICB9KSkpKSksXHJcbiAgICAgICAgICAgIGlzQ2xlYXJhYmxlICYmIHZhbHVlICE9PSAnJyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJc0NsZWFyYWJsZUNvbnRhaW5lciwgeyB0aGVtZTogdGhlbWUsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSwgaWNvbjogaWNvbiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBpMThuLmlucHV0LmlzQ2xlYXJhYmxlQXJpYUxhYmVsLCBkaXNhYmxlZDogZGlzYWJsZWQsIGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xlYXJJY29uLCBudWxsKSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZUNsZWFySW5wdXQsIG9uS2V5RG93bjogb25JY29uS2V5RG93biwgcmVmOiBpY29uUmVmLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHRlc3RJZDogXCJjbGVhci1idXR0b25cIiwgdHlwZTogQnV0dG9uVHlwZS5idXR0b24sIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQubGluayB9KSkpLFxyXG4gICAgICAgICAgICBvbkljb25DbGljayAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uQ29udGFpbmVyLCB7IGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpbnB1dFNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgaXNDbGlja2FibGU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaWNvbkFyaWFMYWJlbCwgaWNvbjogaWNvbiwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIG9uQ2xpY2s6IG9uSWNvbkNsaWNrLCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgZGlzYWJsZWQ6IGRpc2FibGVkLCBzaGFwZTogQnV0dG9uU2hhcGUuZmlsbCwgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBCdXR0b25TaXplLm1lZGl1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEJ1dHRvblNpemUuc21hbGwsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgaXNQYXNzd29yZElucHV0ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFzc3dvcmRCdXR0b25Db250YWluZXIsIHsgc2l6ZTogaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA/IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIDogSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBidXR0b25XaWR0aDogcGFzc3dvcmRCdG5XaWR0aCgpIH0sIGNoaWxkcmVuKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChIZWxwTGlua0NvbnRhaW5lciwgeyBpc0xhYmVsVmlzdWFsbHlIaWRkZW46IGlzTGFiZWxWaXN1YWxseUhpZGRlbiB8fCBmYWxzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgbGFiZWxQb3NpdGlvbjogbGFiZWxQb3NpdGlvbiA/PyBMYWJlbFBvc2l0aW9uLnRvcCwgdGhlbWU6IHRoZW1lIH0sIGNoaWxkcmVuKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
|
|
3996
|
+
}, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnWTZDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBDbGVhckljb24gfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyB1c2VGb3JrZWRSZWYgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvblNoYXBlLCBCdXR0b25TaXplLCBCdXR0b25UeXBlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vQnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uL0ljb25CdXR0b24nO1xyXG5pbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vTGFiZWwnO1xyXG5pbXBvcnQgeyBDaGlsZHJlbldyYXBwZXIgfSBmcm9tICcuLi9TdHlsZWRCdXR0b24nO1xyXG5leHBvcnQgdmFyIElucHV0U2l6ZTtcclxuKGZ1bmN0aW9uIChJbnB1dFNpemUpIHtcclxuICAgIElucHV0U2l6ZVtcImxhcmdlXCJdID0gXCJsYXJnZVwiO1xyXG4gICAgSW5wdXRTaXplW1wibWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcclxufSkoSW5wdXRTaXplIHx8IChJbnB1dFNpemUgPSB7fSkpO1xyXG5leHBvcnQgdmFyIElucHV0VHlwZTtcclxuKGZ1bmN0aW9uIChJbnB1dFR5cGUpIHtcclxuICAgIElucHV0VHlwZVtcImVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSW5wdXRUeXBlW1wiZmlsZVwiXSA9IFwiZmlsZVwiO1xyXG4gICAgSW5wdXRUeXBlW1wibnVtYmVyXCJdID0gXCJudW1iZXJcIjtcclxuICAgIElucHV0VHlwZVtcInBhc3N3b3JkXCJdID0gXCJwYXNzd29yZFwiO1xyXG4gICAgSW5wdXRUeXBlW1wic2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcclxuICAgIElucHV0VHlwZVtcInRleHRcIl0gPSBcInRleHRcIjtcclxuICAgIElucHV0VHlwZVtcInVybFwiXSA9IFwidXJsXCI7XHJcbiAgICBJbnB1dFR5cGVbXCJ0ZWxcIl0gPSBcInRlbFwiO1xyXG59KShJbnB1dFR5cGUgfHwgKElucHV0VHlwZSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgSW5wdXRJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoSW5wdXRJY29uUG9zaXRpb24pIHtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxuICAgIElucHV0SWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgSW5wdXRJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoSW5wdXRJY29uUG9zaXRpb24gfHwgKElucHV0SWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IGlucHV0V3JhcHBlclN0eWxlcyA9IChwcm9wcykgPT4gY3NzIGBcbiAgZmxleDogMSAxIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMud2lkdGggfHwgJ2F1dG8nfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzLnRoZW1lLmJvcmRlclJhZGl1c307XG4gIGJvcmRlcjogMXB4IHNvbGlkXG4gICAgJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC41LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw1MDB9O1xuICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDl9O1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgfVxuXG4gICR7cHJvcHMuaGFzRXJyb3IgJiZcclxuICAgIGNzcyBgXG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcjMwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmRhbmdlcn07XG4gIGB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjg1LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMzAwfTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC45LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMjAwfTtcbiAgYH1cblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBoZWlnaHQ6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9O1xuICBgfVxuYDtcclxuZnVuY3Rpb24gZ2V0SW5wdXRQYWRkaW5nKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgaXNDbGVhcmFibGUsIGljb25Qb3NpdGlvbiB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBwYWRkaW5nID0ge1xyXG4gICAgICAgIGxlZnQ6IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzLFxyXG4gICAgICAgIHJpZ2h0OiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyxcclxuICAgIH07XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnOTJweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzExO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzEwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09ICdtZWRpdW0nKSB7XHJcbiAgICAgICAgaWYgKGlzQ2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSAnNjhweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmcubGVmdCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWNvbiB0b3AsIG5vIGljb25cclxuICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5yaWdodCA9IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZztcclxufVxyXG5leHBvcnQgY29uc3QgaW5wdXRCYXNlU3R5bGVzID0gKHByb3BzKSA9PiBjc3MgYFxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwMy5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzLnRoZW1lLnR5cGVTY2FsZS5zaXplMDMubGluZUhlaWdodH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcblxuICAke3Byb3BzLmlucHV0U2l6ZSA9PT0gJ2xhcmdlJyAmJlxyXG4gICAgY3NzIGBcbiAgICBmb250LXNpemU6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMudGhlbWUudHlwZVNjYWxlLnNpemUwNC5saW5lSGVpZ2h0fTtcbiAgICBwYWRkaW5nOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA0fTtcbiAgYH1cblxuICBwYWRkaW5nLWxlZnQ6ICR7Z2V0SW5wdXRQYWRkaW5nKHByb3BzKS5sZWZ0fTtcbiAgcGFkZGluZy1yaWdodDogJHtnZXRJbnB1dFBhZGRpbmcocHJvcHMpLnJpZ2h0fTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHRyYW5zcGFyZW50aXplKDAuMywgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmW3R5cGU9J3NlYXJjaCddIHtcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJHtwcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgY3NzIGBcbiAgICBjb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHRyYW5zcGFyZW50aXplKDAuNiwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDApXHJcbiAgICAgICAgOiB0cmFuc3BhcmVudGl6ZSgwLjQsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwKX07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMClcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNTAwfTtcbiAgICAgIG9wYWNpdHk6ICR7cHJvcHMuaXNJbnZlcnNlID8gMC40IDogMC42fTtcbiAgICB9XG4gIGB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAke3Byb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH0gIWltcG9ydGFudDtcbiAgICBjYXJldC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XHJcbmNvbnN0IElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gICR7aW5wdXRXcmFwcGVyU3R5bGVzfVxuYDtcclxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQgYFxuICAke2lucHV0QmFzZVN0eWxlc31cbmA7XHJcbmNvbnN0IEljb25XcmFwcGVyID0gc3R5bGVkLnNwYW4gYFxuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgPyAnNDVweCcgOiAnaW5oZXJpdCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGVmdDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICdsZWZ0JyA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIDogJ2F1dG8nfTtcbiAgcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnXHJcbiAgICA/IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXHJcbiAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICA/ICczcHgnXHJcbiAgICAgICAgOiAnYXV0byd9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy5pY29uUG9zaXRpb24gPT09ICd0b3AnXHJcbiAgICA/ICdpbmhlcml0J1xyXG4gICAgOiBwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG5cbiAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScgJiZcclxuICAgIGNzcyBgXG4gICAgICBib3R0b206ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc2MnB4JyA6ICdpbmhlcml0J307XG4gICAgICBsZWZ0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNFxyXG4gICAgICAgIDogJ2F1dG8nfTtcbiAgICAgIHJpZ2h0OiAke3Byb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDRcclxuICAgICAgICA6IHByb3BzLmljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcclxuICAgICAgICAgICAgPyAnM3B4J1xyXG4gICAgICAgICAgICA6ICdhdXRvJ307XG4gICAgICB0b3A6ICR7cHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJ1xyXG4gICAgICAgID8gJ2luaGVyaXQnXHJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH07XG4gICAgYH1cbmA7XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlzQ2xpY2thYmxlLCBpY29uUG9zaXRpb24sIGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlzQ2xpY2thYmxlICYmIGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke3RoZW1lLmljb25TaXplcy5zbWFsbH1weGA7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLmxhcmdlfXB4YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4YDtcclxufVxyXG5mdW5jdGlvbiBnZXRIZWxwTGlua1NWR1NpemUocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaW5wdXRTaXplLCB0aGVtZSB9ID0gcHJvcHM7XHJcbiAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLm1lZGl1bX1weGA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhlbWUuaWNvblNpemVzLnNtYWxsfXB4YDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKSB7XHJcbiAgICBjb25zdCB7IGlucHV0U2l6ZSwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA3O1xyXG59XHJcbmZ1bmN0aW9uIGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpIHtcclxuICAgIGNvbnN0IHsgaXNDbGlja2FibGUsIGljb25Qb3NpdGlvbiwgaW5wdXRTaXplLCBoYXNDaGlsZHJlbiwgdGhlbWUgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHg6ICcnLCB5OiAnJyB9O1xyXG4gICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSAnLTMwcHgnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gJzJweCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gJy0yOHB4JztcclxuICAgICAgICAgICAgcG9zaXRpb24ueSA9ICc1cHgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDbGlja2FibGUpIHtcclxuICAgICAgICBpZiAoaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00M3B4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnMTRweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi54ID0gJy00OXB4JztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnOHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnB1dFNpemUgPT09IElucHV0U2l6ZS5tZWRpdW0pIHtcclxuICAgICAgICAgICAgcG9zaXRpb24ueCA9ICctMzVweCc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSAnNnB4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlKSB7XHJcbiAgICAgICAgcG9zaXRpb24ueCA9IGAtJHt0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMH1gO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLm1lZGl1bSkge1xyXG4gICAgICAgIHBvc2l0aW9uLnggPSAnLTI0cHgnO1xyXG4gICAgICAgIHBvc2l0aW9uLnkgPSAnN3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxufVxyXG5leHBvcnQgY29uc3QgSWNvbkJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAndG9wJyA/ICc0MHB4JyA6ICdpbmhlcml0Jyl9O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBnZXRJY29uQnV0dG9uVHJhbnNmb3JtKHByb3BzKS54fSxcbiAgICAke3Byb3BzID0+IGdldEljb25CdXR0b25UcmFuc2Zvcm0ocHJvcHMpLnl9XG4gICk7XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IGdldEljb25CdXR0b25TVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SWNvbkJ1dHRvblNWR1NpemUocHJvcHMpfTtcbiAgfVxuYDtcclxuY29uc3QgUGFzc3dvcmRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5zaXplID09PSBJbnB1dFNpemUubGFyZ2VcclxuICAgID8gYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gOH1weGBcclxuICAgIDogYCR7LXByb3BzLmJ1dHRvbldpZHRoIC0gNn1weGB9LFxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlID8gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKSB7XHJcbiAgICBpZiAocHJvcHMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHByb3BzLmljb24pIHtcclxuICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSAnbGFyZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc3MnB4JztcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5pbnB1dFNpemUgPT09ICdsYXJnZScpIHtcclxuICAgICAgICByZXR1cm4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzM0cHgnO1xyXG59XHJcbmNvbnN0IElzQ2xlYXJhYmxlQ29udGFpbmVyID0gc3R5bGVkLnNwYW4gYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKFxuICAgIC0ke3Byb3BzID0+IGdldENsZWFyYWJsZVBvc2l0aW9uKHByb3BzKX0sXG4gICAgJHtwcm9wcyA9PiBwcm9wcy5pbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgPyBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM1xyXG4gICAgOiAnNnB4J31cbiAgKTtcbmA7XHJcbmZ1bmN0aW9uIGdldEljb25TaXplKHNpemUsIHRoZW1lLCBpY29uUG9zaXRpb24pIHtcclxuICAgIHN3aXRjaCAoc2l6ZSkge1xyXG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcclxuICAgICAgICAgICAgaWYgKGljb25Qb3NpdGlvbiA9PT0gSW5wdXRJY29uUG9zaXRpb24udG9wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLmxhcmdlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChpY29uUG9zaXRpb24gPT09IElucHV0SWNvblBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLmljb25TaXplcy5zbWFsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhlbWUuaWNvblNpemVzLm1lZGl1bTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY29uc3QgaXNMZWZ0T3JIaWRkZW4gPSAoeyBsYWJlbFBvc2l0aW9uLCBpc0xhYmVsVmlzdWFsbHlIaWRkZW4sIH0pID0+IGxhYmVsUG9zaXRpb24gPT09IExhYmVsUG9zaXRpb24ubGVmdCB8fCBpc0xhYmVsVmlzdWFsbHlIaWRkZW47XHJcbmV4cG9ydCBjb25zdCBIZWxwTGlua0NvbnRhaW5lciA9IHN0eWxlZC5zcGFuIGBcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/ICdyZWxhdGl2ZScgOiAnYWJzb2x1dGUnKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJ2ZpdC1jb250ZW50Jyl9O1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGlzTGVmdE9ySGlkZGVuKHByb3BzKSA/IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfWAgOiAnYXV0byd9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoXG4gICAgJHtwcm9wcyA9PiBpc0xlZnRPckhpZGRlbihwcm9wcylcclxuICAgID8gJzAnXHJcbiAgICA6IGBjYWxjKC0xMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH1cbiAgKTtcbiAgJHtDaGlsZHJlbldyYXBwZXJ9ID4gc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscExpbmtTVkdTaXplKHByb3BzKX07XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gZ2V0SGVscEljb25CdXR0b25TaXplKHByb3BzKX07XG4gIH1cbiAgaW5zZXQtaW5saW5lLWVuZDogJHtwcm9wcyA9PiAoaXNMZWZ0T3JIaWRkZW4ocHJvcHMpID8gJ2F1dG8nIDogJzAnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgSW5wdXRCYXNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY29udGFpbmVyU3R5bGUsIGRlZmF1bHRWYWx1ZSwgZGlzYWJsZWQsIGhhc0NoYXJhY3RlckNvdW50ZXIsIGhhc0Vycm9yLCBpY29uLCBpY29uQXJpYUxhYmVsLCBpY29uUmVmLCBpc0NsZWFyYWJsZSwgaXNQYXNzd29yZElucHV0LCBpc1ByZWRpY3RpdmUsIG1heENvdW50LCBtYXhMZW5ndGgsIG9uQ2xlYXIsIG9uSWNvbkNsaWNrLCBvbkljb25LZXlEb3duLCBvbkRhdGVDaGFuZ2UsIGlucHV0TGVuZ3RoLCBpbnB1dFNpemUsIGlucHV0U3R5bGUsIGlucHV0V3JhcHBlclN0eWxlLCB0ZXN0SWQsIHR5cGUsIHNldFJlZmVyZW5jZSwgaXNMYWJlbFZpc3VhbGx5SGlkZGVuLCBsYWJlbFBvc2l0aW9uLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGljb25Qb3NpdGlvbiA9IGljb24gJiYgb25JY29uQ2xpY2tcclxuICAgICAgICA/IElucHV0SWNvblBvc2l0aW9uLnJpZ2h0XHJcbiAgICAgICAgOiBpY29uICYmICFwcm9wcy5pY29uUG9zaXRpb25cclxuICAgICAgICAgICAgPyBJbnB1dEljb25Qb3NpdGlvbi5sZWZ0XHJcbiAgICAgICAgICAgIDogcHJvcHMuaWNvblBvc2l0aW9uO1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgICA/IHByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgIDogcHJvcHMudmFsdWUgfHwgJycpO1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoTnVtID0gIWhhc0NoYXJhY3RlckNvdW50ZXIgJiYgbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogdW5kZWZpbmVkO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnZhbHVlXSk7XHJcbiAgICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xlYXJJbnB1dCgpIHtcclxuICAgICAgICBvbkNsZWFyICYmIHR5cGVvZiBvbkNsZWFyID09PSAnZnVuY3Rpb24nICYmIG9uQ2xlYXIoKTtcclxuICAgICAgICBzZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgb25EYXRlQ2hhbmdlICYmIHR5cGVvZiBvbkRhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZShldmVudCk7XHJcbiAgICAgICAgY29uc3QgaXNPbkRhdGVDaGFuZ2UgPSBvbkRhdGVDaGFuZ2UgJiYgdHlwZW9mIG9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJztcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgc2V0VmFsdWUoaXNPbkRhdGVDaGFuZ2UgPyB2YWx1ZSA6IChwcm9wcy52YWx1ZSA/PyB2YWx1ZSkpO1xyXG4gICAgICAgIGlmIChpc09uRGF0ZUNoYW5nZSAmJiAhdmFsdWUpIHtcclxuICAgICAgICAgICAgb25EYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkQnRuV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnRuV2lkdGggPSBjaGlsZHJlbj8ucHJvcHM/LmNoaWxkcmVuPy5bMF0/LnJlZj8uY3VycmVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBidG5XaWR0aCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0bldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gV2hlbiBQYXNzd29yZEJ1dHRvbiBpcyB1c2VkIGluc2lkZSBTY2hlbWFSZW5kZXJlciwgaXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLlxyXG4gICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIGRlZmF1bHQgYnV0dG9uIHNpemVzLlxyXG4gICAgICAgICAgICBpZiAocHJvcHMuaW5wdXRTaXplID09PSBJbnB1dFNpemUubGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gNTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogc2V0UmVmZXJlbmNlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dENvbnRhaW5lciwgeyBzdHlsZTogaW5wdXRXcmFwcGVyU3R5bGUsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkfS13cmFwcGVyYCB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0V3JhcHBlciwgeyBkaXNhYmxlZDogZGlzYWJsZWQsIGljb25Qb3NpdGlvbjogaWNvblBvc2l0aW9uLCBpc0ludmVyc2U6IHByb3BzLmlzSW52ZXJzZSwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgdGhlbWU6IHRoZW1lLCBzdHlsZTogY29udGFpbmVyU3R5bGUsIGhhc0Vycm9yOiBoYXNFcnJvciwgaXNDbGVhcmFibGU6IGlzQ2xlYXJhYmxlLCB3aWR0aDogcHJvcHMud2lkdGggfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSW5wdXQsIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1pbnZhbGlkXCI6IGhhc0Vycm9yLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBoYXNDaGFyYWN0ZXJDb3VudGVyOiBoYXNDaGFyYWN0ZXJDb3VudGVyLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNDbGVhcmFibGU6IHR5cGUgPT09IElucHV0VHlwZS5zZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0V3JhcHBlclN0eWxlPy53aWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpc0NsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0NsZWFyYWJsZSAmJiBpbnB1dExlbmd0aCA+IDAsIGlzSW52ZXJzZTogdXNlSXNJbnZlcnNlKHByb3BzLmlzSW52ZXJzZSksIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCBoYXNFcnJvcjogaGFzRXJyb3IsIHJlZjogcmVmLCBtYXhMZW5ndGg6IG1heExlbmd0aE51bSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgc3R5bGU6IGlucHV0U3R5bGUsIHRoZW1lOiB0aGVtZSwgdHlwZTogdHlwZSA/IHR5cGUgOiBJbnB1dFR5cGUudGV4dCwgdmFsdWU6IHZhbHVlIH0pKSxcclxuICAgICAgICAgICAgICAgIGljb24gJiYgIW9uSWNvbkNsaWNrICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IFwiYXJpYS1sYWJlbFwiOiBpY29uQXJpYUxhYmVsLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPz8gSW5wdXRTaXplLm1lZGl1bSwgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsIGlzUHJlZGljdGl2ZTogaXNQcmVkaWN0aXZlLCB0aGVtZTogdGhlbWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBSZWFjdC5DaGlsZHJlbi5vbmx5KFJlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZ2V0SWNvblNpemUoaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lLCBpY29uUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgfSkpKSkpLFxyXG4gICAgICAgICAgICBpc0NsZWFyYWJsZSAmJiB2YWx1ZSAhPT0gJycgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSXNDbGVhcmFibGVDb250YWluZXIsIHsgdGhlbWU6IHRoZW1lLCBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUsIGljb246IGljb24gfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBcImFyaWEtbGFiZWxcIjogaTE4bi5pbnB1dC5pc0NsZWFyYWJsZUFyaWFMYWJlbCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbiwgbnVsbCksIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVDbGVhcklucHV0LCBvbktleURvd246IG9uSWNvbktleURvd24sIHJlZjogaWNvblJlZiwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0ZXN0SWQ6IFwiY2xlYXItYnV0dG9uXCIsIHR5cGU6IEJ1dHRvblR5cGUuYnV0dG9uLCB2YXJpYW50OiBCdXR0b25WYXJpYW50LmxpbmsgfSkpKSxcclxuICAgICAgICAgICAgb25JY29uQ2xpY2sgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbkNvbnRhaW5lciwgeyBpY29uUG9zaXRpb246IGljb25Qb3NpdGlvbiwgaW5wdXRTaXplOiBpbnB1dFNpemUgPT09IElucHV0U2l6ZS5sYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBJbnB1dFNpemUubWVkaXVtLCB0aGVtZTogdGhlbWUsIGlzQ2xpY2thYmxlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGljb25BcmlhTGFiZWwsIGljb246IGljb24sIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLCBvbkNsaWNrOiBvbkljb25DbGljaywgb25LZXlEb3duOiBvbkljb25LZXlEb3duLCByZWY6IGljb25SZWYsIGRpc2FibGVkOiBkaXNhYmxlZCwgc2hhcGU6IEJ1dHRvblNoYXBlLmZpbGwsIHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gQnV0dG9uU2l6ZS5tZWRpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBCdXR0b25TaXplLnNtYWxsLCB0eXBlOiBCdXR0b25UeXBlLmJ1dHRvbiwgdmFyaWFudDogQnV0dG9uVmFyaWFudC5saW5rIH0pKSksXHJcbiAgICAgICAgICAgIGlzUGFzc3dvcmRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFBhc3N3b3JkQnV0dG9uQ29udGFpbmVyLCB7IHNpemU6IGlucHV0U2l6ZSA9PT0gSW5wdXRTaXplLmxhcmdlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBJbnB1dFNpemUubGFyZ2VcclxuICAgICAgICAgICAgICAgICAgICA6IElucHV0U2l6ZS5tZWRpdW0sIHRoZW1lOiB0aGVtZSwgYnV0dG9uV2lkdGg6IHBhc3N3b3JkQnRuV2lkdGgoKSB9LCBjaGlsZHJlbikpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVscExpbmtDb250YWluZXIsIHsgaXNMYWJlbFZpc3VhbGx5SGlkZGVuOiBpc0xhYmVsVmlzdWFsbHlIaWRkZW4gfHwgZmFsc2UsIGlucHV0U2l6ZTogaW5wdXRTaXplID8/IElucHV0U2l6ZS5tZWRpdW0sIGxhYmVsUG9zaXRpb246IGxhYmVsUG9zaXRpb24gPz8gTGFiZWxQb3NpdGlvbi50b3AsIHRoZW1lOiB0aGVtZSB9LCBjaGlsZHJlbikpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl19 */"));
|
|
3997
3997
|
var InputBase = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
3998
3998
|
var children = props.children,
|
|
3999
3999
|
containerStyle = props.containerStyle,
|
|
@@ -4042,9 +4042,14 @@ var InputBase = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
4042
4042
|
inputRef.current.focus();
|
|
4043
4043
|
}
|
|
4044
4044
|
function handleChange(event) {
|
|
4045
|
+
var _props$value;
|
|
4045
4046
|
props.onChange && typeof props.onChange === 'function' && props.onChange(event);
|
|
4046
|
-
|
|
4047
|
-
|
|
4047
|
+
var isOnDateChange = onDateChange && typeof onDateChange === 'function';
|
|
4048
|
+
var value = event.target.value;
|
|
4049
|
+
setValue(isOnDateChange ? value : (_props$value = props.value) != null ? _props$value : value);
|
|
4050
|
+
if (isOnDateChange && !value) {
|
|
4051
|
+
onDateChange(null);
|
|
4052
|
+
}
|
|
4048
4053
|
}
|
|
4049
4054
|
var passwordBtnWidth = function passwordBtnWidth() {
|
|
4050
4055
|
var _children$props;
|