@workflow/web-shared 5.0.0-beta.12 → 5.0.0-beta.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/event-list-view.d.ts.map +1 -1
- package/dist/components/event-list-view.js +9 -9
- package/dist/components/new-trace-viewer/components/event-list.d.ts +1 -1
- package/dist/components/new-trace-viewer/components/event-list.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/components/event-list.js +6 -4
- package/dist/components/new-trace-viewer/components/timeline.d.ts +1 -1
- package/dist/components/new-trace-viewer/components/timeline.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/components/timeline.js +7 -7
- package/dist/components/new-trace-viewer/context.d.ts +1 -1
- package/dist/components/new-trace-viewer/context.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/context.js +1 -1
- package/dist/components/new-trace-viewer/icons.js +3 -3
- package/dist/components/new-trace-viewer/search.d.ts +1 -1
- package/dist/components/new-trace-viewer/search.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/search.js +1 -1
- package/dist/components/new-trace-viewer/trace-viewer.d.ts +2 -2
- package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/trace-viewer.js +6 -7
- package/dist/components/new-trace-viewer/types.d.ts +2 -0
- package/dist/components/new-trace-viewer/types.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/types.js +2 -2
- package/dist/components/new-trace-viewer/utils.d.ts +1 -1
- package/dist/components/new-trace-viewer/utils.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/utils.js +1 -1
- package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/components/sidebar/attribute-panel.js +14 -10
- package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
- package/dist/components/sidebar/entity-detail-panel.js +12 -11
- package/dist/components/sidebar/events-list.d.ts +3 -1
- package/dist/components/sidebar/events-list.d.ts.map +1 -1
- package/dist/components/sidebar/events-list.js +10 -9
- package/dist/components/sidebar/span-detail-merge.d.ts +16 -0
- package/dist/components/sidebar/span-detail-merge.d.ts.map +1 -0
- package/dist/components/sidebar/span-detail-merge.js +53 -0
- package/dist/components/trace-viewer/util/timing.d.ts +2 -2
- package/dist/components/trace-viewer/util/timing.d.ts.map +1 -1
- package/dist/components/trace-viewer/util/timing.js +3 -3
- package/dist/components/trace-viewer-new.d.ts.map +1 -1
- package/dist/components/trace-viewer-new.js +2 -3
- package/dist/components/ui/error-stack-block.d.ts +17 -10
- package/dist/components/ui/error-stack-block.d.ts.map +1 -1
- package/dist/components/ui/error-stack-block.js +30 -19
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/lib/utils.d.ts +11 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +49 -1
- package/package.json +3 -3
- package/src/components/event-list-view.tsx +12 -11
- package/src/components/new-trace-viewer/components/event-list.tsx +6 -5
- package/src/components/new-trace-viewer/components/timeline.tsx +11 -7
- package/src/components/new-trace-viewer/context.tsx +1 -1
- package/src/components/new-trace-viewer/icons.tsx +2 -2
- package/src/components/new-trace-viewer/search.ts +1 -1
- package/src/components/new-trace-viewer/trace-viewer.tsx +7 -14
- package/src/components/new-trace-viewer/types.ts +2 -0
- package/src/components/new-trace-viewer/utils.ts +1 -1
- package/src/components/sidebar/attribute-panel.tsx +13 -12
- package/src/components/sidebar/entity-detail-panel.tsx +28 -13
- package/src/components/sidebar/events-list.tsx +40 -34
- package/src/components/sidebar/span-detail-merge.ts +65 -0
- package/src/components/trace-viewer/util/timing.ts +2 -2
- package/src/components/trace-viewer-new.tsx +2 -4
- package/src/components/ui/error-stack-block.tsx +51 -31
- package/src/index.ts +1 -0
- package/src/lib/utils.ts +57 -0
- package/dist/components/new-trace-viewer/detail-panel.d.ts +0 -10
- package/dist/components/new-trace-viewer/detail-panel.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/detail-panel.js +0 -13
- package/dist/components/new-trace-viewer/util/constants.d.ts +0 -1
- package/dist/components/new-trace-viewer/util/constants.d.ts.map +0 -1
- package/dist/components/new-trace-viewer/util/constants.js +0 -2
- package/src/components/new-trace-viewer/detail-panel.tsx +0 -55
- package/src/components/new-trace-viewer/util/constants.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-list.d.ts","sourceRoot":"","sources":["../../../../src/components/new-trace-viewer/components/event-list.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"event-list.d.ts","sourceRoot":"","sources":["../../../../src/components/new-trace-viewer/components/event-list.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAQrC,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAsFxE,QAAA,MAAM,SAAS,GAAI,sDAKhB;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,4CA0BA,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Circle } from 'lucide-react';
|
|
3
3
|
import { useRef } from 'react';
|
|
4
4
|
import { cn } from '../../../lib/utils';
|
|
5
|
-
import {
|
|
5
|
+
import { formatDurationPrecise } from '../../trace-viewer/util/timing';
|
|
6
6
|
import { SleepIcon, StepForwardIcon, WebhookIcon, WorkflowIcon, } from '../icons';
|
|
7
7
|
import { isSpanDimmedBySearch } from '../search';
|
|
8
8
|
import { getSpanDurationMs } from '../utils';
|
|
@@ -28,9 +28,11 @@ function getEventStyle(resource, isErrored) {
|
|
|
28
28
|
}
|
|
29
29
|
const EventRow = ({ span, isSelected, isDimmed, onSelectSpan, }) => {
|
|
30
30
|
const durationMs = getSpanDurationMs(span);
|
|
31
|
-
const
|
|
31
|
+
const workflowStatus = span.attributes.data
|
|
32
|
+
?.status;
|
|
33
|
+
const isErrored = span.status.code === 2 || workflowStatus === 'failed';
|
|
32
34
|
const { icon: Icon, className: tagClassName } = getEventStyle(span.resource, isErrored);
|
|
33
|
-
return (_jsx("li", { className: cn('relative overflow-clip group transition-opacity', ROW_HEIGHT_CLASS, isDimmed && 'opacity-35'), role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, onClick: () => onSelectSpan(span.spanId), children: _jsx("div", { className: "h-full hover:bg-gray-100 group-aria-selected:bg-gray-100 group-aria-selected:hover:bg-gray-200", children: _jsxs("div", { className: "flex h-full min-w-0 items-center pl-4 pr-2", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [_jsx("span", { className: cn('shrink-0', tagClassName), children: _jsx(Icon, { className: "w-4 h-4" }) }), _jsx("span", { className: "min-w-0 text-label-14", children: _jsx(MiddleTruncate, { value: span.name }) })] }), _jsx("div", { className: "ml-2 shrink-0", children: _jsx("span", { className: "text-label-14 text-gray-900 tabular-nums", children:
|
|
35
|
+
return (_jsx("li", { className: cn('relative overflow-clip group transition-opacity', ROW_HEIGHT_CLASS, isDimmed && 'opacity-35'), role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, onClick: () => onSelectSpan(span.spanId), children: _jsx("div", { className: "h-full hover:bg-gray-100 group-aria-selected:bg-gray-100 group-aria-selected:hover:bg-gray-200", children: _jsxs("div", { className: "flex h-full min-w-0 items-center pl-4 pr-2", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [_jsx("span", { className: cn('shrink-0', tagClassName), children: _jsx(Icon, { className: "w-4 h-4" }) }), _jsx("span", { className: "min-w-0 text-label-14", children: _jsx(MiddleTruncate, { value: span.name }) })] }), _jsx("div", { className: "ml-2 shrink-0", children: _jsx("span", { className: "text-label-14 text-gray-900 tabular-nums", children: formatDurationPrecise(durationMs) }) })] }) }) }));
|
|
34
36
|
};
|
|
35
37
|
const EventList = ({ spans, activeSpanId, searchResult, onSelectSpan, }) => {
|
|
36
38
|
const listRef = useRef(null);
|
|
@@ -41,4 +43,4 @@ const EventList = ({ spans, activeSpanId, searchResult, onSelectSpan, }) => {
|
|
|
41
43
|
}, children: spans.slice(start, end).map((span) => (_jsx(EventRow, { span: span, isSelected: span.spanId === activeSpanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelectSpan: onSelectSpan }, span.spanId))) }));
|
|
42
44
|
};
|
|
43
45
|
export default EventList;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25ldy10cmFjZS12aWV3ZXIvY29tcG9uZW50cy9ldmVudC1saXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsU0FBUyxFQUNULGVBQWUsRUFDZixXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxvQkFBb0IsRUFBeUIsTUFBTSxXQUFXLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBTy9ELE1BQU0sV0FBVyxHQUErQjtJQUM5QyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7SUFDdkQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7SUFDNUQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtDQUN2RCxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQWU7SUFDL0IsSUFBSSxFQUFFLE1B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RUFBRSxFQUFFLENBQUMsQ0FDckMsS0FBQyxRQUFRLElBRVAsSUFBSSxFQUFFLElBQUksRUFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sS0FBSyxZQUFZLEVBQ3hDLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUN6RCxZQUFZLEVBQUUsWUFBWSxJQUpyQixJQUFJLENBQUMsTUFBTSxDQUtoQixDQUNILENBQUMsR0FDQyxDQUNOLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixlQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENpcmNsZSB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFNwYW4gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBmb3JtYXREdXJhdGlvblByZWNpc2UgfSBmcm9tICcuLi8uLi90cmFjZS12aWV3ZXIvdXRpbC90aW1pbmcnO1xuaW1wb3J0IHtcbiAgU2xlZXBJY29uLFxuICBTdGVwRm9yd2FyZEljb24sXG4gIFdlYmhvb2tJY29uLFxuICBXb3JrZmxvd0ljb24sXG59IGZyb20gJy4uL2ljb25zJztcbmltcG9ydCB7IGlzU3BhbkRpbW1lZEJ5U2VhcmNoLCB0eXBlIFNwYW5TZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zZWFyY2gnO1xuaW1wb3J0IHsgZ2V0U3BhbkR1cmF0aW9uTXMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBNaWRkbGVUcnVuY2F0ZSB9IGZyb20gJy4vbWlkZGxlLXRydW5jYXRlL21pZGRsZS10cnVuY2F0ZSc7XG5pbXBvcnQgeyBST1dfSEVJR0hUX1BYLCB1c2VSb3dXaW5kb3cgfSBmcm9tICcuL3VzZS1yb3ctd2luZG93JztcblxuaW50ZXJmYWNlIEV2ZW50U3R5bGUge1xuICBpY29uOiBSZWFjdC5Db21wb25lbnRUeXBlPHsgY2xhc3NOYW1lPzogc3RyaW5nIH0+O1xuICBjbGFzc05hbWU6IHN0cmluZztcbn1cblxuY29uc3QgZXZlbnRTdHlsZXM6IFJlY29yZDxzdHJpbmcsIEV2ZW50U3R5bGU+ID0ge1xuICBydW46IHsgaWNvbjogV29ya2Zsb3dJY29uLCBjbGFzc05hbWU6ICd0ZXh0LWJsdWUtOTAwJyB9LFxuICBzdGVwOiB7IGljb246IFN0ZXBGb3J3YXJkSWNvbiwgY2xhc3NOYW1lOiAndGV4dC1ncmVlbi05MDAnIH0sXG4gIGhvb2s6IHsgaWNvbjogV2ViaG9va0ljb24sIGNsYXNzTmFtZTogJ3RleHQtZ3JheS05MDAnIH0sXG4gIHNsZWVwOiB7IGljb246IFNsZWVwSWNvbiwgY2xhc3NOYW1lOiAndGV4dC1ncmF5LTkwMCcgfSxcbn07XG5cbmNvbnN0IGRlZmF1bHRTdHlsZTogRXZlbnRTdHlsZSA9IHtcbiAgaWNvbjogQ2lyY2xlLFxuICBjbGFzc05hbWU6ICd0ZXh0LWdyYXktOTAwJyxcbn07XG5cbmNvbnN0IFJPV19IRUlHSFRfQ0xBU1MgPSAnaC0xMCc7XG5cbmZ1bmN0aW9uIGdldEV2ZW50U3R5bGUocmVzb3VyY2U6IHN0cmluZywgaXNFcnJvcmVkOiBib29sZWFuKTogRXZlbnRTdHlsZSB7XG4gIGNvbnN0IHN0eWxlID0gZXZlbnRTdHlsZXNbcmVzb3VyY2VdID8/IGRlZmF1bHRTdHlsZTtcbiAgcmV0dXJuIHtcbiAgICBpY29uOiBzdHlsZS5pY29uLFxuICAgIGNsYXNzTmFtZTogY24oaXNFcnJvcmVkID8gJ3RleHQtcmVkLTkwMCcgOiBzdHlsZS5jbGFzc05hbWUpLFxuICB9O1xufVxuXG5jb25zdCBFdmVudFJvdyA9ICh7XG4gIHNwYW4sXG4gIGlzU2VsZWN0ZWQsXG4gIGlzRGltbWVkLFxuICBvblNlbGVjdFNwYW4sXG59OiB7XG4gIHNwYW46IFNwYW47XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGlzRGltbWVkPzogYm9vbGVhbjtcbiAgb25TZWxlY3RTcGFuOiAoc3BhbklkOiBzdHJpbmcpID0+IHZvaWQ7XG59KSA9PiB7XG4gIGNvbnN0IGR1cmF0aW9uTXMgPSBnZXRTcGFuRHVyYXRpb25NcyhzcGFuKTtcbiAgY29uc3Qgd29ya2Zsb3dTdGF0dXMgPSAoc3Bhbi5hdHRyaWJ1dGVzLmRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pXG4gICAgPy5zdGF0dXMgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjb25zdCBpc0Vycm9yZWQgPSBzcGFuLnN0YXR1cy5jb2RlID09PSAyIHx8IHdvcmtmbG93U3RhdHVzID09PSAnZmFpbGVkJztcbiAgY29uc3QgeyBpY29uOiBJY29uLCBjbGFzc05hbWU6IHRhZ0NsYXNzTmFtZSB9ID0gZ2V0RXZlbnRTdHlsZShcbiAgICBzcGFuLnJlc291cmNlLFxuICAgIGlzRXJyb3JlZFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAncmVsYXRpdmUgb3ZlcmZsb3ctY2xpcCBncm91cCB0cmFuc2l0aW9uLW9wYWNpdHknLFxuICAgICAgICBST1dfSEVJR0hUX0NMQVNTLFxuICAgICAgICBpc0RpbW1lZCAmJiAnb3BhY2l0eS0zNSdcbiAgICAgICl9XG4gICAgICByb2xlPVwidHJlZWl0ZW1cIlxuICAgICAgYXJpYS1zZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgIGFyaWEtZXhwYW5kZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBhcmlhLWxldmVsPXsxfVxuICAgICAgb25DbGljaz17KCkgPT4gb25TZWxlY3RTcGFuKHNwYW4uc3BhbklkKX1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtZnVsbCBob3ZlcjpiZy1ncmF5LTEwMCBncm91cC1hcmlhLXNlbGVjdGVkOmJnLWdyYXktMTAwIGdyb3VwLWFyaWEtc2VsZWN0ZWQ6aG92ZXI6YmctZ3JheS0yMDBcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGgtZnVsbCBtaW4tdy0wIGl0ZW1zLWNlbnRlciBwbC00IHByLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggbWluLXctMCBmbGV4LTEgaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NuKCdzaHJpbmstMCcsIHRhZ0NsYXNzTmFtZSl9PlxuICAgICAgICAgICAgICA8SWNvbiBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1pbi13LTAgdGV4dC1sYWJlbC0xNFwiPlxuICAgICAgICAgICAgICA8TWlkZGxlVHJ1bmNhdGUgdmFsdWU9e3NwYW4ubmFtZX0gLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1sLTIgc2hyaW5rLTBcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbGFiZWwtMTQgdGV4dC1ncmF5LTkwMCB0YWJ1bGFyLW51bXNcIj5cbiAgICAgICAgICAgICAge2Zvcm1hdER1cmF0aW9uUHJlY2lzZShkdXJhdGlvbk1zKX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICApO1xufTtcblxuY29uc3QgRXZlbnRMaXN0ID0gKHtcbiAgc3BhbnMsXG4gIGFjdGl2ZVNwYW5JZCxcbiAgc2VhcmNoUmVzdWx0LFxuICBvblNlbGVjdFNwYW4sXG59OiB7XG4gIHNwYW5zOiBTcGFuW107XG4gIGFjdGl2ZVNwYW5JZDogc3RyaW5nIHwgbnVsbDtcbiAgc2VhcmNoUmVzdWx0OiBTcGFuU2VhcmNoUmVzdWx0O1xuICBvblNlbGVjdFNwYW46IChzcGFuSWQ6IHN0cmluZykgPT4gdm9pZDtcbn0pID0+IHtcbiAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcbiAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSB1c2VSb3dXaW5kb3cobGlzdFJlZiwgc3BhbnMubGVuZ3RoLCBST1dfSEVJR0hUX1BYKTtcblxuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgcmVmPXtsaXN0UmVmfVxuICAgICAgaWQ9XCJldmVudC1saXN0XCJcbiAgICAgIHJvbGU9XCJ0cmVlXCJcbiAgICAgIGNsYXNzTmFtZT1cImJsb2NrIG1pbi1oLTAgb3ZlcmZsb3ctdmlzaWJsZSBkaXZpZGUteSBkaXZpZGUtZ3JheS1hbHBoYS00MDAgYm9yZGVyLWIgYm9yZGVyLWdyYXktYWxwaGEtNDAwXCJcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBhZGRpbmdUb3A6IHN0YXJ0ICogUk9XX0hFSUdIVF9QWCxcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogKHNwYW5zLmxlbmd0aCAtIGVuZCkgKiBST1dfSEVJR0hUX1BYLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7c3BhbnMuc2xpY2Uoc3RhcnQsIGVuZCkubWFwKChzcGFuKSA9PiAoXG4gICAgICAgIDxFdmVudFJvd1xuICAgICAgICAgIGtleT17c3Bhbi5zcGFuSWR9XG4gICAgICAgICAgc3Bhbj17c3Bhbn1cbiAgICAgICAgICBpc1NlbGVjdGVkPXtzcGFuLnNwYW5JZCA9PT0gYWN0aXZlU3BhbklkfVxuICAgICAgICAgIGlzRGltbWVkPXtpc1NwYW5EaW1tZWRCeVNlYXJjaChzcGFuLnNwYW5JZCwgc2VhcmNoUmVzdWx0KX1cbiAgICAgICAgICBvblNlbGVjdFNwYW49e29uU2VsZWN0U3Bhbn1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvdWw+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFdmVudExpc3Q7XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
import type { Span } from '
|
|
2
|
+
import type { Span } from '../types';
|
|
3
3
|
import { type SpanSearchResult } from '../search';
|
|
4
4
|
import type { TimeMarker } from '../utils';
|
|
5
5
|
export declare const TIMELINE_PADDING_PX = 16;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../../../src/components/new-trace-viewer/components/timeline.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../../../src/components/new-trace-viewer/components/timeline.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAMrC,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAA0B,UAAU,EAAE,MAAM,UAAU,CAAC;AAenE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AA8OtC,QAAA,MAAM,WAAW;UAST,IAAI;eACC,MAAM;kBACH,MAAM;oBACJ,MAAM;gBACV,OAAO;eACR,OAAO;cACR,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;EAmFlC,CAAC;AAEH,OAAO,EAAE,WAAW,EAAE,CAAC;AAiDvB,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACxD,GAAG,SAAS,CAwBZ;AAMD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,OAAe,GAChB,EAAE;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,SAAS,CA4FZ"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { ArrowLeft, ArrowRight } from 'lucide-react';
|
|
4
4
|
import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
5
5
|
import { cn } from '../../../lib/utils';
|
|
6
|
-
import { formatDuration, getHighResInMs } from '../../trace-viewer/util/timing';
|
|
6
|
+
import { formatDuration, formatDurationPrecise, getHighResInMs, } from '../../trace-viewer/util/timing';
|
|
7
7
|
import { isSpanDimmedBySearch } from '../search';
|
|
8
8
|
import { computeSpanGaps, computeSpanSegments, getResourceColor, getSpanDurationMs, } from '../utils';
|
|
9
9
|
import { ROW_HEIGHT_PX, useRowWindow } from './use-row-window';
|
|
@@ -122,7 +122,7 @@ function PlainBar({ bg, border, label, }) {
|
|
|
122
122
|
}
|
|
123
123
|
function SegmentBar({ segments }) {
|
|
124
124
|
return (_jsx("div", { className: "relative h-6 w-full", children: segments.map((seg, i) => {
|
|
125
|
-
const label =
|
|
125
|
+
const label = formatDurationPrecise(seg.fullDurationMs);
|
|
126
126
|
// Only render the label when there's enough room for it without clipping.
|
|
127
127
|
const showLabel = seg.pixelWidth >= Math.max(40, label.length * 6 + 12);
|
|
128
128
|
// Beef up the queued segment when it's too narrow to read.
|
|
@@ -138,7 +138,7 @@ function SegmentBar({ segments }) {
|
|
|
138
138
|
minWidth: 1,
|
|
139
139
|
background: overrideBg,
|
|
140
140
|
borderColor: overrideBorder,
|
|
141
|
-
}, children: showLabel ? _jsx(DurationLabel, { label: label }) : null },
|
|
141
|
+
}, children: showLabel ? _jsx(DurationLabel, { label: label }) : null }, i));
|
|
142
142
|
}) }));
|
|
143
143
|
}
|
|
144
144
|
// ---------------------------------------------------------------------------
|
|
@@ -163,7 +163,7 @@ const TimelineBar = memo(function TimelineBar({ span, viewStart, viewDuration, c
|
|
|
163
163
|
const fallbackBorder = isErrored
|
|
164
164
|
? (colors.errorBorder ?? 'var(--ds-red-500)')
|
|
165
165
|
: colors.border;
|
|
166
|
-
const totalLabel =
|
|
166
|
+
const totalLabel = formatDurationPrecise(totalDurationMs);
|
|
167
167
|
const showTotalLabel = geometry.visiblePixelWidth >= Math.max(40, totalLabel.length * 6 + 12);
|
|
168
168
|
const handleClick = useCallback(() => {
|
|
169
169
|
onSelect(span.spanId);
|
|
@@ -192,7 +192,7 @@ const DeltaIndicator = memo(function DeltaIndicator({ leftFrac, rightFrac, label
|
|
|
192
192
|
// TimelineHeader
|
|
193
193
|
// ---------------------------------------------------------------------------
|
|
194
194
|
export function TimelineHeader({ markers, hoverInfo, }) {
|
|
195
|
-
return (_jsx("div", { className: "relative bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-end px-4 pb-1", children: _jsxs("div", { className: "relative h-full flex-1", children: [markers.map((m) => (_jsx("span", { className: "absolute bottom-1 font-mono text-xs font-normal leading-4 text-gray-900 whitespace-nowrap", style: { left: `${m.position * 100}%` }, children: m.label },
|
|
195
|
+
return (_jsx("div", { className: "relative bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-end px-4 pb-1", children: _jsxs("div", { className: "relative h-full flex-1", children: [markers.map((m) => (_jsx("span", { className: "absolute bottom-1 font-mono text-xs font-normal leading-4 text-gray-900 whitespace-nowrap", style: { left: `${m.position * 100}%` }, children: m.label }, String(m.value)))), hoverInfo && (_jsx("span", { className: "absolute top-1 pointer-events-none z-10 font-mono text-[11px] leading-4 text-gray-1000 whitespace-nowrap bg-background-100 border border-gray-alpha-400 rounded px-1 -translate-x-1/2", style: { left: `${hoverInfo.fraction * 100}%` }, children: hoverInfo.label }))] }) }));
|
|
196
196
|
}
|
|
197
197
|
// ---------------------------------------------------------------------------
|
|
198
198
|
// Timeline
|
|
@@ -216,6 +216,6 @@ export function Timeline({ spans, viewStart, viewEnd, markers, selectedId, searc
|
|
|
216
216
|
const gaps = useMemo(() => computeSpanGaps(spans, viewStart, viewEnd), [spans, viewStart, viewEnd]);
|
|
217
217
|
return (_jsxs("div", { ref: containerRef, className: "relative h-full overflow-hidden", style: { minHeight: spans.length * ROW_HEIGHT_PX }, children: [_jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: markers.map((marker) =>
|
|
218
218
|
// Skip the "0s" origin marker since the left edge already implies it.
|
|
219
|
-
Math.abs(marker.value) > 0.000001 ? (_jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-300", style: { left: `${marker.position * 100}%` } },
|
|
219
|
+
Math.abs(marker.value) > 0.000001 ? (_jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-300", style: { left: `${marker.position * 100}%` } }, String(marker.value))) : null) }), hoverFraction != null && (_jsx("div", { className: "absolute inset-y-0 pointer-events-none z-10", style: TIMELINE_INSET_STYLE, children: _jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-500", style: { left: `${hoverFraction * 100}%` } }) })), _jsx("div", { style: { transform: `translateY(${start * ROW_HEIGHT_PX}px)` }, children: spans.slice(start, end).map((span) => (_jsx(TimelineBar, { span: span, viewStart: viewStart, viewDuration: viewDuration, containerWidth: timelineWidth, isSelected: selectedId === span.spanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelect: onSelect }, span.spanId))) }), altHeld && (_jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: gaps.map((gap) => (_jsx(DeltaIndicator, { leftFrac: gap.leftFrac, rightFrac: gap.rightFrac, label: formatDuration(gap.gapMs, true), rowIndex: gap.rowIndex }, gap.rowIndex))) }))] }));
|
|
220
220
|
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9uZXctdHJhY2Utdmlld2VyL2NvbXBvbmVudHMvdGltZWxpbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7QUFFYixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUF5QixNQUFNLFdBQVcsQ0FBQztBQUV4RSxPQUFPLEVBQ0wsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEdBQ2xCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0QsOEVBQThFO0FBQzlFLFlBQVk7QUFDWiw4RUFBOEU7QUFFOUUsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBRXRDLE1BQU0sZUFBZSxHQUFrQztJQUNyRCxNQUFNLEVBQUUsb0NBQW9DO0lBQzVDLFFBQVEsRUFBRSxvQ0FBb0M7SUFDOUMsT0FBTyxFQUFFLG9DQUFvQztJQUM3QyxPQUFPLEVBQUUsb0NBQW9DO0lBQzdDLE1BQU0sRUFBRSxrQ0FBa0M7SUFDMUMsU0FBUyxFQUFFLHNDQUFzQztJQUNqRCxRQUFRLEVBQUUsb0NBQW9DO0lBQzlDLFFBQVEsRUFBRSxvQ0FBb0M7Q0FDL0MsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQWtCO0lBQzFDLElBQUksRUFBRSxtQkFBbUI7SUFDekIsS0FBSyxFQUFFLG1CQUFtQjtDQUMzQixDQUFDO0FBb0JGOzs7O0dBSUc7QUFDSCxTQUFTLGtCQUFrQixDQUN6QixPQUFlLEVBQ2YsS0FBYSxFQUNiLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixjQUFzQjtJQUV0QixNQUFNLFlBQVksR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsWUFBWSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sU0FBUyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxHQUFHLGNBQWMsQ0FBQztJQUVyRCxNQUFNLE1BQU0sR0FBRyxjQUFjLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO0lBQzlFLE1BQU0sY0FBYyxHQUFHLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDM0MsTUFBTSxlQUFlLEdBQUcsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUV4QyxNQUFNLElBQUksR0FDUixNQUFNLElBQUksQ0FBQyxjQUFjLElBQUksZUFBZSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7UUFDbEUsQ0FBQyxDQUFDLE1BQU07WUFDTixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUV6QixPQUFPO1FBQ0wsSUFBSTtRQUNKLE9BQU8sRUFDTCxZQUFZLEdBQUcsQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLEdBQUc7WUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDUCxRQUFRLEVBQUUsU0FBUyxHQUFHLEdBQUc7UUFDekIsY0FBYztRQUNkLFlBQVk7UUFDWixpQkFBaUI7S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLFFBQXFCO0lBSWhELFFBQVEsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixLQUFLLE9BQU87WUFDVixPQUFPO2dCQUNMLElBQUksRUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPO29CQUNqQyxDQUFDLENBQUMsZUFBZSxvQkFBb0IsS0FBSztvQkFDMUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLEdBQUcsb0JBQW9CLElBQUk7YUFDbkMsQ0FBQztRQUNKLEtBQUssTUFBTTtZQUNULE9BQU87Z0JBQ0wsSUFBSSxFQUFFLE9BQU8sUUFBUSxDQUFDLE9BQU8sa0JBQWtCLGlCQUFpQixNQUFNO2dCQUN0RSxLQUFLLEVBQUUsR0FBRyxpQkFBaUIsSUFBSTthQUNoQyxDQUFDO1FBQ0osS0FBSyxNQUFNO1lBQ1QsT0FBTztnQkFDTCxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxHQUFHO2dCQUM1QixLQUFLLEVBQUUsT0FBTyxRQUFRLENBQUMsUUFBUSxTQUFTO2FBQ3pDLENBQUM7SUFDTixDQUFDO0FBQ0gsQ0FBQztBQWNEOzs7O0dBSUc7QUFDSCxTQUFTLGVBQWUsQ0FDdEIsUUFBbUIsRUFDbkIsV0FBbUIsRUFDbkIsY0FBc0IsRUFDdEIsUUFBcUI7SUFFckIsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDMUUsSUFBSSxpQkFBaUIsSUFBSSxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFdEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDOUIsTUFBTSxVQUFVLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQyxhQUFhLEdBQUcsY0FBYyxDQUFDO1FBQ3BFLE1BQU0sUUFBUSxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQztRQUNoRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELElBQUksS0FBSyxJQUFJLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVoQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztRQUN4RCxPQUFPO1lBQ0w7Z0JBQ0UsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO2dCQUNsQixPQUFPLEVBQ0wsQ0FBQyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxHQUFHO2dCQUNqRSxRQUFRLEVBQUUsU0FBUyxHQUFHLEdBQUc7Z0JBQ3pCLFVBQVUsRUFBRSxTQUFTLEdBQUcsUUFBUSxDQUFDLGlCQUFpQjtnQkFDbEQsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsY0FBYzthQUN2RTtTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsdUJBQXVCO0FBQ3ZCLDhFQUE4RTtBQUU5RSxTQUFTLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBcUI7SUFDakQsT0FBTyxDQUNMLGVBQU0sU0FBUyxFQUFDLGlQQUFpUCxZQUM5UCxLQUFLLEdBQ0QsQ0FDUixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEVBQ3JCLFNBQVMsR0FHVjtJQUNDLE1BQU0sSUFBSSxHQUFHLFNBQVMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzVELE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyw0REFBNEQsWUFDekUsS0FBQyxJQUFJLElBQUMsU0FBUyxFQUFDLHNCQUFzQixHQUFHLEdBQ3JDLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxFQUNoQixFQUFFLEVBQ0YsTUFBTSxFQUNOLEtBQUssR0FLTjtJQUNDLE9BQU8sQ0FDTCxjQUNFLFNBQVMsRUFBQyxzREFBc0QsRUFDaEUsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBRTdDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBQyxhQUFhLElBQUMsS0FBSyxFQUFFLEtBQUssR0FBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQzNDLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBa0M7SUFDOUQsT0FBTyxDQUNMLGNBQUssU0FBUyxFQUFDLHFCQUFxQixZQUNqQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakQsMEVBQTBFO1lBQzFFLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEUsMkRBQTJEO1lBQzNELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNyRSxNQUFNLGNBQWMsR0FBRyxjQUFjO2dCQUNuQyxDQUFDLENBQUMsb0JBQW9CO2dCQUN0QixDQUFDLENBQUMsU0FBUyxDQUFDO1lBRWQsT0FBTyxDQUNMLGNBRUUsU0FBUyxFQUFFLEVBQUUsQ0FDWCxtQ0FBbUMsRUFDbkMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FDNUIsRUFDRCxLQUFLLEVBQUU7b0JBQ0wsMERBQTBEO29CQUMxRCxJQUFJLEVBQUUsUUFBUSxHQUFHLENBQUMsT0FBTyxZQUFZO29CQUNyQyxLQUFLLEVBQUUsUUFBUSxHQUFHLENBQUMsUUFBUSxVQUFVO29CQUNyQyxRQUFRLEVBQUUsQ0FBQztvQkFDWCxVQUFVLEVBQUUsVUFBVTtvQkFDdEIsV0FBVyxFQUFFLGNBQWM7aUJBQzVCLFlBRUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFDLGFBQWEsSUFBQyxLQUFLLEVBQUUsS0FBSyxHQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFkOUMsR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQWVyQixDQUNQLENBQUM7UUFDSixDQUFDLENBQUMsR0FDRSxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsOEVBQThFO0FBQzlFLGNBQWM7QUFDZCw4RUFBOEU7QUFFOUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxDQUFDLEVBQzVDLElBQUksRUFDSixTQUFTLEVBQ1QsWUFBWSxFQUNaLGNBQWMsRUFDZCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsR0FTVDtJQUNDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQ3RCLEdBQUcsRUFBRSxDQUNILGtCQUFrQixDQUNoQixPQUFPLEVBQ1AsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEdBQUcsWUFBWSxFQUN4QixjQUFjLENBQ2YsRUFDSCxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FDMUQsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUN0QixHQUFHLEVBQUUsQ0FDSCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1FBQzNCLENBQUMsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxDQUFDO1FBQ25FLENBQUMsQ0FBQyxFQUFFLEVBQ1IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FDbkQsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBZ0M7UUFDdEUsRUFBRSxNQUE0QixDQUFDO0lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxjQUFjLEtBQUssUUFBUSxDQUFDO0lBQ3hFLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxNQUFNLFVBQVUsR0FBRyxTQUFTO1FBQzFCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksbUJBQW1CLENBQUM7UUFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDZCxNQUFNLGNBQWMsR0FBRyxTQUFTO1FBQzlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksbUJBQW1CLENBQUM7UUFDN0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFFbEIsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sY0FBYyxHQUNsQixRQUFRLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFekUsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUNuQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUU1QixPQUFPLENBQ0wsY0FDRSxJQUFJLEVBQUMsVUFBVSxtQkFDQSxVQUFVLG1CQUNWLFVBQVUsZ0JBQ2IsQ0FBQyxFQUNiLFNBQVMsRUFBRSxFQUFFLENBQ1gsbUpBQW1KLEVBQ25KLFFBQVEsSUFBSSxZQUFZLENBQ3pCLEVBQ0QsT0FBTyxFQUFFLFdBQVcsWUFFcEIsY0FBSyxTQUFTLEVBQUMsb0JBQW9CLEVBQUMsS0FBSyxFQUFFLG9CQUFvQixZQUM3RCxjQUNFLFNBQVMsRUFBQyx5REFBeUQsRUFDbkUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxZQUVuQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQ2hDLEtBQUMsYUFBYSxJQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBSSxDQUN0RCxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQ2xDLGNBQ0UsU0FBUyxFQUFDLDhCQUE4QixFQUN4QyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FDOUQsQ0FDSCxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDeEIsS0FBQyxVQUFVLElBQUMsUUFBUSxFQUFFLFFBQVEsR0FBSSxDQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUNGLEtBQUMsUUFBUSxJQUNQLEVBQUUsRUFBRSxVQUFVLEVBQ2QsTUFBTSxFQUFFLGNBQWMsRUFDdEIsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQ3pDLENBQ0gsR0FDRyxHQUNGLEdBQ0YsQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFFdkIsOEVBQThFO0FBQzlFLHVDQUF1QztBQUN2Qyw4RUFBOEU7QUFFOUUsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFDOUIsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSw0REFBNEQ7QUFDNUQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFFOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsY0FBYyxDQUFDLEVBQ2xELFFBQVEsRUFDUixTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsR0FNVDtJQUNDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQztJQUVyRSxPQUFPLENBQ0wsZUFDRSxTQUFTLEVBQUMsOEJBQThCLEVBQ3hDLEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxHQUFHLFFBQVEsR0FBRyxHQUFHLEdBQUc7WUFDMUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxHQUFHO1lBQ3pDLEdBQUcsRUFBRSxPQUFPLEdBQUcsbUJBQW1CLEdBQUcsQ0FBQztZQUN0QyxNQUFNLEVBQUUsbUJBQW1CO1NBQzVCLGFBRUQsY0FBSyxTQUFTLEVBQUMsZ0RBQWdELEdBQUcsRUFDbEUsY0FBSyxTQUFTLEVBQUMsbURBQW1ELEdBQUcsRUFDckUsY0FBSyxTQUFTLEVBQUMsaURBQWlELEdBQUcsRUFDbkUsZUFBTSxTQUFTLEVBQUMsNEpBQTRKLFlBQ3pLLEtBQUssR0FDRCxJQUNILENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsOEVBQThFO0FBQzlFLGlCQUFpQjtBQUNqQiw4RUFBOEU7QUFFOUUsTUFBTSxVQUFVLGNBQWMsQ0FBQyxFQUM3QixPQUFPLEVBQ1AsU0FBUyxHQUlWO0lBQ0MsT0FBTyxDQUNMLGNBQUssU0FBUyxFQUFDLGtHQUFrRyxZQUMvRyxlQUFLLFNBQVMsRUFBQyx3QkFBd0IsYUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDbEIsZUFFRSxTQUFTLEVBQUMsMkZBQTJGLEVBQ3JHLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLEVBQUUsWUFFdEMsQ0FBQyxDQUFDLEtBQUssSUFKSCxHQUFHLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUsxQixDQUNSLENBQUMsRUFDRCxTQUFTLElBQUksQ0FDWixlQUNFLFNBQVMsRUFBQyx1TEFBdUwsRUFDak0sS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsU0FBUyxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsRUFBRSxZQUU5QyxTQUFTLENBQUMsS0FBSyxHQUNYLENBQ1IsSUFDRyxHQUNGLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsV0FBVztBQUNYLDhFQUE4RTtBQUU5RSxNQUFNLFVBQVUsUUFBUSxDQUFDLEVBQ3ZCLEtBQUssRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixhQUFhLEVBQ2IsT0FBTyxHQUFHLEtBQUssR0FXaEI7SUFDQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQWlCLElBQUksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsTUFBTSxZQUFZLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUN6QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxjQUFjLEdBQUcsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxZQUFZLENBQ2pDLFlBQVksRUFDWixLQUFLLENBQUMsTUFBTSxFQUNaLGFBQWEsQ0FDZCxDQUFDO0lBRUYsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3hDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUNsQixHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFDaEQsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUM1QixDQUFDO0lBRUYsT0FBTyxDQUNMLGVBQ0UsR0FBRyxFQUFFLFlBQVksRUFDakIsU0FBUyxFQUFDLGlDQUFpQyxFQUMzQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxhQUFhLEVBQUUsYUFFbEQsbUNBRUUsU0FBUyxFQUFDLHdDQUF3QyxFQUNsRCxLQUFLLEVBQUUsb0JBQW9CLFlBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDdEIsc0VBQXNFO2dCQUN0RSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQ2xDLGNBRUUsU0FBUyxFQUFDLGdEQUFnRCxFQUMxRCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLElBRnZDLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBR3pDLENBQ0gsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNULEdBQ0csRUFDTCxhQUFhLElBQUksSUFBSSxJQUFJLENBQ3hCLGNBQ0UsU0FBUyxFQUFDLDZDQUE2QyxFQUN2RCxLQUFLLEVBQUUsb0JBQW9CLFlBRTNCLGNBQ0UsU0FBUyxFQUFDLGdEQUFnRCxFQUMxRCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxhQUFhLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FDMUMsR0FDRSxDQUNQLEVBQ0QsY0FBSyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxLQUFLLEdBQUcsYUFBYSxLQUFLLEVBQUUsWUFDaEUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUNyQyxLQUFDLFdBQVcsSUFFVixJQUFJLEVBQUUsSUFBSSxFQUNWLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFlBQVksRUFBRSxZQUFZLEVBQzFCLGNBQWMsRUFBRSxhQUFhLEVBQzdCLFVBQVUsRUFBRSxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFDdEMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQ3pELFFBQVEsRUFBRSxRQUFRLElBUGIsSUFBSSxDQUFDLE1BQU0sQ0FRaEIsQ0FDSCxDQUFDLEdBQ0UsRUFDTCxPQUFPLElBQUksQ0FDVixtQ0FFRSxTQUFTLEVBQUMsd0NBQXdDLEVBQ2xELEtBQUssRUFBRSxvQkFBb0IsWUFFMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FDakIsS0FBQyxjQUFjLElBRWIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQ3RCLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUN4QixLQUFLLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQ3RDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUpqQixHQUFHLENBQUMsUUFBUSxDQUtqQixDQUNILENBQUMsR0FDRSxDQUNQLElBQ0csQ0FDUCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgQXJyb3dMZWZ0LCBBcnJvd1JpZ2h0IH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB0eXBlIHsgQ1NTUHJvcGVydGllcywgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgU3BhbiB9IGZyb20gJy4uLy4uL3RyYWNlLXZpZXdlci90eXBlcyc7XG5pbXBvcnQgeyBmb3JtYXREdXJhdGlvbiwgZ2V0SGlnaFJlc0luTXMgfSBmcm9tICcuLi8uLi90cmFjZS12aWV3ZXIvdXRpbC90aW1pbmcnO1xuaW1wb3J0IHsgaXNTcGFuRGltbWVkQnlTZWFyY2gsIHR5cGUgU3BhblNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaCc7XG5pbXBvcnQgdHlwZSB7IFNlZ21lbnQsIFNlZ21lbnRTdGF0dXMsIFRpbWVNYXJrZXIgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBjb21wdXRlU3BhbkdhcHMsXG4gIGNvbXB1dGVTcGFuU2VnbWVudHMsXG4gIGdldFJlc291cmNlQ29sb3IsXG4gIGdldFNwYW5EdXJhdGlvbk1zLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBST1dfSEVJR0hUX1BYLCB1c2VSb3dXaW5kb3cgfSBmcm9tICcuL3VzZS1yb3ctd2luZG93JztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb25zdGFudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5jb25zdCBUSU5ZX0JBUl9CT1hfU0laRV9QWCA9IDI0O1xuY29uc3QgVElOWV9CQVJfV0lEVEhfUFggPSA0O1xuZXhwb3J0IGNvbnN0IFRJTUVMSU5FX1BBRERJTkdfUFggPSAxNjtcblxuY29uc3QgU0VHTUVOVF9DTEFTU0VTOiBSZWNvcmQ8U2VnbWVudFN0YXR1cywgc3RyaW5nPiA9IHtcbiAgcXVldWVkOiAnYmctZ3JheS00MDAgYm9yZGVyIGJvcmRlci1ncmF5LTUwMCcsXG4gIHJldHJ5aW5nOiAnYmctZ3JheS00MDAgYm9yZGVyIGJvcmRlci1ncmF5LTUwMCcsXG4gIHdhaXRpbmc6ICdiZy1ncmF5LTQwMCBib3JkZXIgYm9yZGVyLWdyYXktNTAwJyxcbiAgcnVubmluZzogJ2JnLWJsdWUtMjAwIGJvcmRlciBib3JkZXItYmx1ZS01MDAnLFxuICBmYWlsZWQ6ICdiZy1yZWQtMjAwIGJvcmRlciBib3JkZXItcmVkLTUwMCcsXG4gIHN1Y2NlZWRlZDogJ2JnLWdyZWVuLTIwMCBib3JkZXIgYm9yZGVyLWdyZWVuLTUwMCcsXG4gIHNsZWVwaW5nOiAnYmctZ3JheS00MDAgYm9yZGVyIGJvcmRlci1ncmF5LTUwMCcsXG4gIHJlY2VpdmVkOiAnYmctYmx1ZS0yMDAgYm9yZGVyIGJvcmRlci1ibHVlLTUwMCcsXG59O1xuXG5jb25zdCBUSU1FTElORV9JTlNFVF9TVFlMRTogQ1NTUHJvcGVydGllcyA9IHtcbiAgbGVmdDogVElNRUxJTkVfUEFERElOR19QWCxcbiAgcmlnaHQ6IFRJTUVMSU5FX1BBRERJTkdfUFgsXG59O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJhciBnZW9tZXRyeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnR5cGUgQmFyTW9kZSA9XG4gIHwgeyBraW5kOiAnYXJyb3cnOyBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgfVxuICB8IHsga2luZDogJ3RpbnknIH1cbiAgfCB7IGtpbmQ6ICdmdWxsJyB9O1xuXG5pbnRlcmZhY2UgQmFyR2VvbWV0cnkge1xuICBtb2RlOiBCYXJNb2RlO1xuICBsZWZ0UGN0OiBudW1iZXI7XG4gIHdpZHRoUGN0OiBudW1iZXI7XG4gIHZpc2libGVTdGFydE1zOiBudW1iZXI7XG4gIHZpc2libGVFbmRNczogbnVtYmVyO1xuICB2aXNpYmxlUGl4ZWxXaWR0aDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbXB1dGUgdGhlIGJhcidzIGdlb21ldHJ5IGluc2lkZSB0aGUgdGltZWxpbmUgdmlld3BvcnQuIFBlcmNlbnRhZ2VzIGFyZVxuICogYWx3YXlzIGluIFswLCAxMDBdIHNvIHdlIG5ldmVyIGVtaXQgQ1NTIHZhbHVlcyB0aGF0IGV4Y2VlZCBicm93c2VyIGxheW91dFxuICogbGltaXRzIGF0IGV4dHJlbWUgem9vbS5cbiAqL1xuZnVuY3Rpb24gY29tcHV0ZUJhckdlb21ldHJ5KFxuICBzdGFydE1zOiBudW1iZXIsXG4gIGVuZE1zOiBudW1iZXIsXG4gIHZpZXdTdGFydDogbnVtYmVyLFxuICB2aWV3RW5kOiBudW1iZXIsXG4gIGNvbnRhaW5lcldpZHRoOiBudW1iZXJcbik6IEJhckdlb21ldHJ5IHtcbiAgY29uc3Qgdmlld0R1cmF0aW9uID0gdmlld0VuZCAtIHZpZXdTdGFydDtcbiAgY29uc3QgdmlzaWJsZVN0YXJ0TXMgPSBNYXRoLm1heChzdGFydE1zLCB2aWV3U3RhcnQpO1xuICBjb25zdCB2aXNpYmxlRW5kTXMgPSBNYXRoLm1pbihlbmRNcywgdmlld0VuZCk7XG4gIGNvbnN0IHZpc2libGVEdXJhdGlvbk1zID0gTWF0aC5tYXgoMCwgdmlzaWJsZUVuZE1zIC0gdmlzaWJsZVN0YXJ0TXMpO1xuICBjb25zdCB3aWR0aEZyYWMgPSB2aWV3RHVyYXRpb24gPiAwID8gdmlzaWJsZUR1cmF0aW9uTXMgLyB2aWV3RHVyYXRpb24gOiAwO1xuICBjb25zdCB2aXNpYmxlUGl4ZWxXaWR0aCA9IHdpZHRoRnJhYyAqIGNvbnRhaW5lcldpZHRoO1xuXG4gIGNvbnN0IGlzVGlueSA9IGNvbnRhaW5lcldpZHRoID4gMCAmJiB2aXNpYmxlUGl4ZWxXaWR0aCA8IFRJTllfQkFSX0JPWF9TSVpFX1BYO1xuICBjb25zdCBleHRlbmRzT2ZmTGVmdCA9IHN0YXJ0TXMgPCB2aWV3U3RhcnQ7XG4gIGNvbnN0IGV4dGVuZHNPZmZSaWdodCA9IGVuZE1zID4gdmlld0VuZDtcblxuICBjb25zdCBtb2RlOiBCYXJNb2RlID1cbiAgICBpc1RpbnkgJiYgKGV4dGVuZHNPZmZMZWZ0IHx8IGV4dGVuZHNPZmZSaWdodClcbiAgICAgID8geyBraW5kOiAnYXJyb3cnLCBkaXJlY3Rpb246IGV4dGVuZHNPZmZSaWdodCA/ICdyaWdodCcgOiAnbGVmdCcgfVxuICAgICAgOiBpc1RpbnlcbiAgICAgICAgPyB7IGtpbmQ6ICd0aW55JyB9XG4gICAgICAgIDogeyBraW5kOiAnZnVsbCcgfTtcblxuICByZXR1cm4ge1xuICAgIG1vZGUsXG4gICAgbGVmdFBjdDpcbiAgICAgIHZpZXdEdXJhdGlvbiA+IDBcbiAgICAgICAgPyAoKHZpc2libGVTdGFydE1zIC0gdmlld1N0YXJ0KSAvIHZpZXdEdXJhdGlvbikgKiAxMDBcbiAgICAgICAgOiAwLFxuICAgIHdpZHRoUGN0OiB3aWR0aEZyYWMgKiAxMDAsXG4gICAgdmlzaWJsZVN0YXJ0TXMsXG4gICAgdmlzaWJsZUVuZE1zLFxuICAgIHZpc2libGVQaXhlbFdpZHRoLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRCYXJQb3NpdGlvblN0eWxlKGdlb21ldHJ5OiBCYXJHZW9tZXRyeSk6IHtcbiAgbGVmdDogc3RyaW5nO1xuICB3aWR0aDogc3RyaW5nO1xufSB7XG4gIHN3aXRjaCAoZ2VvbWV0cnkubW9kZS5raW5kKSB7XG4gICAgY2FzZSAnYXJyb3cnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGVmdDpcbiAgICAgICAgICBnZW9tZXRyeS5tb2RlLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0J1xuICAgICAgICAgICAgPyBgY2FsYygxMDAlIC0gJHtUSU5ZX0JBUl9CT1hfU0laRV9QWH1weClgXG4gICAgICAgICAgICA6ICcwcHgnLFxuICAgICAgICB3aWR0aDogYCR7VElOWV9CQVJfQk9YX1NJWkVfUFh9cHhgLFxuICAgICAgfTtcbiAgICBjYXNlICd0aW55JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IGBtaW4oJHtnZW9tZXRyeS5sZWZ0UGN0fSUsIGNhbGMoMTAwJSAtICR7VElOWV9CQVJfV0lEVEhfUFh9cHgpKWAsXG4gICAgICAgIHdpZHRoOiBgJHtUSU5ZX0JBUl9XSURUSF9QWH1weGAsXG4gICAgICB9O1xuICAgIGNhc2UgJ2Z1bGwnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGVmdDogYCR7Z2VvbWV0cnkubGVmdFBjdH0lYCxcbiAgICAgICAgd2lkdGg6IGBtYXgoJHtnZW9tZXRyeS53aWR0aFBjdH0lLCA0cHgpYCxcbiAgICAgIH07XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTZWdtZW50IHByb2plY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5pbnRlcmZhY2UgVmlzaWJsZVNlZ21lbnQge1xuICBzdGF0dXM6IFNlZ21lbnRTdGF0dXM7XG4gIGxlZnRQY3Q6IG51bWJlcjtcbiAgd2lkdGhQY3Q6IG51bWJlcjtcbiAgcGl4ZWxXaWR0aDogbnVtYmVyO1xuICBmdWxsRHVyYXRpb25NczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb2plY3Qgc3RhdHVzIHNlZ21lbnRzIG9udG8gdGhlIHZpc2libGUgcG9ydGlvbiBvZiBhIGJhci4gU2VnbWVudHMgZnVsbHlcbiAqIG91dHNpZGUgdGhlIHZpc2libGUgd2luZG93IGFyZSBkcm9wcGVkOyBzZWdtZW50cyBjcm9zc2luZyB0aGUgZWRnZSBhcmVcbiAqIGNsaXBwZWQgdG8gWzAlLCAxMDAlXSBvZiB0aGUgdmlzaWJsZSBiYXIuXG4gKi9cbmZ1bmN0aW9uIHByb2plY3RTZWdtZW50cyhcbiAgc2VnbWVudHM6IFNlZ21lbnRbXSxcbiAgc3BhblN0YXJ0TXM6IG51bWJlcixcbiAgc3BhbkR1cmF0aW9uTXM6IG51bWJlcixcbiAgZ2VvbWV0cnk6IEJhckdlb21ldHJ5XG4pOiBWaXNpYmxlU2VnbWVudFtdIHtcbiAgY29uc3QgdmlzaWJsZUR1cmF0aW9uTXMgPSBnZW9tZXRyeS52aXNpYmxlRW5kTXMgLSBnZW9tZXRyeS52aXNpYmxlU3RhcnRNcztcbiAgaWYgKHZpc2libGVEdXJhdGlvbk1zIDw9IDApIHJldHVybiBbXTtcblxuICByZXR1cm4gc2VnbWVudHMuZmxhdE1hcCgoc2VnKSA9PiB7XG4gICAgY29uc3Qgc2VnU3RhcnRNcyA9IHNwYW5TdGFydE1zICsgc2VnLnN0YXJ0RnJhY3Rpb24gKiBzcGFuRHVyYXRpb25NcztcbiAgICBjb25zdCBzZWdFbmRNcyA9IHNwYW5TdGFydE1zICsgc2VnLmVuZEZyYWN0aW9uICogc3BhbkR1cmF0aW9uTXM7XG4gICAgY29uc3Qgc3RhcnRNcyA9IE1hdGgubWF4KHNlZ1N0YXJ0TXMsIGdlb21ldHJ5LnZpc2libGVTdGFydE1zKTtcbiAgICBjb25zdCBlbmRNcyA9IE1hdGgubWluKHNlZ0VuZE1zLCBnZW9tZXRyeS52aXNpYmxlRW5kTXMpO1xuICAgIGlmIChlbmRNcyA8PSBzdGFydE1zKSByZXR1cm4gW107XG5cbiAgICBjb25zdCB3aWR0aEZyYWMgPSAoZW5kTXMgLSBzdGFydE1zKSAvIHZpc2libGVEdXJhdGlvbk1zO1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogc2VnLnN0YXR1cyxcbiAgICAgICAgbGVmdFBjdDpcbiAgICAgICAgICAoKHN0YXJ0TXMgLSBnZW9tZXRyeS52aXNpYmxlU3RhcnRNcykgLyB2aXNpYmxlRHVyYXRpb25NcykgKiAxMDAsXG4gICAgICAgIHdpZHRoUGN0OiB3aWR0aEZyYWMgKiAxMDAsXG4gICAgICAgIHBpeGVsV2lkdGg6IHdpZHRoRnJhYyAqIGdlb21ldHJ5LnZpc2libGVQaXhlbFdpZHRoLFxuICAgICAgICBmdWxsRHVyYXRpb25NczogKHNlZy5lbmRGcmFjdGlvbiAtIHNlZy5zdGFydEZyYWN0aW9uKSAqIHNwYW5EdXJhdGlvbk1zLFxuICAgICAgfSxcbiAgICBdO1xuICB9KTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTbWFsbCByZW5kZXIgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIER1cmF0aW9uTGFiZWwoeyBsYWJlbCB9OiB7IGxhYmVsOiBzdHJpbmcgfSk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgb3ZlcmZsb3ctaGlkZGVuIHB4LTEgdGV4dC1bMTBweF0gZm9udC1tb25vIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWxlZnQgdGV4dC1ncmF5LTEwMDAgdGFidWxhci1udW1zIG9wYWNpdHktMCBncm91cC1ob3Zlci90aW1lbGluZS1yb3c6b3BhY2l0eS0xMDBcIj5cbiAgICAgIHtsYWJlbH1cbiAgICA8L3NwYW4+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEJvdW5kYXJ5QXJyb3coe1xuICBkaXJlY3Rpb24sXG59OiB7XG4gIGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0Jztcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBJY29uID0gZGlyZWN0aW9uID09PSAncmlnaHQnID8gQXJyb3dSaWdodCA6IEFycm93TGVmdDtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC02IHctNiBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1bMC4yNXJlbV1cIj5cbiAgICAgIDxJY29uIGNsYXNzTmFtZT1cInNpemUtMyB0ZXh0LWdyYXktOTAwXCIgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gUGxhaW5CYXIoe1xuICBiZyxcbiAgYm9yZGVyLFxuICBsYWJlbCxcbn06IHtcbiAgYmc6IHN0cmluZztcbiAgYm9yZGVyOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmcgfCBudWxsO1xufSk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgaC02IHctZnVsbCBtaW4tdy0xIHJvdW5kZWQtWzAuMjVyZW1dIGJvcmRlclwiXG4gICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kOiBiZywgYm9yZGVyQ29sb3I6IGJvcmRlciB9fVxuICAgID5cbiAgICAgIHtsYWJlbCA/IDxEdXJhdGlvbkxhYmVsIGxhYmVsPXtsYWJlbH0gLz4gOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBTZWdtZW50QmFyKHsgc2VnbWVudHMgfTogeyBzZWdtZW50czogVmlzaWJsZVNlZ21lbnRbXSB9KTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtNiB3LWZ1bGxcIj5cbiAgICAgIHtzZWdtZW50cy5tYXAoKHNlZywgaSkgPT4ge1xuICAgICAgICBjb25zdCBsYWJlbCA9IGZvcm1hdER1cmF0aW9uKHNlZy5mdWxsRHVyYXRpb25Ncyk7XG4gICAgICAgIC8vIE9ubHkgcmVuZGVyIHRoZSBsYWJlbCB3aGVuIHRoZXJlJ3MgZW5vdWdoIHJvb20gZm9yIGl0IHdpdGhvdXQgY2xpcHBpbmcuXG4gICAgICAgIGNvbnN0IHNob3dMYWJlbCA9IHNlZy5waXhlbFdpZHRoID49IE1hdGgubWF4KDQwLCBsYWJlbC5sZW5ndGggKiA2ICsgMTIpO1xuICAgICAgICAvLyBCZWVmIHVwIHRoZSBxdWV1ZWQgc2VnbWVudCB3aGVuIGl0J3MgdG9vIG5hcnJvdyB0byByZWFkLlxuICAgICAgICBjb25zdCBpc05hcnJvd1F1ZXVlZCA9IHNlZy5zdGF0dXMgPT09ICdxdWV1ZWQnICYmIHNlZy5waXhlbFdpZHRoIDwgMjA7XG4gICAgICAgIGNvbnN0IG92ZXJyaWRlQmcgPSBpc05hcnJvd1F1ZXVlZCA/ICd2YXIoLS1kcy1ncmF5LTQwMCknIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBvdmVycmlkZUJvcmRlciA9IGlzTmFycm93UXVldWVkXG4gICAgICAgICAgPyAndmFyKC0tZHMtZ3JheS01MDApJ1xuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAga2V5PXtgJHtzZWcuc3RhdHVzfS0ke2l9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICdhYnNvbHV0ZSBoLWZ1bGwgcm91bmRlZC1bMC4yNXJlbV0nLFxuICAgICAgICAgICAgICBTRUdNRU5UX0NMQVNTRVNbc2VnLnN0YXR1c11cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAvLyAxcHggZ2FwIGJldHdlZW4gYWRqYWNlbnQgc2VnbWVudHMsIGRpc3RyaWJ1dGVkIGVxdWFsbHkuXG4gICAgICAgICAgICAgIGxlZnQ6IGBjYWxjKCR7c2VnLmxlZnRQY3R9JSArIDAuNXB4KWAsXG4gICAgICAgICAgICAgIHdpZHRoOiBgY2FsYygke3NlZy53aWR0aFBjdH0lIC0gMXB4KWAsXG4gICAgICAgICAgICAgIG1pbldpZHRoOiAxLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBvdmVycmlkZUJnLFxuICAgICAgICAgICAgICBib3JkZXJDb2xvcjogb3ZlcnJpZGVCb3JkZXIsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtzaG93TGFiZWwgPyA8RHVyYXRpb25MYWJlbCBsYWJlbD17bGFiZWx9IC8+IDogbnVsbH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRpbWVsaW5lQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3QgVGltZWxpbmVCYXIgPSBtZW1vKGZ1bmN0aW9uIFRpbWVsaW5lQmFyKHtcbiAgc3BhbixcbiAgdmlld1N0YXJ0LFxuICB2aWV3RHVyYXRpb24sXG4gIGNvbnRhaW5lcldpZHRoLFxuICBpc1NlbGVjdGVkLFxuICBpc0RpbW1lZCxcbiAgb25TZWxlY3QsXG59OiB7XG4gIHNwYW46IFNwYW47XG4gIHZpZXdTdGFydDogbnVtYmVyO1xuICB2aWV3RHVyYXRpb246IG51bWJlcjtcbiAgY29udGFpbmVyV2lkdGg6IG51bWJlcjtcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgaXNEaW1tZWQ/OiBib29sZWFuO1xuICBvblNlbGVjdDogKHNwYW5JZDogc3RyaW5nKSA9PiB2b2lkO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IHN0YXJ0TXMgPSBnZXRIaWdoUmVzSW5NcyhzcGFuLnN0YXJ0VGltZSk7XG4gIGNvbnN0IGVuZE1zID0gZ2V0SGlnaFJlc0luTXMoc3Bhbi5lbmRUaW1lKTtcbiAgY29uc3QgdG90YWxEdXJhdGlvbk1zID0gZ2V0U3BhbkR1cmF0aW9uTXMoc3Bhbik7XG5cbiAgY29uc3QgZ2VvbWV0cnkgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjb21wdXRlQmFyR2VvbWV0cnkoXG4gICAgICAgIHN0YXJ0TXMsXG4gICAgICAgIGVuZE1zLFxuICAgICAgICB2aWV3U3RhcnQsXG4gICAgICAgIHZpZXdTdGFydCArIHZpZXdEdXJhdGlvbixcbiAgICAgICAgY29udGFpbmVyV2lkdGhcbiAgICAgICksXG4gICAgW3N0YXJ0TXMsIGVuZE1zLCB2aWV3U3RhcnQsIHZpZXdEdXJhdGlvbiwgY29udGFpbmVyV2lkdGhdXG4gICk7XG5cbiAgY29uc3QgYmFzZVNlZ21lbnRzID0gdXNlTWVtbygoKSA9PiBjb21wdXRlU3BhblNlZ21lbnRzKHNwYW4pLCBbc3Bhbl0pO1xuICBjb25zdCBzZWdtZW50cyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGdlb21ldHJ5Lm1vZGUua2luZCA9PT0gJ2Z1bGwnXG4gICAgICAgID8gcHJvamVjdFNlZ21lbnRzKGJhc2VTZWdtZW50cywgc3RhcnRNcywgdG90YWxEdXJhdGlvbk1zLCBnZW9tZXRyeSlcbiAgICAgICAgOiBbXSxcbiAgICBbZ2VvbWV0cnksIGJhc2VTZWdtZW50cywgc3RhcnRNcywgdG90YWxEdXJhdGlvbk1zXVxuICApO1xuXG4gIGNvbnN0IHdvcmtmbG93U3RhdHVzID0gKHNwYW4uYXR0cmlidXRlcy5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgID8uc3RhdHVzIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgY29uc3QgaXNFcnJvcmVkID0gc3Bhbi5zdGF0dXMuY29kZSA9PT0gMiB8fCB3b3JrZmxvd1N0YXR1cyA9PT0gJ2ZhaWxlZCc7XG4gIGNvbnN0IGNvbG9ycyA9IGdldFJlc291cmNlQ29sb3Ioc3Bhbi5yZXNvdXJjZSk7XG4gIGNvbnN0IGZhbGxiYWNrQmcgPSBpc0Vycm9yZWRcbiAgICA/IChjb2xvcnMuZXJyb3JCZyA/PyAndmFyKC0tZHMtcmVkLTIwMCknKVxuICAgIDogY29sb3JzLmJnO1xuICBjb25zdCBmYWxsYmFja0JvcmRlciA9IGlzRXJyb3JlZFxuICAgID8gKGNvbG9ycy5lcnJvckJvcmRlciA/PyAndmFyKC0tZHMtcmVkLTUwMCknKVxuICAgIDogY29sb3JzLmJvcmRlcjtcblxuICBjb25zdCB0b3RhbExhYmVsID0gZm9ybWF0RHVyYXRpb24odG90YWxEdXJhdGlvbk1zKTtcbiAgY29uc3Qgc2hvd1RvdGFsTGFiZWwgPVxuICAgIGdlb21ldHJ5LnZpc2libGVQaXhlbFdpZHRoID49IE1hdGgubWF4KDQwLCB0b3RhbExhYmVsLmxlbmd0aCAqIDYgKyAxMik7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgb25TZWxlY3Qoc3Bhbi5zcGFuSWQpO1xuICB9LCBbb25TZWxlY3QsIHNwYW4uc3BhbklkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByb2xlPVwidHJlZWl0ZW1cIlxuICAgICAgYXJpYS1zZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgIGFyaWEtZXhwYW5kZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBhcmlhLWxldmVsPXsxfVxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgJ2dyb3VwL3RpbWVsaW5lLXJvdyBoLTEwIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIGhvdmVyOmJnLWdyYXktMTAwIGFyaWEtc2VsZWN0ZWQ6YmctZ3JheS0xMDAgYXJpYS1zZWxlY3RlZDpob3ZlcjpiZy1ncmF5LTIwMCB0cmFuc2l0aW9uLW9wYWNpdHknLFxuICAgICAgICBpc0RpbW1lZCAmJiAnb3BhY2l0eS0zNSdcbiAgICAgICl9XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXktMFwiIHN0eWxlPXtUSU1FTElORV9JTlNFVF9TVFlMRX0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMS8yIGgtNiAtdHJhbnNsYXRlLXktMS8yIHJvdW5kZWQtWzAuMjVyZW1dXCJcbiAgICAgICAgICBzdHlsZT17Z2V0QmFyUG9zaXRpb25TdHlsZShnZW9tZXRyeSl9XG4gICAgICAgID5cbiAgICAgICAgICB7Z2VvbWV0cnkubW9kZS5raW5kID09PSAnYXJyb3cnID8gKFxuICAgICAgICAgICAgPEJvdW5kYXJ5QXJyb3cgZGlyZWN0aW9uPXtnZW9tZXRyeS5tb2RlLmRpcmVjdGlvbn0gLz5cbiAgICAgICAgICApIDogZ2VvbWV0cnkubW9kZS5raW5kID09PSAndGlueScgPyAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNiByb3VuZGVkLVswLjI1cmVtXSBib3JkZXJcIlxuICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kOiBmYWxsYmFja0JnLCBib3JkZXJDb2xvcjogZmFsbGJhY2tCb3JkZXIgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IHNlZ21lbnRzLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICA8U2VnbWVudEJhciBzZWdtZW50cz17c2VnbWVudHN9IC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxQbGFpbkJhclxuICAgICAgICAgICAgICBiZz17ZmFsbGJhY2tCZ31cbiAgICAgICAgICAgICAgYm9yZGVyPXtmYWxsYmFja0JvcmRlcn1cbiAgICAgICAgICAgICAgbGFiZWw9e3Nob3dUb3RhbExhYmVsID8gdG90YWxMYWJlbCA6IG51bGx9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59KTtcblxuZXhwb3J0IHsgVGltZWxpbmVCYXIgfTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZWx0YUluZGljYXRvciAoQWx0LWtleSBnYXAgb3ZlcmxheSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5jb25zdCBERUxUQV9DQVBfSEVJR0hUX1BYID0gODtcbi8vIFZlcnRpY2FsIG9mZnNldCB0byBzaXQgdGhlIGluZGljYXRvciBpbnNpZGUgdGhlIGdhcCBiZXR3ZWVuIHJvdyBOIGFuZCBOKzEsXG4vLyBhbGlnbmVkIHdpdGggd2hlcmUgdGhlIGJhciBzdGFydHMgaW4gdGhlIG5leHQgcm93IChyb3dzIGNlbnRlciBhIDI0cHggYmFyXG4vLyBpbnNpZGUgNDBweCwgc28gYmFycyBzdGFydCB+OHB4IGZyb20gdGhlIHRvcCBvZiB0aGUgcm93KS5cbmNvbnN0IERFTFRBX1JPV19PRkZTRVRfUFggPSA4O1xuXG5jb25zdCBEZWx0YUluZGljYXRvciA9IG1lbW8oZnVuY3Rpb24gRGVsdGFJbmRpY2F0b3Ioe1xuICBsZWZ0RnJhYyxcbiAgcmlnaHRGcmFjLFxuICBsYWJlbCxcbiAgcm93SW5kZXgsXG59OiB7XG4gIGxlZnRGcmFjOiBudW1iZXI7XG4gIHJpZ2h0RnJhYzogbnVtYmVyO1xuICBsYWJlbDogc3RyaW5nO1xuICByb3dJbmRleDogbnVtYmVyO1xufSkge1xuICBjb25zdCBjZW50ZXJZID0gREVMVEFfUk9XX09GRlNFVF9QWCArIChyb3dJbmRleCArIDEpICogUk9XX0hFSUdIVF9QWDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgbGVmdDogYCR7bGVmdEZyYWMgKiAxMDB9JWAsXG4gICAgICAgIHdpZHRoOiBgJHsocmlnaHRGcmFjIC0gbGVmdEZyYWMpICogMTAwfSVgLFxuICAgICAgICB0b3A6IGNlbnRlclkgLSBERUxUQV9DQVBfSEVJR0hUX1BYIC8gMixcbiAgICAgICAgaGVpZ2h0OiBERUxUQV9DQVBfSEVJR0hUX1BYLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtMCB0b3AtMCB3LXB4IGgtZnVsbCBiZy1hbWJlci04MDBcIiAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTAgcmlnaHQtMCB0b3AtMS8yIGgtcHggYmctYW1iZXItODAwXCIgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgcmlnaHQtMCB0b3AtMCB3LXB4IGgtZnVsbCBiZy1hbWJlci04MDBcIiAvPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYWJzb2x1dGUgbGVmdC0xLzIgdG9wLTEvMiAtdHJhbnNsYXRlLXgtMS8yIC10cmFuc2xhdGUteS0xLzIgdGV4dC1sYWJlbC0xMiBsZWFkaW5nLW5vbmUgd2hpdGVzcGFjZS1ub3dyYXAgcm91bmRlZC14cyBweC0xIHB5LTAuNSB0ZXh0LWdyYXktMTAwIGJnLWFtYmVyLTgwMFwiPlxuICAgICAgICB7bGFiZWx9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59KTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaW1lbGluZUhlYWRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBUaW1lbGluZUhlYWRlcih7XG4gIG1hcmtlcnMsXG4gIGhvdmVySW5mbyxcbn06IHtcbiAgbWFya2VyczogVGltZU1hcmtlcltdO1xuICBob3ZlckluZm8/OiB7IGZyYWN0aW9uOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfSB8IG51bGw7XG59KTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGJnLWJhY2tncm91bmQtMTAwIGJvcmRlci1iIGJvcmRlci1ncmF5LWFscGhhLTQwMCBoLTEwIG1pbi1oLTEwIGZsZXggaXRlbXMtZW5kIHB4LTQgcGItMVwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLWZ1bGwgZmxleC0xXCI+XG4gICAgICAgIHttYXJrZXJzLm1hcCgobSkgPT4gKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBrZXk9e2Ake20ucG9zaXRpb259LSR7bS5sYWJlbH1gfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgYm90dG9tLTEgZm9udC1tb25vIHRleHQteHMgZm9udC1ub3JtYWwgbGVhZGluZy00IHRleHQtZ3JheS05MDAgd2hpdGVzcGFjZS1ub3dyYXBcIlxuICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7bS5wb3NpdGlvbiAqIDEwMH0lYCB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHttLmxhYmVsfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKSl9XG4gICAgICAgIHtob3ZlckluZm8gJiYgKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMSBwb2ludGVyLWV2ZW50cy1ub25lIHotMTAgZm9udC1tb25vIHRleHQtWzExcHhdIGxlYWRpbmctNCB0ZXh0LWdyYXktMTAwMCB3aGl0ZXNwYWNlLW5vd3JhcCBiZy1iYWNrZ3JvdW5kLTEwMCBib3JkZXIgYm9yZGVyLWdyYXktYWxwaGEtNDAwIHJvdW5kZWQgcHgtMSAtdHJhbnNsYXRlLXgtMS8yXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IGxlZnQ6IGAke2hvdmVySW5mby5mcmFjdGlvbiAqIDEwMH0lYCB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtob3ZlckluZm8ubGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGltZWxpbmVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgZnVuY3Rpb24gVGltZWxpbmUoe1xuICBzcGFucyxcbiAgdmlld1N0YXJ0LFxuICB2aWV3RW5kLFxuICBtYXJrZXJzLFxuICBzZWxlY3RlZElkLFxuICBzZWFyY2hSZXN1bHQsXG4gIG9uU2VsZWN0LFxuICBob3ZlckZyYWN0aW9uLFxuICBhbHRIZWxkID0gZmFsc2UsXG59OiB7XG4gIHNwYW5zOiBTcGFuW107XG4gIHZpZXdTdGFydDogbnVtYmVyO1xuICB2aWV3RW5kOiBudW1iZXI7XG4gIG1hcmtlcnM6IFRpbWVNYXJrZXJbXTtcbiAgc2VsZWN0ZWRJZDogc3RyaW5nIHwgbnVsbDtcbiAgc2VhcmNoUmVzdWx0OiBTcGFuU2VhcmNoUmVzdWx0O1xuICBvblNlbGVjdDogKHNwYW5JZDogc3RyaW5nKSA9PiB2b2lkO1xuICBob3ZlckZyYWN0aW9uPzogbnVtYmVyIHwgbnVsbDtcbiAgYWx0SGVsZD86IGJvb2xlYW47XG59KTogUmVhY3ROb2RlIHtcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2NvbnRhaW5lcldpZHRoLCBzZXRDb250YWluZXJXaWR0aF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3Qgdmlld0R1cmF0aW9uID0gdmlld0VuZCAtIHZpZXdTdGFydDtcbiAgY29uc3QgdGltZWxpbmVXaWR0aCA9IE1hdGgubWF4KDAsIGNvbnRhaW5lcldpZHRoIC0gVElNRUxJTkVfUEFERElOR19QWCAqIDIpO1xuICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IHVzZVJvd1dpbmRvdyhcbiAgICBjb250YWluZXJSZWYsXG4gICAgc3BhbnMubGVuZ3RoLFxuICAgIFJPV19IRUlHSFRfUFhcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKChbZW50cnldKSA9PiB7XG4gICAgICBzZXRDb250YWluZXJXaWR0aChlbnRyeS5jb250ZW50UmVjdC53aWR0aCk7XG4gICAgfSk7XG4gICAgcm8ub2JzZXJ2ZShlbCk7XG4gICAgcmV0dXJuICgpID0+IHJvLmRpc2Nvbm5lY3QoKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGdhcHMgPSB1c2VNZW1vKFxuICAgICgpID0+IGNvbXB1dGVTcGFuR2FwcyhzcGFucywgdmlld1N0YXJ0LCB2aWV3RW5kKSxcbiAgICBbc3BhbnMsIHZpZXdTdGFydCwgdmlld0VuZF1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgaC1mdWxsIG92ZXJmbG93LWhpZGRlblwiXG4gICAgICBzdHlsZT17eyBtaW5IZWlnaHQ6IHNwYW5zLmxlbmd0aCAqIFJPV19IRUlHSFRfUFggfX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXktMCBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAgICAgc3R5bGU9e1RJTUVMSU5FX0lOU0VUX1NUWUxFfVxuICAgICAgPlxuICAgICAgICB7bWFya2Vycy5tYXAoKG1hcmtlcikgPT5cbiAgICAgICAgICAvLyBTa2lwIHRoZSBcIjBzXCIgb3JpZ2luIG1hcmtlciBzaW5jZSB0aGUgbGVmdCBlZGdlIGFscmVhZHkgaW1wbGllcyBpdC5cbiAgICAgICAgICBNYXRoLmFicyhtYXJrZXIudmFsdWUpID4gMC4wMDAwMDEgPyAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGtleT17YCR7bWFya2VyLnBvc2l0aW9ufS0ke21hcmtlci5sYWJlbH1gfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMCBib3R0b20tMCB3LXB4IGJnLWdyYXktYWxwaGEtMzAwXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7bWFya2VyLnBvc2l0aW9uICogMTAwfSVgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIHtob3ZlckZyYWN0aW9uICE9IG51bGwgJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQteS0wIHBvaW50ZXItZXZlbnRzLW5vbmUgei0xMFwiXG4gICAgICAgICAgc3R5bGU9e1RJTUVMSU5FX0lOU0VUX1NUWUxFfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTAgYm90dG9tLTAgdy1weCBiZy1ncmF5LWFscGhhLTUwMFwiXG4gICAgICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHtob3ZlckZyYWN0aW9uICogMTAwfSVgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgPGRpdiBzdHlsZT17eyB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7c3RhcnQgKiBST1dfSEVJR0hUX1BYfXB4KWAgfX0+XG4gICAgICAgIHtzcGFucy5zbGljZShzdGFydCwgZW5kKS5tYXAoKHNwYW4pID0+IChcbiAgICAgICAgICA8VGltZWxpbmVCYXJcbiAgICAgICAgICAgIGtleT17c3Bhbi5zcGFuSWR9XG4gICAgICAgICAgICBzcGFuPXtzcGFufVxuICAgICAgICAgICAgdmlld1N0YXJ0PXt2aWV3U3RhcnR9XG4gICAgICAgICAgICB2aWV3RHVyYXRpb249e3ZpZXdEdXJhdGlvbn1cbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoPXt0aW1lbGluZVdpZHRofVxuICAgICAgICAgICAgaXNTZWxlY3RlZD17c2VsZWN0ZWRJZCA9PT0gc3Bhbi5zcGFuSWR9XG4gICAgICAgICAgICBpc0RpbW1lZD17aXNTcGFuRGltbWVkQnlTZWFyY2goc3Bhbi5zcGFuSWQsIHNlYXJjaFJlc3VsdCl9XG4gICAgICAgICAgICBvblNlbGVjdD17b25TZWxlY3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICA8L2Rpdj5cbiAgICAgIHthbHRIZWxkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQteS0wIHBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICAgICAgIHN0eWxlPXtUSU1FTElORV9JTlNFVF9TVFlMRX1cbiAgICAgICAgPlxuICAgICAgICAgIHtnYXBzLm1hcCgoZ2FwKSA9PiAoXG4gICAgICAgICAgICA8RGVsdGFJbmRpY2F0b3JcbiAgICAgICAgICAgICAga2V5PXtnYXAucm93SW5kZXh9XG4gICAgICAgICAgICAgIGxlZnRGcmFjPXtnYXAubGVmdEZyYWN9XG4gICAgICAgICAgICAgIHJpZ2h0RnJhYz17Z2FwLnJpZ2h0RnJhY31cbiAgICAgICAgICAgICAgbGFiZWw9e2Zvcm1hdER1cmF0aW9uKGdhcC5nYXBNcywgdHJ1ZSl9XG4gICAgICAgICAgICAgIHJvd0luZGV4PXtnYXAucm93SW5kZXh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0=
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9uZXctdHJhY2Utdmlld2VyL2NvbXBvbmVudHMvdGltZWxpbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7QUFFYixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhDLE9BQU8sRUFDTCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLGNBQWMsR0FDZixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBeUIsTUFBTSxXQUFXLENBQUM7QUFFeEUsT0FBTyxFQUNMLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixHQUNsQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9ELDhFQUE4RTtBQUM5RSxZQUFZO0FBQ1osOEVBQThFO0FBRTlFLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBQ2hDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUV0QyxNQUFNLGVBQWUsR0FBa0M7SUFDckQsTUFBTSxFQUFFLG9DQUFvQztJQUM1QyxRQUFRLEVBQUUsb0NBQW9DO0lBQzlDLE9BQU8sRUFBRSxvQ0FBb0M7SUFDN0MsT0FBTyxFQUFFLG9DQUFvQztJQUM3QyxNQUFNLEVBQUUsa0NBQWtDO0lBQzFDLFNBQVMsRUFBRSxzQ0FBc0M7SUFDakQsUUFBUSxFQUFFLG9DQUFvQztJQUM5QyxRQUFRLEVBQUUsb0NBQW9DO0NBQy9DLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFrQjtJQUMxQyxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLEtBQUssRUFBRSxtQkFBbUI7Q0FDM0IsQ0FBQztBQW9CRjs7OztHQUlHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsT0FBZSxFQUNmLEtBQWEsRUFDYixTQUFpQixFQUNqQixPQUFlLEVBQ2YsY0FBc0I7SUFFdEIsTUFBTSxZQUFZLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUN6QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNwRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFlBQVksR0FBRyxjQUFjLENBQUMsQ0FBQztJQUNyRSxNQUFNLFNBQVMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxNQUFNLGlCQUFpQixHQUFHLFNBQVMsR0FBRyxjQUFjLENBQUM7SUFFckQsTUFBTSxNQUFNLEdBQUcsY0FBYyxHQUFHLENBQUMsSUFBSSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQztJQUM5RSxNQUFNLGNBQWMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBQzNDLE1BQU0sZUFBZSxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUM7SUFFeEMsTUFBTSxJQUFJLEdBQ1IsTUFBTSxJQUFJLENBQUMsY0FBYyxJQUFJLGVBQWUsQ0FBQztRQUMzQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO1FBQ2xFLENBQUMsQ0FBQyxNQUFNO1lBQ04sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNsQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFFekIsT0FBTztRQUNMLElBQUk7UUFDSixPQUFPLEVBQ0wsWUFBWSxHQUFHLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxHQUFHO1lBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ1AsUUFBUSxFQUFFLFNBQVMsR0FBRyxHQUFHO1FBQ3pCLGNBQWM7UUFDZCxZQUFZO1FBQ1osaUJBQWlCO0tBQ2xCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxRQUFxQjtJQUloRCxRQUFRLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsS0FBSyxPQUFPO1lBQ1YsT0FBTztnQkFDTCxJQUFJLEVBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssT0FBTztvQkFDakMsQ0FBQyxDQUFDLGVBQWUsb0JBQW9CLEtBQUs7b0JBQzFDLENBQUMsQ0FBQyxLQUFLO2dCQUNYLEtBQUssRUFBRSxHQUFHLG9CQUFvQixJQUFJO2FBQ25DLENBQUM7UUFDSixLQUFLLE1BQU07WUFDVCxPQUFPO2dCQUNMLElBQUksRUFBRSxPQUFPLFFBQVEsQ0FBQyxPQUFPLGtCQUFrQixpQkFBaUIsTUFBTTtnQkFDdEUsS0FBSyxFQUFFLEdBQUcsaUJBQWlCLElBQUk7YUFDaEMsQ0FBQztRQUNKLEtBQUssTUFBTTtZQUNULE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sR0FBRztnQkFDNUIsS0FBSyxFQUFFLE9BQU8sUUFBUSxDQUFDLFFBQVEsU0FBUzthQUN6QyxDQUFDO0lBQ04sQ0FBQztBQUNILENBQUM7QUFjRDs7OztHQUlHO0FBQ0gsU0FBUyxlQUFlLENBQ3RCLFFBQW1CLEVBQ25CLFdBQW1CLEVBQ25CLGNBQXNCLEVBQ3RCLFFBQXFCO0lBRXJCLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO0lBQzFFLElBQUksaUJBQWlCLElBQUksQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXRDLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQzlCLE1BQU0sVUFBVSxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUMsYUFBYSxHQUFHLGNBQWMsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBRyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDaEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxJQUFJLEtBQUssSUFBSSxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFaEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDeEQsT0FBTztZQUNMO2dCQUNFLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtnQkFDbEIsT0FBTyxFQUNMLENBQUMsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsR0FBRztnQkFDakUsUUFBUSxFQUFFLFNBQVMsR0FBRyxHQUFHO2dCQUN6QixVQUFVLEVBQUUsU0FBUyxHQUFHLFFBQVEsQ0FBQyxpQkFBaUI7Z0JBQ2xELGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLGNBQWM7YUFDdkU7U0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsOEVBQThFO0FBQzlFLHVCQUF1QjtBQUN2Qiw4RUFBOEU7QUFFOUUsU0FBUyxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQXFCO0lBQ2pELE9BQU8sQ0FDTCxlQUFNLFNBQVMsRUFBQyxpUEFBaVAsWUFDOVAsS0FBSyxHQUNELENBQ1IsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxFQUNyQixTQUFTLEdBR1Y7SUFDQyxNQUFNLElBQUksR0FBRyxTQUFTLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM1RCxPQUFPLENBQ0wsY0FBSyxTQUFTLEVBQUMsNERBQTRELFlBQ3pFLEtBQUMsSUFBSSxJQUFDLFNBQVMsRUFBQyxzQkFBc0IsR0FBRyxHQUNyQyxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsRUFDaEIsRUFBRSxFQUNGLE1BQU0sRUFDTixLQUFLLEdBS047SUFDQyxPQUFPLENBQ0wsY0FDRSxTQUFTLEVBQUMsc0RBQXNELEVBQ2hFLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxZQUU3QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUMsYUFBYSxJQUFDLEtBQUssRUFBRSxLQUFLLEdBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUMzQyxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQWtDO0lBQzlELE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyxxQkFBcUIsWUFDakMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QixNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDeEQsMEVBQTBFO1lBQzFFLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEUsMkRBQTJEO1lBQzNELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNyRSxNQUFNLGNBQWMsR0FBRyxjQUFjO2dCQUNuQyxDQUFDLENBQUMsb0JBQW9CO2dCQUN0QixDQUFDLENBQUMsU0FBUyxDQUFDO1lBRWQsT0FBTyxDQUNMLGNBRUUsU0FBUyxFQUFFLEVBQUUsQ0FDWCxtQ0FBbUMsRUFDbkMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FDNUIsRUFDRCxLQUFLLEVBQUU7b0JBQ0wsMERBQTBEO29CQUMxRCxJQUFJLEVBQUUsUUFBUSxHQUFHLENBQUMsT0FBTyxZQUFZO29CQUNyQyxLQUFLLEVBQUUsUUFBUSxHQUFHLENBQUMsUUFBUSxVQUFVO29CQUNyQyxRQUFRLEVBQUUsQ0FBQztvQkFDWCxVQUFVLEVBQUUsVUFBVTtvQkFDdEIsV0FBVyxFQUFFLGNBQWM7aUJBQzVCLFlBRUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFDLGFBQWEsSUFBQyxLQUFLLEVBQUUsS0FBSyxHQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFkOUMsQ0FBQyxDQWVGLENBQ1AsQ0FBQztRQUNKLENBQUMsQ0FBQyxHQUNFLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsY0FBYztBQUNkLDhFQUE4RTtBQUU5RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLENBQUMsRUFDNUMsSUFBSSxFQUNKLFNBQVMsRUFDVCxZQUFZLEVBQ1osY0FBYyxFQUNkLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxHQVNUO0lBQ0MsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FDdEIsR0FBRyxFQUFFLENBQ0gsa0JBQWtCLENBQ2hCLE9BQU8sRUFDUCxLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsR0FBRyxZQUFZLEVBQ3hCLGNBQWMsQ0FDZixFQUNILENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUMxRCxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQ3RCLEdBQUcsRUFBRSxDQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU07UUFDM0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUM7UUFDbkUsQ0FBQyxDQUFDLEVBQUUsRUFDUixDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUNuRCxDQUFDO0lBRUYsTUFBTSxjQUFjLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFnQztRQUN0RSxFQUFFLE1BQTRCLENBQUM7SUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLGNBQWMsS0FBSyxRQUFRLENBQUM7SUFDeEUsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sVUFBVSxHQUFHLFNBQVM7UUFDMUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQztRQUN6QyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNkLE1BQU0sY0FBYyxHQUFHLFNBQVM7UUFDOUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxtQkFBbUIsQ0FBQztRQUM3QyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUVsQixNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxRCxNQUFNLGNBQWMsR0FDbEIsUUFBUSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRXpFLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFNUIsT0FBTyxDQUNMLGNBQ0UsSUFBSSxFQUFDLFVBQVUsbUJBQ0EsVUFBVSxtQkFDVixVQUFVLGdCQUNiLENBQUMsRUFDYixTQUFTLEVBQUUsRUFBRSxDQUNYLG1KQUFtSixFQUNuSixRQUFRLElBQUksWUFBWSxDQUN6QixFQUNELE9BQU8sRUFBRSxXQUFXLFlBRXBCLGNBQUssU0FBUyxFQUFDLG9CQUFvQixFQUFDLEtBQUssRUFBRSxvQkFBb0IsWUFDN0QsY0FDRSxTQUFTLEVBQUMseURBQXlELEVBQ25FLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsWUFFbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUNoQyxLQUFDLGFBQWEsSUFBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUksQ0FDdEQsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUNsQyxjQUNFLFNBQVMsRUFBQyw4QkFBOEIsRUFDeEMsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEdBQzlELENBQ0gsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3hCLEtBQUMsVUFBVSxJQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUksQ0FDbkMsQ0FBQyxDQUFDLENBQUMsQ0FDRixLQUFDLFFBQVEsSUFDUCxFQUFFLEVBQUUsVUFBVSxFQUNkLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUN6QyxDQUNILEdBQ0csR0FDRixHQUNGLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBRXZCLDhFQUE4RTtBQUM5RSx1Q0FBdUM7QUFDdkMsOEVBQThFO0FBRTlFLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLDZFQUE2RTtBQUM3RSw0RUFBNEU7QUFDNUUsNERBQTREO0FBQzVELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRTlCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLGNBQWMsQ0FBQyxFQUNsRCxRQUFRLEVBQ1IsU0FBUyxFQUNULEtBQUssRUFDTCxRQUFRLEdBTVQ7SUFDQyxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUM7SUFFckUsT0FBTyxDQUNMLGVBQ0UsU0FBUyxFQUFDLDhCQUE4QixFQUN4QyxLQUFLLEVBQUU7WUFDTCxJQUFJLEVBQUUsR0FBRyxRQUFRLEdBQUcsR0FBRyxHQUFHO1lBQzFCLEtBQUssRUFBRSxHQUFHLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRztZQUN6QyxHQUFHLEVBQUUsT0FBTyxHQUFHLG1CQUFtQixHQUFHLENBQUM7WUFDdEMsTUFBTSxFQUFFLG1CQUFtQjtTQUM1QixhQUVELGNBQUssU0FBUyxFQUFDLGdEQUFnRCxHQUFHLEVBQ2xFLGNBQUssU0FBUyxFQUFDLG1EQUFtRCxHQUFHLEVBQ3JFLGNBQUssU0FBUyxFQUFDLGlEQUFpRCxHQUFHLEVBQ25FLGVBQU0sU0FBUyxFQUFDLDRKQUE0SixZQUN6SyxLQUFLLEdBQ0QsSUFDSCxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILDhFQUE4RTtBQUM5RSxpQkFBaUI7QUFDakIsOEVBQThFO0FBRTlFLE1BQU0sVUFBVSxjQUFjLENBQUMsRUFDN0IsT0FBTyxFQUNQLFNBQVMsR0FJVjtJQUNDLE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyxrR0FBa0csWUFDL0csZUFBSyxTQUFTLEVBQUMsd0JBQXdCLGFBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ2xCLGVBRUUsU0FBUyxFQUFDLDJGQUEyRixFQUNyRyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLFlBRXRDLENBQUMsQ0FBQyxLQUFLLElBSkgsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FLZixDQUNSLENBQUMsRUFDRCxTQUFTLElBQUksQ0FDWixlQUNFLFNBQVMsRUFBQyx1TEFBdUwsRUFDak0sS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsU0FBUyxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsRUFBRSxZQUU5QyxTQUFTLENBQUMsS0FBSyxHQUNYLENBQ1IsSUFDRyxHQUNGLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsV0FBVztBQUNYLDhFQUE4RTtBQUU5RSxNQUFNLFVBQVUsUUFBUSxDQUFDLEVBQ3ZCLEtBQUssRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixhQUFhLEVBQ2IsT0FBTyxHQUFHLEtBQUssR0FXaEI7SUFDQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQWlCLElBQUksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsTUFBTSxZQUFZLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUN6QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxjQUFjLEdBQUcsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxZQUFZLENBQ2pDLFlBQVksRUFDWixLQUFLLENBQUMsTUFBTSxFQUNaLGFBQWEsQ0FDZCxDQUFDO0lBRUYsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3hDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUNsQixHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFDaEQsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUM1QixDQUFDO0lBRUYsT0FBTyxDQUNMLGVBQ0UsR0FBRyxFQUFFLFlBQVksRUFDakIsU0FBUyxFQUFDLGlDQUFpQyxFQUMzQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxhQUFhLEVBQUUsYUFFbEQsbUNBRUUsU0FBUyxFQUFDLHdDQUF3QyxFQUNsRCxLQUFLLEVBQUUsb0JBQW9CLFlBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDdEIsc0VBQXNFO2dCQUN0RSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQ2xDLGNBRUUsU0FBUyxFQUFDLGdEQUFnRCxFQUMxRCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLElBRnZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBR3pCLENBQ0gsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNULEdBQ0csRUFDTCxhQUFhLElBQUksSUFBSSxJQUFJLENBQ3hCLGNBQ0UsU0FBUyxFQUFDLDZDQUE2QyxFQUN2RCxLQUFLLEVBQUUsb0JBQW9CLFlBRTNCLGNBQ0UsU0FBUyxFQUFDLGdEQUFnRCxFQUMxRCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxhQUFhLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FDMUMsR0FDRSxDQUNQLEVBQ0QsY0FBSyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxLQUFLLEdBQUcsYUFBYSxLQUFLLEVBQUUsWUFDaEUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUNyQyxLQUFDLFdBQVcsSUFFVixJQUFJLEVBQUUsSUFBSSxFQUNWLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFlBQVksRUFBRSxZQUFZLEVBQzFCLGNBQWMsRUFBRSxhQUFhLEVBQzdCLFVBQVUsRUFBRSxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFDdEMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQ3pELFFBQVEsRUFBRSxRQUFRLElBUGIsSUFBSSxDQUFDLE1BQU0sQ0FRaEIsQ0FDSCxDQUFDLEdBQ0UsRUFDTCxPQUFPLElBQUksQ0FDVixtQ0FFRSxTQUFTLEVBQUMsd0NBQXdDLEVBQ2xELEtBQUssRUFBRSxvQkFBb0IsWUFFMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FDakIsS0FBQyxjQUFjLElBRWIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQ3RCLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUN4QixLQUFLLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQ3RDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUpqQixHQUFHLENBQUMsUUFBUSxDQUtqQixDQUNILENBQUMsR0FDRSxDQUNQLElBQ0csQ0FDUCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgQXJyb3dMZWZ0LCBBcnJvd1JpZ2h0IH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB0eXBlIHsgQ1NTUHJvcGVydGllcywgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgU3BhbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIGZvcm1hdER1cmF0aW9uLFxuICBmb3JtYXREdXJhdGlvblByZWNpc2UsXG4gIGdldEhpZ2hSZXNJbk1zLFxufSBmcm9tICcuLi8uLi90cmFjZS12aWV3ZXIvdXRpbC90aW1pbmcnO1xuaW1wb3J0IHsgaXNTcGFuRGltbWVkQnlTZWFyY2gsIHR5cGUgU3BhblNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaCc7XG5pbXBvcnQgdHlwZSB7IFNlZ21lbnQsIFNlZ21lbnRTdGF0dXMsIFRpbWVNYXJrZXIgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBjb21wdXRlU3BhbkdhcHMsXG4gIGNvbXB1dGVTcGFuU2VnbWVudHMsXG4gIGdldFJlc291cmNlQ29sb3IsXG4gIGdldFNwYW5EdXJhdGlvbk1zLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBST1dfSEVJR0hUX1BYLCB1c2VSb3dXaW5kb3cgfSBmcm9tICcuL3VzZS1yb3ctd2luZG93JztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb25zdGFudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5jb25zdCBUSU5ZX0JBUl9CT1hfU0laRV9QWCA9IDI0O1xuY29uc3QgVElOWV9CQVJfV0lEVEhfUFggPSA0O1xuZXhwb3J0IGNvbnN0IFRJTUVMSU5FX1BBRERJTkdfUFggPSAxNjtcblxuY29uc3QgU0VHTUVOVF9DTEFTU0VTOiBSZWNvcmQ8U2VnbWVudFN0YXR1cywgc3RyaW5nPiA9IHtcbiAgcXVldWVkOiAnYmctZ3JheS00MDAgYm9yZGVyIGJvcmRlci1ncmF5LTUwMCcsXG4gIHJldHJ5aW5nOiAnYmctZ3JheS00MDAgYm9yZGVyIGJvcmRlci1ncmF5LTUwMCcsXG4gIHdhaXRpbmc6ICdiZy1ncmF5LTQwMCBib3JkZXIgYm9yZGVyLWdyYXktNTAwJyxcbiAgcnVubmluZzogJ2JnLWJsdWUtMjAwIGJvcmRlciBib3JkZXItYmx1ZS01MDAnLFxuICBmYWlsZWQ6ICdiZy1yZWQtMjAwIGJvcmRlciBib3JkZXItcmVkLTUwMCcsXG4gIHN1Y2NlZWRlZDogJ2JnLWdyZWVuLTIwMCBib3JkZXIgYm9yZGVyLWdyZWVuLTUwMCcsXG4gIHNsZWVwaW5nOiAnYmctZ3JheS00MDAgYm9yZGVyIGJvcmRlci1ncmF5LTUwMCcsXG4gIHJlY2VpdmVkOiAnYmctYmx1ZS0yMDAgYm9yZGVyIGJvcmRlci1ibHVlLTUwMCcsXG59O1xuXG5jb25zdCBUSU1FTElORV9JTlNFVF9TVFlMRTogQ1NTUHJvcGVydGllcyA9IHtcbiAgbGVmdDogVElNRUxJTkVfUEFERElOR19QWCxcbiAgcmlnaHQ6IFRJTUVMSU5FX1BBRERJTkdfUFgsXG59O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJhciBnZW9tZXRyeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnR5cGUgQmFyTW9kZSA9XG4gIHwgeyBraW5kOiAnYXJyb3cnOyBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgfVxuICB8IHsga2luZDogJ3RpbnknIH1cbiAgfCB7IGtpbmQ6ICdmdWxsJyB9O1xuXG5pbnRlcmZhY2UgQmFyR2VvbWV0cnkge1xuICBtb2RlOiBCYXJNb2RlO1xuICBsZWZ0UGN0OiBudW1iZXI7XG4gIHdpZHRoUGN0OiBudW1iZXI7XG4gIHZpc2libGVTdGFydE1zOiBudW1iZXI7XG4gIHZpc2libGVFbmRNczogbnVtYmVyO1xuICB2aXNpYmxlUGl4ZWxXaWR0aDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbXB1dGUgdGhlIGJhcidzIGdlb21ldHJ5IGluc2lkZSB0aGUgdGltZWxpbmUgdmlld3BvcnQuIFBlcmNlbnRhZ2VzIGFyZVxuICogYWx3YXlzIGluIFswLCAxMDBdIHNvIHdlIG5ldmVyIGVtaXQgQ1NTIHZhbHVlcyB0aGF0IGV4Y2VlZCBicm93c2VyIGxheW91dFxuICogbGltaXRzIGF0IGV4dHJlbWUgem9vbS5cbiAqL1xuZnVuY3Rpb24gY29tcHV0ZUJhckdlb21ldHJ5KFxuICBzdGFydE1zOiBudW1iZXIsXG4gIGVuZE1zOiBudW1iZXIsXG4gIHZpZXdTdGFydDogbnVtYmVyLFxuICB2aWV3RW5kOiBudW1iZXIsXG4gIGNvbnRhaW5lcldpZHRoOiBudW1iZXJcbik6IEJhckdlb21ldHJ5IHtcbiAgY29uc3Qgdmlld0R1cmF0aW9uID0gdmlld0VuZCAtIHZpZXdTdGFydDtcbiAgY29uc3QgdmlzaWJsZVN0YXJ0TXMgPSBNYXRoLm1heChzdGFydE1zLCB2aWV3U3RhcnQpO1xuICBjb25zdCB2aXNpYmxlRW5kTXMgPSBNYXRoLm1pbihlbmRNcywgdmlld0VuZCk7XG4gIGNvbnN0IHZpc2libGVEdXJhdGlvbk1zID0gTWF0aC5tYXgoMCwgdmlzaWJsZUVuZE1zIC0gdmlzaWJsZVN0YXJ0TXMpO1xuICBjb25zdCB3aWR0aEZyYWMgPSB2aWV3RHVyYXRpb24gPiAwID8gdmlzaWJsZUR1cmF0aW9uTXMgLyB2aWV3RHVyYXRpb24gOiAwO1xuICBjb25zdCB2aXNpYmxlUGl4ZWxXaWR0aCA9IHdpZHRoRnJhYyAqIGNvbnRhaW5lcldpZHRoO1xuXG4gIGNvbnN0IGlzVGlueSA9IGNvbnRhaW5lcldpZHRoID4gMCAmJiB2aXNpYmxlUGl4ZWxXaWR0aCA8IFRJTllfQkFSX0JPWF9TSVpFX1BYO1xuICBjb25zdCBleHRlbmRzT2ZmTGVmdCA9IHN0YXJ0TXMgPCB2aWV3U3RhcnQ7XG4gIGNvbnN0IGV4dGVuZHNPZmZSaWdodCA9IGVuZE1zID4gdmlld0VuZDtcblxuICBjb25zdCBtb2RlOiBCYXJNb2RlID1cbiAgICBpc1RpbnkgJiYgKGV4dGVuZHNPZmZMZWZ0IHx8IGV4dGVuZHNPZmZSaWdodClcbiAgICAgID8geyBraW5kOiAnYXJyb3cnLCBkaXJlY3Rpb246IGV4dGVuZHNPZmZSaWdodCA/ICdyaWdodCcgOiAnbGVmdCcgfVxuICAgICAgOiBpc1RpbnlcbiAgICAgICAgPyB7IGtpbmQ6ICd0aW55JyB9XG4gICAgICAgIDogeyBraW5kOiAnZnVsbCcgfTtcblxuICByZXR1cm4ge1xuICAgIG1vZGUsXG4gICAgbGVmdFBjdDpcbiAgICAgIHZpZXdEdXJhdGlvbiA+IDBcbiAgICAgICAgPyAoKHZpc2libGVTdGFydE1zIC0gdmlld1N0YXJ0KSAvIHZpZXdEdXJhdGlvbikgKiAxMDBcbiAgICAgICAgOiAwLFxuICAgIHdpZHRoUGN0OiB3aWR0aEZyYWMgKiAxMDAsXG4gICAgdmlzaWJsZVN0YXJ0TXMsXG4gICAgdmlzaWJsZUVuZE1zLFxuICAgIHZpc2libGVQaXhlbFdpZHRoLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRCYXJQb3NpdGlvblN0eWxlKGdlb21ldHJ5OiBCYXJHZW9tZXRyeSk6IHtcbiAgbGVmdDogc3RyaW5nO1xuICB3aWR0aDogc3RyaW5nO1xufSB7XG4gIHN3aXRjaCAoZ2VvbWV0cnkubW9kZS5raW5kKSB7XG4gICAgY2FzZSAnYXJyb3cnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGVmdDpcbiAgICAgICAgICBnZW9tZXRyeS5tb2RlLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0J1xuICAgICAgICAgICAgPyBgY2FsYygxMDAlIC0gJHtUSU5ZX0JBUl9CT1hfU0laRV9QWH1weClgXG4gICAgICAgICAgICA6ICcwcHgnLFxuICAgICAgICB3aWR0aDogYCR7VElOWV9CQVJfQk9YX1NJWkVfUFh9cHhgLFxuICAgICAgfTtcbiAgICBjYXNlICd0aW55JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IGBtaW4oJHtnZW9tZXRyeS5sZWZ0UGN0fSUsIGNhbGMoMTAwJSAtICR7VElOWV9CQVJfV0lEVEhfUFh9cHgpKWAsXG4gICAgICAgIHdpZHRoOiBgJHtUSU5ZX0JBUl9XSURUSF9QWH1weGAsXG4gICAgICB9O1xuICAgIGNhc2UgJ2Z1bGwnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGVmdDogYCR7Z2VvbWV0cnkubGVmdFBjdH0lYCxcbiAgICAgICAgd2lkdGg6IGBtYXgoJHtnZW9tZXRyeS53aWR0aFBjdH0lLCA0cHgpYCxcbiAgICAgIH07XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTZWdtZW50IHByb2plY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5pbnRlcmZhY2UgVmlzaWJsZVNlZ21lbnQge1xuICBzdGF0dXM6IFNlZ21lbnRTdGF0dXM7XG4gIGxlZnRQY3Q6IG51bWJlcjtcbiAgd2lkdGhQY3Q6IG51bWJlcjtcbiAgcGl4ZWxXaWR0aDogbnVtYmVyO1xuICBmdWxsRHVyYXRpb25NczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb2plY3Qgc3RhdHVzIHNlZ21lbnRzIG9udG8gdGhlIHZpc2libGUgcG9ydGlvbiBvZiBhIGJhci4gU2VnbWVudHMgZnVsbHlcbiAqIG91dHNpZGUgdGhlIHZpc2libGUgd2luZG93IGFyZSBkcm9wcGVkOyBzZWdtZW50cyBjcm9zc2luZyB0aGUgZWRnZSBhcmVcbiAqIGNsaXBwZWQgdG8gWzAlLCAxMDAlXSBvZiB0aGUgdmlzaWJsZSBiYXIuXG4gKi9cbmZ1bmN0aW9uIHByb2plY3RTZWdtZW50cyhcbiAgc2VnbWVudHM6IFNlZ21lbnRbXSxcbiAgc3BhblN0YXJ0TXM6IG51bWJlcixcbiAgc3BhbkR1cmF0aW9uTXM6IG51bWJlcixcbiAgZ2VvbWV0cnk6IEJhckdlb21ldHJ5XG4pOiBWaXNpYmxlU2VnbWVudFtdIHtcbiAgY29uc3QgdmlzaWJsZUR1cmF0aW9uTXMgPSBnZW9tZXRyeS52aXNpYmxlRW5kTXMgLSBnZW9tZXRyeS52aXNpYmxlU3RhcnRNcztcbiAgaWYgKHZpc2libGVEdXJhdGlvbk1zIDw9IDApIHJldHVybiBbXTtcblxuICByZXR1cm4gc2VnbWVudHMuZmxhdE1hcCgoc2VnKSA9PiB7XG4gICAgY29uc3Qgc2VnU3RhcnRNcyA9IHNwYW5TdGFydE1zICsgc2VnLnN0YXJ0RnJhY3Rpb24gKiBzcGFuRHVyYXRpb25NcztcbiAgICBjb25zdCBzZWdFbmRNcyA9IHNwYW5TdGFydE1zICsgc2VnLmVuZEZyYWN0aW9uICogc3BhbkR1cmF0aW9uTXM7XG4gICAgY29uc3Qgc3RhcnRNcyA9IE1hdGgubWF4KHNlZ1N0YXJ0TXMsIGdlb21ldHJ5LnZpc2libGVTdGFydE1zKTtcbiAgICBjb25zdCBlbmRNcyA9IE1hdGgubWluKHNlZ0VuZE1zLCBnZW9tZXRyeS52aXNpYmxlRW5kTXMpO1xuICAgIGlmIChlbmRNcyA8PSBzdGFydE1zKSByZXR1cm4gW107XG5cbiAgICBjb25zdCB3aWR0aEZyYWMgPSAoZW5kTXMgLSBzdGFydE1zKSAvIHZpc2libGVEdXJhdGlvbk1zO1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogc2VnLnN0YXR1cyxcbiAgICAgICAgbGVmdFBjdDpcbiAgICAgICAgICAoKHN0YXJ0TXMgLSBnZW9tZXRyeS52aXNpYmxlU3RhcnRNcykgLyB2aXNpYmxlRHVyYXRpb25NcykgKiAxMDAsXG4gICAgICAgIHdpZHRoUGN0OiB3aWR0aEZyYWMgKiAxMDAsXG4gICAgICAgIHBpeGVsV2lkdGg6IHdpZHRoRnJhYyAqIGdlb21ldHJ5LnZpc2libGVQaXhlbFdpZHRoLFxuICAgICAgICBmdWxsRHVyYXRpb25NczogKHNlZy5lbmRGcmFjdGlvbiAtIHNlZy5zdGFydEZyYWN0aW9uKSAqIHNwYW5EdXJhdGlvbk1zLFxuICAgICAgfSxcbiAgICBdO1xuICB9KTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTbWFsbCByZW5kZXIgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIER1cmF0aW9uTGFiZWwoeyBsYWJlbCB9OiB7IGxhYmVsOiBzdHJpbmcgfSk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgb3ZlcmZsb3ctaGlkZGVuIHB4LTEgdGV4dC1bMTBweF0gZm9udC1tb25vIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWxlZnQgdGV4dC1ncmF5LTEwMDAgdGFidWxhci1udW1zIG9wYWNpdHktMCBncm91cC1ob3Zlci90aW1lbGluZS1yb3c6b3BhY2l0eS0xMDBcIj5cbiAgICAgIHtsYWJlbH1cbiAgICA8L3NwYW4+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEJvdW5kYXJ5QXJyb3coe1xuICBkaXJlY3Rpb24sXG59OiB7XG4gIGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0Jztcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBJY29uID0gZGlyZWN0aW9uID09PSAncmlnaHQnID8gQXJyb3dSaWdodCA6IEFycm93TGVmdDtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC02IHctNiBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1bMC4yNXJlbV1cIj5cbiAgICAgIDxJY29uIGNsYXNzTmFtZT1cInNpemUtMyB0ZXh0LWdyYXktOTAwXCIgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gUGxhaW5CYXIoe1xuICBiZyxcbiAgYm9yZGVyLFxuICBsYWJlbCxcbn06IHtcbiAgYmc6IHN0cmluZztcbiAgYm9yZGVyOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmcgfCBudWxsO1xufSk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgaC02IHctZnVsbCBtaW4tdy0xIHJvdW5kZWQtWzAuMjVyZW1dIGJvcmRlclwiXG4gICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kOiBiZywgYm9yZGVyQ29sb3I6IGJvcmRlciB9fVxuICAgID5cbiAgICAgIHtsYWJlbCA/IDxEdXJhdGlvbkxhYmVsIGxhYmVsPXtsYWJlbH0gLz4gOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBTZWdtZW50QmFyKHsgc2VnbWVudHMgfTogeyBzZWdtZW50czogVmlzaWJsZVNlZ21lbnRbXSB9KTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtNiB3LWZ1bGxcIj5cbiAgICAgIHtzZWdtZW50cy5tYXAoKHNlZywgaSkgPT4ge1xuICAgICAgICBjb25zdCBsYWJlbCA9IGZvcm1hdER1cmF0aW9uUHJlY2lzZShzZWcuZnVsbER1cmF0aW9uTXMpO1xuICAgICAgICAvLyBPbmx5IHJlbmRlciB0aGUgbGFiZWwgd2hlbiB0aGVyZSdzIGVub3VnaCByb29tIGZvciBpdCB3aXRob3V0IGNsaXBwaW5nLlxuICAgICAgICBjb25zdCBzaG93TGFiZWwgPSBzZWcucGl4ZWxXaWR0aCA+PSBNYXRoLm1heCg0MCwgbGFiZWwubGVuZ3RoICogNiArIDEyKTtcbiAgICAgICAgLy8gQmVlZiB1cCB0aGUgcXVldWVkIHNlZ21lbnQgd2hlbiBpdCdzIHRvbyBuYXJyb3cgdG8gcmVhZC5cbiAgICAgICAgY29uc3QgaXNOYXJyb3dRdWV1ZWQgPSBzZWcuc3RhdHVzID09PSAncXVldWVkJyAmJiBzZWcucGl4ZWxXaWR0aCA8IDIwO1xuICAgICAgICBjb25zdCBvdmVycmlkZUJnID0gaXNOYXJyb3dRdWV1ZWQgPyAndmFyKC0tZHMtZ3JheS00MDApJyA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgb3ZlcnJpZGVCb3JkZXIgPSBpc05hcnJvd1F1ZXVlZFxuICAgICAgICAgID8gJ3ZhcigtLWRzLWdyYXktNTAwKSdcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICdhYnNvbHV0ZSBoLWZ1bGwgcm91bmRlZC1bMC4yNXJlbV0nLFxuICAgICAgICAgICAgICBTRUdNRU5UX0NMQVNTRVNbc2VnLnN0YXR1c11cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAvLyAxcHggZ2FwIGJldHdlZW4gYWRqYWNlbnQgc2VnbWVudHMsIGRpc3RyaWJ1dGVkIGVxdWFsbHkuXG4gICAgICAgICAgICAgIGxlZnQ6IGBjYWxjKCR7c2VnLmxlZnRQY3R9JSArIDAuNXB4KWAsXG4gICAgICAgICAgICAgIHdpZHRoOiBgY2FsYygke3NlZy53aWR0aFBjdH0lIC0gMXB4KWAsXG4gICAgICAgICAgICAgIG1pbldpZHRoOiAxLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBvdmVycmlkZUJnLFxuICAgICAgICAgICAgICBib3JkZXJDb2xvcjogb3ZlcnJpZGVCb3JkZXIsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtzaG93TGFiZWwgPyA8RHVyYXRpb25MYWJlbCBsYWJlbD17bGFiZWx9IC8+IDogbnVsbH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRpbWVsaW5lQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3QgVGltZWxpbmVCYXIgPSBtZW1vKGZ1bmN0aW9uIFRpbWVsaW5lQmFyKHtcbiAgc3BhbixcbiAgdmlld1N0YXJ0LFxuICB2aWV3RHVyYXRpb24sXG4gIGNvbnRhaW5lcldpZHRoLFxuICBpc1NlbGVjdGVkLFxuICBpc0RpbW1lZCxcbiAgb25TZWxlY3QsXG59OiB7XG4gIHNwYW46IFNwYW47XG4gIHZpZXdTdGFydDogbnVtYmVyO1xuICB2aWV3RHVyYXRpb246IG51bWJlcjtcbiAgY29udGFpbmVyV2lkdGg6IG51bWJlcjtcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgaXNEaW1tZWQ/OiBib29sZWFuO1xuICBvblNlbGVjdDogKHNwYW5JZDogc3RyaW5nKSA9PiB2b2lkO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IHN0YXJ0TXMgPSBnZXRIaWdoUmVzSW5NcyhzcGFuLnN0YXJ0VGltZSk7XG4gIGNvbnN0IGVuZE1zID0gZ2V0SGlnaFJlc0luTXMoc3Bhbi5lbmRUaW1lKTtcbiAgY29uc3QgdG90YWxEdXJhdGlvbk1zID0gZ2V0U3BhbkR1cmF0aW9uTXMoc3Bhbik7XG5cbiAgY29uc3QgZ2VvbWV0cnkgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjb21wdXRlQmFyR2VvbWV0cnkoXG4gICAgICAgIHN0YXJ0TXMsXG4gICAgICAgIGVuZE1zLFxuICAgICAgICB2aWV3U3RhcnQsXG4gICAgICAgIHZpZXdTdGFydCArIHZpZXdEdXJhdGlvbixcbiAgICAgICAgY29udGFpbmVyV2lkdGhcbiAgICAgICksXG4gICAgW3N0YXJ0TXMsIGVuZE1zLCB2aWV3U3RhcnQsIHZpZXdEdXJhdGlvbiwgY29udGFpbmVyV2lkdGhdXG4gICk7XG5cbiAgY29uc3QgYmFzZVNlZ21lbnRzID0gdXNlTWVtbygoKSA9PiBjb21wdXRlU3BhblNlZ21lbnRzKHNwYW4pLCBbc3Bhbl0pO1xuICBjb25zdCBzZWdtZW50cyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGdlb21ldHJ5Lm1vZGUua2luZCA9PT0gJ2Z1bGwnXG4gICAgICAgID8gcHJvamVjdFNlZ21lbnRzKGJhc2VTZWdtZW50cywgc3RhcnRNcywgdG90YWxEdXJhdGlvbk1zLCBnZW9tZXRyeSlcbiAgICAgICAgOiBbXSxcbiAgICBbZ2VvbWV0cnksIGJhc2VTZWdtZW50cywgc3RhcnRNcywgdG90YWxEdXJhdGlvbk1zXVxuICApO1xuXG4gIGNvbnN0IHdvcmtmbG93U3RhdHVzID0gKHNwYW4uYXR0cmlidXRlcy5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgID8uc3RhdHVzIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgY29uc3QgaXNFcnJvcmVkID0gc3Bhbi5zdGF0dXMuY29kZSA9PT0gMiB8fCB3b3JrZmxvd1N0YXR1cyA9PT0gJ2ZhaWxlZCc7XG4gIGNvbnN0IGNvbG9ycyA9IGdldFJlc291cmNlQ29sb3Ioc3Bhbi5yZXNvdXJjZSk7XG4gIGNvbnN0IGZhbGxiYWNrQmcgPSBpc0Vycm9yZWRcbiAgICA/IChjb2xvcnMuZXJyb3JCZyA/PyAndmFyKC0tZHMtcmVkLTIwMCknKVxuICAgIDogY29sb3JzLmJnO1xuICBjb25zdCBmYWxsYmFja0JvcmRlciA9IGlzRXJyb3JlZFxuICAgID8gKGNvbG9ycy5lcnJvckJvcmRlciA/PyAndmFyKC0tZHMtcmVkLTUwMCknKVxuICAgIDogY29sb3JzLmJvcmRlcjtcblxuICBjb25zdCB0b3RhbExhYmVsID0gZm9ybWF0RHVyYXRpb25QcmVjaXNlKHRvdGFsRHVyYXRpb25Ncyk7XG4gIGNvbnN0IHNob3dUb3RhbExhYmVsID1cbiAgICBnZW9tZXRyeS52aXNpYmxlUGl4ZWxXaWR0aCA+PSBNYXRoLm1heCg0MCwgdG90YWxMYWJlbC5sZW5ndGggKiA2ICsgMTIpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uU2VsZWN0KHNwYW4uc3BhbklkKTtcbiAgfSwgW29uU2VsZWN0LCBzcGFuLnNwYW5JZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcm9sZT1cInRyZWVpdGVtXCJcbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBhcmlhLWV4cGFuZGVkPXtpc1NlbGVjdGVkfVxuICAgICAgYXJpYS1sZXZlbD17MX1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdncm91cC90aW1lbGluZS1yb3cgaC0xMCByZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciBob3ZlcjpiZy1ncmF5LTEwMCBhcmlhLXNlbGVjdGVkOmJnLWdyYXktMTAwIGFyaWEtc2VsZWN0ZWQ6aG92ZXI6YmctZ3JheS0yMDAgdHJhbnNpdGlvbi1vcGFjaXR5JyxcbiAgICAgICAgaXNEaW1tZWQgJiYgJ29wYWNpdHktMzUnXG4gICAgICApfVxuICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC15LTBcIiBzdHlsZT17VElNRUxJTkVfSU5TRVRfU1RZTEV9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTEvMiBoLTYgLXRyYW5zbGF0ZS15LTEvMiByb3VuZGVkLVswLjI1cmVtXVwiXG4gICAgICAgICAgc3R5bGU9e2dldEJhclBvc2l0aW9uU3R5bGUoZ2VvbWV0cnkpfVxuICAgICAgICA+XG4gICAgICAgICAge2dlb21ldHJ5Lm1vZGUua2luZCA9PT0gJ2Fycm93JyA/IChcbiAgICAgICAgICAgIDxCb3VuZGFyeUFycm93IGRpcmVjdGlvbj17Z2VvbWV0cnkubW9kZS5kaXJlY3Rpb259IC8+XG4gICAgICAgICAgKSA6IGdlb21ldHJ5Lm1vZGUua2luZCA9PT0gJ3RpbnknID8gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTYgcm91bmRlZC1bMC4yNXJlbV0gYm9yZGVyXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZDogZmFsbGJhY2tCZywgYm9yZGVyQ29sb3I6IGZhbGxiYWNrQm9yZGVyIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBzZWdtZW50cy5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgPFNlZ21lbnRCYXIgc2VnbWVudHM9e3NlZ21lbnRzfSAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8UGxhaW5CYXJcbiAgICAgICAgICAgICAgYmc9e2ZhbGxiYWNrQmd9XG4gICAgICAgICAgICAgIGJvcmRlcj17ZmFsbGJhY2tCb3JkZXJ9XG4gICAgICAgICAgICAgIGxhYmVsPXtzaG93VG90YWxMYWJlbCA/IHRvdGFsTGFiZWwgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufSk7XG5cbmV4cG9ydCB7IFRpbWVsaW5lQmFyIH07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGVsdGFJbmRpY2F0b3IgKEFsdC1rZXkgZ2FwIG92ZXJsYXkpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3QgREVMVEFfQ0FQX0hFSUdIVF9QWCA9IDg7XG4vLyBWZXJ0aWNhbCBvZmZzZXQgdG8gc2l0IHRoZSBpbmRpY2F0b3IgaW5zaWRlIHRoZSBnYXAgYmV0d2VlbiByb3cgTiBhbmQgTisxLFxuLy8gYWxpZ25lZCB3aXRoIHdoZXJlIHRoZSBiYXIgc3RhcnRzIGluIHRoZSBuZXh0IHJvdyAocm93cyBjZW50ZXIgYSAyNHB4IGJhclxuLy8gaW5zaWRlIDQwcHgsIHNvIGJhcnMgc3RhcnQgfjhweCBmcm9tIHRoZSB0b3Agb2YgdGhlIHJvdykuXG5jb25zdCBERUxUQV9ST1dfT0ZGU0VUX1BYID0gODtcblxuY29uc3QgRGVsdGFJbmRpY2F0b3IgPSBtZW1vKGZ1bmN0aW9uIERlbHRhSW5kaWNhdG9yKHtcbiAgbGVmdEZyYWMsXG4gIHJpZ2h0RnJhYyxcbiAgbGFiZWwsXG4gIHJvd0luZGV4LFxufToge1xuICBsZWZ0RnJhYzogbnVtYmVyO1xuICByaWdodEZyYWM6IG51bWJlcjtcbiAgbGFiZWw6IHN0cmluZztcbiAgcm93SW5kZXg6IG51bWJlcjtcbn0pIHtcbiAgY29uc3QgY2VudGVyWSA9IERFTFRBX1JPV19PRkZTRVRfUFggKyAocm93SW5kZXggKyAxKSAqIFJPV19IRUlHSFRfUFg7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGxlZnQ6IGAke2xlZnRGcmFjICogMTAwfSVgLFxuICAgICAgICB3aWR0aDogYCR7KHJpZ2h0RnJhYyAtIGxlZnRGcmFjKSAqIDEwMH0lYCxcbiAgICAgICAgdG9wOiBjZW50ZXJZIC0gREVMVEFfQ0FQX0hFSUdIVF9QWCAvIDIsXG4gICAgICAgIGhlaWdodDogREVMVEFfQ0FQX0hFSUdIVF9QWCxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgdy1weCBoLWZ1bGwgYmctYW1iZXItODAwXCIgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgbGVmdC0wIHJpZ2h0LTAgdG9wLTEvMiBoLXB4IGJnLWFtYmVyLTgwMFwiIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIHJpZ2h0LTAgdG9wLTAgdy1weCBoLWZ1bGwgYmctYW1iZXItODAwXCIgLz5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtMS8yIHRvcC0xLzIgLXRyYW5zbGF0ZS14LTEvMiAtdHJhbnNsYXRlLXktMS8yIHRleHQtbGFiZWwtMTIgbGVhZGluZy1ub25lIHdoaXRlc3BhY2Utbm93cmFwIHJvdW5kZWQteHMgcHgtMSBweS0wLjUgdGV4dC1ncmF5LTEwMCBiZy1hbWJlci04MDBcIj5cbiAgICAgICAge2xhYmVsfVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufSk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGltZWxpbmVIZWFkZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgZnVuY3Rpb24gVGltZWxpbmVIZWFkZXIoe1xuICBtYXJrZXJzLFxuICBob3ZlckluZm8sXG59OiB7XG4gIG1hcmtlcnM6IFRpbWVNYXJrZXJbXTtcbiAgaG92ZXJJbmZvPzogeyBmcmFjdGlvbjogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH0gfCBudWxsO1xufSk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBiZy1iYWNrZ3JvdW5kLTEwMCBib3JkZXItYiBib3JkZXItZ3JheS1hbHBoYS00MDAgaC0xMCBtaW4taC0xMCBmbGV4IGl0ZW1zLWVuZCBweC00IHBiLTFcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgaC1mdWxsIGZsZXgtMVwiPlxuICAgICAgICB7bWFya2Vycy5tYXAoKG0pID0+IChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAga2V5PXtTdHJpbmcobS52YWx1ZSl9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBib3R0b20tMSBmb250LW1vbm8gdGV4dC14cyBmb250LW5vcm1hbCBsZWFkaW5nLTQgdGV4dC1ncmF5LTkwMCB3aGl0ZXNwYWNlLW5vd3JhcFwiXG4gICAgICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHttLnBvc2l0aW9uICogMTAwfSVgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge20ubGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApKX1cbiAgICAgICAge2hvdmVySW5mbyAmJiAoXG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0xIHBvaW50ZXItZXZlbnRzLW5vbmUgei0xMCBmb250LW1vbm8gdGV4dC1bMTFweF0gbGVhZGluZy00IHRleHQtZ3JheS0xMDAwIHdoaXRlc3BhY2Utbm93cmFwIGJnLWJhY2tncm91bmQtMTAwIGJvcmRlciBib3JkZXItZ3JheS1hbHBoYS00MDAgcm91bmRlZCBweC0xIC10cmFuc2xhdGUteC0xLzJcIlxuICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7aG92ZXJJbmZvLmZyYWN0aW9uICogMTAwfSVgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2hvdmVySW5mby5sYWJlbH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaW1lbGluZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBUaW1lbGluZSh7XG4gIHNwYW5zLFxuICB2aWV3U3RhcnQsXG4gIHZpZXdFbmQsXG4gIG1hcmtlcnMsXG4gIHNlbGVjdGVkSWQsXG4gIHNlYXJjaFJlc3VsdCxcbiAgb25TZWxlY3QsXG4gIGhvdmVyRnJhY3Rpb24sXG4gIGFsdEhlbGQgPSBmYWxzZSxcbn06IHtcbiAgc3BhbnM6IFNwYW5bXTtcbiAgdmlld1N0YXJ0OiBudW1iZXI7XG4gIHZpZXdFbmQ6IG51bWJlcjtcbiAgbWFya2VyczogVGltZU1hcmtlcltdO1xuICBzZWxlY3RlZElkOiBzdHJpbmcgfCBudWxsO1xuICBzZWFyY2hSZXN1bHQ6IFNwYW5TZWFyY2hSZXN1bHQ7XG4gIG9uU2VsZWN0OiAoc3BhbklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGhvdmVyRnJhY3Rpb24/OiBudW1iZXIgfCBudWxsO1xuICBhbHRIZWxkPzogYm9vbGVhbjtcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbY29udGFpbmVyV2lkdGgsIHNldENvbnRhaW5lcldpZHRoXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCB2aWV3RHVyYXRpb24gPSB2aWV3RW5kIC0gdmlld1N0YXJ0O1xuICBjb25zdCB0aW1lbGluZVdpZHRoID0gTWF0aC5tYXgoMCwgY29udGFpbmVyV2lkdGggLSBUSU1FTElORV9QQURESU5HX1BYICogMik7XG4gIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gdXNlUm93V2luZG93KFxuICAgIGNvbnRhaW5lclJlZixcbiAgICBzcGFucy5sZW5ndGgsXG4gICAgUk9XX0hFSUdIVF9QWFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSBjb250YWluZXJSZWYuY3VycmVudDtcbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKFtlbnRyeV0pID0+IHtcbiAgICAgIHNldENvbnRhaW5lcldpZHRoKGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoKTtcbiAgICB9KTtcbiAgICByby5vYnNlcnZlKGVsKTtcbiAgICByZXR1cm4gKCkgPT4gcm8uZGlzY29ubmVjdCgpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgZ2FwcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gY29tcHV0ZVNwYW5HYXBzKHNwYW5zLCB2aWV3U3RhcnQsIHZpZXdFbmQpLFxuICAgIFtzcGFucywgdmlld1N0YXJ0LCB2aWV3RW5kXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgIHN0eWxlPXt7IG1pbkhlaWdodDogc3BhbnMubGVuZ3RoICogUk9XX0hFSUdIVF9QWCB9fVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQteS0wIHBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICAgICBzdHlsZT17VElNRUxJTkVfSU5TRVRfU1RZTEV9XG4gICAgICA+XG4gICAgICAgIHttYXJrZXJzLm1hcCgobWFya2VyKSA9PlxuICAgICAgICAgIC8vIFNraXAgdGhlIFwiMHNcIiBvcmlnaW4gbWFya2VyIHNpbmNlIHRoZSBsZWZ0IGVkZ2UgYWxyZWFkeSBpbXBsaWVzIGl0LlxuICAgICAgICAgIE1hdGguYWJzKG1hcmtlci52YWx1ZSkgPiAwLjAwMDAwMSA/IChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAga2V5PXtTdHJpbmcobWFya2VyLnZhbHVlKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTAgYm90dG9tLTAgdy1weCBiZy1ncmF5LWFscGhhLTMwMFwiXG4gICAgICAgICAgICAgIHN0eWxlPXt7IGxlZnQ6IGAke21hcmtlci5wb3NpdGlvbiAqIDEwMH0lYCB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogbnVsbFxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICB7aG92ZXJGcmFjdGlvbiAhPSBudWxsICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXktMCBwb2ludGVyLWV2ZW50cy1ub25lIHotMTBcIlxuICAgICAgICAgIHN0eWxlPXtUSU1FTElORV9JTlNFVF9TVFlMRX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0wIGJvdHRvbS0wIHctcHggYmctZ3JheS1hbHBoYS01MDBcIlxuICAgICAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7aG92ZXJGcmFjdGlvbiAqIDEwMH0lYCB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICAgIDxkaXYgc3R5bGU9e3sgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke3N0YXJ0ICogUk9XX0hFSUdIVF9QWH1weClgIH19PlxuICAgICAgICB7c3BhbnMuc2xpY2Uoc3RhcnQsIGVuZCkubWFwKChzcGFuKSA9PiAoXG4gICAgICAgICAgPFRpbWVsaW5lQmFyXG4gICAgICAgICAgICBrZXk9e3NwYW4uc3BhbklkfVxuICAgICAgICAgICAgc3Bhbj17c3Bhbn1cbiAgICAgICAgICAgIHZpZXdTdGFydD17dmlld1N0YXJ0fVxuICAgICAgICAgICAgdmlld0R1cmF0aW9uPXt2aWV3RHVyYXRpb259XG4gICAgICAgICAgICBjb250YWluZXJXaWR0aD17dGltZWxpbmVXaWR0aH1cbiAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkSWQgPT09IHNwYW4uc3BhbklkfVxuICAgICAgICAgICAgaXNEaW1tZWQ9e2lzU3BhbkRpbW1lZEJ5U2VhcmNoKHNwYW4uc3BhbklkLCBzZWFyY2hSZXN1bHQpfVxuICAgICAgICAgICAgb25TZWxlY3Q9e29uU2VsZWN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgICB7YWx0SGVsZCAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXktMCBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAgICAgICBzdHlsZT17VElNRUxJTkVfSU5TRVRfU1RZTEV9XG4gICAgICAgID5cbiAgICAgICAgICB7Z2Fwcy5tYXAoKGdhcCkgPT4gKFxuICAgICAgICAgICAgPERlbHRhSW5kaWNhdG9yXG4gICAgICAgICAgICAgIGtleT17Z2FwLnJvd0luZGV4fVxuICAgICAgICAgICAgICBsZWZ0RnJhYz17Z2FwLmxlZnRGcmFjfVxuICAgICAgICAgICAgICByaWdodEZyYWM9e2dhcC5yaWdodEZyYWN9XG4gICAgICAgICAgICAgIGxhYmVsPXtmb3JtYXREdXJhdGlvbihnYXAuZ2FwTXMsIHRydWUpfVxuICAgICAgICAgICAgICByb3dJbmRleD17Z2FwLnJvd0luZGV4fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/components/new-trace-viewer/context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/components/new-trace-viewer/context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,UAAU,sBAAsB;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAKD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAmDA;AAED,eAAO,MAAM,aAAa,QAAO,sBAOhC,CAAC"}
|
|
@@ -44,4 +44,4 @@ export const useActiveSpan = () => {
|
|
|
44
44
|
}
|
|
45
45
|
return context;
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25ldy10cmFjZS12aWV3ZXIvY29udGV4dC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUViLE9BQU8sRUFDTCxhQUFhLEVBRWIsV0FBVyxFQUNYLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFFBQVEsR0FDVCxNQUFNLE9BQU8sQ0FBQztBQVVmLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFnQyxJQUFJLENBQUMsQ0FBQztBQUM3RSxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUM7QUFFcEQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEVBQ2pDLEtBQUssRUFDTCxRQUFRLEdBSVQ7SUFDQyxNQUFNLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxHQUFHLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFFdEUsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLGVBQWUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDL0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUN4QyxDQUFDO1lBQ0YsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRVosTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUM5QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNwRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUUxQixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuRCxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUN2QyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUNuQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ0wsWUFBWTtRQUNaLFVBQVU7UUFDVixhQUFhO1FBQ2IsZUFBZTtLQUNoQixDQUFDLEVBQ0YsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FDM0QsQ0FBQztJQUVGLE9BQU8sQ0FDTCxLQUFDLGlCQUFpQixDQUFDLFFBQVEsSUFBQyxLQUFLLEVBQUUsS0FBSyxZQUNyQyxRQUFRLEdBQ2tCLENBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQTJCLEVBQUU7SUFDeEQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7XG4gIGNyZWF0ZUNvbnRleHQsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBTcGFuIH0gZnJvbSAnLi90eXBlcyc7XG5cbmludGVyZmFjZSBBY3RpdmVTcGFuQ29udGV4dFZhbHVlIHtcbiAgYWN0aXZlU3BhbklkOiBzdHJpbmcgfCBudWxsO1xuICBhY3RpdmVTcGFuOiBTcGFuIHwgbnVsbDtcbiAgc2V0QWN0aXZlU3BhbjogKHNwYW5JZDogc3RyaW5nKSA9PiB2b2lkO1xuICBjbGVhckFjdGl2ZVNwYW46ICgpID0+IHZvaWQ7XG59XG5cbmNvbnN0IEFjdGl2ZVNwYW5Db250ZXh0ID0gY3JlYXRlQ29udGV4dDxBY3RpdmVTcGFuQ29udGV4dFZhbHVlIHwgbnVsbD4obnVsbCk7XG5BY3RpdmVTcGFuQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdBY3RpdmVTcGFuQ29udGV4dCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBBY3RpdmVTcGFuUHJvdmlkZXIoe1xuICBzcGFucyxcbiAgY2hpbGRyZW4sXG59OiB7XG4gIHNwYW5zOiBTcGFuW107XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59KSB7XG4gIGNvbnN0IFthY3RpdmVTcGFuSWQsIHNldEFjdGl2ZVNwYW5JZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEFjdGl2ZVNwYW5JZCgoY3VycmVudFNwYW5JZCkgPT4ge1xuICAgICAgaWYgKCFjdXJyZW50U3BhbklkKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBoYXNDdXJyZW50U3BhbiA9IHNwYW5zLnNvbWUoXG4gICAgICAgIChzcGFuKSA9PiBzcGFuLnNwYW5JZCA9PT0gY3VycmVudFNwYW5JZFxuICAgICAgKTtcbiAgICAgIGlmIChoYXNDdXJyZW50U3Bhbikge1xuICAgICAgICByZXR1cm4gY3VycmVudFNwYW5JZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gIH0sIFtzcGFuc10pO1xuXG4gIGNvbnN0IGFjdGl2ZVNwYW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWFjdGl2ZVNwYW5JZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwYW5zLmZpbmQoKHNwYW4pID0+IHNwYW4uc3BhbklkID09PSBhY3RpdmVTcGFuSWQpID8/IG51bGw7XG4gIH0sIFthY3RpdmVTcGFuSWQsIHNwYW5zXSk7XG5cbiAgY29uc3Qgc2V0QWN0aXZlU3BhbiA9IHVzZUNhbGxiYWNrKChzcGFuSWQ6IHN0cmluZykgPT4ge1xuICAgIHNldEFjdGl2ZVNwYW5JZChzcGFuSWQpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgY2xlYXJBY3RpdmVTcGFuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFjdGl2ZVNwYW5JZChudWxsKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbzxBY3RpdmVTcGFuQ29udGV4dFZhbHVlPihcbiAgICAoKSA9PiAoe1xuICAgICAgYWN0aXZlU3BhbklkLFxuICAgICAgYWN0aXZlU3BhbixcbiAgICAgIHNldEFjdGl2ZVNwYW4sXG4gICAgICBjbGVhckFjdGl2ZVNwYW4sXG4gICAgfSksXG4gICAgW2FjdGl2ZVNwYW5JZCwgYWN0aXZlU3Bhbiwgc2V0QWN0aXZlU3BhbiwgY2xlYXJBY3RpdmVTcGFuXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEFjdGl2ZVNwYW5Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9BY3RpdmVTcGFuQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUFjdGl2ZVNwYW4gPSAoKTogQWN0aXZlU3BhbkNvbnRleHRWYWx1ZSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEFjdGl2ZVNwYW5Db250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VBY3RpdmVTcGFuIG11c3QgYmUgdXNlZCB3aXRoaW4gQWN0aXZlU3BhblByb3ZpZGVyJyk7XG4gIH1cblxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXX0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
const WorkflowIcon = () => {
|
|
3
|
-
return (_jsx("svg", { "data-testid": "geist-icon", height: "16",
|
|
3
|
+
return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", style: { color: 'currentColor' }, viewBox: "0 0 16 16", width: "16", children: _jsx("path", { d: "M5.75 7L6.4209 7.33594L4.85254 10.4717C5.38789 10.771 5.75 11.3431 5.75 12V14C5.75 14.9665 4.96648 15.75 4 15.75H2C1.03352 15.75 0.25 14.9665 0.25 14V12C0.25 11.0335 1.03352 10.25 2 10.25H3.28711L5.0791 6.66504L5.75 7ZM14 10.25C14.9665 10.25 15.75 11.0335 15.75 12V14C15.75 14.9665 14.9665 15.75 14 15.75H12C11.1185 15.75 10.3909 15.098 10.2695 14.25H7V12.75H10.25V12C10.25 11.0335 11.0335 10.25 12 10.25H14ZM2 11.75C1.86192 11.75 1.75 11.8619 1.75 12V14C1.75 14.1381 1.86192 14.25 2 14.25H4C4.13808 14.25 4.25 14.1381 4.25 14V12C4.25 11.8619 4.13808 11.75 4 11.75H2ZM12 11.75C11.8619 11.75 11.75 11.8619 11.75 12V14C11.75 14.1381 11.8619 14.25 12 14.25H14C14.1381 14.25 14.25 14.1381 14.25 14V12C14.25 11.8619 14.1381 11.75 14 11.75H12ZM9 0.25C9.96649 0.25 10.75 1.03351 10.75 2V4C10.75 4.44642 10.5808 4.85197 10.3057 5.16113L12.2041 8.6416L10.8877 9.36035L8.91895 5.75H7C6.03351 5.75 5.25 4.96649 5.25 4V2C5.25 1.03351 6.03351 0.25 7 0.25H9ZM7 1.75C6.86193 1.75 6.75 1.86193 6.75 2V4C6.75 4.13807 6.86193 4.25 7 4.25H9C9.13807 4.25 9.25 4.13807 9.25 4V2C9.25 1.86193 9.13807 1.75 9 1.75H7Z", fill: "currentColor" }) }));
|
|
4
4
|
};
|
|
5
5
|
const WebhookIcon = () => {
|
|
6
|
-
return (_jsx("svg", { "data-testid": "geist-icon", height: "16",
|
|
6
|
+
return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", style: { color: 'currentColor' }, children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.8349 3.24994C5.14454 4.44567 5.55423 5.97464 6.74996 6.665L7.39465 7.03721L7.02726 7.68466L5.14599 11C5.21289 11.1531 5.25 11.3222 5.25 11.5C5.25 12.1904 4.69036 12.75 4 12.75C3.30964 12.75 2.75 12.1904 2.75 11.5C2.75 10.8634 3.22584 10.338 3.84123 10.26L5.38944 7.5316C3.95909 6.30274 3.55857 4.19264 4.53586 2.49994C5.64043 0.586765 8.08679 -0.0687357 9.99996 1.03583C11.836 2.09584 12.5137 4.39156 11.5892 6.26591L10.4949 4.33754C10.4418 3.53274 10.0009 2.76843 9.24996 2.33487C8.05423 1.64452 6.52525 2.0542 5.8349 3.24994ZM9.146 4.99996C9.21289 4.84686 9.25 4.67776 9.25 4.5C9.25 3.80964 8.69036 3.25 8 3.25C7.30964 3.25 6.75 3.80964 6.75 4.5C6.75 5.13659 7.22586 5.66203 7.84127 5.74002L9.72266 9.05556L10.0956 9.71274L10.75 9.33493C11.9457 8.64458 13.4747 9.05427 14.165 10.25C14.8554 11.4457 14.4457 12.9747 13.25 13.6651C12.5047 14.0953 11.63 14.0983 10.9096 13.75H8.69252C9.85895 15.4685 12.1727 16.0191 14 14.9641C15.9131 13.8595 16.5686 11.4132 15.4641 9.5C14.4886 7.81038 12.4665 7.10169 10.6895 7.71998L9.146 4.99996ZM13.25 11.5C13.25 12.1904 12.6904 12.75 12 12.75C11.591 12.75 11.228 12.5536 10.9999 12.25H7.9298C7.57875 14.1006 5.95279 15.5 4 15.5C1.79086 15.5 0 13.7091 0 11.5C0 9.40018 1.61801 7.67826 3.67529 7.51299L2.58098 9.44147C1.92792 9.89251 1.5 10.6463 1.5 11.5C1.5 12.8807 2.61929 14 4 14C5.38071 14 6.5 12.8807 6.5 11.5V10.75H7.25H10.9999C11.228 10.4464 11.591 10.25 12 10.25C12.6904 10.25 13.25 10.8096 13.25 11.5Z", fill: "currentColor" }) }));
|
|
7
7
|
};
|
|
8
8
|
const SleepIcon = () => {
|
|
9
9
|
return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", style: { color: 'currentColor' }, children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.25 1.25V2.03971C5.87928 2.18571 4.62678 2.72736 3.6089 3.54824L3.03033 2.96967L2.5 2.43934L1.43934 3.5L1.96967 4.03033L2.54824 4.6089C1.57979 5.80976 1 7.33717 1 9C1 12.866 4.13401 16 8 16C11.866 16 15 12.866 15 9C15 7.33717 14.4202 5.80976 13.4518 4.6089L14.0303 4.03033L14.5607 3.5L13.5 2.43934L12.9697 2.96967L12.3911 3.54824C11.3732 2.72736 10.1207 2.18571 8.75 2.03971V1.25H9.25H10V-0.25H9.25H8.75H7.25H6.75H6V1.25H6.75H7.25ZM2.5 9C2.5 5.96243 4.96243 3.5 8 3.5C11.0376 3.5 13.5 5.96243 13.5 9C13.5 12.0376 11.0376 14.5 8 14.5C4.96243 14.5 2.5 12.0376 2.5 9ZM8.75 6.75V6H7.25V6.75V9V9.75H8.75V9V6.75Z", fill: "currentColor" }) }));
|
|
@@ -12,4 +12,4 @@ const StepForwardIcon = () => {
|
|
|
12
12
|
return (_jsx("svg", { "data-testid": "geist-icon", height: "16", strokeLinejoin: "round", viewBox: "0 0 16 16", width: "16", style: { color: 'currentColor' }, children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.21969 12.5303L4.75002 13.0607L5.81068 12L5.28035 11.4697L1.81068 7.99999L5.28035 4.53032L5.81068 3.99999L4.75002 2.93933L4.21969 3.46966L0.39647 7.29289C0.00594562 7.68341 0.00594562 8.31658 0.39647 8.7071L4.21969 12.5303ZM11.7804 12.5303L11.25 13.0607L10.1894 12L10.7197 11.4697L14.1894 7.99999L10.7197 4.53032L10.1894 3.99999L11.25 2.93933L11.7804 3.46966L15.6036 7.29289C15.9941 7.68341 15.9941 8.31658 15.6036 8.7071L11.7804 12.5303Z", fill: "currentColor" }) }));
|
|
13
13
|
};
|
|
14
14
|
export { WorkflowIcon, WebhookIcon, SleepIcon, StepForwardIcon };
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9uZXctdHJhY2Utdmlld2VyL2ljb25zLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO0lBQ3hCLE9BQU8sQ0FDTCw2QkFDYyxZQUFZLEVBQ3hCLE1BQU0sRUFBQyxJQUFJLEVBQ1gsY0FBYyxFQUFDLE9BQU8sRUFDdEIsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUNoQyxPQUFPLEVBQUMsV0FBVyxFQUNuQixLQUFLLEVBQUMsSUFBSSxZQUVWLGVBQ0UsQ0FBQyxFQUFDLHNrQ0FBc2tDLEVBQ3hrQyxJQUFJLEVBQUMsY0FBYyxHQUNiLEdBQ0osQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFO0lBQ3ZCLE9BQU8sQ0FDTCw2QkFDYyxZQUFZLEVBQ3hCLE1BQU0sRUFBQyxJQUFJLEVBQ1gsY0FBYyxFQUFDLE9BQU8sRUFDdEIsT0FBTyxFQUFDLFdBQVcsRUFDbkIsS0FBSyxFQUFDLElBQUksRUFDVixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFlBRWhDLGVBQ0UsUUFBUSxFQUFDLFNBQVMsRUFDbEIsUUFBUSxFQUFDLFNBQVMsRUFDbEIsQ0FBQyxFQUFDLDA2Q0FBMDZDLEVBQzU2QyxJQUFJLEVBQUMsY0FBYyxHQUNiLEdBQ0osQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFO0lBQ3JCLE9BQU8sQ0FDTCw2QkFDYyxZQUFZLEVBQ3hCLE1BQU0sRUFBQyxJQUFJLEVBQ1gsY0FBYyxFQUFDLE9BQU8sRUFDdEIsT0FBTyxFQUFDLFdBQVcsRUFDbkIsS0FBSyxFQUFDLElBQUksRUFDVixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFlBRWhDLGVBQ0UsUUFBUSxFQUFDLFNBQVMsRUFDbEIsUUFBUSxFQUFDLFNBQVMsRUFDbEIsQ0FBQyxFQUFDLGttQkFBa21CLEVBQ3BtQixJQUFJLEVBQUMsY0FBYyxHQUNiLEdBQ0osQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE9BQU8sQ0FDTCw2QkFDYyxZQUFZLEVBQ3hCLE1BQU0sRUFBQyxJQUFJLEVBQ1gsY0FBYyxFQUFDLE9BQU8sRUFDdEIsT0FBTyxFQUFDLFdBQVcsRUFDbkIsS0FBSyxFQUFDLElBQUksRUFDVixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFlBRWhDLGVBQ0UsUUFBUSxFQUFDLFNBQVMsRUFDbEIsUUFBUSxFQUFDLFNBQVMsRUFDbEIsQ0FBQyxFQUFDLDBiQUEwYixFQUM1YixJQUFJLEVBQUMsY0FBYyxHQUNiLEdBQ0osQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgV29ya2Zsb3dJY29uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIGRhdGEtdGVzdGlkPVwiZ2Vpc3QtaWNvblwiXG4gICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIHN0eWxlPXt7IGNvbG9yOiAnY3VycmVudENvbG9yJyB9fVxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTUuNzUgN0w2LjQyMDkgNy4zMzU5NEw0Ljg1MjU0IDEwLjQ3MTdDNS4zODc4OSAxMC43NzEgNS43NSAxMS4zNDMxIDUuNzUgMTJWMTRDNS43NSAxNC45NjY1IDQuOTY2NDggMTUuNzUgNCAxNS43NUgyQzEuMDMzNTIgMTUuNzUgMC4yNSAxNC45NjY1IDAuMjUgMTRWMTJDMC4yNSAxMS4wMzM1IDEuMDMzNTIgMTAuMjUgMiAxMC4yNUgzLjI4NzExTDUuMDc5MSA2LjY2NTA0TDUuNzUgN1pNMTQgMTAuMjVDMTQuOTY2NSAxMC4yNSAxNS43NSAxMS4wMzM1IDE1Ljc1IDEyVjE0QzE1Ljc1IDE0Ljk2NjUgMTQuOTY2NSAxNS43NSAxNCAxNS43NUgxMkMxMS4xMTg1IDE1Ljc1IDEwLjM5MDkgMTUuMDk4IDEwLjI2OTUgMTQuMjVIN1YxMi43NUgxMC4yNVYxMkMxMC4yNSAxMS4wMzM1IDExLjAzMzUgMTAuMjUgMTIgMTAuMjVIMTRaTTIgMTEuNzVDMS44NjE5MiAxMS43NSAxLjc1IDExLjg2MTkgMS43NSAxMlYxNEMxLjc1IDE0LjEzODEgMS44NjE5MiAxNC4yNSAyIDE0LjI1SDRDNC4xMzgwOCAxNC4yNSA0LjI1IDE0LjEzODEgNC4yNSAxNFYxMkM0LjI1IDExLjg2MTkgNC4xMzgwOCAxMS43NSA0IDExLjc1SDJaTTEyIDExLjc1QzExLjg2MTkgMTEuNzUgMTEuNzUgMTEuODYxOSAxMS43NSAxMlYxNEMxMS43NSAxNC4xMzgxIDExLjg2MTkgMTQuMjUgMTIgMTQuMjVIMTRDMTQuMTM4MSAxNC4yNSAxNC4yNSAxNC4xMzgxIDE0LjI1IDE0VjEyQzE0LjI1IDExLjg2MTkgMTQuMTM4MSAxMS43NSAxNCAxMS43NUgxMlpNOSAwLjI1QzkuOTY2NDkgMC4yNSAxMC43NSAxLjAzMzUxIDEwLjc1IDJWNEMxMC43NSA0LjQ0NjQyIDEwLjU4MDggNC44NTE5NyAxMC4zMDU3IDUuMTYxMTNMMTIuMjA0MSA4LjY0MTZMMTAuODg3NyA5LjM2MDM1TDguOTE4OTUgNS43NUg3QzYuMDMzNTEgNS43NSA1LjI1IDQuOTY2NDkgNS4yNSA0VjJDNS4yNSAxLjAzMzUxIDYuMDMzNTEgMC4yNSA3IDAuMjVIOVpNNyAxLjc1QzYuODYxOTMgMS43NSA2Ljc1IDEuODYxOTMgNi43NSAyVjRDNi43NSA0LjEzODA3IDYuODYxOTMgNC4yNSA3IDQuMjVIOUM5LjEzODA3IDQuMjUgOS4yNSA0LjEzODA3IDkuMjUgNFYyQzkuMjUgMS44NjE5MyA5LjEzODA3IDEuNzUgOSAxLjc1SDdaXCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICA+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICApO1xufTtcblxuY29uc3QgV2ViaG9va0ljb24gPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgZGF0YS10ZXN0aWQ9XCJnZWlzdC1pY29uXCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICAgIHN0eWxlPXt7IGNvbG9yOiAnY3VycmVudENvbG9yJyB9fVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNNS44MzQ5IDMuMjQ5OTRDNS4xNDQ1NCA0LjQ0NTY3IDUuNTU0MjMgNS45NzQ2NCA2Ljc0OTk2IDYuNjY1TDcuMzk0NjUgNy4wMzcyMUw3LjAyNzI2IDcuNjg0NjZMNS4xNDU5OSAxMUM1LjIxMjg5IDExLjE1MzEgNS4yNSAxMS4zMjIyIDUuMjUgMTEuNUM1LjI1IDEyLjE5MDQgNC42OTAzNiAxMi43NSA0IDEyLjc1QzMuMzA5NjQgMTIuNzUgMi43NSAxMi4xOTA0IDIuNzUgMTEuNUMyLjc1IDEwLjg2MzQgMy4yMjU4NCAxMC4zMzggMy44NDEyMyAxMC4yNkw1LjM4OTQ0IDcuNTMxNkMzLjk1OTA5IDYuMzAyNzQgMy41NTg1NyA0LjE5MjY0IDQuNTM1ODYgMi40OTk5NEM1LjY0MDQzIDAuNTg2NzY1IDguMDg2NzkgLTAuMDY4NzM1NyA5Ljk5OTk2IDEuMDM1ODNDMTEuODM2IDIuMDk1ODQgMTIuNTEzNyA0LjM5MTU2IDExLjU4OTIgNi4yNjU5MUwxMC40OTQ5IDQuMzM3NTRDMTAuNDQxOCAzLjUzMjc0IDEwLjAwMDkgMi43Njg0MyA5LjI0OTk2IDIuMzM0ODdDOC4wNTQyMyAxLjY0NDUyIDYuNTI1MjUgMi4wNTQyIDUuODM0OSAzLjI0OTk0Wk05LjE0NiA0Ljk5OTk2QzkuMjEyODkgNC44NDY4NiA5LjI1IDQuNjc3NzYgOS4yNSA0LjVDOS4yNSAzLjgwOTY0IDguNjkwMzYgMy4yNSA4IDMuMjVDNy4zMDk2NCAzLjI1IDYuNzUgMy44MDk2NCA2Ljc1IDQuNUM2Ljc1IDUuMTM2NTkgNy4yMjU4NiA1LjY2MjAzIDcuODQxMjcgNS43NDAwMkw5LjcyMjY2IDkuMDU1NTZMMTAuMDk1NiA5LjcxMjc0TDEwLjc1IDkuMzM0OTNDMTEuOTQ1NyA4LjY0NDU4IDEzLjQ3NDcgOS4wNTQyNyAxNC4xNjUgMTAuMjVDMTQuODU1NCAxMS40NDU3IDE0LjQ0NTcgMTIuOTc0NyAxMy4yNSAxMy42NjUxQzEyLjUwNDcgMTQuMDk1MyAxMS42MyAxNC4wOTgzIDEwLjkwOTYgMTMuNzVIOC42OTI1MkM5Ljg1ODk1IDE1LjQ2ODUgMTIuMTcyNyAxNi4wMTkxIDE0IDE0Ljk2NDFDMTUuOTEzMSAxMy44NTk1IDE2LjU2ODYgMTEuNDEzMiAxNS40NjQxIDkuNUMxNC40ODg2IDcuODEwMzggMTIuNDY2NSA3LjEwMTY5IDEwLjY4OTUgNy43MTk5OEw5LjE0NiA0Ljk5OTk2Wk0xMy4yNSAxMS41QzEzLjI1IDEyLjE5MDQgMTIuNjkwNCAxMi43NSAxMiAxMi43NUMxMS41OTEgMTIuNzUgMTEuMjI4IDEyLjU1MzYgMTAuOTk5OSAxMi4yNUg3LjkyOThDNy41Nzg3NSAxNC4xMDA2IDUuOTUyNzkgMTUuNSA0IDE1LjVDMS43OTA4NiAxNS41IDAgMTMuNzA5MSAwIDExLjVDMCA5LjQwMDE4IDEuNjE4MDEgNy42NzgyNiAzLjY3NTI5IDcuNTEyOTlMMi41ODA5OCA5LjQ0MTQ3QzEuOTI3OTIgOS44OTI1MSAxLjUgMTAuNjQ2MyAxLjUgMTEuNUMxLjUgMTIuODgwNyAyLjYxOTI5IDE0IDQgMTRDNS4zODA3MSAxNCA2LjUgMTIuODgwNyA2LjUgMTEuNVYxMC43NUg3LjI1SDEwLjk5OTlDMTEuMjI4IDEwLjQ0NjQgMTEuNTkxIDEwLjI1IDEyIDEwLjI1QzEyLjY5MDQgMTAuMjUgMTMuMjUgMTAuODA5NiAxMy4yNSAxMS41WlwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgKTtcbn07XG5cbmNvbnN0IFNsZWVwSWNvbiA9ICgpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICBkYXRhLXRlc3RpZD1cImdlaXN0LWljb25cIlxuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgc3R5bGU9e3sgY29sb3I6ICdjdXJyZW50Q29sb3InIH19XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk03LjI1IDEuMjVWMi4wMzk3MUM1Ljg3OTI4IDIuMTg1NzEgNC42MjY3OCAyLjcyNzM2IDMuNjA4OSAzLjU0ODI0TDMuMDMwMzMgMi45Njk2N0wyLjUgMi40MzkzNEwxLjQzOTM0IDMuNUwxLjk2OTY3IDQuMDMwMzNMMi41NDgyNCA0LjYwODlDMS41Nzk3OSA1LjgwOTc2IDEgNy4zMzcxNyAxIDlDMSAxMi44NjYgNC4xMzQwMSAxNiA4IDE2QzExLjg2NiAxNiAxNSAxMi44NjYgMTUgOUMxNSA3LjMzNzE3IDE0LjQyMDIgNS44MDk3NiAxMy40NTE4IDQuNjA4OUwxNC4wMzAzIDQuMDMwMzNMMTQuNTYwNyAzLjVMMTMuNSAyLjQzOTM0TDEyLjk2OTcgMi45Njk2N0wxMi4zOTExIDMuNTQ4MjRDMTEuMzczMiAyLjcyNzM2IDEwLjEyMDcgMi4xODU3MSA4Ljc1IDIuMDM5NzFWMS4yNUg5LjI1SDEwVi0wLjI1SDkuMjVIOC43NUg3LjI1SDYuNzVINlYxLjI1SDYuNzVINy4yNVpNMi41IDlDMi41IDUuOTYyNDMgNC45NjI0MyAzLjUgOCAzLjVDMTEuMDM3NiAzLjUgMTMuNSA1Ljk2MjQzIDEzLjUgOUMxMy41IDEyLjAzNzYgMTEuMDM3NiAxNC41IDggMTQuNUM0Ljk2MjQzIDE0LjUgMi41IDEyLjAzNzYgMi41IDlaTTguNzUgNi43NVY2SDcuMjVWNi43NVY5VjkuNzVIOC43NVY5VjYuNzVaXCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICA+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICApO1xufTtcblxuY29uc3QgU3RlcEZvcndhcmRJY29uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIGRhdGEtdGVzdGlkPVwiZ2Vpc3QtaWNvblwiXG4gICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICBzdHlsZT17eyBjb2xvcjogJ2N1cnJlbnRDb2xvcicgfX1cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTQuMjE5NjkgMTIuNTMwM0w0Ljc1MDAyIDEzLjA2MDdMNS44MTA2OCAxMkw1LjI4MDM1IDExLjQ2OTdMMS44MTA2OCA3Ljk5OTk5TDUuMjgwMzUgNC41MzAzMkw1LjgxMDY4IDMuOTk5OTlMNC43NTAwMiAyLjkzOTMzTDQuMjE5NjkgMy40Njk2NkwwLjM5NjQ3IDcuMjkyODlDMC4wMDU5NDU2MiA3LjY4MzQxIDAuMDA1OTQ1NjIgOC4zMTY1OCAwLjM5NjQ3IDguNzA3MUw0LjIxOTY5IDEyLjUzMDNaTTExLjc4MDQgMTIuNTMwM0wxMS4yNSAxMy4wNjA3TDEwLjE4OTQgMTJMMTAuNzE5NyAxMS40Njk3TDE0LjE4OTQgNy45OTk5OUwxMC43MTk3IDQuNTMwMzJMMTAuMTg5NCAzLjk5OTk5TDExLjI1IDIuOTM5MzNMMTEuNzgwNCAzLjQ2OTY2TDE1LjYwMzYgNy4yOTI4OUMxNS45OTQxIDcuNjgzNDEgMTUuOTk0MSA4LjMxNjU4IDE1LjYwMzYgOC43MDcxTDExLjc4MDQgMTIuNTMwM1pcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG4gICk7XG59O1xuXG5leHBvcnQgeyBXb3JrZmxvd0ljb24sIFdlYmhvb2tJY29uLCBTbGVlcEljb24sIFN0ZXBGb3J3YXJkSWNvbiB9O1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/components/new-trace-viewer/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/components/new-trace-viewer/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAIpC,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAkB5E;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAET;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAa7E"}
|
|
@@ -131,4 +131,4 @@ function valueToSearchString(value) {
|
|
|
131
131
|
return String(value);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbmV3LXRyYWNlLXZpZXdlci9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxpQkFBaUIsR0FBRyxnREFBZ0QsQ0FBQztBQW1CM0UsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFFBQWdCO0lBQ25ELE1BQU0sVUFBVSxHQUEwQixFQUFFLENBQUM7SUFDN0MsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztRQUN6RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsR0FBRztZQUFFLFNBQVM7UUFDbkIsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNkLEdBQUc7WUFDSCxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRTtTQUN2RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsUUFBUTtTQUNsQixPQUFPLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDO1NBQy9CLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1NBQ3ZCLElBQUksRUFBRTtTQUNOLGlCQUFpQixFQUFFLENBQUM7SUFFdkIsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxNQUFjLEVBQ2QsTUFBd0I7SUFFeEIsT0FBTyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBYSxFQUFF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QUM7SUFDL0IsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTcGFuIH0gZnJvbSAnLi4vdHJhY2Utdmlld2VyL3R5cGVzJztcblxuY29uc3QgQVRUUl9GSUxURVJfUkVHRVggPSAvKD86XnxcXHMpKD88cGFpcj4oPzxrZXk+W1xcdy5dKyk6KD88dmFsdWU+XFxTKikpL2c7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbkF0dHJpYnV0ZUZpbHRlciB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFNwYW5TZWFyY2hRdWVyeSB7XG4gIHRleHQ6IHN0cmluZztcbiAgYXR0cmlidXRlczogU3BhbkF0dHJpYnV0ZUZpbHRlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwYW5TZWFyY2hSZXN1bHQge1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgbWF0Y2hlZFNwYW5JZHM6IFNldDxzdHJpbmc+O1xuICBtYXRjaGluZ1NwYW5zOiBTcGFuW107XG4gIHF1ZXJ5OiBQYXJzZWRTcGFuU2VhcmNoUXVlcnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNwYW5TZWFyY2hRdWVyeShyYXdRdWVyeTogc3RyaW5nKTogUGFyc2VkU3BhblNlYXJjaFF1ZXJ5IHtcbiAgY29uc3QgYXR0cmlidXRlczogU3BhbkF0dHJpYnV0ZUZpbHRlcltdID0gW107XG4gIGZvciAoY29uc3QgbWF0Y2ggb2YgcmF3UXVlcnkubWF0Y2hBbGwoQVRUUl9GSUxURVJfUkVHRVgpKSB7XG4gICAgY29uc3Qga2V5ID0gbWF0Y2guZ3JvdXBzPy5rZXk/LnRyaW0oKTtcbiAgICBpZiAoIWtleSkgY29udGludWU7XG4gICAgYXR0cmlidXRlcy5wdXNoKHtcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlOiAobWF0Y2guZ3JvdXBzPy52YWx1ZSA/PyAnJykudG9Mb2NhbGVMb3dlckNhc2UoKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHRleHQgPSByYXdRdWVyeVxuICAgIC5yZXBsYWNlKEFUVFJfRklMVEVSX1JFR0VYLCAnICcpXG4gICAgLnJlcGxhY2UoL1xcc3syLH0vZywgJyAnKVxuICAgIC50cmltKClcbiAgICAudG9Mb2NhbGVMb3dlckNhc2UoKTtcblxuICByZXR1cm4geyB0ZXh0LCBhdHRyaWJ1dGVzIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NwYW5EaW1tZWRCeVNlYXJjaChcbiAgc3BhbklkOiBzdHJpbmcsXG4gIHJlc3VsdDogU3BhblNlYXJjaFJlc3VsdFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiByZXN1bHQuaXNBY3RpdmUgJiYgIXJlc3VsdC5tYXRjaGVkU3Bhbklkcy5oYXMoc3BhbklkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFNwYW5zKHNwYW5zOiBTcGFuW10sIHJhd1F1ZXJ5OiBzdHJpbmcpOiBTcGFuU2VhcmNoUmVzdWx0IHtcbiAgY29uc3QgcXVlcnkgPSBwYXJzZVNwYW5TZWFyY2hRdWVyeShyYXdRdWVyeSk7XG4gIGNvbnN0IGlzQWN0aXZlID0gQm9vbGVhbihxdWVyeS50ZXh0IHx8IHF1ZXJ5LmF0dHJpYnV0ZXMubGVuZ3RoKTtcbiAgY29uc3QgbWF0Y2hpbmdTcGFucyA9IGlzQWN0aXZlXG4gICAgPyBzcGFucy5maWx0ZXIoKHNwYW4pID0+IHNwYW5NYXRjaGVzUXVlcnkoc3BhbiwgcXVlcnkpKVxuICAgIDogc3BhbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBpc0FjdGl2ZSxcbiAgICBtYXRjaGVkU3BhbklkczogbmV3IFNldChtYXRjaGluZ1NwYW5zLm1hcCgoc3BhbikgPT4gc3Bhbi5zcGFuSWQpKSxcbiAgICBtYXRjaGluZ1NwYW5zLFxuICAgIHF1ZXJ5LFxuICB9O1xufVxuXG5mdW5jdGlvbiBzcGFuTWF0Y2hlc1F1ZXJ5KHNwYW46IFNwYW4sIHF1ZXJ5OiBQYXJzZWRTcGFuU2VhcmNoUXVlcnkpOiBib29sZWFuIHtcbiAgaWYgKHF1ZXJ5LnRleHQgJiYgIXNwYW5NYXRjaGVzVGV4dChzcGFuLCBxdWVyeS50ZXh0KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBxdWVyeS5hdHRyaWJ1dGVzLmV2ZXJ5KCh7IGtleSwgdmFsdWUgfSkgPT5cbiAgICBzcGFuTWF0Y2hlc0F0dHJpYnV0ZShzcGFuLCBrZXksIHZhbHVlKVxuICApO1xufVxuXG5mdW5jdGlvbiBzcGFuTWF0Y2hlc1RleHQoc3BhbjogU3BhbiwgdGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBbXG4gICAgc3Bhbi5uYW1lLFxuICAgIHNwYW4uc3BhbklkLFxuICAgIHNwYW4ucmVzb3VyY2UsXG4gICAgc3Bhbi5saWJyYXJ5Lm5hbWUsXG4gICAgc3Bhbi5saWJyYXJ5LnZlcnNpb24sXG4gIF1cbiAgICAuZmlsdGVyKCh2YWx1ZSk6IHZhbHVlIGlzIHN0cmluZyA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKVxuICAgIC5zb21lKCh2YWx1ZSkgPT4gdmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0KSk7XG59XG5cbmZ1bmN0aW9uIHNwYW5NYXRjaGVzQXR0cmlidXRlKFxuICBzcGFuOiBTcGFuLFxuICBrZXk6IHN0cmluZyxcbiAgZXhwZWN0ZWRWYWx1ZTogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IGdldFNlYXJjaFZhbHVlcyhzcGFuLCBrZXkpO1xuICBpZiAoIWNhbmRpZGF0ZXMubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKCFleHBlY3RlZFZhbHVlKSB7XG4gICAgcmV0dXJuIGNhbmRpZGF0ZXMuc29tZSgodmFsdWUpID0+IHZhbHVlICE9IG51bGwpO1xuICB9XG5cbiAgcmV0dXJuIGNhbmRpZGF0ZXMuc29tZSgodmFsdWUpID0+XG4gICAgdmFsdWVUb1NlYXJjaFN0cmluZyh2YWx1ZSkudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhleHBlY3RlZFZhbHVlKVxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRTZWFyY2hWYWx1ZXMoc3BhbjogU3Bhbiwga2V5OiBzdHJpbmcpOiB1bmtub3duW10ge1xuICBjb25zdCBjYW5kaWRhdGVzOiB1bmtub3duW10gPSBbXTtcbiAgY29uc3Qgbm9ybWFsaXplZEtleSA9IGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXG4gIHN3aXRjaCAobm9ybWFsaXplZEtleSkge1xuICAgIGNhc2UgJ2lkJzpcbiAgICBjYXNlICdzcGFuaWQnOlxuICAgIGNhc2UgJ3NwYW4uaWQnOlxuICAgICAgY2FuZGlkYXRlcy5wdXNoKHNwYW4uc3BhbklkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ25hbWUnOlxuICAgICAgY2FuZGlkYXRlcy5wdXNoKHNwYW4ubmFtZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyZXNvdXJjZSc6XG4gICAgICBjYW5kaWRhdGVzLnB1c2goc3Bhbi5yZXNvdXJjZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsaWJyYXJ5JzpcbiAgICBjYXNlICdsaWJyYXJ5Lm5hbWUnOlxuICAgICAgY2FuZGlkYXRlcy5wdXNoKHNwYW4ubGlicmFyeS5uYW1lKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xpYnJhcnkudmVyc2lvbic6XG4gICAgICBjYW5kaWRhdGVzLnB1c2goc3Bhbi5saWJyYXJ5LnZlcnNpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhdHVzJzpcbiAgICBjYXNlICdzdGF0dXMuY29kZSc6XG4gICAgICBjYW5kaWRhdGVzLnB1c2goc3Bhbi5zdGF0dXMuY29kZSk7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGNhbmRpZGF0ZXMucHVzaChnZXRPd25Qcm9wZXJ0eShzcGFuLmF0dHJpYnV0ZXMsIGtleSkpO1xuICBjYW5kaWRhdGVzLnB1c2goZ2V0UGF0aFZhbHVlKHNwYW4uYXR0cmlidXRlcywga2V5KSk7XG5cbiAgaWYgKCFub3JtYWxpemVkS2V5LnN0YXJ0c1dpdGgoJ2RhdGEuJykpIHtcbiAgICBjYW5kaWRhdGVzLnB1c2goZ2V0UGF0aFZhbHVlKHNwYW4uYXR0cmlidXRlcy5kYXRhLCBrZXkpKTtcbiAgfVxuXG4gIHJldHVybiBjYW5kaWRhdGVzLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eShzb3VyY2U6IHVua25vd24sIGtleTogc3RyaW5nKTogdW5rbm93biB7XG4gIGlmICghc291cmNlIHx8IHR5cGVvZiBzb3VyY2UgIT09ICdvYmplY3QnKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAoIU9iamVjdC5oYXNPd24oc291cmNlLCBrZXkpKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gKHNvdXJjZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba2V5XTtcbn1cblxuZnVuY3Rpb24gZ2V0UGF0aFZhbHVlKHNvdXJjZTogdW5rbm93biwgcGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIGlmICghc291cmNlIHx8IHR5cGVvZiBzb3VyY2UgIT09ICdvYmplY3QnKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGxldCBjdXJyZW50OiB1bmtub3duID0gc291cmNlO1xuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLicpKSB7XG4gICAgaWYgKCFzZWdtZW50KSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGN1cnJlbnQgPSBnZXRPd25Qcm9wZXJ0eShjdXJyZW50LCBzZWdtZW50KTtcbiAgICBpZiAoY3VycmVudCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGN1cnJlbnQ7XG59XG5cbmZ1bmN0aW9uIHZhbHVlVG9TZWFyY2hTdHJpbmcodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcbiAgaWYgKFxuICAgIHZhbHVlID09IG51bGwgfHxcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHxcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnXG4gICkge1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxufVxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbmV3LXRyYWNlLXZpZXdlci9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxpQkFBaUIsR0FBRyxnREFBZ0QsQ0FBQztBQW1CM0UsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFFBQWdCO0lBQ25ELE1BQU0sVUFBVSxHQUEwQixFQUFFLENBQUM7SUFDN0MsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztRQUN6RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsR0FBRztZQUFFLFNBQVM7UUFDbkIsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNkLEdBQUc7WUFDSCxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRTtTQUN2RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsUUFBUTtTQUNsQixPQUFPLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDO1NBQy9CLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1NBQ3ZCLElBQUksRUFBRTtTQUNOLGlCQUFpQixFQUFFLENBQUM7SUFFdkIsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxNQUFjLEVBQ2QsTUFBd0I7SUFFeEIsT0FBTyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBYSxFQUFF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QUM7SUFDL0IsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTcGFuIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEFUVFJfRklMVEVSX1JFR0VYID0gLyg/Ol58XFxzKSg/PHBhaXI+KD88a2V5PltcXHcuXSspOig/PHZhbHVlPlxcUyopKS9nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwYW5BdHRyaWJ1dGVGaWx0ZXIge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRTcGFuU2VhcmNoUXVlcnkge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGF0dHJpYnV0ZXM6IFNwYW5BdHRyaWJ1dGVGaWx0ZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcGFuU2VhcmNoUmVzdWx0IHtcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG4gIG1hdGNoZWRTcGFuSWRzOiBTZXQ8c3RyaW5nPjtcbiAgbWF0Y2hpbmdTcGFuczogU3BhbltdO1xuICBxdWVyeTogUGFyc2VkU3BhblNlYXJjaFF1ZXJ5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTcGFuU2VhcmNoUXVlcnkocmF3UXVlcnk6IHN0cmluZyk6IFBhcnNlZFNwYW5TZWFyY2hRdWVyeSB7XG4gIGNvbnN0IGF0dHJpYnV0ZXM6IFNwYW5BdHRyaWJ1dGVGaWx0ZXJbXSA9IFtdO1xuICBmb3IgKGNvbnN0IG1hdGNoIG9mIHJhd1F1ZXJ5Lm1hdGNoQWxsKEFUVFJfRklMVEVSX1JFR0VYKSkge1xuICAgIGNvbnN0IGtleSA9IG1hdGNoLmdyb3Vwcz8ua2V5Py50cmltKCk7XG4gICAgaWYgKCFrZXkpIGNvbnRpbnVlO1xuICAgIGF0dHJpYnV0ZXMucHVzaCh7XG4gICAgICBrZXksXG4gICAgICB2YWx1ZTogKG1hdGNoLmdyb3Vwcz8udmFsdWUgPz8gJycpLnRvTG9jYWxlTG93ZXJDYXNlKCksXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCB0ZXh0ID0gcmF3UXVlcnlcbiAgICAucmVwbGFjZShBVFRSX0ZJTFRFUl9SRUdFWCwgJyAnKVxuICAgIC5yZXBsYWNlKC9cXHN7Mix9L2csICcgJylcbiAgICAudHJpbSgpXG4gICAgLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG5cbiAgcmV0dXJuIHsgdGV4dCwgYXR0cmlidXRlcyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTcGFuRGltbWVkQnlTZWFyY2goXG4gIHNwYW5JZDogc3RyaW5nLFxuICByZXN1bHQ6IFNwYW5TZWFyY2hSZXN1bHRcbik6IGJvb2xlYW4ge1xuICByZXR1cm4gcmVzdWx0LmlzQWN0aXZlICYmICFyZXN1bHQubWF0Y2hlZFNwYW5JZHMuaGFzKHNwYW5JZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hTcGFucyhzcGFuczogU3BhbltdLCByYXdRdWVyeTogc3RyaW5nKTogU3BhblNlYXJjaFJlc3VsdCB7XG4gIGNvbnN0IHF1ZXJ5ID0gcGFyc2VTcGFuU2VhcmNoUXVlcnkocmF3UXVlcnkpO1xuICBjb25zdCBpc0FjdGl2ZSA9IEJvb2xlYW4ocXVlcnkudGV4dCB8fCBxdWVyeS5hdHRyaWJ1dGVzLmxlbmd0aCk7XG4gIGNvbnN0IG1hdGNoaW5nU3BhbnMgPSBpc0FjdGl2ZVxuICAgID8gc3BhbnMuZmlsdGVyKChzcGFuKSA9PiBzcGFuTWF0Y2hlc1F1ZXJ5KHNwYW4sIHF1ZXJ5KSlcbiAgICA6IHNwYW5zO1xuXG4gIHJldHVybiB7XG4gICAgaXNBY3RpdmUsXG4gICAgbWF0Y2hlZFNwYW5JZHM6IG5ldyBTZXQobWF0Y2hpbmdTcGFucy5tYXAoKHNwYW4pID0+IHNwYW4uc3BhbklkKSksXG4gICAgbWF0Y2hpbmdTcGFucyxcbiAgICBxdWVyeSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3Bhbk1hdGNoZXNRdWVyeShzcGFuOiBTcGFuLCBxdWVyeTogUGFyc2VkU3BhblNlYXJjaFF1ZXJ5KTogYm9vbGVhbiB7XG4gIGlmIChxdWVyeS50ZXh0ICYmICFzcGFuTWF0Y2hlc1RleHQoc3BhbiwgcXVlcnkudGV4dCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gcXVlcnkuYXR0cmlidXRlcy5ldmVyeSgoeyBrZXksIHZhbHVlIH0pID0+XG4gICAgc3Bhbk1hdGNoZXNBdHRyaWJ1dGUoc3Bhbiwga2V5LCB2YWx1ZSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gc3Bhbk1hdGNoZXNUZXh0KHNwYW46IFNwYW4sIHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gW1xuICAgIHNwYW4ubmFtZSxcbiAgICBzcGFuLnNwYW5JZCxcbiAgICBzcGFuLnJlc291cmNlLFxuICAgIHNwYW4ubGlicmFyeS5uYW1lLFxuICAgIHNwYW4ubGlicmFyeS52ZXJzaW9uLFxuICBdXG4gICAgLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBzdHJpbmcgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJylcbiAgICAuc29tZSgodmFsdWUpID0+IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXModGV4dCkpO1xufVxuXG5mdW5jdGlvbiBzcGFuTWF0Y2hlc0F0dHJpYnV0ZShcbiAgc3BhbjogU3BhbixcbiAga2V5OiBzdHJpbmcsXG4gIGV4cGVjdGVkVmFsdWU6IHN0cmluZ1xuKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBnZXRTZWFyY2hWYWx1ZXMoc3Bhbiwga2V5KTtcbiAgaWYgKCFjYW5kaWRhdGVzLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICghZXhwZWN0ZWRWYWx1ZSkge1xuICAgIHJldHVybiBjYW5kaWRhdGVzLnNvbWUoKHZhbHVlKSA9PiB2YWx1ZSAhPSBudWxsKTtcbiAgfVxuXG4gIHJldHVybiBjYW5kaWRhdGVzLnNvbWUoKHZhbHVlKSA9PlxuICAgIHZhbHVlVG9TZWFyY2hTdHJpbmcodmFsdWUpLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZXhwZWN0ZWRWYWx1ZSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0U2VhcmNoVmFsdWVzKHNwYW46IFNwYW4sIGtleTogc3RyaW5nKTogdW5rbm93bltdIHtcbiAgY29uc3QgY2FuZGlkYXRlczogdW5rbm93bltdID0gW107XG4gIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKTtcblxuICBzd2l0Y2ggKG5vcm1hbGl6ZWRLZXkpIHtcbiAgICBjYXNlICdpZCc6XG4gICAgY2FzZSAnc3BhbmlkJzpcbiAgICBjYXNlICdzcGFuLmlkJzpcbiAgICAgIGNhbmRpZGF0ZXMucHVzaChzcGFuLnNwYW5JZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICduYW1lJzpcbiAgICAgIGNhbmRpZGF0ZXMucHVzaChzcGFuLm5hbWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmVzb3VyY2UnOlxuICAgICAgY2FuZGlkYXRlcy5wdXNoKHNwYW4ucmVzb3VyY2UpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbGlicmFyeSc6XG4gICAgY2FzZSAnbGlicmFyeS5uYW1lJzpcbiAgICAgIGNhbmRpZGF0ZXMucHVzaChzcGFuLmxpYnJhcnkubmFtZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsaWJyYXJ5LnZlcnNpb24nOlxuICAgICAgY2FuZGlkYXRlcy5wdXNoKHNwYW4ubGlicmFyeS52ZXJzaW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3N0YXR1cyc6XG4gICAgY2FzZSAnc3RhdHVzLmNvZGUnOlxuICAgICAgY2FuZGlkYXRlcy5wdXNoKHNwYW4uc3RhdHVzLmNvZGUpO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjYW5kaWRhdGVzLnB1c2goZ2V0T3duUHJvcGVydHkoc3Bhbi5hdHRyaWJ1dGVzLCBrZXkpKTtcbiAgY2FuZGlkYXRlcy5wdXNoKGdldFBhdGhWYWx1ZShzcGFuLmF0dHJpYnV0ZXMsIGtleSkpO1xuXG4gIGlmICghbm9ybWFsaXplZEtleS5zdGFydHNXaXRoKCdkYXRhLicpKSB7XG4gICAgY2FuZGlkYXRlcy5wdXNoKGdldFBhdGhWYWx1ZShzcGFuLmF0dHJpYnV0ZXMuZGF0YSwga2V5KSk7XG4gIH1cblxuICByZXR1cm4gY2FuZGlkYXRlcy5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKTtcbn1cblxuZnVuY3Rpb24gZ2V0T3duUHJvcGVydHkoc291cmNlOiB1bmtub3duLCBrZXk6IHN0cmluZyk6IHVua25vd24ge1xuICBpZiAoIXNvdXJjZSB8fCB0eXBlb2Ygc291cmNlICE9PSAnb2JqZWN0JykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgaWYgKCFPYmplY3QuaGFzT3duKHNvdXJjZSwga2V5KSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIChzb3VyY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV07XG59XG5cbmZ1bmN0aW9uIGdldFBhdGhWYWx1ZShzb3VyY2U6IHVua25vd24sIHBhdGg6IHN0cmluZyk6IHVua25vd24ge1xuICBpZiAoIXNvdXJjZSB8fCB0eXBlb2Ygc291cmNlICE9PSAnb2JqZWN0JykgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBsZXQgY3VycmVudDogdW5rbm93biA9IHNvdXJjZTtcbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIHBhdGguc3BsaXQoJy4nKSkge1xuICAgIGlmICghc2VnbWVudCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjdXJyZW50ID0gZ2V0T3duUHJvcGVydHkoY3VycmVudCwgc2VnbWVudCk7XG4gICAgaWYgKGN1cnJlbnQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBjdXJyZW50O1xufVxuXG5mdW5jdGlvbiB2YWx1ZVRvU2VhcmNoU3RyaW5nKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIHZhbHVlLnRvSVNPU3RyaW5nKCk7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XG4gIGlmIChcbiAgICB2YWx1ZSA9PSBudWxsIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnYmlnaW50J1xuICApIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TraceWithMeta } from './types';
|
|
3
3
|
interface NewTraceViewerProps {
|
|
4
|
-
trace:
|
|
4
|
+
trace: TraceWithMeta;
|
|
5
5
|
onLoadMore?: () => void | Promise<void>;
|
|
6
6
|
hasMore?: boolean;
|
|
7
7
|
isLoadingMore?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-viewer.d.ts","sourceRoot":"","sources":["../../../src/components/new-trace-viewer/trace-viewer.tsx"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"trace-viewer.d.ts","sourceRoot":"","sources":["../../../src/components/new-trace-viewer/trace-viewer.tsx"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAsB7C,UAAU,mBAAmB;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA6GD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,OAAO,EACP,aAAa,GACd,EAAE,mBAAmB,GAAG,SAAS,CAajC"}
|