@ultraviolet/ui 2.0.0-beta.6 → 2.0.0-beta.8
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/components/Popup/index.cjs +4 -3
- package/dist/components/Popup/index.d.ts +4 -0
- package/dist/components/Popup/index.js +5 -4
- package/dist/components/SelectInputV2/SearchBarDropdown.cjs +16 -8
- package/dist/components/SelectInputV2/SearchBarDropdown.d.ts +3 -1
- package/dist/components/SelectInputV2/SearchBarDropdown.js +17 -9
- package/dist/components/SelectInputV2/SelectBar.cjs +158 -62
- package/dist/components/SelectInputV2/SelectBar.d.ts +4 -20
- package/dist/components/SelectInputV2/SelectBar.js +155 -59
- package/dist/components/SelectInputV2/types.cjs +0 -5
- package/dist/components/SelectInputV2/types.d.ts +0 -4
- package/dist/components/SelectInputV2/types.js +1 -6
- package/dist/utils/searchAlgorithm.cjs +30 -0
- package/dist/utils/searchAlgorithm.d.ts +12 -0
- package/dist/utils/searchAlgorithm.js +30 -0
- package/package.json +2 -2
|
@@ -48,7 +48,7 @@ const StyledPopup = /* @__PURE__ */ _styled__default.default("div", process.env.
|
|
|
48
48
|
positions,
|
|
49
49
|
reverseAnimation,
|
|
50
50
|
animationDuration
|
|
51
|
-
}) => /* @__PURE__ */ react.css(animationDuration, "ms ", !reverseAnimation ? animations.animation(positions) : animations.exitAnimation(positions), " forwards;" + (process.env.NODE_ENV === "production" ? "" : ";label:StyledPopup;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RjRFIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG4gIGNvbXB1dGVQb3NpdGlvbnMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmNvbnN0IFN0eWxlZENoaWxkcmVuQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogaW5oZXJpdDtcblxuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC1oZWlnaHQ9XCJ0cnVlXCJdIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9XCJ0cnVlXCJdIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuYFxuXG50eXBlIFBvcHVwUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBJZCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBpZiBub3Qgc2V0LiBJdCBpcyB1c2VkIGZvciBhc3NvY2lhdGluZyBwb3B1cCB3cmFwcGVyIHdpdGggcG9wdXAgcG9ydGFsLlxuICAgKi9cbiAgaWQ/OiBzdHJpbmdcbiAgY2hpbGRyZW46XG4gICAgfCBSZWFjdE5vZGVcbiAgICB8ICgocmVuZGVyUHJvcHM6IHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICAgICAgIG9uQmx1cjogKCkgPT4gdm9pZFxuICAgICAgICBvbkZvY3VzOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uUG9pbnRlckVudGVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uUG9pbnRlckxlYXZlOiAoKSA9PiB2b2lkXG4gICAgICAgIHJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgICAgIH0pID0+IFJlYWN0Tm9kZSlcbiAgbWF4V2lkdGg/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqXG4gICAqIGBhdXRvYCBwbGFjZW1lbnQgd2lsbCBjaGFuZ2UgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3B1cCBpZiBpdCBkb2Vzbid0IGZpdCBpbiB0aGUgdmlld3BvcnQuXG4gICAqL1xuICBwbGFjZW1lbnQ/OiBQb3B1cFBsYWNlbWVudFxuICAvKipcbiAgICogQWxpZ24gdGhlIHBvcHVwIHRvIHRoZSBzdGFydCBvciBjZW50ZXIgb2YgdGhlIGNoaWxkcmVuLlxuICAgKi9cbiAgYWxpZ24/OiBQb3B1cEFsaWduXG4gIC8qKlxuICAgKiBDb250ZW50IG9mIHRoZSBwb3B1cCwgcHJlZmVyYWJseSB0ZXh0IGluc2lkZS5cbiAgICovXG4gIHRleHQ/OiBSZWFjdE5vZGVcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCB3aWxsIGFkZCBgd2lkdGg6IDEwMCVgIHRvIHRoZSBwb3B1cCBjb250YWluZXIuXG4gICAqL1xuICBjb250YWluZXJGdWxsV2lkdGg/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGFkZCBgaGVpZ2h0OiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbEhlaWdodD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEl0IHdpbGwgZm9yY2UgZGlzcGxheSBwb3B1cC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGFsd2F5cyBkaXNwbGF5IHRoZSBwb3B1cCB3aXRob3V0IGhvdmVyIG5lZWRlZC5cbiAgICovXG4gIHZpc2libGU/OiBib29sZWFuXG4gIGlubmVyUmVmPzogUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgcm9sZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIGhhc0Fycm93PzogYm9vbGVhblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICB0YWJJbmRleD86IG51bWJlclxuICBvbktleURvd24/OiBLZXlib2FyZEV2ZW50SGFuZGxlclxuICAnYXJpYS1oYXNwb3B1cCc/OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5bJ2FyaWEtaGFzcG9wdXAnXVxuICBoaWRlT25DbGlja091dHNpZGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGRlYm91bmNlVGltZSB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgbm90IGRlYm91bmNlIHRoZSBob3ZlciBldmVudCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGFudGx5LlxuICAgKiBJZiBzZXQgdG8gMCBpdCB3aWxsIGRpc2FibGUgZGVib3VuY2UuXG4gICAqL1xuICBkZWJvdW5jZURlbGF5PzogbnVtYmVyXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGEgbWF4IGhlaWdodCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgYW5pbWF0aW9uIGlzIGRpc2FibGVkLCBvciBpdCB3aWxsIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNvbWUgYnJvd3NlcnMuXG4gICAqL1xuICBtYXhIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqXG4gICAqIFdpbGwgcmVtb3ZlIHRoZSBhbmltYXRpb24gb24gdGhlIHBvcHVwIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGRpc2FibGVBbmltYXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcG9ydGFsIHRhcmdldCBpcyBjaGlsZHJlbiBjb250YWluZXIgb3IgZG9jdW1lbnQuYm9keSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgc2V0dGluZyBhIHBvcnRhbFRhcmdldCBwcm9wLlxuICAgKi9cbiAgcG9ydGFsVGFyZ2V0PzogSFRNTEVsZW1lbnRcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byB0cnVlLCB0aGUgcG9wdXAgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgRE9NIG9ubHkgd2hlbiBpdCBpcyB2aXNpYmxlLlxuICAgKiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkIGluIHRoZSBET00uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYHRydWVgLCBpZiBmb3Igc29tZVxuICAgKiByZWFzb24geW91IG5lZWQgdG8gZGlzYWJsZSBpdCwgeW91IGNhbiBzZXQgaXQgdG8gYGZhbHNlYC5cbiAgICovXG4gIGR5bmFtaWNEb21SZW5kZXJpbmc/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdGV4dCA9ICcnLFxuICAgICAgcGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgY29udGFpbmVyRnVsbEhlaWdodCxcbiAgICAgIG1heFdpZHRoID0gJzE0LjVyZW0nLFxuICAgICAgbWF4SGVpZ2h0LFxuICAgICAgdmlzaWJsZSxcbiAgICAgIGlubmVyUmVmLFxuICAgICAgcm9sZSA9ICdwb3B1cCcsXG4gICAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICAgICAgaGFzQXJyb3cgPSB0cnVlLFxuICAgICAgb25DbG9zZSxcbiAgICAgIHRhYkluZGV4ID0gMCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgICdhcmlhLWhhc3BvcHVwJzogYXJpYUhhc1BvcHVwLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlID0gZmFsc2UsXG4gICAgICBkZWJvdW5jZURlbGF5ID0gREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTixcbiAgICAgIGRpc2FibGVBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHBvcnRhbFRhcmdldCxcbiAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmcgPSB0cnVlLFxuICAgIH06IFBvcHVwUHJvcHMsXG4gICAgcmVmOiBSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICApID0+IHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGlubmVyUmVmLCAoKSA9PiBjaGlsZHJlblJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50KVxuXG4gICAgY29uc3QgaW5uZXJQb3B1cFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaW5uZXJQb3B1cFJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50KVxuXG4gICAgY29uc3QgdGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KHVuZGVmaW5lZClcbiAgICBjb25zdCBwb3B1cFBvcnRhbFRhcmdldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHBvcnRhbFRhcmdldCkgcmV0dXJuIHBvcnRhbFRhcmdldFxuXG4gICAgICBpZiAocm9sZSA9PT0gJ2RpYWxvZycpIHtcbiAgICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQpIHJldHVybiBjaGlsZHJlblJlZi5jdXJyZW50XG4gICAgICAgIGlmIChpc0NsaWVudFNpZGUpIHJldHVybiBkb2N1bWVudC5ib2R5XG5cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgLy8gV2UgY2hlY2sgaWYgd2luZG93IGV4aXN0cyBmb3IgU1NSXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmJvZHlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbcG9ydGFsVGFyZ2V0LCByb2xlLCBjaGlsZHJlblJlZi5jdXJyZW50XSlcblxuICAgIC8vIFRoZXJlIGFyZSBzb21lIGlzc3VlIHdoZW4gbWl4aW5nIGFuaW1hdGlvbiBhbmQgbWF4SGVpZ2h0IG9uIHNvbWUgYnJvd3NlcnMsIHNvIHdlIGRpc2FibGUgYW5pbWF0aW9uIGlmIG1heEhlaWdodCBpcyBzZXQuXG4gICAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPVxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiB8fCBtYXhIZWlnaHQgPyAwIDogREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT05cblxuICAgIC8vIERlYm91bmNlIHRpbWVyIHdpbGwgYmUgdXNlZCB0byBwcmV2ZW50IHRoZSBwb3B1cCBmcm9tIGZsaWNrZXJpbmcgd2hlbiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2Ugb3V0IGFuZCBpbiB0aGUgY2hpbGRyZW4gZWxlbWVudC5cbiAgICBjb25zdCBkZWJvdW5jZVRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgW3Zpc2libGVJbkRvbSwgc2V0VmlzaWJsZUluRG9tXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtyZXZlcnNlQW5pbWF0aW9uLCBzZXRSZXZlcnNlQW5pbWF0aW9uXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtwb3NpdGlvbnMsIHNldFBvc2l0aW9uc10gPSB1c2VTdGF0ZTxQb3NpdGlvbnNUeXBlPih7XG4gICAgICAuLi5ERUZBVUxUX1BPU0lUSU9OUyxcbiAgICB9KVxuICAgIGNvbnN0IHVuaXF1ZUlkID0gdXNlSWQoKVxuICAgIGNvbnN0IGdlbmVyYXRlZElkID0gaWQgPz8gdW5pcXVlSWRcbiAgICBjb25zdCBpc0NvbnRyb2xsZWQgPSB2aXNpYmxlICE9PSB1bmRlZmluZWRcblxuICAgIGNvbnN0IGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgc2V0UG9zaXRpb25zKFxuICAgICAgICAgIGNvbXB1dGVQb3NpdGlvbnMoe1xuICAgICAgICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICBwb3B1cFJlZjogaW5uZXJQb3B1cFJlZixcbiAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0OiBwb3B1cFBvcnRhbFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIGhhc0Fycm93LFxuICAgICAgICAgICAgYWxpZ24sXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9LCBbaGFzQXJyb3csIHBsYWNlbWVudCwgcG9wdXBQb3J0YWxUYXJnZXQsIGFsaWduXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZWNvbXB1dGUgcG9zaXRpb25zIG9mIHBvcHVwIGR1ZSB0byB3aW5kb3cgc2Nyb2xsIG9yIHJlc2l6ZS5cbiAgICAgKi9cbiAgICBjb25zdCBvbldpbmRvd0NoYW5nZURldGVjdGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgLy8gV2UgcmVtb3ZlIGFuaW1hdGlvbiBvbiBzY3JvbGwgb3IgdGhlIGFuaW1hdGlvbiB3aWxsIHJlc3RhcnQgb24gZXZlcnkgc2Nyb2xsXG4gICAgICBpZiAoaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5hbmltYXRpb24gPSAnbm9uZSdcbiAgICAgIH1cblxuICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucygpXG4gICAgfSwgW2dlbmVyYXRlUG9wdXBQb3NpdGlvbnMsIGlubmVyUG9wdXBSZWZdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlbW92ZSBwb3B1cCBwb3J0YWwgZnJvbSBET00gYW5kIHJlbW92ZSBldmVudCBsaXN0ZW5lciB0byBpdC5cbiAgICAgKi9cbiAgICBjb25zdCB1bm1vdW50UG9wdXBGcm9tRG9tID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0VmlzaWJsZUluRG9tKGZhbHNlKVxuICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcblxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgfSwgW29uV2luZG93Q2hhbmdlRGV0ZWN0ZWRdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIGhpZGUgcG9wdXAuIEEgdGltZW91dCBpcyBzZXQgdG8gYWxsb3cgYW5pbWF0aW9uIGVuZCwgdGhlbiByZW1vdmVcbiAgICAgKiBwb3B1cCBmcm9tIGRvbS5cbiAgICAgKi9cbiAgICBjb25zdCBjbG9zZVBvcHVwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgY2xvc2VGdW5jdGlvbiA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFkaXNhYmxlQW5pbWF0aW9uKSB7XG4gICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbih0cnVlKVxuXG4gICAgICAgICAgdGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICAgIH0sIGFuaW1hdGlvbkR1cmF0aW9uKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFkaXNhYmxlQW5pbWF0aW9uKSB7XG4gICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgY2xvc2VGdW5jdGlvbigpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZWJvdW5jZURlbGF5ICYmICFkaXNhYmxlQW5pbWF0aW9uID8gZGVib3VuY2VEZWxheSA6IDAsXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbixcbiAgICAgIGRlYm91bmNlRGVsYXksXG4gICAgICBvbkNsb3NlLFxuICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogV2hlbiBtb3VzZSBob3ZlciBvciBzdG9wIGhvdmVyaW5nIGNoaWxkcmVuIHRoaXMgZnVuY3Rpb24gZGlzcGxheSBvciBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvblxuICAgICAqIGVuZCwgdGhlbiByZW1vdmUgcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3Qgb25Qb2ludGVyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpc1Zpc2libGU6IGJvb2xlYW4pID0+ICgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBkZWJvdW5jZURlbGF5IGFuZCB0aGUgcG9wdXAgaXMgbm90IHZpc2libGUsIHdlIGNsZWFyIHRoZSBkZWJvdW5jZSB0aW1lclxuICAgICAgICBpZiAoIXZpc2libGUgJiYgZGVib3VuY2VEZWxheSA+IDAgJiYgZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gdW5tb3VudCB0aGUgcG9wdXBcbiAgICAgICAgLy8gVGhlcmUgaXMgZGVib3VuY2UgaW4gb3JkZXIgdG8gYXZvaWQgcG9wdXAgdG8gZmxpY2tlciB3aGVuIHdlIG1vdmUgdGhlIG1vdXNlIGZyb20gY2hpbGRyZW4gdG8gcG9wdXBcbiAgICAgICAgLy8gVGltZXIgaXMgdXNlZCB0byBmb2xsb3cgdGhlIGFuaW1hdGlvbiBkdXJhdGlvblxuICAgICAgICBpZiAoIWlzVmlzaWJsZSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgJiYgIWRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9IGVsc2UgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gbW91bnQgdGhlIHBvcHVwXG4gICAgICAgICAgLy8gSWYgdGhlIHRpbWVyIGV4aXN0cyBpdCBtZWFucyB0aGUgcG9wdXAgd2FzIGFib3V0IHRvIHVtb3VudCwgYnV0IHdlIGhvdmVyZWQgdGhlIGNoaWxkcmVuIGFnYWluLFxuICAgICAgICAgIC8vIHNvIHdlIGNsZWFyIHRoZSB0aW1lciBhbmQgdGhlIHBvcHVwIHdpbGwgbm90IGJlIHVubW91bnRlZFxuICAgICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFuZCBoZXJlIGlzIHdoZW4gd2UgY3VycmVudGx5IGFyZSBpbiBhIGRlYm91bmNlIHRpbWVyLCBpdCBtZWFucyBwb3B1cCB3YXMgaG92ZXJlZCBkdXJpbmdcbiAgICAgICAgICAvLyB0aGF0IHBlcmlvZCwgYW5kIHNvIHdlIGNhbiBjbGVhciBkZWJvdW5jZSB0aW1lclxuICAgICAgICAgIGlmIChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlYm91bmNlRGVsYXkgPiAwKSB7XG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9LCBkZWJvdW5jZURlbGF5KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2Nsb3NlUG9wdXAsIGRlYm91bmNlRGVsYXksIHZpc2libGVdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIE9uY2UgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tIHdlIGNhbiBjb21wdXRlIHBvc2l0aW9ucywgdGhlbiBzZXQgaXQgdmlzaWJsZSBvbiBzY3JlZW4gYW5kIGFkZCBldmVudCB0b1xuICAgICAqIHJlY29tcHV0ZSBwb3NpdGlvbnMgb24gc2Nyb2xsIG9yIHNjcmVlbiByZXNpemUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucygpXG5cbiAgICAgICAgaWYgKHBvcHVwUG9ydGFsVGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgLy8gV2Ugd2FudCB0byBkZXRlY3Qgc2Nyb2xsIGFuZCByZXNpemUgaW4gb3JkZXIgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cFxuICAgICAgICAgIC8vIEFkZGluZyB0cnVlIGFzIHRoaXJkIHBhcmFtZXRlciB0byBldmVudCBsaXN0ZW5lciB3aWxsIGRldGVjdCBuZXN0ZWQgc2Nyb2xscy5cbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMsXG4gICAgICBvbldpbmRvd0NoYW5nZURldGVjdGVkLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgbWF4V2lkdGgsXG4gICAgICBwb3B1cFBvcnRhbFRhcmdldCxcbiAgICBdKVxuXG4gICAgLy8gVGhpcyB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHBvc2l0aW9ucyBhcmUgY29tcHV0ZWQgYW5kIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbS5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFtwb3NpdGlvbnNdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIElmIHBvcHVwIGhhcyBgdmlzaWJsZWAgcHJvcCBpdCBtZWFucyB0aGUgcG9wdXAgaXMgbWFudWFsbHkgY29udHJvbGxlZCB0aHJvdWdoIHRoaXMgcHJvcC5cbiAgICAgKiBJbiB0aGlzIGNhcyB3ZSBkb24ndCB3YW50IHRvIGRpc3BsYXkgcG9wdXAgb24gaG92ZXIsIGJ1dCBvbmx5IHdoZW4gYHZpc2libGVgIGlzIHRydWUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgb25Qb2ludGVyRXZlbnQodmlzaWJsZSkoKVxuICAgICAgfVxuICAgIH0sIFtpc0NvbnRyb2xsZWQsIG9uUG9pbnRlckV2ZW50LCB2aXNpYmxlXSlcblxuICAgIC8vIEhhbmRsZSBoaWRlIG9uIGVzYyBwcmVzcyBhbmQgaGlkZSBvbiBjbGljayBvdXRzaWRlXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZUVzY1ByZXNzID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHBvcHVwQ3VycmVudCA9IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICBjb25zdCBjaGlsZHJlbkN1cnJlbnQgPSBjaGlsZHJlblJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKHBvcHVwQ3VycmVudCAmJiBoaWRlT25DbGlja091dHNpZGUgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gcG9wdXBDdXJyZW50ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IGNoaWxkcmVuQ3VycmVudCAmJlxuICAgICAgICAgICAgIWNoaWxkcmVuQ3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9wdXBDdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBjbG9zZVBvcHVwLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgaW5uZXJQb3B1cFJlZixcbiAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGV2ZW50IHdpbGwgb2NjdXIgb25seSBmb3IgZGlhbG9nIGFuZCB3aWxsIHRyYXAgZm9jdXMgaW5zaWRlIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlRm9jdXNUcmFwOiBLZXlib2FyZEV2ZW50SGFuZGxlciA9IHVzZUNhbGxiYWNrKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGlzVGFiUHJlc3NlZCA9IGV2ZW50LmtleSA9PT0gJ1RhYidcbiAgICAgIGlmICghaXNUYWJQcmVzc2VkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgICAgY29uc3QgZm9jdXNhYmxlRWxzID1cbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICdhW2hyZWZdOm5vdChbZGlzYWJsZWRdKSwgYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknLFxuICAgICAgICApID8/IFtdXG5cbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbm8gaW50ZXJhY3RpdmUgZWxlbWVudCBhcmUgd2l0aGluIHRoZSBtb2RhbCAoaW5jbHVkaW5nIGNsb3NlIGljb24pXG4gICAgICBpZiAoZm9jdXNhYmxlRWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbMF0gYXMgSFRNTEVsZW1lbnRcbiAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1tcbiAgICAgICAgZm9jdXNhYmxlRWxzLmxlbmd0aCAtIDFcbiAgICAgIF0gYXMgSFRNTEVsZW1lbnRcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgZmlyc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cbiAgICB9LCBbXSlcblxuICAgIC8qKlxuICAgICAqIFdpbGwgcmVuZGVyIGNoaWxkcmVuIGNvbmRpdGlvbmFsbHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbiBvciBub3QuXG4gICAgICovXG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbih7XG4gICAgICAgICAgb25CbHVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICBvbkZvY3VzOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckVudGVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICByZWY6IGNoaWxkcmVuUmVmLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkQ2hpbGRyZW5Db250YWluZXJcbiAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBvbkJsdXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIG9uRm9jdXM9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIHJlZj17Y2hpbGRyZW5SZWZ9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgb25LZXlEb3duPy4oZXZlbnQpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPXtjb250YWluZXJGdWxsV2lkdGh9XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC1oZWlnaHQ9e2NvbnRhaW5lckZ1bGxIZWlnaHR9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD17YXJpYUhhc1BvcHVwfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZENoaWxkcmVuQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFyaWFIYXNQb3B1cCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgY29udGFpbmVyRnVsbEhlaWdodCxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGdlbmVyYXRlZElkLFxuICAgICAgaXNDb250cm9sbGVkLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgb25Qb2ludGVyRXZlbnQsXG4gICAgICB0YWJJbmRleCxcbiAgICBdKVxuXG4gICAgY29uc3Qgc2hvdWxkUmVuZGVyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWR5bmFtaWNEb21SZW5kZXJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGR5bmFtaWNEb21SZW5kZXJpbmcgJiYgdmlzaWJsZUluRG9tKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkeW5hbWljRG9tUmVuZGVyaW5nLCB2aXNpYmxlSW5Eb21dKVxuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjaGlsZHJlblxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7cmVuZGVyQ2hpbGRyZW4oKX1cbiAgICAgICAge3Nob3VsZFJlbmRlclxuICAgICAgICAgID8gY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgICA8U3R5bGVkUG9wdXBcbiAgICAgICAgICAgICAgICByZWY9e2lubmVyUG9wdXBSZWZ9XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zPXtwb3NpdGlvbnN9XG4gICAgICAgICAgICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgICAgICAgIHJvbGU9e3JvbGV9XG4gICAgICAgICAgICAgICAgaWQ9e2dlbmVyYXRlZElkfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgIHJldmVyc2VBbmltYXRpb249e3JldmVyc2VBbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgICAgICAgZGF0YS1oYXMtYXJyb3c9e2hhc0Fycm93fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3N0b3BDbGlja1Byb3BhZ2F0aW9ufVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17YW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXtyb2xlID09PSAnZGlhbG9nJyA/IGhhbmRsZUZvY3VzVHJhcCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICBpc0RpYWxvZz17cm9sZSA9PT0gJ2RpYWxvZyd9XG4gICAgICAgICAgICAgICAgZGF0YS12aXNpYmxlLWluLWRvbT17XG4gICAgICAgICAgICAgICAgICAhZHluYW1pY0RvbVJlbmRlcmluZyA/IHZpc2libGVJbkRvbSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkYXRhLWFuaW1hdGVkPXthbmltYXRpb25EdXJhdGlvbiA+IDAgJiYgIW1heEhlaWdodH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0ZXh0fVxuICAgICAgICAgICAgICA8L1N0eWxlZFBvcHVwPixcbiAgICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBudWxsfVxuICAgICAgPC8+XG4gICAgKVxuICB9LFxuKVxuIl19 */"), ';}&[data-has-arrow="true"]{&::after{content:" ";position:absolute;top:', ({
|
|
51
|
+
}) => /* @__PURE__ */ react.css(animationDuration, "ms ", !reverseAnimation ? animations.animation(positions) : animations.exitAnimation(positions), " forwards;" + (process.env.NODE_ENV === "production" ? "" : ";label:StyledPopup;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RjRFIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG4gIGNvbXB1dGVQb3NpdGlvbnMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlsZHJlbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGluaGVyaXQ7XG5cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PVwidHJ1ZVwiXSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJltkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPVwidHJ1ZVwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICB9KSA9PiBSZWFjdE5vZGUpXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKlxuICAgKiBgYXV0b2AgcGxhY2VtZW50IHdpbGwgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wdXAgaWYgaXQgZG9lc24ndCBmaXQgaW4gdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcGxhY2VtZW50PzogUG9wdXBQbGFjZW1lbnRcbiAgLyoqXG4gICAqIEFsaWduIHRoZSBwb3B1cCB0byB0aGUgc3RhcnQgb3IgY2VudGVyIG9mIHRoZSBjaGlsZHJlbi5cbiAgICovXG4gIGFsaWduPzogUG9wdXBBbGlnblxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYGhlaWdodDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxIZWlnaHQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBtYXhXaWR0aCA9ICcxNC41cmVtJyxcbiAgICAgIG1heEhlaWdodCxcbiAgICAgIHZpc2libGUsXG4gICAgICBpbm5lclJlZixcbiAgICAgIHJvbGUgPSAncG9wdXAnLFxuICAgICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB0YWJJbmRleCA9IDAsXG4gICAgICBvbktleURvd24sXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFIYXNQb3B1cCxcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSA9IGZhbHNlLFxuICAgICAgZGVib3VuY2VEZWxheSA9IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2UsXG4gICAgICBwb3J0YWxUYXJnZXQsXG4gICAgICBkeW5hbWljRG9tUmVuZGVyaW5nID0gdHJ1ZSxcbiAgICB9OiBQb3B1cFByb3BzLFxuICAgIHJlZjogUmVmPEhUTUxEaXZFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgKCkgPT4gY2hpbGRyZW5SZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IGlubmVyUG9wdXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUG9wdXBSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IHRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgcG9wdXBQb3J0YWxUYXJnZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxUYXJnZXQpIHJldHVybiBwb3J0YWxUYXJnZXRcblxuICAgICAgaWYgKHJvbGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50KSByZXR1cm4gY2hpbGRyZW5SZWYuY3VycmVudFxuICAgICAgICBpZiAoaXNDbGllbnRTaWRlKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgICAgcG9wdXBSZWY6IGlubmVyUG9wdXBSZWYsXG4gICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldDogcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICBoYXNBcnJvdyxcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW2hhc0Fycm93LCBwbGFjZW1lbnQsIHBvcHVwUG9ydGFsVGFyZ2V0LCBhbGlnbl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsb3NlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24odHJ1ZSlcblxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgICAgIGRpc2FibGVBbmltYXRpb24sXG4gICAgICBkZWJvdW5jZURlbGF5LFxuICAgICAgb25DbG9zZSxcbiAgICAgIHVubW91bnRQb3B1cEZyb21Eb20sXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFdoZW4gbW91c2UgaG92ZXIgb3Igc3RvcCBob3ZlcmluZyBjaGlsZHJlbiB0aGlzIGZ1bmN0aW9uIGRpc3BsYXkgb3IgaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb25cbiAgICAgKiBlbmQsIHRoZW4gcmVtb3ZlIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IG9uUG9pbnRlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgZGVib3VuY2VEZWxheSBhbmQgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCB3ZSBjbGVhciB0aGUgZGVib3VuY2UgdGltZXJcbiAgICAgICAgaWYgKCF2aXNpYmxlICYmIGRlYm91bmNlRGVsYXkgPiAwICYmIGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIHVubW91bnQgdGhlIHBvcHVwXG4gICAgICAgIC8vIFRoZXJlIGlzIGRlYm91bmNlIGluIG9yZGVyIHRvIGF2b2lkIHBvcHVwIHRvIGZsaWNrZXIgd2hlbiB3ZSBtb3ZlIHRoZSBtb3VzZSBmcm9tIGNoaWxkcmVuIHRvIHBvcHVwXG4gICAgICAgIC8vIFRpbWVyIGlzIHVzZWQgdG8gZm9sbG93IHRoZSBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50ICYmICFkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIG1vdW50IHRoZSBwb3B1cFxuICAgICAgICAgIC8vIElmIHRoZSB0aW1lciBleGlzdHMgaXQgbWVhbnMgdGhlIHBvcHVwIHdhcyBhYm91dCB0byB1bW91bnQsIGJ1dCB3ZSBob3ZlcmVkIHRoZSBjaGlsZHJlbiBhZ2FpbixcbiAgICAgICAgICAvLyBzbyB3ZSBjbGVhciB0aGUgdGltZXIgYW5kIHRoZSBwb3B1cCB3aWxsIG5vdCBiZSB1bm1vdW50ZWRcbiAgICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBbmQgaGVyZSBpcyB3aGVuIHdlIGN1cnJlbnRseSBhcmUgaW4gYSBkZWJvdW5jZSB0aW1lciwgaXQgbWVhbnMgcG9wdXAgd2FzIGhvdmVyZWQgZHVyaW5nXG4gICAgICAgICAgLy8gdGhhdCBwZXJpb2QsIGFuZCBzbyB3ZSBjYW4gY2xlYXIgZGVib3VuY2UgdGltZXJcbiAgICAgICAgICBpZiAoZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWJvdW5jZURlbGF5ID4gMCkge1xuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSwgZGVib3VuY2VEZWxheSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodmlzaWJsZUluRG9tICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbcG9zaXRpb25zXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgb25CbHVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICBvbkZvY3VzPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgIG9uS2V5RG93bj8uKGV2ZW50KVxuICAgICAgICAgIH19XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC13aWR0aD17Y29udGFpbmVyRnVsbFdpZHRofVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PXtjb250YWluZXJGdWxsSGVpZ2h0fVxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9e2FyaWFIYXNQb3B1cH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YS1hbmltYXRlZD17YW5pbWF0aW9uRHVyYXRpb24gPiAwICYmICFtYXhIZWlnaHR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */"), ';}&[data-has-arrow="true"]{&::after{content:" ";position:absolute;top:', ({
|
|
52
52
|
positions
|
|
53
53
|
}) => positions.arrowTop, "px;left:", ({
|
|
54
54
|
positions
|
|
@@ -58,7 +58,7 @@ const StyledPopup = /* @__PURE__ */ _styled__default.default("div", process.env.
|
|
|
58
58
|
positions
|
|
59
59
|
}) => positions.rotate, "deg);margin-left:-", helpers.DEFAULT_ARROW_WIDTH, "px;border-width:", helpers.DEFAULT_ARROW_WIDTH, "px;border-style:solid;border-color:", ({
|
|
60
60
|
theme
|
|
61
|
-
}) => theme.colors.neutral.backgroundStronger, ' transparent transparent transparent;pointer-events:none;}}&[data-visible-in-dom="false"]{display:none;}' + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRW9CIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG4gIGNvbXB1dGVQb3NpdGlvbnMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmNvbnN0IFN0eWxlZENoaWxkcmVuQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogaW5oZXJpdDtcblxuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC1oZWlnaHQ9XCJ0cnVlXCJdIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9XCJ0cnVlXCJdIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuYFxuXG50eXBlIFBvcHVwUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBJZCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBpZiBub3Qgc2V0LiBJdCBpcyB1c2VkIGZvciBhc3NvY2lhdGluZyBwb3B1cCB3cmFwcGVyIHdpdGggcG9wdXAgcG9ydGFsLlxuICAgKi9cbiAgaWQ/OiBzdHJpbmdcbiAgY2hpbGRyZW46XG4gICAgfCBSZWFjdE5vZGVcbiAgICB8ICgocmVuZGVyUHJvcHM6IHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICAgICAgIG9uQmx1cjogKCkgPT4gdm9pZFxuICAgICAgICBvbkZvY3VzOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uUG9pbnRlckVudGVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uUG9pbnRlckxlYXZlOiAoKSA9PiB2b2lkXG4gICAgICAgIHJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgICAgIH0pID0+IFJlYWN0Tm9kZSlcbiAgbWF4V2lkdGg/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqXG4gICAqIGBhdXRvYCBwbGFjZW1lbnQgd2lsbCBjaGFuZ2UgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3B1cCBpZiBpdCBkb2Vzbid0IGZpdCBpbiB0aGUgdmlld3BvcnQuXG4gICAqL1xuICBwbGFjZW1lbnQ/OiBQb3B1cFBsYWNlbWVudFxuICAvKipcbiAgICogQWxpZ24gdGhlIHBvcHVwIHRvIHRoZSBzdGFydCBvciBjZW50ZXIgb2YgdGhlIGNoaWxkcmVuLlxuICAgKi9cbiAgYWxpZ24/OiBQb3B1cEFsaWduXG4gIC8qKlxuICAgKiBDb250ZW50IG9mIHRoZSBwb3B1cCwgcHJlZmVyYWJseSB0ZXh0IGluc2lkZS5cbiAgICovXG4gIHRleHQ/OiBSZWFjdE5vZGVcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCB3aWxsIGFkZCBgd2lkdGg6IDEwMCVgIHRvIHRoZSBwb3B1cCBjb250YWluZXIuXG4gICAqL1xuICBjb250YWluZXJGdWxsV2lkdGg/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGFkZCBgaGVpZ2h0OiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbEhlaWdodD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEl0IHdpbGwgZm9yY2UgZGlzcGxheSBwb3B1cC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGFsd2F5cyBkaXNwbGF5IHRoZSBwb3B1cCB3aXRob3V0IGhvdmVyIG5lZWRlZC5cbiAgICovXG4gIHZpc2libGU/OiBib29sZWFuXG4gIGlubmVyUmVmPzogUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgcm9sZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIGhhc0Fycm93PzogYm9vbGVhblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICB0YWJJbmRleD86IG51bWJlclxuICBvbktleURvd24/OiBLZXlib2FyZEV2ZW50SGFuZGxlclxuICAnYXJpYS1oYXNwb3B1cCc/OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5bJ2FyaWEtaGFzcG9wdXAnXVxuICBoaWRlT25DbGlja091dHNpZGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGRlYm91bmNlVGltZSB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgbm90IGRlYm91bmNlIHRoZSBob3ZlciBldmVudCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGFudGx5LlxuICAgKiBJZiBzZXQgdG8gMCBpdCB3aWxsIGRpc2FibGUgZGVib3VuY2UuXG4gICAqL1xuICBkZWJvdW5jZURlbGF5PzogbnVtYmVyXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGEgbWF4IGhlaWdodCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgYW5pbWF0aW9uIGlzIGRpc2FibGVkLCBvciBpdCB3aWxsIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNvbWUgYnJvd3NlcnMuXG4gICAqL1xuICBtYXhIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqXG4gICAqIFdpbGwgcmVtb3ZlIHRoZSBhbmltYXRpb24gb24gdGhlIHBvcHVwIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGRpc2FibGVBbmltYXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcG9ydGFsIHRhcmdldCBpcyBjaGlsZHJlbiBjb250YWluZXIgb3IgZG9jdW1lbnQuYm9keSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgc2V0dGluZyBhIHBvcnRhbFRhcmdldCBwcm9wLlxuICAgKi9cbiAgcG9ydGFsVGFyZ2V0PzogSFRNTEVsZW1lbnRcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byB0cnVlLCB0aGUgcG9wdXAgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgRE9NIG9ubHkgd2hlbiBpdCBpcyB2aXNpYmxlLlxuICAgKiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkIGluIHRoZSBET00uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYHRydWVgLCBpZiBmb3Igc29tZVxuICAgKiByZWFzb24geW91IG5lZWQgdG8gZGlzYWJsZSBpdCwgeW91IGNhbiBzZXQgaXQgdG8gYGZhbHNlYC5cbiAgICovXG4gIGR5bmFtaWNEb21SZW5kZXJpbmc/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdGV4dCA9ICcnLFxuICAgICAgcGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgY29udGFpbmVyRnVsbEhlaWdodCxcbiAgICAgIG1heFdpZHRoID0gJzE0LjVyZW0nLFxuICAgICAgbWF4SGVpZ2h0LFxuICAgICAgdmlzaWJsZSxcbiAgICAgIGlubmVyUmVmLFxuICAgICAgcm9sZSA9ICdwb3B1cCcsXG4gICAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICAgICAgaGFzQXJyb3cgPSB0cnVlLFxuICAgICAgb25DbG9zZSxcbiAgICAgIHRhYkluZGV4ID0gMCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgICdhcmlhLWhhc3BvcHVwJzogYXJpYUhhc1BvcHVwLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlID0gZmFsc2UsXG4gICAgICBkZWJvdW5jZURlbGF5ID0gREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTixcbiAgICAgIGRpc2FibGVBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHBvcnRhbFRhcmdldCxcbiAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmcgPSB0cnVlLFxuICAgIH06IFBvcHVwUHJvcHMsXG4gICAgcmVmOiBSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICApID0+IHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGlubmVyUmVmLCAoKSA9PiBjaGlsZHJlblJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50KVxuXG4gICAgY29uc3QgaW5uZXJQb3B1cFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaW5uZXJQb3B1cFJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50KVxuXG4gICAgY29uc3QgdGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KHVuZGVmaW5lZClcbiAgICBjb25zdCBwb3B1cFBvcnRhbFRhcmdldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHBvcnRhbFRhcmdldCkgcmV0dXJuIHBvcnRhbFRhcmdldFxuXG4gICAgICBpZiAocm9sZSA9PT0gJ2RpYWxvZycpIHtcbiAgICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQpIHJldHVybiBjaGlsZHJlblJlZi5jdXJyZW50XG4gICAgICAgIGlmIChpc0NsaWVudFNpZGUpIHJldHVybiBkb2N1bWVudC5ib2R5XG5cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgLy8gV2UgY2hlY2sgaWYgd2luZG93IGV4aXN0cyBmb3IgU1NSXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmJvZHlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbcG9ydGFsVGFyZ2V0LCByb2xlLCBjaGlsZHJlblJlZi5jdXJyZW50XSlcblxuICAgIC8vIFRoZXJlIGFyZSBzb21lIGlzc3VlIHdoZW4gbWl4aW5nIGFuaW1hdGlvbiBhbmQgbWF4SGVpZ2h0IG9uIHNvbWUgYnJvd3NlcnMsIHNvIHdlIGRpc2FibGUgYW5pbWF0aW9uIGlmIG1heEhlaWdodCBpcyBzZXQuXG4gICAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPVxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiB8fCBtYXhIZWlnaHQgPyAwIDogREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT05cblxuICAgIC8vIERlYm91bmNlIHRpbWVyIHdpbGwgYmUgdXNlZCB0byBwcmV2ZW50IHRoZSBwb3B1cCBmcm9tIGZsaWNrZXJpbmcgd2hlbiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2Ugb3V0IGFuZCBpbiB0aGUgY2hpbGRyZW4gZWxlbWVudC5cbiAgICBjb25zdCBkZWJvdW5jZVRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgW3Zpc2libGVJbkRvbSwgc2V0VmlzaWJsZUluRG9tXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtyZXZlcnNlQW5pbWF0aW9uLCBzZXRSZXZlcnNlQW5pbWF0aW9uXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtwb3NpdGlvbnMsIHNldFBvc2l0aW9uc10gPSB1c2VTdGF0ZTxQb3NpdGlvbnNUeXBlPih7XG4gICAgICAuLi5ERUZBVUxUX1BPU0lUSU9OUyxcbiAgICB9KVxuICAgIGNvbnN0IHVuaXF1ZUlkID0gdXNlSWQoKVxuICAgIGNvbnN0IGdlbmVyYXRlZElkID0gaWQgPz8gdW5pcXVlSWRcbiAgICBjb25zdCBpc0NvbnRyb2xsZWQgPSB2aXNpYmxlICE9PSB1bmRlZmluZWRcblxuICAgIGNvbnN0IGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgc2V0UG9zaXRpb25zKFxuICAgICAgICAgIGNvbXB1dGVQb3NpdGlvbnMoe1xuICAgICAgICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICBwb3B1cFJlZjogaW5uZXJQb3B1cFJlZixcbiAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0OiBwb3B1cFBvcnRhbFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIGhhc0Fycm93LFxuICAgICAgICAgICAgYWxpZ24sXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9LCBbaGFzQXJyb3csIHBsYWNlbWVudCwgcG9wdXBQb3J0YWxUYXJnZXQsIGFsaWduXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZWNvbXB1dGUgcG9zaXRpb25zIG9mIHBvcHVwIGR1ZSB0byB3aW5kb3cgc2Nyb2xsIG9yIHJlc2l6ZS5cbiAgICAgKi9cbiAgICBjb25zdCBvbldpbmRvd0NoYW5nZURldGVjdGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgLy8gV2UgcmVtb3ZlIGFuaW1hdGlvbiBvbiBzY3JvbGwgb3IgdGhlIGFuaW1hdGlvbiB3aWxsIHJlc3RhcnQgb24gZXZlcnkgc2Nyb2xsXG4gICAgICBpZiAoaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5hbmltYXRpb24gPSAnbm9uZSdcbiAgICAgIH1cblxuICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucygpXG4gICAgfSwgW2dlbmVyYXRlUG9wdXBQb3NpdGlvbnMsIGlubmVyUG9wdXBSZWZdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlbW92ZSBwb3B1cCBwb3J0YWwgZnJvbSBET00gYW5kIHJlbW92ZSBldmVudCBsaXN0ZW5lciB0byBpdC5cbiAgICAgKi9cbiAgICBjb25zdCB1bm1vdW50UG9wdXBGcm9tRG9tID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0VmlzaWJsZUluRG9tKGZhbHNlKVxuICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcblxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgfSwgW29uV2luZG93Q2hhbmdlRGV0ZWN0ZWRdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIGhpZGUgcG9wdXAuIEEgdGltZW91dCBpcyBzZXQgdG8gYWxsb3cgYW5pbWF0aW9uIGVuZCwgdGhlbiByZW1vdmVcbiAgICAgKiBwb3B1cCBmcm9tIGRvbS5cbiAgICAgKi9cbiAgICBjb25zdCBjbG9zZVBvcHVwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgY2xvc2VGdW5jdGlvbiA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFkaXNhYmxlQW5pbWF0aW9uKSB7XG4gICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbih0cnVlKVxuXG4gICAgICAgICAgdGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICAgIH0sIGFuaW1hdGlvbkR1cmF0aW9uKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFkaXNhYmxlQW5pbWF0aW9uKSB7XG4gICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgY2xvc2VGdW5jdGlvbigpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZWJvdW5jZURlbGF5ICYmICFkaXNhYmxlQW5pbWF0aW9uID8gZGVib3VuY2VEZWxheSA6IDAsXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbixcbiAgICAgIGRlYm91bmNlRGVsYXksXG4gICAgICBvbkNsb3NlLFxuICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogV2hlbiBtb3VzZSBob3ZlciBvciBzdG9wIGhvdmVyaW5nIGNoaWxkcmVuIHRoaXMgZnVuY3Rpb24gZGlzcGxheSBvciBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvblxuICAgICAqIGVuZCwgdGhlbiByZW1vdmUgcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3Qgb25Qb2ludGVyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpc1Zpc2libGU6IGJvb2xlYW4pID0+ICgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBkZWJvdW5jZURlbGF5IGFuZCB0aGUgcG9wdXAgaXMgbm90IHZpc2libGUsIHdlIGNsZWFyIHRoZSBkZWJvdW5jZSB0aW1lclxuICAgICAgICBpZiAoIXZpc2libGUgJiYgZGVib3VuY2VEZWxheSA+IDAgJiYgZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gdW5tb3VudCB0aGUgcG9wdXBcbiAgICAgICAgLy8gVGhlcmUgaXMgZGVib3VuY2UgaW4gb3JkZXIgdG8gYXZvaWQgcG9wdXAgdG8gZmxpY2tlciB3aGVuIHdlIG1vdmUgdGhlIG1vdXNlIGZyb20gY2hpbGRyZW4gdG8gcG9wdXBcbiAgICAgICAgLy8gVGltZXIgaXMgdXNlZCB0byBmb2xsb3cgdGhlIGFuaW1hdGlvbiBkdXJhdGlvblxuICAgICAgICBpZiAoIWlzVmlzaWJsZSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgJiYgIWRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9IGVsc2UgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gbW91bnQgdGhlIHBvcHVwXG4gICAgICAgICAgLy8gSWYgdGhlIHRpbWVyIGV4aXN0cyBpdCBtZWFucyB0aGUgcG9wdXAgd2FzIGFib3V0IHRvIHVtb3VudCwgYnV0IHdlIGhvdmVyZWQgdGhlIGNoaWxkcmVuIGFnYWluLFxuICAgICAgICAgIC8vIHNvIHdlIGNsZWFyIHRoZSB0aW1lciBhbmQgdGhlIHBvcHVwIHdpbGwgbm90IGJlIHVubW91bnRlZFxuICAgICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFuZCBoZXJlIGlzIHdoZW4gd2UgY3VycmVudGx5IGFyZSBpbiBhIGRlYm91bmNlIHRpbWVyLCBpdCBtZWFucyBwb3B1cCB3YXMgaG92ZXJlZCBkdXJpbmdcbiAgICAgICAgICAvLyB0aGF0IHBlcmlvZCwgYW5kIHNvIHdlIGNhbiBjbGVhciBkZWJvdW5jZSB0aW1lclxuICAgICAgICAgIGlmIChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlYm91bmNlRGVsYXkgPiAwKSB7XG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9LCBkZWJvdW5jZURlbGF5KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2Nsb3NlUG9wdXAsIGRlYm91bmNlRGVsYXksIHZpc2libGVdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIE9uY2UgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tIHdlIGNhbiBjb21wdXRlIHBvc2l0aW9ucywgdGhlbiBzZXQgaXQgdmlzaWJsZSBvbiBzY3JlZW4gYW5kIGFkZCBldmVudCB0b1xuICAgICAqIHJlY29tcHV0ZSBwb3NpdGlvbnMgb24gc2Nyb2xsIG9yIHNjcmVlbiByZXNpemUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucygpXG5cbiAgICAgICAgaWYgKHBvcHVwUG9ydGFsVGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgLy8gV2Ugd2FudCB0byBkZXRlY3Qgc2Nyb2xsIGFuZCByZXNpemUgaW4gb3JkZXIgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cFxuICAgICAgICAgIC8vIEFkZGluZyB0cnVlIGFzIHRoaXJkIHBhcmFtZXRlciB0byBldmVudCBsaXN0ZW5lciB3aWxsIGRldGVjdCBuZXN0ZWQgc2Nyb2xscy5cbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMsXG4gICAgICBvbldpbmRvd0NoYW5nZURldGVjdGVkLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgbWF4V2lkdGgsXG4gICAgICBwb3B1cFBvcnRhbFRhcmdldCxcbiAgICBdKVxuXG4gICAgLy8gVGhpcyB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHBvc2l0aW9ucyBhcmUgY29tcHV0ZWQgYW5kIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbS5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFtwb3NpdGlvbnNdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIElmIHBvcHVwIGhhcyBgdmlzaWJsZWAgcHJvcCBpdCBtZWFucyB0aGUgcG9wdXAgaXMgbWFudWFsbHkgY29udHJvbGxlZCB0aHJvdWdoIHRoaXMgcHJvcC5cbiAgICAgKiBJbiB0aGlzIGNhcyB3ZSBkb24ndCB3YW50IHRvIGRpc3BsYXkgcG9wdXAgb24gaG92ZXIsIGJ1dCBvbmx5IHdoZW4gYHZpc2libGVgIGlzIHRydWUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgb25Qb2ludGVyRXZlbnQodmlzaWJsZSkoKVxuICAgICAgfVxuICAgIH0sIFtpc0NvbnRyb2xsZWQsIG9uUG9pbnRlckV2ZW50LCB2aXNpYmxlXSlcblxuICAgIC8vIEhhbmRsZSBoaWRlIG9uIGVzYyBwcmVzcyBhbmQgaGlkZSBvbiBjbGljayBvdXRzaWRlXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZUVzY1ByZXNzID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHBvcHVwQ3VycmVudCA9IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICBjb25zdCBjaGlsZHJlbkN1cnJlbnQgPSBjaGlsZHJlblJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKHBvcHVwQ3VycmVudCAmJiBoaWRlT25DbGlja091dHNpZGUgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gcG9wdXBDdXJyZW50ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IGNoaWxkcmVuQ3VycmVudCAmJlxuICAgICAgICAgICAgIWNoaWxkcmVuQ3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9wdXBDdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBjbG9zZVBvcHVwLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgaW5uZXJQb3B1cFJlZixcbiAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGV2ZW50IHdpbGwgb2NjdXIgb25seSBmb3IgZGlhbG9nIGFuZCB3aWxsIHRyYXAgZm9jdXMgaW5zaWRlIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlRm9jdXNUcmFwOiBLZXlib2FyZEV2ZW50SGFuZGxlciA9IHVzZUNhbGxiYWNrKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGlzVGFiUHJlc3NlZCA9IGV2ZW50LmtleSA9PT0gJ1RhYidcbiAgICAgIGlmICghaXNUYWJQcmVzc2VkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgICAgY29uc3QgZm9jdXNhYmxlRWxzID1cbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICdhW2hyZWZdOm5vdChbZGlzYWJsZWRdKSwgYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknLFxuICAgICAgICApID8/IFtdXG5cbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbm8gaW50ZXJhY3RpdmUgZWxlbWVudCBhcmUgd2l0aGluIHRoZSBtb2RhbCAoaW5jbHVkaW5nIGNsb3NlIGljb24pXG4gICAgICBpZiAoZm9jdXNhYmxlRWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbMF0gYXMgSFRNTEVsZW1lbnRcbiAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1tcbiAgICAgICAgZm9jdXNhYmxlRWxzLmxlbmd0aCAtIDFcbiAgICAgIF0gYXMgSFRNTEVsZW1lbnRcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgZmlyc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cbiAgICB9LCBbXSlcblxuICAgIC8qKlxuICAgICAqIFdpbGwgcmVuZGVyIGNoaWxkcmVuIGNvbmRpdGlvbmFsbHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbiBvciBub3QuXG4gICAgICovXG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbih7XG4gICAgICAgICAgb25CbHVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICBvbkZvY3VzOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckVudGVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICByZWY6IGNoaWxkcmVuUmVmLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkQ2hpbGRyZW5Db250YWluZXJcbiAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBvbkJsdXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIG9uRm9jdXM9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIHJlZj17Y2hpbGRyZW5SZWZ9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgb25LZXlEb3duPy4oZXZlbnQpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPXtjb250YWluZXJGdWxsV2lkdGh9XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC1oZWlnaHQ9e2NvbnRhaW5lckZ1bGxIZWlnaHR9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD17YXJpYUhhc1BvcHVwfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZENoaWxkcmVuQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFyaWFIYXNQb3B1cCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgY29udGFpbmVyRnVsbEhlaWdodCxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGdlbmVyYXRlZElkLFxuICAgICAgaXNDb250cm9sbGVkLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgb25Qb2ludGVyRXZlbnQsXG4gICAgICB0YWJJbmRleCxcbiAgICBdKVxuXG4gICAgY29uc3Qgc2hvdWxkUmVuZGVyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWR5bmFtaWNEb21SZW5kZXJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGR5bmFtaWNEb21SZW5kZXJpbmcgJiYgdmlzaWJsZUluRG9tKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkeW5hbWljRG9tUmVuZGVyaW5nLCB2aXNpYmxlSW5Eb21dKVxuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjaGlsZHJlblxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7cmVuZGVyQ2hpbGRyZW4oKX1cbiAgICAgICAge3Nob3VsZFJlbmRlclxuICAgICAgICAgID8gY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgICA8U3R5bGVkUG9wdXBcbiAgICAgICAgICAgICAgICByZWY9e2lubmVyUG9wdXBSZWZ9XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zPXtwb3NpdGlvbnN9XG4gICAgICAgICAgICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgICAgICAgIHJvbGU9e3JvbGV9XG4gICAgICAgICAgICAgICAgaWQ9e2dlbmVyYXRlZElkfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgIHJldmVyc2VBbmltYXRpb249e3JldmVyc2VBbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgICAgICAgZGF0YS1oYXMtYXJyb3c9e2hhc0Fycm93fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3N0b3BDbGlja1Byb3BhZ2F0aW9ufVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17YW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXtyb2xlID09PSAnZGlhbG9nJyA/IGhhbmRsZUZvY3VzVHJhcCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICBpc0RpYWxvZz17cm9sZSA9PT0gJ2RpYWxvZyd9XG4gICAgICAgICAgICAgICAgZGF0YS12aXNpYmxlLWluLWRvbT17XG4gICAgICAgICAgICAgICAgICAhZHluYW1pY0RvbVJlbmRlcmluZyA/IHZpc2libGVJbkRvbSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkYXRhLWFuaW1hdGVkPXthbmltYXRpb25EdXJhdGlvbiA+IDAgJiYgIW1heEhlaWdodH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0ZXh0fVxuICAgICAgICAgICAgICA8L1N0eWxlZFBvcHVwPixcbiAgICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBudWxsfVxuICAgICAgPC8+XG4gICAgKVxuICB9LFxuKVxuIl19 */"));
|
|
61
|
+
}) => theme.colors.neutral.backgroundStronger, ' transparent transparent transparent;pointer-events:none;}}&[data-visible-in-dom="false"]{display:none;}' + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRW9CIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG4gIGNvbXB1dGVQb3NpdGlvbnMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlsZHJlbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGluaGVyaXQ7XG5cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PVwidHJ1ZVwiXSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJltkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPVwidHJ1ZVwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICB9KSA9PiBSZWFjdE5vZGUpXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKlxuICAgKiBgYXV0b2AgcGxhY2VtZW50IHdpbGwgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wdXAgaWYgaXQgZG9lc24ndCBmaXQgaW4gdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcGxhY2VtZW50PzogUG9wdXBQbGFjZW1lbnRcbiAgLyoqXG4gICAqIEFsaWduIHRoZSBwb3B1cCB0byB0aGUgc3RhcnQgb3IgY2VudGVyIG9mIHRoZSBjaGlsZHJlbi5cbiAgICovXG4gIGFsaWduPzogUG9wdXBBbGlnblxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYGhlaWdodDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxIZWlnaHQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBtYXhXaWR0aCA9ICcxNC41cmVtJyxcbiAgICAgIG1heEhlaWdodCxcbiAgICAgIHZpc2libGUsXG4gICAgICBpbm5lclJlZixcbiAgICAgIHJvbGUgPSAncG9wdXAnLFxuICAgICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB0YWJJbmRleCA9IDAsXG4gICAgICBvbktleURvd24sXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFIYXNQb3B1cCxcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSA9IGZhbHNlLFxuICAgICAgZGVib3VuY2VEZWxheSA9IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2UsXG4gICAgICBwb3J0YWxUYXJnZXQsXG4gICAgICBkeW5hbWljRG9tUmVuZGVyaW5nID0gdHJ1ZSxcbiAgICB9OiBQb3B1cFByb3BzLFxuICAgIHJlZjogUmVmPEhUTUxEaXZFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgKCkgPT4gY2hpbGRyZW5SZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IGlubmVyUG9wdXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUG9wdXBSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IHRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgcG9wdXBQb3J0YWxUYXJnZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxUYXJnZXQpIHJldHVybiBwb3J0YWxUYXJnZXRcblxuICAgICAgaWYgKHJvbGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50KSByZXR1cm4gY2hpbGRyZW5SZWYuY3VycmVudFxuICAgICAgICBpZiAoaXNDbGllbnRTaWRlKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgICAgcG9wdXBSZWY6IGlubmVyUG9wdXBSZWYsXG4gICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldDogcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICBoYXNBcnJvdyxcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW2hhc0Fycm93LCBwbGFjZW1lbnQsIHBvcHVwUG9ydGFsVGFyZ2V0LCBhbGlnbl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsb3NlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24odHJ1ZSlcblxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgICAgIGRpc2FibGVBbmltYXRpb24sXG4gICAgICBkZWJvdW5jZURlbGF5LFxuICAgICAgb25DbG9zZSxcbiAgICAgIHVubW91bnRQb3B1cEZyb21Eb20sXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFdoZW4gbW91c2UgaG92ZXIgb3Igc3RvcCBob3ZlcmluZyBjaGlsZHJlbiB0aGlzIGZ1bmN0aW9uIGRpc3BsYXkgb3IgaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb25cbiAgICAgKiBlbmQsIHRoZW4gcmVtb3ZlIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IG9uUG9pbnRlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgZGVib3VuY2VEZWxheSBhbmQgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCB3ZSBjbGVhciB0aGUgZGVib3VuY2UgdGltZXJcbiAgICAgICAgaWYgKCF2aXNpYmxlICYmIGRlYm91bmNlRGVsYXkgPiAwICYmIGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIHVubW91bnQgdGhlIHBvcHVwXG4gICAgICAgIC8vIFRoZXJlIGlzIGRlYm91bmNlIGluIG9yZGVyIHRvIGF2b2lkIHBvcHVwIHRvIGZsaWNrZXIgd2hlbiB3ZSBtb3ZlIHRoZSBtb3VzZSBmcm9tIGNoaWxkcmVuIHRvIHBvcHVwXG4gICAgICAgIC8vIFRpbWVyIGlzIHVzZWQgdG8gZm9sbG93IHRoZSBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50ICYmICFkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIG1vdW50IHRoZSBwb3B1cFxuICAgICAgICAgIC8vIElmIHRoZSB0aW1lciBleGlzdHMgaXQgbWVhbnMgdGhlIHBvcHVwIHdhcyBhYm91dCB0byB1bW91bnQsIGJ1dCB3ZSBob3ZlcmVkIHRoZSBjaGlsZHJlbiBhZ2FpbixcbiAgICAgICAgICAvLyBzbyB3ZSBjbGVhciB0aGUgdGltZXIgYW5kIHRoZSBwb3B1cCB3aWxsIG5vdCBiZSB1bm1vdW50ZWRcbiAgICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBbmQgaGVyZSBpcyB3aGVuIHdlIGN1cnJlbnRseSBhcmUgaW4gYSBkZWJvdW5jZSB0aW1lciwgaXQgbWVhbnMgcG9wdXAgd2FzIGhvdmVyZWQgZHVyaW5nXG4gICAgICAgICAgLy8gdGhhdCBwZXJpb2QsIGFuZCBzbyB3ZSBjYW4gY2xlYXIgZGVib3VuY2UgdGltZXJcbiAgICAgICAgICBpZiAoZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWJvdW5jZURlbGF5ID4gMCkge1xuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSwgZGVib3VuY2VEZWxheSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodmlzaWJsZUluRG9tICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbcG9zaXRpb25zXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgb25CbHVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICBvbkZvY3VzPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgIG9uS2V5RG93bj8uKGV2ZW50KVxuICAgICAgICAgIH19XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC13aWR0aD17Y29udGFpbmVyRnVsbFdpZHRofVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PXtjb250YWluZXJGdWxsSGVpZ2h0fVxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9e2FyaWFIYXNQb3B1cH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YS1hbmltYXRlZD17YW5pbWF0aW9uRHVyYXRpb24gPiAwICYmICFtYXhIZWlnaHR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */"));
|
|
62
62
|
const StyledChildrenContainer = /* @__PURE__ */ _styled__default.default("div", process.env.NODE_ENV === "production" ? {
|
|
63
63
|
target: "e4h1g860"
|
|
64
64
|
} : {
|
|
@@ -69,7 +69,7 @@ const StyledChildrenContainer = /* @__PURE__ */ _styled__default.default("div",
|
|
|
69
69
|
styles: 'display:inherit;&[data-container-full-height="true"]{height:100%;}&[data-container-full-width="true"]{width:100%;}'
|
|
70
70
|
} : {
|
|
71
71
|
name: "1e1nei5",
|
|
72
|
-
styles: 'display:inherit;&[data-container-full-height="true"]{height:100%;}&[data-container-full-width="true"]{width:100%;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvSDBDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG4gIGNvbXB1dGVQb3NpdGlvbnMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmNvbnN0IFN0eWxlZENoaWxkcmVuQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogaW5oZXJpdDtcblxuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC1oZWlnaHQ9XCJ0cnVlXCJdIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9XCJ0cnVlXCJdIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuYFxuXG50eXBlIFBvcHVwUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBJZCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBpZiBub3Qgc2V0LiBJdCBpcyB1c2VkIGZvciBhc3NvY2lhdGluZyBwb3B1cCB3cmFwcGVyIHdpdGggcG9wdXAgcG9ydGFsLlxuICAgKi9cbiAgaWQ/OiBzdHJpbmdcbiAgY2hpbGRyZW46XG4gICAgfCBSZWFjdE5vZGVcbiAgICB8ICgocmVuZGVyUHJvcHM6IHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICAgICAgIG9uQmx1cjogKCkgPT4gdm9pZFxuICAgICAgICBvbkZvY3VzOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uUG9pbnRlckVudGVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uUG9pbnRlckxlYXZlOiAoKSA9PiB2b2lkXG4gICAgICAgIHJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgICAgIH0pID0+IFJlYWN0Tm9kZSlcbiAgbWF4V2lkdGg/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqXG4gICAqIGBhdXRvYCBwbGFjZW1lbnQgd2lsbCBjaGFuZ2UgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3B1cCBpZiBpdCBkb2Vzbid0IGZpdCBpbiB0aGUgdmlld3BvcnQuXG4gICAqL1xuICBwbGFjZW1lbnQ/OiBQb3B1cFBsYWNlbWVudFxuICAvKipcbiAgICogQWxpZ24gdGhlIHBvcHVwIHRvIHRoZSBzdGFydCBvciBjZW50ZXIgb2YgdGhlIGNoaWxkcmVuLlxuICAgKi9cbiAgYWxpZ24/OiBQb3B1cEFsaWduXG4gIC8qKlxuICAgKiBDb250ZW50IG9mIHRoZSBwb3B1cCwgcHJlZmVyYWJseSB0ZXh0IGluc2lkZS5cbiAgICovXG4gIHRleHQ/OiBSZWFjdE5vZGVcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCB3aWxsIGFkZCBgd2lkdGg6IDEwMCVgIHRvIHRoZSBwb3B1cCBjb250YWluZXIuXG4gICAqL1xuICBjb250YWluZXJGdWxsV2lkdGg/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGFkZCBgaGVpZ2h0OiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbEhlaWdodD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEl0IHdpbGwgZm9yY2UgZGlzcGxheSBwb3B1cC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGFsd2F5cyBkaXNwbGF5IHRoZSBwb3B1cCB3aXRob3V0IGhvdmVyIG5lZWRlZC5cbiAgICovXG4gIHZpc2libGU/OiBib29sZWFuXG4gIGlubmVyUmVmPzogUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgcm9sZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIGhhc0Fycm93PzogYm9vbGVhblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICB0YWJJbmRleD86IG51bWJlclxuICBvbktleURvd24/OiBLZXlib2FyZEV2ZW50SGFuZGxlclxuICAnYXJpYS1oYXNwb3B1cCc/OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5bJ2FyaWEtaGFzcG9wdXAnXVxuICBoaWRlT25DbGlja091dHNpZGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGRlYm91bmNlVGltZSB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgbm90IGRlYm91bmNlIHRoZSBob3ZlciBldmVudCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGFudGx5LlxuICAgKiBJZiBzZXQgdG8gMCBpdCB3aWxsIGRpc2FibGUgZGVib3VuY2UuXG4gICAqL1xuICBkZWJvdW5jZURlbGF5PzogbnVtYmVyXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGEgbWF4IGhlaWdodCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgYW5pbWF0aW9uIGlzIGRpc2FibGVkLCBvciBpdCB3aWxsIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNvbWUgYnJvd3NlcnMuXG4gICAqL1xuICBtYXhIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqXG4gICAqIFdpbGwgcmVtb3ZlIHRoZSBhbmltYXRpb24gb24gdGhlIHBvcHVwIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGRpc2FibGVBbmltYXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcG9ydGFsIHRhcmdldCBpcyBjaGlsZHJlbiBjb250YWluZXIgb3IgZG9jdW1lbnQuYm9keSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgc2V0dGluZyBhIHBvcnRhbFRhcmdldCBwcm9wLlxuICAgKi9cbiAgcG9ydGFsVGFyZ2V0PzogSFRNTEVsZW1lbnRcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byB0cnVlLCB0aGUgcG9wdXAgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgRE9NIG9ubHkgd2hlbiBpdCBpcyB2aXNpYmxlLlxuICAgKiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkIGluIHRoZSBET00uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYHRydWVgLCBpZiBmb3Igc29tZVxuICAgKiByZWFzb24geW91IG5lZWQgdG8gZGlzYWJsZSBpdCwgeW91IGNhbiBzZXQgaXQgdG8gYGZhbHNlYC5cbiAgICovXG4gIGR5bmFtaWNEb21SZW5kZXJpbmc/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdGV4dCA9ICcnLFxuICAgICAgcGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgY29udGFpbmVyRnVsbEhlaWdodCxcbiAgICAgIG1heFdpZHRoID0gJzE0LjVyZW0nLFxuICAgICAgbWF4SGVpZ2h0LFxuICAgICAgdmlzaWJsZSxcbiAgICAgIGlubmVyUmVmLFxuICAgICAgcm9sZSA9ICdwb3B1cCcsXG4gICAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICAgICAgaGFzQXJyb3cgPSB0cnVlLFxuICAgICAgb25DbG9zZSxcbiAgICAgIHRhYkluZGV4ID0gMCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgICdhcmlhLWhhc3BvcHVwJzogYXJpYUhhc1BvcHVwLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlID0gZmFsc2UsXG4gICAgICBkZWJvdW5jZURlbGF5ID0gREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTixcbiAgICAgIGRpc2FibGVBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHBvcnRhbFRhcmdldCxcbiAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmcgPSB0cnVlLFxuICAgIH06IFBvcHVwUHJvcHMsXG4gICAgcmVmOiBSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICApID0+IHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGlubmVyUmVmLCAoKSA9PiBjaGlsZHJlblJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50KVxuXG4gICAgY29uc3QgaW5uZXJQb3B1cFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaW5uZXJQb3B1cFJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50KVxuXG4gICAgY29uc3QgdGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KHVuZGVmaW5lZClcbiAgICBjb25zdCBwb3B1cFBvcnRhbFRhcmdldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHBvcnRhbFRhcmdldCkgcmV0dXJuIHBvcnRhbFRhcmdldFxuXG4gICAgICBpZiAocm9sZSA9PT0gJ2RpYWxvZycpIHtcbiAgICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQpIHJldHVybiBjaGlsZHJlblJlZi5jdXJyZW50XG4gICAgICAgIGlmIChpc0NsaWVudFNpZGUpIHJldHVybiBkb2N1bWVudC5ib2R5XG5cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgLy8gV2UgY2hlY2sgaWYgd2luZG93IGV4aXN0cyBmb3IgU1NSXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmJvZHlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbcG9ydGFsVGFyZ2V0LCByb2xlLCBjaGlsZHJlblJlZi5jdXJyZW50XSlcblxuICAgIC8vIFRoZXJlIGFyZSBzb21lIGlzc3VlIHdoZW4gbWl4aW5nIGFuaW1hdGlvbiBhbmQgbWF4SGVpZ2h0IG9uIHNvbWUgYnJvd3NlcnMsIHNvIHdlIGRpc2FibGUgYW5pbWF0aW9uIGlmIG1heEhlaWdodCBpcyBzZXQuXG4gICAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPVxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiB8fCBtYXhIZWlnaHQgPyAwIDogREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT05cblxuICAgIC8vIERlYm91bmNlIHRpbWVyIHdpbGwgYmUgdXNlZCB0byBwcmV2ZW50IHRoZSBwb3B1cCBmcm9tIGZsaWNrZXJpbmcgd2hlbiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2Ugb3V0IGFuZCBpbiB0aGUgY2hpbGRyZW4gZWxlbWVudC5cbiAgICBjb25zdCBkZWJvdW5jZVRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgW3Zpc2libGVJbkRvbSwgc2V0VmlzaWJsZUluRG9tXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtyZXZlcnNlQW5pbWF0aW9uLCBzZXRSZXZlcnNlQW5pbWF0aW9uXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtwb3NpdGlvbnMsIHNldFBvc2l0aW9uc10gPSB1c2VTdGF0ZTxQb3NpdGlvbnNUeXBlPih7XG4gICAgICAuLi5ERUZBVUxUX1BPU0lUSU9OUyxcbiAgICB9KVxuICAgIGNvbnN0IHVuaXF1ZUlkID0gdXNlSWQoKVxuICAgIGNvbnN0IGdlbmVyYXRlZElkID0gaWQgPz8gdW5pcXVlSWRcbiAgICBjb25zdCBpc0NvbnRyb2xsZWQgPSB2aXNpYmxlICE9PSB1bmRlZmluZWRcblxuICAgIGNvbnN0IGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgc2V0UG9zaXRpb25zKFxuICAgICAgICAgIGNvbXB1dGVQb3NpdGlvbnMoe1xuICAgICAgICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgICBwb3B1cFJlZjogaW5uZXJQb3B1cFJlZixcbiAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0OiBwb3B1cFBvcnRhbFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIGhhc0Fycm93LFxuICAgICAgICAgICAgYWxpZ24sXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9LCBbaGFzQXJyb3csIHBsYWNlbWVudCwgcG9wdXBQb3J0YWxUYXJnZXQsIGFsaWduXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZWNvbXB1dGUgcG9zaXRpb25zIG9mIHBvcHVwIGR1ZSB0byB3aW5kb3cgc2Nyb2xsIG9yIHJlc2l6ZS5cbiAgICAgKi9cbiAgICBjb25zdCBvbldpbmRvd0NoYW5nZURldGVjdGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgLy8gV2UgcmVtb3ZlIGFuaW1hdGlvbiBvbiBzY3JvbGwgb3IgdGhlIGFuaW1hdGlvbiB3aWxsIHJlc3RhcnQgb24gZXZlcnkgc2Nyb2xsXG4gICAgICBpZiAoaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5hbmltYXRpb24gPSAnbm9uZSdcbiAgICAgIH1cblxuICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucygpXG4gICAgfSwgW2dlbmVyYXRlUG9wdXBQb3NpdGlvbnMsIGlubmVyUG9wdXBSZWZdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlbW92ZSBwb3B1cCBwb3J0YWwgZnJvbSBET00gYW5kIHJlbW92ZSBldmVudCBsaXN0ZW5lciB0byBpdC5cbiAgICAgKi9cbiAgICBjb25zdCB1bm1vdW50UG9wdXBGcm9tRG9tID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0VmlzaWJsZUluRG9tKGZhbHNlKVxuICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcblxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgfSwgW29uV2luZG93Q2hhbmdlRGV0ZWN0ZWRdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIGhpZGUgcG9wdXAuIEEgdGltZW91dCBpcyBzZXQgdG8gYWxsb3cgYW5pbWF0aW9uIGVuZCwgdGhlbiByZW1vdmVcbiAgICAgKiBwb3B1cCBmcm9tIGRvbS5cbiAgICAgKi9cbiAgICBjb25zdCBjbG9zZVBvcHVwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgY2xvc2VGdW5jdGlvbiA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFkaXNhYmxlQW5pbWF0aW9uKSB7XG4gICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbih0cnVlKVxuXG4gICAgICAgICAgdGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICAgIH0sIGFuaW1hdGlvbkR1cmF0aW9uKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFkaXNhYmxlQW5pbWF0aW9uKSB7XG4gICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgY2xvc2VGdW5jdGlvbigpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZWJvdW5jZURlbGF5ICYmICFkaXNhYmxlQW5pbWF0aW9uID8gZGVib3VuY2VEZWxheSA6IDAsXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbixcbiAgICAgIGRlYm91bmNlRGVsYXksXG4gICAgICBvbkNsb3NlLFxuICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogV2hlbiBtb3VzZSBob3ZlciBvciBzdG9wIGhvdmVyaW5nIGNoaWxkcmVuIHRoaXMgZnVuY3Rpb24gZGlzcGxheSBvciBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvblxuICAgICAqIGVuZCwgdGhlbiByZW1vdmUgcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3Qgb25Qb2ludGVyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpc1Zpc2libGU6IGJvb2xlYW4pID0+ICgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBkZWJvdW5jZURlbGF5IGFuZCB0aGUgcG9wdXAgaXMgbm90IHZpc2libGUsIHdlIGNsZWFyIHRoZSBkZWJvdW5jZSB0aW1lclxuICAgICAgICBpZiAoIXZpc2libGUgJiYgZGVib3VuY2VEZWxheSA+IDAgJiYgZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gdW5tb3VudCB0aGUgcG9wdXBcbiAgICAgICAgLy8gVGhlcmUgaXMgZGVib3VuY2UgaW4gb3JkZXIgdG8gYXZvaWQgcG9wdXAgdG8gZmxpY2tlciB3aGVuIHdlIG1vdmUgdGhlIG1vdXNlIGZyb20gY2hpbGRyZW4gdG8gcG9wdXBcbiAgICAgICAgLy8gVGltZXIgaXMgdXNlZCB0byBmb2xsb3cgdGhlIGFuaW1hdGlvbiBkdXJhdGlvblxuICAgICAgICBpZiAoIWlzVmlzaWJsZSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgJiYgIWRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9IGVsc2UgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gbW91bnQgdGhlIHBvcHVwXG4gICAgICAgICAgLy8gSWYgdGhlIHRpbWVyIGV4aXN0cyBpdCBtZWFucyB0aGUgcG9wdXAgd2FzIGFib3V0IHRvIHVtb3VudCwgYnV0IHdlIGhvdmVyZWQgdGhlIGNoaWxkcmVuIGFnYWluLFxuICAgICAgICAgIC8vIHNvIHdlIGNsZWFyIHRoZSB0aW1lciBhbmQgdGhlIHBvcHVwIHdpbGwgbm90IGJlIHVubW91bnRlZFxuICAgICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFuZCBoZXJlIGlzIHdoZW4gd2UgY3VycmVudGx5IGFyZSBpbiBhIGRlYm91bmNlIHRpbWVyLCBpdCBtZWFucyBwb3B1cCB3YXMgaG92ZXJlZCBkdXJpbmdcbiAgICAgICAgICAvLyB0aGF0IHBlcmlvZCwgYW5kIHNvIHdlIGNhbiBjbGVhciBkZWJvdW5jZSB0aW1lclxuICAgICAgICAgIGlmIChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlYm91bmNlRGVsYXkgPiAwKSB7XG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9LCBkZWJvdW5jZURlbGF5KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2Nsb3NlUG9wdXAsIGRlYm91bmNlRGVsYXksIHZpc2libGVdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIE9uY2UgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tIHdlIGNhbiBjb21wdXRlIHBvc2l0aW9ucywgdGhlbiBzZXQgaXQgdmlzaWJsZSBvbiBzY3JlZW4gYW5kIGFkZCBldmVudCB0b1xuICAgICAqIHJlY29tcHV0ZSBwb3NpdGlvbnMgb24gc2Nyb2xsIG9yIHNjcmVlbiByZXNpemUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucygpXG5cbiAgICAgICAgaWYgKHBvcHVwUG9ydGFsVGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgLy8gV2Ugd2FudCB0byBkZXRlY3Qgc2Nyb2xsIGFuZCByZXNpemUgaW4gb3JkZXIgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cFxuICAgICAgICAgIC8vIEFkZGluZyB0cnVlIGFzIHRoaXJkIHBhcmFtZXRlciB0byBldmVudCBsaXN0ZW5lciB3aWxsIGRldGVjdCBuZXN0ZWQgc2Nyb2xscy5cbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMsXG4gICAgICBvbldpbmRvd0NoYW5nZURldGVjdGVkLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgbWF4V2lkdGgsXG4gICAgICBwb3B1cFBvcnRhbFRhcmdldCxcbiAgICBdKVxuXG4gICAgLy8gVGhpcyB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHBvc2l0aW9ucyBhcmUgY29tcHV0ZWQgYW5kIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbS5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFtwb3NpdGlvbnNdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIElmIHBvcHVwIGhhcyBgdmlzaWJsZWAgcHJvcCBpdCBtZWFucyB0aGUgcG9wdXAgaXMgbWFudWFsbHkgY29udHJvbGxlZCB0aHJvdWdoIHRoaXMgcHJvcC5cbiAgICAgKiBJbiB0aGlzIGNhcyB3ZSBkb24ndCB3YW50IHRvIGRpc3BsYXkgcG9wdXAgb24gaG92ZXIsIGJ1dCBvbmx5IHdoZW4gYHZpc2libGVgIGlzIHRydWUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgb25Qb2ludGVyRXZlbnQodmlzaWJsZSkoKVxuICAgICAgfVxuICAgIH0sIFtpc0NvbnRyb2xsZWQsIG9uUG9pbnRlckV2ZW50LCB2aXNpYmxlXSlcblxuICAgIC8vIEhhbmRsZSBoaWRlIG9uIGVzYyBwcmVzcyBhbmQgaGlkZSBvbiBjbGljayBvdXRzaWRlXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZUVzY1ByZXNzID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHBvcHVwQ3VycmVudCA9IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICBjb25zdCBjaGlsZHJlbkN1cnJlbnQgPSBjaGlsZHJlblJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKHBvcHVwQ3VycmVudCAmJiBoaWRlT25DbGlja091dHNpZGUgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gcG9wdXBDdXJyZW50ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IGNoaWxkcmVuQ3VycmVudCAmJlxuICAgICAgICAgICAgIWNoaWxkcmVuQ3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9wdXBDdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBjbG9zZVBvcHVwLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgaW5uZXJQb3B1cFJlZixcbiAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGV2ZW50IHdpbGwgb2NjdXIgb25seSBmb3IgZGlhbG9nIGFuZCB3aWxsIHRyYXAgZm9jdXMgaW5zaWRlIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlRm9jdXNUcmFwOiBLZXlib2FyZEV2ZW50SGFuZGxlciA9IHVzZUNhbGxiYWNrKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGlzVGFiUHJlc3NlZCA9IGV2ZW50LmtleSA9PT0gJ1RhYidcbiAgICAgIGlmICghaXNUYWJQcmVzc2VkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgICAgY29uc3QgZm9jdXNhYmxlRWxzID1cbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICdhW2hyZWZdOm5vdChbZGlzYWJsZWRdKSwgYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknLFxuICAgICAgICApID8/IFtdXG5cbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbm8gaW50ZXJhY3RpdmUgZWxlbWVudCBhcmUgd2l0aGluIHRoZSBtb2RhbCAoaW5jbHVkaW5nIGNsb3NlIGljb24pXG4gICAgICBpZiAoZm9jdXNhYmxlRWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbMF0gYXMgSFRNTEVsZW1lbnRcbiAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1tcbiAgICAgICAgZm9jdXNhYmxlRWxzLmxlbmd0aCAtIDFcbiAgICAgIF0gYXMgSFRNTEVsZW1lbnRcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgZmlyc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cbiAgICB9LCBbXSlcblxuICAgIC8qKlxuICAgICAqIFdpbGwgcmVuZGVyIGNoaWxkcmVuIGNvbmRpdGlvbmFsbHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbiBvciBub3QuXG4gICAgICovXG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbih7XG4gICAgICAgICAgb25CbHVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICBvbkZvY3VzOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckVudGVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICByZWY6IGNoaWxkcmVuUmVmLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkQ2hpbGRyZW5Db250YWluZXJcbiAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBvbkJsdXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIG9uRm9jdXM9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIHJlZj17Y2hpbGRyZW5SZWZ9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgb25LZXlEb3duPy4oZXZlbnQpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPXtjb250YWluZXJGdWxsV2lkdGh9XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC1oZWlnaHQ9e2NvbnRhaW5lckZ1bGxIZWlnaHR9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD17YXJpYUhhc1BvcHVwfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZENoaWxkcmVuQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFyaWFIYXNQb3B1cCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgY29udGFpbmVyRnVsbEhlaWdodCxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGdlbmVyYXRlZElkLFxuICAgICAgaXNDb250cm9sbGVkLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgb25Qb2ludGVyRXZlbnQsXG4gICAgICB0YWJJbmRleCxcbiAgICBdKVxuXG4gICAgY29uc3Qgc2hvdWxkUmVuZGVyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWR5bmFtaWNEb21SZW5kZXJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGR5bmFtaWNEb21SZW5kZXJpbmcgJiYgdmlzaWJsZUluRG9tKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkeW5hbWljRG9tUmVuZGVyaW5nLCB2aXNpYmxlSW5Eb21dKVxuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjaGlsZHJlblxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7cmVuZGVyQ2hpbGRyZW4oKX1cbiAgICAgICAge3Nob3VsZFJlbmRlclxuICAgICAgICAgID8gY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgICA8U3R5bGVkUG9wdXBcbiAgICAgICAgICAgICAgICByZWY9e2lubmVyUG9wdXBSZWZ9XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zPXtwb3NpdGlvbnN9XG4gICAgICAgICAgICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgICAgICAgIHJvbGU9e3JvbGV9XG4gICAgICAgICAgICAgICAgaWQ9e2dlbmVyYXRlZElkfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgIHJldmVyc2VBbmltYXRpb249e3JldmVyc2VBbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgICAgICAgZGF0YS1oYXMtYXJyb3c9e2hhc0Fycm93fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3N0b3BDbGlja1Byb3BhZ2F0aW9ufVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17YW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXtyb2xlID09PSAnZGlhbG9nJyA/IGhhbmRsZUZvY3VzVHJhcCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICBpc0RpYWxvZz17cm9sZSA9PT0gJ2RpYWxvZyd9XG4gICAgICAgICAgICAgICAgZGF0YS12aXNpYmxlLWluLWRvbT17XG4gICAgICAgICAgICAgICAgICAhZHluYW1pY0RvbVJlbmRlcmluZyA/IHZpc2libGVJbkRvbSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkYXRhLWFuaW1hdGVkPXthbmltYXRpb25EdXJhdGlvbiA+IDAgJiYgIW1heEhlaWdodH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0ZXh0fVxuICAgICAgICAgICAgICA8L1N0eWxlZFBvcHVwPixcbiAgICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBudWxsfVxuICAgICAgPC8+XG4gICAgKVxuICB9LFxuKVxuIl19 */',
|
|
72
|
+
styles: 'display:inherit;&[data-container-full-height="true"]{height:100%;}&[data-container-full-width="true"]{width:100%;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvSGlEIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG4gIGNvbXB1dGVQb3NpdGlvbnMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlsZHJlbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGluaGVyaXQ7XG5cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PVwidHJ1ZVwiXSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJltkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPVwidHJ1ZVwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICB9KSA9PiBSZWFjdE5vZGUpXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKlxuICAgKiBgYXV0b2AgcGxhY2VtZW50IHdpbGwgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wdXAgaWYgaXQgZG9lc24ndCBmaXQgaW4gdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcGxhY2VtZW50PzogUG9wdXBQbGFjZW1lbnRcbiAgLyoqXG4gICAqIEFsaWduIHRoZSBwb3B1cCB0byB0aGUgc3RhcnQgb3IgY2VudGVyIG9mIHRoZSBjaGlsZHJlbi5cbiAgICovXG4gIGFsaWduPzogUG9wdXBBbGlnblxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYGhlaWdodDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxIZWlnaHQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBtYXhXaWR0aCA9ICcxNC41cmVtJyxcbiAgICAgIG1heEhlaWdodCxcbiAgICAgIHZpc2libGUsXG4gICAgICBpbm5lclJlZixcbiAgICAgIHJvbGUgPSAncG9wdXAnLFxuICAgICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB0YWJJbmRleCA9IDAsXG4gICAgICBvbktleURvd24sXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFIYXNQb3B1cCxcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSA9IGZhbHNlLFxuICAgICAgZGVib3VuY2VEZWxheSA9IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2UsXG4gICAgICBwb3J0YWxUYXJnZXQsXG4gICAgICBkeW5hbWljRG9tUmVuZGVyaW5nID0gdHJ1ZSxcbiAgICB9OiBQb3B1cFByb3BzLFxuICAgIHJlZjogUmVmPEhUTUxEaXZFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgKCkgPT4gY2hpbGRyZW5SZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IGlubmVyUG9wdXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUG9wdXBSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IHRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgcG9wdXBQb3J0YWxUYXJnZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxUYXJnZXQpIHJldHVybiBwb3J0YWxUYXJnZXRcblxuICAgICAgaWYgKHJvbGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50KSByZXR1cm4gY2hpbGRyZW5SZWYuY3VycmVudFxuICAgICAgICBpZiAoaXNDbGllbnRTaWRlKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgICAgcG9wdXBSZWY6IGlubmVyUG9wdXBSZWYsXG4gICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldDogcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICBoYXNBcnJvdyxcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW2hhc0Fycm93LCBwbGFjZW1lbnQsIHBvcHVwUG9ydGFsVGFyZ2V0LCBhbGlnbl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsb3NlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24odHJ1ZSlcblxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgICAgIGRpc2FibGVBbmltYXRpb24sXG4gICAgICBkZWJvdW5jZURlbGF5LFxuICAgICAgb25DbG9zZSxcbiAgICAgIHVubW91bnRQb3B1cEZyb21Eb20sXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFdoZW4gbW91c2UgaG92ZXIgb3Igc3RvcCBob3ZlcmluZyBjaGlsZHJlbiB0aGlzIGZ1bmN0aW9uIGRpc3BsYXkgb3IgaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb25cbiAgICAgKiBlbmQsIHRoZW4gcmVtb3ZlIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IG9uUG9pbnRlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgZGVib3VuY2VEZWxheSBhbmQgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCB3ZSBjbGVhciB0aGUgZGVib3VuY2UgdGltZXJcbiAgICAgICAgaWYgKCF2aXNpYmxlICYmIGRlYm91bmNlRGVsYXkgPiAwICYmIGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIHVubW91bnQgdGhlIHBvcHVwXG4gICAgICAgIC8vIFRoZXJlIGlzIGRlYm91bmNlIGluIG9yZGVyIHRvIGF2b2lkIHBvcHVwIHRvIGZsaWNrZXIgd2hlbiB3ZSBtb3ZlIHRoZSBtb3VzZSBmcm9tIGNoaWxkcmVuIHRvIHBvcHVwXG4gICAgICAgIC8vIFRpbWVyIGlzIHVzZWQgdG8gZm9sbG93IHRoZSBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50ICYmICFkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIG1vdW50IHRoZSBwb3B1cFxuICAgICAgICAgIC8vIElmIHRoZSB0aW1lciBleGlzdHMgaXQgbWVhbnMgdGhlIHBvcHVwIHdhcyBhYm91dCB0byB1bW91bnQsIGJ1dCB3ZSBob3ZlcmVkIHRoZSBjaGlsZHJlbiBhZ2FpbixcbiAgICAgICAgICAvLyBzbyB3ZSBjbGVhciB0aGUgdGltZXIgYW5kIHRoZSBwb3B1cCB3aWxsIG5vdCBiZSB1bm1vdW50ZWRcbiAgICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBbmQgaGVyZSBpcyB3aGVuIHdlIGN1cnJlbnRseSBhcmUgaW4gYSBkZWJvdW5jZSB0aW1lciwgaXQgbWVhbnMgcG9wdXAgd2FzIGhvdmVyZWQgZHVyaW5nXG4gICAgICAgICAgLy8gdGhhdCBwZXJpb2QsIGFuZCBzbyB3ZSBjYW4gY2xlYXIgZGVib3VuY2UgdGltZXJcbiAgICAgICAgICBpZiAoZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWJvdW5jZURlbGF5ID4gMCkge1xuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSwgZGVib3VuY2VEZWxheSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodmlzaWJsZUluRG9tICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbcG9zaXRpb25zXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgb25CbHVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICBvbkZvY3VzPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgIG9uS2V5RG93bj8uKGV2ZW50KVxuICAgICAgICAgIH19XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC13aWR0aD17Y29udGFpbmVyRnVsbFdpZHRofVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PXtjb250YWluZXJGdWxsSGVpZ2h0fVxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9e2FyaWFIYXNQb3B1cH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YS1hbmltYXRlZD17YW5pbWF0aW9uRHVyYXRpb24gPiAwICYmICFtYXhIZWlnaHR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */',
|
|
73
73
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
74
74
|
});
|
|
75
75
|
const Popup = React.forwardRef(({
|
|
@@ -313,3 +313,4 @@ const Popup = React.forwardRef(({
|
|
|
313
313
|
] });
|
|
314
314
|
});
|
|
315
315
|
exports.Popup = Popup;
|
|
316
|
+
exports.StyledChildrenContainer = StyledChildrenContainer;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { HTMLAttributes, KeyboardEventHandler, ReactNode, Ref, RefObject } from 'react';
|
|
2
2
|
import type { PopupAlign, PopupPlacement } from './helpers';
|
|
3
|
+
export declare const StyledChildrenContainer: import("@emotion/styled").StyledComponent<{
|
|
4
|
+
theme?: import("@emotion/react").Theme;
|
|
5
|
+
as?: React.ElementType;
|
|
6
|
+
}, import("react").DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
3
7
|
type PopupProps = {
|
|
4
8
|
/**
|
|
5
9
|
* Id is automatically generated if not set. It is used for associating popup wrapper with popup portal.
|