@projectcor/maia-components 2.11.55 → 2.11.56-1

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/lib/App.js CHANGED
@@ -52,4 +52,4 @@ function App() {
52
52
  });
53
53
  }
54
54
  export default App;
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkRldkNoYXRBSSIsIkRldlByb2plY3RTdW1tYXJ5IiwiRGV2Q29udGV4dE1lbnRpb25JbnB1dCIsIlByb3ZpZGVycyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJQQUdFUyIsIkFwcCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBhZ2UiLCJzZXRQYWdlIiwiQ29tcG9uZW50IiwicGFnZXMiLCJPYmplY3QiLCJrZXlzIiwiY2hpbGRyZW4iLCJzdHlsZSIsImRpc3BsYXkiLCJnYXAiLCJwYWRkaW5nIiwibWFwIiwicCIsIm9uQ2xpY2siLCJmb250V2VpZ2h0IiwiaWQiXSwic291cmNlcyI6WyIuLi9zcmMvQXBwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9idXR0b24taGFzLXR5cGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IERldkNoYXRBSSB9IGZyb20gJy4vZGV2L0RldkNoYXRBSSdcbmltcG9ydCB7IERldlByb2plY3RTdW1tYXJ5IH0gZnJvbSAnLi9kZXYvUHJvamVjdFN1bW1hcnknXG5pbXBvcnQgeyBEZXZDb250ZXh0TWVudGlvbklucHV0IH0gZnJvbSAnLi9kZXYvRGV2Q29udGV4dE1lbnRpb25JbnB1dCdcblxuaW1wb3J0IHsgUHJvdmlkZXJzIH0gZnJvbSAnLi9kZXYvUHJvdmlkZXJzJ1xuXG5jb25zdCBQQUdFUyA9IHtcbiAgJ1Jlc3VtZW4gZGUgcHJveWVjdG9zJzogRGV2UHJvamVjdFN1bW1hcnksXG4gICdDaGF0IEFnZW50ZSBQTSc6IERldkNoYXRBSSxcbiAgJ0NvbnRleHQgTWVudGlvbiBJbnB1dCc6IERldkNvbnRleHRNZW50aW9uSW5wdXQsXG59XG5cbnR5cGUgUGFnZSA9IGtleW9mIHR5cGVvZiBQQUdFU1xuXG5mdW5jdGlvbiBBcHAoKSB7XG4gIGNvbnN0IFtwYWdlLCBzZXRQYWdlXSA9IHVzZVN0YXRlPFBhZ2U+KCdDb250ZXh0IE1lbnRpb24gSW5wdXQnKVxuICBjb25zdCBDb21wb25lbnQgPSBQQUdFU1twYWdlXVxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKFBBR0VTKSBhcyBQYWdlW11cblxuICByZXR1cm4gKFxuICAgIDxQcm92aWRlcnM+XG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiA4LCBwYWRkaW5nOiA4IH19PlxuICAgICAgICB7cGFnZXMubWFwKHAgPT4gKFxuICAgICAgICAgIDxidXR0b24ga2V5PXtwfSBvbkNsaWNrPXsoKSA9PiBzZXRQYWdlKHApfSBzdHlsZT17eyBmb250V2VpZ2h0OiBwYWdlID09PSBwID8gNzAwIDogNDAwIH19PlxuICAgICAgICAgICAge3B9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwibW9kYWxzLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnRcIiAvPlxuICAgICAgPGRpdiBpZD1cImFibS1hZ2VudC1tb2RhbFwiIC8+XG4gICAgICA8ZGl2IGlkPVwic25hY2tiYXItcG9ydGFsLW1haWEtY2hhdC1hZ2VudFwiIC8+XG4gICAgICA8ZGl2IGlkPVwiZW1vamktcGlja2VyLWNvbnRhaW5lclwiIC8+XG4gICAgICA8ZGl2IGlkPVwiZW1vamktcGlja2VyLWNvbnRhaW5lci1tYWlhLWNoYXQtYWdlbnRcIiAvPlxuICAgICAgPGRpdiBpZD1cIm1vZGFsLXBvcnRhbC12aWRlby1vbmJvYXJkaW5nXCIgLz5cbiAgICAgIDxDb21wb25lbnQgLz5cbiAgICA8L1Byb3ZpZGVycz5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBBcHBcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0EsU0FBU0EsUUFBUSxRQUFRLE9BQU87QUFFaEMsU0FBU0MsU0FBUyxRQUFRLGlCQUFpQjtBQUMzQyxTQUFTQyxpQkFBaUIsUUFBUSxzQkFBc0I7QUFDeEQsU0FBU0Msc0JBQXNCLFFBQVEsOEJBQThCO0FBRXJFLFNBQVNDLFNBQVMsUUFBUSxpQkFBaUI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBRTNDLElBQU1DLEtBQUssR0FBRztFQUNaLHNCQUFzQixFQUFFUCxpQkFBaUI7RUFDekMsZ0JBQWdCLEVBQUVELFNBQVM7RUFDM0IsdUJBQXVCLEVBQUVFO0FBQzNCLENBQUM7QUFJRCxTQUFTTyxHQUFHQSxDQUFBLEVBQUc7RUFDYixJQUFBQyxTQUFBLEdBQXdCWCxRQUFRLENBQU8sdUJBQXVCLENBQUM7SUFBQVksVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBeERHLElBQUksR0FBQUYsVUFBQTtJQUFFRyxPQUFPLEdBQUFILFVBQUE7RUFDcEIsSUFBTUksU0FBUyxHQUFHUCxLQUFLLENBQUNLLElBQUksQ0FBQztFQUM3QixJQUFNRyxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVixLQUFLLENBQVc7RUFFMUMsb0JBQ0VELEtBQUEsQ0FBQ0osU0FBUztJQUFBZ0IsUUFBQSxnQkFDUmQsSUFBQTtNQUFLZSxLQUFLLEVBQUU7UUFBRUMsT0FBTyxFQUFFLE1BQU07UUFBRUMsR0FBRyxFQUFFLENBQUM7UUFBRUMsT0FBTyxFQUFFO01BQUUsQ0FBRTtNQUFBSixRQUFBLEVBQ2pESCxLQUFLLENBQUNRLEdBQUcsQ0FBQyxVQUFBQyxDQUFDO1FBQUEsb0JBQ1ZwQixJQUFBO1VBQWdCcUIsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7WUFBQSxPQUFRWixPQUFPLENBQUNXLENBQUMsQ0FBQztVQUFBLENBQUM7VUFBQ0wsS0FBSyxFQUFFO1lBQUVPLFVBQVUsRUFBRWQsSUFBSSxLQUFLWSxDQUFDLEdBQUcsR0FBRyxHQUFHO1VBQUksQ0FBRTtVQUFBTixRQUFBLEVBQ3RGTTtRQUFDLEdBRFNBLENBRUwsQ0FBQztNQUFBLENBQ1Y7SUFBQyxDQUNDLENBQUMsZUFDTnBCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUErQixDQUFFLENBQUMsZUFDMUN2QixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBaUIsQ0FBRSxDQUFDLGVBQzVCdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQWlDLENBQUUsQ0FBQyxlQUM1Q3ZCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUF3QixDQUFFLENBQUMsZUFDbkN2QixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBd0MsQ0FBRSxDQUFDLGVBQ25EdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQStCLENBQUUsQ0FBQyxlQUMxQ3ZCLElBQUEsQ0FBQ1UsU0FBUyxJQUFFLENBQUM7RUFBQSxDQUNKLENBQUM7QUFFaEI7QUFFQSxlQUFlTixHQUFHIiwiaWdub3JlTGlzdCI6W119
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkRldkNoYXRBSSIsIkRldlByb2plY3RTdW1tYXJ5IiwiRGV2Q29udGV4dE1lbnRpb25JbnB1dCIsIlByb3ZpZGVycyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJQQUdFUyIsIkFwcCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBhZ2UiLCJzZXRQYWdlIiwiQ29tcG9uZW50IiwicGFnZXMiLCJPYmplY3QiLCJrZXlzIiwiY2hpbGRyZW4iLCJzdHlsZSIsImRpc3BsYXkiLCJnYXAiLCJwYWRkaW5nIiwibWFwIiwicCIsIm9uQ2xpY2siLCJmb250V2VpZ2h0IiwiaWQiXSwic291cmNlcyI6WyIuLi9zcmMvQXBwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9idXR0b24taGFzLXR5cGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IERldkNoYXRBSSB9IGZyb20gJy4vZGV2L0RldkNoYXRBSSdcbmltcG9ydCB7IERldlByb2plY3RTdW1tYXJ5IH0gZnJvbSAnLi9kZXYvUHJvamVjdFN1bW1hcnknXG5pbXBvcnQgeyBEZXZDb250ZXh0TWVudGlvbklucHV0IH0gZnJvbSAnLi9kZXYvRGV2Q29udGV4dE1lbnRpb25JbnB1dCdcbmltcG9ydCB7IFByb3ZpZGVycyB9IGZyb20gJy4vZGV2L1Byb3ZpZGVycydcblxuY29uc3QgUEFHRVMgPSB7XG4gICdSZXN1bWVuIGRlIHByb3llY3Rvcyc6IERldlByb2plY3RTdW1tYXJ5LFxuICAnQ2hhdCBBZ2VudGUgUE0nOiBEZXZDaGF0QUksXG4gICdDb250ZXh0IE1lbnRpb24gSW5wdXQnOiBEZXZDb250ZXh0TWVudGlvbklucHV0LFxufVxuXG50eXBlIFBhZ2UgPSBrZXlvZiB0eXBlb2YgUEFHRVNcblxuZnVuY3Rpb24gQXBwKCkge1xuICBjb25zdCBbcGFnZSwgc2V0UGFnZV0gPSB1c2VTdGF0ZTxQYWdlPignQ29udGV4dCBNZW50aW9uIElucHV0JylcbiAgY29uc3QgQ29tcG9uZW50ID0gUEFHRVNbcGFnZV1cbiAgY29uc3QgcGFnZXMgPSBPYmplY3Qua2V5cyhQQUdFUykgYXMgUGFnZVtdXG5cbiAgcmV0dXJuIChcbiAgICA8UHJvdmlkZXJzPlxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogOCwgcGFkZGluZzogOCB9fT5cbiAgICAgICAge3BhZ2VzLm1hcChwID0+IChcbiAgICAgICAgICA8YnV0dG9uIGtleT17cH0gb25DbGljaz17KCkgPT4gc2V0UGFnZShwKX0gc3R5bGU9e3sgZm9udFdlaWdodDogcGFnZSA9PT0gcCA/IDcwMCA6IDQwMCB9fT5cbiAgICAgICAgICAgIHtwfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBpZD1cIm1vZGFscy1wb3J0YWwtbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICAgIDxkaXYgaWQ9XCJhYm0tYWdlbnQtbW9kYWxcIiAvPlxuICAgICAgPGRpdiBpZD1cInNuYWNrYmFyLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnRcIiAvPlxuICAgICAgPGRpdiBpZD1cImVtb2ppLXBpY2tlci1jb250YWluZXJcIiAvPlxuICAgICAgPGRpdiBpZD1cImVtb2ppLXBpY2tlci1jb250YWluZXItbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICAgIDxkaXYgaWQ9XCJtb2RhbC1wb3J0YWwtdmlkZW8tb25ib2FyZGluZ1wiIC8+XG4gICAgICA8Q29tcG9uZW50IC8+XG4gICAgPC9Qcm92aWRlcnM+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgQXBwXG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBLFNBQVNBLFFBQVEsUUFBUSxPQUFPO0FBRWhDLFNBQVNDLFNBQVMsUUFBUSxpQkFBaUI7QUFDM0MsU0FBU0MsaUJBQWlCLFFBQVEsc0JBQXNCO0FBQ3hELFNBQVNDLHNCQUFzQixRQUFRLDhCQUE4QjtBQUNyRSxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUUzQyxJQUFNQyxLQUFLLEdBQUc7RUFDWixzQkFBc0IsRUFBRVAsaUJBQWlCO0VBQ3pDLGdCQUFnQixFQUFFRCxTQUFTO0VBQzNCLHVCQUF1QixFQUFFRTtBQUMzQixDQUFDO0FBSUQsU0FBU08sR0FBR0EsQ0FBQSxFQUFHO0VBQ2IsSUFBQUMsU0FBQSxHQUF3QlgsUUFBUSxDQUFPLHVCQUF1QixDQUFDO0lBQUFZLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQXhERyxJQUFJLEdBQUFGLFVBQUE7SUFBRUcsT0FBTyxHQUFBSCxVQUFBO0VBQ3BCLElBQU1JLFNBQVMsR0FBR1AsS0FBSyxDQUFDSyxJQUFJLENBQUM7RUFDN0IsSUFBTUcsS0FBSyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQ1YsS0FBSyxDQUFXO0VBRTFDLG9CQUNFRCxLQUFBLENBQUNKLFNBQVM7SUFBQWdCLFFBQUEsZ0JBQ1JkLElBQUE7TUFBS2UsS0FBSyxFQUFFO1FBQUVDLE9BQU8sRUFBRSxNQUFNO1FBQUVDLEdBQUcsRUFBRSxDQUFDO1FBQUVDLE9BQU8sRUFBRTtNQUFFLENBQUU7TUFBQUosUUFBQSxFQUNqREgsS0FBSyxDQUFDUSxHQUFHLENBQUMsVUFBQUMsQ0FBQztRQUFBLG9CQUNWcEIsSUFBQTtVQUFnQnFCLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1lBQUEsT0FBUVosT0FBTyxDQUFDVyxDQUFDLENBQUM7VUFBQSxDQUFDO1VBQUNMLEtBQUssRUFBRTtZQUFFTyxVQUFVLEVBQUVkLElBQUksS0FBS1ksQ0FBQyxHQUFHLEdBQUcsR0FBRztVQUFJLENBQUU7VUFBQU4sUUFBQSxFQUN0Rk07UUFBQyxHQURTQSxDQUVMLENBQUM7TUFBQSxDQUNWO0lBQUMsQ0FDQyxDQUFDLGVBQ05wQixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBK0IsQ0FBRSxDQUFDLGVBQzFDdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQWlCLENBQUUsQ0FBQyxlQUM1QnZCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUFpQyxDQUFFLENBQUMsZUFDNUN2QixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBd0IsQ0FBRSxDQUFDLGVBQ25DdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQXdDLENBQUUsQ0FBQyxlQUNuRHZCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUErQixDQUFFLENBQUMsZUFDMUN2QixJQUFBLENBQUNVLFNBQVMsSUFBRSxDQUFDO0VBQUEsQ0FDSixDQUFDO0FBRWhCO0FBRUEsZUFBZU4sR0FBRyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,89 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useEffect, useRef, useState } from 'react';
3
+ import { Loader } from '../Loader';
4
+ import { SCAgentActivityIndicator, SCStreamPendingSkeleton } from './AgentActivityIndicator.styles';
5
+ import { formatActivityElapsed } from './AgentActivityIndicator.utils';
6
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
7
+ export var AgentActivityIndicator = function AgentActivityIndicator(_ref) {
8
+ var activity = _ref.activity,
9
+ _ref$compact = _ref.compact,
10
+ compact = _ref$compact === void 0 ? false : _ref$compact,
11
+ className = _ref.className;
12
+ var _useState = useState(false),
13
+ _useState2 = _slicedToArray(_useState, 2),
14
+ isChanging = _useState2[0],
15
+ setIsChanging = _useState2[1];
16
+ var _useState3 = useState(0),
17
+ _useState4 = _slicedToArray(_useState3, 2),
18
+ elapsedSeconds = _useState4[0],
19
+ setElapsedSeconds = _useState4[1];
20
+ var prevMessageRef = useRef(activity.message);
21
+ useEffect(function () {
22
+ setElapsedSeconds(0);
23
+ var intervalId = window.setInterval(function () {
24
+ setElapsedSeconds(function (prev) {
25
+ return prev + 1;
26
+ });
27
+ }, 1000);
28
+ return function () {
29
+ return window.clearInterval(intervalId);
30
+ };
31
+ }, [activity.phase]);
32
+ useEffect(function () {
33
+ var timeoutId;
34
+ if (prevMessageRef.current !== activity.message) {
35
+ prevMessageRef.current = activity.message;
36
+ setIsChanging(true);
37
+ timeoutId = window.setTimeout(function () {
38
+ return setIsChanging(false);
39
+ }, 220);
40
+ }
41
+ return function () {
42
+ if (timeoutId != null) {
43
+ window.clearTimeout(timeoutId);
44
+ }
45
+ };
46
+ }, [activity.message]);
47
+ var elapsedLabel = formatActivityElapsed(elapsedSeconds);
48
+ return /*#__PURE__*/_jsxs(SCAgentActivityIndicator, {
49
+ $compact: compact,
50
+ className: className,
51
+ role: "status",
52
+ "aria-live": "polite",
53
+ "aria-label": "".concat(activity.message, " (").concat(elapsedLabel, ")"),
54
+ children: [/*#__PURE__*/_jsx(Loader, {
55
+ size: "small",
56
+ className: "AgentActivityIndicator-loader"
57
+ }), /*#__PURE__*/_jsxs("p", {
58
+ className: "AgentActivityIndicator-text",
59
+ "data-changing": isChanging ? 'true' : undefined,
60
+ children: [/*#__PURE__*/_jsx("span", {
61
+ className: "AgentActivityIndicator-label",
62
+ children: activity.message
63
+ }), elapsedSeconds >= 3 && /*#__PURE__*/_jsxs(_Fragment, {
64
+ children: [/*#__PURE__*/_jsx("span", {
65
+ className: "AgentActivityIndicator-separator",
66
+ "aria-hidden": true,
67
+ children: "\xB7"
68
+ }), /*#__PURE__*/_jsx("span", {
69
+ className: "AgentActivityIndicator-timer",
70
+ "aria-hidden": true,
71
+ children: elapsedLabel
72
+ })]
73
+ })]
74
+ })]
75
+ });
76
+ };
77
+ export var StreamPendingSkeleton = function StreamPendingSkeleton() {
78
+ return /*#__PURE__*/_jsxs(SCStreamPendingSkeleton, {
79
+ "aria-hidden": true,
80
+ children: [/*#__PURE__*/_jsx("span", {
81
+ className: "StreamPendingSkeleton-line"
82
+ }), /*#__PURE__*/_jsx("span", {
83
+ className: "StreamPendingSkeleton-line"
84
+ }), /*#__PURE__*/_jsx("span", {
85
+ className: "StreamPendingSkeleton-line"
86
+ })]
87
+ });
88
+ };
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiTG9hZGVyIiwiU0NBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiU0NTdHJlYW1QZW5kaW5nU2tlbGV0b24iLCJmb3JtYXRBY3Rpdml0eUVsYXBzZWQiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiX3JlZiIsImFjdGl2aXR5IiwiX3JlZiRjb21wYWN0IiwiY29tcGFjdCIsImNsYXNzTmFtZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzQ2hhbmdpbmciLCJzZXRJc0NoYW5naW5nIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJlbGFwc2VkU2Vjb25kcyIsInNldEVsYXBzZWRTZWNvbmRzIiwicHJldk1lc3NhZ2VSZWYiLCJtZXNzYWdlIiwiaW50ZXJ2YWxJZCIsIndpbmRvdyIsInNldEludGVydmFsIiwicHJldiIsImNsZWFySW50ZXJ2YWwiLCJwaGFzZSIsInRpbWVvdXRJZCIsImN1cnJlbnQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiZWxhcHNlZExhYmVsIiwiJGNvbXBhY3QiLCJyb2xlIiwiY29uY2F0IiwiY2hpbGRyZW4iLCJzaXplIiwidW5kZWZpbmVkIiwiU3RyZWFtUGVuZGluZ1NrZWxldG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQWdlbnRBY3Rpdml0eUluZGljYXRvci9BZ2VudEFjdGl2aXR5SW5kaWNhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi9Mb2FkZXInXG5pbXBvcnQgdHlwZSB7IFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5pbXBvcnQgeyBTQ0FnZW50QWN0aXZpdHlJbmRpY2F0b3IsIFNDU3RyZWFtUGVuZGluZ1NrZWxldG9uIH0gZnJvbSAnLi9BZ2VudEFjdGl2aXR5SW5kaWNhdG9yLnN0eWxlcydcbmltcG9ydCB7IGZvcm1hdEFjdGl2aXR5RWxhcHNlZCB9IGZyb20gJy4vQWdlbnRBY3Rpdml0eUluZGljYXRvci51dGlscydcblxuZXhwb3J0IGludGVyZmFjZSBBZ2VudEFjdGl2aXR5SW5kaWNhdG9yUHJvcHMge1xuICBhY3Rpdml0eTogU3RyZWFtQWN0aXZpdHlcbiAgY29tcGFjdD86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBBZ2VudEFjdGl2aXR5SW5kaWNhdG9yID0gKHsgYWN0aXZpdHksIGNvbXBhY3QgPSBmYWxzZSwgY2xhc3NOYW1lIH06IEFnZW50QWN0aXZpdHlJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCBbaXNDaGFuZ2luZywgc2V0SXNDaGFuZ2luZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2VsYXBzZWRTZWNvbmRzLCBzZXRFbGFwc2VkU2Vjb25kc10gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBwcmV2TWVzc2FnZVJlZiA9IHVzZVJlZihhY3Rpdml0eS5tZXNzYWdlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0RWxhcHNlZFNlY29uZHMoMClcbiAgICBjb25zdCBpbnRlcnZhbElkID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHNldEVsYXBzZWRTZWNvbmRzKHByZXYgPT4gcHJldiArIDEpXG4gICAgfSwgMTAwMClcblxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cuY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKVxuICB9LCBbYWN0aXZpdHkucGhhc2VdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHRpbWVvdXRJZDogbnVtYmVyIHwgdW5kZWZpbmVkXG5cbiAgICBpZiAocHJldk1lc3NhZ2VSZWYuY3VycmVudCAhPT0gYWN0aXZpdHkubWVzc2FnZSkge1xuICAgICAgcHJldk1lc3NhZ2VSZWYuY3VycmVudCA9IGFjdGl2aXR5Lm1lc3NhZ2VcbiAgICAgIHNldElzQ2hhbmdpbmcodHJ1ZSlcbiAgICAgIHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHNldElzQ2hhbmdpbmcoZmFsc2UpLCAyMjApXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICh0aW1lb3V0SWQgIT0gbnVsbCkge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFthY3Rpdml0eS5tZXNzYWdlXSlcblxuICBjb25zdCBlbGFwc2VkTGFiZWwgPSBmb3JtYXRBY3Rpdml0eUVsYXBzZWQoZWxhcHNlZFNlY29uZHMpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBZ2VudEFjdGl2aXR5SW5kaWNhdG9yXG4gICAgICAkY29tcGFjdD17Y29tcGFjdH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgYXJpYS1sYWJlbD17YCR7YWN0aXZpdHkubWVzc2FnZX0gKCR7ZWxhcHNlZExhYmVsfSlgfVxuICAgID5cbiAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwiQWdlbnRBY3Rpdml0eUluZGljYXRvci1sb2FkZXJcIiAvPlxuICAgICAgPHAgY2xhc3NOYW1lPVwiQWdlbnRBY3Rpdml0eUluZGljYXRvci10ZXh0XCIgZGF0YS1jaGFuZ2luZz17aXNDaGFuZ2luZyA/ICd0cnVlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIkFnZW50QWN0aXZpdHlJbmRpY2F0b3ItbGFiZWxcIj57YWN0aXZpdHkubWVzc2FnZX08L3NwYW4+XG4gICAgICAgIHtlbGFwc2VkU2Vjb25kcyA+PSAzICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiQWdlbnRBY3Rpdml0eUluZGljYXRvci1zZXBhcmF0b3JcIiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICAgICAgwrdcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIkFnZW50QWN0aXZpdHlJbmRpY2F0b3ItdGltZXJcIiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICAgICAge2VsYXBzZWRMYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvcD5cbiAgICA8L1NDQWdlbnRBY3Rpdml0eUluZGljYXRvcj5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgU3RyZWFtUGVuZGluZ1NrZWxldG9uID0gKCkgPT4gKFxuICA8U0NTdHJlYW1QZW5kaW5nU2tlbGV0b24gYXJpYS1oaWRkZW4+XG4gICAgPHNwYW4gY2xhc3NOYW1lPVwiU3RyZWFtUGVuZGluZ1NrZWxldG9uLWxpbmVcIiAvPlxuICAgIDxzcGFuIGNsYXNzTmFtZT1cIlN0cmVhbVBlbmRpbmdTa2VsZXRvbi1saW5lXCIgLz5cbiAgICA8c3BhbiBjbGFzc05hbWU9XCJTdHJlYW1QZW5kaW5nU2tlbGV0b24tbGluZVwiIC8+XG4gIDwvU0NTdHJlYW1QZW5kaW5nU2tlbGV0b24+XG4pXG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUMxRCxTQUFTQyxNQUFNLFFBQVEsV0FBVztBQUVsQyxTQUFTQyx3QkFBd0IsRUFBRUMsdUJBQXVCLFFBQVEsaUNBQWlDO0FBQ25HLFNBQVNDLHFCQUFxQixRQUFRLGdDQUFnQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUEsRUFBQUMsSUFBQSxJ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
@@ -0,0 +1,21 @@
1
+ import styled, { keyframes } from 'styled-components';
2
+ import colors from '@projectcor/theme/lib/base/colors';
3
+ var shimmer = keyframes(["0%{background-position:200% 0;}100%{background-position:-200% 0;}"]);
4
+ export var SCAgentActivityIndicator = styled.div.withConfig({
5
+ displayName: "AgentActivityIndicatorstyles__SCAgentActivityIndicator",
6
+ componentId: "sc-d7fode-0"
7
+ })(["width:100%;display:flex;gap:10px;align-items:center;padding:", ";max-width:600px;.AgentActivityIndicator-text{margin:0;display:flex;align-items:baseline;gap:6px;min-width:0;font-size:", ";line-height:140%;color:", ";transition:opacity 0.25s ease;}.AgentActivityIndicator-text[data-changing='true']{opacity:0.55;}.AgentActivityIndicator-label{min-width:0;}.AgentActivityIndicator-separator{flex-shrink:0;color:", ";opacity:0.72;}.AgentActivityIndicator-timer{flex-shrink:0;font-size:", ";font-variant-numeric:tabular-nums;color:", ";opacity:0.72;letter-spacing:0.02em;}.AgentActivityIndicator-loader{width:min-content;flex-shrink:0;}"], function (_ref) {
8
+ var $compact = _ref.$compact;
9
+ return $compact ? '6px 0 10px' : '16px 0';
10
+ }, function (_ref2) {
11
+ var $compact = _ref2.$compact;
12
+ return $compact ? '13px' : '12px';
13
+ }, colors.text.mediumGray, colors.text.mediumGray, function (_ref3) {
14
+ var $compact = _ref3.$compact;
15
+ return $compact ? '12px' : '11px';
16
+ }, colors.text.mediumGray);
17
+ export var SCStreamPendingSkeleton = styled.div.withConfig({
18
+ displayName: "AgentActivityIndicatorstyles__SCStreamPendingSkeleton",
19
+ componentId: "sc-d7fode-1"
20
+ })(["display:flex;flex-direction:column;gap:10px;padding:4px 0 8px;min-height:48px;width:100%;max-width:520px;.StreamPendingSkeleton-line{height:10px;border-radius:6px;background:linear-gradient(90deg,rgba(0,0,0,0.04) 0%,rgba(0,0,0,0.08) 50%,rgba(0,0,0,0.04) 100%);background-size:200% 100%;animation:", " 1.8s ease-in-out infinite;}.StreamPendingSkeleton-line:nth-child(1){width:92%;}.StreamPendingSkeleton-line:nth-child(2){width:78%;animation-delay:0.12s;}.StreamPendingSkeleton-line:nth-child(3){width:54%;animation-delay:0.24s;}"], shimmer);
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJzaGltbWVyIiwiU0NBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmIiwiJGNvbXBhY3QiLCJfcmVmMiIsInRleHQiLCJtZWRpdW1HcmF5IiwiX3JlZjMiLCJTQ1N0cmVhbVBlbmRpbmdTa2VsZXRvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FnZW50QWN0aXZpdHlJbmRpY2F0b3IvQWdlbnRBY3Rpdml0eUluZGljYXRvci5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5jb25zdCBzaGltbWVyID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQWdlbnRBY3Rpdml0eUluZGljYXRvciA9IHN0eWxlZC5kaXY8eyAkY29tcGFjdD86IGJvb2xlYW4gfT5gXG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6ICR7KHsgJGNvbXBhY3QgfSkgPT4gKCRjb21wYWN0ID8gJzZweCAwIDEwcHgnIDogJzE2cHggMCcpfTtcbiAgbWF4LXdpZHRoOiA2MDBweDtcblxuICAuQWdlbnRBY3Rpdml0eUluZGljYXRvci10ZXh0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogJHsoeyAkY29tcGFjdCB9KSA9PiAoJGNvbXBhY3QgPyAnMTNweCcgOiAnMTJweCcpfTtcbiAgICBsaW5lLWhlaWdodDogMTQwJTtcbiAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG4gIH1cblxuICAuQWdlbnRBY3Rpdml0eUluZGljYXRvci10ZXh0W2RhdGEtY2hhbmdpbmc9J3RydWUnXSB7XG4gICAgb3BhY2l0eTogMC41NTtcbiAgfVxuXG4gIC5BZ2VudEFjdGl2aXR5SW5kaWNhdG9yLWxhYmVsIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAuQWdlbnRBY3Rpdml0eUluZGljYXRvci1zZXBhcmF0b3Ige1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0Lm1lZGl1bUdyYXl9O1xuICAgIG9wYWNpdHk6IDAuNzI7XG4gIH1cblxuICAuQWdlbnRBY3Rpdml0eUluZGljYXRvci10aW1lciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZm9udC1zaXplOiAkeyh7ICRjb21wYWN0IH0pID0+ICgkY29tcGFjdCA/ICcxMnB4JyA6ICcxMXB4Jyl9O1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgY29sb3I6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG4gICAgb3BhY2l0eTogMC43MjtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICB9XG5cbiAgLkFnZW50QWN0aXZpdHlJbmRpY2F0b3ItbG9hZGVyIHtcbiAgICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDU3RyZWFtUGVuZGluZ1NrZWxldG9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiA0cHggMCA4cHg7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDUyMHB4O1xuXG4gIC5TdHJlYW1QZW5kaW5nU2tlbGV0b24tbGluZSB7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwgMCwgMCwgMC4wNCkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wOCkgNTAlLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDEwMCUpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICAgIGFuaW1hdGlvbjogJHtzaGltbWVyfSAxLjhzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICB9XG5cbiAgLlN0cmVhbVBlbmRpbmdTa2VsZXRvbi1saW5lOm50aC1jaGlsZCgxKSB7XG4gICAgd2lkdGg6IDkyJTtcbiAgfVxuICAuU3RyZWFtUGVuZGluZ1NrZWxldG9uLWxpbmU6bnRoLWNoaWxkKDIpIHtcbiAgICB3aWR0aDogNzglO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMC4xMnM7XG4gIH1cbiAgLlN0cmVhbVBlbmRpbmdTa2VsZXRvbi1saW5lOm50aC1jaGlsZCgzKSB7XG4gICAgd2lkdGg6IDU0JTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuMjRzO1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sSUFBSUMsU0FBUyxRQUFRLG1CQUFtQjtBQUNyRCxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELElBQU1DLE9BQU8sR0FBR0YsU0FBUyx1RUFPeEI7QUFFRCxPQUFPLElBQU1HLHdCQUF3QixHQUFHSixNQUFNLENBQUNLLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxpb0JBS3JDLFVBQUFDLElBQUE7RUFBQSxJQUFHQyxRQUFRLEdBQUFELElBQUEsQ0FBUkMsUUFBUTtFQUFBLE9BQVFBLFFBQVEsR0FBRyxZQUFZLEdBQUcsUUFBUTtBQUFBLENBQUMsRUFTbEQsVUFBQUMsS0FBQTtFQUFBLElBQUdELFFBQVEsR0FBQUMsS0FBQSxDQUFSRCxRQUFRO0VBQUEsT0FBUUEsUUFBUSxHQUFHLE1BQU0sR0FBRyxNQUFNO0FBQUEsQ0FBQyxFQUVsRFIsTUFBTSxDQUFDVSxJQUFJLENBQUNDLFVBQVUsRUFjdEJYLE1BQU0sQ0FBQ1UsSUFBSSxDQUFDQyxVQUFVLEVBTWxCLFVBQUFDLEtBQUE7RUFBQSxJQUFHSixRQUFRLEdBQUFJLEtBQUEsQ0FBUkosUUFBUTtFQUFBLE9BQVFBLFFBQVEsR0FBRyxNQUFNLEdBQUcsTUFBTTtBQUFBLENBQUMsRUFFbERSLE1BQU0sQ0FBQ1UsSUFBSSxDQUFDQyxVQUFVLENBU2xDO0FBRUQsT0FBTyxJQUFNRSx1QkFBdUIsR0FBR2YsTUFBTSxDQUFDSyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEseWhCQWNoQ0wsT0FBTyxDQWN2QiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,9 @@
1
+ export var formatActivityElapsed = function formatActivityElapsed(totalSeconds) {
2
+ var minutes = Math.floor(totalSeconds / 60);
3
+ var seconds = totalSeconds % 60;
4
+ if (minutes === 0) {
5
+ return "".concat(seconds, "s");
6
+ }
7
+ return "".concat(minutes, "m ").concat(seconds, "s");
8
+ };
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXRBY3Rpdml0eUVsYXBzZWQiLCJ0b3RhbFNlY29uZHMiLCJtaW51dGVzIiwiTWF0aCIsImZsb29yIiwic2Vjb25kcyIsImNvbmNhdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FnZW50QWN0aXZpdHlJbmRpY2F0b3IvQWdlbnRBY3Rpdml0eUluZGljYXRvci51dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZm9ybWF0QWN0aXZpdHlFbGFwc2VkID0gKHRvdGFsU2Vjb25kczogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IodG90YWxTZWNvbmRzIC8gNjApXG4gIGNvbnN0IHNlY29uZHMgPSB0b3RhbFNlY29uZHMgJSA2MFxuICBpZiAobWludXRlcyA9PT0gMCkge1xuICAgIHJldHVybiBgJHtzZWNvbmRzfXNgXG4gIH1cbiAgcmV0dXJuIGAke21pbnV0ZXN9bSAke3NlY29uZHN9c2Bcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFNQSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJQyxZQUFvQixFQUFhO0VBQ3JFLElBQU1DLE9BQU8sR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUNILFlBQVksR0FBRyxFQUFFLENBQUM7RUFDN0MsSUFBTUksT0FBTyxHQUFHSixZQUFZLEdBQUcsRUFBRTtFQUNqQyxJQUFJQyxPQUFPLEtBQUssQ0FBQyxFQUFFO0lBQ2pCLFVBQUFJLE1BQUEsQ0FBVUQsT0FBTztFQUNuQjtFQUNBLFVBQUFDLE1BQUEsQ0FBVUosT0FBTyxRQUFBSSxNQUFBLENBQUtELE9BQU87QUFDL0IsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,2 @@
1
+ export { AgentActivityIndicator, StreamPendingSkeleton } from './AgentActivityIndicator';
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiU3RyZWFtUGVuZGluZ1NrZWxldG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQWdlbnRBY3Rpdml0eUluZGljYXRvci9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBZ2VudEFjdGl2aXR5SW5kaWNhdG9yLCBTdHJlYW1QZW5kaW5nU2tlbGV0b24gfSBmcm9tICcuL0FnZW50QWN0aXZpdHlJbmRpY2F0b3InXG5leHBvcnQgdHlwZSB7IEFnZW50QWN0aXZpdHlJbmRpY2F0b3JQcm9wcyB9IGZyb20gJy4vQWdlbnRBY3Rpdml0eUluZGljYXRvcidcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0Esc0JBQXNCLEVBQUVDLHFCQUFxQixRQUFRLDBCQUEwQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -131,7 +131,9 @@ export var MAIAInput = function MAIAInput(_ref) {
131
131
  var analyticsCloneEntityPayload = (agent === null || agent === void 0 ? void 0 : agent.type) === 'clone' ? {
132
132
  entity: (_agent$entity = agent.entity) !== null && _agent$entity !== void 0 ? _agent$entity : null
133
133
  } : {};
134
- var _useSlashCommands = useSlashCommands(agent === null || agent === void 0 ? void 0 : agent.id),
134
+
135
+ // Slash commands solo aplican a agentes clone especialistas (los custom y maiaker/global no los tienen habilitados).
136
+ var _useSlashCommands = useSlashCommands((agent === null || agent === void 0 ? void 0 : agent.type) === 'clone' && (agent === null || agent === void 0 ? void 0 : agent.entity) !== 'global' ? agent === null || agent === void 0 ? void 0 : agent.id : undefined),
135
137
  slashCommands = _useSlashCommands.commands;
136
138
  var _useState13 = useState(false),
137
139
  _useState14 = _slicedToArray(_useState13, 2),
@@ -788,4 +790,4 @@ export var MAIAInput = function MAIAInput(_ref) {
788
790
  }), popoverNode && /*#__PURE__*/createPortal(popoverNode, document.body)]
789
791
  });
790
792
  };
791
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsImNvbG9ycyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwidXNlR2xvYmFsQ29udGV4dCIsIk1vZGFsRmlsZUV4Y2VlZHMiLCJTbGFzaENvbW1hbmREcm9wZG93biIsInVzZVNsYXNoQ29tbWFuZHMiLCJxdWlja0FjdGlvblRpdGxlVG9UeXBlIiwidXNlVCIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldENoYXRUb29sc01lbnVBZ2VudFR5cGUiLCJNQUlBX0NIQVRfSU5QVVRfVUkiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVzIiwiTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiIsIk1BWF9GSUxFX1NJWkVfTUJfT0xEIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIiwiQVBQQ1VFU19FVkVOVFMiLCJ0cmFja0FwcGN1ZXNFdmVudCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZU1lbnRpb25Qb3BvdmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVE9PTF9DSElQX0VYSVRfTVMiLCJNQUlBSW5wdXQiLCJfcmVmIiwiX2FnZW50JGVudGl0eSIsIm9uU2VuZE1lc3NhZ2UiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJfcmVmJGFsaWduQnV0dG9ucyIsImFsaWduQnV0dG9ucyIsIm9uRmlsZUF0dGFjaCIsIm9uRGVsZXRlQXR0YWNobWVudCIsIl9yZWYkYXR0YWNobWVudHMiLCJhdHRhY2htZW50cyIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJ0b29sdGlwWkluZGV4IiwiX3VzZVQiLCJ0IiwiZWRpdG9yUmVmIiwiZmlsZUlucHV0UmVmIiwid3JhcHBlclJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImhhc1dyYXBwZWRUb1NlY29uZExpbmUiLCJzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJoYXNUeXBpbmdQcmVzZW5jZSIsInNldEhhc1R5cGluZ1ByZXNlbmNlIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc0ZvY3VzZWQiLCJzZXRJc0ZvY3VzZWQiLCJfdXNlU3RhdGU3IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImV4Y2VlZGVkRmlsZXMiLCJmaWxlU2l6ZXMiLCJfdXNlU3RhdGU4IiwibW9kYWxQcm9wcyIsInNldE1vZGFsUHJvcHMiLCJldmVudEFtcGxpdHVkZSIsIl91c2VHbG9iYWxDb250ZXh0IiwidG9nZ2xlV2ViU2VhcmNoIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJ0b2dnbGVEZWVwU2VhcmNoIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiYWdlbnQiLCJwbHVzTWVudVpJbmRleCIsIl91c2VNZW50aW9uUG9wb3ZlciIsInBvcG92ZXJBbmNob3JSZWYiLCJwb3BvdmVyT3BlbiIsInJlc2V0TWVudGlvbk9wZW5UcmFja2luZyIsImhhbmRsZVRyaWdnZXIiLCJoYW5kbGVQb3BvdmVyS2V5RG93biIsImhhbmRsZUtleURvd24iLCJwb3BvdmVyTm9kZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwicGx1c01lbnVBbmNob3IiLCJzZXRQbHVzTWVudUFuY2hvciIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsImFjdGl2ZVRvb2xDaGlwSG92ZXJlZCIsInNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZCIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJ0b29sQ2hpcEV4aXRpbmciLCJzZXRUb29sQ2hpcEV4aXRpbmciLCJ0b29sQ2hpcEV4aXRUaW1lclJlZiIsInNlYXJjaE1vZGVBY3RpdmVSZWYiLCJ3ZWIiLCJkZWVwIiwicGx1c01lbnVPcGVuIiwiQm9vbGVhbiIsInByZXZpb3VzQWdlbnRJZFJlZiIsInVuZGVmaW5lZCIsInByZXZpb3VzQ2hhdElkUmVmIiwicHJldmlvdXNOZXdDaGF0S2V5UmVmIiwiYW5hbHl0aWNzQWdlbnRUeXBlIiwiYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIiwidHlwZSIsImVudGl0eSIsIl91c2VTbGFzaENvbW1hbmRzIiwiaWQiLCJzbGFzaENvbW1hbmRzIiwiY29tbWFuZHMiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0Iiwic2hvd1NsYXNoRHJvcGRvd24iLCJzZXRTaG93U2xhc2hEcm9wZG93biIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJzbGFzaFF1ZXJ5Iiwic2V0U2xhc2hRdWVyeSIsInNsYXNoTWVudVdhc09wZW5SZWYiLCJzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24iLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwiX2VkaXRvclJlZiRjdXJyZW50IiwiY3VycmVudCIsImZvY3VzIiwiY2xvc2VQbHVzTWVudSIsImNhbmNlbFBlbmRpbmdUb29sQ2hpcEV4aXQiLCJjbGVhclRpbWVvdXQiLCJoYW5kbGVQbHVzQnV0dG9uQ2xpY2siLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiY3VycmVudFRhcmdldCIsImFpQ2hhdFBsdXNPcGVuIiwiX29iamVjdFNwcmVhZCIsImFnZW50X3R5cGUiLCJoYW5kbGVQbHVzTWVudUF0dGFjaCIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImFpQ2hhdFRvb2xzIiwib3B0aW9uIiwibGVuZ3RoIiwiY2xpY2siLCJiZWdpblRvb2xDaGlwRXhpdCIsIndhc1dlYiIsIndhc0RlZXAiLCJfc2VhcmNoTW9kZUFjdGl2ZVJlZiQiLCJoYW5kbGVQbHVzTWVudVdlYlNlYXJjaCIsImhhbmRsZVBsdXNNZW51RGVlcFNlYXJjaCIsIl9lZGl0b3JSZWYkY3VycmVudDIiLCJjb21wYWN0U2luZ2xlUm93VG9vbGJhciIsInNlbmREaXNhYmxlZCIsImFnZW50Q2hhbmdlZCIsInByZXZpb3VzQ2hhdElkIiwiY3VycmVudENoYXRJZCIsImNoYXRDaGFuZ2VkIiwiY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0IiwibmV3Q2hhdFN0YXJ0ZWQiLCJpc0luaXRpYWxNb3VudCIsImRlbGF5IiwiX2VkaXRvclJlZiRjdXJyZW50MyIsImlzU3BlY2lhbGlzdEFnZW50Iiwib2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsIl9yZWYyIiwiX3JlZjMiLCJlbnRyeSIsImlzSW50ZXJzZWN0aW5nIiwibWFpYUNvbnRleHRNZW50aW9uSW5pdCIsImRpc2Nvbm5lY3QiLCJ0aHJlc2hvbGQiLCJvYnNlcnZlIiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsIl9lZGl0b3JSZWYkY3VycmVudDQiLCJjbGVhciIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVTZW5kTWVzc2FnZSIsIl9lZGl0b3JSZWYkY3VycmVudDUiLCJfc3RhdGUkdGV4dCIsIl9zdGF0ZSRtZW50aW9ucyIsIl9lZGl0b3JSZWYkY3VycmVudDYiLCJzdGF0ZSIsInNlcmlhbGl6ZSIsInRleHQiLCJ0cmltIiwibWVudGlvbnMiLCJoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmQiLCJjb21tYW5kIiwiX2VkaXRvclJlZiRjdXJyZW50NyIsIl9zdGF0ZSR0ZXh0MiIsIl9lZGl0b3JSZWYkY3VycmVudDkiLCJhaUNoYXRRdWlja0FjdGlvblNlbGVjdCIsInR5cGVfcXVpY2tfYWN0aW9uIiwidGl0bGUiLCJvcmlnaW5fcXVpY2tfYWN0aW9uIiwidHJpZ2dlclBhcnQiLCJjb25jYXQiLCJiZWZvcmVUcmlnZ2VyIiwiZW5kc1dpdGgiLCJzbGljZSIsImlzRW1wdHlCZWZvcmVUcmlnZ2VyIiwiX2VkaXRvclJlZiRjdXJyZW50OCIsImluc2VydFNsYXNoQ29tbWFuZCIsImxhYmVsIiwiaGFuZGxlQ2xvc2VTbGFzaERyb3Bkb3duIiwiaGFuZGxlRWRpdG9ySW5wdXQiLCJfcmVmNCIsIl9lZGl0b3JSZWYkY3VycmVudDAiLCJ0cmlnZ2VyIiwic2xhc2hUcmlnZ2VyIiwidmlzdWFsTXVsdGlsaW5lIiwiaGFzVmlzdWFsTXVsdGlsaW5lIiwiZXhwbGljaXRNdWx0aWxpbmUiLCJpbmNsdWRlcyIsImlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2giLCJzdGFibGVWaXN1YWxNdWx0aWxpbmUiLCJuZXh0SXNNdWx0aWxpbmUiLCJuZXh0SGFzVHlwaW5nUHJlc2VuY2UiLCJuZXh0VHlwaW5nUHJlc2VuY2UiLCJwcmV2IiwibmV4dCIsImFjdGl2ZSIsImFpQ2hhdFF1aWNrQWN0aW9uT3BlbiIsInF1ZXJ5Iiwia2V5Iiwic2hpZnRLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZUZpbGVTZWxlY3QiLCJmaWxlcyIsInRhcmdldCIsImZpbGVzSW5zZXJ0ZWQiLCJpc05ld0Zvcm1hdCIsImV4dGVuc2lvbiIsImlzT2xkRm9ybWF0IiwiaXNBdWRpb0Zvcm1hdCIsIkFycmF5IiwiZnJvbSIsImZvckVhY2giLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZXhjbHVkZWRGaWxlIiwiZmlsZU5hbWVQYXJ0cyIsIm5hbWUiLCJzcGxpdCIsImZpbGVFeHRlbnNpb24iLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsInNpemUiLCJwdXNoIiwidHlwZUZpbGUiLCJwYXJzZWRGaWxlIiwiRmlsZSIsInZhbHVlIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImhhbmRsZVdyYXBwZXJGb2N1cyIsImhhbmRsZVdyYXBwZXJCbHVyIiwiX3dyYXBwZXJSZWYkY3VycmVudCIsImNvbnRhaW5zIiwiYWN0aXZlRWxlbWVudCIsImhhbmRsZVN0b3BHZW5lcmF0aW9uIiwiYWlDaGF0U3RvcFJlc3BvbnNlIiwicGx1c0ljb25Db2xvciIsInNlY29uZGFyeSIsIm1lZGl1bUdyYXkiLCJwbHVzTWVudUljb25Db2xvciIsIm1lbnVJY29uIiwicGx1c01lbnVTZWxlY3RlZENvbG9yIiwidGV4dEJyYW5kQm9sZCIsImFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24iLCJjb2xvciIsImNoaXBDbG9zZUljb24iLCJ3aWR0aCIsImhlaWdodCIsImNoaWxkcmVuIiwicmVmIiwiaGFzQXR0YWNobWVudHMiLCJvbkZvY3VzIiwib25CbHVyIiwic3R5bGUiLCJwb3NpdGlvbiIsIm9uU2VsZWN0Iiwib25DbG9zZSIsImRpc3BsYXkiLCJnYXAiLCJhbGlnbkl0ZW1zIiwibWFwIiwiYXR0YWNobWVudCIsImluZGV4IiwiX2ZpbGVOYW1lUGFydHMkcG9wMiIsIl9hdHRhY2htZW50JHR5cGUiLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwic3RhcnRzV2l0aCIsImlzSW1hZ2UiLCJ6SW5kZXgiLCJpY29uIiwib25DbGljayIsIiRjb21wYWN0Um93IiwiJG1lbnVPcGVuIiwib3BlbiIsImFuY2hvckVsIiwiYW5jaG9yT3JpZ2luIiwidmVydGljYWwiLCJob3Jpem9udGFsIiwidHJhbnNmb3JtT3JpZ2luIiwic3giLCJzbG90UHJvcHMiLCJwYXBlciIsImVsZXZhdGlvbiIsIm92ZXJmbG93IiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYmFja2dyb3VuZENvbG9yIiwibWFyZ2luVG9wIiwiJHNlbGVjdGVkIiwiJGhvdmVyZWQiLCIkZXhpdGluZyIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIiRjbG9zZVNob3duIiwiZ3JpZENvbHVtbiIsImdyaWRSb3ciLCJtaW5XaWR0aCIsImFsaWduU2VsZiIsIm9uSW5wdXQiLCJvbktleURvd24iLCJoYXNWYWx1ZXMiLCJtdWx0aXBsZSIsImFjY2VwdCIsImJvZHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXZvaWQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbG9uZWx5LWlmICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItZGVzdHJ1Y3R1cmluZyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQge1xuICBDaGFuZ2VFdmVudCxcbiAgS2V5Ym9hcmRFdmVudCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUGFwZXJQbGFuZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BhcGVyUGxhbmUnXG5pbXBvcnQgeyBBdHRhY2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BdHRhY2gnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcbmltcG9ydCB7IFBsdXMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QbHVzJ1xuaW1wb3J0IHsgQ2hlY2sgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVjaydcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcblxuaW1wb3J0IHtcbiAgQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uLFxuICBBY3RpdmVUb29sQ2hpcExhYmVsLFxuICBBY3RpdmVUb29sQ2hpcFJvb3QsXG4gIFBsdXNNZW51RGl2aWRlcixcbiAgUGx1c01lbnVJbm5lckNvbHVtbixcbiAgUGx1c01lbnVJdGVtQnV0dG9uLFxuICBQbHVzTWVudUl0ZW1MYWJlbCxcbiAgUGx1c01lbnVQYXBlcixcbiAgUGx1c01lbnVUb29sc1JvdyxcbiAgUGx1c1RvZ2dsZUJ1dHRvbixcbiAgU0NNSUF0dGFjaG1lbnQsXG4gIFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbixcbiAgU3R5bGVkTUFJQUlucHV0V3JhcHBlcixcbiAgU3R5bGVkTUFJQVNlbmRCdXR0b24sXG4gIFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQsXG4gIFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTdG9wQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEljb24sXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBNb2RhbEZpbGVFeGNlZWRzIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL01vZGFsRmlsZUV4Y2VlZHMnXG5pbXBvcnQgeyBTbGFzaENvbW1hbmREcm9wZG93biB9IGZyb20gJy4uL1NsYXNoQ29tbWFuZERyb3Bkb3duJ1xuaW1wb3J0IHsgdXNlU2xhc2hDb21tYW5kcyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNsYXNoQ29tbWFuZHMnXG5pbXBvcnQgeyBxdWlja0FjdGlvblRpdGxlVG9UeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc2xhc2hDb21tYW5kTWFya2VyJ1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IFRlbGVzY29wZUljb24gfSBmcm9tICcuLi9pY29ucy9UZWxlc2NvcGVJY29uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2hpdGxBbmFseXRpY3MnXG5pbXBvcnQgeyBNQUlBX0NIQVRfSU5QVVRfVUkgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHtcbiAgYWxsb3dlZEZpbGVUeXBlcyxcbiAgZmlsZVR5cGVzLFxuICBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OLFxuICBNQVhfRklMRV9TSVpFX01CX09MRCxcbiAgTUFYX0ZJTEVfU0laRV9NQl9BVURJTyxcbiAgTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMsXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9mb3JtYXRFeHRlbnNpb25zJ1xuaW1wb3J0IHsgQVBQQ1VFU19FVkVOVFMsIHRyYWNrQXBwY3Vlc0V2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwY3VlcydcbmltcG9ydCB7IENvbnRleHRNZW50aW9uRWRpdG9yLCBDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuaW1wb3J0IHsgdXNlTWFpYVRhc2tQYW5lbFpJbmRleCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyB1c2VNZW50aW9uUG9wb3ZlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1lbnRpb25Qb3BvdmVyJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcblxuY29uc3QgVE9PTF9DSElQX0VYSVRfTVMgPSAyMjBcblxudHlwZSBBdHRhY2htZW50RmlsZSA9IHtcbiAgZmlsZTogRmlsZVxuICBvcmlnaW5hbEZpbGU/OiBGaWxlXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxufVxuXG50eXBlIE1BSUFJbnB1dFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmYXFJZD86IHN0cmluZyxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgaXNXcml0aW5nPzogYm9vbGVhblxuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBvbkNoYW5nZT86ICgpID0+IHZvaWRcbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBvbkZpbGVBdHRhY2g/OiAoZmlsZTogRmlsZSkgPT4gdm9pZFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQ/OiAoZmlsZUlkOiBzdHJpbmcpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGNoYXRJZD86IHN0cmluZ1xuICBuZXdDaGF0S2V5PzogbnVtYmVyXG4gIHRvb2x0aXBaSW5kZXg/OiBudW1iZXJcbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFJbnB1dCA9ICh7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGNsYXNzTmFtZSxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIHBsYWNlaG9sZGVyLFxuICBvbkNoYW5nZSxcbiAgYWxpZ25CdXR0b25zID0gJ3ZlcnRpY2FsJyxcbiAgb25GaWxlQXR0YWNoLFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQsXG4gIGF0dGFjaG1lbnRzID0gW10sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgdG9vbHRpcFpJbmRleCxcbn06IE1BSUFJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZT4obnVsbClcbiAgY29uc3QgZmlsZUlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtoYXNXcmFwcGVkVG9TZWNvbmRMaW5lLCBzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaGFzVHlwaW5nUHJlc2VuY2UsIHNldEhhc1R5cGluZ1ByZXNlbmNlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFttb2RhbFByb3BzLCBzZXRNb2RhbFByb3BzXSA9IHVzZVN0YXRlKHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIGV4Y2x1ZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGV4Y2VlZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGZpbGVTaXplczoge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPixcbiAgfSlcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgdG9nZ2xlV2ViU2VhcmNoLCBpc1dlYlNlYXJjaEFjdGl2ZSwgdG9nZ2xlRGVlcFNlYXJjaCwgaXNEZWVwU2VhcmNoQWN0aXZlLCBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHBsdXNNZW51WkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxMzAwLCAnb3ZlcmxheScpXG5cbiAgY29uc3Qge1xuICAgIHBvcG92ZXJPcGVuLFxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyxcbiAgICBoYW5kbGVUcmlnZ2VyLFxuICAgIGhhbmRsZUtleURvd246IGhhbmRsZVBvcG92ZXJLZXlEb3duLFxuICAgIHBvcG92ZXJOb2RlLFxuICB9ID0gdXNlTWVudGlvblBvcG92ZXIoe1xuICAgIGVkaXRvclJlZixcbiAgICBwb3BvdmVyQW5jaG9yUmVmOiB3cmFwcGVyUmVmLFxuICB9KVxuXG4gIGNvbnN0IFtwbHVzTWVudUFuY2hvciwgc2V0UGx1c01lbnVBbmNob3JdID0gdXNlU3RhdGU8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbYWN0aXZlVG9vbENoaXBIb3ZlcmVkLCBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt0b29sQ2hpcEV4aXRpbmcsIHNldFRvb2xDaGlwRXhpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgdG9vbENoaXBFeGl0VGltZXJSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuICBjb25zdCBzZWFyY2hNb2RlQWN0aXZlUmVmID0gdXNlUmVmKHsgd2ViOiBmYWxzZSwgZGVlcDogZmFsc2UgfSlcbiAgY29uc3QgcGx1c01lbnVPcGVuID0gQm9vbGVhbihwbHVzTWVudUFuY2hvcilcblxuICAvLyBJbmljaWFsaXphciBsYXMgcmVmZXJlbmNpYXMgY29tbyB1bmRlZmluZWQgcGFyYSBkZXRlY3RhciBlbCBwcmltZXIgY2FtYmlvIGNvcnJlY3RhbWVudGVcbiAgY29uc3QgcHJldmlvdXNBZ2VudElkUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjb25zdCBwcmV2aW91c0NoYXRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNOZXdDaGF0S2V5UmVmID0gdXNlUmVmPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIGNvbnN0IGFuYWx5dGljc0FnZW50VHlwZSA9IGdldENoYXRUb29sc01lbnVBZ2VudFR5cGUoYWdlbnQpXG4gIGNvbnN0IGFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCA9IGFnZW50Py50eXBlID09PSAnY2xvbmUnID8geyBlbnRpdHk6IGFnZW50LmVudGl0eSA/PyBudWxsIH0gOiB7fVxuXG4gIGNvbnN0IHsgY29tbWFuZHM6IHNsYXNoQ29tbWFuZHMgfSA9IHVzZVNsYXNoQ29tbWFuZHMoYWdlbnQ/LmlkKVxuICBjb25zdCBbc2hvd1NsYXNoRHJvcGRvd24sIHNldFNob3dTbGFzaERyb3Bkb3duXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2xhc2hRdWVyeSwgc2V0U2xhc2hRdWVyeV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3Qgc2xhc2hNZW51V2FzT3BlblJlZiA9IHVzZVJlZihmYWxzZSlcblxuICAvKiogVHJhcyBlbGVnaXIgbyBxdWl0YXIgYsO6c3F1ZWRhIHdlYi9wcm9mdW5kYTogdm9sdmVyIGFsIHRleHRhcmVhIChQb3BvdmVyL21lbnUgcHVlZGUgcm9iYXIgZm9jbykuICovXG4gIGNvbnN0IHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbiA9ICgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgICAgfSwgMClcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgY2xvc2VQbHVzTWVudSA9ICgpID0+IHtcbiAgICBzZXRQbHVzTWVudUFuY2hvcihudWxsKVxuICB9XG5cbiAgY29uc3QgY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCA9ICgpID0+IHtcbiAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQpXG4gICAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgICBzZXRUb29sQ2hpcEV4aXRpbmcoZmFsc2UpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzQnV0dG9uQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHBsdXNNZW51QW5jaG9yKSB7XG4gICAgICBjbG9zZVBsdXNNZW51KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRQbHVzTWVudUFuY2hvcihlLmN1cnJlbnRUYXJnZXQpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFBsdXNPcGVuLCB7IGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSwgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudUF0dGFjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ2ZpbGVzJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIGlmIChhdHRhY2htZW50cy5sZW5ndGggPj0gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHJldHVyblxuICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50Py5jbGljaygpXG4gIH1cblxuICBjb25zdCBiZWdpblRvb2xDaGlwRXhpdCA9ICgpID0+IHtcbiAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHdhc1dlYiA9IGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgY29uc3Qgd2FzRGVlcCA9IGlzRGVlcFNlYXJjaEFjdGl2ZVxuICAgIGlmICghd2FzV2ViICYmICF3YXNEZWVwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0VG9vbENoaXBFeGl0aW5nKHRydWUpXG4gICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIGNvbnN0IHsgd2ViLCBkZWVwIH0gPSBzZWFyY2hNb2RlQWN0aXZlUmVmLmN1cnJlbnRcbiAgICAgIGlmICh3YXNXZWIgJiYgd2ViKSB7XG4gICAgICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgICB9IGVsc2UgaWYgKHdhc0RlZXAgJiYgZGVlcCkge1xuICAgICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICAgIH1cbiAgICAgIHNldFRvb2xDaGlwRXhpdGluZyhmYWxzZSlcbiAgICAgIHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbigpXG4gICAgfSwgVE9PTF9DSElQX0VYSVRfTVMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudVdlYlNlYXJjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGJlZ2luVG9vbENoaXBFeGl0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0KClcbiAgICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ3NlYXJjaCcsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgICBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24oKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c01lbnVEZWVwU2VhcmNoID0gKCkgPT4ge1xuICAgIGNsb3NlUGx1c01lbnUoKVxuICAgIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGJlZ2luVG9vbENoaXBFeGl0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0KClcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgfVxuICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywge1xuICAgICAgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLFxuICAgICAgb3B0aW9uOiAnZGVlcF9zZWFyY2gnLFxuICAgICAgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkLFxuICAgIH0pXG4gICAgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uKClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICB9XG4gIH0sIFtkaXNhYmxlZF0pXG5cbiAgY29uc3QgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXIgPSB1c2VNZW1vKFxuICAgICgpID0+IGF0dGFjaG1lbnRzLmxlbmd0aCA9PT0gMCAmJiAhaXNXZWJTZWFyY2hBY3RpdmUgJiYgIWlzRGVlcFNlYXJjaEFjdGl2ZSAmJiAhaGFzV3JhcHBlZFRvU2Vjb25kTGluZSxcbiAgICBbYXR0YWNobWVudHMubGVuZ3RoLCBpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlLCBoYXNXcmFwcGVkVG9TZWNvbmRMaW5lXVxuICApXG5cbiAgY29uc3Qgc2VuZERpc2FibGVkID0gdXNlTWVtbyhcbiAgICAoKSA9PiAhaGFzVHlwaW5nUHJlc2VuY2UgJiYgYXR0YWNobWVudHMubGVuZ3RoID09PSAwLFxuICAgIFtoYXNUeXBpbmdQcmVzZW5jZSwgYXR0YWNobWVudHMubGVuZ3RoXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZWFyY2hNb2RlQWN0aXZlUmVmLmN1cnJlbnQgPSB7IHdlYjogaXNXZWJTZWFyY2hBY3RpdmUsIGRlZXA6IGlzRGVlcFNlYXJjaEFjdGl2ZSB9XG4gIH0sIFtpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc1dlYlNlYXJjaEFjdGl2ZSAmJiAhaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQoZmFsc2UpXG4gICAgfVxuICB9LCBbaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZV0pXG5cbiAgLy8gQXV0by1mb2N1cyBjdWFuZG8gY2FtYmlhIGVsIGFnZW50ZSBvIGxhIGNvbnZlcnNhY2nDs24sIG8gYWwgbW9udGFyIGVsIGNvbXBvbmVudGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhZ2VudENoYW5nZWQgPSBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCAhPT0gYWdlbnQ/LmlkXG4gICAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50XG4gICAgY29uc3QgY3VycmVudENoYXRJZCA9IGNoYXRJZFxuICAgIGNvbnN0IGNoYXRDaGFuZ2VkID0gcHJldmlvdXNDaGF0SWQgIT09IGN1cnJlbnRDaGF0SWRcbiAgICBjb25zdCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgPVxuICAgICAgKHByZXZpb3VzQ2hhdElkID09PSB1bmRlZmluZWQgfHwgcHJldmlvdXNDaGF0SWQgPT09IG51bGwpICYmIGN1cnJlbnRDaGF0SWQgIT09IHVuZGVmaW5lZCAmJiBjdXJyZW50Q2hhdElkICE9PSBudWxsXG4gICAgY29uc3QgbmV3Q2hhdFN0YXJ0ZWQgPSBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCAhPT0gbmV3Q2hhdEtleVxuICAgIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZCAmJiBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWRcblxuICAgIGlmICgoYWdlbnRDaGFuZ2VkIHx8IGNoYXRDaGFuZ2VkIHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCB8fCBuZXdDaGF0U3RhcnRlZCB8fCBpc0luaXRpYWxNb3VudCkgJiYgIWRpc2FibGVkKSB7XG4gICAgICBjb25zdCBkZWxheSA9IGlzSW5pdGlhbE1vdW50IHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA/IDIwMCA6IDEwMFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZWQpIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgICB9LCBkZWxheSlcbiAgICB9XG5cbiAgICBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9IGFnZW50Py5pZFxuICAgIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPSBjaGF0SWRcbiAgICBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCA9IG5ld0NoYXRLZXlcbiAgfSwgW2FnZW50Py5pZCwgY2hhdElkLCBuZXdDaGF0S2V5LCBkaXNhYmxlZF0pXG5cbiAgLy8gQXBwY3Vlczogbm90aWZ5IHRoYXQgdGhlIGlucHV0IGlzIHZpc2libGUgZm9yIHNwZWNpYWxpc3QgYWdlbnRzIChjbG9uZSArIHByb2plY3QvY2xpZW50KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlzU3BlY2lhbGlzdEFnZW50ID0gYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50JylcbiAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudCB8fCAhaXNTcGVjaWFsaXN0QWdlbnQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgKFtlbnRyeV0pID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgdHJhY2tBcHBjdWVzRXZlbnQoQVBQQ1VFU19FVkVOVFMubWFpYUNvbnRleHRNZW50aW9uSW5pdClcbiAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgdGhyZXNob2xkOiAwLjEgfVxuICAgIClcblxuICAgIG9ic2VydmVyLm9ic2VydmUod3JhcHBlclJlZi5jdXJyZW50KVxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KClcbiAgfSwgW2FnZW50Py5pZCwgYWdlbnQ/LnR5cGUsIGFnZW50Py5lbnRpdHldKVxuXG4gIC8vIENsZWFyIGlucHV0IHdoZW4gc2Vzc2lvbiBjaGFuZ2VzICh1c2VyIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IGNoYXQpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUoZmFsc2UpXG4gICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICB9LCBbcmVzZXRNZW50aW9uT3BlblRyYWNraW5nXSlcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgIGNvbnN0IHRleHQgPSBzdGF0ZT8udGV4dCA/PyAnJ1xuICAgIGlmICghdGV4dC50cmltKCkgJiYgIWF0dGFjaG1lbnRzLmxlbmd0aCkgcmV0dXJuXG4gICAgY29uc3QgbWVudGlvbnMgPSBzdGF0ZT8ubWVudGlvbnMgPz8gW11cbiAgICBvblNlbmRNZXNzYWdlKHRleHQsIGF0dGFjaG1lbnRzLCBtZW50aW9ucylcbiAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKGZhbHNlKVxuICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUoZmFsc2UpXG4gICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICB9LCBbYXR0YWNobWVudHMsIG9uU2VuZE1lc3NhZ2UsIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZ10pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0U2xhc2hDb21tYW5kID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbW1hbmQ6IEFjdGlvbikgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0LCB7XG4gICAgICAgIHR5cGVfcXVpY2tfYWN0aW9uOiBxdWlja0FjdGlvblRpdGxlVG9UeXBlKGNvbW1hbmQuaWQsIGNvbW1hbmQudGl0bGUpLFxuICAgICAgICBvcmlnaW5fcXVpY2tfYWN0aW9uOiAnc2xhc2hfbWVudScsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgICAgY29uc3QgdGV4dCA9IHN0YXRlPy50ZXh0ID8/ICcnXG4gICAgICBjb25zdCB0cmlnZ2VyUGFydCA9IGAvJHtzbGFzaFF1ZXJ5fWBcbiAgICAgIGNvbnN0IGJlZm9yZVRyaWdnZXIgPSB0ZXh0LmVuZHNXaXRoKHRyaWdnZXJQYXJ0KSA/IHRleHQuc2xpY2UoMCwgLXRyaWdnZXJQYXJ0Lmxlbmd0aCkgOiB0ZXh0XG4gICAgICBjb25zdCBpc0VtcHR5QmVmb3JlVHJpZ2dlciA9IGJlZm9yZVRyaWdnZXIudHJpbSgpID09PSAnJ1xuXG4gICAgICBpZiAoaXNFbXB0eUJlZm9yZVRyaWdnZXIpIHtcbiAgICAgICAgb25TZW5kTWVzc2FnZShjb21tYW5kLnRpdGxlLCBhdHRhY2htZW50cywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21tYW5kLmlkKVxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0U2xhc2hDb21tYW5kKHsgaWQ6IGNvbW1hbmQuaWQsIGxhYmVsOiBjb21tYW5kLnRpdGxlIH0pXG4gICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH0sXG4gICAgW2F0dGFjaG1lbnRzLCBvblNlbmRNZXNzYWdlLCByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcsIHNsYXNoUXVlcnksIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VTbGFzaERyb3Bkb3duID0gKCkgPT4ge1xuICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gIH1cblxuICBjb25zdCBoYW5kbGVFZGl0b3JJbnB1dCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB0ZXh0LFxuICAgICAgdHJpZ2dlcixcbiAgICAgIHNsYXNoVHJpZ2dlcixcbiAgICB9OiB7XG4gICAgICB0ZXh0OiBzdHJpbmdcbiAgICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9XG4gICAgICBzbGFzaFRyaWdnZXI/OiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZyB9XG4gICAgfSkgPT4ge1xuICAgICAgY29uc3QgdmlzdWFsTXVsdGlsaW5lID0gISFlZGl0b3JSZWYuY3VycmVudD8uaGFzVmlzdWFsTXVsdGlsaW5lKClcbiAgICAgIGNvbnN0IGV4cGxpY2l0TXVsdGlsaW5lID0gdGV4dC5pbmNsdWRlcygnXFxuJylcbiAgICAgIGNvbnN0IGlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2ggPSB0ZXh0Lmxlbmd0aCA8PSAxICYmICFleHBsaWNpdE11bHRpbGluZSAmJiB2aXN1YWxNdWx0aWxpbmVcbiAgICAgIGNvbnN0IHN0YWJsZVZpc3VhbE11bHRpbGluZSA9IGlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2ggPyBmYWxzZSA6IHZpc3VhbE11bHRpbGluZVxuICAgICAgY29uc3QgbmV4dElzTXVsdGlsaW5lID0gZXhwbGljaXRNdWx0aWxpbmUgfHwgc3RhYmxlVmlzdWFsTXVsdGlsaW5lXG4gICAgICBjb25zdCBuZXh0SGFzVHlwaW5nUHJlc2VuY2UgPSB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG4gICAgICBjb25zdCBuZXh0VHlwaW5nUHJlc2VuY2UgPSB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG5cbiAgICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKG5leHRUeXBpbmdQcmVzZW5jZSlcbiAgICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUocHJldiA9PiB7XG4gICAgICAgIGxldCBuZXh0ID0gcHJldlxuICAgICAgICBpZiAoIW5leHRIYXNUeXBpbmdQcmVzZW5jZSkge1xuICAgICAgICAgIG5leHQgPSBmYWxzZVxuICAgICAgICB9IGVsc2UgaWYgKG5leHRJc011bHRpbGluZSkge1xuICAgICAgICAgIG5leHQgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dFxuICAgICAgfSlcbiAgICAgIG9uQ2hhbmdlPy4oKVxuICAgICAgaGFuZGxlVHJpZ2dlcih0cmlnZ2VyKVxuXG4gICAgICBpZiAoc2xhc2hUcmlnZ2VyPy5hY3RpdmUgJiYgc2xhc2hDb21tYW5kcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uT3BlbilcbiAgICAgICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24odHJ1ZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeShzbGFzaFRyaWdnZXIucXVlcnkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgaGFuZGxlVHJpZ2dlciwgc2xhc2hDb21tYW5kcywgZXZlbnRBbXBsaXR1ZGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoaGFuZGxlUG9wb3ZlcktleURvd24oZSkpIHJldHVyblxuICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmICFlLnNoaWZ0S2V5ICYmICFwb3BvdmVyT3Blbikge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaWYgKCFzZW5kRGlzYWJsZWQgJiYgIWRpc2FibGVkKSBoYW5kbGVTZW5kTWVzc2FnZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbaGFuZGxlUG9wb3ZlcktleURvd24sIHBvcG92ZXJPcGVuLCBzZW5kRGlzYWJsZWQsIGRpc2FibGVkLCBoYW5kbGVTZW5kTWVzc2FnZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzXG4gICAgaWYgKCFmaWxlcykgcmV0dXJuXG5cbiAgICBjb25zdCBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZXhjbHVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGZpbGVTaXplczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gICAgbGV0IGZpbGVzSW5zZXJ0ZWQgPSBhdHRhY2htZW50cy5sZW5ndGhcblxuICAgIC8vIERlZmluaXIgbMOtbWl0ZXMgcGFyYSBkaWZlcmVudGVzIHRpcG9zIGRlIGFyY2hpdm9zXG4gICAgY29uc3QgaXNOZXdGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+IFsnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5wZGYnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNPbGRGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy50eHQnLCAnLm1kJywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcueGxzeCcsICcueGxzJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzQXVkaW9Gb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuXG4gICAgQXJyYXkuZnJvbShmaWxlcykuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGxldCBleGNsdWRlZEZpbGUgPSBmYWxzZVxuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlcz8uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVTaXplc1tmaWxlLm5hbWVdID0gZmlsZS5zaXplXG5cbiAgICAgIC8vIFZhbGlkYWNpb25lcyBlc3BlY8OtZmljYXMgc2Vnw7puIGVsIHRpcG8gZGUgYXJjaGl2b1xuICAgICAgaWYgKGlzTmV3Rm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgbnVldm9zIGZvcm1hdG9zOiBoYXN0YSA0Ljk5TUIgcG9yIGFyY2hpdm8sIGhhc3RhIE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNPbGRGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBmb3JtYXRvcyBhbnRlcmlvcmVzOiBoYXN0YSAxTUIgcG9yIGFyY2hpdm8sIGhhc3RhIE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQXVkaW9Gb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBhcmNoaXZvcyBkZSBhdWRpbzogaGFzdGEgMTBNQiBwb3IgYXJjaGl2bywgaGFzdGEgTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWV4Y2x1ZGVkRmlsZSkge1xuICAgICAgICBmaWxlc0luc2VydGVkICs9IDFcbiAgICAgICAgY29uc3QgdHlwZUZpbGUgPSBmaWxlLnR5cGUgfHwgZmlsZVR5cGVzW2ZpbGVFeHRlbnNpb25dXG4gICAgICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIGZpbGUubmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuICAgICAgICBvbkZpbGVBdHRhY2g/LihwYXJzZWRGaWxlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoZXhjbHVkZWRGaWxlcy5sZW5ndGggfHwgZXhjZWVkZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGZpbGVTaXplcyB9KVxuICAgIH1cblxuICAgIGlmIChmaWxlSW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgZmlsZUlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ/LihmaWxlSWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVXcmFwcGVyRm9jdXMgPSAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSlcbiAgY29uc3QgaGFuZGxlV3JhcHBlckJsdXIgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgc2V0SXNGb2N1c2VkKGZhbHNlKVxuICAgICAgfVxuICAgIH0sIDApXG4gIH1cblxuICBjb25zdCBoYW5kbGVTdG9wR2VuZXJhdGlvbiA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0U3RvcFJlc3BvbnNlKVxuICAgIG9uU3RvcEdlbmVyYXRpb24/LigpXG4gIH1cblxuICBjb25zdCBwbHVzSWNvbkNvbG9yID0gaXNGb2N1c2VkID8gY29sb3JzLnRleHQuc2Vjb25kYXJ5IDogY29sb3JzLnRleHQubWVkaXVtR3JheVxuICBjb25zdCBwbHVzTWVudUljb25Db2xvciA9IE1BSUFfQ0hBVF9JTlBVVF9VSS5tZW51SWNvblxuICBjb25zdCBwbHVzTWVudVNlbGVjdGVkQ29sb3IgPSBNQUlBX0NIQVRfSU5QVVRfVUkudGV4dEJyYW5kQm9sZFxuXG4gIGxldCBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uOiBSZWFjdE5vZGVcbiAgaWYgKGFjdGl2ZVRvb2xDaGlwSG92ZXJlZCkge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8Q3Jvc3MgY29sb3I9e01BSUFfQ0hBVF9JTlBVVF9VSS5jaGlwQ2xvc2VJY29ufSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH0gZWxzZSBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPEdsb2JlIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9IGVsc2Uge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8VGVsZXNjb3BlSWNvbiBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRNQUlBSW5wdXRXcmFwcGVyXG4gICAgICAgIHJlZj17d3JhcHBlclJlZn1cbiAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICBhbGlnbkJ1dHRvbnM9e2FsaWduQnV0dG9uc31cbiAgICAgICAgaGFzQXR0YWNobWVudHM9eyEhYXR0YWNobWVudHMubGVuZ3RofVxuICAgICAgICBjb21wYWN0U2luZ2xlUm93VG9vbGJhcj17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9XG4gICAgICAgIGRhdGEtYXBwY3Vlcz1cIm1haWFfY2hhdF9pbnB1dFwiXG4gICAgICAgIGRhdGEtbWFpYS1zdHJlYW1pbmc9e2lzU3RyZWFtaW5nID8gJ3RydWUnIDogJ2ZhbHNlJ31cbiAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9fVxuICAgICAgPlxuICAgICAgICB7c2hvd1NsYXNoRHJvcGRvd24gJiYgKFxuICAgICAgICAgIDxTbGFzaENvbW1hbmREcm9wZG93blxuICAgICAgICAgICAgY29tbWFuZHM9e3NsYXNoQ29tbWFuZHN9XG4gICAgICAgICAgICBxdWVyeT17c2xhc2hRdWVyeX1cbiAgICAgICAgICAgIG9uU2VsZWN0PXtoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmR9XG4gICAgICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd259XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgeyEhYXR0YWNobWVudHMubGVuZ3RoICYmIChcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTJweCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAge2F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGF0dGFjaG1lbnQubmFtZS5zcGxpdCgnLicpXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5RXh0ZW5zaW9uID0gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnXS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gYXR0YWNobWVudC50eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gaXNJbWFnZUJ5TWltZSAmJiBpc0ltYWdlQnlFeHRlbnNpb25cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YXR0YWNobWVudC5uYW1lfSBrZXk9e2Ake2luZGV4fS0ke2F0dGFjaG1lbnQubmFtZX1gfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50IGlzSW1hZ2U9e2lzSW1hZ2V9PlxuICAgICAgICAgICAgICAgICAgICB7YXR0YWNobWVudC5pY29ufVxuICAgICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnREZWxldGVJY29uIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQoYXR0YWNobWVudC5pZCl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUcmFzaCBjb2xvcj1cInJnYmEoMTkxLCAxOTEsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnREZWxldGVJY29uPlxuICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudD5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICA8U3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgIDxTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsICRjb21wYWN0Um93PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn0+XG4gICAgICAgICAgICA8UGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICAgICAgPFBsdXNUb2dnbGVCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAkbWVudU9wZW49e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVQbHVzQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5vcGVuUGx1c01lbnVBcmlhJyl9XG4gICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQbHVzIGNvbG9yPXtwbHVzSWNvbkNvbG9yfSB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICAgIDwvUGx1c1RvZ2dsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgICAgICBvcGVuPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgYW5jaG9yRWw9e3BsdXNNZW51QW5jaG9yfVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlUGx1c01lbnV9XG4gICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7IHZlcnRpY2FsOiAndG9wJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luPXt7IHZlcnRpY2FsOiAnYm90dG9tJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgc3g9e3sgekluZGV4OiBwbHVzTWVudVpJbmRleCB9fVxuICAgICAgICAgICAgICAgIHNsb3RQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgcGFwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgZWxldmF0aW9uOiAwLFxuICAgICAgICAgICAgICAgICAgICBzeDoge1xuICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnLTRweCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUlubmVyQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudUF0dGFjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEF0dGFjaCBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXtmYWxzZX0+e3QoJ2NoYXQucGx1c01lbnVBdHRhY2gnKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51RGl2aWRlciAvPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudVdlYlNlYXJjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEdsb2JlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNXZWJTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXshIWlzV2ViU2VhcmNoQWN0aXZlfT57dCgnY2hhdC5zZWFyY2hXZWInKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SW5uZXJDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudURlZXBTZWFyY2h9PlxuICAgICAgICAgICAgICAgICAgICA8VGVsZXNjb3BlSWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc0RlZXBTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsyMH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUxhYmVsICRzZWxlY3RlZD17ISFpc0RlZXBTZWFyY2hBY3RpdmV9PlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge2lzRGVlcFNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICAgICAgICB7KGlzV2ViU2VhcmNoQWN0aXZlIHx8IGlzRGVlcFNlYXJjaEFjdGl2ZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxBY3RpdmVUb29sQ2hpcFJvb3RcbiAgICAgICAgICAgICAgICAgICRob3ZlcmVkPXthY3RpdmVUb29sQ2hpcEhvdmVyZWR9XG4gICAgICAgICAgICAgICAgICAkZXhpdGluZz17dG9vbENoaXBFeGl0aW5nfVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZChmYWxzZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgJGNsb3NlU2hvd249e2FjdGl2ZVRvb2xDaGlwSG92ZXJlZH1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5yZW1vdmVBY3RpdmVUb29sQXJpYScpfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbn1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IHQoJ2NoYXQuc2VhcmNoV2ViJykgOiB0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBMYWJlbD5cbiAgICAgICAgICAgICAgICA8L0FjdGl2ZVRvb2xDaGlwUm9vdD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvUGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICA8L1N0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGw+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICBjb21wYWN0U2luZ2xlUm93VG9vbGJhclxuICAgICAgICAgICAgICAgID8geyBncmlkQ29sdW1uOiAyLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCwgYWxpZ25TZWxmOiAnY2VudGVyJyB9XG4gICAgICAgICAgICAgICAgOiB7IGdyaWRDb2x1bW46ICcxIC8gLTEnLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENvbnRleHRNZW50aW9uRWRpdG9yXG4gICAgICAgICAgICAgIHJlZj17ZWRpdG9yUmVmfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlRWRpdG9ySW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8U3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgICAge2lzV3JpdGluZyA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc3RvcCcpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU3RvcEJ1dHRvbiBkaXNhYmxlZD17ZmFsc2V9IG9uQ2xpY2s9e2hhbmRsZVN0b3BHZW5lcmF0aW9ufSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BJY29uIC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU3RvcEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc2VuZCcpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTZW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3NlbmREaXNhYmxlZCB8fCBkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgaGFzVmFsdWVzPXtoYXNUeXBpbmdQcmVzZW5jZSB8fCBhdHRhY2htZW50cy5sZW5ndGggPiAwfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFwZXJQbGFuZSBjb2xvcj1cIiNCRkJGQkZcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZE1BSUFTZW5kQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGw+XG4gICAgICAgIDwvU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcmVmPXtmaWxlSW5wdXRSZWZ9XG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgYWNjZXB0PVwiLnR4dCwubWQsLmNzdiwuZG9jLC5kb2N4LC5wbmcsLmpwZywuanBlZywucGRmLC54bHN4LC54bHMsLmZsYWMsLm00YSwubXAzLC5tcDQsLm9nYSwub2dnLC53YXYsLndlYm1cIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0fVxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZWRNQUlBSW5wdXRXcmFwcGVyPlxuICAgICAge21vZGFsUHJvcHMuaXNPcGVuICYmIChcbiAgICAgICAgPE1vZGFsRmlsZUV4Y2VlZHNcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRNb2RhbFByb3BzKHsgaXNPcGVuOiBmYWxzZSwgZXhjbHVkZWRGaWxlczogW10sIGV4Y2VlZGVkRmlsZXM6IFtdLCBmaWxlU2l6ZXM6IHt9IH0pfVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXM9e21vZGFsUHJvcHMuZXhjbHVkZWRGaWxlc31cbiAgICAgICAgICBleGNlZWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2VlZGVkRmlsZXN9XG4gICAgICAgICAgZmlsZVNpemVzPXttb2RhbFByb3BzLmZpbGVTaXplc31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7cG9wb3Zlck5vZGUgJiYgY3JlYXRlUG9ydGFsKHBvcG92ZXJOb2RlLCBkb2N1bWVudC5ib2R5KX1cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FLRUEsV0FBVyxFQUNYQyxTQUFTLEVBQ1RDLE9BQU8sRUFDUEMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUNkLFNBQVNDLFlBQVksUUFBUSxXQUFXO0FBQ3hDLFNBQVNDLE9BQU8sUUFBUSxlQUFlO0FBQ3ZDLFNBQVNDLFVBQVUsUUFBUSw2Q0FBNkM7QUFDeEUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELFNBQ0VDLHdCQUF3QixFQUN4QkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLGVBQWUsRUFDZkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLGlCQUFpQixFQUNqQkMsYUFBYSxFQUNiQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixFQUNoQkMsY0FBYyxFQUNkQyx3QkFBd0IsRUFDeEJDLHNC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
793
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsImNvbG9ycyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwidXNlR2xvYmFsQ29udGV4dCIsIk1vZGFsRmlsZUV4Y2VlZHMiLCJTbGFzaENvbW1hbmREcm9wZG93biIsInVzZVNsYXNoQ29tbWFuZHMiLCJxdWlja0FjdGlvblRpdGxlVG9UeXBlIiwidXNlVCIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldENoYXRUb29sc01lbnVBZ2VudFR5cGUiLCJNQUlBX0NIQVRfSU5QVVRfVUkiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVzIiwiTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiIsIk1BWF9GSUxFX1NJWkVfTUJfT0xEIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIiwiQVBQQ1VFU19FVkVOVFMiLCJ0cmFja0FwcGN1ZXNFdmVudCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZU1lbnRpb25Qb3BvdmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVE9PTF9DSElQX0VYSVRfTVMiLCJNQUlBSW5wdXQiLCJfcmVmIiwiX2FnZW50JGVudGl0eSIsIm9uU2VuZE1lc3NhZ2UiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJfcmVmJGFsaWduQnV0dG9ucyIsImFsaWduQnV0dG9ucyIsIm9uRmlsZUF0dGFjaCIsIm9uRGVsZXRlQXR0YWNobWVudCIsIl9yZWYkYXR0YWNobWVudHMiLCJhdHRhY2htZW50cyIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJ0b29sdGlwWkluZGV4IiwiX3VzZVQiLCJ0IiwiZWRpdG9yUmVmIiwiZmlsZUlucHV0UmVmIiwid3JhcHBlclJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImhhc1dyYXBwZWRUb1NlY29uZExpbmUiLCJzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJoYXNUeXBpbmdQcmVzZW5jZSIsInNldEhhc1R5cGluZ1ByZXNlbmNlIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc0ZvY3VzZWQiLCJzZXRJc0ZvY3VzZWQiLCJfdXNlU3RhdGU3IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImV4Y2VlZGVkRmlsZXMiLCJmaWxlU2l6ZXMiLCJfdXNlU3RhdGU4IiwibW9kYWxQcm9wcyIsInNldE1vZGFsUHJvcHMiLCJldmVudEFtcGxpdHVkZSIsIl91c2VHbG9iYWxDb250ZXh0IiwidG9nZ2xlV2ViU2VhcmNoIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJ0b2dnbGVEZWVwU2VhcmNoIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiYWdlbnQiLCJwbHVzTWVudVpJbmRleCIsIl91c2VNZW50aW9uUG9wb3ZlciIsInBvcG92ZXJBbmNob3JSZWYiLCJwb3BvdmVyT3BlbiIsInJlc2V0TWVudGlvbk9wZW5UcmFja2luZyIsImhhbmRsZVRyaWdnZXIiLCJoYW5kbGVQb3BvdmVyS2V5RG93biIsImhhbmRsZUtleURvd24iLCJwb3BvdmVyTm9kZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwicGx1c01lbnVBbmNob3IiLCJzZXRQbHVzTWVudUFuY2hvciIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsImFjdGl2ZVRvb2xDaGlwSG92ZXJlZCIsInNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZCIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJ0b29sQ2hpcEV4aXRpbmciLCJzZXRUb29sQ2hpcEV4aXRpbmciLCJ0b29sQ2hpcEV4aXRUaW1lclJlZiIsInNlYXJjaE1vZGVBY3RpdmVSZWYiLCJ3ZWIiLCJkZWVwIiwicGx1c01lbnVPcGVuIiwiQm9vbGVhbiIsInByZXZpb3VzQWdlbnRJZFJlZiIsInVuZGVmaW5lZCIsInByZXZpb3VzQ2hhdElkUmVmIiwicHJldmlvdXNOZXdDaGF0S2V5UmVmIiwiYW5hbHl0aWNzQWdlbnRUeXBlIiwiYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIiwidHlwZSIsImVudGl0eSIsIl91c2VTbGFzaENvbW1hbmRzIiwiaWQiLCJzbGFzaENvbW1hbmRzIiwiY29tbWFuZHMiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0Iiwic2hvd1NsYXNoRHJvcGRvd24iLCJzZXRTaG93U2xhc2hEcm9wZG93biIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJzbGFzaFF1ZXJ5Iiwic2V0U2xhc2hRdWVyeSIsInNsYXNoTWVudVdhc09wZW5SZWYiLCJzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24iLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwiX2VkaXRvclJlZiRjdXJyZW50IiwiY3VycmVudCIsImZvY3VzIiwiY2xvc2VQbHVzTWVudSIsImNhbmNlbFBlbmRpbmdUb29sQ2hpcEV4aXQiLCJjbGVhclRpbWVvdXQiLCJoYW5kbGVQbHVzQnV0dG9uQ2xpY2siLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiY3VycmVudFRhcmdldCIsImFpQ2hhdFBsdXNPcGVuIiwiX29iamVjdFNwcmVhZCIsImFnZW50X3R5cGUiLCJoYW5kbGVQbHVzTWVudUF0dGFjaCIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImFpQ2hhdFRvb2xzIiwib3B0aW9uIiwibGVuZ3RoIiwiY2xpY2siLCJiZWdpblRvb2xDaGlwRXhpdCIsIndhc1dlYiIsIndhc0RlZXAiLCJfc2VhcmNoTW9kZUFjdGl2ZVJlZiQiLCJoYW5kbGVQbHVzTWVudVdlYlNlYXJjaCIsImhhbmRsZVBsdXNNZW51RGVlcFNlYXJjaCIsIl9lZGl0b3JSZWYkY3VycmVudDIiLCJjb21wYWN0U2luZ2xlUm93VG9vbGJhciIsInNlbmREaXNhYmxlZCIsImFnZW50Q2hhbmdlZCIsInByZXZpb3VzQ2hhdElkIiwiY3VycmVudENoYXRJZCIsImNoYXRDaGFuZ2VkIiwiY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0IiwibmV3Q2hhdFN0YXJ0ZWQiLCJpc0luaXRpYWxNb3VudCIsImRlbGF5IiwiX2VkaXRvclJlZiRjdXJyZW50MyIsImlzU3BlY2lhbGlzdEFnZW50Iiwib2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsIl9yZWYyIiwiX3JlZjMiLCJlbnRyeSIsImlzSW50ZXJzZWN0aW5nIiwibWFpYUNvbnRleHRNZW50aW9uSW5pdCIsImRpc2Nvbm5lY3QiLCJ0aHJlc2hvbGQiLCJvYnNlcnZlIiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsIl9lZGl0b3JSZWYkY3VycmVudDQiLCJjbGVhciIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVTZW5kTWVzc2FnZSIsIl9lZGl0b3JSZWYkY3VycmVudDUiLCJfc3RhdGUkdGV4dCIsIl9zdGF0ZSRtZW50aW9ucyIsIl9lZGl0b3JSZWYkY3VycmVudDYiLCJzdGF0ZSIsInNlcmlhbGl6ZSIsInRleHQiLCJ0cmltIiwibWVudGlvbnMiLCJoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmQiLCJjb21tYW5kIiwiX2VkaXRvclJlZiRjdXJyZW50NyIsIl9zdGF0ZSR0ZXh0MiIsIl9lZGl0b3JSZWYkY3VycmVudDkiLCJhaUNoYXRRdWlja0FjdGlvblNlbGVjdCIsInR5cGVfcXVpY2tfYWN0aW9uIiwidGl0bGUiLCJvcmlnaW5fcXVpY2tfYWN0aW9uIiwidHJpZ2dlclBhcnQiLCJjb25jYXQiLCJiZWZvcmVUcmlnZ2VyIiwiZW5kc1dpdGgiLCJzbGljZSIsImlzRW1wdHlCZWZvcmVUcmlnZ2VyIiwiX2VkaXRvclJlZiRjdXJyZW50OCIsImluc2VydFNsYXNoQ29tbWFuZCIsImxhYmVsIiwiaGFuZGxlQ2xvc2VTbGFzaERyb3Bkb3duIiwiaGFuZGxlRWRpdG9ySW5wdXQiLCJfcmVmNCIsIl9lZGl0b3JSZWYkY3VycmVudDAiLCJ0cmlnZ2VyIiwic2xhc2hUcmlnZ2VyIiwidmlzdWFsTXVsdGlsaW5lIiwiaGFzVmlzdWFsTXVsdGlsaW5lIiwiZXhwbGljaXRNdWx0aWxpbmUiLCJpbmNsdWRlcyIsImlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2giLCJzdGFibGVWaXN1YWxNdWx0aWxpbmUiLCJuZXh0SXNNdWx0aWxpbmUiLCJuZXh0SGFzVHlwaW5nUHJlc2VuY2UiLCJuZXh0VHlwaW5nUHJlc2VuY2UiLCJwcmV2IiwibmV4dCIsImFjdGl2ZSIsImFpQ2hhdFF1aWNrQWN0aW9uT3BlbiIsInF1ZXJ5Iiwia2V5Iiwic2hpZnRLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZUZpbGVTZWxlY3QiLCJmaWxlcyIsInRhcmdldCIsImZpbGVzSW5zZXJ0ZWQiLCJpc05ld0Zvcm1hdCIsImV4dGVuc2lvbiIsImlzT2xkRm9ybWF0IiwiaXNBdWRpb0Zvcm1hdCIsIkFycmF5IiwiZnJvbSIsImZvckVhY2giLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZXhjbHVkZWRGaWxlIiwiZmlsZU5hbWVQYXJ0cyIsIm5hbWUiLCJzcGxpdCIsImZpbGVFeHRlbnNpb24iLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsInNpemUiLCJwdXNoIiwidHlwZUZpbGUiLCJwYXJzZWRGaWxlIiwiRmlsZSIsInZhbHVlIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImhhbmRsZVdyYXBwZXJGb2N1cyIsImhhbmRsZVdyYXBwZXJCbHVyIiwiX3dyYXBwZXJSZWYkY3VycmVudCIsImNvbnRhaW5zIiwiYWN0aXZlRWxlbWVudCIsImhhbmRsZVN0b3BHZW5lcmF0aW9uIiwiYWlDaGF0U3RvcFJlc3BvbnNlIiwicGx1c0ljb25Db2xvciIsInNlY29uZGFyeSIsIm1lZGl1bUdyYXkiLCJwbHVzTWVudUljb25Db2xvciIsIm1lbnVJY29uIiwicGx1c01lbnVTZWxlY3RlZENvbG9yIiwidGV4dEJyYW5kQm9sZCIsImFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24iLCJjb2xvciIsImNoaXBDbG9zZUljb24iLCJ3aWR0aCIsImhlaWdodCIsImNoaWxkcmVuIiwicmVmIiwiaGFzQXR0YWNobWVudHMiLCJvbkZvY3VzIiwib25CbHVyIiwic3R5bGUiLCJwb3NpdGlvbiIsIm9uU2VsZWN0Iiwib25DbG9zZSIsImRpc3BsYXkiLCJnYXAiLCJhbGlnbkl0ZW1zIiwibWFwIiwiYXR0YWNobWVudCIsImluZGV4IiwiX2ZpbGVOYW1lUGFydHMkcG9wMiIsIl9hdHRhY2htZW50JHR5cGUiLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwic3RhcnRzV2l0aCIsImlzSW1hZ2UiLCJ6SW5kZXgiLCJpY29uIiwib25DbGljayIsIiRjb21wYWN0Um93IiwiJG1lbnVPcGVuIiwib3BlbiIsImFuY2hvckVsIiwiYW5jaG9yT3JpZ2luIiwidmVydGljYWwiLCJob3Jpem9udGFsIiwidHJhbnNmb3JtT3JpZ2luIiwic3giLCJzbG90UHJvcHMiLCJwYXBlciIsImVsZXZhdGlvbiIsIm92ZXJmbG93IiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYmFja2dyb3VuZENvbG9yIiwibWFyZ2luVG9wIiwiJHNlbGVjdGVkIiwiJGhvdmVyZWQiLCIkZXhpdGluZyIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIiRjbG9zZVNob3duIiwiZ3JpZENvbHVtbiIsImdyaWRSb3ciLCJtaW5XaWR0aCIsImFsaWduU2VsZiIsIm9uSW5wdXQiLCJvbktleURvd24iLCJoYXNWYWx1ZXMiLCJtdWx0aXBsZSIsImFjY2VwdCIsImJvZHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXZvaWQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbG9uZWx5LWlmICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItZGVzdHJ1Y3R1cmluZyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQge1xuICBDaGFuZ2VFdmVudCxcbiAgS2V5Ym9hcmRFdmVudCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUGFwZXJQbGFuZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BhcGVyUGxhbmUnXG5pbXBvcnQgeyBBdHRhY2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BdHRhY2gnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcbmltcG9ydCB7IFBsdXMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QbHVzJ1xuaW1wb3J0IHsgQ2hlY2sgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVjaydcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcblxuaW1wb3J0IHtcbiAgQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uLFxuICBBY3RpdmVUb29sQ2hpcExhYmVsLFxuICBBY3RpdmVUb29sQ2hpcFJvb3QsXG4gIFBsdXNNZW51RGl2aWRlcixcbiAgUGx1c01lbnVJbm5lckNvbHVtbixcbiAgUGx1c01lbnVJdGVtQnV0dG9uLFxuICBQbHVzTWVudUl0ZW1MYWJlbCxcbiAgUGx1c01lbnVQYXBlcixcbiAgUGx1c01lbnVUb29sc1JvdyxcbiAgUGx1c1RvZ2dsZUJ1dHRvbixcbiAgU0NNSUF0dGFjaG1lbnQsXG4gIFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbixcbiAgU3R5bGVkTUFJQUlucHV0V3JhcHBlcixcbiAgU3R5bGVkTUFJQVNlbmRCdXR0b24sXG4gIFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQsXG4gIFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTdG9wQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEljb24sXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBNb2RhbEZpbGVFeGNlZWRzIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL01vZGFsRmlsZUV4Y2VlZHMnXG5pbXBvcnQgeyBTbGFzaENvbW1hbmREcm9wZG93biB9IGZyb20gJy4uL1NsYXNoQ29tbWFuZERyb3Bkb3duJ1xuaW1wb3J0IHsgdXNlU2xhc2hDb21tYW5kcyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNsYXNoQ29tbWFuZHMnXG5pbXBvcnQgeyBxdWlja0FjdGlvblRpdGxlVG9UeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc2xhc2hDb21tYW5kTWFya2VyJ1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IFRlbGVzY29wZUljb24gfSBmcm9tICcuLi9pY29ucy9UZWxlc2NvcGVJY29uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2hpdGxBbmFseXRpY3MnXG5pbXBvcnQgeyBNQUlBX0NIQVRfSU5QVVRfVUkgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHtcbiAgYWxsb3dlZEZpbGVUeXBlcyxcbiAgZmlsZVR5cGVzLFxuICBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OLFxuICBNQVhfRklMRV9TSVpFX01CX09MRCxcbiAgTUFYX0ZJTEVfU0laRV9NQl9BVURJTyxcbiAgTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMsXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9mb3JtYXRFeHRlbnNpb25zJ1xuaW1wb3J0IHsgQVBQQ1VFU19FVkVOVFMsIHRyYWNrQXBwY3Vlc0V2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwY3VlcydcbmltcG9ydCB7IENvbnRleHRNZW50aW9uRWRpdG9yLCBDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuaW1wb3J0IHsgdXNlTWFpYVRhc2tQYW5lbFpJbmRleCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyB1c2VNZW50aW9uUG9wb3ZlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1lbnRpb25Qb3BvdmVyJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcblxuY29uc3QgVE9PTF9DSElQX0VYSVRfTVMgPSAyMjBcblxudHlwZSBBdHRhY2htZW50RmlsZSA9IHtcbiAgZmlsZTogRmlsZVxuICBvcmlnaW5hbEZpbGU/OiBGaWxlXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxufVxuXG50eXBlIE1BSUFJbnB1dFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmYXFJZD86IHN0cmluZyxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgaXNXcml0aW5nPzogYm9vbGVhblxuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBvbkNoYW5nZT86ICgpID0+IHZvaWRcbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBvbkZpbGVBdHRhY2g/OiAoZmlsZTogRmlsZSkgPT4gdm9pZFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQ/OiAoZmlsZUlkOiBzdHJpbmcpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGNoYXRJZD86IHN0cmluZ1xuICBuZXdDaGF0S2V5PzogbnVtYmVyXG4gIHRvb2x0aXBaSW5kZXg/OiBudW1iZXJcbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFJbnB1dCA9ICh7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGNsYXNzTmFtZSxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIHBsYWNlaG9sZGVyLFxuICBvbkNoYW5nZSxcbiAgYWxpZ25CdXR0b25zID0gJ3ZlcnRpY2FsJyxcbiAgb25GaWxlQXR0YWNoLFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQsXG4gIGF0dGFjaG1lbnRzID0gW10sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgdG9vbHRpcFpJbmRleCxcbn06IE1BSUFJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZT4obnVsbClcbiAgY29uc3QgZmlsZUlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtoYXNXcmFwcGVkVG9TZWNvbmRMaW5lLCBzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaGFzVHlwaW5nUHJlc2VuY2UsIHNldEhhc1R5cGluZ1ByZXNlbmNlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFttb2RhbFByb3BzLCBzZXRNb2RhbFByb3BzXSA9IHVzZVN0YXRlKHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIGV4Y2x1ZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGV4Y2VlZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGZpbGVTaXplczoge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPixcbiAgfSlcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgdG9nZ2xlV2ViU2VhcmNoLCBpc1dlYlNlYXJjaEFjdGl2ZSwgdG9nZ2xlRGVlcFNlYXJjaCwgaXNEZWVwU2VhcmNoQWN0aXZlLCBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHBsdXNNZW51WkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxMzAwLCAnb3ZlcmxheScpXG5cbiAgY29uc3Qge1xuICAgIHBvcG92ZXJPcGVuLFxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyxcbiAgICBoYW5kbGVUcmlnZ2VyLFxuICAgIGhhbmRsZUtleURvd246IGhhbmRsZVBvcG92ZXJLZXlEb3duLFxuICAgIHBvcG92ZXJOb2RlLFxuICB9ID0gdXNlTWVudGlvblBvcG92ZXIoe1xuICAgIGVkaXRvclJlZixcbiAgICBwb3BvdmVyQW5jaG9yUmVmOiB3cmFwcGVyUmVmLFxuICB9KVxuXG4gIGNvbnN0IFtwbHVzTWVudUFuY2hvciwgc2V0UGx1c01lbnVBbmNob3JdID0gdXNlU3RhdGU8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbYWN0aXZlVG9vbENoaXBIb3ZlcmVkLCBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt0b29sQ2hpcEV4aXRpbmcsIHNldFRvb2xDaGlwRXhpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgdG9vbENoaXBFeGl0VGltZXJSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuICBjb25zdCBzZWFyY2hNb2RlQWN0aXZlUmVmID0gdXNlUmVmKHsgd2ViOiBmYWxzZSwgZGVlcDogZmFsc2UgfSlcbiAgY29uc3QgcGx1c01lbnVPcGVuID0gQm9vbGVhbihwbHVzTWVudUFuY2hvcilcblxuICAvLyBJbmljaWFsaXphciBsYXMgcmVmZXJlbmNpYXMgY29tbyB1bmRlZmluZWQgcGFyYSBkZXRlY3RhciBlbCBwcmltZXIgY2FtYmlvIGNvcnJlY3RhbWVudGVcbiAgY29uc3QgcHJldmlvdXNBZ2VudElkUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjb25zdCBwcmV2aW91c0NoYXRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNOZXdDaGF0S2V5UmVmID0gdXNlUmVmPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIGNvbnN0IGFuYWx5dGljc0FnZW50VHlwZSA9IGdldENoYXRUb29sc01lbnVBZ2VudFR5cGUoYWdlbnQpXG4gIGNvbnN0IGFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCA9IGFnZW50Py50eXBlID09PSAnY2xvbmUnID8geyBlbnRpdHk6IGFnZW50LmVudGl0eSA/PyBudWxsIH0gOiB7fVxuXG4gIC8vIFNsYXNoIGNvbW1hbmRzIHNvbG8gYXBsaWNhbiBhIGFnZW50ZXMgY2xvbmUgZXNwZWNpYWxpc3RhcyAobG9zIGN1c3RvbSB5IG1haWFrZXIvZ2xvYmFsIG5vIGxvcyB0aWVuZW4gaGFiaWxpdGFkb3MpLlxuICBjb25zdCB7IGNvbW1hbmRzOiBzbGFzaENvbW1hbmRzIH0gPSB1c2VTbGFzaENvbW1hbmRzKFxuICAgIGFnZW50Py50eXBlID09PSAnY2xvbmUnICYmIGFnZW50Py5lbnRpdHkgIT09ICdnbG9iYWwnID8gYWdlbnQ/LmlkIDogdW5kZWZpbmVkXG4gIClcbiAgY29uc3QgW3Nob3dTbGFzaERyb3Bkb3duLCBzZXRTaG93U2xhc2hEcm9wZG93bl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3NsYXNoUXVlcnksIHNldFNsYXNoUXVlcnldID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IHNsYXNoTWVudVdhc09wZW5SZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgLyoqIFRyYXMgZWxlZ2lyIG8gcXVpdGFyIGLDunNxdWVkYSB3ZWIvcHJvZnVuZGE6IHZvbHZlciBhbCB0ZXh0YXJlYSAoUG9wb3Zlci9tZW51IHB1ZWRlIHJvYmFyIGZvY28pLiAqL1xuICBjb25zdCBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24gPSAoKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH0sIDApXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGNsb3NlUGx1c01lbnUgPSAoKSA9PiB7XG4gICAgc2V0UGx1c01lbnVBbmNob3IobnVsbClcbiAgfVxuXG4gIGNvbnN0IGNhbmNlbFBlbmRpbmdUb29sQ2hpcEV4aXQgPSAoKSA9PiB7XG4gICAgaWYgKHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50KVxuICAgICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICB9XG4gICAgc2V0VG9vbENoaXBFeGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c0J1dHRvbkNsaWNrID0gKGU6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmIChwbHVzTWVudUFuY2hvcikge1xuICAgICAgY2xvc2VQbHVzTWVudSgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0UGx1c01lbnVBbmNob3IoZS5jdXJyZW50VGFyZ2V0KVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRQbHVzT3BlbiwgeyBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c01lbnVBdHRhY2ggPSAoKSA9PiB7XG4gICAgY2xvc2VQbHVzTWVudSgpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7XG4gICAgICBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsXG4gICAgICBvcHRpb246ICdmaWxlcycsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgICBpZiAoYXR0YWNobWVudHMubGVuZ3RoID49IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSByZXR1cm5cbiAgICBmaWxlSW5wdXRSZWYuY3VycmVudD8uY2xpY2soKVxuICB9XG5cbiAgY29uc3QgYmVnaW5Ub29sQ2hpcEV4aXQgPSAoKSA9PiB7XG4gICAgaWYgKHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB3YXNXZWIgPSBpc1dlYlNlYXJjaEFjdGl2ZVxuICAgIGNvbnN0IHdhc0RlZXAgPSBpc0RlZXBTZWFyY2hBY3RpdmVcbiAgICBpZiAoIXdhc1dlYiAmJiAhd2FzRGVlcCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNldFRvb2xDaGlwRXhpdGluZyh0cnVlKVxuICAgIHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICBjb25zdCB7IHdlYiwgZGVlcCB9ID0gc2VhcmNoTW9kZUFjdGl2ZVJlZi5jdXJyZW50XG4gICAgICBpZiAod2FzV2ViICYmIHdlYikge1xuICAgICAgICB0b2dnbGVXZWJTZWFyY2goKVxuICAgICAgfSBlbHNlIGlmICh3YXNEZWVwICYmIGRlZXApIHtcbiAgICAgICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgICB9XG4gICAgICBzZXRUb29sQ2hpcEV4aXRpbmcoZmFsc2UpXG4gICAgICBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24oKVxuICAgIH0sIFRPT0xfQ0hJUF9FWElUX01TKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c01lbnVXZWJTZWFyY2ggPSAoKSA9PiB7XG4gICAgY2xvc2VQbHVzTWVudSgpXG4gICAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgICBiZWdpblRvb2xDaGlwRXhpdCgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCgpXG4gICAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgfVxuICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7XG4gICAgICBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsXG4gICAgICBvcHRpb246ICdzZWFyY2gnLFxuICAgICAgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkLFxuICAgIH0pXG4gICAgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBsdXNNZW51RGVlcFNlYXJjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICBiZWdpblRvb2xDaGlwRXhpdCgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCgpXG4gICAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVXZWJTZWFyY2goKVxuICAgIH1cbiAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ2RlZXBfc2VhcmNoJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbigpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgfVxuICB9LCBbZGlzYWJsZWRdKVxuXG4gIGNvbnN0IGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBhdHRhY2htZW50cy5sZW5ndGggPT09IDAgJiYgIWlzV2ViU2VhcmNoQWN0aXZlICYmICFpc0RlZXBTZWFyY2hBY3RpdmUgJiYgIWhhc1dyYXBwZWRUb1NlY29uZExpbmUsXG4gICAgW2F0dGFjaG1lbnRzLmxlbmd0aCwgaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZSwgaGFzV3JhcHBlZFRvU2Vjb25kTGluZV1cbiAgKVxuXG4gIGNvbnN0IHNlbmREaXNhYmxlZCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gIWhhc1R5cGluZ1ByZXNlbmNlICYmIGF0dGFjaG1lbnRzLmxlbmd0aCA9PT0gMCxcbiAgICBbaGFzVHlwaW5nUHJlc2VuY2UsIGF0dGFjaG1lbnRzLmxlbmd0aF1cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2VhcmNoTW9kZUFjdGl2ZVJlZi5jdXJyZW50ID0geyB3ZWI6IGlzV2ViU2VhcmNoQWN0aXZlLCBkZWVwOiBpc0RlZXBTZWFyY2hBY3RpdmUgfVxuICB9LCBbaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNXZWJTZWFyY2hBY3RpdmUgJiYgIWlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgc2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkKGZhbHNlKVxuICAgIH1cbiAgfSwgW2lzV2ViU2VhcmNoQWN0aXZlLCBpc0RlZXBTZWFyY2hBY3RpdmVdKVxuXG4gIC8vIEF1dG8tZm9jdXMgY3VhbmRvIGNhbWJpYSBlbCBhZ2VudGUgbyBsYSBjb252ZXJzYWNpw7NuLCBvIGFsIG1vbnRhciBlbCBjb21wb25lbnRlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYWdlbnRDaGFuZ2VkID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgIT09IGFnZW50Py5pZFxuICAgIGNvbnN0IHByZXZpb3VzQ2hhdElkID0gcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudFxuICAgIGNvbnN0IGN1cnJlbnRDaGF0SWQgPSBjaGF0SWRcbiAgICBjb25zdCBjaGF0Q2hhbmdlZCA9IHByZXZpb3VzQ2hhdElkICE9PSBjdXJyZW50Q2hhdElkXG4gICAgY29uc3QgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID1cbiAgICAgIChwcmV2aW91c0NoYXRJZCA9PT0gdW5kZWZpbmVkIHx8IHByZXZpb3VzQ2hhdElkID09PSBudWxsKSAmJiBjdXJyZW50Q2hhdElkICE9PSB1bmRlZmluZWQgJiYgY3VycmVudENoYXRJZCAhPT0gbnVsbFxuICAgIGNvbnN0IG5ld0NoYXRTdGFydGVkID0gcHJldmlvdXNOZXdDaGF0S2V5UmVmLmN1cnJlbnQgIT09IG5ld0NoYXRLZXlcbiAgICBjb25zdCBpc0luaXRpYWxNb3VudCA9IHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQgJiYgcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkXG5cbiAgICBpZiAoKGFnZW50Q2hhbmdlZCB8fCBjaGF0Q2hhbmdlZCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgfHwgbmV3Q2hhdFN0YXJ0ZWQgfHwgaXNJbml0aWFsTW91bnQpICYmICFkaXNhYmxlZCkge1xuICAgICAgY29uc3QgZGVsYXkgPSBpc0luaXRpYWxNb3VudCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgPyAyMDAgOiAxMDBcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIWRpc2FibGVkKSBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgICAgfSwgZGVsYXkpXG4gICAgfVxuXG4gICAgcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgPSBhZ2VudD8uaWRcbiAgICBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50ID0gY2hhdElkXG4gICAgcHJldmlvdXNOZXdDaGF0S2V5UmVmLmN1cnJlbnQgPSBuZXdDaGF0S2V5XG4gIH0sIFthZ2VudD8uaWQsIGNoYXRJZCwgbmV3Q2hhdEtleSwgZGlzYWJsZWRdKVxuXG4gIC8vIEFwcGN1ZXM6IG5vdGlmeSB0aGF0IHRoZSBpbnB1dCBpcyB2aXNpYmxlIGZvciBzcGVjaWFsaXN0IGFnZW50cyAoY2xvbmUgKyBwcm9qZWN0L2NsaWVudClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpc1NwZWNpYWxpc3RBZ2VudCA9IGFnZW50Py50eXBlID09PSAnY2xvbmUnICYmIChhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCcgfHwgYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCcpXG4gICAgaWYgKCF3cmFwcGVyUmVmLmN1cnJlbnQgfHwgIWlzU3BlY2lhbGlzdEFnZW50KSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgIChbZW50cnldKSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgIHRyYWNrQXBwY3Vlc0V2ZW50KEFQUENVRVNfRVZFTlRTLm1haWFDb250ZXh0TWVudGlvbkluaXQpXG4gICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHRocmVzaG9sZDogMC4xIH1cbiAgICApXG5cbiAgICBvYnNlcnZlci5vYnNlcnZlKHdyYXBwZXJSZWYuY3VycmVudClcbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpXG4gIH0sIFthZ2VudD8uaWQsIGFnZW50Py50eXBlLCBhZ2VudD8uZW50aXR5XSlcblxuICAvLyBDbGVhciBpbnB1dCB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgICAgc2V0SGFzVHlwaW5nUHJlc2VuY2UoZmFsc2UpXG4gICAgICBzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lKGZhbHNlKVxuICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgICBzZXRTbGFzaFF1ZXJ5KCcnKVxuICAgICAgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nKClcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgfSwgW3Jlc2V0TWVudGlvbk9wZW5UcmFja2luZ10pXG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPSBlZGl0b3JSZWYuY3VycmVudD8uc2VyaWFsaXplKClcbiAgICBjb25zdCB0ZXh0ID0gc3RhdGU/LnRleHQgPz8gJydcbiAgICBpZiAoIXRleHQudHJpbSgpICYmICFhdHRhY2htZW50cy5sZW5ndGgpIHJldHVyblxuICAgIGNvbnN0IG1lbnRpb25zID0gc3RhdGU/Lm1lbnRpb25zID8/IFtdXG4gICAgb25TZW5kTWVzc2FnZSh0ZXh0LCBhdHRhY2htZW50cywgbWVudGlvbnMpXG4gICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmNsZWFyKClcbiAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICBzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lKGZhbHNlKVxuICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nKClcbiAgfSwgW2F0dGFjaG1lbnRzLCBvblNlbmRNZXNzYWdlLCByZXNldE1lbnRpb25PcGVuVHJhY2tpbmddKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdFNsYXNoQ29tbWFuZCA9IHVzZUNhbGxiYWNrKFxuICAgIChjb21tYW5kOiBBY3Rpb24pID0+IHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRRdWlja0FjdGlvblNlbGVjdCwge1xuICAgICAgICB0eXBlX3F1aWNrX2FjdGlvbjogcXVpY2tBY3Rpb25UaXRsZVRvVHlwZShjb21tYW5kLmlkLCBjb21tYW5kLnRpdGxlKSxcbiAgICAgICAgb3JpZ2luX3F1aWNrX2FjdGlvbjogJ3NsYXNoX21lbnUnLFxuICAgICAgfSlcblxuICAgICAgY29uc3Qgc3RhdGUgPSBlZGl0b3JSZWYuY3VycmVudD8uc2VyaWFsaXplKClcbiAgICAgIGNvbnN0IHRleHQgPSBzdGF0ZT8udGV4dCA/PyAnJ1xuICAgICAgY29uc3QgdHJpZ2dlclBhcnQgPSBgLyR7c2xhc2hRdWVyeX1gXG4gICAgICBjb25zdCBiZWZvcmVUcmlnZ2VyID0gdGV4dC5lbmRzV2l0aCh0cmlnZ2VyUGFydCkgPyB0ZXh0LnNsaWNlKDAsIC10cmlnZ2VyUGFydC5sZW5ndGgpIDogdGV4dFxuICAgICAgY29uc3QgaXNFbXB0eUJlZm9yZVRyaWdnZXIgPSBiZWZvcmVUcmlnZ2VyLnRyaW0oKSA9PT0gJydcblxuICAgICAgaWYgKGlzRW1wdHlCZWZvcmVUcmlnZ2VyKSB7XG4gICAgICAgIG9uU2VuZE1lc3NhZ2UoY29tbWFuZC50aXRsZSwgYXR0YWNobWVudHMsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tbWFuZC5pZClcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmNsZWFyKClcbiAgICAgICAgc2V0SGFzVHlwaW5nUHJlc2VuY2UoZmFsc2UpXG4gICAgICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUoZmFsc2UpXG4gICAgICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgICAgICBzZXRTbGFzaFF1ZXJ5KCcnKVxuICAgICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/Lmluc2VydFNsYXNoQ29tbWFuZCh7IGlkOiBjb21tYW5kLmlkLCBsYWJlbDogY29tbWFuZC50aXRsZSB9KVxuICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgICBzZXRTbGFzaFF1ZXJ5KCcnKVxuICAgICAgc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9LFxuICAgIFthdHRhY2htZW50cywgb25TZW5kTWVzc2FnZSwgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nLCBzbGFzaFF1ZXJ5LCBldmVudEFtcGxpdHVkZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlU2xhc2hEcm9wZG93biA9ICgpID0+IHtcbiAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRWRpdG9ySW5wdXQgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgdGV4dCxcbiAgICAgIHRyaWdnZXIsXG4gICAgICBzbGFzaFRyaWdnZXIsXG4gICAgfToge1xuICAgICAgdGV4dDogc3RyaW5nXG4gICAgICBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXVxuICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfVxuICAgICAgc2xhc2hUcmlnZ2VyPzogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmcgfVxuICAgIH0pID0+IHtcbiAgICAgIGNvbnN0IHZpc3VhbE11bHRpbGluZSA9ICEhZWRpdG9yUmVmLmN1cnJlbnQ/Lmhhc1Zpc3VhbE11bHRpbGluZSgpXG4gICAgICBjb25zdCBleHBsaWNpdE11bHRpbGluZSA9IHRleHQuaW5jbHVkZXMoJ1xcbicpXG4gICAgICBjb25zdCBpc0xpa2VseUZpcnN0Q2hhck1lYXN1cmVtZW50R2xpdGNoID0gdGV4dC5sZW5ndGggPD0gMSAmJiAhZXhwbGljaXRNdWx0aWxpbmUgJiYgdmlzdWFsTXVsdGlsaW5lXG4gICAgICBjb25zdCBzdGFibGVWaXN1YWxNdWx0aWxpbmUgPSBpc0xpa2VseUZpcnN0Q2hhck1lYXN1cmVtZW50R2xpdGNoID8gZmFsc2UgOiB2aXN1YWxNdWx0aWxpbmVcbiAgICAgIGNvbnN0IG5leHRJc011bHRpbGluZSA9IGV4cGxpY2l0TXVsdGlsaW5lIHx8IHN0YWJsZVZpc3VhbE11bHRpbGluZVxuICAgICAgY29uc3QgbmV4dEhhc1R5cGluZ1ByZXNlbmNlID0gdGV4dC50cmltKCkubGVuZ3RoID4gMFxuICAgICAgY29uc3QgbmV4dFR5cGluZ1ByZXNlbmNlID0gdGV4dC50cmltKCkubGVuZ3RoID4gMFxuXG4gICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShuZXh0VHlwaW5nUHJlc2VuY2UpXG4gICAgICBzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lKHByZXYgPT4ge1xuICAgICAgICBsZXQgbmV4dCA9IHByZXZcbiAgICAgICAgaWYgKCFuZXh0SGFzVHlwaW5nUHJlc2VuY2UpIHtcbiAgICAgICAgICBuZXh0ID0gZmFsc2VcbiAgICAgICAgfSBlbHNlIGlmIChuZXh0SXNNdWx0aWxpbmUpIHtcbiAgICAgICAgICBuZXh0ID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHRcbiAgICAgIH0pXG4gICAgICBvbkNoYW5nZT8uKClcbiAgICAgIGhhbmRsZVRyaWdnZXIodHJpZ2dlcilcblxuICAgICAgaWYgKHNsYXNoVHJpZ2dlcj8uYWN0aXZlICYmIHNsYXNoQ29tbWFuZHMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoIXNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCkge1xuICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRRdWlja0FjdGlvbk9wZW4pXG4gICAgICAgICAgc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIHNldFNob3dTbGFzaERyb3Bkb3duKHRydWUpXG4gICAgICAgIHNldFNsYXNoUXVlcnkoc2xhc2hUcmlnZ2VyLnF1ZXJ5KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIGhhbmRsZVRyaWdnZXIsIHNsYXNoQ29tbWFuZHMsIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKGhhbmRsZVBvcG92ZXJLZXlEb3duKGUpKSByZXR1cm5cbiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiAhZS5zaGlmdEtleSAmJiAhcG9wb3Zlck9wZW4pIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGlmICghc2VuZERpc2FibGVkICYmICFkaXNhYmxlZCkgaGFuZGxlU2VuZE1lc3NhZ2UoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZVBvcG92ZXJLZXlEb3duLCBwb3BvdmVyT3Blbiwgc2VuZERpc2FibGVkLCBkaXNhYmxlZCwgaGFuZGxlU2VuZE1lc3NhZ2VdXG4gIClcblxuICBjb25zdCBoYW5kbGVGaWxlU2VsZWN0ID0gKGU6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgZmlsZXMgPSBlLnRhcmdldC5maWxlc1xuICAgIGlmICghZmlsZXMpIHJldHVyblxuXG4gICAgY29uc3QgZXhjZWVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBmaWxlU2l6ZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fVxuICAgIGxldCBmaWxlc0luc2VydGVkID0gYXR0YWNobWVudHMubGVuZ3RoXG5cbiAgICAvLyBEZWZpbmlyIGzDrW1pdGVzIHBhcmEgZGlmZXJlbnRlcyB0aXBvcyBkZSBhcmNoaXZvc1xuICAgIGNvbnN0IGlzTmV3Rm9ybWF0ID0gKGV4dGVuc2lvbjogc3RyaW5nKSA9PiBbJy5wbmcnLCAnLmpwZycsICcuanBlZycsICcucGRmJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzT2xkRm9ybWF0ID0gKGV4dGVuc2lvbjogc3RyaW5nKSA9PlxuICAgICAgWycudHh0JywgJy5tZCcsICcuY3N2JywgJy5kb2MnLCAnLmRvY3gnLCAnLnhsc3gnLCAnLnhscyddLmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICBjb25zdCBpc0F1ZGlvRm9ybWF0ID0gKGV4dGVuc2lvbjogc3RyaW5nKSA9PlxuICAgICAgWycuZmxhYycsICcubTRhJywgJy5tcDMnLCAnLm1wNCcsICcub2dhJywgJy5vZ2cnLCAnLndhdicsICcud2VibSddLmluY2x1ZGVzKGV4dGVuc2lvbilcblxuICAgIEFycmF5LmZyb20oZmlsZXMpLmZvckVhY2goZmlsZSA9PiB7XG4gICAgICBsZXQgZXhjbHVkZWRGaWxlID0gZmFsc2VcbiAgICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVxuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lUGFydHMubGVuZ3RoID4gMSA/IGAuJHtmaWxlTmFtZVBhcnRzLnBvcCgpPy50b0xvd2VyQ2FzZSgpfWAgOiAnJ1xuXG4gICAgICBpZiAoIWFsbG93ZWRGaWxlVHlwZXM/LmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBmaWxlU2l6ZXNbZmlsZS5uYW1lXSA9IGZpbGUuc2l6ZVxuXG4gICAgICAvLyBWYWxpZGFjaW9uZXMgZXNwZWPDrWZpY2FzIHNlZ8O6biBlbCB0aXBvIGRlIGFyY2hpdm9cbiAgICAgIGlmIChpc05ld0Zvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAvLyBQYXJhIG51ZXZvcyBmb3JtYXRvczogaGFzdGEgNC45OU1CIHBvciBhcmNoaXZvLCBoYXN0YSBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUyBhcmNoaXZvc1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzT2xkRm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgZm9ybWF0b3MgYW50ZXJpb3JlczogaGFzdGEgMU1CIHBvciBhcmNoaXZvLCBoYXN0YSBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUyBhcmNoaXZvc1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gTUFYX0ZJTEVfU0laRV9NQl9PTEQgKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc0F1ZGlvRm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgYXJjaGl2b3MgZGUgYXVkaW86IGhhc3RhIDEwTUIgcG9yIGFyY2hpdm8sIGhhc3RhIE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX0FVRElPICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFleGNsdWRlZEZpbGUpIHtcbiAgICAgICAgZmlsZXNJbnNlcnRlZCArPSAxXG4gICAgICAgIGNvbnN0IHR5cGVGaWxlID0gZmlsZS50eXBlIHx8IGZpbGVUeXBlc1tmaWxlRXh0ZW5zaW9uXVxuICAgICAgICBjb25zdCBwYXJzZWRGaWxlID0gbmV3IEZpbGUoW2ZpbGVdLCBmaWxlLm5hbWUsIHsgdHlwZTogdHlwZUZpbGUgfSlcbiAgICAgICAgb25GaWxlQXR0YWNoPy4ocGFyc2VkRmlsZSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYgKGV4Y2x1ZGVkRmlsZXMubGVuZ3RoIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoKSB7XG4gICAgICBzZXRNb2RhbFByb3BzKHsgaXNPcGVuOiB0cnVlLCBleGNsdWRlZEZpbGVzLCBleGNlZWRlZEZpbGVzLCBmaWxlU2l6ZXMgfSlcbiAgICB9XG5cbiAgICBpZiAoZmlsZUlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50LnZhbHVlID0gJydcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGZpbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgb25EZWxldGVBdHRhY2htZW50Py4oZmlsZUlkKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlV3JhcHBlckZvY3VzID0gKCkgPT4gc2V0SXNGb2N1c2VkKHRydWUpXG4gIGNvbnN0IGhhbmRsZVdyYXBwZXJCbHVyID0gKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF3cmFwcGVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHNldElzRm9jdXNlZChmYWxzZSlcbiAgICAgIH1cbiAgICB9LCAwKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU3RvcEdlbmVyYXRpb24gPSAoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFN0b3BSZXNwb25zZSlcbiAgICBvblN0b3BHZW5lcmF0aW9uPy4oKVxuICB9XG5cbiAgY29uc3QgcGx1c0ljb25Db2xvciA9IGlzRm9jdXNlZCA/IGNvbG9ycy50ZXh0LnNlY29uZGFyeSA6IGNvbG9ycy50ZXh0Lm1lZGl1bUdyYXlcbiAgY29uc3QgcGx1c01lbnVJY29uQ29sb3IgPSBNQUlBX0NIQVRfSU5QVVRfVUkubWVudUljb25cbiAgY29uc3QgcGx1c01lbnVTZWxlY3RlZENvbG9yID0gTUFJQV9DSEFUX0lOUFVUX1VJLnRleHRCcmFuZEJvbGRcblxuICBsZXQgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbjogUmVhY3ROb2RlXG4gIGlmIChhY3RpdmVUb29sQ2hpcEhvdmVyZWQpIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPENyb3NzIGNvbG9yPXtNQUlBX0NIQVRfSU5QVVRfVUkuY2hpcENsb3NlSWNvbn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9IGVsc2UgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiA9IDxHbG9iZSBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfSBlbHNlIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPFRlbGVzY29wZUljb24gY29sb3I9e3BsdXNNZW51SWNvbkNvbG9yfSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U3R5bGVkTUFJQUlucHV0V3JhcHBlclxuICAgICAgICByZWY9e3dyYXBwZXJSZWZ9XG4gICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgYWxpZ25CdXR0b25zPXthbGlnbkJ1dHRvbnN9XG4gICAgICAgIGhhc0F0dGFjaG1lbnRzPXshIWF0dGFjaG1lbnRzLmxlbmd0aH1cbiAgICAgICAgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXI9e2NvbXBhY3RTaW5nbGVSb3dUb29sYmFyfVxuICAgICAgICBkYXRhLWFwcGN1ZXM9XCJtYWlhX2NoYXRfaW5wdXRcIlxuICAgICAgICBkYXRhLW1haWEtc3RyZWFtaW5nPXtpc1N0cmVhbWluZyA/ICd0cnVlJyA6ICdmYWxzZSd9XG4gICAgICAgIG9uRm9jdXM9e2hhbmRsZVdyYXBwZXJGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVXcmFwcGVyQmx1cn1cbiAgICAgICAgc3R5bGU9e3sgcG9zaXRpb246ICdyZWxhdGl2ZScgfX1cbiAgICAgID5cbiAgICAgICAge3Nob3dTbGFzaERyb3Bkb3duICYmIChcbiAgICAgICAgICA8U2xhc2hDb21tYW5kRHJvcGRvd25cbiAgICAgICAgICAgIGNvbW1hbmRzPXtzbGFzaENvbW1hbmRzfVxuICAgICAgICAgICAgcXVlcnk9e3NsYXNoUXVlcnl9XG4gICAgICAgICAgICBvblNlbGVjdD17aGFuZGxlU2VsZWN0U2xhc2hDb21tYW5kfVxuICAgICAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2VTbGFzaERyb3Bkb3dufVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHshIWF0dGFjaG1lbnRzLmxlbmd0aCAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogJzEycHgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgIHthdHRhY2htZW50cy5tYXAoKGF0dGFjaG1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBhdHRhY2htZW50Lm5hbWUuc3BsaXQoJy4nKVxuICAgICAgICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2VCeUV4dGVuc2lvbiA9IFsnLnBuZycsICcuanBnJywgJy5qcGVnJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbilcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGF0dGFjaG1lbnQudHlwZT8uc3RhcnRzV2l0aCgnaW1hZ2UvJylcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZSA9IGlzSW1hZ2VCeU1pbWUgJiYgaXNJbWFnZUJ5RXh0ZW5zaW9uXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2F0dGFjaG1lbnQubmFtZX0ga2V5PXtgJHtpbmRleH0tJHthdHRhY2htZW50Lm5hbWV9YH0gekluZGV4PXt0b29sdGlwWkluZGV4fT5cbiAgICAgICAgICAgICAgICAgIDxTQ01JQXR0YWNobWVudCBpc0ltYWdlPXtpc0ltYWdlfT5cbiAgICAgICAgICAgICAgICAgICAge2F0dGFjaG1lbnQuaWNvbn1cbiAgICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGVBdHRhY2htZW50KGF0dGFjaG1lbnQuaWQpfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VHJhc2ggY29sb3I9XCJyZ2JhKDE5MSwgMTkxLCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUlBdHRhY2htZW50RGVsZXRlSWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnQ+XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQgJGNvbXBhY3RSb3c9e2NvbXBhY3RTaW5nbGVSb3dUb29sYmFyfT5cbiAgICAgICAgICA8U3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgICAgPFBsdXNNZW51VG9vbHNSb3c+XG4gICAgICAgICAgICAgIDxQbHVzVG9nZ2xlQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgJG1lbnVPcGVuPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlUGx1c0J1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2NoYXQub3BlblBsdXNNZW51QXJpYScpfVxuICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1cyBjb2xvcj17cGx1c0ljb25Db2xvcn0gd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICA8L1BsdXNUb2dnbGVCdXR0b24+XG4gICAgICAgICAgICAgIDxQb3BvdmVyXG4gICAgICAgICAgICAgICAgb3Blbj17cGx1c01lbnVPcGVufVxuICAgICAgICAgICAgICAgIGFuY2hvckVsPXtwbHVzTWVudUFuY2hvcn1cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXtjbG9zZVBsdXNNZW51fVxuICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbj17eyB2ZXJ0aWNhbDogJ3RvcCcsIGhvcml6b250YWw6ICdsZWZ0JyB9fVxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbj17eyB2ZXJ0aWNhbDogJ2JvdHRvbScsIGhvcml6b250YWw6ICdsZWZ0JyB9fVxuICAgICAgICAgICAgICAgIHN4PXt7IHpJbmRleDogcGx1c01lbnVaSW5kZXggfX1cbiAgICAgICAgICAgICAgICBzbG90UHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgIHBhcGVyOiB7XG4gICAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbjogMCxcbiAgICAgICAgICAgICAgICAgICAgc3g6IHtcbiAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJy00cHgnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBsdXNNZW51UGFwZXI+XG4gICAgICAgICAgICAgICAgICA8UGx1c01lbnVJbm5lckNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlUGx1c01lbnVBdHRhY2h9PlxuICAgICAgICAgICAgICAgICAgICAgIDxBdHRhY2ggY29sb3I9e3BsdXNNZW51SWNvbkNvbG9yfSB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUxhYmVsICRzZWxlY3RlZD17ZmFsc2V9Pnt0KCdjaGF0LnBsdXNNZW51QXR0YWNoJyl9PC9QbHVzTWVudUl0ZW1MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudURpdmlkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlUGx1c01lbnVXZWJTZWFyY2h9PlxuICAgICAgICAgICAgICAgICAgICAgIDxHbG9iZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2lzV2ViU2VhcmNoQWN0aXZlID8gcGx1c01lbnVTZWxlY3RlZENvbG9yIDogcGx1c01lbnVJY29uQ29sb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezIwfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUxhYmVsICRzZWxlY3RlZD17ISFpc1dlYlNlYXJjaEFjdGl2ZX0+e3QoJ2NoYXQuc2VhcmNoV2ViJyl9PC9QbHVzTWVudUl0ZW1MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICB7aXNXZWJTZWFyY2hBY3RpdmUgPyA8Q2hlY2sgY29sb3I9e3BsdXNNZW51U2VsZWN0ZWRDb2xvcn0gd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUlubmVyQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlUGx1c01lbnVEZWVwU2VhcmNofT5cbiAgICAgICAgICAgICAgICAgICAgPFRlbGVzY29wZUljb25cbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNEZWVwU2VhcmNoQWN0aXZlID8gcGx1c01lbnVTZWxlY3RlZENvbG9yIDogcGx1c01lbnVJY29uQ29sb3J9XG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezIwfVxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MjB9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1MYWJlbCAkc2VsZWN0ZWQ9eyEhaXNEZWVwU2VhcmNoQWN0aXZlfT5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnY2hhdC5wbHVzTWVudURlZXBJbnZlc3RpZ2F0aW9uJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHtpc0RlZXBTZWFyY2hBY3RpdmUgPyA8Q2hlY2sgY29sb3I9e3BsdXNNZW51U2VsZWN0ZWRDb2xvcn0gd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1BsdXNNZW51UGFwZXI+XG4gICAgICAgICAgICAgIDwvUG9wb3Zlcj5cbiAgICAgICAgICAgICAgeyhpc1dlYlNlYXJjaEFjdGl2ZSB8fCBpc0RlZXBTZWFyY2hBY3RpdmUpICYmIChcbiAgICAgICAgICAgICAgICA8QWN0aXZlVG9vbENoaXBSb290XG4gICAgICAgICAgICAgICAgICAkaG92ZXJlZD17YWN0aXZlVG9vbENoaXBIb3ZlcmVkfVxuICAgICAgICAgICAgICAgICAgJGV4aXRpbmc9e3Rvb2xDaGlwRXhpdGluZ31cbiAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gc2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkKHRydWUpfVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXsoKSA9PiBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQoZmFsc2UpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxBY3RpdmVUb29sQ2hpcEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICRjbG9zZVNob3duPXthY3RpdmVUb29sQ2hpcEhvdmVyZWR9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2NoYXQucmVtb3ZlQWN0aXZlVG9vbEFyaWEnKX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgIGJlZ2luVG9vbENoaXBFeGl0KClcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2FjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb259XG4gICAgICAgICAgICAgICAgICA8L0FjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxBY3RpdmVUb29sQ2hpcExhYmVsPlxuICAgICAgICAgICAgICAgICAgICB7aXNXZWJTZWFyY2hBY3RpdmUgPyB0KCdjaGF0LnNlYXJjaFdlYicpIDogdCgnY2hhdC5wbHVzTWVudURlZXBJbnZlc3RpZ2F0aW9uJyl9XG4gICAgICAgICAgICAgICAgICA8L0FjdGl2ZVRvb2xDaGlwTGFiZWw+XG4gICAgICAgICAgICAgICAgPC9BY3RpdmVUb29sQ2hpcFJvb3Q+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1BsdXNNZW51VG9vbHNSb3c+XG4gICAgICAgICAgPC9TdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHN0eWxlPXtcbiAgICAgICAgICAgICAgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJcbiAgICAgICAgICAgICAgICA/IHsgZ3JpZENvbHVtbjogMiwgZ3JpZFJvdzogMSwgbWluV2lkdGg6IDAsIGFsaWduU2VsZjogJ2NlbnRlcicgfVxuICAgICAgICAgICAgICAgIDogeyBncmlkQ29sdW1uOiAnMSAvIC0xJywgZ3JpZFJvdzogMSwgbWluV2lkdGg6IDAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDb250ZXh0TWVudGlvbkVkaXRvclxuICAgICAgICAgICAgICByZWY9e2VkaXRvclJlZn1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIG9uSW5wdXQ9e2hhbmRsZUVkaXRvcklucHV0fVxuICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZVdyYXBwZXJGb2N1c31cbiAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVXcmFwcGVyQmx1cn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPFN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwgJGNvbXBhY3RSb3c9e2NvbXBhY3RTaW5nbGVSb3dUb29sYmFyfT5cbiAgICAgICAgICAgIHtpc1dyaXRpbmcgPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LnN0b3AnKX0gekluZGV4PXt0b29sdGlwWkluZGV4fT5cbiAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BCdXR0b24gZGlzYWJsZWQ9e2ZhbHNlfSBvbkNsaWNrPXtoYW5kbGVTdG9wR2VuZXJhdGlvbn0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTdG9wSWNvbiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkTUFJQVN0b3BCdXR0b24+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LnNlbmQnKX0gekluZGV4PXt0b29sdGlwWkluZGV4fT5cbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU2VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kTWVzc2FnZX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzZW5kRGlzYWJsZWQgfHwgZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc1ZhbHVlcz17aGFzVHlwaW5nUHJlc2VuY2UgfHwgYXR0YWNobWVudHMubGVuZ3RoID4gMH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFBhcGVyUGxhbmUgY29sb3I9XCIjQkZCRkJGXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU2VuZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsPlxuICAgICAgICA8L1N0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17ZmlsZUlucHV0UmVmfVxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgIGFjY2VwdD1cIi50eHQsLm1kLC5jc3YsLmRvYywuZG9jeCwucG5nLC5qcGcsLmpwZWcsLnBkZiwueGxzeCwueGxzLC5mbGFjLC5tNGEsLm1wMywubXA0LC5vZ2EsLm9nZywud2F2LC53ZWJtXCJcbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZVNlbGVjdH1cbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvU3R5bGVkTUFJQUlucHV0V3JhcHBlcj5cbiAgICAgIHttb2RhbFByb3BzLmlzT3BlbiAmJiAoXG4gICAgICAgIDxNb2RhbEZpbGVFeGNlZWRzXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0TW9kYWxQcm9wcyh7IGlzT3BlbjogZmFsc2UsIGV4Y2x1ZGVkRmlsZXM6IFtdLCBleGNlZWRlZEZpbGVzOiBbXSwgZmlsZVNpemVzOiB7fSB9KX1cbiAgICAgICAgICBleGNsdWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2x1ZGVkRmlsZXN9XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNlZWRlZEZpbGVzfVxuICAgICAgICAgIGZpbGVTaXplcz17bW9kYWxQcm9wcy5maWxlU2l6ZXN9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge3BvcG92ZXJOb2RlICYmIGNyZWF0ZVBvcnRhbChwb3BvdmVyTm9kZSwgZG9jdW1lbnQuYm9keSl9XG4gICAgPC8+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBS0VBLFdBQVcsRUFDWEMsU0FBUyxFQUNUQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsUUFBUSxRQUNILE9BQU87QUFDZCxTQUFTQyxZQUFZLFFBQVEsV0FBVztBQUN4QyxTQUFTQyxPQUFPLFFBQVEsZUFBZTtBQUN2QyxTQUFTQyxVQUFVLFFBQVEsNkNBQTZDO0FBQ3hFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLElBQUksUUFBUSx1Q0FBdUM7QUFDNUQsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFD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