From 6f102ccad035e35a5f6514c47558bc184c21deb5 Mon Sep 17 00:00:00 2001 From: Andrej Ocenas Date: Tue, 11 Jul 2023 14:58:43 +0200 Subject: [PATCH] Flamegraph: Remove feature toggle for sandwich view and color schemes (#71305) --- .betterer.results | 3 - .../feature-toggles/index.md | 1 - .../src/types/featureToggles.gen.ts | 1 - pkg/services/featuremgmt/registry.go | 7 - pkg/services/featuremgmt/toggles_gen.csv | 1 - pkg/services/featuremgmt/toggles_gen.go | 4 - .../panel/flamegraph/FlameGraphPanel.tsx | 8 +- .../components/FlameGraph/FlameGraph.test.tsx | 67 +- .../components/FlameGraph/FlameGraph.tsx | 325 +- .../FlameGraph/FlameGraphContextMenu.tsx | 15 +- .../FlameGraph/FlameGraphMetadata.test.ts | 85 - .../FlameGraph/FlameGraphMetadata.test.tsx | 0 .../FlameGraph/FlameGraphMetadata.tsx | 118 +- .../FlameGraph/FlameGraphTooltip.test.tsx | 30 +- .../FlameGraph/FlameGraphTooltip.tsx | 8 +- .../__snapshots__/FlameGraph.test.tsx.snap | 17 + .../components/FlameGraph/colors.test.ts | 0 .../components/FlameGraph/colors.ts | 0 .../FlameGraph/dataTransform.test.ts | 73 +- .../components/FlameGraph/dataTransform.ts | 104 +- .../components/FlameGraph/murmur3.ts | 0 .../components/FlameGraph/rendering.test.ts | 14 +- .../components/FlameGraph/rendering.ts | 179 +- .../components/FlameGraph/testHelpers.test.ts | 0 .../components/FlameGraph/testHelpers.ts | 0 .../FlameGraph/treeTransforms.test.ts | 0 .../components/FlameGraph/treeTransforms.ts | 0 .../components/FlameGraphContainer.tsx | 60 +- .../components/FlameGraphHeader.test.tsx | 71 +- .../components/FlameGraphHeader.tsx | 154 +- .../components/FlameGraphTopWrapper.tsx | 8 +- .../FlameGraphTopTableContainer.test.tsx | 12 +- .../TopTable/FlameGraphTopTableContainer.tsx | 8 +- .../panel/flamegraph/components/types.ts | 18 +- .../components/FlameGraph/FlameGraph.test.tsx | 98 - .../components/FlameGraph/FlameGraph.tsx | 324 - .../FlameGraph/FlameGraphContextMenu.tsx | 59 - .../FlameGraph/FlameGraphMetadata.tsx | 113 - .../FlameGraph/FlameGraphTooltip.test.tsx | 114 - .../FlameGraph/FlameGraphTooltip.tsx | 118 - .../__snapshots__/FlameGraph.test.tsx.snap | 37730 ---------------- .../FlameGraph/dataTransform.test.ts | 71 - .../components/FlameGraph/dataTransform.ts | 201 - .../components/FlameGraph/rendering.test.ts | 87 - .../components/FlameGraph/rendering.ts | 280 - .../FlameGraph/testData/dataFlamebearer.ts | 572 - .../FlameGraph/testData/dataNestedSet.ts | 2466 - .../components/FlameGraphContainer.test.tsx | 91 - .../components/FlameGraphContainer.tsx | 160 - .../components/FlameGraphHeader.test.tsx | 75 - .../components/FlameGraphHeader.tsx | 270 - .../components/FlameGraphTopWrapper.tsx | 126 - .../FlameGraphTopTableContainer.test.tsx | 47 - .../TopTable/FlameGraphTopTableContainer.tsx | 140 - .../flamegraphV2/components/types.ts | 50 - .../flamegraph/flamegraphV2/constants.ts | 8 - .../flamegraphV2/img/icn-flamegraph.svg | 1 - .../plugins/panel/flamegraph/suggestions.ts | 6 +- 58 files changed, 871 insertions(+), 43727 deletions(-) delete mode 100644 public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.test.ts rename public/app/plugins/panel/flamegraph/{flamegraphV2 => }/components/FlameGraph/FlameGraphMetadata.test.tsx (100%) rename public/app/plugins/panel/flamegraph/{flamegraphV2 => }/components/FlameGraph/colors.test.ts (100%) rename public/app/plugins/panel/flamegraph/{flamegraphV2 => }/components/FlameGraph/colors.ts (100%) rename public/app/plugins/panel/flamegraph/{flamegraphV2 => }/components/FlameGraph/murmur3.ts (100%) rename public/app/plugins/panel/flamegraph/{flamegraphV2 => }/components/FlameGraph/testHelpers.test.ts (100%) rename public/app/plugins/panel/flamegraph/{flamegraphV2 => }/components/FlameGraph/testHelpers.ts (100%) rename public/app/plugins/panel/flamegraph/{flamegraphV2 => }/components/FlameGraph/treeTransforms.test.ts (100%) rename public/app/plugins/panel/flamegraph/{flamegraphV2 => }/components/FlameGraph/treeTransforms.ts (100%) delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraph.test.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraph.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphContextMenu.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphMetadata.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphTooltip.test.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphTooltip.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/dataTransform.test.ts delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/dataTransform.ts delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/rendering.test.ts delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/rendering.ts delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testData/dataFlamebearer.ts delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testData/dataNestedSet.ts delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphContainer.test.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphContainer.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphHeader.test.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphHeader.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphTopWrapper.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/TopTable/FlameGraphTopTableContainer.test.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/TopTable/FlameGraphTopTableContainer.tsx delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/components/types.ts delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/constants.ts delete mode 100644 public/app/plugins/panel/flamegraph/flamegraphV2/img/icn-flamegraph.svg diff --git a/.betterer.results b/.betterer.results index 6169f6b2cb3..15af1449223 100644 --- a/.betterer.results +++ b/.betterer.results @@ -4820,9 +4820,6 @@ exports[`better eslint`] = { "public/app/plugins/panel/flamegraph/components/FlameGraphTopWrapper.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], - "public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphTopWrapper.tsx:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], "public/app/plugins/panel/gauge/GaugeMigrations.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], diff --git a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md index 0bafd2d60cd..0551461f9b8 100644 --- a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md +++ b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md @@ -119,7 +119,6 @@ Experimental features might be changed or removed without prior notice. | `recordedQueriesMulti` | Enables writing multiple items from a single query within Recorded Queries | | `pluginsDynamicAngularDetectionPatterns` | Enables fetching Angular detection patterns for plugins from GCOM and fallback to hardcoded ones | | `alertingLokiRangeToInstant` | Rewrites eligible loki range queries to instant queries | -| `flameGraphV2` | New version of flame graph with new features | | `elasticToggleableFilters` | Enable support to toggle filters off from the query through the Logs Details component | | `vizAndWidgetSplit` | Split panels between vizualizations and widgets | | `prometheusIncrementalQueryInstrumentation` | Adds RudderStack events to incremental queries | diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 5f10091cd77..655dd05e5f1 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -106,7 +106,6 @@ export interface FeatureToggles { recordedQueriesMulti?: boolean; pluginsDynamicAngularDetectionPatterns?: boolean; alertingLokiRangeToInstant?: boolean; - flameGraphV2?: boolean; elasticToggleableFilters?: boolean; vizAndWidgetSplit?: boolean; prometheusIncrementalQueryInstrumentation?: boolean; diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index 75146fa7ec6..c9284ffcbc4 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -600,13 +600,6 @@ var ( FrontendOnly: false, Owner: grafanaAlertingSquad, }, - { - Name: "flameGraphV2", - Description: "New version of flame graph with new features", - FrontendOnly: true, - Stage: FeatureStageExperimental, - Owner: grafanaObservabilityTracesAndProfilingSquad, - }, { Name: "elasticToggleableFilters", Description: "Enable support to toggle filters off from the query through the Logs Details component", diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv index 57846cc7a72..695e1f5e3bf 100644 --- a/pkg/services/featuremgmt/toggles_gen.csv +++ b/pkg/services/featuremgmt/toggles_gen.csv @@ -87,7 +87,6 @@ exploreScrollableLogsContainer,experimental,@grafana/observability-logs,false,fa recordedQueriesMulti,experimental,@grafana/observability-metrics,false,false,false,false pluginsDynamicAngularDetectionPatterns,experimental,@grafana/plugins-platform-backend,false,false,false,false alertingLokiRangeToInstant,experimental,@grafana/alerting-squad,false,false,false,false -flameGraphV2,experimental,@grafana/observability-traces-and-profiling,false,false,false,true elasticToggleableFilters,experimental,@grafana/observability-logs,false,false,false,true vizAndWidgetSplit,experimental,@grafana/dashboards-squad,false,false,false,true prometheusIncrementalQueryInstrumentation,experimental,@grafana/observability-metrics,false,false,false,true diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index 7e22eadc4ab..8ba3712a9f4 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -359,10 +359,6 @@ const ( // Rewrites eligible loki range queries to instant queries FlagAlertingLokiRangeToInstant = "alertingLokiRangeToInstant" - // FlagFlameGraphV2 - // New version of flame graph with new features - FlagFlameGraphV2 = "flameGraphV2" - // FlagElasticToggleableFilters // Enable support to toggle filters off from the query through the Logs Details component FlagElasticToggleableFilters = "elasticToggleableFilters" diff --git a/public/app/plugins/panel/flamegraph/FlameGraphPanel.tsx b/public/app/plugins/panel/flamegraph/FlameGraphPanel.tsx index b3452d19565..5f3212f6e69 100644 --- a/public/app/plugins/panel/flamegraph/FlameGraphPanel.tsx +++ b/public/app/plugins/panel/flamegraph/FlameGraphPanel.tsx @@ -1,15 +1,9 @@ import React from 'react'; import { CoreApp, PanelProps } from '@grafana/data'; -import { config } from '@grafana/runtime'; import FlameGraphContainer from './components/FlameGraphContainer'; -import FlameGraphContainerV2 from './flamegraphV2/components/FlameGraphContainer'; export const FlameGraphPanel = (props: PanelProps) => { - return config.featureToggles.flameGraphV2 ? ( - - ) : ( - - ); + return ; }; diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraph.test.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraph.test.tsx index 49425085941..fc152e96b00 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraph.test.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraph.test.tsx @@ -1,12 +1,12 @@ import { fireEvent, render, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import React from 'react'; import { createDataFrame } from '@grafana/data'; -import { SelectedView } from '../types'; +import { ColorScheme } from '../types'; import FlameGraph from './FlameGraph'; -import { FlameGraphDataContainer, nestedSetToLevels } from './dataTransform'; +import { FlameGraphDataContainer } from './dataTransform'; import { data } from './testData/dataNestedSet'; import 'jest-canvas-mock'; @@ -23,42 +23,52 @@ jest.mock('react-use', () => { }); describe('FlameGraph', () => { - const FlameGraphWithProps = () => { - const [focusedItemIndex, setFocusedItemIndex] = useState(); - const [rangeMin, setRangeMin] = useState(0); - const [rangeMax, setRangeMax] = useState(1); - const [search] = useState(''); - const [selectedView, _] = useState(SelectedView.Both); - + function setup() { const flameGraphData = createDataFrame(data); const container = new FlameGraphDataContainer(flameGraphData); - const levels = nestedSetToLevels(container); - return ( + const setRangeMin = jest.fn(); + const setRangeMax = jest.fn(); + const onItemFocused = jest.fn(); + const onSandwich = jest.fn(); + const onFocusPillClick = jest.fn(); + const onSandwichPillClick = jest.fn(); + + const renderResult = render( { - setFocusedItemIndex(itemIndex); - }} - focusedItemIndex={focusedItemIndex} + onItemFocused={onItemFocused} textAlign={'left'} + onSandwich={onSandwich} + onFocusPillClick={onFocusPillClick} + onSandwichPillClick={onSandwichPillClick} + colorScheme={ColorScheme.ValueBased} /> ); - }; + return { + renderResult, + mocks: { + setRangeMax, + setRangeMin, + onItemFocused, + onSandwich, + onFocusPillClick, + onSandwichPillClick, + }, + }; + } it('should render without error', async () => { - expect(() => render()).not.toThrow(); + setup(); }); it('should render correctly', async () => { - render(); + setup(); const canvas = screen.getByTestId('flameGraph') as HTMLCanvasElement; const ctx = canvas!.getContext('2d'); @@ -67,20 +77,21 @@ describe('FlameGraph', () => { }); it('should render metadata', async () => { - render(); - expect(screen.getByText('16.5 Bil (100%) of 16,460,000,000 total samples (Count)')).toBeDefined(); + setup(); + expect(screen.getByText('16.5 Bil | 16.5 Bil samples (Count)')).toBeDefined(); }); it('should render context menu', async () => { - const event = new MouseEvent('click'); + const event = new MouseEvent('click', { bubbles: true }); Object.defineProperty(event, 'offsetX', { get: () => 10 }); Object.defineProperty(event, 'offsetY', { get: () => 10 }); Object.defineProperty(HTMLCanvasElement.prototype, 'clientWidth', { configurable: true, value: 500 }); - const screen = render(); + setup(); const canvas = screen.getByTestId('flameGraph') as HTMLCanvasElement; expect(canvas).toBeInTheDocument(); expect(screen.queryByTestId('contextMenu')).not.toBeInTheDocument(); + fireEvent(canvas, event); expect(screen.getByTestId('contextMenu')).toBeInTheDocument(); }); diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraph.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraph.tsx index 736c1576b97..56f928a2919 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraph.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraph.tsx @@ -17,51 +17,69 @@ // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF // THIS SOFTWARE. import { css } from '@emotion/css'; -import uFuzzy from '@leeoniya/ufuzzy'; -import React, { useEffect, useMemo, useRef, useState } from 'react'; +import React, { MouseEvent as ReactMouseEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { useMeasure } from 'react-use'; -import { useStyles2 } from '@grafana/ui'; +import { Icon, useStyles2 } from '@grafana/ui'; import { PIXELS_PER_LEVEL } from '../../constants'; -import { SelectedView, ClickedItemData, TextAlign } from '../types'; +import { ClickedItemData, ColorScheme, TextAlign } from '../types'; import FlameGraphContextMenu from './FlameGraphContextMenu'; import FlameGraphMetadata from './FlameGraphMetadata'; import FlameGraphTooltip from './FlameGraphTooltip'; import { FlameGraphDataContainer, LevelItem } from './dataTransform'; -import { getBarX, getRectDimensionsForLevel, renderRect } from './rendering'; +import { getBarX, useFlameRender } from './rendering'; type Props = { data: FlameGraphDataContainer; - levels: LevelItem[][]; rangeMin: number; rangeMax: number; search: string; setRangeMin: (range: number) => void; setRangeMax: (range: number) => void; - selectedView: SelectedView; style?: React.CSSProperties; - onItemFocused: (itemIndex: number) => void; - focusedItemIndex?: number; + onItemFocused: (data: ClickedItemData) => void; + focusedItemData?: ClickedItemData; textAlign: TextAlign; + sandwichItem?: string; + onSandwich: (label: string) => void; + onFocusPillClick: () => void; + onSandwichPillClick: () => void; + colorScheme: ColorScheme; }; const FlameGraph = ({ data, - levels, rangeMin, rangeMax, search, setRangeMin, setRangeMax, - selectedView, onItemFocused, - focusedItemIndex, + focusedItemData, textAlign, + onSandwich, + sandwichItem, + onFocusPillClick, + onSandwichPillClick, + colorScheme, }: Props) => { const styles = useStyles2(getStyles); - const totalTicks = data.getValue(0); + + const [levels, totalTicks, callersCount] = useMemo(() => { + let levels = data.getLevels(); + let totalTicks = levels.length ? levels[0][0].value : 0; + let callersCount = 0; + + if (sandwichItem) { + const [callers, callees] = data.getSandwichLevels(sandwichItem); + levels = [...callers, [], ...callees]; + totalTicks = callees.length ? callees[0][0].value : 0; + callersCount = callers.length; + } + return [levels, totalTicks, callersCount]; + }, [data, sandwichItem]); const [sizeRef, { width: wrapperWidth }] = useMeasure(); const graphRef = useRef(null); @@ -70,148 +88,99 @@ const FlameGraph = ({ const [clickedItemData, setClickedItemData] = useState(); - const [ufuzzy] = useState(() => { - return new uFuzzy(); - }); + useFlameRender( + graphRef, + data, + levels, + wrapperWidth, + rangeMin, + rangeMax, + search, + textAlign, + totalTicks, + colorScheme, + focusedItemData + ); - const foundLabels = useMemo(() => { - const foundLabels = new Set(); + const onGraphClick = useCallback( + (e: ReactMouseEvent) => { + setTooltipItem(undefined); + const pixelsPerTick = graphRef.current!.clientWidth / totalTicks / (rangeMax - rangeMin); + const { levelIndex, barIndex } = convertPixelCoordinatesToBarCoordinates( + { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY }, + levels, + pixelsPerTick, + totalTicks, + rangeMin + ); - if (search) { - let idxs = ufuzzy.filter(data.getUniqueLabels(), search); - - if (idxs) { - for (let idx of idxs) { - foundLabels.add(data.getUniqueLabels()[idx]); - } + // if clicking on a block in the canvas + if (barIndex !== -1 && !isNaN(levelIndex) && !isNaN(barIndex)) { + const item = levels[levelIndex][barIndex]; + setClickedItemData({ + posY: e.clientY, + posX: e.clientX, + item, + level: levelIndex, + label: data.getLabel(item.itemIndexes[0]), + }); + } else { + // if clicking on the canvas but there is no block beneath the cursor + setClickedItemData(undefined); } - } + }, + [data, rangeMin, rangeMax, totalTicks, levels] + ); - return foundLabels; - }, [ufuzzy, search, data]); - - useEffect(() => { - if (!levels.length) { - return; - } - const pixelsPerTick = (wrapperWidth * window.devicePixelRatio) / totalTicks / (rangeMax - rangeMin); - const ctx = graphRef.current?.getContext('2d')!; - const graph = graphRef.current!; - - const height = PIXELS_PER_LEVEL * levels.length; - graph.width = Math.round(wrapperWidth * window.devicePixelRatio); - graph.height = Math.round(height * window.devicePixelRatio); - graph.style.width = `${wrapperWidth}px`; - graph.style.height = `${height}px`; - - ctx.textBaseline = 'middle'; - ctx.font = 12 * window.devicePixelRatio + 'px monospace'; - ctx.strokeStyle = 'white'; - - for (let levelIndex = 0; levelIndex < levels.length; levelIndex++) { - const level = levels[levelIndex]; - // Get all the dimensions of the rectangles for the level. We do this by level instead of per rectangle, because - // sometimes we collapse multiple bars into single rect. - const dimensions = getRectDimensionsForLevel(data, level, levelIndex, totalTicks, rangeMin, pixelsPerTick); - for (const rect of dimensions) { - const focusedLevel = focusedItemIndex ? data.getLevel(focusedItemIndex) : 0; - // Render each rectangle based on the computed dimensions - renderRect(ctx, rect, totalTicks, rangeMin, rangeMax, search, levelIndex, focusedLevel, foundLabels, textAlign); - } - } - }, [data, levels, wrapperWidth, totalTicks, rangeMin, rangeMax, search, focusedItemIndex, foundLabels, textAlign]); - - useEffect(() => { - if (graphRef.current) { - graphRef.current.onclick = (e) => { + const onGraphMouseMove = useCallback( + (e: ReactMouseEvent) => { + if (tooltipRef.current && clickedItemData === undefined) { setTooltipItem(undefined); const pixelsPerTick = graphRef.current!.clientWidth / totalTicks / (rangeMax - rangeMin); const { levelIndex, barIndex } = convertPixelCoordinatesToBarCoordinates( - data, - e, - pixelsPerTick, + { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY }, levels, + pixelsPerTick, totalTicks, rangeMin ); - // if clicking on a block in the canvas if (barIndex !== -1 && !isNaN(levelIndex) && !isNaN(barIndex)) { - const item = levels[levelIndex][barIndex]; - setClickedItemData({ - posY: e.clientY, - posX: e.clientX, - itemIndex: item.itemIndex, - label: data.getLabel(item.itemIndex), - start: item.start, - }); - } else { - // if clicking on the canvas but there is no block beneath the cursor - setClickedItemData(undefined); - } - }; - - graphRef.current!.onmousemove = (e) => { - if (tooltipRef.current && clickedItemData === undefined) { - setTooltipItem(undefined); - const pixelsPerTick = graphRef.current!.clientWidth / totalTicks / (rangeMax - rangeMin); - const { levelIndex, barIndex } = convertPixelCoordinatesToBarCoordinates( - data, - e, - pixelsPerTick, - levels, - totalTicks, - rangeMin - ); - - if (barIndex !== -1 && !isNaN(levelIndex) && !isNaN(barIndex)) { - // tooltip has a set number of lines of text so 200 should be good enough (with some buffer) without going - // into measuring rendered sizes - if (e.clientY < document.documentElement.clientHeight - 200) { - tooltipRef.current.style.top = e.clientY + 'px'; - tooltipRef.current.style.bottom = 'auto'; - } else { - tooltipRef.current.style.bottom = document.documentElement.clientHeight - e.clientY + 'px'; - tooltipRef.current.style.top = 'auto'; - } - - // 400 is max width of the tooltip - if (e.clientX < document.documentElement.clientWidth - 400) { - tooltipRef.current.style.left = e.clientX + 15 + 'px'; - tooltipRef.current.style.right = 'auto'; - } else { - tooltipRef.current.style.right = document.documentElement.clientWidth - e.clientX + 15 + 'px'; - tooltipRef.current.style.left = 'auto'; - } - - setTooltipItem(levels[levelIndex][barIndex]); + // tooltip has a set number of lines of text so 200 should be good enough (with some buffer) without going + // into measuring rendered sizes + if (e.clientY < document.documentElement.clientHeight - 200) { + tooltipRef.current.style.top = e.clientY + 'px'; + tooltipRef.current.style.bottom = 'auto'; + } else { + tooltipRef.current.style.bottom = document.documentElement.clientHeight - e.clientY + 'px'; + tooltipRef.current.style.top = 'auto'; } - } - }; - graphRef.current!.onmouseleave = () => { - setTooltipItem(undefined); - }; - } - }, [ - data, - levels, - rangeMin, - rangeMax, - totalTicks, - wrapperWidth, - setRangeMin, - setRangeMax, - selectedView, - setClickedItemData, - clickedItemData, - ]); + // 400 is max width of the tooltip + if (e.clientX < document.documentElement.clientWidth - 400) { + tooltipRef.current.style.left = e.clientX + 15 + 'px'; + tooltipRef.current.style.right = 'auto'; + } else { + tooltipRef.current.style.right = document.documentElement.clientWidth - e.clientX + 15 + 'px'; + tooltipRef.current.style.left = 'auto'; + } + + setTooltipItem(levels[levelIndex][barIndex]); + } + } + }, + [rangeMin, rangeMax, totalTicks, clickedItemData, levels] + ); + + const onGraphMouseLeave = useCallback(() => { + setTooltipItem(undefined); + }, []); // hide context menu if outside the flame graph canvas is clicked useEffect(() => { const handleOnClick = (e: MouseEvent) => { // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - if ((e.target as HTMLElement).parentElement?.id !== 'flameGraphCanvasContainer') { + if ((e.target as HTMLElement).parentElement?.id !== 'flameGraphCanvasContainer_clickOutsideCheck') { setClickedItemData(undefined); } }; @@ -220,10 +189,40 @@ const FlameGraph = ({ }, [setClickedItemData]); return ( -
- -
- +
+ +
+ {sandwichItem && ( +
+
+ Callers + +
+
+ + Callees +
+
+ )} +
+ +
{clickedItemData && ( @@ -232,10 +231,13 @@ const FlameGraph = ({ onMenuItemClick={() => { setClickedItemData(undefined); }} - onItemFocus={(itemIndex) => { - setRangeMin(clickedItemData.start / totalTicks); - setRangeMax((clickedItemData.start + data.getValue(clickedItemData.itemIndex)) / totalTicks); - onItemFocused(itemIndex); + onItemFocus={() => { + setRangeMin(clickedItemData.item.start / totalTicks); + setRangeMax((clickedItemData.item.start + clickedItemData.item.value) / totalTicks); + onItemFocused(clickedItemData); + }} + onSandwich={() => { + onSandwich(data.getLabel(clickedItemData.item.itemIndexes[0])); }} /> )} @@ -251,22 +253,38 @@ const getStyles = () => ({ flex-basis: 50%; `, canvasContainer: css` + label: canvasContainer; + display: flex; + `, + canvasWrapper: css` + label: canvasWrapper; cursor: pointer; + flex: 1; + overflow: hidden; + `, + sandwichMarker: css` + writing-mode: vertical-lr; + transform: rotate(180deg); + overflow: hidden; + white-space: nowrap; + `, + sandwichMarkerIcon: css` + vertical-align: baseline; `, }); // Convert pixel coordinates to bar coordinates in the levels array so that we can add mouse events like clicks to // the canvas. const convertPixelCoordinatesToBarCoordinates = ( - data: FlameGraphDataContainer, - e: MouseEvent, - pixelsPerTick: number, + // position relative to the start of the graph + pos: { x: number; y: number }, levels: LevelItem[][], + pixelsPerTick: number, totalTicks: number, rangeMin: number ) => { - const levelIndex = Math.floor(e.offsetY / (PIXELS_PER_LEVEL / window.devicePixelRatio)); - const barIndex = getBarIndex(e.offsetX, data, levels[levelIndex], pixelsPerTick, totalTicks, rangeMin); + const levelIndex = Math.floor(pos.y / (PIXELS_PER_LEVEL / window.devicePixelRatio)); + const barIndex = getBarIndex(pos.x, levels[levelIndex], pixelsPerTick, totalTicks, rangeMin); return { levelIndex, barIndex }; }; @@ -274,14 +292,7 @@ const convertPixelCoordinatesToBarCoordinates = ( * Binary search for a bar in a level, based on the X pixel coordinate. Useful for detecting which bar did user click * on. */ -const getBarIndex = ( - x: number, - data: FlameGraphDataContainer, - level: LevelItem[], - pixelsPerTick: number, - totalTicks: number, - rangeMin: number -) => { +const getBarIndex = (x: number, level: LevelItem[], pixelsPerTick: number, totalTicks: number, rangeMin: number) => { if (level) { let start = 0; let end = level.length - 1; @@ -290,7 +301,7 @@ const getBarIndex = ( const midIndex = (start + end) >> 1; const startOfBar = getBarX(level[midIndex].start, totalTicks, rangeMin, pixelsPerTick); const startOfNextBar = getBarX( - level[midIndex].start + data.getValue(level[midIndex].itemIndex), + level[midIndex].start + level[midIndex].value, totalTicks, rangeMin, pixelsPerTick diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphContextMenu.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphContextMenu.tsx index 7a5455b4f42..b30d8fc18b9 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphContextMenu.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphContextMenu.tsx @@ -7,10 +7,11 @@ import { ClickedItemData } from '../types'; type Props = { itemData: ClickedItemData; onMenuItemClick: () => void; - onItemFocus: (itemIndex: number) => void; + onItemFocus: () => void; + onSandwich: () => void; }; -const FlameGraphContextMenu = ({ itemData, onMenuItemClick, onItemFocus }: Props) => { +const FlameGraphContextMenu = ({ itemData, onMenuItemClick, onItemFocus, onSandwich }: Props) => { function renderItems() { return ( <> @@ -18,7 +19,7 @@ const FlameGraphContextMenu = ({ itemData, onMenuItemClick, onItemFocus }: Props label="Focus block" icon={'eye'} onClick={() => { - onItemFocus(itemData.itemIndex); + onItemFocus(); onMenuItemClick(); }} /> @@ -31,6 +32,14 @@ const FlameGraphContextMenu = ({ itemData, onMenuItemClick, onItemFocus }: Props }); }} /> + { + onSandwich(); + onMenuItemClick(); + }} + /> ); } diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.test.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.test.ts deleted file mode 100644 index 757b2c39add..00000000000 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.test.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { createDataFrame } from '@grafana/data'; - -import { getMetadata } from './FlameGraphMetadata'; -import { FlameGraphDataContainer } from './dataTransform'; - -function makeDataFrame(fields: Record>, unit?: string) { - return createDataFrame({ - fields: Object.keys(fields).map((key) => ({ - name: key, - values: fields[key], - config: unit - ? { - unit, - } - : {}, - })), - }); -} - -describe('should get metadata correctly', () => { - it('for bytes', () => { - const container = new FlameGraphDataContainer( - makeDataFrame({ value: [1_624_078_250], level: [1], label: ['1'], self: [0] }, 'bytes') - ); - const metadata = getMetadata(container, 0, 8_624_078_250); - expect(metadata).toEqual({ - percentValue: 18.83, - unitTitle: 'RAM', - unitValue: '1.51 GiB', - samples: '8,624,078,250', - }); - }); - - it('with default unit', () => { - const container = new FlameGraphDataContainer( - makeDataFrame({ value: [1_624_078_250], level: [1], label: ['1'], self: [0] }, 'none') - ); - const metadata = getMetadata(container, 0, 8_624_078_250); - expect(metadata).toEqual({ - percentValue: 18.83, - unitTitle: 'Count', - unitValue: '1624078250', - samples: '8,624,078,250', - }); - }); - - it('without unit', () => { - const container = new FlameGraphDataContainer( - makeDataFrame({ value: [1_624_078_250], level: [1], label: ['1'], self: [0] }) - ); - const metadata = getMetadata(container, 0, 8_624_078_250); - expect(metadata).toEqual({ - percentValue: 18.83, - unitTitle: 'Count', - unitValue: '1624078250', - samples: '8,624,078,250', - }); - }); - - it('for objects', () => { - const container = new FlameGraphDataContainer( - makeDataFrame({ value: [1_624_078_250], level: [1], label: ['1'], self: [0] }, 'short') - ); - const metadata = getMetadata(container, 0, 8_624_078_250); - expect(metadata).toEqual({ - percentValue: 18.83, - unitTitle: 'Count', - unitValue: '1.62 Bil', - samples: '8,624,078,250', - }); - }); - - it('for nanoseconds', () => { - const container = new FlameGraphDataContainer( - makeDataFrame({ value: [1_624_078_250], level: [1], label: ['1'], self: [0] }, 'ns') - ); - const metadata = getMetadata(container, 0, 8_624_078_250); - expect(metadata).toEqual({ - percentValue: 18.83, - unitTitle: 'Time', - unitValue: '1.62 s', - samples: '8,624,078,250', - }); - }); -}); diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphMetadata.test.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.test.tsx similarity index 100% rename from public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphMetadata.test.tsx rename to public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.test.tsx diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.tsx index 26658e187a2..869e0ad37c4 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphMetadata.tsx @@ -1,49 +1,109 @@ import { css } from '@emotion/css'; -import React from 'react'; +import React, { ReactNode } from 'react'; -import { useStyles2 } from '@grafana/ui'; +import { getValueFormat, GrafanaTheme2 } from '@grafana/data/src'; +import { Icon, IconButton, useStyles2 } from '@grafana/ui'; -import { Metadata } from '../types'; +import { ClickedItemData } from '../types'; import { FlameGraphDataContainer } from './dataTransform'; type Props = { data: FlameGraphDataContainer; totalTicks: number; - focusedItemIndex?: number; + onFocusPillClick: () => void; + onSandwichPillClick: () => void; + focusedItem?: ClickedItemData; + sandwichedLabel?: string; }; -const FlameGraphMetadata = React.memo(({ data, focusedItemIndex, totalTicks }: Props) => { - const styles = useStyles2(getStyles); - const metadata = getMetadata(data, focusedItemIndex || 0, totalTicks); - const metadataText = `${metadata?.unitValue} (${metadata?.percentValue}%) of ${metadata?.samples} total samples (${metadata?.unitTitle})`; - return <>{
{metadataText}
}; -}); +const FlameGraphMetadata = React.memo( + ({ data, focusedItem, totalTicks, sandwichedLabel, onFocusPillClick, onSandwichPillClick }: Props) => { + const styles = useStyles2(getStyles); + const parts: ReactNode[] = []; + const ticksVal = getValueFormat('short')(totalTicks); -export const getMetadata = (data: FlameGraphDataContainer, itemIndex: number, totalTicks: number): Metadata => { - const displayValue = data.getValueDisplay(itemIndex); - const percentValue = Math.round(10000 * (displayValue.numeric / totalTicks)) / 100; - let unitValue = displayValue.text + displayValue.suffix; - - const unitTitle = data.getUnitTitle(); - if (unitTitle === 'Count') { - if (!displayValue.suffix) { - // Makes sure we don't show 123undefined or something like that if suffix isn't defined - unitValue = displayValue.text; + const displayValue = data.valueDisplayProcessor(totalTicks); + let unitValue = displayValue.text + displayValue.suffix; + const unitTitle = data.getUnitTitle(); + if (unitTitle === 'Count') { + if (!displayValue.suffix) { + // Makes sure we don't show 123undefined or something like that if suffix isn't defined + unitValue = displayValue.text; + } } - } - return { - percentValue, - unitTitle, - unitValue, - samples: totalTicks.toLocaleString(), - }; -}; + parts.push( +
+ {unitValue} | {ticksVal.text} + {ticksVal.suffix} samples ({unitTitle}) +
+ ); + + if (sandwichedLabel) { + parts.push( + + +
+ {' '} + {sandwichedLabel.substring(sandwichedLabel.lastIndexOf('/') + 1)} + +
+
+ ); + } + + if (focusedItem) { + const percentValue = Math.round(10000 * (focusedItem.item.value / totalTicks)) / 100; + parts.push( + + +
+ {percentValue}% of total + +
+
+ ); + } + + return <>{
{parts}
}; + } +); FlameGraphMetadata.displayName = 'FlameGraphMetadata'; -const getStyles = () => ({ +const getStyles = (theme: GrafanaTheme2) => ({ + metadataPill: css` + label: metadataPill; + display: inline-block; + background: ${theme.colors.background.secondary}; + border-radius: ${theme.shape.borderRadius(8)}; + padding: ${theme.spacing(0.5, 1)}; + font-size: ${theme.typography.bodySmall.fontSize}; + font-weight: ${theme.typography.fontWeightMedium}; + line-height: ${theme.typography.bodySmall.lineHeight}; + color: ${theme.colors.text.secondary}; + `, + + pillCloseButton: css` + label: pillCloseButton; + vertical-align: text-bottom; + margin: ${theme.spacing(0, 0.5)}; + `, metadata: css` margin: 8px 0; text-align: center; diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphTooltip.test.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphTooltip.test.tsx index 8d7e256d3d3..e3566682267 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphTooltip.test.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphTooltip.test.tsx @@ -17,7 +17,11 @@ function setupData(unit?: string) { describe('FlameGraphTooltip', () => { it('for bytes', () => { - const tooltipData = getTooltipData(setupData('bytes'), { start: 0, itemIndex: 0 }, 8_624_078_250); + const tooltipData = getTooltipData( + setupData('bytes'), + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + 8_624_078_250 + ); expect(tooltipData).toEqual({ name: 'total', percentSelf: 0.01, @@ -30,7 +34,11 @@ describe('FlameGraphTooltip', () => { }); it('with default unit', () => { - const tooltipData = getTooltipData(setupData('none'), { start: 0, itemIndex: 0 }, 8_624_078_250); + const tooltipData = getTooltipData( + setupData('none'), + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + 8_624_078_250 + ); expect(tooltipData).toEqual({ name: 'total', percentSelf: 0.01, @@ -43,7 +51,11 @@ describe('FlameGraphTooltip', () => { }); it('without unit', () => { - const tooltipData = getTooltipData(setupData('none'), { start: 0, itemIndex: 0 }, 8_624_078_250); + const tooltipData = getTooltipData( + setupData('none'), + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + 8_624_078_250 + ); expect(tooltipData).toEqual({ name: 'total', percentSelf: 0.01, @@ -56,7 +68,11 @@ describe('FlameGraphTooltip', () => { }); it('for objects', () => { - const tooltipData = getTooltipData(setupData('short'), { start: 0, itemIndex: 0 }, 8_624_078_250); + const tooltipData = getTooltipData( + setupData('short'), + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + 8_624_078_250 + ); expect(tooltipData).toEqual({ name: 'total', percentSelf: 0.01, @@ -69,7 +85,11 @@ describe('FlameGraphTooltip', () => { }); it('for nanoseconds', () => { - const tooltipData = getTooltipData(setupData('ns'), { start: 0, itemIndex: 0 }, 8_624_078_250); + const tooltipData = getTooltipData( + setupData('ns'), + { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, + 8_624_078_250 + ); expect(tooltipData).toEqual({ name: 'total', percentSelf: 0.01, diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphTooltip.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphTooltip.tsx index 6b3a5cdf29d..c681c918139 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphTooltip.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/FlameGraphTooltip.tsx @@ -21,7 +21,7 @@ const FlameGraphTooltip = ({ data, tooltipRef, item, totalTicks }: Props) => { const tooltipData = getTooltipData(data, item, totalTicks); content = (
-

{data.getLabel(item.itemIndex)}

+

{data.getLabel(item.itemIndexes[0])}

{tooltipData.unitTitle}
@@ -55,8 +55,8 @@ type TooltipData = { }; export const getTooltipData = (data: FlameGraphDataContainer, item: LevelItem, totalTicks: number): TooltipData => { - const displayValue = data.getValueDisplay(item.itemIndex); - const displaySelf = data.getSelfDisplay(item.itemIndex); + const displayValue = data.valueDisplayProcessor(item.value); + const displaySelf = data.getSelfDisplay(item.itemIndexes); const percentValue = Math.round(10000 * (displayValue.numeric / totalTicks)) / 100; const percentSelf = Math.round(10000 * (displaySelf.numeric / totalTicks)) / 100; @@ -76,7 +76,7 @@ export const getTooltipData = (data: FlameGraphDataContainer, item: LevelItem, t } return { - name: data.getLabel(item.itemIndex), + name: data.getLabel(item.itemIndexes[0]), percentValue, percentSelf, unitTitle, diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap b/public/app/plugins/panel/flamegraph/components/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap index ff595f45137..49295e1c4a9 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap @@ -2,6 +2,23 @@ exports[`FlameGraph should render correctly 1`] = ` [ + { + "props": { + "height": 1100, + "width": 1600, + "x": 0, + "y": 0, + }, + "transform": [ + 1, + 0, + 0, + 1, + 0, + 0, + ], + "type": "clearRect", + }, { "props": { "path": [ diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/colors.test.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/colors.test.ts similarity index 100% rename from public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/colors.test.ts rename to public/app/plugins/panel/flamegraph/components/FlameGraph/colors.test.ts diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/colors.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/colors.ts similarity index 100% rename from public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/colors.ts rename to public/app/plugins/panel/flamegraph/components/FlameGraph/colors.ts diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/dataTransform.test.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/dataTransform.test.ts index b9a68eea93a..d9e28bb2403 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/dataTransform.test.ts +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/dataTransform.test.ts @@ -1,9 +1,14 @@ import { createDataFrame } from '@grafana/data'; -import { FlameGraphDataContainer, nestedSetToLevels } from './dataTransform'; +import { FlameGraphDataContainer, LevelItem, nestedSetToLevels } from './dataTransform'; describe('nestedSetToLevels', () => { it('converts nested set data frame to levels', () => { + // [1------] + // [2---][6] + // [3][5][7] + // [4] [8] + // [9] const frame = createDataFrame({ fields: [ { name: 'level', values: [0, 1, 2, 3, 2, 1, 2, 3, 4] }, @@ -12,24 +17,32 @@ describe('nestedSetToLevels', () => { { name: 'self', values: [0, 0, 0, 0, 0, 0, 0, 0, 0] }, ], }); - const levels = nestedSetToLevels(new FlameGraphDataContainer(frame)); - expect(levels).toEqual([ - [{ start: 0, itemIndex: 0 }], - [ - { start: 0, itemIndex: 1 }, - { start: 5, itemIndex: 5 }, - ], - [ - { start: 0, itemIndex: 2 }, - { start: 3, itemIndex: 4 }, - { start: 5, itemIndex: 6 }, - ], - [ - { start: 0, itemIndex: 3 }, - { start: 5, itemIndex: 7 }, - ], - [{ start: 5, itemIndex: 8 }], - ]); + const [levels] = nestedSetToLevels(new FlameGraphDataContainer(frame)); + + const n9: LevelItem = { itemIndexes: [8], start: 5, children: [], value: 1 }; + const n8: LevelItem = { itemIndexes: [7], start: 5, children: [n9], value: 2 }; + const n7: LevelItem = { itemIndexes: [6], start: 5, children: [n8], value: 3 }; + const n6: LevelItem = { itemIndexes: [5], start: 5, children: [n7], value: 4 }; + const n5: LevelItem = { itemIndexes: [4], start: 3, children: [], value: 1 }; + const n4: LevelItem = { itemIndexes: [3], start: 0, children: [], value: 1 }; + const n3: LevelItem = { itemIndexes: [2], start: 0, children: [n4], value: 3 }; + const n2: LevelItem = { itemIndexes: [1], start: 0, children: [n3, n5], value: 5 }; + const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n6], value: 10 }; + + n2.parents = [n1]; + n6.parents = [n1]; + n3.parents = [n2]; + n5.parents = [n2]; + n4.parents = [n3]; + n7.parents = [n6]; + n8.parents = [n7]; + n9.parents = [n8]; + + expect(levels[0]).toEqual([n1]); + expect(levels[1]).toEqual([n2, n6]); + expect(levels[2]).toEqual([n3, n5, n7]); + expect(levels[3]).toEqual([n4, n8]); + expect(levels[4]).toEqual([n9]); }); it('converts nested set data if multiple same level items', () => { @@ -41,14 +54,18 @@ describe('nestedSetToLevels', () => { { name: 'self', values: [10, 5, 3, 1] }, ], }); - const levels = nestedSetToLevels(new FlameGraphDataContainer(frame)); - expect(levels).toEqual([ - [{ start: 0, itemIndex: 0 }], - [ - { start: 0, itemIndex: 1 }, - { start: 5, itemIndex: 2 }, - { start: 8, itemIndex: 3 }, - ], - ]); + const [levels] = nestedSetToLevels(new FlameGraphDataContainer(frame)); + + const n4: LevelItem = { itemIndexes: [3], start: 8, children: [], value: 1 }; + const n3: LevelItem = { itemIndexes: [2], start: 5, children: [], value: 3 }; + const n2: LevelItem = { itemIndexes: [1], start: 0, children: [], value: 5 }; + const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n3, n4], value: 10 }; + + n2.parents = [n1]; + n3.parents = [n1]; + n4.parents = [n1]; + + expect(levels[0]).toEqual([n1]); + expect(levels[1]).toEqual([n2, n3, n4]); }); }); diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/dataTransform.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/dataTransform.ts index 598bdfb6b51..0ae5ba48f08 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/dataTransform.ts +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/dataTransform.ts @@ -10,35 +10,71 @@ import { import { SampleUnit } from '../types'; -export type LevelItem = { start: number; itemIndex: number }; +import { mergeParentSubtrees, mergeSubtrees } from './treeTransforms'; + +export type LevelItem = { + // Offset from the start of the level. + start: number; + // Value here can be different from a value of items in the data frame as for callers tree in sandwich view we have + // to trim the value to correspond only to the part used by the children in the subtree. + value: number; + // Index into the data frame. It is an array because for sandwich views we may be merging multiple items into single + // node. + itemIndexes: number[]; + children: LevelItem[]; + parents?: LevelItem[]; +}; /** * Convert data frame with nested set format into array of level. This is mainly done for compatibility with current * rendering code. */ -export function nestedSetToLevels(container: FlameGraphDataContainer): LevelItem[][] { +export function nestedSetToLevels(container: FlameGraphDataContainer): [LevelItem[][], Record] { const levels: LevelItem[][] = []; let offset = 0; + let parent: LevelItem | undefined = undefined; + const uniqueLabels: Record = {}; + for (let i = 0; i < container.data.length; i++) { const currentLevel = container.getLevel(i); const prevLevel = i > 0 ? container.getLevel(i - 1) : undefined; levels[currentLevel] = levels[currentLevel] || []; + if (prevLevel && prevLevel >= currentLevel) { // We are going down a level or staying at the same level, so we are adding a sibling to the last item in a level. // So we have to compute the correct offset based on the last sibling. - const lastItem = levels[currentLevel][levels[currentLevel].length - 1]; - offset = lastItem.start + container.getValue(lastItem.itemIndex); + const lastSibling = levels[currentLevel][levels[currentLevel].length - 1]; + offset = lastSibling.start + container.getValue(lastSibling.itemIndexes[0]); + // we assume there is always a single root node so lastSibling should always have a parent. + // Also it has to have the same parent because of how the items are ordered. + parent = lastSibling.parents![0]; } + const newItem: LevelItem = { - itemIndex: i, + itemIndexes: [i], + value: container.getValue(i), start: offset, + parents: parent && [parent], + children: [], }; + if (uniqueLabels[container.getLabel(i)]) { + uniqueLabels[container.getLabel(i)].push(newItem); + } else { + uniqueLabels[container.getLabel(i)] = [newItem]; + } + + if (parent) { + parent.children.push(newItem); + } + parent = newItem; + levels[currentLevel].push(newItem); } - return levels; + + return [levels, uniqueLabels]; } export class FlameGraphDataContainer { @@ -52,6 +88,9 @@ export class FlameGraphDataContainer { valueDisplayProcessor: DisplayProcessor; uniqueLabels: string[]; + private levels: LevelItem[][] | undefined; + private uniqueLabelsMap: Record | undefined; + constructor(data: DataFrame, theme: GrafanaTheme2 = createTheme()) { this.data = data; this.labelField = data.fields.find((f) => f.name === 'label')!; @@ -92,20 +131,26 @@ export class FlameGraphDataContainer { return this.levelField.values[index]; } - getValue(index: number) { - return this.valueField.values[index]; + getValue(index: number | number[]) { + let indexArray: number[] = typeof index === 'number' ? [index] : index; + return indexArray.reduce((acc, index) => { + return acc + this.valueField.values[index]; + }, 0); } - getValueDisplay(index: number) { - return this.valueDisplayProcessor(this.valueField.values[index]); + getValueDisplay(index: number | number[]) { + return this.valueDisplayProcessor(this.getValue(index)); } - getSelf(index: number) { - return this.selfField.values[index]; + getSelf(index: number | number[]) { + let indexArray: number[] = typeof index === 'number' ? [index] : index; + return indexArray.reduce((acc, index) => { + return acc + this.selfField.values[index]; + }, 0); } - getSelfDisplay(index: number) { - return this.valueDisplayProcessor(this.selfField.values[index]); + getSelfDisplay(index: number | number[]) { + return this.valueDisplayProcessor(this.getSelf(index)); } getUniqueLabels() { @@ -122,4 +167,35 @@ export class FlameGraphDataContainer { return 'Count'; } + + getLevels() { + this.initLevels(); + return this.levels!; + } + + getSandwichLevels(label: string) { + const nodes = this.getNodesWithLabel(label); + + if (!nodes?.length) { + return []; + } + + const callers = mergeParentSubtrees(nodes, this); + const callees = mergeSubtrees(nodes, this); + + return [callers, callees]; + } + + getNodesWithLabel(label: string) { + this.initLevels(); + return this.uniqueLabelsMap![label]; + } + + private initLevels() { + if (!this.levels) { + const [levels, uniqueLabelsMap] = nestedSetToLevels(this); + this.levels = levels; + this.uniqueLabelsMap = uniqueLabelsMap; + } + } } diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/murmur3.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/murmur3.ts similarity index 100% rename from public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/murmur3.ts rename to public/app/plugins/panel/flamegraph/components/FlameGraph/murmur3.ts diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/rendering.test.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/rendering.test.ts index 2b4c09d36ff..729dfad1d89 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/rendering.test.ts +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/rendering.test.ts @@ -14,7 +14,7 @@ function makeDataFrame(fields: Record>) { describe('getRectDimensionsForLevel', () => { it('should render a single item', () => { - const level: LevelItem[] = [{ start: 0, itemIndex: 0 }]; + const level: LevelItem[] = [{ start: 0, itemIndexes: [0], children: [], value: 100 }]; const container = new FlameGraphDataContainer(makeDataFrame({ value: [100], level: [1], label: ['1'], self: [0] })); const result = getRectDimensionsForLevel(container, level, 1, 100, 0, 10); expect(result).toEqual([ @@ -34,9 +34,9 @@ describe('getRectDimensionsForLevel', () => { it('should render a multiple items', () => { const level: LevelItem[] = [ - { start: 0, itemIndex: 0 }, - { start: 100, itemIndex: 1 }, - { start: 150, itemIndex: 2 }, + { start: 0, itemIndexes: [0], children: [], value: 100 }, + { start: 100, itemIndexes: [1], children: [], value: 50 }, + { start: 150, itemIndexes: [2], children: [], value: 50 }, ]; const container = new FlameGraphDataContainer( makeDataFrame({ value: [100, 50, 50], level: [2, 2, 2], label: ['1', '2', '3'], self: [0, 0, 0] }) @@ -71,9 +71,9 @@ describe('getRectDimensionsForLevel', () => { it('should render a collapsed items', () => { const level: LevelItem[] = [ - { start: 0, itemIndex: 0 }, - { start: 100, itemIndex: 1 }, - { start: 102, itemIndex: 2 }, + { start: 0, itemIndexes: [0], children: [], value: 100 }, + { start: 100, itemIndexes: [1], children: [], value: 2 }, + { start: 102, itemIndexes: [2], children: [], value: 1 }, ]; const container = new FlameGraphDataContainer( makeDataFrame({ value: [100, 2, 1], level: [2, 2, 2], label: ['1', '2', '3'], self: [0, 0, 0] }) diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraph/rendering.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/rendering.ts index 7a805409193..3e782d761bd 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraph/rendering.ts +++ b/public/app/plugins/panel/flamegraph/components/FlameGraph/rendering.ts @@ -1,4 +1,8 @@ -import { colors } from '@grafana/ui'; +import uFuzzy from '@leeoniya/ufuzzy'; +import { RefObject, useEffect, useMemo, useState } from 'react'; + +import { GrafanaTheme2 } from '@grafana/data'; +import { colors, useTheme2 } from '@grafana/ui'; import { BAR_BORDER_WIDTH, @@ -8,10 +12,116 @@ import { LABEL_THRESHOLD, PIXELS_PER_LEVEL, } from '../../constants'; -import { TextAlign } from '../types'; +import { ClickedItemData, ColorScheme, TextAlign } from '../types'; +import { getBarColorByPackage, getBarColorByValue } from './colors'; import { FlameGraphDataContainer, LevelItem } from './dataTransform'; +const ufuzzy = new uFuzzy(); + +export function useFlameRender( + canvasRef: RefObject, + data: FlameGraphDataContainer, + levels: LevelItem[][], + wrapperWidth: number, + rangeMin: number, + rangeMax: number, + search: string, + textAlign: TextAlign, + totalTicks: number, + colorScheme: ColorScheme, + focusedItemData?: ClickedItemData +) { + const foundLabels = useMemo(() => { + if (search) { + const foundLabels = new Set(); + let idxs = ufuzzy.filter(data.getUniqueLabels(), search); + + if (idxs) { + for (let idx of idxs) { + foundLabels.add(data.getUniqueLabels()[idx]); + } + } + + return foundLabels; + } + // In this case undefined means there was no search so no attempt to highlighting anything should be made. + return undefined; + }, [search, data]); + + const ctx = useSetupCanvas(canvasRef, wrapperWidth, levels.length); + const theme = useTheme2(); + + useEffect(() => { + if (!ctx) { + return; + } + ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); + const pixelsPerTick = (wrapperWidth * window.devicePixelRatio) / totalTicks / (rangeMax - rangeMin); + + for (let levelIndex = 0; levelIndex < levels.length; levelIndex++) { + const level = levels[levelIndex]; + // Get all the dimensions of the rectangles for the level. We do this by level instead of per rectangle, because + // sometimes we collapse multiple bars into single rect. + const dimensions = getRectDimensionsForLevel(data, level, levelIndex, totalTicks, rangeMin, pixelsPerTick); + for (const rect of dimensions) { + const focusedLevel = focusedItemData ? focusedItemData.level : 0; + // Render each rectangle based on the computed dimensions + renderRect( + ctx, + rect, + totalTicks, + rangeMin, + rangeMax, + levelIndex, + focusedLevel, + foundLabels, + textAlign, + colorScheme, + theme + ); + } + } + }, [ + ctx, + data, + levels, + wrapperWidth, + rangeMin, + rangeMax, + search, + focusedItemData, + foundLabels, + textAlign, + totalTicks, + colorScheme, + theme, + ]); +} + +function useSetupCanvas(canvasRef: RefObject, wrapperWidth: number, numberOfLevels: number) { + const [ctx, setCtx] = useState(); + + useEffect(() => { + if (!(numberOfLevels && canvasRef.current)) { + return; + } + const ctx = canvasRef.current.getContext('2d')!; + + const height = PIXELS_PER_LEVEL * numberOfLevels; + canvasRef.current.width = Math.round(wrapperWidth * window.devicePixelRatio); + canvasRef.current.height = Math.round(height); + canvasRef.current.style.width = `${wrapperWidth}px`; + canvasRef.current.style.height = `${height / window.devicePixelRatio}px`; + + ctx.textBaseline = 'middle'; + ctx.font = 12 * window.devicePixelRatio + 'px monospace'; + ctx.strokeStyle = 'white'; + setCtx(ctx); + }, [canvasRef, setCtx, wrapperWidth, numberOfLevels]); + return ctx; +} + type RectData = { width: number; height: number; @@ -40,7 +150,7 @@ export function getRectDimensionsForLevel( for (let barIndex = 0; barIndex < level.length; barIndex += 1) { const item = level[barIndex]; const barX = getBarX(item.start, totalTicks, rangeMin, pixelsPerTick); - let curBarTicks = data.getValue(item.itemIndex); + let curBarTicks = item.value; // merge very small blocks into big "collapsed" ones for performance const collapsed = curBarTicks * pixelsPerTick <= COLLAPSE_THRESHOLD; @@ -48,14 +158,14 @@ export function getRectDimensionsForLevel( while ( barIndex < level.length - 1 && item.start + curBarTicks === level[barIndex + 1].start && - data.getValue(level[barIndex + 1].itemIndex) * pixelsPerTick <= COLLAPSE_THRESHOLD + level[barIndex + 1].value * pixelsPerTick <= COLLAPSE_THRESHOLD ) { barIndex += 1; - curBarTicks += data.getValue(level[barIndex].itemIndex); + curBarTicks += level[barIndex].value; } } - const displayValue = data.getValueDisplay(item.itemIndex); + const displayValue = data.valueDisplayProcessor(item.value); let unit = displayValue.suffix ? displayValue.text + displayValue.suffix : displayValue.text; const width = curBarTicks * pixelsPerTick - (collapsed ? 0 : BAR_BORDER_WIDTH * 2); @@ -66,9 +176,9 @@ export function getRectDimensionsForLevel( y: levelIndex * PIXELS_PER_LEVEL, collapsed, ticks: curBarTicks, - label: data.getLabel(item.itemIndex), + label: data.getLabel(item.itemIndexes[0]), unitLabel: unit, - itemIndex: item.itemIndex, + itemIndex: item.itemIndexes[0], }); } return coordinatesLevel; @@ -80,11 +190,12 @@ export function renderRect( totalTicks: number, rangeMin: number, rangeMax: number, - query: string, levelIndex: number, topLevelIndex: number, - foundNames: Set, - textAlign: TextAlign + foundNames: Set | undefined, + textAlign: TextAlign, + colorScheme: ColorScheme, + theme: GrafanaTheme2 ) { if (rect.width < HIDE_THRESHOLD) { return; @@ -93,28 +204,36 @@ export function renderRect( ctx.beginPath(); ctx.rect(rect.x + (rect.collapsed ? 0 : BAR_BORDER_WIDTH), rect.y, rect.width, rect.height); - // / (rangeMax - rangeMin) here so when you click a bar it will adjust the top (clicked)bar to the most 'intense' color - const intensity = Math.min(1, rect.ticks / totalTicks / (rangeMax - rangeMin)); - const h = 50 - 50 * intensity; - const l = 65 + 7 * intensity; + const color = + colorScheme === ColorScheme.ValueBased + ? getBarColorByValue(rect.ticks, totalTicks, rangeMin, rangeMax) + : getBarColorByPackage(rect.label, theme); - const name = rect.label; - - if (!rect.collapsed) { - ctx.stroke(); - - if (query) { - ctx.fillStyle = foundNames.has(name) ? getBarColor(h, l) : colors[55]; - } else { - ctx.fillStyle = levelIndex > topLevelIndex - 1 ? getBarColor(h, l) : getBarColor(h, l + 15); - } + if (foundNames) { + // Means we are searching, we use color for matches and gray the rest + ctx.fillStyle = foundNames.has(rect.label) ? color.toHslString() : colors[55]; } else { - ctx.fillStyle = foundNames.has(name) ? getBarColor(h, l) : colors[55]; + // No search + if (rect.collapsed) { + // Collapsed are always grayed + ctx.fillStyle = colors[55]; + } else { + // Mute if we are above the focused symbol + ctx.fillStyle = levelIndex > topLevelIndex - 1 ? color.toHslString() : color.lighten(15).toHslString(); + } } + + if (rect.collapsed) { + // Only fill the collapsed rects + ctx.fill(); + return; + } + + ctx.stroke(); ctx.fill(); - if (!rect.collapsed && rect.width >= LABEL_THRESHOLD) { - renderLabel(ctx, name, rect, textAlign); + if (rect.width >= LABEL_THRESHOLD) { + renderLabel(ctx, rect.label, rect, textAlign); } } @@ -159,7 +278,3 @@ function renderLabel(ctx: CanvasRenderingContext2D, name: string, rect: RectData export function getBarX(offset: number, totalTicks: number, rangeMin: number, pixelsPerTick: number) { return (offset - totalTicks * rangeMin) * pixelsPerTick; } - -function getBarColor(h: number, l: number) { - return `hsl(${h}, 100%, ${l}%)`; -} diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testHelpers.test.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/testHelpers.test.ts similarity index 100% rename from public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testHelpers.test.ts rename to public/app/plugins/panel/flamegraph/components/FlameGraph/testHelpers.test.ts diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testHelpers.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/testHelpers.ts similarity index 100% rename from public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testHelpers.ts rename to public/app/plugins/panel/flamegraph/components/FlameGraph/testHelpers.ts diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/treeTransforms.test.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/treeTransforms.test.ts similarity index 100% rename from public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/treeTransforms.test.ts rename to public/app/plugins/panel/flamegraph/components/FlameGraph/treeTransforms.test.ts diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/treeTransforms.ts b/public/app/plugins/panel/flamegraph/components/FlameGraph/treeTransforms.ts similarity index 100% rename from public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/treeTransforms.ts rename to public/app/plugins/panel/flamegraph/components/FlameGraph/treeTransforms.ts diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraphContainer.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraphContainer.tsx index 97dbc0dc0f4..d87b8157b8c 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraphContainer.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraphContainer.tsx @@ -9,10 +9,10 @@ import { useStyles2, useTheme2 } from '@grafana/ui'; import { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from '../constants'; import FlameGraph from './FlameGraph/FlameGraph'; -import { FlameGraphDataContainer, LevelItem, nestedSetToLevels } from './FlameGraph/dataTransform'; +import { FlameGraphDataContainer } from './FlameGraph/dataTransform'; import FlameGraphHeader from './FlameGraphHeader'; import FlameGraphTopTableContainer from './TopTable/FlameGraphTopTableContainer'; -import { SelectedView, TextAlign } from './types'; +import { ClickedItemData, ColorScheme, SelectedView, TextAlign } from './types'; type Props = { data?: DataFrame; @@ -20,7 +20,7 @@ type Props = { }; const FlameGraphContainer = (props: Props) => { - const [focusedItemIndex, setFocusedItemIndex] = useState(); + const [focusedItemData, setFocusedItemData] = useState(); const [rangeMin, setRangeMin] = useState(0); const [rangeMax, setRangeMax] = useState(1); @@ -28,19 +28,17 @@ const FlameGraphContainer = (props: Props) => { const [selectedView, setSelectedView] = useState(SelectedView.Both); const [sizeRef, { width: containerWidth }] = useMeasure(); const [textAlign, setTextAlign] = useState('left'); + // This is a label of the item because in sandwich view we group all items by label and present a merged graph + const [sandwichItem, setSandwichItem] = useState(); + const [colorScheme, setColorScheme] = useState(ColorScheme.ValueBased); const theme = useTheme2(); - const [dataContainer, levels] = useMemo((): [FlameGraphDataContainer, LevelItem[][]] | [undefined, undefined] => { + const dataContainer = useMemo((): FlameGraphDataContainer | undefined => { if (!props.data) { - return [undefined, undefined]; + return; } - const container = new FlameGraphDataContainer(props.data, theme); - - // Transform dataFrame with nested set format to array of levels. Each level contains all the bars for a particular - // level of the flame graph. We do this temporary as in the end we should be able to render directly by iterating - // over the dataFrame rows. - return [container, nestedSetToLevels(container)]; + return new FlameGraphDataContainer(props.data, theme); }, [props.data, theme]); const styles = useStyles2(getStyles); @@ -56,10 +54,19 @@ const FlameGraphContainer = (props: Props) => { } }, [selectedView, setSelectedView, containerWidth]); - useEffect(() => { - setFocusedItemIndex(undefined); + function resetFocus() { + setFocusedItemData(undefined); setRangeMin(0); setRangeMax(1); + } + + function resetSandwich() { + setSandwichItem(undefined); + } + + useEffect(() => { + resetFocus(); + resetSandwich(); }, [props.data]); return ( @@ -74,12 +81,14 @@ const FlameGraphContainer = (props: Props) => { setSelectedView={setSelectedView} containerWidth={containerWidth} onReset={() => { - setRangeMin(0); - setRangeMax(1); - setFocusedItemIndex(undefined); + resetFocus(); + resetSandwich(); }} textAlign={textAlign} onTextAlignChange={setTextAlign} + showResetButton={Boolean(focusedItemData || sandwichItem)} + colorScheme={colorScheme} + onColorSchemeChange={setColorScheme} />

@@ -87,7 +96,6 @@ const FlameGraphContainer = (props: Props) => { { if (search === symbol) { setSearch(''); @@ -97,27 +105,31 @@ const FlameGraphContainer = (props: Props) => { grafana_version: config.buildInfo.version, }); setSearch(symbol); - // Reset selected level in flamegraph when selecting row in top table - setRangeMin(0); - setRangeMax(1); } }} + height={selectedView === SelectedView.TopTable ? 600 : undefined} /> )} {selectedView !== SelectedView.TopTable && ( setFocusedItemIndex(itemIndex)} - focusedItemIndex={focusedItemIndex} + onItemFocused={(data) => setFocusedItemData(data)} + focusedItemData={focusedItemData} textAlign={textAlign} + sandwichItem={sandwichItem} + onSandwich={(label: string) => { + resetFocus(); + setSandwichItem(label); + }} + onFocusPillClick={resetFocus} + onSandwichPillClick={resetSandwich} + colorScheme={colorScheme} /> )}
diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraphHeader.test.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraphHeader.test.tsx index a576a1dc063..520ff81b54b 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraphHeader.test.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraphHeader.test.tsx @@ -1,40 +1,75 @@ import '@testing-library/jest-dom'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import React, { useState } from 'react'; +import React from 'react'; import { CoreApp } from '@grafana/data'; import FlameGraphHeader from './FlameGraphHeader'; -import { SelectedView } from './types'; +import { ColorScheme, SelectedView } from './types'; describe('FlameGraphHeader', () => { - const FlameGraphHeaderWithProps = () => { - const [search, setSearch] = useState(''); - const [selectedView, setSelectedView] = useState(SelectedView.Both); + function setup(props: Partial> = {}) { + const setSearch = jest.fn(); + const setSelectedView = jest.fn(); + const onReset = jest.fn(); + const onSchemeChange = jest.fn(); - return ( + const renderResult = render( { - setSearch(''); - }} + onReset={onReset} onTextAlignChange={jest.fn()} textAlign={'left'} + showResetButton={true} + colorScheme={ColorScheme.ValueBased} + onColorSchemeChange={onSchemeChange} + {...props} /> ); - }; - it('reset button should remove search text', async () => { - render(); - await userEvent.type(screen.getByPlaceholderText('Search..'), 'abc'); - expect(screen.getByDisplayValue('abc')).toBeInTheDocument(); - await userEvent.click(screen.getByRole('button', { name: /Reset/i })); - expect(screen.queryByDisplayValue('abc')).not.toBeInTheDocument(); + return { + renderResult, + handlers: { + setSearch, + setSelectedView, + onReset, + onSchemeChange, + }, + }; + } + + it('show reset button when needed', async () => { + setup({ showResetButton: false }); + expect(screen.queryByLabelText(/Reset focus/)).toBeNull(); + + setup(); + expect(screen.getByLabelText(/Reset focus/)).toBeInTheDocument(); + }); + + it('calls on reset when reset button is clicked', async () => { + const { handlers } = setup(); + const resetButton = screen.getByLabelText(/Reset focus/); + expect(resetButton).toBeInTheDocument(); + await userEvent.click(resetButton); + expect(handlers.onReset).toHaveBeenCalledTimes(1); + }); + + it('calls on color scheme change when clicked', async () => { + const { handlers } = setup(); + const changeButton = screen.getByLabelText(/Change color scheme/); + expect(changeButton).toBeInTheDocument(); + await userEvent.click(changeButton); + + const byPackageButton = screen.getByText(/By package name/); + expect(byPackageButton).toBeInTheDocument(); + await userEvent.click(byPackageButton); + + expect(handlers.onSchemeChange).toHaveBeenCalledTimes(1); }); }); diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraphHeader.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraphHeader.tsx index 3dd0d068260..0167d46cb51 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraphHeader.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraphHeader.tsx @@ -1,16 +1,16 @@ -import { css } from '@emotion/css'; +import { css, cx } from '@emotion/css'; import React, { useEffect, useState } from 'react'; import useDebounce from 'react-use/lib/useDebounce'; import usePrevious from 'react-use/lib/usePrevious'; import { CoreApp, GrafanaTheme2, SelectableValue } from '@grafana/data'; -import { reportInteraction } from '@grafana/runtime'; -import { Button, Input, RadioButtonGroup, useStyles2 } from '@grafana/ui'; +import { reportInteraction, config } from '@grafana/runtime'; +import { Button, Dropdown, Input, Menu, RadioButtonGroup, useStyles2 } from '@grafana/ui'; -import { config } from '../../../../core/config'; import { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from '../constants'; -import { SelectedView, TextAlign } from './types'; +import { byPackageGradient, byValueGradient } from './FlameGraph/colors'; +import { ColorScheme, SelectedView, TextAlign } from './types'; type Props = { app: CoreApp; @@ -22,6 +22,9 @@ type Props = { onReset: () => void; textAlign: TextAlign; onTextAlignChange: (align: TextAlign) => void; + showResetButton: boolean; + colorScheme: ColorScheme; + onColorSchemeChange: (colorScheme: ColorScheme) => void; }; const FlameGraphHeader = ({ @@ -34,6 +37,9 @@ const FlameGraphHeader = ({ onReset, textAlign, onTextAlignChange, + showResetButton, + colorScheme, + onColorSchemeChange, }: Props) => { const styles = useStyles2((theme) => getStyles(theme, app)); function interaction(name: string, context: Record) { @@ -46,34 +52,52 @@ const FlameGraphHeader = ({ const [localSearch, setLocalSearch] = useSearchInput(search, setSearch); + const suffix = + localSearch !== '' ? ( + + ) : null; + return (
-
-
- { - setLocalSearch(v.currentTarget.value); - }} - placeholder={'Search..'} - width={44} - /> -
- + placeholder={'Search..'} + width={44} + suffix={suffix} + />
+ {showResetButton && ( + + + ); +} + const alignOptions: Array> = [ { value: 'left', description: 'Align text left', icon: 'align-left' }, { value: 'right', description: 'Align text right', icon: 'align-right' }, @@ -150,7 +210,9 @@ function useSearchInput( const getStyles = (theme: GrafanaTheme2, app: CoreApp) => ({ header: css` - display: flow-root; + label: header; + display: flex; + justify-content: space-between; width: 100%; background: ${theme.colors.background.primary}; top: 0; @@ -164,18 +226,44 @@ const getStyles = (theme: GrafanaTheme2, app: CoreApp) => ({ : ''}; `, inputContainer: css` - float: left; + label: inputContainer; margin-right: 20px; `, - leftContainer: css` - float: left; - `, rightContainer: css` - float: right; + label: rightContainer; + display: flex; + align-items: flex-start; `, buttonSpacing: css` + label: buttonSpacing; margin-right: ${theme.spacing(1)}; `, + + resetButton: css` + label: resetButton; + display: flex; + margin-right: ${theme.spacing(2)}; + `, + resetButtonIconWrapper: css` + label: resetButtonIcon; + padding: 0 5px; + color: ${theme.colors.text.disabled}; + `, + colorDot: css` + label: colorDot; + display: inline-block; + width: 10px; + height: 10px; + border-radius: 50%; + `, + colorDotByValue: css` + label: colorDotByValue; + background: ${byValueGradient}; + `, + colorDotByPackage: css` + label: colorDotByPackage; + background: ${byPackageGradient}; + `, }); export default FlameGraphHeader; diff --git a/public/app/plugins/panel/flamegraph/components/FlameGraphTopWrapper.tsx b/public/app/plugins/panel/flamegraph/components/FlameGraphTopWrapper.tsx index 503bda06ae1..c52c882e704 100644 --- a/public/app/plugins/panel/flamegraph/components/FlameGraphTopWrapper.tsx +++ b/public/app/plugins/panel/flamegraph/components/FlameGraphTopWrapper.tsx @@ -5,8 +5,6 @@ import '@pyroscope/flamegraph/dist/index.css'; import { CoreApp, DataFrame, DataFrameView } from '@grafana/data'; import { config } from '@grafana/runtime'; -import FlameGraphContainerV2 from '../flamegraphV2/components/FlameGraphContainer'; - import FlameGraphContainer from './FlameGraphContainer'; type Props = { @@ -24,11 +22,7 @@ export const FlameGraphTopWrapper = (props: Props) => { return ; } - return config.featureToggles.flameGraphV2 ? ( - - ) : ( - - ); + return ; }; type Row = { diff --git a/public/app/plugins/panel/flamegraph/components/TopTable/FlameGraphTopTableContainer.test.tsx b/public/app/plugins/panel/flamegraph/components/TopTable/FlameGraphTopTableContainer.test.tsx index c8ce892503b..6364f74022a 100644 --- a/public/app/plugins/panel/flamegraph/components/TopTable/FlameGraphTopTableContainer.test.tsx +++ b/public/app/plugins/panel/flamegraph/components/TopTable/FlameGraphTopTableContainer.test.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { CoreApp, createDataFrame } from '@grafana/data'; -import { FlameGraphDataContainer, nestedSetToLevels } from '../FlameGraph/dataTransform'; +import { FlameGraphDataContainer } from '../FlameGraph/dataTransform'; import { data } from '../FlameGraph/testData/dataNestedSet'; import FlameGraphTopTableContainer from './FlameGraphTopTableContainer'; @@ -12,16 +12,8 @@ describe('FlameGraphTopTableContainer', () => { const FlameGraphTopTableContainerWithProps = () => { const flameGraphData = createDataFrame(data); const container = new FlameGraphDataContainer(flameGraphData); - const levels = nestedSetToLevels(container); - return ( - - ); + return ; }; it('should render without error', async () => { diff --git a/public/app/plugins/panel/flamegraph/components/TopTable/FlameGraphTopTableContainer.tsx b/public/app/plugins/panel/flamegraph/components/TopTable/FlameGraphTopTableContainer.tsx index 6b8bf1e354c..6b136f7f66e 100644 --- a/public/app/plugins/panel/flamegraph/components/TopTable/FlameGraphTopTableContainer.tsx +++ b/public/app/plugins/panel/flamegraph/components/TopTable/FlameGraphTopTableContainer.tsx @@ -6,25 +6,25 @@ import { applyFieldOverrides, CoreApp, DataFrame, DataLinkClickEvent, Field, Fie import { config, reportInteraction } from '@grafana/runtime'; import { Table, TableSortByFieldState, useStyles2 } from '@grafana/ui'; -import { PIXELS_PER_LEVEL, TOP_TABLE_COLUMN_WIDTH } from '../../constants'; +import { TOP_TABLE_COLUMN_WIDTH } from '../../constants'; import { FlameGraphDataContainer } from '../FlameGraph/dataTransform'; import { TableData } from '../types'; type Props = { data: FlameGraphDataContainer; app: CoreApp; - totalLevels: number; onSymbolClick: (symbol: string) => void; + height?: number; }; -const FlameGraphTopTableContainer = ({ data, app, totalLevels, onSymbolClick }: Props) => { +const FlameGraphTopTableContainer = ({ data, app, onSymbolClick, height }: Props) => { const styles = useStyles2(getStyles); const [sort, setSort] = useState([{ displayName: 'Self', desc: true }]); return (
- + {({ width, height }) => { if (width < 3 || height < 3) { return null; diff --git a/public/app/plugins/panel/flamegraph/components/types.ts b/public/app/plugins/panel/flamegraph/components/types.ts index f36772c1fce..ea811266e89 100644 --- a/public/app/plugins/panel/flamegraph/components/types.ts +++ b/public/app/plugins/panel/flamegraph/components/types.ts @@ -1,16 +1,11 @@ +import { LevelItem } from './FlameGraph/dataTransform'; + export type ClickedItemData = { posX: number; posY: number; - itemIndex: number; label: string; - start: number; -}; - -export type Metadata = { - percentValue: number; - unitTitle: string; - unitValue: string; - samples: string; + item: LevelItem; + level: number; }; export enum SampleUnit { @@ -47,4 +42,9 @@ export type TopTableValue = { unitValue: string; }; +export enum ColorScheme { + ValueBased = 'valueBased', + PackageBased = 'packageBased', +} + export type TextAlign = 'left' | 'right'; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraph.test.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraph.test.tsx deleted file mode 100644 index fc152e96b00..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraph.test.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { fireEvent, render, screen } from '@testing-library/react'; -import React from 'react'; - -import { createDataFrame } from '@grafana/data'; - -import { ColorScheme } from '../types'; - -import FlameGraph from './FlameGraph'; -import { FlameGraphDataContainer } from './dataTransform'; -import { data } from './testData/dataNestedSet'; - -import 'jest-canvas-mock'; - -jest.mock('react-use', () => { - const reactUse = jest.requireActual('react-use'); - return { - ...reactUse, - useMeasure: () => { - const ref = React.useRef(); - return [ref, { width: 1600 }]; - }, - }; -}); - -describe('FlameGraph', () => { - function setup() { - const flameGraphData = createDataFrame(data); - const container = new FlameGraphDataContainer(flameGraphData); - - const setRangeMin = jest.fn(); - const setRangeMax = jest.fn(); - const onItemFocused = jest.fn(); - const onSandwich = jest.fn(); - const onFocusPillClick = jest.fn(); - const onSandwichPillClick = jest.fn(); - - const renderResult = render( - - ); - return { - renderResult, - mocks: { - setRangeMax, - setRangeMin, - onItemFocused, - onSandwich, - onFocusPillClick, - onSandwichPillClick, - }, - }; - } - - it('should render without error', async () => { - setup(); - }); - - it('should render correctly', async () => { - setup(); - - const canvas = screen.getByTestId('flameGraph') as HTMLCanvasElement; - const ctx = canvas!.getContext('2d'); - const calls = ctx!.__getDrawCalls(); - expect(calls).toMatchSnapshot(); - }); - - it('should render metadata', async () => { - setup(); - expect(screen.getByText('16.5 Bil | 16.5 Bil samples (Count)')).toBeDefined(); - }); - - it('should render context menu', async () => { - const event = new MouseEvent('click', { bubbles: true }); - Object.defineProperty(event, 'offsetX', { get: () => 10 }); - Object.defineProperty(event, 'offsetY', { get: () => 10 }); - Object.defineProperty(HTMLCanvasElement.prototype, 'clientWidth', { configurable: true, value: 500 }); - - setup(); - const canvas = screen.getByTestId('flameGraph') as HTMLCanvasElement; - expect(canvas).toBeInTheDocument(); - expect(screen.queryByTestId('contextMenu')).not.toBeInTheDocument(); - - fireEvent(canvas, event); - expect(screen.getByTestId('contextMenu')).toBeInTheDocument(); - }); -}); diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraph.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraph.tsx deleted file mode 100644 index 56f928a2919..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraph.tsx +++ /dev/null @@ -1,324 +0,0 @@ -// This component is based on logic from the flamebearer project -// https://github.com/mapbox/flamebearer - -// ISC License - -// Copyright (c) 2018, Mapbox - -// Permission to use, copy, modify, and/or distribute this software for any purpose -// with or without fee is hereby granted, provided that the above copyright notice -// and this permission notice appear in all copies. - -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -// FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -// THIS SOFTWARE. -import { css } from '@emotion/css'; -import React, { MouseEvent as ReactMouseEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react'; -import { useMeasure } from 'react-use'; - -import { Icon, useStyles2 } from '@grafana/ui'; - -import { PIXELS_PER_LEVEL } from '../../constants'; -import { ClickedItemData, ColorScheme, TextAlign } from '../types'; - -import FlameGraphContextMenu from './FlameGraphContextMenu'; -import FlameGraphMetadata from './FlameGraphMetadata'; -import FlameGraphTooltip from './FlameGraphTooltip'; -import { FlameGraphDataContainer, LevelItem } from './dataTransform'; -import { getBarX, useFlameRender } from './rendering'; - -type Props = { - data: FlameGraphDataContainer; - rangeMin: number; - rangeMax: number; - search: string; - setRangeMin: (range: number) => void; - setRangeMax: (range: number) => void; - style?: React.CSSProperties; - onItemFocused: (data: ClickedItemData) => void; - focusedItemData?: ClickedItemData; - textAlign: TextAlign; - sandwichItem?: string; - onSandwich: (label: string) => void; - onFocusPillClick: () => void; - onSandwichPillClick: () => void; - colorScheme: ColorScheme; -}; - -const FlameGraph = ({ - data, - rangeMin, - rangeMax, - search, - setRangeMin, - setRangeMax, - onItemFocused, - focusedItemData, - textAlign, - onSandwich, - sandwichItem, - onFocusPillClick, - onSandwichPillClick, - colorScheme, -}: Props) => { - const styles = useStyles2(getStyles); - - const [levels, totalTicks, callersCount] = useMemo(() => { - let levels = data.getLevels(); - let totalTicks = levels.length ? levels[0][0].value : 0; - let callersCount = 0; - - if (sandwichItem) { - const [callers, callees] = data.getSandwichLevels(sandwichItem); - levels = [...callers, [], ...callees]; - totalTicks = callees.length ? callees[0][0].value : 0; - callersCount = callers.length; - } - return [levels, totalTicks, callersCount]; - }, [data, sandwichItem]); - - const [sizeRef, { width: wrapperWidth }] = useMeasure(); - const graphRef = useRef(null); - const tooltipRef = useRef(null); - const [tooltipItem, setTooltipItem] = useState(); - - const [clickedItemData, setClickedItemData] = useState(); - - useFlameRender( - graphRef, - data, - levels, - wrapperWidth, - rangeMin, - rangeMax, - search, - textAlign, - totalTicks, - colorScheme, - focusedItemData - ); - - const onGraphClick = useCallback( - (e: ReactMouseEvent) => { - setTooltipItem(undefined); - const pixelsPerTick = graphRef.current!.clientWidth / totalTicks / (rangeMax - rangeMin); - const { levelIndex, barIndex } = convertPixelCoordinatesToBarCoordinates( - { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY }, - levels, - pixelsPerTick, - totalTicks, - rangeMin - ); - - // if clicking on a block in the canvas - if (barIndex !== -1 && !isNaN(levelIndex) && !isNaN(barIndex)) { - const item = levels[levelIndex][barIndex]; - setClickedItemData({ - posY: e.clientY, - posX: e.clientX, - item, - level: levelIndex, - label: data.getLabel(item.itemIndexes[0]), - }); - } else { - // if clicking on the canvas but there is no block beneath the cursor - setClickedItemData(undefined); - } - }, - [data, rangeMin, rangeMax, totalTicks, levels] - ); - - const onGraphMouseMove = useCallback( - (e: ReactMouseEvent) => { - if (tooltipRef.current && clickedItemData === undefined) { - setTooltipItem(undefined); - const pixelsPerTick = graphRef.current!.clientWidth / totalTicks / (rangeMax - rangeMin); - const { levelIndex, barIndex } = convertPixelCoordinatesToBarCoordinates( - { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY }, - levels, - pixelsPerTick, - totalTicks, - rangeMin - ); - - if (barIndex !== -1 && !isNaN(levelIndex) && !isNaN(barIndex)) { - // tooltip has a set number of lines of text so 200 should be good enough (with some buffer) without going - // into measuring rendered sizes - if (e.clientY < document.documentElement.clientHeight - 200) { - tooltipRef.current.style.top = e.clientY + 'px'; - tooltipRef.current.style.bottom = 'auto'; - } else { - tooltipRef.current.style.bottom = document.documentElement.clientHeight - e.clientY + 'px'; - tooltipRef.current.style.top = 'auto'; - } - - // 400 is max width of the tooltip - if (e.clientX < document.documentElement.clientWidth - 400) { - tooltipRef.current.style.left = e.clientX + 15 + 'px'; - tooltipRef.current.style.right = 'auto'; - } else { - tooltipRef.current.style.right = document.documentElement.clientWidth - e.clientX + 15 + 'px'; - tooltipRef.current.style.left = 'auto'; - } - - setTooltipItem(levels[levelIndex][barIndex]); - } - } - }, - [rangeMin, rangeMax, totalTicks, clickedItemData, levels] - ); - - const onGraphMouseLeave = useCallback(() => { - setTooltipItem(undefined); - }, []); - - // hide context menu if outside the flame graph canvas is clicked - useEffect(() => { - const handleOnClick = (e: MouseEvent) => { - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - if ((e.target as HTMLElement).parentElement?.id !== 'flameGraphCanvasContainer_clickOutsideCheck') { - setClickedItemData(undefined); - } - }; - window.addEventListener('click', handleOnClick); - return () => window.removeEventListener('click', handleOnClick); - }, [setClickedItemData]); - - return ( -
- -
- {sandwichItem && ( -
-
- Callers - -
-
- - Callees -
-
- )} -
- -
-
- - {clickedItemData && ( - { - setClickedItemData(undefined); - }} - onItemFocus={() => { - setRangeMin(clickedItemData.item.start / totalTicks); - setRangeMax((clickedItemData.item.start + clickedItemData.item.value) / totalTicks); - onItemFocused(clickedItemData); - }} - onSandwich={() => { - onSandwich(data.getLabel(clickedItemData.item.itemIndexes[0])); - }} - /> - )} -
- ); -}; - -const getStyles = () => ({ - graph: css` - overflow: scroll; - height: 100%; - flex-grow: 1; - flex-basis: 50%; - `, - canvasContainer: css` - label: canvasContainer; - display: flex; - `, - canvasWrapper: css` - label: canvasWrapper; - cursor: pointer; - flex: 1; - overflow: hidden; - `, - sandwichMarker: css` - writing-mode: vertical-lr; - transform: rotate(180deg); - overflow: hidden; - white-space: nowrap; - `, - sandwichMarkerIcon: css` - vertical-align: baseline; - `, -}); - -// Convert pixel coordinates to bar coordinates in the levels array so that we can add mouse events like clicks to -// the canvas. -const convertPixelCoordinatesToBarCoordinates = ( - // position relative to the start of the graph - pos: { x: number; y: number }, - levels: LevelItem[][], - pixelsPerTick: number, - totalTicks: number, - rangeMin: number -) => { - const levelIndex = Math.floor(pos.y / (PIXELS_PER_LEVEL / window.devicePixelRatio)); - const barIndex = getBarIndex(pos.x, levels[levelIndex], pixelsPerTick, totalTicks, rangeMin); - return { levelIndex, barIndex }; -}; - -/** - * Binary search for a bar in a level, based on the X pixel coordinate. Useful for detecting which bar did user click - * on. - */ -const getBarIndex = (x: number, level: LevelItem[], pixelsPerTick: number, totalTicks: number, rangeMin: number) => { - if (level) { - let start = 0; - let end = level.length - 1; - - while (start <= end) { - const midIndex = (start + end) >> 1; - const startOfBar = getBarX(level[midIndex].start, totalTicks, rangeMin, pixelsPerTick); - const startOfNextBar = getBarX( - level[midIndex].start + level[midIndex].value, - totalTicks, - rangeMin, - pixelsPerTick - ); - - if (startOfBar <= x && startOfNextBar >= x) { - return midIndex; - } - - if (startOfBar > x) { - end = midIndex - 1; - } else { - start = midIndex + 1; - } - } - } - return -1; -}; - -export default FlameGraph; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphContextMenu.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphContextMenu.tsx deleted file mode 100644 index b30d8fc18b9..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphContextMenu.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import React from 'react'; - -import { MenuItem, ContextMenu } from '@grafana/ui'; - -import { ClickedItemData } from '../types'; - -type Props = { - itemData: ClickedItemData; - onMenuItemClick: () => void; - onItemFocus: () => void; - onSandwich: () => void; -}; - -const FlameGraphContextMenu = ({ itemData, onMenuItemClick, onItemFocus, onSandwich }: Props) => { - function renderItems() { - return ( - <> - { - onItemFocus(); - onMenuItemClick(); - }} - /> - { - navigator.clipboard.writeText(itemData.label).then(() => { - onMenuItemClick(); - }); - }} - /> - { - onSandwich(); - onMenuItemClick(); - }} - /> - - ); - } - - return ( -
- -
- ); -}; - -export default FlameGraphContextMenu; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphMetadata.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphMetadata.tsx deleted file mode 100644 index 869e0ad37c4..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphMetadata.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import { css } from '@emotion/css'; -import React, { ReactNode } from 'react'; - -import { getValueFormat, GrafanaTheme2 } from '@grafana/data/src'; -import { Icon, IconButton, useStyles2 } from '@grafana/ui'; - -import { ClickedItemData } from '../types'; - -import { FlameGraphDataContainer } from './dataTransform'; - -type Props = { - data: FlameGraphDataContainer; - totalTicks: number; - onFocusPillClick: () => void; - onSandwichPillClick: () => void; - focusedItem?: ClickedItemData; - sandwichedLabel?: string; -}; - -const FlameGraphMetadata = React.memo( - ({ data, focusedItem, totalTicks, sandwichedLabel, onFocusPillClick, onSandwichPillClick }: Props) => { - const styles = useStyles2(getStyles); - const parts: ReactNode[] = []; - const ticksVal = getValueFormat('short')(totalTicks); - - const displayValue = data.valueDisplayProcessor(totalTicks); - let unitValue = displayValue.text + displayValue.suffix; - const unitTitle = data.getUnitTitle(); - if (unitTitle === 'Count') { - if (!displayValue.suffix) { - // Makes sure we don't show 123undefined or something like that if suffix isn't defined - unitValue = displayValue.text; - } - } - - parts.push( -
- {unitValue} | {ticksVal.text} - {ticksVal.suffix} samples ({unitTitle}) -
- ); - - if (sandwichedLabel) { - parts.push( - - -
- {' '} - {sandwichedLabel.substring(sandwichedLabel.lastIndexOf('/') + 1)} - -
-
- ); - } - - if (focusedItem) { - const percentValue = Math.round(10000 * (focusedItem.item.value / totalTicks)) / 100; - parts.push( - - -
- {percentValue}% of total - -
-
- ); - } - - return <>{
{parts}
}; - } -); - -FlameGraphMetadata.displayName = 'FlameGraphMetadata'; - -const getStyles = (theme: GrafanaTheme2) => ({ - metadataPill: css` - label: metadataPill; - display: inline-block; - background: ${theme.colors.background.secondary}; - border-radius: ${theme.shape.borderRadius(8)}; - padding: ${theme.spacing(0.5, 1)}; - font-size: ${theme.typography.bodySmall.fontSize}; - font-weight: ${theme.typography.fontWeightMedium}; - line-height: ${theme.typography.bodySmall.lineHeight}; - color: ${theme.colors.text.secondary}; - `, - - pillCloseButton: css` - label: pillCloseButton; - vertical-align: text-bottom; - margin: ${theme.spacing(0, 0.5)}; - `, - metadata: css` - margin: 8px 0; - text-align: center; - `, -}); - -export default FlameGraphMetadata; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphTooltip.test.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphTooltip.test.tsx deleted file mode 100644 index e3566682267..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphTooltip.test.tsx +++ /dev/null @@ -1,114 +0,0 @@ -import { Field, FieldType, createDataFrame } from '@grafana/data'; - -import { getTooltipData } from './FlameGraphTooltip'; -import { FlameGraphDataContainer } from './dataTransform'; - -function setupData(unit?: string) { - const flameGraphData = createDataFrame({ - fields: [ - { name: 'level', values: [0] }, - unit ? makeField('value', unit, [8_624_078_250]) : { name: 'value', values: [8_624_078_250] }, - { name: 'self', values: [978_250] }, - { name: 'label', values: ['total'] }, - ], - }); - return new FlameGraphDataContainer(flameGraphData); -} - -describe('FlameGraphTooltip', () => { - it('for bytes', () => { - const tooltipData = getTooltipData( - setupData('bytes'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, - 8_624_078_250 - ); - expect(tooltipData).toEqual({ - name: 'total', - percentSelf: 0.01, - percentValue: 100, - unitTitle: 'RAM', - unitSelf: '955 KiB', - unitValue: '8.03 GiB', - samples: '8,624,078,250', - }); - }); - - it('with default unit', () => { - const tooltipData = getTooltipData( - setupData('none'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, - 8_624_078_250 - ); - expect(tooltipData).toEqual({ - name: 'total', - percentSelf: 0.01, - percentValue: 100, - unitSelf: '978250', - unitTitle: 'Count', - unitValue: '8624078250', - samples: '8,624,078,250', - }); - }); - - it('without unit', () => { - const tooltipData = getTooltipData( - setupData('none'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, - 8_624_078_250 - ); - expect(tooltipData).toEqual({ - name: 'total', - percentSelf: 0.01, - percentValue: 100, - unitTitle: 'Count', - unitSelf: '978250', - unitValue: '8624078250', - samples: '8,624,078,250', - }); - }); - - it('for objects', () => { - const tooltipData = getTooltipData( - setupData('short'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, - 8_624_078_250 - ); - expect(tooltipData).toEqual({ - name: 'total', - percentSelf: 0.01, - percentValue: 100, - unitTitle: 'Count', - unitSelf: '978 K', - unitValue: '8.62 Bil', - samples: '8,624,078,250', - }); - }); - - it('for nanoseconds', () => { - const tooltipData = getTooltipData( - setupData('ns'), - { start: 0, itemIndexes: [0], value: 8_624_078_250, children: [] }, - 8_624_078_250 - ); - expect(tooltipData).toEqual({ - name: 'total', - percentSelf: 0.01, - percentValue: 100, - unitTitle: 'Time', - unitSelf: '978 µs', - unitValue: '8.62 s', - samples: '8,624,078,250', - }); - }); -}); - -function makeField(name: string, unit: string, values: number[]): Field { - return { - name, - type: FieldType.number, - config: { - unit, - }, - values: values, - }; -} diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphTooltip.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphTooltip.tsx deleted file mode 100644 index c681c918139..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/FlameGraphTooltip.tsx +++ /dev/null @@ -1,118 +0,0 @@ -import { css } from '@emotion/css'; -import React, { LegacyRef } from 'react'; - -import { GrafanaTheme2 } from '@grafana/data'; -import { useStyles2 } from '@grafana/ui'; - -import { FlameGraphDataContainer, LevelItem } from './dataTransform'; - -type Props = { - data: FlameGraphDataContainer; - totalTicks: number; - item?: LevelItem; - tooltipRef?: LegacyRef; -}; - -const FlameGraphTooltip = ({ data, tooltipRef, item, totalTicks }: Props) => { - const styles = useStyles2(getStyles); - - let content = null; - if (item) { - const tooltipData = getTooltipData(data, item, totalTicks); - content = ( -
-

{data.getLabel(item.itemIndexes[0])}

-

- {tooltipData.unitTitle} -
- Total: {tooltipData.unitValue} ({tooltipData.percentValue}%) -
- Self: {tooltipData.unitSelf} ({tooltipData.percentSelf}%) -
- Samples: {tooltipData.samples} -

-
- ); - } - - // Even if we don't show tooltip we need this div so the ref is consistently attached. Would need some refactor in - // FlameGraph.tsx to make it work without it. - return ( -
- {content} -
- ); -}; - -type TooltipData = { - name: string; - percentValue: number; - percentSelf: number; - unitTitle: string; - unitValue: string; - unitSelf: string; - samples: string; -}; - -export const getTooltipData = (data: FlameGraphDataContainer, item: LevelItem, totalTicks: number): TooltipData => { - const displayValue = data.valueDisplayProcessor(item.value); - const displaySelf = data.getSelfDisplay(item.itemIndexes); - - const percentValue = Math.round(10000 * (displayValue.numeric / totalTicks)) / 100; - const percentSelf = Math.round(10000 * (displaySelf.numeric / totalTicks)) / 100; - let unitValue = displayValue.text + displayValue.suffix; - let unitSelf = displaySelf.text + displaySelf.suffix; - - const unitTitle = data.getUnitTitle(); - if (unitTitle === 'Count') { - if (!displayValue.suffix) { - // Makes sure we don't show 123undefined or something like that if suffix isn't defined - unitValue = displayValue.text; - } - if (!displaySelf.suffix) { - // Makes sure we don't show 123undefined or something like that if suffix isn't defined - unitSelf = displaySelf.text; - } - } - - return { - name: data.getLabel(item.itemIndexes[0]), - percentValue, - percentSelf, - unitTitle, - unitValue, - unitSelf, - samples: displayValue.numeric.toLocaleString(), - }; -}; - -const getStyles = (theme: GrafanaTheme2) => ({ - tooltip: css` - title: tooltip; - position: fixed; - z-index: ${theme.zIndex.tooltip}; - `, - tooltipContent: css` - title: tooltipContent; - background-color: ${theme.components.tooltip.background}; - border-radius: ${theme.shape.radius.default}; - border: 1px solid ${theme.components.tooltip.background}; - box-shadow: ${theme.shadows.z2}; - color: ${theme.components.tooltip.text}; - font-size: ${theme.typography.bodySmall.fontSize}; - padding: ${theme.spacing(0.5, 1)}; - transition: opacity 0.3s; - max-width: 400px; - overflow-wrap: break-word; - `, - lastParagraph: css` - title: lastParagraph; - margin-bottom: 0; - `, - name: css` - title: name; - margin-bottom: 10px; - `, -}); - -export default FlameGraphTooltip; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap deleted file mode 100644 index 49295e1c4a9..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/__snapshots__/FlameGraph.test.tsx.snap +++ /dev/null @@ -1,37730 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`FlameGraph should render correctly 1`] = ` -[ - { - "props": { - "height": 1100, - "width": 1600, - "x": 0, - "y": 0, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "clearRect", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1599, - "x": 0.5, - "y": 0, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1599, - "x": 0.5, - "y": 0, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "total (16.5 Bil)", - "x": 4, - "y": 11, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 397.5419198055893, - "x": 0.5, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 397.5419198055893, - "x": 0.5, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/agent.(*Target).start.func1 (4.10 Bil)", - "x": 4, - "y": 33, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 546.26609963548, - "x": 399.0419198055893, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 546.26609963548, - "x": 399.0419198055893, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http.(*conn).serve (5.63 Bil)", - "x": 402.5419198055893, - "y": 33, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 600.7010935601459, - "x": 946.3080194410693, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 600.7010935601459, - "x": 946.3080194410693, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.gcBgMarkWorker (6.19 Bil)", - "x": 949.8080194410693, - "y": 33, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 1547.5091130012152, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 1551.897326852977, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 1551.897326852977, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 1568.4222357229648, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 1568.4222357229648, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.552855407047389, - "x": 1584.4471445929528, - "y": 22, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 397.5419198055893, - "x": 0.5, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 397.5419198055893, - "x": 0.5, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/agent.(*Target).scrape (4.10 Bil)", - "x": 4, - "y": 55, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http.serverHandler.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 55, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 940.947752126367, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 598.7569866342649, - "x": 946.3080194410693, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 598.7569866342649, - "x": 946.3080194410693, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.systemstack (6.17 Bil)", - "x": 949.8080194410693, - "y": 55, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 1545.5650060753342, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 14.552855407047389, - "x": 1551.897326852977, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 14.552855407047389, - "x": 1551.897326852977, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 33.0498177399757, - "x": 1566.9501822600243, - "y": 44, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 355.74362089914945, - "x": 0.5, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 355.74362089914945, - "x": 0.5, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/distributor.(*Distributor).Push (3.67 Bil)", - "x": 4, - "y": 77, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "io/ioutil.ReadAll (430 Mil)", - "x": 360.74362089914945, - "y": 77, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 77, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 940.947752126367, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 598.7569866342649, - "x": 946.3080194410693, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 598.7569866342649, - "x": 946.3080194410693, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.gcBgMarkWorker.func2 (6.17 Bil)", - "x": 949.8080194410693, - "y": 77, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.441069258809236, - "x": 1545.5650060753342, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 32.077764277035236, - "x": 1567.9222357229648, - "y": 66, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 108.84204131227219, - "x": 0.5, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 108.84204131227219, - "x": 0.5, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "compress/gzip.(*Writer).Write (1.13 Bil)", - "x": 4, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 36.91008505467801, - "x": 110.34204131227219, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 36.91008505467801, - "x": 110.34204131227219, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/pprof.OpenRaw (390 Mil)", - "x": 113.84204131227219, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 177.85783718104497, - "x": 168.66524908869988, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 177.85783718104497, - "x": 168.66524908869988, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/pprof.(*Profile).Normalize (1.84 Bil)", - "x": 172.16524908869988, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.720534629404618, - "x": 347.02308626974485, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "io.ReadAll (430 Mil)", - "x": 360.74362089914945, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/util.glob..func1.1 (5.58 Bil)", - "x": 402.5419198055893, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 940.947752126367, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 589.0364520048603, - "x": 946.3080194410693, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 589.0364520048603, - "x": 946.3080194410693, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.gcDrain (6.07 Bil)", - "x": 949.8080194410693, - "y": 99, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.552855407047389, - "x": 1535.8444714459297, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1558.2017010935601, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 32.077764277035236, - "x": 1567.9222357229648, - "y": 88, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 102.03766707168894, - "x": 0.5, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 102.03766707168894, - "x": 0.5, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "compress/flate.(*compressor).write (1.06 Bil)", - "x": 4, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 103.03766707168894, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 36.91008505467801, - "x": 110.34204131227219, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 36.91008505467801, - "x": 110.34204131227219, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/gen/google/v1.(*Profile).UnmarshalVT (390 Mil)", - "x": 113.84204131227219, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 22.329283110571083, - "x": 168.66524908869988, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 22.329283110571083, - "x": 168.66524908869988, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "sort.Sort (240 Mil)", - "x": 172.16524908869988, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 128.2831105710814, - "x": 191.99453219927096, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 128.2831105710814, - "x": 191.99453219927096, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/pprof.(*Profile).clearSampleReferences (1.33 Bil)", - "x": 195.49453219927096, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 321.2776427703524, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 321.2776427703524, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 23.329283110571083, - "x": 333.4143377885784, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "compress/gzip.(*Reader).Read (430 Mil)", - "x": 360.74362089914945, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "golang.org/x/net/http2/h2c.h2cHandler.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 940.947752126367, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 432.53584447144596, - "x": 946.3080194410693, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 432.53584447144596, - "x": 946.3080194410693, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.scanobject (4.46 Bil)", - "x": 949.8080194410693, - "y": 121, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 1379.8438639125152, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 1379.8438639125152, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 8.748481166464156, - "x": 1399.7569866342649, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 1409.005467800729, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 1409.005467800729, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1426.0024301336575, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 1427.4744835965978, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 1427.4744835965978, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1447.3876063183475, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 1545.5650060753342, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 7.776427703523694, - "x": 1567.9222357229648, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 1577.6427703523696, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 14.580801944106927, - "x": 1584.4471445929528, - "y": 110, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 98.1494532199271, - "x": 0.5, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 98.1494532199271, - "x": 0.5, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "compress/flate.(*compressor).deflate (1.02 Bil)", - "x": 4, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.69258809234508, - "x": 99.1494532199271, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 110.34204131227219, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 110.34204131227219, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 127.83900364520049, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 127.83900364520049, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 7.776427703523694, - "x": 138.03159173754557, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 148.2521263669502, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 22.329283110571083, - "x": 168.66524908869988, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 22.329283110571083, - "x": 168.66524908869988, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "sort.quickSort (240 Mil)", - "x": 172.16524908869988, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 124.39489671931958, - "x": 191.99453219927096, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 124.39489671931958, - "x": 191.99453219927096, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/slices.RemoveInPlace[...] (1.29 Bil)", - "x": 195.49453219927096, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 316.88942891859057, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.69258809234508, - "x": 320.7776427703524, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 333.4143377885784, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 343.134872417983, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 347.02308626974485, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 40.798298906439854, - "x": 357.24362089914945, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "compress/flate.(*decompressor).Read (430 Mil)", - "x": 360.74362089914945, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 940.947752126367, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 945.8080194410693, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 41.77035236938032, - "x": 952.140340218712, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 41.77035236938032, - "x": 952.140340218712, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.pageIndexOf (440 Mil)", - "x": 955.640340218712, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 51.49088699878494, - "x": 994.9106925880924, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 51.49088699878494, - "x": 994.9106925880924, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.greyobject (540 Mil)", - "x": 998.4106925880924, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 94.26123936816525, - "x": 1047.4015795868772, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 94.26123936816525, - "x": 1047.4015795868772, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.findObject (980 Mil)", - "x": 1050.9015795868772, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 1142.1628189550427, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 45.658566221142166, - "x": 1147.523086269745, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 45.658566221142166, - "x": 1147.523086269745, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.spanOf (480 Mil)", - "x": 1151.023086269745, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 51.49088699878494, - "x": 1194.181652490887, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 51.49088699878494, - "x": 1194.181652490887, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.markBits.isMarked (540 Mil)", - "x": 1197.681652490887, - "y": 143, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 1246.172539489672, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1399.7569866342649, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1447.3876063183475, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 1545.5650060753342, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1567.9222357229648, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1569.8663426488458, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1573.7545565006076, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1577.6427703523696, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1580.5589307411908, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 14.580801944106927, - "x": 1584.4471445929528, - "y": 132, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 0.5, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 0.5, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 50.51883353584447, - "x": 15.080801944106927, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 50.51883353584447, - "x": 15.080801944106927, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "compress/flate.(*compressor).findMatch (530 Mil)", - "x": 18.580801944106927, - "y": 165, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 7.776427703523694, - "x": 66.0996354799514, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.52490886998785, - "x": 103.03766707168894, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 18.469015795868774, - "x": 127.33900364520049, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 148.2521263669502, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 148.2521263669502, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 160.3888213851762, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 168.16524908869988, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 17.469015795868774, - "x": 173.5255164034022, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 17.469015795868774, - "x": 173.5255164034022, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 30.105710814094778, - "x": 191.99453219927096, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 30.105710814094778, - "x": 191.99453219927096, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/pprof.(*Profile).clearSampleReferences.func1 (320 Mil)", - "x": 195.49453219927096, - "y": 165, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 316.88942891859057, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 333.4143377885784, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 343.134872417983, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 356.74362089914945, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 34.96597812879708, - "x": 362.1038882138518, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 34.96597812879708, - "x": 362.1038882138518, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "compress/flate.(*decompressor).huffmanBlock (370 Mil)", - "x": 365.6038882138518, - "y": 165, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 397.5698663426489, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/create.(*create).initServer.func2.1 (5.58 Bil)", - "x": 402.5419198055893, - "y": 165, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 940.947752126367, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 994.4106925880924, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1046.9015795868772, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1447.3876063183475, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 1546.5370595382747, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1569.8663426488458, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1573.7545565006076, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.608748481166465, - "x": 1585.419198055893, - "y": 154, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 0.5, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 0.5, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.552855407047389, - "x": 103.03766707168894, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.720534629404618, - "x": 127.33900364520049, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 138.03159173754557, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 141.91980558930743, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 148.2521263669502, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 148.2521263669502, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 168.16524908869988, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 173.5255164034022, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 173.5255164034022, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 185.6622114216282, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 343.134872417983, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 357.71567436208994, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 361.6038882138518, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 364.0479951397327, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 364.0479951397327, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 381.044957472661, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 397.5698663426489, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.58 Bil)", - "x": 402.5419198055893, - "y": 187, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 940.947752126367, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 994.4106925880924, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 1546.5370595382747, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1569.8663426488458, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.608748481166465, - "x": 1585.419198055893, - "y": 176, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 14.580801944106927, - "x": 0, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 105.95382746051034, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 127.33900364520049, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 143.86391251518833, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 12.636695018226003, - "x": 147.7521263669502, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.608748481166465, - "x": 173.0255164034022, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 361.6038882138518, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 363.5479951397327, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 397.5698663426489, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 541.4058323207777, - "x": 399.0419198055893, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "github.com/opentracing-contrib/go-stdlib/nethttp.MiddlewareFunc.func5 (5.58 Bil)", - "x": 402.5419198055893, - "y": 209, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 941.9198055893074, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 995.3827460510329, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1546.5370595382747, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1548.4811664641556, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1585.419198055893, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 1592.2235722964765, - "y": 198, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 0, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 4.860267314702309, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 105.95382746051034, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 110.81409477521264, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 128.31105710814094, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 143.86391251518833, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 148.72417982989066, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 153.58444714459296, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 173.0255164034022, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 177.8857837181045, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 537.5176184690158, - "x": 399.0419198055893, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 537.5176184690158, - "x": 399.0419198055893, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.54 Bil)", - "x": 402.5419198055893, - "y": 231, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 937.0595382746052, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1585.419198055893, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1596.1117861482383, - "y": 220, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 0, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 105.95382746051034, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 107.89793438639126, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 110.81409477521264, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 128.31105710814094, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 143.86391251518833, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 148.72417982989066, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 173.0255164034022, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 175.94167679222357, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 537.5176184690158, - "x": 399.0419198055893, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 537.5176184690158, - "x": 399.0419198055893, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "github.com/weaveworks/common/middleware.Log.Wrap.func1 (5.54 Bil)", - "x": 402.5419198055893, - "y": 253, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 937.0595382746052, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1585.419198055893, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1596.1117861482383, - "y": 242, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 0, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1.9441069258809236, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 105.95382746051034, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 107.89793438639126, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 110.81409477521264, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 143.86391251518833, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 173.0255164034022, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 536.5455650060753, - "x": 399.0419198055893, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 536.5455650060753, - "x": 399.0419198055893, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (5.53 Bil)", - "x": 402.5419198055893, - "y": 275, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 936.0874848116647, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1585.419198055893, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1596.1117861482383, - "y": 264, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1.9441069258809236, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 105.95382746051034, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 107.89793438639126, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 111.7861482381531, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 173.0255164034022, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 534.6014580801944, - "x": 399.0419198055893, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 534.6014580801944, - "x": 399.0419198055893, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "github.com/weaveworks/common/middleware.Instrument.Wrap.func1 (5.51 Bil)", - "x": 402.5419198055893, - "y": 297, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 934.1433778857838, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1585.419198055893, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1596.1117861482383, - "y": 286, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1.9441069258809236, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 107.89793438639126, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 533.629404617254, - "x": 399.0419198055893, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 533.629404617254, - "x": 399.0419198055893, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics (5.50 Bil)", - "x": 402.5419198055893, - "y": 319, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 933.1713244228433, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 939.0036452004861, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 1596.1117861482383, - "y": 308, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1.9441069258809236, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 107.89793438639126, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 532.6573511543135, - "x": 399.0419198055893, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 532.6573511543135, - "x": 399.0419198055893, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "github.com/weaveworks/common/middleware.Instrument.Wrap.func1.2 (5.49 Bil)", - "x": 402.5419198055893, - "y": 341, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 932.1992709599028, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 939.0036452004861, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 330, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1.9441069258809236, - "y": 352, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 352, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 352, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 532.6573511543135, - "x": 399.0419198055893, - "y": 352, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 532.6573511543135, - "x": 399.0419198055893, - "y": 352, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "github.com/gorilla/mux.(*Router).ServeHTTP (5.49 Bil)", - "x": 402.5419198055893, - "y": 363, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 933.1713244228433, - "y": 352, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 352, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 352, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 179.82989064398544, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 155.50060753341435, - "x": 399.0419198055893, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 155.50060753341435, - "x": 399.0419198055893, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "github.com/bufbuild/connect-go.(*Handler).ServeHTTP (1.61 Bil)", - "x": 402.5419198055893, - "y": 385, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http.(*ServeMux).ServeHTTP (3.88 Bil)", - "x": 559.0425273390036, - "y": 385, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 933.1713244228433, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 935.1154313487242, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 374, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 128.31105710814094, - "y": 396, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 155.50060753341435, - "x": 399.0419198055893, - "y": 396, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 155.50060753341435, - "x": 399.0419198055893, - "y": 396, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "github.com/bufbuild/connect-go.NewUnaryHandler[...].func1 (1.61 Bil)", - "x": 402.5419198055893, - "y": 407, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 396, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 396, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http.HandlerFunc.ServeHTTP (3.88 Bil)", - "x": 559.0425273390036, - "y": 407, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 935.1154313487242, - "y": 396, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 396, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 396, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 148.69623329283112, - "x": 399.0419198055893, - "y": 418, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 148.69623329283112, - "x": 399.0419198055893, - "y": 418, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "github.com/bufbuild/connect-go.NewUnaryHandler[...].func1.1 (1.54 Bil)", - "x": 402.5419198055893, - "y": 429, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 418, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 418, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 418, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http/pprof.Index (3.88 Bil)", - "x": 559.0425273390036, - "y": 429, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 935.1154313487242, - "y": 418, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 1592.2235722964765, - "y": 418, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 418, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 148.69623329283112, - "x": 399.0419198055893, - "y": 440, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 148.69623329283112, - "x": 399.0419198055893, - "y": 440, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/ingester.(*Ingester).Push (1.54 Bil)", - "x": 402.5419198055893, - "y": 451, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 440, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 440, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 376.1567436208992, - "x": 555.5425273390036, - "y": 440, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "net/http/pprof.handler.ServeHTTP (3.88 Bil)", - "x": 559.0425273390036, - "y": 451, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 935.1154313487242, - "y": 440, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1592.2235722964765, - "y": 440, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1594.1676792223573, - "y": 440, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 440, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 17.469015795868774, - "x": 399.0419198055893, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 17.469015795868774, - "x": 399.0419198055893, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 81.62454434993926, - "x": 417.51093560145813, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 81.62454434993926, - "x": 417.51093560145813, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/create.(*Head).Ingest (850 Mil)", - "x": 421.01093560145813, - "y": 473, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 45.658566221142166, - "x": 500.1354799513974, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 45.658566221142166, - "x": 500.1354799513974, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/gen/google/v1.(*Profile).UnmarshalVT (480 Mil)", - "x": 503.6354799513974, - "y": 473, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 8.748481166464156, - "x": 546.2940461725395, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 375.1846901579587, - "x": 555.5425273390036, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 375.1846901579587, - "x": 555.5425273390036, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.(*Profile).WriteTo (3.87 Bil)", - "x": 559.0425273390036, - "y": 473, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1592.2235722964765, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1594.1676792223573, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 462, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 399.0419198055893, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 399.0419198055893, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 415.0668286755772, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 33.02187120291616, - "x": 417.51093560145813, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 33.02187120291616, - "x": 417.51093560145813, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/create.(*Head).convertSamples (350 Mil)", - "x": 421.01093560145813, - "y": 495, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 34.96597812879708, - "x": 451.5328068043743, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 34.96597812879708, - "x": 451.5328068043743, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/create.(*deduplicatingSlice[...]).ingest (370 Mil)", - "x": 455.0328068043743, - "y": 495, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 486.99878493317135, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 488.4708383961118, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 488.4708383961118, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 500.1354799513974, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 500.1354799513974, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 12.608748481166465, - "x": 514.7162818955043, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 12.608748481166465, - "x": 514.7162818955043, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 528.3250303766707, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 528.3250303766707, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 539.4896719319563, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 8.748481166464156, - "x": 546.2940461725395, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 312.97326852976914, - "x": 555.5425273390036, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 312.97326852976914, - "x": 555.5425273390036, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.writeAlloc (3.23 Bil)", - "x": 559.0425273390036, - "y": 495, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 61.211421628189555, - "x": 869.5157958687728, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 61.211421628189555, - "x": 869.5157958687728, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.writeGoroutine (640 Mil)", - "x": 873.0157958687728, - "y": 495, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1592.2235722964765, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1594.1676792223573, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 484, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 399.0419198055893, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 399.0419198055893, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 415.0668286755772, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 28.161603888213854, - "x": 417.51093560145813, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 28.161603888213854, - "x": 417.51093560145813, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "test/pkg/create.(*deduplicatingSlice[...]).ingest (300 Mil)", - "x": 421.01093560145813, - "y": 517, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 446.172539489672, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 33.0498177399757, - "x": 451.0328068043743, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 486.99878493317135, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 488.4708383961118, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 488.4708383961118, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 498.6634264884569, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 501.1075334143378, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 501.1075334143378, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.664641555285542, - "x": 514.2162818955043, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 527.8250303766707, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 539.4896719319563, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 312.97326852976914, - "x": 555.5425273390036, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 312.97326852976914, - "x": 555.5425273390036, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.writeHeapInternal (3.23 Bil)", - "x": 559.0425273390036, - "y": 517, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 61.211421628189555, - "x": 869.5157958687728, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 61.211421628189555, - "x": 869.5157958687728, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.writeRuntimeProfile (640 Mil)", - "x": 873.0157958687728, - "y": 517, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1592.2235722964765, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1594.1676792223573, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 1596.1117861482383, - "y": 506, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 398.5419198055893, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 401.95808019441074, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 401.95808019441074, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 413.12272174969627, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 417.51093560145813, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 417.51093560145813, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.552855407047389, - "x": 428.67557715674366, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 446.172539489672, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 451.0328068043743, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 454.92102065613614, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 464.64155528554073, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 473.3900364520049, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 483.1105710814095, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 7.776427703523694, - "x": 486.99878493317135, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 500.6075334143378, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 514.2162818955043, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 521.992709599028, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 527.8250303766707, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 539.4896719319563, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 311.0291616038882, - "x": 555.5425273390036, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 311.0291616038882, - "x": 555.5425273390036, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.writeHeapProto (3.21 Bil)", - "x": 559.0425273390036, - "y": 539, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 867.0716889428919, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 23.301336573511545, - "x": 869.5157958687728, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 23.301336573511545, - "x": 869.5157958687728, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.runtime_goroutineProfileWithLabels (250 Mil)", - "x": 873.0157958687728, - "y": 539, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 36.91008505467801, - "x": 893.8171324422843, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 36.91008505467801, - "x": 893.8171324422843, - "y": 528, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.printCountProfile (390 Mil)", - "x": 897.3171324422843, - "y": 539, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 401.45808019441074, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 413.12272174969627, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 417.51093560145813, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 417.51093560145813, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 428.67557715674366, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 437.4240583232078, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 447.1445929526124, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 454.92102065613614, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 466.58566221142166, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 483.1105710814095, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 486.99878493317135, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 514.2162818955043, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 527.8250303766707, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 548.2381530984204, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 30.105710814094778, - "x": 555.5425273390036, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 30.105710814094778, - "x": 555.5425273390036, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.(*profileBuilder).pbSample (320 Mil)", - "x": 559.0425273390036, - "y": 561, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 178.82989064398544, - "x": 586.6482381530984, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 178.82989064398544, - "x": 586.6482381530984, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.(*profileBuilder).appendLocsForStack (1.85 Bil)", - "x": 590.1482381530984, - "y": 561, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 765.9781287970839, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 26.21749696233293, - "x": 767.4501822600243, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 26.21749696233293, - "x": 767.4501822600243, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.(*profileBuilder).build (280 Mil)", - "x": 770.9501822600243, - "y": 561, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 56.35115431348724, - "x": 794.6676792223573, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 56.35115431348724, - "x": 794.6676792223573, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.FuncForPC (590 Mil)", - "x": 798.1676792223573, - "y": 561, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.664641555285542, - "x": 851.5188335358445, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 867.0716889428919, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 23.301336573511545, - "x": 869.5157958687728, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 23.301336573511545, - "x": 869.5157958687728, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.goroutineProfileWithLabels (250 Mil)", - "x": 873.0157958687728, - "y": 561, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 17.496962332928312, - "x": 893.3171324422843, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 911.3140947752127, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 911.3140947752127, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 928.311057108141, - "y": 550, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 401.45808019441074, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.720534629404618, - "x": 416.03888213851764, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 428.67557715674366, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 437.4240583232078, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 454.92102065613614, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 487.9708383961118, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 528.7970838396112, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 34.993924665856625, - "x": 548.2381530984204, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 38.85419198055893, - "x": 586.6482381530984, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 38.85419198055893, - "x": 586.6482381530984, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.(*profileBuilder).emitLocation (410 Mil)", - "x": 590.1482381530984, - "y": 583, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 14.552855407047389, - "x": 626.5024301336574, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 14.552855407047389, - "x": 626.5024301336574, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 61.211421628189555, - "x": 642.0552855407047, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 61.211421628189555, - "x": 642.0552855407047, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime/pprof.allFrames (640 Mil)", - "x": 645.5552855407047, - "y": 583, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 27.189550425273392, - "x": 704.2667071688943, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 27.189550425273392, - "x": 704.2667071688943, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.mapaccess2_fast64 (290 Mil)", - "x": 707.7667071688943, - "y": 583, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 731.9562575941677, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 735.3724179829891, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.413122721749698, - "x": 735.3724179829891, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 755.2855407047388, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 794.1676792223573, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 800.5, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 800.5, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 34.96597812879708, - "x": 815.080801944107, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 34.96597812879708, - "x": 815.080801944107, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.funcline1 (370 Mil)", - "x": 818.580801944107, - "y": 583, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 7.776427703523694, - "x": 854.434993924666, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 21.35722964763062, - "x": 869.5157958687728, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 21.35722964763062, - "x": 869.5157958687728, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.forEachGRace (230 Mil)", - "x": 873.0157958687728, - "y": 583, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 891.3730255164035, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 899.1494532199272, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 8.748481166464156, - "x": 902.0656136087485, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 911.3140947752127, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 911.3140947752127, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 927.3390036452006, - "y": 572, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 416.03888213851764, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 437.4240583232078, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 487.9708383961118, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 489.9149453219927, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 528.7970838396112, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 22.35722964763062, - "x": 548.2381530984204, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 586.6482381530984, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 586.6482381530984, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 28.189550425273392, - "x": 596.8408262454435, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 626.5024301336574, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 626.5024301336574, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 641.5552855407047, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 52.462940461725395, - "x": 643.0273390036452, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 52.462940461725395, - "x": 643.0273390036452, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.(*Frames).Next (550 Mil)", - "x": 646.5273390036452, - "y": 605, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 695.9902794653706, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 8.748481166464156, - "x": 703.7667071688943, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 731.9562575941677, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 734.8724179829891, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 737.3165249088701, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 737.3165249088701, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 748.4811664641555, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 794.1676792223573, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 800, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 803.4161603888215, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.664641555285542, - "x": 803.4161603888215, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 24.273390036452007, - "x": 815.080801944107, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 24.273390036452007, - "x": 815.080801944107, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.pcvalue (260 Mil)", - "x": 818.580801944107, - "y": 605, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 840.354191980559, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 840.354191980559, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 854.434993924666, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 869.5157958687728, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 16.496962332928312, - "x": 869.5157958687728, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.664641555285542, - "x": 886.5127582017011, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 899.1494532199272, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 902.0656136087485, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 18.469015795868774, - "x": 908.8699878493318, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 928.311057108141, - "y": 594, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 487.9708383961118, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 489.9149453219927, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 546.2940461725395, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 19.441069258809236, - "x": 548.2381530984204, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 586.6482381530984, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.69258809234508, - "x": 586.6482381530984, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 596.8408262454435, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 603.6452004860267, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 607.5334143377886, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 615.3098420413123, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 622.1142162818956, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.664641555285542, - "x": 626.0024301336574, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 38.85419198055893, - "x": 643.0273390036452, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 38.85419198055893, - "x": 643.0273390036452, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.funcline1 (410 Mil)", - "x": 646.5273390036452, - "y": 627, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.69258809234508, - "x": 682.3815309842041, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 695.9902794653706, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 732.9283110571082, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 14.580801944106927, - "x": 734.8724179829891, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 767.4501822600243, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.636695018226003, - "x": 782.0309842041313, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 794.1676792223573, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.664641555285542, - "x": 800, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 814.580801944107, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 818.9690157958688, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 13.580801944106927, - "x": 818.9690157958688, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 8.748481166464156, - "x": 839.854191980559, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 854.434993924666, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 9.720534629404618, - "x": 885.5407047387607, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 896.2332928311058, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 899.1494532199272, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 18.469015795868774, - "x": 908.8699878493318, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 928.311057108141, - "y": 616, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 489.9149453219927, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 7.776427703523694, - "x": 554.0704738760633, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 566.7071688942892, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.69258809234508, - "x": 586.1482381530984, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 607.5334143377886, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 618.2260024301337, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 627.9465370595383, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 7.776427703523694, - "x": 642.5273390036452, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 24.273390036452007, - "x": 650.803766707169, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 24.273390036452007, - "x": 650.803766707169, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "maxWidth": null, - "text": "runtime.pcvalue (260 Mil)", - "x": 654.303766707169, - "y": 649, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fillText", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 675.5771567436209, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 682.3815309842041, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 688.213851761847, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 732.9283110571082, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 734.8724179829891, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.664641555285542, - "x": 736.8165249088701, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 27.21749696233293, - "x": 766.9501822600243, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 885.5407047387607, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 891.3730255164035, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 899.1494532199272, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 17.496962332928312, - "x": 909.8420413122723, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 928.311057108141, - "y": 638, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 7.776427703523694, - "x": 554.0704738760633, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.69258809234508, - "x": 586.1482381530984, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 5.832320777642771, - "x": 642.5273390036452, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 650.303766707169, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 652.7478736330498, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 652.7478736330498, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 675.5771567436209, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 682.3815309842041, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 688.213851761847, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 692.1020656136088, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 736.8165249088701, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 745.5650060753342, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 766.9501822600243, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 7.776427703523694, - "x": 772.7825030376671, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 6.804374240583233, - "x": 781.5309842041313, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 885.5407047387607, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 893.3171324422843, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 910.8140947752127, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.664641555285542, - "x": 915.674362089915, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 929.2831105710815, - "y": 660, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 554.0704738760633, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 558.9307411907655, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.69258809234508, - "x": 586.1482381530984, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 675.5771567436209, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 745.5650060753342, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 772.7825030376671, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 777.6427703523694, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 784.4471445929527, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "stroke", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 15.52490886998785, - "x": 869.5157958687728, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 885.5407047387607, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 910.8140947752127, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.664641555285542, - "x": 915.674362089915, - "y": 682, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 416.03888213851764, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 539.4896719319563, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 554.0704738760633, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.69258809234508, - "x": 586.1482381530984, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 745.5650060753342, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 777.6427703523694, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 11.664641555285542, - "x": 869.0157958687728, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 904.0097205346294, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 910.8140947752127, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 917.6184690157959, - "y": 704, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 498.6634264884569, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 554.0704738760633, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 590.0364520048603, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 10.69258809234508, - "x": 869.0157958687728, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 917.6184690157959, - "y": 726, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 554.0704738760633, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 4.860267314702309, - "x": 590.0364520048603, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 851.5188335358445, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 869.9878493317133, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 3.888213851761847, - "x": 873.8760631834751, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 891.3730255164035, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 917.6184690157959, - "y": 748, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 437.4240583232078, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 548.2381530984204, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 592.9526123936816, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 917.6184690157959, - "y": 770, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 592.9526123936816, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 607.5334143377886, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 918.5905224787364, - "y": 792, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 814, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 558.9307411907655, - "y": 814, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 592.9526123936816, - "y": 814, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 814, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 814, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 814, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 814, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 2.9161603888213854, - "x": 904.0097205346294, - "y": 814, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 918.5905224787364, - "y": 814, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 836, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 592.9526123936816, - "y": 836, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 836, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 836, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 836, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 836, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 904.0097205346294, - "y": 836, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 918.5905224787364, - "y": 836, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 858, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 592.9526123936816, - "y": 858, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 858, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 858, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 858, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 858, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 904.9817739975699, - "y": 858, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 880, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 599.7569866342649, - "y": 880, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 880, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 880, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 880, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 902, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 902, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 902, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 902, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 924, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 1.9441069258809236, - "x": 772.7825030376671, - "y": 924, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 924, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 924, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 946, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 946, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 946, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 946, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 968, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 968, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 968, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 968, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 990, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 990, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 990, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 784.4471445929527, - "y": 990, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 1012, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 1012, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 1012, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 1034, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 1034, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 1034, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 1056, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 772.7825030376671, - "y": 1056, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 779.5868772782503, - "y": 1056, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, - { - "props": { - "fillRule": "nonzero", - "path": [ - { - "props": {}, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "beginPath", - }, - { - "props": { - "height": 22, - "width": 0.9720534629404618, - "x": 555.0425273390036, - "y": 1078, - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "rect", - }, - ], - }, - "transform": [ - 1, - 0, - 0, - 1, - 0, - 0, - ], - "type": "fill", - }, -] -`; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/dataTransform.test.ts b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/dataTransform.test.ts deleted file mode 100644 index d9e28bb2403..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/dataTransform.test.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { createDataFrame } from '@grafana/data'; - -import { FlameGraphDataContainer, LevelItem, nestedSetToLevels } from './dataTransform'; - -describe('nestedSetToLevels', () => { - it('converts nested set data frame to levels', () => { - // [1------] - // [2---][6] - // [3][5][7] - // [4] [8] - // [9] - const frame = createDataFrame({ - fields: [ - { name: 'level', values: [0, 1, 2, 3, 2, 1, 2, 3, 4] }, - { name: 'value', values: [10, 5, 3, 1, 1, 4, 3, 2, 1] }, - { name: 'label', values: ['1', '2', '3', '4', '5', '6', '7', '8', '9'] }, - { name: 'self', values: [0, 0, 0, 0, 0, 0, 0, 0, 0] }, - ], - }); - const [levels] = nestedSetToLevels(new FlameGraphDataContainer(frame)); - - const n9: LevelItem = { itemIndexes: [8], start: 5, children: [], value: 1 }; - const n8: LevelItem = { itemIndexes: [7], start: 5, children: [n9], value: 2 }; - const n7: LevelItem = { itemIndexes: [6], start: 5, children: [n8], value: 3 }; - const n6: LevelItem = { itemIndexes: [5], start: 5, children: [n7], value: 4 }; - const n5: LevelItem = { itemIndexes: [4], start: 3, children: [], value: 1 }; - const n4: LevelItem = { itemIndexes: [3], start: 0, children: [], value: 1 }; - const n3: LevelItem = { itemIndexes: [2], start: 0, children: [n4], value: 3 }; - const n2: LevelItem = { itemIndexes: [1], start: 0, children: [n3, n5], value: 5 }; - const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n6], value: 10 }; - - n2.parents = [n1]; - n6.parents = [n1]; - n3.parents = [n2]; - n5.parents = [n2]; - n4.parents = [n3]; - n7.parents = [n6]; - n8.parents = [n7]; - n9.parents = [n8]; - - expect(levels[0]).toEqual([n1]); - expect(levels[1]).toEqual([n2, n6]); - expect(levels[2]).toEqual([n3, n5, n7]); - expect(levels[3]).toEqual([n4, n8]); - expect(levels[4]).toEqual([n9]); - }); - - it('converts nested set data if multiple same level items', () => { - const frame = createDataFrame({ - fields: [ - { name: 'level', values: [0, 1, 1, 1] }, - { name: 'value', values: [10, 5, 3, 1] }, - { name: 'label', values: ['1', '2', '3', '4'] }, - { name: 'self', values: [10, 5, 3, 1] }, - ], - }); - const [levels] = nestedSetToLevels(new FlameGraphDataContainer(frame)); - - const n4: LevelItem = { itemIndexes: [3], start: 8, children: [], value: 1 }; - const n3: LevelItem = { itemIndexes: [2], start: 5, children: [], value: 3 }; - const n2: LevelItem = { itemIndexes: [1], start: 0, children: [], value: 5 }; - const n1: LevelItem = { itemIndexes: [0], start: 0, children: [n2, n3, n4], value: 10 }; - - n2.parents = [n1]; - n3.parents = [n1]; - n4.parents = [n1]; - - expect(levels[0]).toEqual([n1]); - expect(levels[1]).toEqual([n2, n3, n4]); - }); -}); diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/dataTransform.ts b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/dataTransform.ts deleted file mode 100644 index 0ae5ba48f08..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/dataTransform.ts +++ /dev/null @@ -1,201 +0,0 @@ -import { - createTheme, - DataFrame, - DisplayProcessor, - Field, - getDisplayProcessor, - getEnumDisplayProcessor, - GrafanaTheme2, -} from '@grafana/data'; - -import { SampleUnit } from '../types'; - -import { mergeParentSubtrees, mergeSubtrees } from './treeTransforms'; - -export type LevelItem = { - // Offset from the start of the level. - start: number; - // Value here can be different from a value of items in the data frame as for callers tree in sandwich view we have - // to trim the value to correspond only to the part used by the children in the subtree. - value: number; - // Index into the data frame. It is an array because for sandwich views we may be merging multiple items into single - // node. - itemIndexes: number[]; - children: LevelItem[]; - parents?: LevelItem[]; -}; - -/** - * Convert data frame with nested set format into array of level. This is mainly done for compatibility with current - * rendering code. - */ -export function nestedSetToLevels(container: FlameGraphDataContainer): [LevelItem[][], Record] { - const levels: LevelItem[][] = []; - let offset = 0; - - let parent: LevelItem | undefined = undefined; - const uniqueLabels: Record = {}; - - for (let i = 0; i < container.data.length; i++) { - const currentLevel = container.getLevel(i); - const prevLevel = i > 0 ? container.getLevel(i - 1) : undefined; - - levels[currentLevel] = levels[currentLevel] || []; - - if (prevLevel && prevLevel >= currentLevel) { - // We are going down a level or staying at the same level, so we are adding a sibling to the last item in a level. - // So we have to compute the correct offset based on the last sibling. - const lastSibling = levels[currentLevel][levels[currentLevel].length - 1]; - offset = lastSibling.start + container.getValue(lastSibling.itemIndexes[0]); - // we assume there is always a single root node so lastSibling should always have a parent. - // Also it has to have the same parent because of how the items are ordered. - parent = lastSibling.parents![0]; - } - - const newItem: LevelItem = { - itemIndexes: [i], - value: container.getValue(i), - start: offset, - parents: parent && [parent], - children: [], - }; - - if (uniqueLabels[container.getLabel(i)]) { - uniqueLabels[container.getLabel(i)].push(newItem); - } else { - uniqueLabels[container.getLabel(i)] = [newItem]; - } - - if (parent) { - parent.children.push(newItem); - } - parent = newItem; - - levels[currentLevel].push(newItem); - } - - return [levels, uniqueLabels]; -} - -export class FlameGraphDataContainer { - data: DataFrame; - labelField: Field; - levelField: Field; - valueField: Field; - selfField: Field; - - labelDisplayProcessor: DisplayProcessor; - valueDisplayProcessor: DisplayProcessor; - uniqueLabels: string[]; - - private levels: LevelItem[][] | undefined; - private uniqueLabelsMap: Record | undefined; - - constructor(data: DataFrame, theme: GrafanaTheme2 = createTheme()) { - this.data = data; - this.labelField = data.fields.find((f) => f.name === 'label')!; - this.levelField = data.fields.find((f) => f.name === 'level')!; - this.valueField = data.fields.find((f) => f.name === 'value')!; - this.selfField = data.fields.find((f) => f.name === 'self')!; - - if (!(this.labelField && this.levelField && this.valueField && this.selfField)) { - throw new Error('Malformed dataFrame: value, level and label and self fields are required.'); - } - - const enumConfig = this.labelField?.config?.type?.enum; - // Label can actually be an enum field so depending on that we have to access it through display processor. This is - // both a backward compatibility but also to allow using a simple dataFrame without enum config. This would allow - // users to use this panel with correct query from data sources that do not return profiles natively. - if (enumConfig) { - this.labelDisplayProcessor = getEnumDisplayProcessor(theme, enumConfig); - this.uniqueLabels = enumConfig.text || []; - } else { - this.labelDisplayProcessor = (value) => ({ - text: value + '', - numeric: 0, - }); - this.uniqueLabels = [...new Set(this.labelField.values)]; - } - - this.valueDisplayProcessor = getDisplayProcessor({ - field: this.valueField, - theme, - }); - } - - getLabel(index: number) { - return this.labelDisplayProcessor(this.labelField.values[index]).text; - } - - getLevel(index: number) { - return this.levelField.values[index]; - } - - getValue(index: number | number[]) { - let indexArray: number[] = typeof index === 'number' ? [index] : index; - return indexArray.reduce((acc, index) => { - return acc + this.valueField.values[index]; - }, 0); - } - - getValueDisplay(index: number | number[]) { - return this.valueDisplayProcessor(this.getValue(index)); - } - - getSelf(index: number | number[]) { - let indexArray: number[] = typeof index === 'number' ? [index] : index; - return indexArray.reduce((acc, index) => { - return acc + this.selfField.values[index]; - }, 0); - } - - getSelfDisplay(index: number | number[]) { - return this.valueDisplayProcessor(this.getSelf(index)); - } - - getUniqueLabels() { - return this.uniqueLabels; - } - - getUnitTitle() { - switch (this.valueField.config.unit) { - case SampleUnit.Bytes: - return 'RAM'; - case SampleUnit.Nanoseconds: - return 'Time'; - } - - return 'Count'; - } - - getLevels() { - this.initLevels(); - return this.levels!; - } - - getSandwichLevels(label: string) { - const nodes = this.getNodesWithLabel(label); - - if (!nodes?.length) { - return []; - } - - const callers = mergeParentSubtrees(nodes, this); - const callees = mergeSubtrees(nodes, this); - - return [callers, callees]; - } - - getNodesWithLabel(label: string) { - this.initLevels(); - return this.uniqueLabelsMap![label]; - } - - private initLevels() { - if (!this.levels) { - const [levels, uniqueLabelsMap] = nestedSetToLevels(this); - this.levels = levels; - this.uniqueLabelsMap = uniqueLabelsMap; - } - } -} diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/rendering.test.ts b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/rendering.test.ts deleted file mode 100644 index 729dfad1d89..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/rendering.test.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { createDataFrame } from '@grafana/data'; - -import { FlameGraphDataContainer, LevelItem } from './dataTransform'; -import { getRectDimensionsForLevel } from './rendering'; - -function makeDataFrame(fields: Record>) { - return createDataFrame({ - fields: Object.keys(fields).map((key) => ({ - name: key, - values: fields[key], - })), - }); -} - -describe('getRectDimensionsForLevel', () => { - it('should render a single item', () => { - const level: LevelItem[] = [{ start: 0, itemIndexes: [0], children: [], value: 100 }]; - const container = new FlameGraphDataContainer(makeDataFrame({ value: [100], level: [1], label: ['1'], self: [0] })); - const result = getRectDimensionsForLevel(container, level, 1, 100, 0, 10); - expect(result).toEqual([ - { - width: 999, - height: 22, - itemIndex: 0, - x: 0, - y: 22, - collapsed: false, - ticks: 100, - label: '1', - unitLabel: '100', - }, - ]); - }); - - it('should render a multiple items', () => { - const level: LevelItem[] = [ - { start: 0, itemIndexes: [0], children: [], value: 100 }, - { start: 100, itemIndexes: [1], children: [], value: 50 }, - { start: 150, itemIndexes: [2], children: [], value: 50 }, - ]; - const container = new FlameGraphDataContainer( - makeDataFrame({ value: [100, 50, 50], level: [2, 2, 2], label: ['1', '2', '3'], self: [0, 0, 0] }) - ); - const result = getRectDimensionsForLevel(container, level, 2, 100, 0, 10); - expect(result).toEqual([ - { width: 999, height: 22, x: 0, y: 44, collapsed: false, ticks: 100, label: '1', unitLabel: '100', itemIndex: 0 }, - { - width: 499, - height: 22, - x: 1000, - y: 44, - collapsed: false, - ticks: 50, - label: '2', - unitLabel: '50', - itemIndex: 1, - }, - { - width: 499, - height: 22, - x: 1500, - y: 44, - collapsed: false, - ticks: 50, - label: '3', - unitLabel: '50', - itemIndex: 2, - }, - ]); - }); - - it('should render a collapsed items', () => { - const level: LevelItem[] = [ - { start: 0, itemIndexes: [0], children: [], value: 100 }, - { start: 100, itemIndexes: [1], children: [], value: 2 }, - { start: 102, itemIndexes: [2], children: [], value: 1 }, - ]; - const container = new FlameGraphDataContainer( - makeDataFrame({ value: [100, 2, 1], level: [2, 2, 2], label: ['1', '2', '3'], self: [0, 0, 0] }) - ); - const result = getRectDimensionsForLevel(container, level, 2, 100, 0, 1); - expect(result).toEqual([ - { width: 99, height: 22, x: 0, y: 44, collapsed: false, ticks: 100, label: '1', unitLabel: '100', itemIndex: 0 }, - { width: 3, height: 22, x: 100, y: 44, collapsed: true, ticks: 3, label: '2', unitLabel: '2', itemIndex: 1 }, - ]); - }); -}); diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/rendering.ts b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/rendering.ts deleted file mode 100644 index 3e782d761bd..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/rendering.ts +++ /dev/null @@ -1,280 +0,0 @@ -import uFuzzy from '@leeoniya/ufuzzy'; -import { RefObject, useEffect, useMemo, useState } from 'react'; - -import { GrafanaTheme2 } from '@grafana/data'; -import { colors, useTheme2 } from '@grafana/ui'; - -import { - BAR_BORDER_WIDTH, - BAR_TEXT_PADDING_LEFT, - COLLAPSE_THRESHOLD, - HIDE_THRESHOLD, - LABEL_THRESHOLD, - PIXELS_PER_LEVEL, -} from '../../constants'; -import { ClickedItemData, ColorScheme, TextAlign } from '../types'; - -import { getBarColorByPackage, getBarColorByValue } from './colors'; -import { FlameGraphDataContainer, LevelItem } from './dataTransform'; - -const ufuzzy = new uFuzzy(); - -export function useFlameRender( - canvasRef: RefObject, - data: FlameGraphDataContainer, - levels: LevelItem[][], - wrapperWidth: number, - rangeMin: number, - rangeMax: number, - search: string, - textAlign: TextAlign, - totalTicks: number, - colorScheme: ColorScheme, - focusedItemData?: ClickedItemData -) { - const foundLabels = useMemo(() => { - if (search) { - const foundLabels = new Set(); - let idxs = ufuzzy.filter(data.getUniqueLabels(), search); - - if (idxs) { - for (let idx of idxs) { - foundLabels.add(data.getUniqueLabels()[idx]); - } - } - - return foundLabels; - } - // In this case undefined means there was no search so no attempt to highlighting anything should be made. - return undefined; - }, [search, data]); - - const ctx = useSetupCanvas(canvasRef, wrapperWidth, levels.length); - const theme = useTheme2(); - - useEffect(() => { - if (!ctx) { - return; - } - ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixelsPerTick = (wrapperWidth * window.devicePixelRatio) / totalTicks / (rangeMax - rangeMin); - - for (let levelIndex = 0; levelIndex < levels.length; levelIndex++) { - const level = levels[levelIndex]; - // Get all the dimensions of the rectangles for the level. We do this by level instead of per rectangle, because - // sometimes we collapse multiple bars into single rect. - const dimensions = getRectDimensionsForLevel(data, level, levelIndex, totalTicks, rangeMin, pixelsPerTick); - for (const rect of dimensions) { - const focusedLevel = focusedItemData ? focusedItemData.level : 0; - // Render each rectangle based on the computed dimensions - renderRect( - ctx, - rect, - totalTicks, - rangeMin, - rangeMax, - levelIndex, - focusedLevel, - foundLabels, - textAlign, - colorScheme, - theme - ); - } - } - }, [ - ctx, - data, - levels, - wrapperWidth, - rangeMin, - rangeMax, - search, - focusedItemData, - foundLabels, - textAlign, - totalTicks, - colorScheme, - theme, - ]); -} - -function useSetupCanvas(canvasRef: RefObject, wrapperWidth: number, numberOfLevels: number) { - const [ctx, setCtx] = useState(); - - useEffect(() => { - if (!(numberOfLevels && canvasRef.current)) { - return; - } - const ctx = canvasRef.current.getContext('2d')!; - - const height = PIXELS_PER_LEVEL * numberOfLevels; - canvasRef.current.width = Math.round(wrapperWidth * window.devicePixelRatio); - canvasRef.current.height = Math.round(height); - canvasRef.current.style.width = `${wrapperWidth}px`; - canvasRef.current.style.height = `${height / window.devicePixelRatio}px`; - - ctx.textBaseline = 'middle'; - ctx.font = 12 * window.devicePixelRatio + 'px monospace'; - ctx.strokeStyle = 'white'; - setCtx(ctx); - }, [canvasRef, setCtx, wrapperWidth, numberOfLevels]); - return ctx; -} - -type RectData = { - width: number; - height: number; - x: number; - y: number; - collapsed: boolean; - ticks: number; - label: string; - unitLabel: string; - itemIndex: number; -}; - -/** - * Compute the pixel coordinates for each bar in a level. We need full level of bars so that we can collapse small bars - * into bigger rects. - */ -export function getRectDimensionsForLevel( - data: FlameGraphDataContainer, - level: LevelItem[], - levelIndex: number, - totalTicks: number, - rangeMin: number, - pixelsPerTick: number -): RectData[] { - const coordinatesLevel = []; - for (let barIndex = 0; barIndex < level.length; barIndex += 1) { - const item = level[barIndex]; - const barX = getBarX(item.start, totalTicks, rangeMin, pixelsPerTick); - let curBarTicks = item.value; - - // merge very small blocks into big "collapsed" ones for performance - const collapsed = curBarTicks * pixelsPerTick <= COLLAPSE_THRESHOLD; - if (collapsed) { - while ( - barIndex < level.length - 1 && - item.start + curBarTicks === level[barIndex + 1].start && - level[barIndex + 1].value * pixelsPerTick <= COLLAPSE_THRESHOLD - ) { - barIndex += 1; - curBarTicks += level[barIndex].value; - } - } - - const displayValue = data.valueDisplayProcessor(item.value); - let unit = displayValue.suffix ? displayValue.text + displayValue.suffix : displayValue.text; - - const width = curBarTicks * pixelsPerTick - (collapsed ? 0 : BAR_BORDER_WIDTH * 2); - coordinatesLevel.push({ - width, - height: PIXELS_PER_LEVEL, - x: barX, - y: levelIndex * PIXELS_PER_LEVEL, - collapsed, - ticks: curBarTicks, - label: data.getLabel(item.itemIndexes[0]), - unitLabel: unit, - itemIndex: item.itemIndexes[0], - }); - } - return coordinatesLevel; -} - -export function renderRect( - ctx: CanvasRenderingContext2D, - rect: RectData, - totalTicks: number, - rangeMin: number, - rangeMax: number, - levelIndex: number, - topLevelIndex: number, - foundNames: Set | undefined, - textAlign: TextAlign, - colorScheme: ColorScheme, - theme: GrafanaTheme2 -) { - if (rect.width < HIDE_THRESHOLD) { - return; - } - - ctx.beginPath(); - ctx.rect(rect.x + (rect.collapsed ? 0 : BAR_BORDER_WIDTH), rect.y, rect.width, rect.height); - - const color = - colorScheme === ColorScheme.ValueBased - ? getBarColorByValue(rect.ticks, totalTicks, rangeMin, rangeMax) - : getBarColorByPackage(rect.label, theme); - - if (foundNames) { - // Means we are searching, we use color for matches and gray the rest - ctx.fillStyle = foundNames.has(rect.label) ? color.toHslString() : colors[55]; - } else { - // No search - if (rect.collapsed) { - // Collapsed are always grayed - ctx.fillStyle = colors[55]; - } else { - // Mute if we are above the focused symbol - ctx.fillStyle = levelIndex > topLevelIndex - 1 ? color.toHslString() : color.lighten(15).toHslString(); - } - } - - if (rect.collapsed) { - // Only fill the collapsed rects - ctx.fill(); - return; - } - - ctx.stroke(); - ctx.fill(); - - if (rect.width >= LABEL_THRESHOLD) { - renderLabel(ctx, rect.label, rect, textAlign); - } -} - -// Renders a text inside the node rectangle. It allows setting alignment of the text left or right which takes effect -// when text is too long to fit in the rectangle. -function renderLabel(ctx: CanvasRenderingContext2D, name: string, rect: RectData, textAlign: TextAlign) { - ctx.save(); - ctx.clip(); // so text does not overflow - ctx.fillStyle = '#222'; - - // We only measure name here instead of full label because of how we deal with the units and aligning later. - const measure = ctx.measureText(name); - const spaceForTextInRect = rect.width - BAR_TEXT_PADDING_LEFT; - - let label = `${name} (${rect.unitLabel})`; - let labelX = Math.max(rect.x, 0) + BAR_TEXT_PADDING_LEFT; - - // We use the desired alignment only if there is not enough space for the text, otherwise we keep left alignment as - // that will already show full text. - if (measure.width > spaceForTextInRect) { - ctx.textAlign = textAlign; - // If aligned to the right we don't want to take the space with the unit label as the assumption is user wants to - // mainly see the name. This also reflects how pyro/flamegraph works. - if (textAlign === 'right') { - label = name; - labelX = rect.x + rect.width - BAR_TEXT_PADDING_LEFT; - } - } - - ctx.fillText(label, labelX, rect.y + PIXELS_PER_LEVEL / 2); - ctx.restore(); -} - -/** - * Returns the X position of the bar. totalTicks * rangeMin is to adjust for any current zoom. So if we zoom to a - * section of the graph we align and shift the X coordinates accordingly. - * @param offset - * @param totalTicks - * @param rangeMin - * @param pixelsPerTick - */ -export function getBarX(offset: number, totalTicks: number, rangeMin: number, pixelsPerTick: number) { - return (offset - totalTicks * rangeMin) * pixelsPerTick; -} diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testData/dataFlamebearer.ts b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testData/dataFlamebearer.ts deleted file mode 100644 index 134b91bd48e..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testData/dataFlamebearer.ts +++ /dev/null @@ -1,572 +0,0 @@ -export const data = { - version: 1, - flamebearer: { - names: [ - 'total', - 'runtime.mcall', - 'runtime.park_m', - 'runtime.schedule', - 'runtime.resetspinning', - 'runtime.wakep', - 'runtime.startm', - 'runtime.newm', - 'runtime.allocm', - 'github.com/bufbuild/connect-go.(*duplexHTTPCall).makeRequest', - 'net/http.(*Client).Do', - 'net/http.(*Client).do', - 'net/http.(*Client).send', - 'net/http.send', - 'test/pkg/util.RoundTripperFunc.RoundTrip', - 'test/pkg/util.WrapWithInstrumentedHTTPTransport.func1', - 'github.com/opentracing-contrib/go-stdlib/nethttp.(*Transport).RoundTrip', - 'github.com/opentracing-contrib/go-stdlib/nethttp.(*Tracer).start', - 'github.com/uber/jaeger-client-go.(*Tracer).StartSpan', - 'github.com/uber/jaeger-client-go.(*Tracer).startSpanWithOptions', - 'github.com/uber/jaeger-client-go.(*Tracer).randomID', - 'github.com/uber/jaeger-client-go.NewTracer.func2', - 'sync.(*Pool).Get', - 'sync.(*Pool).pin', - 'sync.(*Pool).pinSlow', - 'runtime.mstart', - 'runtime.mstart0', - 'runtime.mstart1', - 'golang.org/x/net/http2.(*serverConn).writeFrameAsync', - 'golang.org/x/net/http2.(*writeResHeaders).writeFrame', - 'golang.org/x/net/http2.splitHeaderBlock', - 'golang.org/x/net/http2.(*writeResHeaders).writeHeaderBlock', - 'golang.org/x/net/http2.(*Framer).WriteHeaders', - 'golang.org/x/net/http2.(*Framer).endWrite', - 'golang.org/x/net/http2.(*bufferedWriter).Write', - 'golang.org/x/net/http2.glob..func8', - 'bufio.NewWriterSize', - 'regexp/syntax.(*compiler).compile', - 'regexp/syntax.(*compiler).rune', - 'regexp/syntax.(*compiler).inst', - 'runtime.systemstack', - 'runtime.newproc.func1', - 'runtime.newproc1', - 'runtime.malg', - 'google.golang.org/grpc/internal/transport.newHTTP2Client.func3', - 'google.golang.org/grpc/internal/transport.(*loopyWriter).run', - 'google.golang.org/grpc/internal/transport.(*loopyWriter).handle', - 'google.golang.org/grpc/internal/transport.(*loopyWriter).headerHandler', - 'google.golang.org/grpc/internal/transport.(*loopyWriter).originateStream', - 'google.golang.org/grpc/internal/transport.(*loopyWriter).writeHeader', - 'golang.org/x/net/http2/hpack.(*Encoder).WriteField', - 'golang.org/x/net/http2/hpack.(*dynamicTable).add', - 'golang.org/x/net/http2/hpack.(*headerFieldTable).addEntry', - 'net/http.(*persistConn).readLoop', - 'net/http.(*persistConn).readResponse', - 'net/http.ReadResponse', - 'net/http.serverHandler.ServeHTTP', - 'net/http.HandlerFunc.ServeHTTP', - 'test/pkg/util.glob..func1.1', - 'golang.org/x/net/http2/h2c.h2cHandler.ServeHTTP', - 'test/pkg/create.(*create).initServer.func2.1', - 'github.com/opentracing-contrib/go-stdlib/nethttp.MiddlewareFunc.func5', - 'github.com/weaveworks/common/middleware.Log.Wrap.func1', - 'github.com/weaveworks/common/middleware.Instrument.Wrap.func1', - 'github.com/felixge/httpsnoop.CaptureMetricsFn', - 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics', - 'github.com/weaveworks/common/middleware.Instrument.Wrap.func1.2', - 'github.com/gorilla/mux.(*Router).ServeHTTP', - 'net/http.(*ServeMux).ServeHTTP', - 'net/http/pprof.Index', - 'net/http/pprof.handler.ServeHTTP', - 'runtime/pprof.(*Profile).WriteTo', - 'runtime/pprof.writeGoroutine', - 'runtime/pprof.writeRuntimeProfile', - 'runtime/pprof.printCountProfile', - 'runtime/pprof.(*profileBuilder).appendLocsForStack', - 'runtime/pprof.(*profileBuilder).emitLocation', - 'runtime/pprof.(*profileBuilder).flush', - 'compress/gzip.(*Writer).Write', - 'compress/flate.NewWriter', - 'compress/flate.(*compressor).init', - 'compress/flate.newHuffmanBitWriter', - 'compress/flate.newHuffmanEncoder', - 'test/pkg/create.(*create).Run.func3', - 'github.com/weaveworks/common/signals.(*Handler).Loop', - 'runtime.gcBgMarkWorker', - 'runtime.gcMarkDone', - 'runtime.semacquire', - 'runtime.semacquire1', - 'runtime.acquireSudog', - 'test/dskit/services.(*BasicService).main', - 'test/dskit/ring.(*Ring).loop', - 'test/dskit/kv.metrics.WatchKey', - 'github.com/weaveworks/common/instrument.CollectedRequest', - 'test/dskit/kv.metrics.WatchKey.func1', - 'test/dskit/kv.(*prefixedKVClient).WatchKey', - 'test/dskit/kv/memberlist.(*Client).WatchKey', - 'test/dskit/kv/memberlist.(*KV).WatchKey', - 'test/dskit/kv/memberlist.(*KV).get', - 'test/dskit/kv/memberlist.ValueDesc.Clone', - 'test/dskit/ring.(*Desc).Clone', - 'github.com/gogo/protobuf/proto.Clone', - 'github.com/gogo/protobuf/proto.Merge', - 'test/dskit/ring.(*Desc).XXX_Merge', - 'github.com/gogo/protobuf/proto.(*InternalMessageInfo).Merge', - 'github.com/gogo/protobuf/proto.(*mergeInfo).merge', - 'github.com/gogo/protobuf/proto.(*mergeInfo).computeMergeInfo.func31', - 'reflect.Value.SetMapIndex', - 'reflect.mapassign_faststr', - 'runtime/pprof.profileWriter', - 'runtime/pprof.(*profileBuilder).addCPUData', - 'runtime/pprof.(*profMap).lookup', - 'runtime/pprof.newProfileBuilder', - 'compress/gzip.NewWriterLevel', - 'runtime/pprof.(*profileBuilder).build', - 'compress/flate.newDeflateFast', - 'github.com/hashicorp/memberlist.(*Memberlist).triggerFunc', - 'github.com/hashicorp/memberlist.(*Memberlist).gossip', - 'github.com/armon/go-metrics.MeasureSince', - 'github.com/armon/go-metrics.(*Metrics).MeasureSince', - 'github.com/armon/go-metrics.(*Metrics).MeasureSinceWithLabels', - 'github.com/armon/go-metrics/prometheus.(*PrometheusSink).AddSampleWithLabels', - 'github.com/armon/go-metrics/prometheus.flattenKey', - 'regexp.(*Regexp).ReplaceAllString', - 'regexp.(*Regexp).replaceAll', - 'regexp.(*Regexp).doExecute', - 'regexp.(*Regexp).backtrack', - 'regexp.(*bitState).reset', - 'runtime.main', - 'main.main', - 'test/pkg/create.New', - 'github.com/prometheus/common/config.NewClientFromConfig', - 'github.com/prometheus/common/config.NewRoundTripperFromConfig', - 'github.com/mwitkow/go-conntrack.NewDialContextFunc', - 'github.com/mwitkow/go-conntrack.PreRegisterDialerMetrics', - 'github.com/prometheus/client_golang/prometheus.(*CounterVec).WithLabelValues', - 'github.com/prometheus/client_golang/prometheus.(*CounterVec).GetMetricWithLabelValues', - 'github.com/prometheus/client_golang/prometheus.(*MetricVec).GetMetricWithLabelValues', - 'github.com/prometheus/client_golang/prometheus.(*metricMap).getOrCreateMetricWithLabelValues', - 'test/pkg/create.(*create).Run', - 'test/dskit/modules.(*Manager).InitModuleServices', - 'test/dskit/modules.(*Manager).initModule', - 'test/pkg/create.(*create).initcreate', - 'test/pkg/create.New', - 'test/pkg/create.(*create).initHead', - 'test/pkg/create.NewHead', - 'test/pkg/create.(*deduplicatingSlice[...]).Init', - 'github.com/segmentio/parquet-go.NewWriter', - 'github.com/segmentio/parquet-go.(*Writer).configure', - 'github.com/segmentio/parquet-go.newWriter', - 'runtime.doInit', - 'test/dskit/ring.init', - 'html/template.(*Template).Parse', - 'text/template.(*Template).Parse', - 'text/template/parse.Parse', - 'text/template/parse.(*Tree).Parse', - 'text/template/parse.(*Tree).parse', - 'text/template/parse.(*Tree).textOrAction', - 'text/template/parse.(*Tree).action', - 'text/template/parse.(*Tree).rangeControl', - 'text/template/parse.(*Tree).parseControl', - 'text/template/parse.(*Tree).itemList', - 'text/template/parse.(*Tree).pipeline', - 'text/template/parse.(*PipeNode).append', - 'text/template/parse.(*Tree).newPipeline', - 'google.golang.org/protobuf/types/known/structpb.init', - 'github.com/prometheus/prometheus/scrape.init', - 'fmt.Errorf', - 'github.com/prometheus/prometheus/discovery/consul.init', - 'github.com/prometheus/client_golang/prometheus.(*SummaryVec).WithLabelValues', - 'github.com/prometheus/client_golang/prometheus.(*SummaryVec).GetMetricWithLabelValues', - 'github.com/prometheus/client_golang/prometheus.NewSummaryVec.func1', - 'github.com/prometheus/client_golang/prometheus.newSummary', - 'github.com/prometheus/client_golang/prometheus.(*summary).newStream', - 'github.com/beorn7/perks/quantile.NewTargeted', - 'github.com/beorn7/perks/quantile.newStream', - 'encoding/gob.init', - 'encoding/gob.mustGetTypeInfo', - 'encoding/gob.getTypeInfo', - 'encoding/gob.buildTypeInfo', - 'encoding/gob.getBaseType', - 'encoding/gob.getType', - 'encoding/gob.newTypeObject', - 'encoding/gob.userType', - 'encoding/gob.validUserType', - 'sync.(*Map).LoadOrStore', - 'sync.(*Map).dirtyLocked', - 'go.opentelemetry.io/otel/trace.init', - 'regexp.MustCompile', - 'regexp.Compile', - 'regexp.compile', - 'regexp.compileOnePass', - 'regexp.onePassCopy', - 'cloud.google.com/go/storage.init', - 'regexp/syntax.Compile', - 'github.com/aws/aws-sdk-go/aws/endpoints.init', - 'github.com/asaskevich/govalidator.init', - 'regexp/syntax.(*Regexp).CapNames', - 'github.com/goccy/go-json/internal/decoder.init.0', - 'k8s.io/api/flowcontrol/v1beta2.init', - 'k8s.io/kube-openapi/pkg/handler3.init.0', - 'mime.AddExtensionType', - 'sync.(*Once).Do', - 'sync.(*Once).doSlow', - 'mime.initMime', - 'mime.initMimeUnix', - 'mime.loadMimeFile', - 'mime.setExtensionType', - 'sync.(*Map).Store', - 'google.golang.org/genproto/googleapis/rpc/errdetails.init.0', - 'google.golang.org/genproto/googleapis/rpc/errdetails.file_google_rpc_error_details_proto_init', - 'google.golang.org/protobuf/internal/filetype.Builder.Build', - 'google.golang.org/protobuf/internal/filedesc.Builder.Build', - 'google.golang.org/protobuf/internal/filedesc.newRawFile', - 'google.golang.org/protobuf/internal/filedesc.(*File).unmarshalSeed', - 'google.golang.org/protobuf/internal/filedesc.(*Message).unmarshalSeed', - 'google.golang.org/protobuf/internal/filedesc.appendFullName', - 'google.golang.org/protobuf/internal/strs.(*Builder).AppendFullName', - 'google.golang.org/genproto/googleapis/type/color.init.0', - 'google.golang.org/genproto/googleapis/type/color.file_google_type_color_proto_init', - 'google.golang.org/protobuf/reflect/protoregistry.(*Files).RegisterFile', - 'google.golang.org/protobuf/reflect/protoregistry.rangeTopLevelDescriptors', - 'google.golang.org/protobuf/reflect/protoregistry.(*Files).RegisterFile.func2', - 'github.com/goccy/go-json/internal/encoder.init.0', - 'google.golang.org/protobuf/types/descriptorpb.init.0', - 'google.golang.org/protobuf/types/descriptorpb.file_google_protobuf_descriptor_proto_init', - 'google.golang.org/protobuf/internal/filedesc.(*File).initDecls', - 'golang.org/x/net/http2.(*serverConn).runHandler', - 'github.com/weaveworks/common/middleware.Tracer.Wrap.func1', - 'github.com/weaveworks/common/middleware.getRouteName', - 'github.com/gorilla/mux.(*Router).Match', - 'github.com/gorilla/mux.(*Route).Match', - 'github.com/gorilla/mux.(*routeRegexp).Match', - 'regexp.(*Regexp).MatchString', - 'regexp.(*Regexp).doMatch', - 'test/pkg/agent.(*Target).start.func1', - 'test/pkg/agent.(*Target).scrape', - 'github.com/prometheus/prometheus/util/pool.(*Pool).Get', - 'test/pkg/agent.glob..func1', - 'test/pkg/agent.(*Target).fetchProfile', - 'io/ioutil.ReadAll', - 'io.ReadAll', - 'test/pkg/distributor.(*Distributor).Push', - 'compress/flate.(*compressor).initDeflate', - 'compress/gzip.(*Reader).Read', - 'compress/flate.(*decompressor).Read', - 'compress/flate.(*decompressor).nextBlock', - 'compress/flate.(*decompressor).readHuffman', - 'compress/flate.(*huffmanDecoder).init', - 'compress/gzip.NewReader', - 'compress/gzip.(*Reader).Reset', - 'compress/gzip.(*Reader).readHeader', - 'compress/flate.NewReader', - 'compress/flate.(*dictDecoder).init', - 'test/pkg/gen/google/v1.(*Profile).UnmarshalVT', - 'test/pkg/gen/google/v1.(*Location).UnmarshalVT', - 'test/pkg/gen/google/v1.(*Sample).UnmarshalVT', - 'test/pkg/distributor.sanitizeProfile', - 'github.com/samber/lo.Reject[...]', - 'net/http.(*conn).serve', - 'net/http.(*response).finishRequest', - 'net/http.putBufioWriter', - 'sync.(*Pool).Put', - 'net/http.(*conn).readRequest', - 'net/http.newBufioWriterSize', - 'net/http.readRequest', - 'net/textproto.(*Reader).ReadMIMEHeader', - 'net/http.newTextprotoReader', - 'github.com/uber/jaeger-client-go.NewTracer.func1', - 'math/rand.NewSource', - 'fmt.Sprintf', - 'fmt.newPrinter', - 'fmt.glob..func1', - 'regexp.newBitState', - 'github.com/felixge/httpsnoop.Wrap', - 'github.com/bufbuild/connect-go.(*Handler).ServeHTTP', - 'net/http.(*Request).WithContext', - 'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1', - 'github.com/bufbuild/connect-go.(*errorTranslatingSender).Send', - 'github.com/bufbuild/connect-go.(*connectUnaryHandlerSender).Send', - 'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).Marshal', - 'github.com/bufbuild/connect-go.(*bufferPool).Put', - 'sync.(*poolChain).pushHead', - 'github.com/bufbuild/connect-go.(*compressionPool).Compress', - 'github.com/bufbuild/connect-go.(*compressionPool).putCompressor', - 'compress/gzip.(*Writer).Close', - 'io.Copy', - 'io.copyBuffer', - 'bytes.(*Buffer).WriteTo', - 'github.com/bufbuild/connect-go.(*protoBinaryCodec).Marshal', - 'google.golang.org/protobuf/proto.Marshal', - 'google.golang.org/protobuf/proto.MarshalOptions.marshal', - 'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1.1', - 'test/pkg/ingester.(*Ingester).Push', - 'github.com/klauspost/compress/gzip.NewReader', - 'github.com/klauspost/compress/gzip.(*Reader).Reset', - 'github.com/klauspost/compress/gzip.(*Reader).readHeader', - 'github.com/klauspost/compress/flate.NewReader', - 'github.com/klauspost/compress/flate.(*dictDecoder).init', - 'test/pkg/create.(*Head).Ingest', - 'test/pkg/create.(*deduplicatingSlice[...]).ingest', - 'test/pkg/model.(*LabelsBuilder).Set', - 'test/pkg/create.(*Head).convertSamples', - 'github.com/bufbuild/connect-go.receiveUnaryRequest[...]', - 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Receive', - 'github.com/bufbuild/connect-go.(*connectUnaryHandlerReceiver).Receive', - 'github.com/bufbuild/connect-go.(*connectUnaryUnmarshaler).Unmarshal', - 'github.com/bufbuild/connect-go.(*connectUnaryUnmarshaler).UnmarshalFunc', - 'bytes.(*Buffer).ReadFrom', - 'bytes.(*Buffer).grow', - 'bytes.makeSlice', - 'github.com/bufbuild/connect-go.(*bufferPool).Get', - 'net/http/pprof.Profile', - 'runtime/pprof.StartCPUProfile', - 'runtime/pprof.writeMutex', - 'runtime/pprof.writeProfileInternal', - 'runtime/pprof.printCountCycleProfile', - 'runtime/pprof.writeBlock', - 'runtime/pprof.writeAlloc', - 'runtime/pprof.writeHeapInternal', - 'runtime/pprof.writeHeapProto', - 'runtime/pprof.(*protobuf).strings', - 'runtime/pprof.(*protobuf).string', - 'runtime/pprof.(*profileBuilder).stringIndex', - 'runtime/pprof.(*protobuf).uint64Opt', - 'runtime/pprof.(*protobuf).uint64', - 'runtime/pprof.(*protobuf).varint', - 'runtime/pprof.allFrames', - 'runtime/pprof.(*profileBuilder).pbSample', - 'runtime/pprof.printCountProfile.func1', - 'bytes.(*Buffer).String', - 'net/http.(*persistConn).writeLoop', - 'net/http.(*Request).write', - 'net/http.(*transferWriter).writeBody', - 'net/http.(*transferWriter).doBodyCopy', - 'test/pkg/distributor.(*Distributor).Push.func1', - 'test/pkg/distributor.(*Distributor).sendProfiles', - 'test/pkg/distributor.(*Distributor).sendProfilesErr', - 'test/pkg/gen/ingester/v1/ingesterv1connect.(*ingesterServiceClient).Push', - 'github.com/bufbuild/connect-go.(*Client[...]).CallUnary', - 'github.com/bufbuild/connect-go.NewClient[...].func2', - 'github.com/bufbuild/connect-go.NewClient[...].func1', - 'github.com/bufbuild/connect-go.(*connectClientSender).Send', - 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Close', - 'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Close', - 'github.com/bufbuild/connect-go.(*duplexHTTPCall).CloseRead', - 'github.com/bufbuild/connect-go.discard', - 'io.discard.ReadFrom', - 'io.glob..func1', - 'github.com/bufbuild/connect-go.receiveUnaryResponse[...]', - 'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Receive', - 'github.com/bufbuild/connect-go.(*compressionPool).Decompress', - 'github.com/bufbuild/connect-go.(*compressionPool).getDecompressor', - ], - levels: [ - [0, 8624078250, 0, 0], - [ - 0, 60011939, 0, 335, 0, 1081684, 0, 331, 0, 2765065247, 0, 259, 0, 144858662, 0, 235, 0, 1081684, 0, 227, 0, - 4523250662, 0, 128, 0, 9691644, 0, 116, 0, 8663322, 0, 109, 0, 1574208, 0, 90, 0, 132657008, 0, 85, 0, - 304386696, 0, 83, 0, 1049728, 0, 56, 0, 524360, 0, 53, 0, 2624640, 0, 44, 0, 132697488, 0, 40, 0, 545034, 0, 37, - 0, 1052676, 0, 28, 0, 398371776, 0, 25, 0, 2099200, 0, 9, 0, 132790592, 0, 1, - ], - [ - 0, 60011939, 0, 336, 0, 1081684, 0, 332, 0, 2756669265, 0, 56, 0, 6821582, 0, 263, 0, 1574400, 0, 260, 0, - 144858662, 0, 236, 0, 1081684, 0, 57, 0, 4255866888, 0, 150, 0, 267383774, 0, 129, 0, 9691644, 0, 117, 0, - 4444206, 0, 114, 0, 1048752, 0, 112, 0, 3170364, 0, 110, 0, 1574208, 0, 91, 0, 132657008, 0, 86, 0, 304386696, - 304386696, 84, 0, 1049728, 0, 57, 0, 524360, 0, 54, 0, 2624640, 0, 45, 0, 132697488, 0, 41, 0, 545034, 0, 37, 0, - 1052676, 0, 29, 0, 398371776, 0, 26, 0, 2099200, 0, 10, 0, 132790592, 0, 2, - ], - [ - 0, 60011939, 0, 337, 0, 1081684, 0, 333, 0, 2756669265, 0, 57, 0, 6296270, 0, 265, 0, 525312, 0, 264, 0, - 1574400, 0, 261, 0, 135394175, 0, 242, 0, 526980, 0, 239, 0, 8937507, 0, 237, 0, 1081684, 0, 60, 0, 4255866888, - 0, 150, 0, 135751342, 0, 139, 0, 131632432, 0, 130, 0, 9691644, 0, 118, 0, 4444206, 0, 78, 0, 1048752, 1048752, - 113, 0, 3170364, 3170364, 111, 0, 1574208, 0, 92, 0, 132657008, 0, 87, 304386696, 1049728, 0, 58, 0, 524360, - 524360, 55, 0, 2624640, 0, 46, 0, 132697488, 0, 42, 0, 545034, 0, 37, 0, 1052676, 0, 30, 0, 398371776, 0, 27, 0, - 2099200, 0, 11, 0, 132790592, 0, 3, - ], - [ - 0, 60011939, 0, 338, 0, 1081684, 0, 334, 0, 2756669265, 0, 58, 0, 1049600, 0, 267, 0, 5246670, 5246670, 266, 0, - 525312, 525312, 36, 0, 1574400, 0, 262, 0, 4248808, 0, 257, 0, 35145141, 29377349, 254, 0, 5380182, 0, 249, 0, - 5283874, 0, 240, 0, 85336170, 0, 78, 0, 526980, 0, 240, 0, 8937507, 8937507, 238, 0, 1081684, 0, 57, 0, - 4255866888, 0, 150, 0, 135751342, 0, 140, 0, 131632432, 0, 131, 0, 9691644, 0, 119, 0, 4444206, 1848496, 79, - 4219116, 1574208, 0, 93, 0, 132657008, 0, 88, 304386696, 1049728, 0, 59, 524360, 2624640, 0, 47, 0, 132697488, - 132697488, 43, 0, 545034, 0, 37, 0, 1052676, 0, 31, 0, 398371776, 0, 3, 0, 2099200, 0, 12, 0, 132790592, 0, 4, - ], - [ - 0, 60011939, 0, 339, 0, 1081684, 0, 286, 0, 2756669265, 0, 59, 0, 1049600, 0, 22, 5771982, 1574400, 0, 23, 0, - 4248808, 4248808, 258, 29377349, 4194832, 4194832, 256, 0, 1572960, 1572960, 255, 0, 5380182, 0, 250, 0, - 5283874, 2137058, 241, 0, 85336170, 67470104, 79, 0, 526980, 526980, 241, 8937507, 1081684, 0, 61, 0, - 3990564004, 0, 150, 0, 265302884, 0, 151, 0, 135751342, 0, 141, 0, 131632432, 0, 132, 0, 9691644, 0, 120, - 1848496, 2595710, 1998711, 80, 4219116, 1574208, 0, 94, 0, 132657008, 132657008, 89, 304386696, 1049728, 0, 57, - 524360, 2624640, 0, 48, 132697488, 545034, 0, 37, 0, 1052676, 0, 32, 0, 398371776, 0, 4, 0, 2099200, 0, 13, 0, - 132790592, 0, 5, - ], - [ - 0, 60011939, 0, 340, 0, 1081684, 1081684, 287, 0, 2756669265, 0, 57, 0, 1049600, 0, 23, 5771982, 1574400, - 1574400, 24, 39393949, 5380182, 0, 251, 2137058, 3146816, 0, 244, 67470104, 17866066, 0, 80, 9464487, 1081684, - 0, 228, 0, 3725614404, 0, 150, 0, 132126624, 0, 166, 0, 132822976, 132822976, 165, 0, 265302884, 0, 152, 0, - 135751342, 0, 142, 0, 131632432, 0, 133, 0, 9691644, 0, 121, 3847207, 596999, 596999, 115, 4219116, 1574208, 0, - 95, 437043704, 1049728, 0, 60, 524360, 2624640, 0, 49, 132697488, 545034, 0, 37, 0, 1052676, 0, 33, 0, - 398371776, 0, 5, 0, 2099200, 0, 14, 0, 132790592, 0, 6, - ], - [ - 0, 60011939, 0, 341, 1081684, 2756669265, 0, 60, 0, 1049600, 1049600, 24, 46740331, 5380182, 1053446, 252, - 2137058, 3146816, 0, 245, 67470104, 524864, 524864, 81, 0, 17341202, 17341202, 243, 9464487, 1081684, 0, 229, 0, - 3725614404, 0, 150, 0, 132126624, 132126624, 167, 132822976, 265302884, 0, 153, 0, 135751342, 0, 143, 0, - 131632432, 0, 134, 0, 9691644, 0, 122, 8663322, 1574208, 0, 96, 437043704, 1049728, 0, 57, 524360, 2624640, 0, - 50, 132697488, 545034, 0, 37, 0, 1052676, 0, 34, 0, 398371776, 0, 6, 0, 2099200, 0, 15, 0, 132790592, 0, 7, - ], - [ - 0, 35515758, 0, 349, 0, 7925912, 0, 343, 0, 16570269, 0, 278, 1081684, 2756669265, 0, 57, 48843377, 4326736, - 4326736, 253, 2137058, 3146816, 0, 246, 94800657, 1081684, 0, 230, 0, 3457203921, 0, 150, 0, 268410483, 0, 168, - 264949600, 265302884, 0, 154, 0, 135751342, 0, 144, 0, 131632432, 0, 135, 0, 9691644, 0, 123, 8663322, 1574208, - 0, 97, 437043704, 1049728, 0, 61, 524360, 2624640, 0, 51, 132697488, 545034, 0, 37, 0, 1052676, 0, 22, 0, - 398371776, 0, 7, 0, 2099200, 0, 16, 0, 132790592, 132790592, 8, - ], - [ - 0, 35515758, 0, 304, 0, 7925912, 0, 344, 0, 16570269, 0, 342, 1081684, 2756669265, 0, 61, 55307171, 3146816, 0, - 247, 94800657, 1081684, 0, 231, 0, 3324445713, 0, 150, 0, 132758208, 0, 176, 0, 268410483, 0, 169, 264949600, - 265302884, 0, 155, 0, 135751342, 0, 145, 0, 131632432, 0, 136, 0, 9691644, 0, 124, 8663322, 1574208, 0, 98, - 437043704, 1049728, 0, 57, 524360, 2624640, 2624640, 52, 132697488, 545034, 0, 37, 0, 1052676, 0, 35, 0, - 398371776, 398371776, 8, 0, 2099200, 0, 17, - ], - [ - 0, 35515758, 0, 350, 0, 7925912, 0, 345, 0, 16570269, 0, 280, 1081684, 2740098251, 0, 57, 0, 13936114, 0, 228, - 0, 2634900, 0, 18, 55307171, 3146816, 3146816, 248, 94800657, 1081684, 0, 232, 0, 133423345, 0, 224, 0, - 2527422102, 0, 150, 0, 264582108, 0, 196, 0, 265453672, 265453672, 195, 0, 132985149, 0, 193, 0, 579337, 0, 187, - 0, 132758208, 0, 177, 0, 268410483, 0, 170, 264949600, 265302884, 0, 156, 0, 135751342, 0, 146, 0, 131632432, 0, - 137, 0, 9691644, 0, 125, 8663322, 1574208, 0, 99, 437043704, 1049728, 0, 62, 135846488, 545034, 0, 37, 0, - 1052676, 1052676, 36, 398371776, 2099200, 0, 18, - ], - [ - 0, 35515758, 0, 306, 0, 7925912, 0, 346, 0, 16045469, 0, 289, 0, 524800, 0, 281, 1081684, 2740098251, 0, 62, 0, - 11838546, 0, 229, 0, 2097568, 0, 270, 0, 2634900, 0, 19, 153254644, 1081684, 0, 233, 0, 133423345, 0, 225, 0, - 663692876, 663692876, 223, 0, 550717750, 0, 150, 0, 1313011476, 1313011476, 198, 0, 264582108, 0, 188, - 265453672, 132985149, 0, 188, 0, 579337, 0, 188, 0, 132758208, 0, 178, 0, 268410483, 0, 137, 264949600, - 265302884, 0, 157, 0, 135751342, 0, 147, 0, 131632432, 131632432, 138, 0, 9691644, 0, 126, 8663322, 1574208, 0, - 100, 437043704, 1049728, 0, 57, 135846488, 545034, 0, 37, 399424452, 2099200, 0, 19, - ], - [ - 0, 35515758, 0, 307, 0, 7925912, 0, 286, 0, 16045469, 0, 290, 0, 524800, 0, 262, 1081684, 2740098251, 0, 57, 0, - 11838546, 0, 230, 0, 2097568, 0, 271, 0, 2634900, 0, 20, 153254644, 1081684, 0, 234, 0, 133423345, 0, 211, - 663692876, 143277442, 0, 218, 0, 134728066, 0, 150, 0, 140030946, 0, 200, 0, 132681296, 132681296, 199, - 1313011476, 264582108, 0, 189, 265453672, 132985149, 0, 189, 0, 579337, 0, 189, 0, 132758208, 0, 179, 0, - 268410483, 0, 138, 264949600, 265302884, 0, 158, 0, 135751342, 0, 148, 131632432, 9691644, 9691644, 127, - 8663322, 1574208, 0, 101, 437043704, 1049728, 0, 63, 135846488, 545034, 0, 37, 399424452, 2099200, 0, 20, - ], - [ - 0, 35515758, 0, 351, 0, 7925912, 0, 287, 0, 16045469, 16045469, 291, 0, 524800, 0, 23, 1081684, 2740098251, 0, - 63, 0, 11838546, 0, 231, 0, 2097568, 0, 22, 0, 2634900, 0, 21, 153254644, 1081684, 0, 125, 0, 133423345, 0, 212, - 663692876, 143277442, 0, 219, 0, 134728066, 0, 209, 0, 140030946, 0, 201, 1445692772, 264582108, 0, 190, - 265453672, 132985149, 0, 190, 0, 579337, 0, 190, 0, 132758208, 0, 180, 0, 268410483, 0, 171, 264949600, - 265302884, 0, 159, 0, 135751342, 0, 149, 149987398, 1574208, 0, 102, 437043704, 1049728, 0, 64, 135846488, - 545034, 0, 37, 399424452, 2099200, 0, 21, - ], - [ - 0, 34466158, 0, 352, 0, 1049600, 0, 308, 0, 7925912, 0, 347, 16045469, 524800, 524800, 24, 1081684, 2740098251, - 0, 64, 0, 11838546, 0, 232, 0, 2097568, 2097568, 272, 0, 2634900, 0, 22, 153254644, 1081684, 0, 126, 0, - 133423345, 0, 213, 663692876, 143277442, 0, 211, 0, 134728066, 0, 210, 0, 140030946, 0, 202, 1445692772, - 132122592, 132122592, 197, 0, 132459516, 0, 194, 265453672, 132985149, 0, 194, 0, 579337, 0, 191, 0, 132758208, - 0, 181, 0, 268410483, 0, 172, 264949600, 265302884, 0, 160, 0, 135751342, 135751342, 36, 149987398, 1574208, 0, - 103, 437043704, 1049728, 0, 65, 135846488, 545034, 0, 37, 399424452, 2099200, 0, 22, - ], - [ - 0, 34466158, 0, 250, 0, 1049600, 0, 309, 0, 7925912, 0, 22, 17651953, 2740098251, 0, 65, 0, 11838546, 0, 233, - 2097568, 2634900, 0, 268, 153254644, 1081684, 1081684, 127, 0, 133423345, 133423345, 226, 663692876, 143277442, - 0, 212, 0, 134728066, 0, 211, 0, 140030946, 0, 203, 1577815364, 132459516, 0, 37, 265453672, 132985149, 0, 37, - 0, 579337, 579337, 192, 0, 132758208, 0, 182, 0, 268410483, 0, 173, 264949600, 265302884, 0, 161, 285738740, - 1574208, 0, 104, 437043704, 1049728, 0, 66, 135846488, 545034, 0, 37, 399424452, 2099200, 0, 23, - ], - [ - 0, 34466158, 0, 251, 0, 1049600, 1049600, 310, 0, 7925912, 7925912, 348, 17651953, 2739573923, 0, 66, 0, 524328, - 524328, 274, 0, 11838546, 0, 234, 2097568, 2634900, 2634900, 269, 951452549, 143277442, 0, 220, 0, 134728066, 0, - 212, 0, 140030946, 0, 204, 1577815364, 132459516, 0, 37, 265453672, 132985149, 0, 37, 579337, 132758208, 0, 183, - 0, 268410483, 0, 174, 264949600, 265302884, 0, 157, 285738740, 1574208, 0, 105, 437043704, 1049728, 0, 67, - 135846488, 545034, 0, 37, 399424452, 2099200, 2099200, 24, - ], - [ - 0, 34466158, 5260690, 252, 26627465, 2739573923, 0, 67, 524328, 11838546, 0, 125, 956185017, 143277442, 0, 221, - 0, 134728066, 0, 213, 0, 140030946, 0, 205, 1577815364, 132459516, 0, 37, 265453672, 132985149, 0, 38, 579337, - 132758208, 0, 184, 0, 268410483, 268410483, 175, 264949600, 265302884, 0, 158, 285738740, 1574208, 0, 106, - 437043704, 1049728, 0, 68, 135846488, 545034, 0, 37, - ], - [ - 5260690, 29205468, 29205468, 253, 26627465, 409934141, 0, 68, 0, 2329639782, 0, 275, 524328, 11838546, 0, 126, - 956185017, 143277442, 143277442, 222, 0, 134728066, 0, 214, 0, 140030946, 0, 206, 1577815364, 132459516, 0, 38, - 265453672, 132985149, 132985149, 39, 579337, 132758208, 0, 185, 533360083, 265302884, 0, 162, 285738740, - 1574208, 0, 107, 437043704, 1049728, 0, 57, 135846488, 545034, 0, 37, - ], - [ - 61093623, 409934141, 0, 57, 0, 2329115366, 0, 277, 0, 524416, 524416, 276, 524328, 524376, 524376, 273, 0, - 11314170, 11314170, 127, 1099462459, 134728066, 0, 215, 0, 140030946, 0, 207, 1577815364, 132459516, 132459516, - 39, 399018158, 132758208, 132758208, 186, 533360083, 132657008, 132657008, 164, 0, 132645876, 132645876, 163, - 285738740, 1574208, 1574208, 108, 437043704, 1049728, 0, 69, 135846488, 545034, 0, 37, - ], - [ - 61093623, 178075376, 0, 69, 0, 231858765, 0, 312, 0, 14574244, 0, 303, 0, 1624251841, 0, 292, 0, 690289281, 0, - 278, 1112349749, 134728066, 0, 216, 0, 140030946, 140030946, 208, 3765070865, 1049728, 0, 70, 135846488, 545034, - 0, 37, - ], - [ - 61093623, 178075376, 0, 70, 0, 231858765, 231858765, 313, 0, 14574244, 0, 304, 0, 1624251841, 0, 293, 0, - 690289281, 0, 279, 1112349749, 134728066, 134728066, 217, 3905101811, 1049728, 0, 71, 135846488, 545034, 0, 37, - ], - [ - 61093623, 178075376, 0, 71, 231858765, 14574244, 0, 305, 0, 1595244443, 0, 299, 0, 3274238, 3274238, 241, 0, - 24651476, 23602660, 254, 0, 1081684, 0, 294, 0, 690289281, 0, 280, 5152179626, 1049728, 0, 72, 135846488, - 545034, 0, 37, - ], - [ - 61093623, 37385630, 0, 72, 0, 95081897, 0, 318, 0, 18338066, 0, 317, 0, 27269783, 0, 314, 231858765, 14574244, - 0, 306, 0, 1566824927, 1566824927, 302, 0, 1048656, 1048656, 301, 0, 27370860, 27370860, 300, 26876898, 1048816, - 1048816, 256, 0, 1081684, 0, 295, 0, 624126, 0, 289, 0, 689140843, 0, 283, 0, 524312, 0, 281, 5152179626, - 1049728, 0, 73, 135846488, 545034, 0, 37, - ], - [ - 61093623, 37385630, 0, 73, 0, 95081897, 6643414, 319, 0, 18338066, 0, 315, 0, 27269783, 0, 315, 231858765, - 14574244, 0, 307, 1623170157, 1081684, 0, 296, 0, 624126, 0, 290, 0, 12739870, 0, 286, 0, 676400973, 0, 284, 0, - 524312, 0, 262, 5152179626, 1049728, 0, 74, 135846488, 545034, 0, 37, - ], - [ - 61093623, 37385630, 0, 74, 6643414, 88438483, 0, 320, 0, 18338066, 0, 316, 0, 27269783, 0, 316, 231858765, - 524800, 0, 311, 0, 14049444, 0, 308, 1623170157, 1081684, 0, 297, 0, 624126, 624126, 291, 0, 12739870, 0, 287, - 0, 676400973, 0, 285, 0, 524312, 524312, 282, 5152179626, 1049728, 0, 75, 135846488, 545034, 0, 37, - ], - [ - 61093623, 27334886, 0, 75, 0, 9526424, 0, 328, 0, 524320, 0, 329, 6643414, 20792845, 0, 328, 0, 65465889, 0, 75, - 0, 2179749, 0, 114, 0, 18338066, 0, 114, 0, 27269783, 0, 114, 231858765, 524800, 0, 22, 0, 14049444, 0, 309, - 1623170157, 1081684, 1081684, 298, 624126, 12739870, 0, 288, 0, 676400973, 0, 78, 5152703938, 1049728, 0, 76, - 135846488, 545034, 0, 37, - ], - [ - 61093623, 26810494, 1585182, 76, 0, 524392, 524392, 327, 0, 9526424, 0, 77, 0, 524320, 524320, 330, 6643414, - 20792845, 0, 77, 0, 8389952, 8389952, 327, 0, 57075937, 2171836, 76, 0, 2179749, 0, 321, 0, 18338066, 0, 78, 0, - 27269783, 0, 78, 231858765, 524800, 0, 23, 0, 14049444, 14049444, 310, 1624875967, 12739870, 0, 78, 0, - 676400973, 557321544, 79, 5152703938, 1049728, 0, 77, 135846488, 545034, 0, 37, - ], - [ - 62678805, 25225312, 0, 77, 524392, 9526424, 0, 78, 7167734, 20792845, 0, 78, 10561788, 49063106, 0, 77, 0, - 1050624, 0, 324, 0, 4790371, 4790371, 323, 0, 2179749, 2179749, 322, 0, 18338066, 9242480, 79, 0, 27269783, - 18484960, 79, 231858765, 524800, 524800, 24, 1638925411, 12739870, 11090976, 79, 557321544, 119079429, 0, 80, - 5152703938, 1049728, 0, 78, 135846488, 545034, 0, 37, - ], - [ - 62678805, 25225312, 0, 78, 524392, 9526424, 4621240, 79, 7167734, 20792845, 11090976, 79, 10561788, 49063106, 0, - 78, 0, 1050624, 0, 325, 16212600, 9095586, 5670636, 80, 18484960, 8784823, 8227085, 80, 1882399952, 1648894, 0, - 80, 557321544, 2097312, 0, 81, 0, 116982117, 116982117, 243, 5152703938, 1049728, 0, 79, 135846488, 545034, 0, - 37, - ], - [ - 62678805, 25225312, 14787968, 79, 5145632, 4905184, 1998711, 80, 18258710, 9701869, 6119875, 80, 10561788, - 49063106, 25878944, 79, 0, 1050624, 1050624, 326, 21883236, 3424950, 3424950, 115, 26712045, 557738, 557738, - 115, 1882399952, 524864, 524864, 81, 0, 1124030, 1124030, 243, 557321544, 2097312, 2097312, 82, 5269686055, - 1049728, 0, 80, 135846488, 545034, 0, 37, - ], - [ - 77466773, 10437344, 6336873, 80, 7144343, 2906473, 2906473, 115, 24378585, 3581994, 3581994, 115, 36440732, - 23184162, 14346960, 80, 7766782350, 1049728, 0, 81, 135846488, 545034, 0, 38, - ], - [ - 83803646, 4100471, 4100471, 115, 88799087, 8837202, 8837202, 115, 7766782350, 1049728, 1049728, 82, 135846488, - 545034, 545034, 39, - ], - ], - numTicks: 8624078250, - }, - timeline: null, -}; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testData/dataNestedSet.ts b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testData/dataNestedSet.ts deleted file mode 100644 index fece1c67297..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraph/testData/dataNestedSet.ts +++ /dev/null @@ -1,2466 +0,0 @@ -import { DataFrameDTO } from '@grafana/data'; - -export const data: DataFrameDTO = { - name: 'response', - refId: 'A', - // @ts-ignore - meta: { preferredVisualisationType: 'flamegraph' }, - fields: [ - { - name: 'level', - values: [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 12, 13, 14, 15, 16, 10, 11, 12, 13, 9, 10, 9, 9, 7, 7, 6, 5, 6, 7, - 8, 8, 9, 10, 11, 12, 13, 8, 9, 10, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 11, 12, - 13, 8, 8, 7, 8, 8, 7, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 9, 8, 8, 7, 8, 6, 7, 8, 8, 7, 6, 7, 8, - 8, 8, 9, 10, 11, 12, 4, 5, 6, 7, 8, 9, 9, 10, 11, 9, 10, 7, 4, 5, 6, 7, 8, 8, 7, 8, 9, 10, 11, 12, 13, 10, 10, - 11, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 8, 9, 5, 6, 7, 6, 7, 6, 5, 6, 6, 6, 6, 5, 6, 7, 6, 5, 6, 7, 8, 4, 5, - 6, 5, 6, 5, 4, 5, 5, 3, 4, 5, 6, 7, 7, 8, 7, 8, 9, 8, 9, 8, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 24, 25, 26, 24, 25, 22, 23, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 21, 22, 23, 24, 25, 26, 27, 26, 24, 25, 26, 25, 24, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 25, 26, - 27, 25, 26, 24, 23, 24, 24, 25, 23, 23, 22, 23, 24, 24, 23, 24, 25, 26, 24, 25, 23, 24, 24, 25, 23, 23, 24, 24, - 23, 23, 23, 23, 23, 24, 25, 22, 23, 24, 25, 22, 23, 24, 25, 26, 27, 28, 25, 26, 27, 28, 29, 24, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 21, 22, 23, 23, 24, 24, 24, 22, 23, 24, 25, 24, 23, 24, 24, 23, 22, 23, 24, 25, - 25, 26, 27, 24, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 24, 21, 22, 23, 24, 25, 26, 27, 28, 21, 22, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 24, 25, 26, 27, 28, 23, 24, 25, 26, 27, 28, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 31, 30, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 29, 30, 31, 26, 27, 28, 28, 28, 29, 27, 26, 27, 26, 25, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 30, - 31, 32, 33, 34, 33, 34, 35, 36, 37, 38, 39, 29, 30, 31, 32, 32, 27, 28, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 27, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 28, 27, 28, 28, 29, 27, 27, 28, 27, 27, 26, - 27, 28, 28, 29, 29, 29, 26, 27, 27, 28, 29, 30, 29, 30, 30, 29, 30, 31, 28, 29, 30, 28, 28, 28, 28, 29, 30, 29, - 30, 27, 28, 28, 26, 27, 26, 27, 27, 28, 29, 26, 27, 28, 29, 28, 27, 28, 29, 30, 30, 28, 29, 30, 31, 32, 32, 27, - 28, 26, 25, 25, 26, 27, 28, 29, 30, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 31, 30, 31, 32, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 29, 26, 27, 28, - 29, 30, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 31, 30, 29, 29, 29, 25, 26, 27, 28, 26, - 26, 27, 28, 27, 28, 28, 26, 27, 28, 28, 27, 28, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 25, 26, 27, 28, 25, - 26, 24, 25, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 33, 34, 34, 32, 33, 34, 34, 32, 28, 29, 30, 31, 27, - 28, 29, 26, 27, 28, 29, 30, 31, 32, 33, 34, 26, 27, 28, 29, 24, 25, 26, 27, 28, 29, 30, 27, 28, 26, 27, 25, 26, - 27, 28, 29, 26, 25, 26, 27, 26, 27, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 38, 39, 30, 31, 32, 26, 27, - 28, 27, 28, 29, 25, 26, 27, 28, 29, 30, 31, 32, 28, 29, 28, 29, 28, 29, 27, 28, 29, 30, 31, 29, 30, 31, 32, 33, - 34, 35, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 28, 29, 30, 31, 28, 29, 30, 31, 26, 25, 26, 27, 28, 29, - 27, 28, 29, 30, 25, 26, 15, 14, 15, 16, 17, 13, 14, 15, 16, 15, 16, 17, 18, 19, 20, 12, 13, 14, 15, 16, 17, 10, - 11, 12, 13, 14, 12, 13, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 4, 5, 6, 7, 8, 9, 2, 3, 1, 2, 3, 4, 5, 6, - 6, 6, 6, 7, 8, 8, 9, 6, 7, 6, 6, 6, 6, 5, 5, 6, 5, 5, 5, 5, 5, 6, 7, 4, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9, 1, 2, - 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6, 1, 2, 3, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 5, 6, 7, 8, 5, - 5, 6, 7, 4, 5, 6, 4, 2, 3, 4, 3, 4, 5, 6, 5, 5, 6, 4, 1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 16, 17, 18, 19, 16, 17, 18, 19, 20, 21, 22, 23, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, - ], - }, - { - name: 'value', - values: [ - 16460000000, 4100000000, 4100000000, 3670000000, 1130000000, 1060000000, 1020000000, 150000000, 150000000, - 50000000, 30000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 80000000, 40000000, 10000000, 10000000, 530000000, 80000000, 40000000, 70000000, - 50000000, 50000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000, - 390000000, 390000000, 180000000, 70000000, 50000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 20000000, 10000000, 10000000, 10000000, 110000000, 80000000, 60000000, - 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 20000000, 10000000, 10000000, 30000000, 20000000, 40000000, 30000000, 20000000, 10000000, 10000000, 40000000, - 40000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 210000000, 210000000, 210000000, - 130000000, 130000000, 10000000, 50000000, 40000000, 40000000, 70000000, 10000000, 40000000, 1840000000, - 240000000, 240000000, 50000000, 10000000, 10000000, 190000000, 130000000, 50000000, 20000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 80000000, 20000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 60000000, 10000000, 1330000000, 1290000000, 320000000, 10000000, - 10000000, 10000000, 130000000, 10000000, 10000000, 60000000, 30000000, 100000000, 40000000, 10000000, 10000000, - 40000000, 30000000, 10000000, 10000000, 70000000, 10000000, 10000000, 50000000, 40000000, 10000000, 30000000, - 20000000, 10000000, 430000000, 430000000, 430000000, 430000000, 10000000, 40000000, 20000000, 370000000, - 20000000, 10000000, 180000000, 10000000, 30000000, 10000000, 10000000, 10000000, 5630000000, 5580000000, - 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5540000000, 5540000000, - 5530000000, 5510000000, 5500000000, 5490000000, 5490000000, 1610000000, 1610000000, 1540000000, 1540000000, - 190000000, 170000000, 170000000, 10000000, 20000000, 120000000, 10000000, 10000000, 20000000, 20000000, - 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 850000000, 350000000, 300000000, 120000000, 110000000, 80000000, 20000000, 10000000, 80000000, - 40000000, 20000000, 10000000, 10000000, 50000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, - 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 370000000, 40000000, 20000000, 10000000, 100000000, - 10000000, 10000000, 10000000, 30000000, 30000000, 80000000, 20000000, 10000000, 10000000, 10000000, 40000000, - 10000000, 10000000, 10000000, 20000000, 10000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 110000000, 110000000, 60000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 480000000, 150000000, 10000000, 130000000, 10000000, 10000000, - 50000000, 140000000, 80000000, 40000000, 10000000, 10000000, 20000000, 10000000, 10000000, 20000000, 120000000, - 60000000, 40000000, 10000000, 10000000, 10000000, 10000000, 20000000, 30000000, 30000000, 20000000, 20000000, - 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 60000000, 60000000, 60000000, 60000000, - 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 30000000, 30000000, 30000000, 30000000, - 30000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 3880000000, 3880000000, 3880000000, - 3880000000, 3870000000, 3230000000, 3230000000, 3210000000, 320000000, 70000000, 70000000, 40000000, 40000000, - 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, - 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, - 20000000, 20000000, 70000000, 60000000, 20000000, 30000000, 10000000, 10000000, 10000000, 100000000, 20000000, - 50000000, 1850000000, 410000000, 110000000, 110000000, 90000000, 60000000, 60000000, 40000000, 20000000, - 20000000, 20000000, 30000000, 30000000, 30000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, - 20000000, 20000000, 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 30000000, 20000000, 10000000, - 40000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 40000000, 10000000, 80000000, 30000000, 30000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 20000000, 60000000, 30000000, 30000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 160000000, 120000000, 20000000, 100000000, 50000000, 10000000, 10000000, - 640000000, 10000000, 550000000, 410000000, 80000000, 60000000, 260000000, 20000000, 170000000, 60000000, - 30000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 20000000, 50000000, 40000000, 10000000, - 10000000, 10000000, 70000000, 30000000, 40000000, 290000000, 90000000, 30000000, 10000000, 10000000, 10000000, - 10000000, 210000000, 20000000, 10000000, 10000000, 10000000, 120000000, 90000000, 90000000, 60000000, 10000000, - 30000000, 30000000, 30000000, 30000000, 10000000, 20000000, 50000000, 10000000, 10000000, 10000000, 280000000, - 150000000, 150000000, 150000000, 60000000, 30000000, 80000000, 50000000, 20000000, 20000000, 20000000, 20000000, - 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 130000000, 130000000, 130000000, 70000000, 30000000, 30000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 40000000, 10000000, 590000000, 20000000, - 20000000, 10000000, 40000000, 150000000, 30000000, 30000000, 120000000, 10000000, 80000000, 370000000, - 260000000, 40000000, 150000000, 110000000, 90000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 70000000, 60000000, - 20000000, 20000000, 640000000, 640000000, 250000000, 250000000, 230000000, 180000000, 170000000, 170000000, - 170000000, 170000000, 50000000, 10000000, 40000000, 10000000, 10000000, 60000000, 60000000, 10000000, 30000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 50000000, 50000000, 20000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 390000000, - 60000000, 40000000, 30000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 30000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 90000000, 10000000, 10000000, 60000000, 10000000, 40000000, - 40000000, 40000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 180000000, 170000000, 50000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 30000000, 30000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 90000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 70000000, 70000000, - 70000000, 70000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, - 20000000, 20000000, 20000000, 10000000, 40000000, 40000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000, 10000000, 6190000000, 6170000000, - 6170000000, 6070000000, 4460000000, 10000000, 50000000, 440000000, 540000000, 20000000, 10000000, 10000000, - 10000000, 980000000, 10000000, 50000000, 480000000, 540000000, 50000000, 210000000, 30000000, 30000000, - 60000000, 180000000, 10000000, 210000000, 20000000, 20000000, 20000000, 100000000, 20000000, 20000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 40000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, - 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 170000000, 160000000, 70000000, 30000000, - 10000000, 40000000, 10000000, 170000000, 90000000, 90000000, 70000000, 20000000, 10000000, 30000000, 30000000, - 30000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 80000000, - 10000000, 10000000, 70000000, 60000000, 10000000, 10000000, 20000000, 20000000, 20000000, 10000000, 80000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, - 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 50000000, 50000000, 50000000, 50000000, 50000000, - 50000000, 50000000, 10000000, 10000000, 10000000, 60000000, 60000000, 60000000, 60000000, 60000000, 60000000, - 60000000, 40000000, 40000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, - 10000000, 10000000, - ], - config: { - unit: 'short', - }, - }, - { - name: 'self', - values: [ - 16460, 4100, 4100, 3670, 1130, 1060, 1020, 150, 150, 50, 30, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 80, - 40, 10, 10, 530, 80, 40, 70, 50, 50, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 10, 390, 390, 180, 70, 50, 10, 20, 20, 10, 10, 10, 10, 10, 10, 10, 20, 10, 10, 10, 110, 80, 60, 10, 20, 20, 20, - 10, 10, 10, 10, 10, 10, 10, 20, 10, 10, 30, 20, 40, 30, 20, 10, 10, 40, 40, 10, 10, 10, 10, 10, 10, 10, 210, - 210, 210, 130, 130, 10, 50, 40, 40, 70, 10, 40, 1840, 240, 240, 50, 10, 10, 190, 130, 50, 20, 10, 10, 10, 10, - 10, 10, 80, 20, 10, 10, 10, 10, 10, 10, 10, 10, 60, 10, 1330, 1290, 320, 10, 10, 10, 130, 10, 10, 60, 30, 100, - 40, 10, 10, 40, 30, 10, 10, 70, 10, 10, 50, 40, 10, 30, 20, 10, 430, 430, 430, 430, 10, 40, 20, 370, 20, 10, - 180, 10, 30, 10, 10, 10, 5630, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5540, 5540, 5530, 5510, 5500, - 5490, 5490, 1610, 1610, 1540, 1540, 190, 170, 170, 10, 20, 120, 10, 10, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 850, 350, 300, 120, 110, 80, 20, 10, 80, 40, 20, 10, 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 20, 20, 20, 20, 10, 10, 10, 10, 10, 370, 40, 20, 10, 100, 10, 10, 10, 30, 30, 80, 20, 10, - 10, 10, 40, 10, 10, 10, 20, 10, 20, 10, 10, 10, 10, 10, 10, 10, 110, 110, 60, 20, 20, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 480, 150, 10, 130, 10, 10, 50, 140, 80, 40, 10, 10, 20, - 10, 10, 20, 120, 60, 40, 10, 10, 10, 10, 20, 30, 30, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 60, 60, 60, 60, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 30, - 30, 30, 30, 30, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3880, 3880, 3880, 3880, - 3870, 3230, 3230, 3210, 320, 70, 70, 40, 40, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 20, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 70, 60, 20, 30, 10, 10, 10, 100, 20, 50, - 1850, 410, 110, 110, 90, 60, 60, 40, 20, 20, 20, 30, 30, 30, 10, 10, 20, 20, 20, 20, 20, 20, 10, 20, 20, 20, 10, - 10, 30, 20, 10, 40, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 10, 80, 30, 30, 10, 10, 10, 10, 10, - 10, 10, 20, 60, 30, 30, 10, 10, 10, 10, 10, 10, 160, 120, 20, 100, 50, 10, 10, 640, 10, 550, 410, 80, 60, 260, - 20, 170, 60, 30, 20, 20, 20, 10, 10, 10, 20, 50, 40, 10, 10, 10, 70, 30, 40, 290, 90, 30, 10, 10, 10, 10, 210, - 20, 10, 10, 10, 120, 90, 90, 60, 10, 30, 30, 30, 30, 10, 20, 50, 10, 10, 10, 280, 150, 150, 150, 60, 30, 80, 50, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 130, 130, 130, 70, 30, 30, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 10, 590, 20, 20, 10, 40, 150, 30, 30, 120, 10, 80, 370, 260, 40, - 150, 110, 90, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 70, 60, 20, 20, 640, 640, 250, 250, - 230, 180, 170, 170, 170, 170, 50, 10, 40, 10, 10, 60, 60, 10, 30, 10, 10, 10, 10, 10, 50, 50, 20, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 390, 60, 40, 30, 20, 20, 10, 10, 10, 10, 10, 30, 10, 10, 10, 10, 10, 90, - 10, 10, 60, 10, 40, 40, 40, 30, 30, 30, 30, 30, 30, 30, 30, 10, 10, 10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 180, - 170, 50, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 30, 30, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 90, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 70, 70, 70, 70, 10, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 10, 10, 10, 10, - 10, 20, 20, 20, 20, 20, 10, 40, 40, 10, 10, 10, 10, 10, 30, 30, 30, 30, 30, 30, 10, 10, 6190, 6170, 6170, 6070, - 4460, 10, 50, 440, 540, 20, 10, 10, 10, 980, 10, 50, 480, 540, 50, 210, 30, 30, 60, 180, 10, 210, 20, 20, 20, - 100, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, - 10, 10, 10, 10, 10, 170, 160, 70, 30, 10, 40, 10, 170, 90, 90, 70, 20, 10, 30, 30, 30, 30, 10, 10, 10, 10, 10, - 10, 10, 10, 80, 10, 10, 70, 60, 10, 10, 20, 20, 20, 10, 80, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 50, 50, 50, 50, 50, 50, 50, 10, 10, 10, 60, 60, 60, 60, 60, 60, 60, 40, 40, 30, 30, 30, 30, 30, - 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, - ], - config: { - unit: 'short', - }, - }, - { - name: 'label', - values: [ - 'total', - 'test/pkg/agent.(*Target).start.func1', - 'test/pkg/agent.(*Target).scrape', - 'test/pkg/distributor.(*Distributor).Push', - 'compress/gzip.(*Writer).Write', - 'compress/flate.(*compressor).write', - 'compress/flate.(*compressor).deflate', - 'compress/flate.(*compressor).writeBlock', - 'compress/flate.(*huffmanBitWriter).writeBlock', - 'compress/flate.(*huffmanBitWriter).indexTokens', - 'compress/flate.(*huffmanEncoder).generate', - 'compress/flate.(*huffmanEncoder).bitCounts', - 'runtime.memmove', - 'compress/flate.(*huffmanEncoder).assignEncodingAndSize', - 'sort.Sort', - 'sort.quickSort', - 'sort.quickSort', - 'sort.quickSort', - 'sort.insertionSort', - 'compress/flate.(*byFreq).sort', - 'sort.Sort', - 'sort.quickSort', - 'sort.doPivot', - 'compress/flate.(*huffmanBitWriter).writeTokens', - 'compress/flate.(*huffmanBitWriter).writeCode', - 'compress/flate.offsetCode', - 'compress/flate.(*huffmanBitWriter).dynamicSize', - 'compress/flate.(*compressor).findMatch', - 'compress/flate.matchLen', - 'compress/flate.hash4', - 'compress/flate.NewWriter', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.memclrNoHeapPointers', - 'runtime.gcAssistAlloc', - 'runtime.systemstack', - 'runtime.gcAssistAlloc.func1', - 'runtime.gcAssistAlloc1', - 'runtime.gcDrainN', - 'runtime.scanobject', - 'runtime.heapBitsSetType', - 'runtime.heapBitsSetTypeGCProg', - 'runtime.runGCProg', - 'compress/flate.(*compressor).initDeflate', - 'runtime.makeslice', - 'runtime.mallocgc', - 'runtime.gcAssistAlloc', - 'runtime.systemstack', - 'runtime.gcAssistAlloc.func1', - 'runtime.gcAssistAlloc1', - 'runtime.gcDrainN', - 'runtime.scanobject', - 'runtime.pageIndexOf', - 'test/pkg/pprof.OpenRaw', - 'test/pkg/gen/google/v1.(*Profile).UnmarshalVT', - 'test/pkg/gen/google/v1.(*Sample).UnmarshalVT', - 'runtime.makeslice', - 'runtime.mallocgc', - 'runtime.memclrNoHeapPointers', - 'runtime.(*mcache).nextFree', - 'runtime.(*mcache).refill', - 'runtime.(*mcentral).uncacheSpan', - 'runtime.(*spanSet).push', - 'runtime.(*mcentral).cacheSpan', - 'runtime.(*mcentral).grow', - 'runtime.(*mheap).alloc', - 'runtime.getMCache', - 'runtime.nextFreeFast', - 'runtime.newobject', - 'runtime.nextFreeFast', - 'runtime.mallocgc', - 'runtime.growslice', - 'test/pkg/gen/google/v1.(*Location).UnmarshalVT', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.heapBitsForAddr', - 'runtime.(*mcache).nextFree', - 'runtime.(*mcache).refill', - 'runtime.(*mcentral).cacheSpan', - 'runtime.(*mcentral).grow', - 'runtime.(*mheap).alloc', - 'runtime.systemstack', - 'runtime.(*mheap).alloc.func1', - 'runtime.(*mheap).allocSpan', - 'runtime.(*mheap).allocMSpanLocked', - 'runtime.(*fixalloc).alloc', - 'runtime.heapBitsSetType', - 'runtime.nextFreeFast', - 'runtime.getMCache', - 'runtime.growslice', - 'runtime.mallocgc', - 'runtime.growslice', - 'runtime.mallocgc', - 'runtime.heapBitsSetType', - 'runtime.memclrNoHeapPointers', - 'runtime.memmove', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.heapBitsSetType', - 'runtime.memclrNoHeapPointers', - 'runtime.(*mcache).nextFree', - 'runtime.(*mcache).refill', - 'runtime.(*mcentral).uncacheSpan', - 'runtime.(*spanSet).push', - 'runtime.(*headTailIndex).incTail', - 'compress/gzip.(*Writer).Close', - 'compress/flate.(*compressor).close', - 'compress/flate.(*compressor).deflate', - 'compress/flate.(*compressor).writeBlock', - 'compress/flate.(*huffmanBitWriter).writeBlock', - 'compress/flate.offsetCode', - 'compress/flate.(*huffmanBitWriter).indexTokens', - 'compress/flate.(*huffmanEncoder).generate', - 'compress/flate.(*huffmanEncoder).bitCounts', - 'compress/flate.(*huffmanBitWriter).writeTokens', - 'compress/flate.(*huffmanBitWriter).writeCode', - 'compress/flate.(*compressor).findMatch', - 'test/pkg/pprof.(*Profile).Normalize', - 'sort.Sort', - 'sort.quickSort', - 'sort.doPivot', - 'test/pkg/pprof.(*sortedSample).Less', - 'test/pkg/pprof.(*sortedSample).Swap', - 'sort.quickSort', - 'sort.quickSort', - 'sort.quickSort', - 'sort.quickSort', - 'sort.quickSort', - 'sort.insertionSort', - 'test/pkg/pprof.(*sortedSample).Less', - 'sort.doPivot', - 'sort.insertionSort', - 'test/pkg/pprof.(*sortedSample).Swap', - 'sort.doPivot', - 'test/pkg/pprof.(*sortedSample).Less', - 'test/pkg/pprof.(*sortedSample).Swap', - 'runtime.gcWriteBarrierR8', - 'runtime.gcWriteBarrier', - 'runtime.wbBufFlush', - 'runtime.systemstack', - 'runtime.wbBufFlush.func1', - 'runtime.wbBufFlush1', - 'runtime.findObject', - 'sort.doPivot', - 'test/pkg/pprof.(*sortedSample).Less', - 'test/pkg/pprof.(*Profile).clearSampleReferences', - 'test/pkg/slices.RemoveInPlace[...]', - 'test/pkg/pprof.(*Profile).clearSampleReferences.func1', - 'runtime.growslice', - 'runtime.memmove', - 'runtime.memmove', - 'test/pkg/pprof.StacktracesHasher.Hashes', - 'github.com/cespare/xxhash/v2.round', - 'github.com/cespare/xxhash/v2.(*Digest).Sum64', - 'github.com/cespare/xxhash/v2.(*Digest).Write', - 'github.com/cespare/xxhash/v2.u64', - 'github.com/samber/lo.Uniq[...]', - 'runtime.mapaccess2_fast64', - 'runtime.memhash64', - 'runtime.bucketMask', - 'test/pkg/slices.RemoveInPlace[...]', - 'test/pkg/pprof.(*Profile).Normalize.func1', - 'test/pkg/slices.RemoveInPlace[...]', - 'test/pkg/pprof.(*Profile).Normalize.func1.1', - 'test/pkg/gen/google/v1.(*Profile).MarshalToVT', - 'test/pkg/gen/google/v1.(*Profile).MarshalToSizedBufferVT', - 'test/pkg/gen/google/v1.(*Sample).MarshalToSizedBufferVT', - 'test/pkg/gen/google/v1.(*Profile).SizeVT', - 'test/pkg/gen/google/v1.(*Sample).SizeVT', - 'test/pkg/gen/google/v1.encodeVarint', - 'test/pkg/gen/google/v1.(*Profile).SizeVT', - 'test/pkg/gen/google/v1.(*Location).SizeVT', - 'test/pkg/gen/google/v1.(*Sample).SizeVT', - 'io/ioutil.ReadAll', - 'io.ReadAll', - 'compress/gzip.(*Reader).Read', - 'compress/flate.(*decompressor).Read', - 'runtime.memmove', - 'compress/flate.(*dictDecoder).tryWriteCopy', - 'runtime.memmove', - 'compress/flate.(*decompressor).huffmanBlock', - 'compress/flate.(*dictDecoder).writeCopy', - 'runtime.memmove', - 'compress/flate.(*decompressor).huffSym', - 'bytes.(*Reader).ReadByte', - 'compress/flate.(*decompressor).moreBits', - 'compress/flate.(*decompressor).nextBlock', - 'compress/flate.(*decompressor).huffmanBlock', - 'compress/flate.(*decompressor).moreBits', - 'net/http.(*conn).serve', - 'net/http.serverHandler.ServeHTTP', - 'net/http.HandlerFunc.ServeHTTP', - 'test/pkg/util.glob..func1.1', - 'golang.org/x/net/http2/h2c.h2cHandler.ServeHTTP', - 'net/http.HandlerFunc.ServeHTTP', - 'test/pkg/create.(*create).initServer.func2.1', - 'net/http.HandlerFunc.ServeHTTP', - 'github.com/opentracing-contrib/go-stdlib/nethttp.MiddlewareFunc.func5', - 'net/http.HandlerFunc.ServeHTTP', - 'github.com/weaveworks/common/middleware.Log.Wrap.func1', - 'net/http.HandlerFunc.ServeHTTP', - 'github.com/weaveworks/common/middleware.Instrument.Wrap.func1', - 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics', - 'github.com/weaveworks/common/middleware.Instrument.Wrap.func1.2', - 'github.com/gorilla/mux.(*Router).ServeHTTP', - 'github.com/bufbuild/connect-go.(*Handler).ServeHTTP', - 'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1', - 'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1.1', - 'test/pkg/ingester.(*Ingester).Push', - 'io.ReadAll', - 'github.com/klauspost/compress/gzip.(*Reader).Read', - 'github.com/klauspost/compress/flate.(*decompressor).Read', - 'github.com/klauspost/compress/flate.(*dictDecoder).tryWriteCopy', - 'github.com/klauspost/compress/flate.(*dictDecoder).writeByte', - 'github.com/klauspost/compress/flate.(*decompressor).huffmanBytesReader', - 'github.com/klauspost/compress/flate.(*dictDecoder).writeCopy', - 'runtime.memmove', - 'github.com/klauspost/compress/flate.(*decompressor).nextBlock', - 'github.com/klauspost/compress/flate.(*decompressor).huffmanBytesReader', - 'runtime.growslice', - 'runtime.memmove', - 'runtime.mallocgc', - 'runtime.(*mcache).allocLarge', - 'runtime.(*mheap).alloc', - 'runtime.systemstack', - 'runtime.(*mheap).alloc.func1', - 'runtime.(*mheap).allocSpan', - 'runtime.(*pageAlloc).alloc', - 'runtime.(*pageAlloc).allocRange', - 'runtime.(*pageAlloc).update', - 'runtime.(*pallocBits).summarize', - 'test/pkg/create.(*Head).Ingest', - 'test/pkg/create.(*Head).convertSamples', - 'test/pkg/create.(*deduplicatingSlice[...]).ingest', - 'test/pkg/create.(*stacktracesHelper).rewrite', - 'test/pkg/create.idConversionTable.rewriteUint64', - 'runtime.mapaccess2_fast64', - 'runtime.memhash64', - 'runtime.add', - 'test/pkg/create.(*stacktracesHelper).key', - 'github.com/cespare/xxhash/v2.(*Digest).Write', - 'runtime.memmove', - 'github.com/cespare/xxhash/v2.round', - 'runtime.mapaccess2_fast64', - 'runtime.mapassign_fast64', - 'runtime.hashGrow', - 'runtime.makeBucketArray', - 'runtime.newarray', - 'runtime.mallocgc', - 'runtime.profilealloc', - 'runtime.mProf_Malloc', - 'runtime.callers', - 'runtime.systemstack', - 'runtime.callers.func1', - 'runtime.gentraceback', - 'runtime.findfunc', - 'runtime.(*hmap).newoverflow', - 'runtime.growslice', - 'runtime.releasem', - 'runtime.growWork_fast64', - 'runtime.evacuate_fast64', - 'encoding/binary.littleEndian.PutUint64', - 'runtime.newobject', - 'runtime.acquirem', - 'runtime.mallocgc', - 'runtime.heapBitsSetType', - 'test/pkg/create.(*labelCache).rewriteLabels', - 'runtime.mapaccess1_fast64', - 'test/pkg/create.(*deduplicatingSlice[...]).ingest', - 'runtime.mapaccess2_faststr', - 'aeshashbody', - 'memeqbody', - 'runtime.mapassign_fast64', - 'runtime.(*hmap).newoverflow', - 'runtime.growslice', - 'runtime.nextFreeFast', - 'runtime.growWork_fast64', - 'runtime.evacuate_fast64', - 'runtime.mapaccess2', - 'memeqbody', - 'runtime.memhash_varlen', - 'aeshashbody', - 'runtime.evacuated', - 'test/pkg/create.(*locationsHelper).key', - 'github.com/cespare/xxhash/v2.(*Digest).Sum64', - 'github.com/cespare/xxhash/v2.(*Digest).Write', - 'runtime.bucketShift', - 'test/pkg/create.(*stringsHelper).addToRewriter', - 'encoding/binary.littleEndian.PutUint64', - 'runtime.add', - 'test/pkg/create.(*locationsHelper).rewrite', - 'test/pkg/create.idConversionTable.rewriteUint64', - 'runtime.mapaccess2_fast64', - 'github.com/prometheus/client_golang/prometheus.(*CounterVec).WithLabelValues', - 'github.com/prometheus/client_golang/prometheus.(*MetricVec).GetMetricWithLabelValues', - 'github.com/prometheus/client_golang/prometheus.(*MetricVec).hashLabelValues', - 'github.com/prometheus/client_golang/prometheus.hashAdd', - 'test/pkg/create.(*deltaProfiles).computeDelta', - 'test/pkg/create.deltaSamples', - 'runtime.mapassign_fast64', - 'runtime.growWork_fast64', - 'runtime.evacuate_fast64', - 'runtime.typedmemmove', - 'runtime.bulkBarrierPreWrite', - 'runtime.hashGrow', - 'runtime.makeBucketArray', - 'runtime.newarray', - 'runtime.mallocgc', - 'runtime.heapBitsSetType', - 'runtime.mapaccess2_fast64', - 'test/pkg/create.copySlice[...]', - 'runtime.mallocgc', - 'runtime.(*mcache).nextFree', - 'runtime.(*mcache).refill', - 'runtime.(*mcentral).cacheSpan', - 'runtime.(*mcentral).grow', - 'runtime.(*mheap).alloc', - 'runtime.systemstack', - 'runtime.(*mheap).alloc.func1', - 'runtime.(*mheap).allocSpan', - 'runtime.(*mheap).allocMSpanLocked', - 'runtime.(*fixalloc).alloc', - 'test/pkg/gen/google/v1.(*Profile).UnmarshalVT', - 'runtime.newobject', - 'runtime.nextFreeFast', - 'runtime.mallocgc', - 'runtime.add1', - 'runtime.heapBitsForAddr', - 'runtime.heapBitsSetType', - 'test/pkg/gen/google/v1.(*Location).UnmarshalVT', - 'runtime.growslice', - 'runtime.mallocgc', - 'runtime.heapBitsSetType', - 'runtime.nextFreeFast', - 'runtime.newobject', - 'runtime.getMCache', - 'runtime.mallocgc', - 'runtime.roundupsize', - 'test/pkg/gen/google/v1.(*Sample).UnmarshalVT', - 'runtime.makeslice', - 'runtime.mallocgc', - 'runtime.memclrNoHeapPointers', - 'runtime.(*mcache).nextFree', - 'runtime.(*mcache).refill', - 'runtime.(*mcentral).cacheSpan', - 'runtime.acquirem', - 'runtime.growslice', - 'runtime.mallocgc', - 'runtime.profilealloc', - 'runtime.mProf_Malloc', - 'runtime.callers', - 'runtime.systemstack', - 'runtime.callers.func1', - 'runtime.gentraceback', - 'runtime.pcdatavalue', - 'runtime.pcvalue', - 'runtime.step', - 'runtime.memclrNoHeapPointers', - 'github.com/go-kit/log.(*context).Log', - 'github.com/go-kit/log.bindValues', - 'github.com/go-kit/log.Caller.func1', - 'runtime.Caller', - 'runtime.(*Frames).Next', - 'runtime.funcline1', - 'runtime.pcvalue', - 'runtime.readvarint', - 'test/pkg/gen/google/v1.(*Profile).ReturnToVTPool', - 'test/pkg/gen/google/v1.(*Profile).ResetVT', - 'github.com/bufbuild/connect-go.(*errorTranslatingSender).Send', - 'github.com/bufbuild/connect-go.(*connectUnaryHandlerSender).Send', - 'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).Marshal', - 'github.com/bufbuild/connect-go.(*compressionPool).Compress', - 'github.com/bufbuild/connect-go.(*compressionPool).putCompressor', - 'compress/gzip.(*Writer).Close', - 'compress/gzip.(*Writer).Write', - 'compress/flate.NewWriter', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.gcAssistAlloc', - 'runtime.systemstack', - 'runtime.gcAssistAlloc.func1', - 'runtime.gcAssistAlloc1', - 'runtime.gcDrainN', - 'runtime.scanobject', - 'runtime.spanOf', - 'compress/gzip.(*Writer).Reset', - 'compress/gzip.(*Writer).init', - 'compress/flate.(*Writer).Reset', - 'compress/flate.(*compressor).reset', - 'runtime.memclrNoHeapPointers', - 'github.com/bufbuild/connect-go.(*compressionPool).getCompressor', - 'compress/gzip.(*Writer).Reset', - 'compress/gzip.(*Writer).init', - 'compress/flate.(*Writer).Reset', - 'compress/flate.(*compressor).reset', - 'runtime.memclrNoHeapPointers', - 'github.com/bufbuild/connect-go.receiveUnaryRequest[...]', - 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Receive', - 'github.com/bufbuild/connect-go.(*connectUnaryHandlerReceiver).Receive', - 'github.com/bufbuild/connect-go.(*connectUnaryUnmarshaler).UnmarshalFunc', - 'bytes.(*Buffer).ReadFrom', - 'github.com/weaveworks/common/middleware.(*reqBody).Read', - 'net/http.(*body).Read', - 'net/http.(*body).readLocked', - 'net/http/internal.(*chunkedReader).Read', - 'bufio.(*Reader).Read', - 'net/http.(*connReader).Read', - 'net.(*conn).Read', - 'net.(*netFD).Read', - 'syscall.Read', - 'syscall.read', - 'syscall.Syscall', - 'net/http.(*ServeMux).ServeHTTP', - 'net/http.HandlerFunc.ServeHTTP', - 'net/http/pprof.Index', - 'net/http/pprof.handler.ServeHTTP', - 'runtime/pprof.(*Profile).WriteTo', - 'runtime/pprof.writeAlloc', - 'runtime/pprof.writeHeapInternal', - 'runtime/pprof.writeHeapProto', - 'runtime/pprof.(*profileBuilder).pbSample', - 'runtime/pprof.(*profileBuilder).flush', - 'compress/gzip.(*Writer).Write', - 'compress/flate.(*compressor).write', - 'compress/flate.(*compressor).encSpeed', - 'compress/flate.(*huffmanBitWriter).writeBlockDynamic', - 'compress/flate.(*huffmanBitWriter).writeTokens', - 'compress/flate.(*huffmanBitWriter).writeCode', - 'github.com/felixge/httpsnoop.(*rw).Write', - 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1', - 'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write', - 'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write', - 'net/http.(*response).Write', - 'net/http.(*response).write', - 'bufio.(*Writer).Write', - 'bufio.(*Writer).Flush', - 'net/http.(*chunkWriter).Write', - 'bufio.(*Writer).Write', - 'bufio.(*Writer).Flush', - 'net/http.checkConnErrorWriter.Write', - 'net.(*conn).Write', - 'net.(*netFD).Write', - 'internal/poll.(*FD).Write', - 'syscall.write', - 'syscall.Syscall', - 'compress/flate.token.length', - 'compress/flate.(*deflateFast).encode', - 'compress/flate.NewWriter', - 'compress/flate.(*compressor).init', - 'runtime.makeslice', - 'runtime.mallocgc', - 'runtime.gcAssistAlloc', - 'runtime.systemstack', - 'runtime.gcAssistAlloc.func1', - 'runtime.gcAssistAlloc1', - 'runtime.gcDrainN', - 'runtime.scanobject', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.memclrNoHeapPointers', - 'runtime/pprof.writeHeapProto.func1', - 'runtime/pprof.(*profileBuilder).pbLabel', - 'runtime.mapaccess2_faststr', - 'runtime/pprof.(*protobuf).int64Opt', - 'runtime/pprof.(*protobuf).endMessage', - 'runtime.memmove', - 'runtime/pprof.(*protobuf).startMessage', - 'runtime/pprof.(*protobuf).uint64s', - 'runtime.memmove', - 'runtime/pprof.(*protobuf).int64s', - 'runtime/pprof.(*profileBuilder).appendLocsForStack', - 'runtime/pprof.(*profileBuilder).emitLocation', - 'runtime/pprof.(*profileBuilder).flush', - 'compress/gzip.(*Writer).Write', - 'compress/flate.NewWriter', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.memclrNoHeapPointers', - 'runtime.heapBitsSetType', - 'runtime.heapBitsSetTypeGCProg', - 'runtime.runGCProg', - 'compress/flate.(*compressor).init', - 'runtime.makeslice', - 'runtime.mallocgc', - 'runtime.memclrNoHeapPointersChunked', - 'runtime.memclrNoHeapPointers', - 'runtime.gcAssistAlloc', - 'runtime.systemstack', - 'runtime.gcAssistAlloc.func1', - 'runtime.gcAssistAlloc1', - 'runtime.gcDrainN', - 'runtime.scanobject', - 'runtime.pageIndexOf', - 'compress/flate.(*compressor).write', - 'compress/flate.(*compressor).encSpeed', - 'compress/flate.(*huffmanBitWriter).writeBlockDynamic', - 'compress/flate.(*huffmanBitWriter).writeTokens', - 'compress/flate.(*huffmanBitWriter).indexTokens', - 'runtime.growslice', - 'runtime.mallocgc', - 'runtime.acquirem', - 'runtime.mapassign_faststr', - 'runtime.hashGrow', - 'runtime.makeBucketArray', - 'runtime.newarray', - 'runtime.mallocgc', - 'runtime.profilealloc', - 'runtime.mProf_Malloc', - 'runtime.callers', - 'runtime.systemstack', - 'runtime.callers.func1', - 'runtime.gentraceback', - 'runtime.pcdatavalue', - 'runtime.pcvalue', - 'runtime.step', - 'runtime.mapaccess1_faststr', - 'aeshashbody', - 'runtime.mapassign_fast64', - 'runtime.growWork_fast64', - 'runtime.evacuate_fast64', - 'runtime.memclrHasPointers', - 'runtime.bulkBarrierPreWrite', - 'runtime.wbBufFlush', - 'runtime.systemstack', - 'runtime.wbBufFlush.func1', - 'runtime.wbBufFlush1', - 'runtime.spanOf', - 'runtime.memhash64', - 'runtime/pprof.(*profileBuilder).pbLine', - 'runtime/pprof.(*protobuf).int64Opt', - 'runtime/pprof.(*protobuf).endMessage', - 'runtime.memmove', - 'runtime.duffcopy', - 'runtime/pprof.(*protobuf).endMessage', - 'runtime.memmove', - 'runtime.duffzero', - 'runtime/pprof.(*protobuf).int64Opt', - 'runtime.CallersFrames', - 'runtime.newobject', - 'runtime.nextFreeFast', - 'runtime.mallocgc', - 'runtime.heapBitsSetType', - 'runtime.memclrNoHeapPointers', - 'runtime.heapBitsForAddr', - 'runtime/pprof.allFrames', - 'runtime.duffcopy', - 'runtime.(*Frames).Next', - 'runtime.funcline1', - 'runtime.funcInfo.entry', - 'runtime.(*moduledata).textAddr', - 'runtime.pcvalue', - 'runtime.readvarint', - 'runtime.step', - 'runtime.funcfile', - 'runtime.findnull', - 'indexbytebody', - 'runtime.funcname', - 'runtime.findnull', - 'indexbytebody', - 'runtime.findfunc', - 'runtime.duffzero', - 'runtime.(*Func).Entry', - 'runtime.pcdatavalue1', - 'runtime.pcvalue', - 'runtime.step', - 'runtime.funcInfo.entry', - 'runtime.(*moduledata).textAddr', - 'runtime.newobject', - 'runtime.nextFreeFast', - 'runtime.mallocgc', - 'runtime.mapaccess2_fast64', - 'runtime.memhash64', - 'runtime/pprof.runtime_expandFinalInlineFrame', - 'runtime.findfunc', - 'runtime.pcdatavalue1', - 'runtime.funcInfo.entry', - 'runtime.(*moduledata).textAddr', - 'runtime/pprof.(*profileBuilder).stringIndex', - 'runtime.growslice', - 'runtime.mallocgc', - 'runtime.heapBitsSetType', - 'runtime.memmove', - 'runtime.mapassign_faststr', - 'runtime.growWork_faststr', - 'runtime.evacuate_faststr', - 'aeshashbody', - 'runtime.advanceEvacuationMark', - 'runtime.hashGrow', - 'runtime.makeBucketArray', - 'runtime.newarray', - 'runtime.mallocgc', - 'runtime.memclrNoHeapPointers', - 'runtime.heapBitsSetType', - 'runtime.mapaccess2_faststr', - 'aeshashbody', - 'runtime/pprof.(*protobuf).uint64Opt', - 'runtime.funcdata', - 'runtime/pprof.(*profileBuilder).build', - 'compress/gzip.(*Writer).Write', - 'compress/flate.(*compressor).write', - 'compress/flate.(*compressor).encSpeed', - 'compress/flate.(*deflateFast).encode', - 'compress/flate.(*deflateFast).matchLen', - 'compress/flate.(*huffmanBitWriter).writeBlockDynamic', - 'compress/flate.(*huffmanBitWriter).writeTokens', - 'compress/flate.(*huffmanBitWriter).writeCode', - 'github.com/felixge/httpsnoop.(*rw).Write', - 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1', - 'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write', - 'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write', - 'net/http.(*response).Write', - 'net/http.(*response).write', - 'bufio.(*Writer).Write', - 'bufio.(*Writer).Flush', - 'net/http.(*chunkWriter).Write', - 'bufio.(*Writer).Write', - 'bufio.(*Writer).Flush', - 'net/http.checkConnErrorWriter.Write', - 'net.(*conn).Write', - 'net.(*netFD).Write', - 'internal/poll.(*FD).Write', - 'syscall.write', - 'syscall.Syscall', - 'compress/flate.(*huffmanBitWriter).writeBits', - 'compress/flate.(*huffmanBitWriter).indexTokens', - 'compress/flate.(*huffmanEncoder).generate', - 'compress/flate.(*huffmanEncoder).bitCounts', - 'compress/flate.(*huffmanBitWriter).writeDynamicHeader', - 'compress/flate.(*huffmanBitWriter).writeCode', - 'github.com/felixge/httpsnoop.(*rw).Write', - 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1', - 'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write', - 'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write', - 'net/http.(*response).Write', - 'net/http.(*response).write', - 'bufio.(*Writer).Write', - 'bufio.(*Writer).Flush', - 'net/http.(*chunkWriter).Write', - 'bufio.(*Writer).Write', - 'bufio.(*Writer).Flush', - 'net/http.checkConnErrorWriter.Write', - 'net.(*conn).Write', - 'net.(*netFD).Write', - 'internal/poll.(*FD).Write', - 'syscall.write', - 'syscall.Syscall', - 'compress/flate.hash', - 'compress/gzip.(*Writer).Close', - 'compress/flate.(*compressor).close', - 'compress/flate.(*compressor).encSpeed', - 'compress/flate.(*huffmanBitWriter).writeBlockDynamic', - 'compress/flate.(*huffmanBitWriter).indexTokens', - 'compress/flate.(*huffmanBitWriter).writeTokens', - 'compress/flate.(*huffmanBitWriter).writeBits', - 'github.com/felixge/httpsnoop.(*rw).Write', - 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1', - 'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write', - 'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write', - 'net/http.(*response).Write', - 'net/http.(*response).write', - 'bufio.(*Writer).Write', - 'bufio.(*Writer).Flush', - 'net/http.(*chunkWriter).Write', - 'fmt.Fprintf', - 'fmt.(*pp).doPrintf', - 'fmt.(*pp).printArg', - 'fmt.(*pp).fmtInteger', - 'fmt.(*fmt).fmtInteger', - 'compress/flate.(*huffmanBitWriter).writeCode', - 'compress/flate.token.offset', - 'compress/flate.hash', - 'compress/flate.(*deflateFast).encode', - 'compress/flate.load64', - 'runtime.FuncForPC', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.heapBitsSetType', - 'runtime.findfunc', - 'runtime.pcdatavalue1', - 'runtime.funcInfo.entry', - 'runtime.(*moduledata).textAddr', - 'runtime.pcvalue', - 'runtime.readvarint', - 'runtime.step', - 'runtime.funcline1', - 'runtime.pcvalue', - 'runtime.readvarint', - 'runtime.step', - 'runtime.funcInfo.entry', - 'runtime.(*moduledata).textAddr', - 'runtime/pprof.newProfileBuilder', - 'runtime/pprof.(*profileBuilder).readMapping', - 'os.ReadFile', - 'runtime.growslice', - 'runtime.mallocgc', - 'runtime.gcAssistAlloc', - 'runtime.systemstack', - 'runtime.gcAssistAlloc.func1', - 'runtime.gcAssistAlloc1', - 'runtime.gcDrainN', - 'runtime.duffcopy', - 'runtime.(*Func).Name', - 'runtime.funcname', - 'runtime.findnull', - 'indexbytebody', - 'runtime/pprof.scaleHeapSample', - 'math.archExp', - 'runtime.(*MemProfileRecord).Stack', - 'runtime.duffcopy', - 'runtime/pprof.writeGoroutine', - 'runtime/pprof.writeRuntimeProfile', - 'runtime/pprof.runtime_goroutineProfileWithLabels', - 'runtime.goroutineProfileWithLabels', - 'runtime.forEachGRace', - 'runtime.goroutineProfileWithLabels.func4', - 'runtime.systemstack', - 'runtime.goroutineProfileWithLabels.func4.1', - 'runtime.saveg', - 'runtime.gentraceback', - 'runtime.pcdatavalue', - 'runtime.funcInfo.entry', - 'runtime.pcvalue', - 'runtime.step', - 'runtime.readvarint', - 'runtime.funcspdelta', - 'runtime.pcvalue', - 'runtime.readvarint', - 'runtime.step', - 'runtime.findfunc', - 'runtime.goroutineProfileWithLabels.func1', - 'runtime.isSystemGoroutine', - 'runtime.funcname', - 'runtime.findnull', - 'runtime.goroutineProfileWithLabels.func2', - 'runtime.goroutineProfileWithLabels.func1', - 'runtime.isSystemGoroutine', - 'runtime.startTheWorld', - 'runtime.systemstack', - 'runtime.startTheWorld.func1', - 'runtime.startTheWorldWithSema', - 'runtime.wakep', - 'runtime.startm', - 'runtime.notewakeup', - 'runtime.futexwakeup', - 'runtime.futex', - 'runtime.systemstack', - 'runtime.goroutineProfileWithLabels.func3', - 'runtime.saveg', - 'runtime.gentraceback', - 'runtime/pprof.printCountProfile', - 'runtime/pprof.printCountProfile.func1', - 'fmt.Fprintf', - 'fmt.(*pp).doPrintf', - 'fmt.(*pp).printArg', - 'fmt.(*pp).fmtInteger', - 'fmt.(*fmt).fmtInteger', - 'bytes.(*Buffer).Write', - 'runtime.memmove', - 'runtime.slicebytetostring', - 'runtime.nextFreeFast', - 'runtime.mapassign_faststr', - 'runtime.hashGrow', - 'runtime.makeBucketArray', - 'runtime.newarray', - 'runtime.nextFreeFast', - 'aeshashbody', - 'runtime/pprof.(*profileBuilder).appendLocsForStack', - 'runtime/pprof.(*profileBuilder).stringIndex', - 'runtime.overLoadFactor', - 'runtime/pprof.(*profileBuilder).emitLocation', - 'runtime/pprof.(*profileBuilder).pbLine', - 'runtime/pprof.(*profileBuilder).flush', - 'compress/gzip.(*Writer).Write', - 'compress/flate.NewWriter', - 'compress/flate.(*compressor).init', - 'runtime.makeslice', - 'runtime.mallocgc', - 'runtime.gcAssistAlloc', - 'runtime.systemstack', - 'runtime.gcAssistAlloc.func1', - 'runtime.gcAssistAlloc1', - 'runtime.gcDrainN', - 'runtime.heapBits.bits', - 'runtime.scanobject', - 'runtime.greyobject', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.memclrNoHeapPointers', - 'runtime/pprof.allFrames', - 'runtime.newobject', - 'runtime.nextFreeFast', - 'runtime.(*Frames).Next', - 'runtime.funcline1', - 'runtime.pcvalue', - 'runtime/pprof.newProfileBuilder', - 'runtime/pprof.(*profileBuilder).readMapping', - 'runtime/pprof.parseProcSelfMaps', - 'runtime/pprof.elfBuildID', - 'os.OpenFile', - 'syscall.Open', - 'syscall.openat', - 'syscall.Syscall6', - 'runtime/pprof.parseProcSelfMaps.func1', - 'bytes.Cut', - 'runtime.slicebytetostring', - 'runtime.nextFreeFast', - 'runtime/pprof.(*profileBuilder).addMapping', - 'runtime.growslice', - 'os.Open', - 'os.OpenFile', - 'syscall.Open', - 'syscall.openat', - 'syscall.Syscall6', - 'os.openFileNolog', - 'os.newFile', - 'runtime.SetFinalizer', - 'runtime.systemstack', - 'runtime.SetFinalizer.func2', - 'runtime.addfinalizer', - 'runtime.addspecial', - 'os.ReadFile', - 'runtime.growslice', - 'runtime.mallocgc', - 'runtime.(*mcache).nextFree', - 'runtime.(*mcache).refill', - 'runtime.(*mcentral).cacheSpan', - 'runtime.(*mcentral).grow', - 'runtime.(*mheap).alloc', - 'runtime.systemstack', - 'runtime.(*mheap).alloc.func1', - 'runtime.(*mheap).allocSpan', - 'runtime.(*pageAlloc).allocToCache', - 'os.(*File).Stat', - 'internal/poll.(*FD).Fstat', - 'syscall.Fstat', - 'syscall.Syscall', - 'os.(*File).Read', - 'syscall.Read', - 'syscall.read', - 'syscall.Syscall', - 'runtime.newobject', - 'sort.Sort', - 'sort.quickSort', - 'sort.doPivot', - 'runtime/pprof.(*keysByCount).Less', - 'cmpbody', - 'sort.quickSort', - 'sort.insertionSort', - 'runtime/pprof.(*keysByCount).Less', - 'runtime.mapaccess1_faststr', - 'runtime/pprof.(*profileBuilder).pbSample', - 'runtime/pprof.(*protobuf).uint64s', - 'runtime.newobject', - 'github.com/prometheus/client_golang/prometheus.(*GaugeVec).WithLabelValues', - 'runtime.assertI2I', - 'runtime.getitab', - 'runtime.(*itabTableType).find', - 'github.com/weaveworks/common/middleware.Instrument.getRouteName', - 'github.com/weaveworks/common/middleware.getRouteName', - 'github.com/weaveworks/common/middleware.MakeLabelValue', - 'strings.Trim', - 'github.com/gorilla/mux.(*Router).Match', - 'github.com/gorilla/mux.(*Route).Match', - 'github.com/gorilla/mux.(*routeRegexp).Match', - 'regexp.(*Regexp).doExecute', - 'regexp.(*Regexp).backtrack', - 'regexp.(*Regexp).tryBacktrack', - 'github.com/weaveworks/common/logging.gokit.Debugf', - 'github.com/go-kit/log.(*context).Log', - 'github.com/go-kit/log.bindValues', - 'github.com/go-kit/log.Caller.func1', - 'runtime.Caller', - 'runtime.callers', - 'github.com/uber/jaeger-client-go.(*Tracer).Extract', - 'github.com/uber/jaeger-client-go.(*TextMapPropagator).Extract', - 'runtime.assertE2I2', - 'runtime.getitab', - 'runtime.(*itabTableType).find', - 'runtime.newobject', - 'runtime.nextFreeFast', - 'github.com/weaveworks/common/middleware.Tracer.Wrap.func1', - 'github.com/weaveworks/common/middleware.getRouteName', - 'github.com/gorilla/mux.(*Router).Match', - 'github.com/gorilla/mux.(*Route).Match', - 'github.com/gorilla/mux.(*routeRegexp).Match', - 'regexp.(*Regexp).doExecute', - 'net/http.(*response).finishRequest', - 'bufio.(*Writer).Flush', - 'net/http.(*chunkWriter).Write', - 'net/http.(*chunkWriter).writeHeader', - 'net/http.Header.writeSubset', - 'net/http.Header.sortedKeyValues', - 'sync.(*Pool).Get', - 'net/http.checkConnErrorWriter.Write', - 'net.(*conn).Write', - 'net.(*netFD).Write', - 'internal/poll.(*FD).Write', - 'syscall.write', - 'syscall.Syscall', - 'net/http.(*conn).readRequest', - 'runtime.mapiterinit', - 'runtime.gcBgMarkWorker', - 'runtime.systemstack', - 'runtime.gcBgMarkWorker.func2', - 'runtime.gcDrain', - 'runtime.scanobject', - 'runtime.(*gcBits).bytep', - 'runtime.(*mspan).objIndex', - 'runtime.pageIndexOf', - 'runtime.greyobject', - 'runtime.(*gcWork).put', - 'runtime.getempty', - 'runtime.putfull', - 'runtime.(*lfstack).push', - 'runtime.findObject', - 'runtime.spanOf', - 'runtime.(*mspan).markBitsForIndex', - 'runtime.spanOf', - 'runtime.markBits.isMarked', - 'runtime.arenaIndex', - 'runtime.heapBitsForAddr', - 'runtime.(*gcWork).tryGet', - 'runtime.trygetfull', - 'runtime.spanOfUnchecked', - 'runtime.heapBits.next', - 'runtime.gcFlushBgCredit', - 'runtime.heapBits.bits', - 'runtime.(*gcWork).balance', - 'runtime.handoff', - 'runtime.getempty', - 'runtime.(*gcWork).tryGetFast', - 'runtime.gcMarkDone', - 'runtime.gcMarkTermination', - 'runtime.mProf_Flush', - 'runtime.mProf_FlushLocked', - 'runtime.(*bucket).mp', - 'runtime.systemstack', - 'runtime.gcMarkTermination.func4', - 'runtime.forEachP', - 'runtime.gcMarkTermination.func4.1', - 'runtime.(*mcache).prepareForSweep', - 'runtime.(*mcache).releaseAll', - 'net/http.(*persistConn).readLoop', - 'runtime.selectgo', - 'runtime.send', - 'runtime.goready', - 'runtime.systemstack', - 'runtime.goready.func1', - 'runtime.ready', - 'runtime.runqput', - 'bufio.(*Reader).Peek', - 'bufio.(*Reader).fill', - 'net/http.(*persistConn).Read', - 'net.(*conn).Read', - 'net.(*netFD).Read', - 'syscall.Read', - 'syscall.read', - 'syscall.Syscall', - 'net/http.(*persistConn).readResponse', - 'github.com/opentracing-contrib/go-stdlib/nethttp.(*Tracer).gotFirstResponseByte', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.memclrNoHeapPointers', - 'runtime.bgsweep', - 'runtime.sweepone', - 'runtime.(*sweepLocker).tryAcquire', - 'runtime.(*sweepLocked).sweep', - 'runtime.(*gcBitsArena).tryAlloc', - 'runtime.spanClass.sizeclass', - 'runtime/internal/atomic.(*Uint32).CompareAndSwap', - 'runtime.mcall', - 'runtime.park_m', - 'runtime.schedule', - 'runtime.findrunnable', - 'runtime.netpoll', - 'runtime.epollwait', - 'runtime.stopm', - 'runtime.notesleep', - 'runtime.futexsleep', - 'runtime.futex', - 'runtime.(*randomOrder).start', - 'runtime.checkTimers', - 'runtime.runtimer', - 'runtime.dodeltimer0', - 'runtime.gcstopm', - 'runtime.lock2', - 'runtime.procyield', - 'runtime.(*lfstack).pop', - 'runtime.gosched_m', - 'runtime.lock', - 'runtime.lock2', - 'runtime.goschedImpl', - 'runtime.schedule', - 'runtime.execute', - 'runtime.casgstatus', - 'runtime.checkTimers', - 'runtime.findrunnable', - 'runtime.checkTimers', - 'runtime.casgstatus', - 'net/http.(*persistConn).writeLoop', - 'net/http.(*Request).write', - 'net/http.newTransferWriter', - 'runtime.convI2I', - 'runtime.getitab', - 'runtime.(*itabTableType).find', - 'runtime.chansend1', - 'runtime.chansend', - 'runtime.send', - 'runtime.goready', - 'runtime.systemstack', - 'runtime.goready.func1', - 'runtime.ready', - 'runtime.wakep', - 'runtime.startm', - 'runtime.notewakeup', - 'runtime.futexwakeup', - 'runtime.futex', - 'bufio.(*Writer).Flush', - 'net/http.persistConnWriter.Write', - 'net.(*conn).Write', - 'net.(*netFD).Write', - 'internal/poll.(*FD).Write', - 'syscall.write', - 'syscall.Syscall', - 'runtime.exitsyscall', - 'runtime.exitsyscallfast', - 'runtime.exitsyscallfast_reacquired', - 'test/pkg/distributor.(*Distributor).Push.func1', - 'test/pkg/distributor.(*Distributor).sendProfiles', - 'test/pkg/distributor.(*Distributor).sendProfilesErr', - 'test/pkg/gen/ingester/v1/ingesterv1connect.(*ingesterServiceClient).Push', - 'github.com/bufbuild/connect-go.(*Client[...]).CallUnary', - 'github.com/bufbuild/connect-go.NewClient[...].func2', - 'github.com/bufbuild/connect-go.NewClient[...].func1', - 'github.com/bufbuild/connect-go.receiveUnaryResponse[...]', - 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Receive', - 'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Receive', - 'github.com/bufbuild/connect-go.(*connectUnaryUnmarshaler).UnmarshalFunc', - 'github.com/bufbuild/connect-go.(*compressionPool).Decompress', - 'github.com/bufbuild/connect-go.(*compressionPool).getDecompressor', - 'compress/gzip.(*Reader).Reset', - 'compress/gzip.(*Reader).readHeader', - 'compress/flate.(*dictDecoder).init', - 'runtime.makeslice', - 'runtime.mallocgc', - 'runtime.(*mcache).nextFree', - 'runtime.(*mcache).refill', - 'runtime.(*mcentral).cacheSpan', - 'runtime.(*mcentral).grow', - 'runtime.heapBits.initSpan', - 'compress/flate.(*decompressor).Reset', - 'runtime.newstack', - 'runtime.copystack', - 'runtime.gentraceback', - 'compress/flate.NewReader', - 'compress/flate.fixedHuffmanDecoderInit', - 'runtime.newstack', - 'runtime.copystack', - 'runtime.gentraceback', - 'runtime.funcspdelta', - 'runtime.pcvalue', - 'runtime.step', - 'github.com/bufbuild/connect-go.(*errorTranslatingSender).Send', - 'github.com/bufbuild/connect-go.(*connectClientSender).Send', - 'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).Marshal', - 'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).write', - 'github.com/bufbuild/connect-go.(*duplexHTTPCall).Write', - 'io.(*pipe).write', - 'runtime.chanrecv1', - 'runtime.chanrecv', - 'runtime.recv', - 'runtime.gcWriteBarrierR8', - 'runtime.gcWriteBarrier', - 'runtime.wbBufFlush', - 'runtime.systemstack', - 'runtime.wbBufFlush.func1', - 'runtime.wbBufFlush1', - 'runtime.findObject', - 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Close', - 'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Close', - 'github.com/bufbuild/connect-go.(*duplexHTTPCall).CloseRead', - 'github.com/opentracing-contrib/go-stdlib/nethttp.closeTracker.Close', - 'runtime.newobject', - 'runtime.mallocgc', - 'runtime.heapBitsSetType', - 'runtime/pprof.profileWriter', - 'runtime/pprof.(*profileBuilder).addCPUData', - 'runtime/pprof.(*profMap).lookup', - 'runtime.makeslice', - 'runtime.mallocgc', - 'runtime.gcAssistAlloc', - 'runtime.systemstack', - 'runtime.gcAssistAlloc.func1', - 'runtime.gcAssistAlloc1', - 'runtime.gcDrainN', - 'runtime.scanobject', - 'runtime.pageIndexOf', - 'net/http.(*connReader).backgroundRead', - 'net.(*conn).Read', - 'net.(*netFD).Read', - 'internal/poll.(*FD).Read', - ], - }, - { - name: 'fileName', - values: [ - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go', - '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go', - ], - }, - { - name: 'line', - values: [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 12, 13, 14, 15, 16, 10, 11, 12, 13, 9, 10, 9, 9, 7, 7, 6, 5, 6, 7, - 8, 8, 9, 10, 11, 12, 13, 8, 9, 10, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 11, 12, - 13, 8, 8, 7, 8, 8, 7, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 9, 8, 8, 7, 8, 6, 7, 8, 8, 7, 6, 7, 8, - 8, 8, 9, 10, 11, 12, 4, 5, 6, 7, 8, 9, 9, 10, 11, 9, 10, 7, 4, 5, 6, 7, 8, 8, 7, 8, 9, 10, 11, 12, 13, 10, 10, - 11, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 8, 9, 5, 6, 7, 6, 7, 6, 5, 6, 6, 6, 6, 5, 6, 7, 6, 5, 6, 7, 8, 4, 5, - 6, 5, 6, 5, 4, 5, 5, 3, 4, 5, 6, 7, 7, 8, 7, 8, 9, 8, 9, 8, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 24, 25, 26, 24, 25, 22, 23, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 21, 22, 23, 24, 25, 26, 27, 26, 24, 25, 26, 25, 24, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 25, 26, - 27, 25, 26, 24, 23, 24, 24, 25, 23, 23, 22, 23, 24, 24, 23, 24, 25, 26, 24, 25, 23, 24, 24, 25, 23, 23, 24, 24, - 23, 23, 23, 23, 23, 24, 25, 22, 23, 24, 25, 22, 23, 24, 25, 26, 27, 28, 25, 26, 27, 28, 29, 24, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 21, 22, 23, 23, 24, 24, 24, 22, 23, 24, 25, 24, 23, 24, 24, 23, 22, 23, 24, 25, - 25, 26, 27, 24, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 24, 21, 22, 23, 24, 25, 26, 27, 28, 21, 22, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 24, 25, 26, 27, 28, 23, 24, 25, 26, 27, 28, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 31, 30, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 29, 30, 31, 26, 27, 28, 28, 28, 29, 27, 26, 27, 26, 25, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 30, - 31, 32, 33, 34, 33, 34, 35, 36, 37, 38, 39, 29, 30, 31, 32, 32, 27, 28, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 27, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 28, 27, 28, 28, 29, 27, 27, 28, 27, 27, 26, - 27, 28, 28, 29, 29, 29, 26, 27, 27, 28, 29, 30, 29, 30, 30, 29, 30, 31, 28, 29, 30, 28, 28, 28, 28, 29, 30, 29, - 30, 27, 28, 28, 26, 27, 26, 27, 27, 28, 29, 26, 27, 28, 29, 28, 27, 28, 29, 30, 30, 28, 29, 30, 31, 32, 32, 27, - 28, 26, 25, 25, 26, 27, 28, 29, 30, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 31, 30, 31, 32, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 29, 26, 27, 28, - 29, 30, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 31, 30, 29, 29, 29, 25, 26, 27, 28, 26, - 26, 27, 28, 27, 28, 28, 26, 27, 28, 28, 27, 28, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 25, 26, 27, 28, 25, - 26, 24, 25, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 33, 34, 34, 32, 33, 34, 34, 32, 28, 29, 30, 31, 27, - 28, 29, 26, 27, 28, 29, 30, 31, 32, 33, 34, 26, 27, 28, 29, 24, 25, 26, 27, 28, 29, 30, 27, 28, 26, 27, 25, 26, - 27, 28, 29, 26, 25, 26, 27, 26, 27, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 38, 39, 30, 31, 32, 26, 27, - 28, 27, 28, 29, 25, 26, 27, 28, 29, 30, 31, 32, 28, 29, 28, 29, 28, 29, 27, 28, 29, 30, 31, 29, 30, 31, 32, 33, - 34, 35, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 28, 29, 30, 31, 28, 29, 30, 31, 26, 25, 26, 27, 28, 29, - 27, 28, 29, 30, 25, 26, 15, 14, 15, 16, 17, 13, 14, 15, 16, 15, 16, 17, 18, 19, 20, 12, 13, 14, 15, 16, 17, 10, - 11, 12, 13, 14, 12, 13, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 4, 5, 6, 7, 8, 9, 2, 3, 1, 2, 3, 4, 5, 6, - 6, 6, 6, 7, 8, 8, 9, 6, 7, 6, 6, 6, 6, 5, 5, 6, 5, 5, 5, 5, 5, 6, 7, 4, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9, 1, 2, - 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6, 1, 2, 3, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 5, 6, 7, 8, 5, - 5, 6, 7, 4, 5, 6, 4, 2, 3, 4, 3, 4, 5, 6, 5, 5, 6, 4, 1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 16, 17, 18, 19, 16, 17, 18, 19, 20, 21, 22, 23, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, - ], - }, - ], -}; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphContainer.test.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphContainer.test.tsx deleted file mode 100644 index 6cb815202ff..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphContainer.test.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import React from 'react'; - -import { CoreApp, createDataFrame } from '@grafana/data'; - -import { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from '../constants'; - -import { data } from './FlameGraph/testData/dataNestedSet'; -import FlameGraphContainer from './FlameGraphContainer'; - -jest.mock('react-use', () => ({ - useMeasure: () => { - const ref = React.useRef(); - return [ref, { width: 1600 }]; - }, -})); - -describe('FlameGraphContainer', () => { - // Needed for AutoSizer to work in test - Object.defineProperty(HTMLElement.prototype, 'offsetHeight', { value: 500 }); - Object.defineProperty(HTMLElement.prototype, 'offsetWidth', { value: 500 }); - Object.defineProperty(HTMLElement.prototype, 'clientWidth', { value: 500 }); - - const FlameGraphContainerWithProps = () => { - const flameGraphData = createDataFrame(data); - flameGraphData.meta = { - custom: { - ProfileTypeID: 'cpu:foo:bar', - }, - }; - - return ; - }; - - it('should render without error', async () => { - expect(() => render()).not.toThrow(); - }); - - it('should update search when row selected in top table', async () => { - render(); - await userEvent.click((await screen.findAllByTitle('Highlight symbol'))[0]); - expect(screen.getByDisplayValue('net/http.HandlerFunc.ServeHTTP')).toBeInTheDocument(); - await userEvent.click((await screen.findAllByTitle('Highlight symbol'))[1]); - expect(screen.getByDisplayValue('total')).toBeInTheDocument(); - await userEvent.click((await screen.findAllByTitle('Highlight symbol'))[1]); - expect(screen.queryByDisplayValue('total')).not.toBeInTheDocument(); - }); - - it('should render options', async () => { - render(); - expect(screen.getByText(/Top Table/)).toBeDefined(); - expect(screen.getByText(/Flame Graph/)).toBeDefined(); - expect(screen.getByText(/Both/)).toBeDefined(); - }); - - it('should update selected view', async () => { - render(); - - expect(screen.getByTestId('flameGraph')).toBeDefined(); - expect(screen.getByTestId('topTable')).toBeDefined(); - - await userEvent.click(screen.getByText(/Top Table/)); - expect(screen.queryByTestId('flameGraph')).toBeNull(); - expect(screen.getByTestId('topTable')).toBeDefined(); - - await userEvent.click(screen.getByText(/Flame Graph/)); - expect(screen.getByTestId('flameGraph')).toBeDefined(); - expect(screen.queryByTestId('topTable')).toBeNull(); - - await userEvent.click(screen.getByText(/Both/)); - expect(screen.getByTestId('flameGraph')).toBeDefined(); - expect(screen.getByTestId('topTable')).toBeDefined(); - }); - - it('should render both option if screen width >= threshold', async () => { - global.innerWidth = MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH; - global.dispatchEvent(new Event('resize')); // Trigger the window resize event - render(); - - expect(screen.getByText(/Both/)).toBeDefined(); - }); - - it('should not render both option if screen width < threshold', async () => { - global.innerWidth = MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH - 1; - global.dispatchEvent(new Event('resize')); - render(); - - expect(screen.queryByTestId(/Both/)).toBeNull(); - }); -}); diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphContainer.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphContainer.tsx deleted file mode 100644 index d87b8157b8c..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphContainer.tsx +++ /dev/null @@ -1,160 +0,0 @@ -import { css } from '@emotion/css'; -import React, { useEffect, useMemo, useState } from 'react'; -import { useMeasure } from 'react-use'; - -import { DataFrame, CoreApp, GrafanaTheme2 } from '@grafana/data'; -import { config, reportInteraction } from '@grafana/runtime'; -import { useStyles2, useTheme2 } from '@grafana/ui'; - -import { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from '../constants'; - -import FlameGraph from './FlameGraph/FlameGraph'; -import { FlameGraphDataContainer } from './FlameGraph/dataTransform'; -import FlameGraphHeader from './FlameGraphHeader'; -import FlameGraphTopTableContainer from './TopTable/FlameGraphTopTableContainer'; -import { ClickedItemData, ColorScheme, SelectedView, TextAlign } from './types'; - -type Props = { - data?: DataFrame; - app: CoreApp; -}; - -const FlameGraphContainer = (props: Props) => { - const [focusedItemData, setFocusedItemData] = useState(); - - const [rangeMin, setRangeMin] = useState(0); - const [rangeMax, setRangeMax] = useState(1); - const [search, setSearch] = useState(''); - const [selectedView, setSelectedView] = useState(SelectedView.Both); - const [sizeRef, { width: containerWidth }] = useMeasure(); - const [textAlign, setTextAlign] = useState('left'); - // This is a label of the item because in sandwich view we group all items by label and present a merged graph - const [sandwichItem, setSandwichItem] = useState(); - const [colorScheme, setColorScheme] = useState(ColorScheme.ValueBased); - - const theme = useTheme2(); - - const dataContainer = useMemo((): FlameGraphDataContainer | undefined => { - if (!props.data) { - return; - } - return new FlameGraphDataContainer(props.data, theme); - }, [props.data, theme]); - - const styles = useStyles2(getStyles); - - // If user resizes window with both as the selected view - useEffect(() => { - if ( - containerWidth > 0 && - containerWidth < MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH && - selectedView === SelectedView.Both - ) { - setSelectedView(SelectedView.FlameGraph); - } - }, [selectedView, setSelectedView, containerWidth]); - - function resetFocus() { - setFocusedItemData(undefined); - setRangeMin(0); - setRangeMax(1); - } - - function resetSandwich() { - setSandwichItem(undefined); - } - - useEffect(() => { - resetFocus(); - resetSandwich(); - }, [props.data]); - - return ( - <> - {dataContainer && ( -
- { - resetFocus(); - resetSandwich(); - }} - textAlign={textAlign} - onTextAlignChange={setTextAlign} - showResetButton={Boolean(focusedItemData || sandwichItem)} - colorScheme={colorScheme} - onColorSchemeChange={setColorScheme} - /> - -
- {selectedView !== SelectedView.FlameGraph && ( - { - if (search === symbol) { - setSearch(''); - } else { - reportInteraction('grafana_flamegraph_table_item_selected', { - app: props.app, - grafana_version: config.buildInfo.version, - }); - setSearch(symbol); - } - }} - height={selectedView === SelectedView.TopTable ? 600 : undefined} - /> - )} - - {selectedView !== SelectedView.TopTable && ( - setFocusedItemData(data)} - focusedItemData={focusedItemData} - textAlign={textAlign} - sandwichItem={sandwichItem} - onSandwich={(label: string) => { - resetFocus(); - setSandwichItem(label); - }} - onFocusPillClick={resetFocus} - onSandwichPillClick={resetSandwich} - colorScheme={colorScheme} - /> - )} -
-
- )} - - ); -}; - -function getStyles(theme: GrafanaTheme2) { - return { - container: css({ - height: '100%', - display: 'flex', - flex: '1 1 0', - flexDirection: 'column', - minHeight: 0, - gap: theme.spacing(1), - }), - body: css({ - display: 'flex', - flexGrow: 1, - minHeight: 0, - }), - }; -} - -export default FlameGraphContainer; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphHeader.test.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphHeader.test.tsx deleted file mode 100644 index 520ff81b54b..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphHeader.test.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import '@testing-library/jest-dom'; -import { render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import React from 'react'; - -import { CoreApp } from '@grafana/data'; - -import FlameGraphHeader from './FlameGraphHeader'; -import { ColorScheme, SelectedView } from './types'; - -describe('FlameGraphHeader', () => { - function setup(props: Partial> = {}) { - const setSearch = jest.fn(); - const setSelectedView = jest.fn(); - const onReset = jest.fn(); - const onSchemeChange = jest.fn(); - - const renderResult = render( - - ); - - return { - renderResult, - handlers: { - setSearch, - setSelectedView, - onReset, - onSchemeChange, - }, - }; - } - - it('show reset button when needed', async () => { - setup({ showResetButton: false }); - expect(screen.queryByLabelText(/Reset focus/)).toBeNull(); - - setup(); - expect(screen.getByLabelText(/Reset focus/)).toBeInTheDocument(); - }); - - it('calls on reset when reset button is clicked', async () => { - const { handlers } = setup(); - const resetButton = screen.getByLabelText(/Reset focus/); - expect(resetButton).toBeInTheDocument(); - await userEvent.click(resetButton); - expect(handlers.onReset).toHaveBeenCalledTimes(1); - }); - - it('calls on color scheme change when clicked', async () => { - const { handlers } = setup(); - const changeButton = screen.getByLabelText(/Change color scheme/); - expect(changeButton).toBeInTheDocument(); - await userEvent.click(changeButton); - - const byPackageButton = screen.getByText(/By package name/); - expect(byPackageButton).toBeInTheDocument(); - await userEvent.click(byPackageButton); - - expect(handlers.onSchemeChange).toHaveBeenCalledTimes(1); - }); -}); diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphHeader.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphHeader.tsx deleted file mode 100644 index 4f3523e4764..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphHeader.tsx +++ /dev/null @@ -1,270 +0,0 @@ -import { css, cx } from '@emotion/css'; -import React, { useEffect, useState } from 'react'; -import useDebounce from 'react-use/lib/useDebounce'; -import usePrevious from 'react-use/lib/usePrevious'; - -import { CoreApp, GrafanaTheme2, SelectableValue } from '@grafana/data'; -import { reportInteraction } from '@grafana/runtime'; -import { Button, Dropdown, Input, Menu, RadioButtonGroup, useStyles2 } from '@grafana/ui'; - -import { config } from '../../../../../core/config'; -import { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from '../constants'; - -import { byPackageGradient, byValueGradient } from './FlameGraph/colors'; -import { ColorScheme, SelectedView, TextAlign } from './types'; - -type Props = { - app: CoreApp; - search: string; - setSearch: (search: string) => void; - selectedView: SelectedView; - setSelectedView: (view: SelectedView) => void; - containerWidth: number; - onReset: () => void; - textAlign: TextAlign; - onTextAlignChange: (align: TextAlign) => void; - showResetButton: boolean; - colorScheme: ColorScheme; - onColorSchemeChange: (colorScheme: ColorScheme) => void; -}; - -const FlameGraphHeader = ({ - app, - search, - setSearch, - selectedView, - setSelectedView, - containerWidth, - onReset, - textAlign, - onTextAlignChange, - showResetButton, - colorScheme, - onColorSchemeChange, -}: Props) => { - const styles = useStyles2((theme) => getStyles(theme, app)); - function interaction(name: string, context: Record) { - reportInteraction(`grafana_flamegraph_${name}`, { - app, - grafana_version: config.buildInfo.version, - ...context, - }); - } - - const [localSearch, setLocalSearch] = useSearchInput(search, setSearch); - - const suffix = - localSearch !== '' ? ( - - ) : null; - - return ( -
-
- { - setLocalSearch(v.currentTarget.value); - }} - placeholder={'Search..'} - width={44} - suffix={suffix} - /> -
- -
- {showResetButton && ( -
-
- ); -}; - -type ColorSchemeButtonProps = { - app: CoreApp; - value: ColorScheme; - onChange: (colorScheme: ColorScheme) => void; -}; -function ColorSchemeButton(props: ColorSchemeButtonProps) { - const styles = useStyles2((theme) => getStyles(theme, props.app)); - const menu = ( - - props.onChange(ColorScheme.ValueBased)} /> - props.onChange(ColorScheme.PackageBased)} /> - - ); - return ( - - - - ); -} - -const alignOptions: Array> = [ - { value: 'left', description: 'Align text left', icon: 'align-left' }, - { value: 'right', description: 'Align text right', icon: 'align-right' }, -]; - -function getViewOptions(width: number): Array> { - let viewOptions: Array<{ value: SelectedView; label: string; description: string }> = [ - { value: SelectedView.TopTable, label: 'Top Table', description: 'Only show top table' }, - { value: SelectedView.FlameGraph, label: 'Flame Graph', description: 'Only show flame graph' }, - ]; - - if (width >= MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH) { - viewOptions.push({ - value: SelectedView.Both, - label: 'Both', - description: 'Show both the top table and flame graph', - }); - } - - return viewOptions; -} - -function useSearchInput( - search: string, - setSearch: (search: string) => void -): [string | undefined, (search: string) => void] { - const [localSearchState, setLocalSearchState] = useState(search); - const prevSearch = usePrevious(search); - - // Debouncing cause changing parent search triggers rerender on both the flamegraph and table - useDebounce( - () => { - setSearch(localSearchState); - }, - 250, - [localSearchState] - ); - - // Make sure we still handle updates from parent (from clicking on a table item for example). We check if the parent - // search value changed to something that isn't our local value. - useEffect(() => { - if (prevSearch !== search && search !== localSearchState) { - setLocalSearchState(search); - } - }, [search, prevSearch, localSearchState]); - - return [localSearchState, setLocalSearchState]; -} - -const getStyles = (theme: GrafanaTheme2, app: CoreApp) => ({ - header: css` - label: header; - display: flex; - justify-content: space-between; - width: 100%; - background: ${theme.colors.background.primary}; - top: 0; - z-index: ${theme.zIndex.navbarFixed}; - ${app === CoreApp.Explore - ? css` - position: sticky; - padding-bottom: ${theme.spacing(1)}; - padding-top: ${theme.spacing(1)}; - ` - : ''}; - `, - inputContainer: css` - label: inputContainer; - margin-right: 20px; - `, - rightContainer: css` - label: rightContainer; - display: flex; - align-items: flex-start; - `, - buttonSpacing: css` - label: buttonSpacing; - margin-right: ${theme.spacing(1)}; - `, - - resetButton: css` - label: resetButton; - display: flex; - margin-right: ${theme.spacing(2)}; - `, - resetButtonIconWrapper: css` - label: resetButtonIcon; - padding: 0 5px; - color: ${theme.colors.text.disabled}; - `, - colorDot: css` - label: colorDot; - display: inline-block; - width: 10px; - height: 10px; - border-radius: 50%; - `, - colorDotByValue: css` - label: colorDotByValue; - background: ${byValueGradient}; - `, - colorDotByPackage: css` - label: colorDotByPackage; - background: ${byPackageGradient}; - `, -}); - -export default FlameGraphHeader; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphTopWrapper.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphTopWrapper.tsx deleted file mode 100644 index c52c882e704..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/FlameGraphTopWrapper.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import { FlamegraphRenderer } from '@pyroscope/flamegraph'; -import React from 'react'; -import '@pyroscope/flamegraph/dist/index.css'; - -import { CoreApp, DataFrame, DataFrameView } from '@grafana/data'; -import { config } from '@grafana/runtime'; - -import FlameGraphContainer from './FlameGraphContainer'; - -type Props = { - data?: DataFrame; - app: CoreApp; - // Height for flame graph when not used in explore. - // This needs to be different to explore flame graph height as we - // use panels with user adjustable heights in dashboards etc. - flameGraphHeight?: number; -}; - -export const FlameGraphTopWrapper = (props: Props) => { - if (config.featureToggles.pyroscopeFlameGraph) { - const profile = props.data ? dataFrameToFlameBearer(props.data) : undefined; - return ; - } - - return ; -}; - -type Row = { - level: number; - label: string; - value: number; - self: number; -}; - -/** - * Converts a nested set format from a DataFrame to a Flamebearer format needed by the pyroscope flamegraph. - * @param data - */ -function dataFrameToFlameBearer(data: DataFrame) { - // Unfortunately we cannot use @pyroscope/models for now as they publish ts files which then get type checked and - // they do not pass our with our tsconfig - const profile: any = { - version: 1, - flamebearer: { - names: [], - levels: [], - numTicks: 0, - maxSelf: 0, - }, - metadata: { - format: 'single' as const, - sampleRate: 100, - spyName: 'gospy' as const, - units: 'samples' as const, - }, - }; - const view = new DataFrameView(data); - const labelField = data.fields.find((f) => f.name === 'label'); - - if (labelField?.config?.type?.enum?.text) { - profile.flamebearer.names = labelField.config.type.enum.text; - } - - const labelMap: Record = {}; - - // Handle both cases where label is a string or a number pointing to enum config text array. - const getLabel = (label: string | number) => { - if (typeof label === 'number') { - return label; - } else { - if (labelMap[label] === undefined) { - labelMap[label] = profile.flamebearer.names.length; - profile.flamebearer.names.push(label); - } - - return labelMap[label]; - } - }; - - // Absolute offset where we are currently at. - let offset = 0; - - for (let i = 0; i < data.length; i++) { - // view.get() changes the underlying object, so we have to call this first get the value and then call get() for - // current row. - const prevLevel = i > 0 ? view.get(i - 1).level : undefined; - const row = view.get(i); - const currentLevel = row.level; - const level = profile.flamebearer.levels[currentLevel]; - - // First row is the root and always the total number of ticks. - if (i === 0) { - profile.flamebearer.numTicks = row.value; - } - profile.flamebearer.maxSelf = Math.max(profile.flamebearer.maxSelf, row.self); - - if (prevLevel && prevLevel >= currentLevel) { - // we are going back to the previous level and adding sibling we have to figure out new offset - offset = levelWidth(level); - } - - if (!level) { - // Starting a new level. Offset is what ever current absolute offset is as there are no siblings yet. - profile.flamebearer.levels[row.level] = [offset, row.value, row.self, getLabel(row.label)]; - } else { - // We actually need offset relative to sibling while offset variable contains absolute offset. - const width = levelWidth(level); - level.push(offset - width, row.value, row.self, getLabel(row.label)); - } - } - return profile; -} - -/** - * Get a width of a level. As offsets are relative to siblings we need to sum all the offsets and values in a level. - * @param level - */ -function levelWidth(level: number[]) { - let length = 0; - for (let i = 0; i < level.length; i += 4) { - const start = level[i]; - const value = level[i + 1]; - length += start + value; - } - return length; -} diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/TopTable/FlameGraphTopTableContainer.test.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/TopTable/FlameGraphTopTableContainer.test.tsx deleted file mode 100644 index 6364f74022a..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/TopTable/FlameGraphTopTableContainer.test.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { render, screen } from '@testing-library/react'; -import React from 'react'; - -import { CoreApp, createDataFrame } from '@grafana/data'; - -import { FlameGraphDataContainer } from '../FlameGraph/dataTransform'; -import { data } from '../FlameGraph/testData/dataNestedSet'; - -import FlameGraphTopTableContainer from './FlameGraphTopTableContainer'; - -describe('FlameGraphTopTableContainer', () => { - const FlameGraphTopTableContainerWithProps = () => { - const flameGraphData = createDataFrame(data); - const container = new FlameGraphDataContainer(flameGraphData); - - return ; - }; - - it('should render without error', async () => { - expect(() => render()).not.toThrow(); - }); - - it('should render correctly', async () => { - // Needed for AutoSizer to work in test - Object.defineProperty(HTMLElement.prototype, 'offsetHeight', { configurable: true, value: 500 }); - Object.defineProperty(HTMLElement.prototype, 'offsetWidth', { configurable: true, value: 500 }); - - render(); - const rows = screen.getAllByRole('row'); - expect(rows).toHaveLength(16); - - const columnHeaders = screen.getAllByRole('columnheader'); - expect(columnHeaders).toHaveLength(3); - expect(columnHeaders[0].textContent).toEqual('Symbol'); - expect(columnHeaders[1].textContent).toEqual('Self'); - expect(columnHeaders[2].textContent).toEqual('Total'); - - const cells = screen.getAllByRole('cell'); - expect(cells).toHaveLength(45); // 16 rows - expect(cells[0].textContent).toEqual('net/http.HandlerFunc.ServeHTTP'); - expect(cells[1].textContent).toEqual('31.7 K'); - expect(cells[2].textContent).toEqual('31.7 Bil'); - expect(cells[24].textContent).toEqual('test/pkg/create.(*create).initServer.func2.1'); - expect(cells[25].textContent).toEqual('5.58 K'); - expect(cells[26].textContent).toEqual('5.58 Bil'); - }); -}); diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/TopTable/FlameGraphTopTableContainer.tsx b/public/app/plugins/panel/flamegraph/flamegraphV2/components/TopTable/FlameGraphTopTableContainer.tsx deleted file mode 100644 index 6b136f7f66e..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/TopTable/FlameGraphTopTableContainer.tsx +++ /dev/null @@ -1,140 +0,0 @@ -import { css } from '@emotion/css'; -import React, { useState } from 'react'; -import AutoSizer from 'react-virtualized-auto-sizer'; - -import { applyFieldOverrides, CoreApp, DataFrame, DataLinkClickEvent, Field, FieldType } from '@grafana/data'; -import { config, reportInteraction } from '@grafana/runtime'; -import { Table, TableSortByFieldState, useStyles2 } from '@grafana/ui'; - -import { TOP_TABLE_COLUMN_WIDTH } from '../../constants'; -import { FlameGraphDataContainer } from '../FlameGraph/dataTransform'; -import { TableData } from '../types'; - -type Props = { - data: FlameGraphDataContainer; - app: CoreApp; - onSymbolClick: (symbol: string) => void; - height?: number; -}; - -const FlameGraphTopTableContainer = ({ data, app, onSymbolClick, height }: Props) => { - const styles = useStyles2(getStyles); - - const [sort, setSort] = useState([{ displayName: 'Self', desc: true }]); - - return ( -
- - {({ width, height }) => { - if (width < 3 || height < 3) { - return null; - } - - const frame = buildTableDataFrame(data, width, onSymbolClick); - return ( - { - if (s && s.length) { - reportInteraction('grafana_flamegraph_table_sort_selected', { - app, - grafana_version: config.buildInfo.version, - sort: s[0].displayName + '_' + (s[0].desc ? 'desc' : 'asc'), - }); - } - setSort(s); - }} - data={frame} - width={width} - height={height} - /> - ); - }} - - - ); -}; - -function buildTableDataFrame( - data: FlameGraphDataContainer, - width: number, - onSymbolClick: (str: string) => void -): DataFrame { - // Group the data by label - // TODO: should be by filename + funcName + linenumber? - let table: { [key: string]: TableData } = {}; - for (let i = 0; i < data.data.length; i++) { - const value = data.getValue(i); - const self = data.getSelf(i); - const label = data.getLabel(i); - table[label] = table[label] || {}; - table[label].self = table[label].self ? table[label].self + self : self; - table[label].total = table[label].total ? table[label].total + value : value; - } - - const symbolField: Field = { - type: FieldType.string, - name: 'Symbol', - values: [], - config: { - custom: { width: width - TOP_TABLE_COLUMN_WIDTH * 2 }, - links: [ - { - title: 'Highlight symbol', - url: '', - onClick: (e: DataLinkClickEvent) => { - const field: Field = e.origin.field; - const value = field.values[e.origin.rowIndex]; - onSymbolClick(value); - }, - }, - ], - }, - }; - - const selfField: Field = { - type: FieldType.number, - name: 'Self', - values: [], - config: { unit: data.selfField.config.unit, custom: { width: TOP_TABLE_COLUMN_WIDTH } }, - }; - - const totalField: Field = { - type: FieldType.number, - name: 'Total', - values: [], - config: { unit: data.valueField.config.unit, custom: { width: TOP_TABLE_COLUMN_WIDTH } }, - }; - - for (let key in table) { - symbolField.values.push(key); - selfField.values.push(table[key].self); - totalField.values.push(table[key].total); - } - - const frame = { fields: [symbolField, selfField, totalField], length: symbolField.values.length }; - - const dataFrames = applyFieldOverrides({ - data: [frame], - fieldConfig: { - defaults: {}, - overrides: [], - }, - replaceVariables: (value: string) => value, - theme: config.theme2, - }); - - return dataFrames[0]; -} - -const getStyles = () => { - return { - topTableContainer: css` - flex-grow: 1; - flex-basis: 50%; - overflow: hidden; - `, - }; -}; - -export default FlameGraphTopTableContainer; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/components/types.ts b/public/app/plugins/panel/flamegraph/flamegraphV2/components/types.ts deleted file mode 100644 index ea811266e89..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/components/types.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { LevelItem } from './FlameGraph/dataTransform'; - -export type ClickedItemData = { - posX: number; - posY: number; - label: string; - item: LevelItem; - level: number; -}; - -export enum SampleUnit { - Bytes = 'bytes', - Short = 'short', - Nanoseconds = 'ns', -} - -export enum ColumnTypes { - Symbol = 'Symbol', - Self = 'Self', - Total = 'Total', -} - -export enum SelectedView { - TopTable = 'topTable', - FlameGraph = 'flameGraph', - Both = 'both', -} - -export interface TableData { - self: number; - total: number; -} - -export interface TopTableData { - symbol: string; - self: TopTableValue; - total: TopTableValue; -} - -export type TopTableValue = { - value: number; - unitValue: string; -}; - -export enum ColorScheme { - ValueBased = 'valueBased', - PackageBased = 'packageBased', -} - -export type TextAlign = 'left' | 'right'; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/constants.ts b/public/app/plugins/panel/flamegraph/flamegraphV2/constants.ts deleted file mode 100644 index db3da0a18c0..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/constants.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const PIXELS_PER_LEVEL = 22 * window.devicePixelRatio; -export const COLLAPSE_THRESHOLD = 10 * window.devicePixelRatio; -export const HIDE_THRESHOLD = 0.5 * window.devicePixelRatio; -export const LABEL_THRESHOLD = 20 * window.devicePixelRatio; -export const BAR_BORDER_WIDTH = 0.5 * window.devicePixelRatio; -export const BAR_TEXT_PADDING_LEFT = 4 * window.devicePixelRatio; -export const MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH = 800; -export const TOP_TABLE_COLUMN_WIDTH = 120; diff --git a/public/app/plugins/panel/flamegraph/flamegraphV2/img/icn-flamegraph.svg b/public/app/plugins/panel/flamegraph/flamegraphV2/img/icn-flamegraph.svg deleted file mode 100644 index 7958470e174..00000000000 --- a/public/app/plugins/panel/flamegraph/flamegraphV2/img/icn-flamegraph.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/app/plugins/panel/flamegraph/suggestions.ts b/public/app/plugins/panel/flamegraph/suggestions.ts index f93733a5bbb..b8fbf4af50d 100644 --- a/public/app/plugins/panel/flamegraph/suggestions.ts +++ b/public/app/plugins/panel/flamegraph/suggestions.ts @@ -1,9 +1,7 @@ import { VisualizationSuggestionsBuilder } from '@grafana/data'; -import { config } from '@grafana/runtime'; import { SuggestionName } from 'app/types/suggestions'; import { FlameGraphDataContainer as FlameGraphDataContainer } from './components/FlameGraph/dataTransform'; -import { FlameGraphDataContainer as FlameGraphDataContainerV2 } from './flamegraphV2/components/FlameGraph/dataTransform'; export class FlameGraphSuggestionsSupplier { getListWithDefaults(builder: VisualizationSuggestionsBuilder) { @@ -23,9 +21,7 @@ export class FlameGraphSuggestionsSupplier { // Without this check, a suggestion containing an error is shown to the user. const dataFrame = builder.data.series[0]; try { - config.featureToggles.flameGraphV2 - ? new FlameGraphDataContainerV2(dataFrame) - : new FlameGraphDataContainer(dataFrame); + new FlameGraphDataContainer(dataFrame); } catch (err) { return; }