@grafana/flamegraph 11.6.0-228014 → 11.6.0-228056
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index.js → cjs/index.cjs} +1 -1
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/FlameGraph/{FlameGraph.js → FlameGraph.mjs} +4 -4
- package/dist/esm/FlameGraph/FlameGraph.mjs.map +1 -0
- package/dist/esm/FlameGraph/{FlameGraphCanvas.js → FlameGraphCanvas.mjs} +5 -5
- package/dist/esm/FlameGraph/FlameGraphCanvas.mjs.map +1 -0
- package/dist/esm/FlameGraph/{FlameGraphContextMenu.js → FlameGraphContextMenu.mjs} +1 -1
- package/dist/esm/FlameGraph/FlameGraphContextMenu.mjs.map +1 -0
- package/dist/esm/FlameGraph/{FlameGraphMetadata.js → FlameGraphMetadata.mjs} +1 -1
- package/dist/esm/FlameGraph/FlameGraphMetadata.mjs.map +1 -0
- package/dist/esm/FlameGraph/{FlameGraphTooltip.js → FlameGraphTooltip.mjs} +1 -1
- package/dist/esm/FlameGraph/FlameGraphTooltip.mjs.map +1 -0
- package/dist/esm/FlameGraph/{colors.js → colors.mjs} +3 -3
- package/dist/esm/FlameGraph/colors.mjs.map +1 -0
- package/dist/esm/FlameGraph/{dataTransform.js → dataTransform.mjs} +3 -3
- package/dist/esm/FlameGraph/dataTransform.mjs.map +1 -0
- package/dist/esm/FlameGraph/{murmur3.js → murmur3.mjs} +1 -1
- package/dist/esm/FlameGraph/murmur3.mjs.map +1 -0
- package/dist/esm/FlameGraph/{rendering.js → rendering.mjs} +4 -4
- package/dist/esm/FlameGraph/rendering.mjs.map +1 -0
- package/dist/esm/FlameGraph/testData/{dataNestedSet.js → dataNestedSet.mjs} +1 -1
- package/dist/esm/FlameGraph/testData/dataNestedSet.mjs.map +1 -0
- package/dist/esm/FlameGraph/{treeTransforms.js → treeTransforms.mjs} +1 -1
- package/dist/esm/FlameGraph/treeTransforms.mjs.map +1 -0
- package/dist/esm/{FlameGraphContainer.js → FlameGraphContainer.mjs} +7 -7
- package/dist/esm/FlameGraphContainer.mjs.map +1 -0
- package/dist/esm/{FlameGraphHeader.js → FlameGraphHeader.mjs} +4 -4
- package/dist/esm/FlameGraphHeader.mjs.map +1 -0
- package/dist/esm/TopTable/{FlameGraphTopTableContainer.js → FlameGraphTopTableContainer.mjs} +4 -4
- package/dist/esm/TopTable/FlameGraphTopTableContainer.mjs.map +1 -0
- package/dist/esm/{constants.js → constants.mjs} +1 -1
- package/dist/esm/constants.mjs.map +1 -0
- package/dist/esm/index.d.mts +111 -0
- package/dist/esm/index.mjs +4 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/{types.js → types.mjs} +1 -1
- package/dist/esm/types.mjs.map +1 -0
- package/package.json +24 -11
- package/dist/esm/FlameGraph/FlameGraph.js.map +0 -1
- package/dist/esm/FlameGraph/FlameGraphCanvas.js.map +0 -1
- package/dist/esm/FlameGraph/FlameGraphContextMenu.js.map +0 -1
- package/dist/esm/FlameGraph/FlameGraphMetadata.js.map +0 -1
- package/dist/esm/FlameGraph/FlameGraphTooltip.js.map +0 -1
- package/dist/esm/FlameGraph/colors.js.map +0 -1
- package/dist/esm/FlameGraph/dataTransform.js.map +0 -1
- package/dist/esm/FlameGraph/murmur3.js.map +0 -1
- package/dist/esm/FlameGraph/rendering.js.map +0 -1
- package/dist/esm/FlameGraph/testData/dataNestedSet.js.map +0 -1
- package/dist/esm/FlameGraph/treeTransforms.js.map +0 -1
- package/dist/esm/FlameGraphContainer.js.map +0 -1
- package/dist/esm/FlameGraphHeader.js.map +0 -1
- package/dist/esm/TopTable/FlameGraphTopTableContainer.js.map +0 -1
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/types.js.map +0 -1
- package/dist/index.js.map +0 -1
- /package/dist/{index.d.ts → cjs/index.d.cts} +0 -0
package/dist/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/constants.ts","../src/FlameGraph/FlameGraphContextMenu.tsx","../src/FlameGraph/FlameGraphTooltip.tsx","../src/types.ts","../src/FlameGraph/murmur3.ts","../src/FlameGraph/colors.ts","../src/FlameGraph/rendering.ts","../src/FlameGraph/FlameGraphCanvas.tsx","../src/FlameGraph/FlameGraphMetadata.tsx","../src/FlameGraph/FlameGraph.tsx","../src/FlameGraph/treeTransforms.ts","../src/FlameGraph/dataTransform.ts","../src/FlameGraphHeader.tsx","../src/TopTable/FlameGraphTopTableContainer.tsx","../src/FlameGraphContainer.tsx","../src/FlameGraph/testData/dataNestedSet.ts"],"sourcesContent":["export const PIXELS_PER_LEVEL = 22 * window.devicePixelRatio;\nexport const MUTE_THRESHOLD = 10 * window.devicePixelRatio;\nexport const HIDE_THRESHOLD = 0.5 * window.devicePixelRatio;\nexport const LABEL_THRESHOLD = 20 * window.devicePixelRatio;\nexport const BAR_BORDER_WIDTH = 0.5 * window.devicePixelRatio;\nexport const BAR_TEXT_PADDING_LEFT = 4 * window.devicePixelRatio;\nexport const GROUP_STRIP_WIDTH = 3 * window.devicePixelRatio;\nexport const GROUP_STRIP_PADDING = 3 * window.devicePixelRatio;\nexport const GROUP_STRIP_MARGIN_LEFT = 4 * window.devicePixelRatio;\nexport const GROUP_TEXT_OFFSET = 2 * window.devicePixelRatio;\nexport const MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH = 800;\nexport const TOP_TABLE_COLUMN_WIDTH = 120;\n","import { DataFrame } from '@grafana/data';\nimport { MenuItem, MenuGroup, ContextMenu, IconName } from '@grafana/ui';\n\nimport { ClickedItemData, SelectedView } from '../types';\n\nimport { CollapseConfig, FlameGraphDataContainer } from './dataTransform';\n\nexport type GetExtraContextMenuButtonsFunction = (\n clickedItemData: ClickedItemData,\n data: DataFrame,\n state: { selectedView: SelectedView; isDiff: boolean; search: string; collapseConfig?: CollapseConfig }\n) => ExtraContextMenuButton[];\n\nexport type ExtraContextMenuButton = {\n label: string;\n icon: IconName;\n onClick: () => void;\n};\n\ntype Props = {\n data: FlameGraphDataContainer;\n itemData: ClickedItemData;\n onMenuItemClick: () => void;\n onItemFocus: () => void;\n onSandwich: () => void;\n onExpandGroup: () => void;\n onCollapseGroup: () => void;\n onExpandAllGroups: () => void;\n onCollapseAllGroups: () => void;\n getExtraContextMenuButtons?: GetExtraContextMenuButtonsFunction;\n collapseConfig?: CollapseConfig;\n collapsing?: boolean;\n allGroupsCollapsed?: boolean;\n allGroupsExpanded?: boolean;\n selectedView: SelectedView;\n search: string;\n};\n\nconst FlameGraphContextMenu = ({\n data,\n itemData,\n onMenuItemClick,\n onItemFocus,\n onSandwich,\n collapseConfig,\n onExpandGroup,\n onCollapseGroup,\n onExpandAllGroups,\n onCollapseAllGroups,\n getExtraContextMenuButtons,\n collapsing,\n allGroupsExpanded,\n allGroupsCollapsed,\n selectedView,\n search,\n}: Props) => {\n function renderItems() {\n const extraButtons =\n getExtraContextMenuButtons?.(itemData, data.data, {\n selectedView,\n isDiff: data.isDiffFlamegraph(),\n search,\n collapseConfig,\n }) || [];\n return (\n <>\n <MenuItem\n label=\"Focus block\"\n icon={'eye'}\n onClick={() => {\n onItemFocus();\n onMenuItemClick();\n }}\n />\n <MenuItem\n label=\"Copy function name\"\n icon={'copy'}\n onClick={() => {\n navigator.clipboard.writeText(itemData.label).then(() => {\n onMenuItemClick();\n });\n }}\n />\n <MenuItem\n label=\"Sandwich view\"\n icon={'gf-show-context'}\n onClick={() => {\n onSandwich();\n onMenuItemClick();\n }}\n />\n {extraButtons.map(({ label, icon, onClick }) => {\n return <MenuItem label={label} icon={icon} onClick={() => onClick()} key={label} />;\n })}\n {collapsing && (\n <MenuGroup label={'Grouping'}>\n {collapseConfig ? (\n collapseConfig.collapsed ? (\n <MenuItem\n label=\"Expand group\"\n icon={'angle-double-down'}\n onClick={() => {\n onExpandGroup();\n onMenuItemClick();\n }}\n />\n ) : (\n <MenuItem\n label=\"Collapse group\"\n icon={'angle-double-up'}\n onClick={() => {\n onCollapseGroup();\n onMenuItemClick();\n }}\n />\n )\n ) : null}\n {!allGroupsExpanded && (\n <MenuItem\n label=\"Expand all groups\"\n icon={'angle-double-down'}\n onClick={() => {\n onExpandAllGroups();\n onMenuItemClick();\n }}\n />\n )}\n {!allGroupsCollapsed && (\n <MenuItem\n label=\"Collapse all groups\"\n icon={'angle-double-up'}\n onClick={() => {\n onCollapseAllGroups();\n onMenuItemClick();\n }}\n />\n )}\n </MenuGroup>\n )}\n </>\n );\n }\n\n return (\n <div data-testid=\"contextMenu\">\n <ContextMenu\n renderMenuItems={renderItems}\n x={itemData.posX + 10}\n y={itemData.posY}\n focusOnOpen={false}\n ></ContextMenu>\n </div>\n );\n};\n\nexport default FlameGraphContextMenu;\n","import { css } from '@emotion/css';\n\nimport { DisplayValue, getValueFormat, GrafanaTheme2 } from '@grafana/data';\nimport { InteractiveTable, Portal, useStyles2, VizTooltipContainer } from '@grafana/ui';\n\nimport { CollapseConfig, FlameGraphDataContainer, LevelItem } from './dataTransform';\n\ntype Props = {\n data: FlameGraphDataContainer;\n totalTicks: number;\n position?: { x: number; y: number };\n item?: LevelItem;\n collapseConfig?: CollapseConfig;\n};\n\nconst FlameGraphTooltip = ({ data, item, totalTicks, position, collapseConfig }: Props) => {\n const styles = useStyles2(getStyles);\n\n if (!(item && position)) {\n return null;\n }\n\n let content;\n\n if (data.isDiffFlamegraph()) {\n const tableData = getDiffTooltipData(data, item, totalTicks);\n content = (\n <InteractiveTable\n className={styles.tooltipTable}\n columns={[\n { id: 'label', header: '' },\n { id: 'baseline', header: 'Baseline' },\n { id: 'comparison', header: 'Comparison' },\n { id: 'diff', header: 'Diff' },\n ]}\n data={tableData}\n getRowId={(originalRow) => originalRow.rowId}\n />\n );\n } else {\n const tooltipData = getTooltipData(data, item, totalTicks);\n content = (\n <p className={styles.lastParagraph}>\n {tooltipData.unitTitle}\n <br />\n Total: <b>{tooltipData.unitValue}</b> ({tooltipData.percentValue}%)\n <br />\n Self: <b>{tooltipData.unitSelf}</b> ({tooltipData.percentSelf}%)\n <br />\n Samples: <b>{tooltipData.samples}</b>\n </p>\n );\n }\n\n return (\n <Portal>\n <VizTooltipContainer className={styles.tooltipContainer} position={position} offset={{ x: 15, y: 0 }}>\n <div className={styles.tooltipContent}>\n <p className={styles.tooltipName}>\n {data.getLabel(item.itemIndexes[0])}\n {collapseConfig && collapseConfig.collapsed ? (\n <span>\n <br />\n and {collapseConfig.items.length} similar items\n </span>\n ) : (\n ''\n )}\n </p>\n {content}\n </div>\n </VizTooltipContainer>\n </Portal>\n );\n};\n\ntype TooltipData = {\n percentValue: number;\n percentSelf: number;\n unitTitle: string;\n unitValue: string;\n unitSelf: string;\n samples: string;\n};\n\nexport const getTooltipData = (data: FlameGraphDataContainer, item: LevelItem, totalTicks: number): TooltipData => {\n const displayValue = data.valueDisplayProcessor(item.value);\n const displaySelf = data.getSelfDisplay(item.itemIndexes);\n\n const percentValue = Math.round(10000 * (displayValue.numeric / totalTicks)) / 100;\n const percentSelf = Math.round(10000 * (displaySelf.numeric / totalTicks)) / 100;\n let unitValue = displayValue.text + displayValue.suffix;\n let unitSelf = displaySelf.text + displaySelf.suffix;\n\n const unitTitle = data.getUnitTitle();\n if (unitTitle === 'Count') {\n if (!displayValue.suffix) {\n // Makes sure we don't show 123undefined or something like that if suffix isn't defined\n unitValue = displayValue.text;\n }\n if (!displaySelf.suffix) {\n // Makes sure we don't show 123undefined or something like that if suffix isn't defined\n unitSelf = displaySelf.text;\n }\n }\n\n return {\n percentValue,\n percentSelf,\n unitTitle,\n unitValue,\n unitSelf,\n samples: displayValue.numeric.toLocaleString(),\n };\n};\n\ntype DiffTableData = {\n rowId: string;\n label: string;\n baseline: string | number;\n comparison: string | number;\n diff: string | number;\n};\n\nexport const getDiffTooltipData = (\n data: FlameGraphDataContainer,\n item: LevelItem,\n totalTicks: number\n): DiffTableData[] => {\n const levels = data.getLevels();\n const totalTicksRight = levels[0][0].valueRight!;\n const totalTicksLeft = totalTicks - totalTicksRight;\n const valueLeft = item.value - item.valueRight!;\n\n const percentageLeft = Math.round((10000 * valueLeft) / totalTicksLeft) / 100;\n const percentageRight = Math.round((10000 * item.valueRight!) / totalTicksRight) / 100;\n\n const diff = ((percentageRight - percentageLeft) / percentageLeft) * 100;\n\n const displayValueLeft = getValueWithUnit(data, data.valueDisplayProcessor(valueLeft));\n const displayValueRight = getValueWithUnit(data, data.valueDisplayProcessor(item.valueRight!));\n\n const shortValFormat = getValueFormat('short');\n\n return [\n {\n rowId: '1',\n label: '% of total',\n baseline: percentageLeft + '%',\n comparison: percentageRight + '%',\n diff: shortValFormat(diff).text + '%',\n },\n {\n rowId: '2',\n label: 'Value',\n baseline: displayValueLeft,\n comparison: displayValueRight,\n diff: getValueWithUnit(data, data.valueDisplayProcessor(item.valueRight! - valueLeft)),\n },\n {\n rowId: '3',\n label: 'Samples',\n baseline: shortValFormat(valueLeft).text,\n comparison: shortValFormat(item.valueRight!).text,\n diff: shortValFormat(item.valueRight! - valueLeft).text,\n },\n ];\n};\n\nfunction getValueWithUnit(data: FlameGraphDataContainer, displayValue: DisplayValue) {\n let unitValue = displayValue.text + displayValue.suffix;\n\n const unitTitle = data.getUnitTitle();\n if (unitTitle === 'Count') {\n if (!displayValue.suffix) {\n // Makes sure we don't show 123undefined or something like that if suffix isn't defined\n unitValue = displayValue.text;\n }\n }\n return unitValue;\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n tooltipContainer: css({\n title: 'tooltipContainer',\n overflow: 'hidden',\n }),\n tooltipContent: css({\n title: 'tooltipContent',\n fontSize: theme.typography.bodySmall.fontSize,\n width: '100%',\n }),\n tooltipName: css({\n title: 'tooltipName',\n marginTop: 0,\n wordBreak: 'break-all',\n }),\n lastParagraph: css({\n title: 'lastParagraph',\n marginBottom: 0,\n }),\n name: css({\n title: 'name',\n marginBottom: '10px',\n }),\n\n tooltipTable: css({\n title: 'tooltipTable',\n maxWidth: '400px',\n }),\n});\n\nexport default FlameGraphTooltip;\n","import { LevelItem } from './FlameGraph/dataTransform';\n\nexport { type FlameGraphDataContainer } from './FlameGraph/dataTransform';\n\nexport { type ExtraContextMenuButton } from './FlameGraph/FlameGraphContextMenu';\n\nexport type ClickedItemData = {\n posX: number;\n posY: number;\n label: string;\n item: LevelItem;\n};\n\nexport enum SampleUnit {\n Bytes = 'bytes',\n Short = 'short',\n Nanoseconds = 'ns',\n}\n\nexport enum SelectedView {\n TopTable = 'topTable',\n FlameGraph = 'flameGraph',\n Both = 'both',\n}\n\nexport interface TableData {\n self: number;\n total: number;\n // For diff view\n totalRight: number;\n}\n\nexport enum ColorScheme {\n ValueBased = 'valueBased',\n PackageBased = 'packageBased',\n}\n\nexport enum ColorSchemeDiff {\n Default = 'default',\n DiffColorBlind = 'diffColorBlind',\n}\n\nexport type TextAlign = 'left' | 'right';\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/*\n\nCopyright (c) 2011 Gary Court\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n/* eslint-disable no-plusplus */\n/* eslint-disable prefer-const */\n/* eslint-disable no-bitwise */\n/* eslint-disable camelcase */\n\nexport default function murmurhash3_32_gc(key: string, seed = 0) {\n let remainder;\n let bytes;\n let h1;\n let h1b;\n let c1;\n let c2;\n let k1;\n let i;\n\n remainder = key.length & 3; // key.length % 4\n bytes = key.length - remainder;\n h1 = seed;\n c1 = 0xcc9e2d51;\n c2 = 0x1b873593;\n i = 0;\n\n while (i < bytes) {\n k1 =\n (key.charCodeAt(i) & 0xff) |\n ((key.charCodeAt(++i) & 0xff) << 8) |\n ((key.charCodeAt(++i) & 0xff) << 16) |\n ((key.charCodeAt(++i) & 0xff) << 24);\n ++i;\n\n k1 = ((k1 & 0xffff) * c1 + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 & 0xffff) * c2 + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1b = ((h1 & 0xffff) * 5 + ((((h1 >>> 16) * 5) & 0xffff) << 16)) & 0xffffffff;\n h1 = (h1b & 0xffff) + 0x6b64 + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16);\n }\n\n k1 = 0;\n\n switch (remainder) {\n case 3:\n k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\n // fall through\n case 2:\n k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\n // fall through\n case 1:\n k1 ^= key.charCodeAt(i) & 0xff;\n // fall through\n default:\n k1 = ((k1 & 0xffff) * c1 + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 & 0xffff) * c2 + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n h1 ^= k1;\n }\n\n h1 ^= key.length;\n\n h1 ^= h1 >>> 16;\n h1 = ((h1 & 0xffff) * 0x85ebca6b + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff;\n h1 ^= h1 >>> 13;\n h1 = ((h1 & 0xffff) * 0xc2b2ae35 + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16)) & 0xffffffff;\n h1 ^= h1 >>> 16;\n\n return h1 >>> 0;\n}\n","import { scaleLinear } from 'd3';\nimport color from 'tinycolor2';\n\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { ColorSchemeDiff } from '../types';\n\nimport murmurhash3_32_gc from './murmur3';\n\n// Colors taken from pyroscope, they should be from Grafana originally, but I didn't find from where exactly.\nconst packageColors = [\n color({ h: 24, s: 69, l: 60 }),\n color({ h: 34, s: 65, l: 65 }),\n color({ h: 194, s: 52, l: 61 }),\n color({ h: 163, s: 45, l: 55 }),\n color({ h: 211, s: 48, l: 60 }),\n color({ h: 246, s: 40, l: 65 }),\n color({ h: 305, s: 63, l: 79 }),\n color({ h: 47, s: 100, l: 73 }),\n\n color({ r: 183, g: 219, b: 171 }),\n color({ r: 244, g: 213, b: 152 }),\n color({ r: 78, g: 146, b: 249 }),\n color({ r: 249, g: 186, b: 143 }),\n color({ r: 242, g: 145, b: 145 }),\n color({ r: 130, g: 181, b: 216 }),\n color({ r: 229, g: 168, b: 226 }),\n color({ r: 174, g: 162, b: 224 }),\n color({ r: 154, g: 196, b: 138 }),\n color({ r: 242, g: 201, b: 109 }),\n color({ r: 101, g: 197, b: 219 }),\n color({ r: 249, g: 147, b: 78 }),\n color({ r: 234, g: 100, b: 96 }),\n color({ r: 81, g: 149, b: 206 }),\n color({ r: 214, g: 131, b: 206 }),\n color({ r: 128, g: 110, b: 183 }),\n];\n\nconst byValueMinColor = getBarColorByValue(1, 100, 0, 1);\nconst byValueMaxColor = getBarColorByValue(100, 100, 0, 1);\nexport const byValueGradient = `linear-gradient(90deg, ${byValueMinColor} 0%, ${byValueMaxColor} 100%)`;\n\n// Handpicked some vaguely rainbow-ish colors\nexport const byPackageGradient = `linear-gradient(90deg, ${packageColors[0]} 0%, ${packageColors[2]} 30%, ${packageColors[6]} 50%, ${packageColors[7]} 70%, ${packageColors[8]} 100%)`;\n\nexport function getBarColorByValue(value: number, totalTicks: number, rangeMin: number, rangeMax: number) {\n // / (rangeMax - rangeMin) here so when you click a bar it will adjust the top (clicked)bar to the most 'intense' color\n const intensity = Math.min(1, value / totalTicks / (rangeMax - rangeMin));\n const h = 50 - 50 * intensity;\n const l = 65 + 7 * intensity;\n\n return color({ h, s: 100, l });\n}\n\nexport function getBarColorByPackage(label: string, theme: GrafanaTheme2) {\n const packageName = getPackageName(label);\n // TODO: similar thing happens in trace view with selecting colors of the spans, so maybe this could be unified.\n const hash = murmurhash3_32_gc(packageName || '', 0);\n const colorIndex = hash % packageColors.length;\n let packageColor = packageColors[colorIndex].clone();\n if (theme.isLight) {\n packageColor = packageColor.brighten(15);\n }\n return packageColor;\n}\n\n// green to red\nexport const diffDefaultColors = ['rgb(0, 170, 0)', 'rgb(148, 142, 142)', 'rgb(200, 0, 0)'];\nexport const diffDefaultGradient = `linear-gradient(90deg, ${diffDefaultColors[0]} 0%, ${diffDefaultColors[1]} 50%, ${diffDefaultColors[2]} 100%)`;\nexport const diffColorBlindColors = ['rgb(26, 133, 255)', 'rgb(148, 142, 142)', 'rgb(220, 50, 32)'];\nexport const diffColorBlindGradient = `linear-gradient(90deg, ${diffColorBlindColors[0]} 0%, ${diffColorBlindColors[1]} 50%, ${diffColorBlindColors[2]} 100%)`;\n\nexport function getBarColorByDiff(\n ticks: number,\n ticksRight: number,\n totalTicks: number,\n totalTicksRight: number,\n colorScheme: ColorSchemeDiff\n) {\n const range = colorScheme === ColorSchemeDiff.Default ? diffDefaultColors : diffColorBlindColors;\n const colorScale = scaleLinear()\n .domain([-100, 0, 100])\n // TODO types from DefinitelyTyped seem to mismatch\n // @ts-ignore\n .range(range);\n\n const ticksLeft = ticks - ticksRight;\n const totalTicksLeft = totalTicks - totalTicksRight;\n\n if (totalTicksRight === 0 || totalTicksLeft === 0) {\n // TODO types from DefinitelyTyped seem to mismatch\n // @ts-ignore\n const rgbString: string = colorScale(0);\n // Fallback to neutral color as we probably have no data for one of the sides.\n return color(rgbString);\n }\n\n const percentageLeft = Math.round((10000 * ticksLeft) / totalTicksLeft) / 100;\n const percentageRight = Math.round((10000 * ticksRight) / totalTicksRight) / 100;\n\n const diff = ((percentageRight - percentageLeft) / percentageLeft) * 100;\n\n // TODO types from DefinitelyTyped seem to mismatch\n // @ts-ignore\n const rgbString: string = colorScale(diff);\n return color(rgbString);\n}\n\n// const getColors = memoizeOne((theme) => getFilteredColors(colors, theme));\n\n// Different regexes to get the package name and function name from the label. We may at some point get an info about\n// the language from the backend and use the right regex but right now we just try all of them from most to least\n// specific.\nconst matchers = [\n ['phpspy', /^(?<packageName>([^\\/]*\\/)*)(?<filename>.*\\.php+)(?<line_info>.*)$/],\n ['pyspy', /^(?<packageName>([^\\/]*\\/)*)(?<filename>.*\\.py+)(?<line_info>.*)$/],\n ['rbspy', /^(?<packageName>([^\\/]*\\/)*)(?<filename>.*\\.rb+)(?<line_info>.*)$/],\n [\n 'nodespy',\n /^(\\.\\/node_modules\\/)?(?<packageName>[^/]*)(?<filename>.*\\.?(jsx?|tsx?)?):(?<functionName>.*):(?<line_info>.*)$/,\n ],\n ['gospy', /^(?<packageName>.*?\\/.*?\\.|.*?\\.|.+)(?<functionName>.*)$/], // also 'scrape'\n ['javaspy', /^(?<packageName>.+\\/)(?<filename>.+\\.)(?<functionName>.+)$/],\n ['dotnetspy', /^(?<packageName>.+)\\.(.+)\\.(.+)\\(.*\\)$/],\n ['tracing', /^(?<packageName>.+?):.*$/],\n ['pyroscope-rs', /^(?<packageName>[^::]+)/],\n ['ebpfspy', /^(?<packageName>.+)$/],\n ['unknown', /^(?<packageName>.+)$/],\n];\n\n// Get the package name from the symbol. Try matchers from the list and return first one that matches.\nfunction getPackageName(name: string): string | undefined {\n for (const [_, matcher] of matchers) {\n const match = name.match(matcher);\n if (match) {\n return match.groups?.packageName || '';\n }\n }\n return undefined;\n}\n","import { RefObject, useCallback, useEffect, useMemo, useState } from 'react';\nimport color from 'tinycolor2';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useTheme2 } from '@grafana/ui';\n\nimport {\n BAR_BORDER_WIDTH,\n BAR_TEXT_PADDING_LEFT,\n MUTE_THRESHOLD,\n HIDE_THRESHOLD,\n LABEL_THRESHOLD,\n PIXELS_PER_LEVEL,\n GROUP_STRIP_WIDTH,\n GROUP_STRIP_PADDING,\n GROUP_STRIP_MARGIN_LEFT,\n GROUP_TEXT_OFFSET,\n} from '../constants';\nimport { ClickedItemData, ColorScheme, ColorSchemeDiff, TextAlign } from '../types';\n\nimport { getBarColorByDiff, getBarColorByPackage, getBarColorByValue } from './colors';\nimport { CollapseConfig, CollapsedMap, FlameGraphDataContainer, LevelItem } from './dataTransform';\n\ntype RenderOptions = {\n canvasRef: RefObject<HTMLCanvasElement>;\n data: FlameGraphDataContainer;\n root: LevelItem;\n direction: 'children' | 'parents';\n\n // Depth in number of levels\n depth: number;\n wrapperWidth: number;\n\n // If we are rendering only zoomed in part of the graph.\n rangeMin: number;\n rangeMax: number;\n\n matchedLabels: Set<string> | undefined;\n textAlign: TextAlign;\n\n // Total ticks that will be used for sizing\n totalViewTicks: number;\n // Total ticks that will be used for computing colors as some color scheme (like in diff view) should not be affected\n // by sandwich or focus view.\n totalColorTicks: number;\n // Total ticks used to compute the diff colors\n totalTicksRight: number | undefined;\n colorScheme: ColorScheme | ColorSchemeDiff;\n focusedItemData?: ClickedItemData;\n collapsedMap: CollapsedMap;\n};\n\nexport function useFlameRender(options: RenderOptions) {\n const {\n canvasRef,\n data,\n root,\n depth,\n direction,\n wrapperWidth,\n rangeMin,\n rangeMax,\n matchedLabels,\n textAlign,\n totalViewTicks,\n totalColorTicks,\n totalTicksRight,\n colorScheme,\n focusedItemData,\n collapsedMap,\n } = options;\n const ctx = useSetupCanvas(canvasRef, wrapperWidth, depth);\n const theme = useTheme2();\n\n // There is a bit of dependency injections here that does not add readability, mainly to prevent recomputing some\n // common stuff for all the nodes in the graph when only once is enough. perf/readability tradeoff.\n\n const mutedColor = useMemo(() => {\n const barMutedColor = color(theme.colors.background.secondary);\n return theme.isLight ? barMutedColor.darken(10).toHexString() : barMutedColor.lighten(10).toHexString();\n }, [theme]);\n\n const getBarColor = useColorFunction(\n totalColorTicks,\n totalTicksRight,\n colorScheme,\n theme,\n mutedColor,\n rangeMin,\n rangeMax,\n matchedLabels,\n focusedItemData ? focusedItemData.item.level : 0\n );\n\n const renderFunc = useRenderFunc(ctx, data, getBarColor, textAlign, collapsedMap);\n\n useEffect(() => {\n if (!ctx) {\n return;\n }\n\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n\n const mutedPath2D = new Path2D();\n\n //\n // Walk the tree and compute the dimensions for each item in the flamegraph.\n //\n walkTree(\n root,\n direction,\n data,\n totalViewTicks,\n rangeMin,\n rangeMax,\n wrapperWidth,\n collapsedMap,\n (item, x, y, width, height, label, muted) => {\n if (muted) {\n // We do a bit of optimization for muted regions, and we render them all in single fill later on as they don't\n // have labels and are the same color.\n mutedPath2D.rect(x, y, width, height);\n } else {\n renderFunc(item, x, y, width, height, label);\n }\n }\n );\n\n // Only fill the muted rects\n ctx.fillStyle = mutedColor;\n ctx.fill(mutedPath2D);\n }, [\n ctx,\n data,\n root,\n wrapperWidth,\n rangeMin,\n rangeMax,\n totalViewTicks,\n direction,\n renderFunc,\n collapsedMap,\n mutedColor,\n ]);\n}\n\ntype RenderFunc = (item: LevelItem, x: number, y: number, width: number, height: number, label: string) => void;\n\ntype RenderFuncWrap = (\n item: LevelItem,\n x: number,\n y: number,\n width: number,\n height: number,\n label: string,\n muted: boolean\n) => void;\n\n/**\n * Create a render function with some memoization to prevent excesive repainting of the canvas.\n * @param ctx\n * @param data\n * @param getBarColor\n * @param textAlign\n * @param collapsedMap\n */\nfunction useRenderFunc(\n ctx: CanvasRenderingContext2D | undefined,\n data: FlameGraphDataContainer,\n getBarColor: (item: LevelItem, label: string, muted: boolean) => string,\n textAlign: TextAlign,\n collapsedMap: CollapsedMap\n) {\n return useMemo(() => {\n if (!ctx) {\n return () => {};\n }\n\n const renderFunc: RenderFunc = (item, x, y, width, height, label) => {\n ctx.beginPath();\n ctx.rect(x + BAR_BORDER_WIDTH, y, width, height);\n ctx.fillStyle = getBarColor(item, label, false);\n ctx.stroke();\n ctx.fill();\n\n const collapsedItemConfig = collapsedMap.get(item);\n let finalLabel = label;\n if (collapsedItemConfig && collapsedItemConfig.collapsed) {\n const numberOfCollapsedItems = collapsedItemConfig.items.length;\n finalLabel = `(${numberOfCollapsedItems}) ` + label;\n }\n\n if (width >= LABEL_THRESHOLD) {\n if (collapsedItemConfig) {\n renderLabel(\n ctx,\n data,\n finalLabel,\n item,\n width,\n textAlign === 'left' ? x + GROUP_STRIP_MARGIN_LEFT + GROUP_TEXT_OFFSET : x,\n y,\n textAlign\n );\n\n renderGroupingStrip(ctx, x, y, height, item, collapsedItemConfig);\n } else {\n renderLabel(ctx, data, finalLabel, item, width, x, y, textAlign);\n }\n }\n };\n\n return renderFunc;\n }, [ctx, getBarColor, textAlign, data, collapsedMap]);\n}\n\n/**\n * Render small strip on the left side of the bar to indicate that this item is part of a group that can be collapsed.\n * @param ctx\n * @param x\n * @param y\n * @param height\n * @param item\n * @param collapsedItemConfig\n */\nfunction renderGroupingStrip(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n height: number,\n item: LevelItem,\n collapsedItemConfig: CollapseConfig\n) {\n const groupStripX = x + GROUP_STRIP_MARGIN_LEFT;\n\n // This is to mask the label in case we align it right to left.\n ctx.beginPath();\n ctx.rect(x, y, groupStripX - x + GROUP_STRIP_WIDTH + GROUP_STRIP_PADDING, height);\n ctx.fill();\n\n // For item in a group that can be collapsed, we draw a small strip to mark them. On the items that are at the\n // start or and end of a group we draw just half the strip so 2 groups next to each other are separated\n // visually.\n ctx.beginPath();\n if (collapsedItemConfig.collapsed) {\n ctx.rect(groupStripX, y + height / 4, GROUP_STRIP_WIDTH, height / 2);\n } else {\n if (collapsedItemConfig.items[0] === item) {\n // Top item\n ctx.rect(groupStripX, y + height / 2, GROUP_STRIP_WIDTH, height / 2);\n } else if (collapsedItemConfig.items[collapsedItemConfig.items.length - 1] === item) {\n // Bottom item\n ctx.rect(groupStripX, y, GROUP_STRIP_WIDTH, height / 2);\n } else {\n ctx.rect(groupStripX, y, GROUP_STRIP_WIDTH, height);\n }\n }\n\n ctx.fillStyle = '#666';\n ctx.fill();\n}\n\n/**\n * Exported for testing don't use directly\n * Walks the tree and computes coordinates, dimensions and other data needed for rendering. For each item in the tree\n * it defers the rendering to the renderFunc.\n */\nexport function walkTree(\n root: LevelItem,\n // In sandwich view we use parents direction to show all callers.\n direction: 'children' | 'parents',\n data: FlameGraphDataContainer,\n totalViewTicks: number,\n rangeMin: number,\n rangeMax: number,\n wrapperWidth: number,\n collapsedMap: CollapsedMap,\n renderFunc: RenderFuncWrap\n) {\n // The levelOffset here is to keep track if items that we don't render because they are collapsed into single row.\n // That means we have to render next items with an offset of some rows up in the stack.\n const stack: Array<{ item: LevelItem; levelOffset: number }> = [];\n stack.push({ item: root, levelOffset: 0 });\n\n const pixelsPerTick = (wrapperWidth * window.devicePixelRatio) / totalViewTicks / (rangeMax - rangeMin);\n let collapsedItemRendered: LevelItem | undefined = undefined;\n\n while (stack.length > 0) {\n const { item, levelOffset } = stack.shift()!;\n let curBarTicks = item.value;\n const muted = curBarTicks * pixelsPerTick <= MUTE_THRESHOLD;\n const width = curBarTicks * pixelsPerTick - (muted ? 0 : BAR_BORDER_WIDTH * 2);\n const height = PIXELS_PER_LEVEL;\n\n if (width < HIDE_THRESHOLD) {\n // We don't render nor it's children\n continue;\n }\n\n let offsetModifier = 0;\n let skipRender = false;\n const collapsedItemConfig = collapsedMap.get(item);\n const isCollapsedItem = collapsedItemConfig && collapsedItemConfig.collapsed;\n\n if (isCollapsedItem) {\n if (collapsedItemRendered === collapsedItemConfig.items[0]) {\n offsetModifier = direction === 'children' ? -1 : +1;\n skipRender = true;\n } else {\n // This is a case where we have another collapsed group right after different collapsed group, so we need to\n // reset.\n collapsedItemRendered = undefined;\n }\n } else {\n collapsedItemRendered = undefined;\n }\n\n if (!skipRender) {\n const barX = getBarX(item.start, totalViewTicks, rangeMin, pixelsPerTick);\n const barY = (item.level + levelOffset) * PIXELS_PER_LEVEL;\n\n let label = data.getLabel(item.itemIndexes[0]);\n if (isCollapsedItem) {\n collapsedItemRendered = item;\n }\n\n renderFunc(item, barX, barY, width, height, label, muted);\n }\n\n const nextList = direction === 'children' ? item.children : item.parents;\n if (nextList) {\n stack.unshift(...nextList.map((c) => ({ item: c, levelOffset: levelOffset + offsetModifier })));\n }\n }\n}\n\nfunction useColorFunction(\n totalTicks: number,\n totalTicksRight: number | undefined,\n colorScheme: ColorScheme | ColorSchemeDiff,\n theme: GrafanaTheme2,\n mutedColor: string,\n rangeMin: number,\n rangeMax: number,\n matchedLabels: Set<string> | undefined,\n topLevel: number\n) {\n return useCallback(\n function getColor(item: LevelItem, label: string, muted: boolean) {\n // If collapsed and no search we can quickly return the muted color\n if (muted && !matchedLabels) {\n // Collapsed are always grayed\n return mutedColor;\n }\n\n const barColor =\n item.valueRight !== undefined &&\n (colorScheme === ColorSchemeDiff.Default || colorScheme === ColorSchemeDiff.DiffColorBlind)\n ? getBarColorByDiff(item.value, item.valueRight!, totalTicks, totalTicksRight!, colorScheme)\n : colorScheme === ColorScheme.ValueBased\n ? getBarColorByValue(item.value, totalTicks, rangeMin, rangeMax)\n : getBarColorByPackage(label, theme);\n\n if (matchedLabels) {\n // Means we are searching, we use color for matches and gray the rest\n return matchedLabels.has(label) ? barColor.toHslString() : mutedColor;\n }\n\n // Mute if we are above the focused symbol\n return item.level > topLevel - 1 ? barColor.toHslString() : barColor.lighten(15).toHslString();\n },\n [totalTicks, totalTicksRight, colorScheme, theme, rangeMin, rangeMax, matchedLabels, topLevel, mutedColor]\n );\n}\n\nfunction useSetupCanvas(canvasRef: RefObject<HTMLCanvasElement>, wrapperWidth: number, numberOfLevels: number) {\n const [ctx, setCtx] = useState<CanvasRenderingContext2D>();\n\n useEffect(() => {\n if (!(numberOfLevels && canvasRef.current)) {\n return;\n }\n const ctx = canvasRef.current.getContext('2d')!;\n\n const height = PIXELS_PER_LEVEL * numberOfLevels;\n canvasRef.current.width = Math.round(wrapperWidth * window.devicePixelRatio);\n canvasRef.current.height = Math.round(height);\n canvasRef.current.style.width = `${wrapperWidth}px`;\n canvasRef.current.style.height = `${height / window.devicePixelRatio}px`;\n\n ctx.textBaseline = 'middle';\n ctx.font = 12 * window.devicePixelRatio + 'px monospace';\n ctx.strokeStyle = 'white';\n setCtx(ctx);\n }, [canvasRef, setCtx, wrapperWidth, numberOfLevels]);\n return ctx;\n}\n\n// Renders a text inside the node rectangle. It allows setting alignment of the text left or right which takes effect\n// when text is too long to fit in the rectangle.\nfunction renderLabel(\n ctx: CanvasRenderingContext2D,\n data: FlameGraphDataContainer,\n label: string,\n item: LevelItem,\n width: number,\n x: number,\n y: number,\n textAlign: TextAlign\n) {\n ctx.save();\n ctx.clip(); // so text does not overflow\n ctx.fillStyle = '#222';\n\n const displayValue = data.valueDisplayProcessor(item.value);\n const unit = displayValue.suffix ? displayValue.text + displayValue.suffix : displayValue.text;\n\n // We only measure name here instead of full label because of how we deal with the units and aligning later.\n const measure = ctx.measureText(label);\n const spaceForTextInRect = width - BAR_TEXT_PADDING_LEFT;\n\n let fullLabel = `${label} (${unit})`;\n let labelX = Math.max(x, 0) + BAR_TEXT_PADDING_LEFT;\n\n // We use the desired alignment only if there is not enough space for the text, otherwise we keep left alignment as\n // that will already show full text.\n if (measure.width > spaceForTextInRect) {\n ctx.textAlign = textAlign;\n // If aligned to the right we don't want to take the space with the unit label as the assumption is user wants to\n // mainly see the name. This also reflects how pyro/flamegraph works.\n if (textAlign === 'right') {\n fullLabel = label;\n labelX = x + width - BAR_TEXT_PADDING_LEFT;\n }\n }\n\n ctx.fillText(fullLabel, labelX, y + PIXELS_PER_LEVEL / 2 + 2);\n ctx.restore();\n}\n\n/**\n * Returns the X position of the bar. totalTicks * rangeMin is to adjust for any current zoom. So if we zoom to a\n * section of the graph we align and shift the X coordinates accordingly.\n * @param offset\n * @param totalTicks\n * @param rangeMin\n * @param pixelsPerTick\n */\nexport function getBarX(offset: number, totalTicks: number, rangeMin: number, pixelsPerTick: number) {\n return (offset - totalTicks * rangeMin) * pixelsPerTick;\n}\n","import { css } from '@emotion/css';\nimport { MouseEvent as ReactMouseEvent, useCallback, useEffect, useRef, useState } from 'react';\nimport * as React from 'react';\nimport { useMeasure } from 'react-use';\n\nimport { PIXELS_PER_LEVEL } from '../constants';\nimport { ClickedItemData, ColorScheme, ColorSchemeDiff, SelectedView, TextAlign } from '../types';\n\nimport FlameGraphContextMenu, { GetExtraContextMenuButtonsFunction } from './FlameGraphContextMenu';\nimport FlameGraphTooltip from './FlameGraphTooltip';\nimport { CollapsedMap, FlameGraphDataContainer, LevelItem } from './dataTransform';\nimport { getBarX, useFlameRender } from './rendering';\n\ntype Props = {\n data: FlameGraphDataContainer;\n rangeMin: number;\n rangeMax: number;\n matchedLabels: Set<string> | undefined;\n setRangeMin: (range: number) => void;\n setRangeMax: (range: number) => void;\n style?: React.CSSProperties;\n onItemFocused: (data: ClickedItemData) => void;\n focusedItemData?: ClickedItemData;\n textAlign: TextAlign;\n onSandwich: (label: string) => void;\n colorScheme: ColorScheme | ColorSchemeDiff;\n\n root: LevelItem;\n direction: 'children' | 'parents';\n // Depth in number of levels\n depth: number;\n\n totalProfileTicks: number;\n totalProfileTicksRight?: number;\n totalViewTicks: number;\n showFlameGraphOnly?: boolean;\n\n collapsedMap: CollapsedMap;\n setCollapsedMap: (collapsedMap: CollapsedMap) => void;\n collapsing?: boolean;\n getExtraContextMenuButtons?: GetExtraContextMenuButtonsFunction;\n\n selectedView: SelectedView;\n search: string;\n};\n\nconst FlameGraphCanvas = ({\n data,\n rangeMin,\n rangeMax,\n matchedLabels,\n setRangeMin,\n setRangeMax,\n onItemFocused,\n focusedItemData,\n textAlign,\n onSandwich,\n colorScheme,\n totalProfileTicks,\n totalProfileTicksRight,\n totalViewTicks,\n root,\n direction,\n depth,\n showFlameGraphOnly,\n collapsedMap,\n setCollapsedMap,\n collapsing,\n getExtraContextMenuButtons,\n selectedView,\n search,\n}: Props) => {\n const styles = getStyles();\n\n const [sizeRef, { width: wrapperWidth }] = useMeasure<HTMLDivElement>();\n const graphRef = useRef<HTMLCanvasElement>(null);\n const [tooltipItem, setTooltipItem] = useState<LevelItem>();\n\n const [clickedItemData, setClickedItemData] = useState<ClickedItemData>();\n\n useFlameRender({\n canvasRef: graphRef,\n colorScheme,\n data,\n focusedItemData,\n root,\n direction,\n depth,\n rangeMax,\n rangeMin,\n matchedLabels,\n textAlign,\n totalViewTicks,\n // We need this so that if we have a diff profile and are in sandwich view we still show the same diff colors.\n totalColorTicks: data.isDiffFlamegraph() ? totalProfileTicks : totalViewTicks,\n totalTicksRight: totalProfileTicksRight,\n wrapperWidth,\n collapsedMap,\n });\n\n const onGraphClick = useCallback(\n (e: ReactMouseEvent<HTMLCanvasElement>) => {\n setTooltipItem(undefined);\n const pixelsPerTick = graphRef.current!.clientWidth / totalViewTicks / (rangeMax - rangeMin);\n const item = convertPixelCoordinatesToBarCoordinates(\n { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY },\n root,\n direction,\n depth,\n pixelsPerTick,\n totalViewTicks,\n rangeMin,\n collapsedMap\n );\n\n // if clicking on a block in the canvas\n if (item) {\n setClickedItemData({\n posY: e.clientY,\n posX: e.clientX,\n item,\n label: data.getLabel(item.itemIndexes[0]),\n });\n } else {\n // if clicking on the canvas but there is no block beneath the cursor\n setClickedItemData(undefined);\n }\n },\n [data, rangeMin, rangeMax, totalViewTicks, root, direction, depth, collapsedMap]\n );\n\n const [mousePosition, setMousePosition] = useState<{ x: number; y: number }>();\n const onGraphMouseMove = useCallback(\n (e: ReactMouseEvent<HTMLCanvasElement>) => {\n if (clickedItemData === undefined) {\n setTooltipItem(undefined);\n setMousePosition(undefined);\n const pixelsPerTick = graphRef.current!.clientWidth / totalViewTicks / (rangeMax - rangeMin);\n const item = convertPixelCoordinatesToBarCoordinates(\n { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY },\n root,\n direction,\n depth,\n pixelsPerTick,\n totalViewTicks,\n rangeMin,\n collapsedMap\n );\n\n if (item) {\n setMousePosition({ x: e.clientX, y: e.clientY });\n setTooltipItem(item);\n }\n }\n },\n [rangeMin, rangeMax, totalViewTicks, clickedItemData, setMousePosition, root, direction, depth, collapsedMap]\n );\n\n const onGraphMouseLeave = useCallback(() => {\n setTooltipItem(undefined);\n }, []);\n\n // hide context menu if outside the flame graph canvas is clicked\n useEffect(() => {\n const handleOnClick = (e: MouseEvent) => {\n if (\n e.target instanceof HTMLElement &&\n e.target.parentElement?.id !== 'flameGraphCanvasContainer_clickOutsideCheck'\n ) {\n setClickedItemData(undefined);\n }\n };\n window.addEventListener('click', handleOnClick);\n return () => window.removeEventListener('click', handleOnClick);\n }, [setClickedItemData]);\n\n return (\n <div className={styles.graph}>\n <div className={styles.canvasWrapper} id=\"flameGraphCanvasContainer_clickOutsideCheck\" ref={sizeRef}>\n <canvas\n ref={graphRef}\n data-testid=\"flameGraph\"\n onClick={onGraphClick}\n onMouseMove={onGraphMouseMove}\n onMouseLeave={onGraphMouseLeave}\n />\n </div>\n <FlameGraphTooltip\n position={mousePosition}\n item={tooltipItem}\n data={data}\n totalTicks={totalViewTicks}\n collapseConfig={tooltipItem ? collapsedMap.get(tooltipItem) : undefined}\n />\n {!showFlameGraphOnly && clickedItemData && (\n <FlameGraphContextMenu\n data={data}\n itemData={clickedItemData}\n collapsing={collapsing}\n collapseConfig={collapsedMap.get(clickedItemData.item)}\n onMenuItemClick={() => {\n setClickedItemData(undefined);\n }}\n onItemFocus={() => {\n setRangeMin(clickedItemData.item.start / totalViewTicks);\n setRangeMax((clickedItemData.item.start + clickedItemData.item.value) / totalViewTicks);\n onItemFocused(clickedItemData);\n }}\n onSandwich={() => {\n onSandwich(data.getLabel(clickedItemData.item.itemIndexes[0]));\n }}\n onExpandGroup={() => {\n setCollapsedMap(collapsedMap.setCollapsedStatus(clickedItemData.item, false));\n }}\n onCollapseGroup={() => {\n setCollapsedMap(collapsedMap.setCollapsedStatus(clickedItemData.item, true));\n }}\n onExpandAllGroups={() => {\n setCollapsedMap(collapsedMap.setAllCollapsedStatus(false));\n }}\n onCollapseAllGroups={() => {\n setCollapsedMap(collapsedMap.setAllCollapsedStatus(true));\n }}\n allGroupsCollapsed={Array.from(collapsedMap.values()).every((i) => i.collapsed)}\n allGroupsExpanded={Array.from(collapsedMap.values()).every((i) => !i.collapsed)}\n getExtraContextMenuButtons={getExtraContextMenuButtons}\n selectedView={selectedView}\n search={search}\n />\n )}\n </div>\n );\n};\n\nconst getStyles = () => ({\n graph: css({\n label: 'graph',\n overflow: 'auto',\n flexGrow: 1,\n flexBasis: '50%',\n }),\n canvasContainer: css({\n label: 'canvasContainer',\n display: 'flex',\n }),\n canvasWrapper: css({\n label: 'canvasWrapper',\n cursor: 'pointer',\n flex: 1,\n overflow: 'hidden',\n }),\n sandwichMarker: css({\n label: 'sandwichMarker',\n writingMode: 'vertical-lr',\n transform: 'rotate(180deg)',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n }),\n sandwichMarkerIcon: css({\n label: 'sandwichMarkerIcon',\n verticalAlign: 'baseline',\n }),\n});\n\nexport const convertPixelCoordinatesToBarCoordinates = (\n // position relative to the start of the graph\n pos: { x: number; y: number },\n root: LevelItem,\n direction: 'children' | 'parents',\n depth: number,\n pixelsPerTick: number,\n totalTicks: number,\n rangeMin: number,\n collapsedMap: CollapsedMap\n): LevelItem | undefined => {\n let next: LevelItem | undefined = root;\n let currentLevel = direction === 'children' ? 0 : depth - 1;\n const levelIndex = Math.floor(pos.y / (PIXELS_PER_LEVEL / window.devicePixelRatio));\n let found = undefined;\n\n while (next) {\n const node: LevelItem = next;\n next = undefined;\n if (currentLevel === levelIndex) {\n found = node;\n break;\n }\n\n const nextList = direction === 'children' ? node.children : node.parents || [];\n\n for (const child of nextList) {\n const xStart = getBarX(child.start, totalTicks, rangeMin, pixelsPerTick);\n const xEnd = getBarX(child.start + child.value, totalTicks, rangeMin, pixelsPerTick);\n if (xStart <= pos.x && pos.x < xEnd) {\n next = child;\n // Check if item is a collapsed item. if so also check if the item is the first collapsed item in the chain,\n // which we render, or a child which we don't render. If it's a child in the chain then don't increase the\n // level end effectively skip it.\n const collapsedConfig = collapsedMap.get(child);\n if (!collapsedConfig || !collapsedConfig.collapsed || collapsedConfig.items[0] === child) {\n currentLevel = currentLevel + (direction === 'children' ? 1 : -1);\n }\n break;\n }\n }\n }\n\n return found;\n};\n\nexport default FlameGraphCanvas;\n","import { css } from '@emotion/css';\nimport { memo, ReactNode } from 'react';\n\nimport { getValueFormat, GrafanaTheme2 } from '@grafana/data';\nimport { Icon, IconButton, Tooltip, useStyles2 } from '@grafana/ui';\n\nimport { ClickedItemData } from '../types';\n\nimport { FlameGraphDataContainer } from './dataTransform';\n\ntype Props = {\n data: FlameGraphDataContainer;\n totalTicks: number;\n onFocusPillClick: () => void;\n onSandwichPillClick: () => void;\n focusedItem?: ClickedItemData;\n sandwichedLabel?: string;\n};\n\nconst FlameGraphMetadata = memo(\n ({ data, focusedItem, totalTicks, sandwichedLabel, onFocusPillClick, onSandwichPillClick }: Props) => {\n const styles = useStyles2(getStyles);\n const parts: ReactNode[] = [];\n const ticksVal = getValueFormat('short')(totalTicks);\n\n const displayValue = data.valueDisplayProcessor(totalTicks);\n let unitValue = displayValue.text + displayValue.suffix;\n const unitTitle = data.getUnitTitle();\n if (unitTitle === 'Count') {\n if (!displayValue.suffix) {\n // Makes sure we don't show 123undefined or something like that if suffix isn't defined\n unitValue = displayValue.text;\n }\n }\n\n parts.push(\n <div className={styles.metadataPill} key={'default'}>\n {unitValue} | {ticksVal.text}\n {ticksVal.suffix} samples ({unitTitle})\n </div>\n );\n\n if (sandwichedLabel) {\n parts.push(\n <Tooltip key={'sandwich'} content={sandwichedLabel} placement=\"top\">\n <div>\n <Icon size={'sm'} name={'angle-right'} />\n <div className={styles.metadataPill}>\n <Icon size={'sm'} name={'gf-show-context'} />{' '}\n <span className={styles.metadataPillName}>\n {sandwichedLabel.substring(sandwichedLabel.lastIndexOf('/') + 1)}\n </span>\n <IconButton\n className={styles.pillCloseButton}\n name={'times'}\n size={'sm'}\n onClick={onSandwichPillClick}\n tooltip={'Remove sandwich view'}\n aria-label={'Remove sandwich view'}\n />\n </div>\n </div>\n </Tooltip>\n );\n }\n\n if (focusedItem) {\n const percentValue = totalTicks > 0 ? Math.round(10000 * (focusedItem.item.value / totalTicks)) / 100 : 0;\n const iconName = percentValue > 0 ? 'eye' : 'exclamation-circle';\n\n parts.push(\n <Tooltip key={'focus'} content={focusedItem.label} placement=\"top\">\n <div>\n <Icon size={'sm'} name={'angle-right'} />\n <div className={styles.metadataPill}>\n <Icon size={'sm'} name={iconName} />\n {percentValue}% of total\n <IconButton\n className={styles.pillCloseButton}\n name={'times'}\n size={'sm'}\n onClick={onFocusPillClick}\n tooltip={'Remove focus'}\n aria-label={'Remove focus'}\n />\n </div>\n </div>\n </Tooltip>\n );\n }\n\n return <div className={styles.metadata}>{parts}</div>;\n }\n);\n\nFlameGraphMetadata.displayName = 'FlameGraphMetadata';\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n metadataPill: css({\n label: 'metadataPill',\n display: 'inline-flex',\n alignItems: 'center',\n background: theme.colors.background.secondary,\n borderRadius: theme.shape.borderRadius(8),\n padding: theme.spacing(0.5, 1),\n fontSize: theme.typography.bodySmall.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n lineHeight: theme.typography.bodySmall.lineHeight,\n color: theme.colors.text.secondary,\n }),\n pillCloseButton: css({\n label: 'pillCloseButton',\n verticalAlign: 'text-bottom',\n margin: theme.spacing(0, 0.5),\n }),\n metadata: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: '8px 0',\n }),\n metadataPillName: css({\n label: 'metadataPillName',\n maxWidth: '200px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n marginLeft: theme.spacing(0.5),\n }),\n});\n\nexport default FlameGraphMetadata;\n","// This component is based on logic from the flamebearer project\n// https://github.com/mapbox/flamebearer\n\n// ISC License\n\n// Copyright (c) 2018, Mapbox\n\n// Permission to use, copy, modify, and/or distribute this software for any purpose\n// with or without fee is hereby granted, provided that the above copyright notice\n// and this permission notice appear in all copies.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n// FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n// THIS SOFTWARE.\nimport { css, cx } from '@emotion/css';\nimport { useEffect, useState } from 'react';\nimport * as React from 'react';\n\nimport { Icon } from '@grafana/ui';\n\nimport { PIXELS_PER_LEVEL } from '../constants';\nimport { ClickedItemData, ColorScheme, ColorSchemeDiff, SelectedView, TextAlign } from '../types';\n\nimport FlameGraphCanvas from './FlameGraphCanvas';\nimport { GetExtraContextMenuButtonsFunction } from './FlameGraphContextMenu';\nimport FlameGraphMetadata from './FlameGraphMetadata';\nimport { CollapsedMap, FlameGraphDataContainer, LevelItem } from './dataTransform';\n\ntype Props = {\n data: FlameGraphDataContainer;\n rangeMin: number;\n rangeMax: number;\n matchedLabels?: Set<string>;\n setRangeMin: (range: number) => void;\n setRangeMax: (range: number) => void;\n style?: React.CSSProperties;\n onItemFocused: (data: ClickedItemData) => void;\n focusedItemData?: ClickedItemData;\n textAlign: TextAlign;\n sandwichItem?: string;\n onSandwich: (label: string) => void;\n onFocusPillClick: () => void;\n onSandwichPillClick: () => void;\n colorScheme: ColorScheme | ColorSchemeDiff;\n showFlameGraphOnly?: boolean;\n getExtraContextMenuButtons?: GetExtraContextMenuButtonsFunction;\n collapsing?: boolean;\n selectedView: SelectedView;\n search: string;\n collapsedMap: CollapsedMap;\n setCollapsedMap: (collapsedMap: CollapsedMap) => void;\n};\n\nconst FlameGraph = ({\n data,\n rangeMin,\n rangeMax,\n matchedLabels,\n setRangeMin,\n setRangeMax,\n onItemFocused,\n focusedItemData,\n textAlign,\n onSandwich,\n sandwichItem,\n onFocusPillClick,\n onSandwichPillClick,\n colorScheme,\n showFlameGraphOnly,\n getExtraContextMenuButtons,\n collapsing,\n selectedView,\n search,\n collapsedMap,\n setCollapsedMap,\n}: Props) => {\n const styles = getStyles();\n\n const [levels, setLevels] = useState<LevelItem[][]>();\n const [levelsCallers, setLevelsCallers] = useState<LevelItem[][]>();\n const [totalProfileTicks, setTotalProfileTicks] = useState<number>(0);\n const [totalProfileTicksRight, setTotalProfileTicksRight] = useState<number>();\n const [totalViewTicks, setTotalViewTicks] = useState<number>(0);\n\n useEffect(() => {\n if (data) {\n let levels = data.getLevels();\n let totalProfileTicks = levels.length ? levels[0][0].value : 0;\n let totalProfileTicksRight = levels.length ? levels[0][0].valueRight : undefined;\n let totalViewTicks = totalProfileTicks;\n let levelsCallers = undefined;\n\n if (sandwichItem) {\n const [callers, callees] = data.getSandwichLevels(sandwichItem);\n levels = callees;\n levelsCallers = callers;\n // We need this separate as in case of diff profile we want to compute diff colors based on the original ticks.\n totalViewTicks = callees[0]?.[0]?.value ?? 0;\n }\n setLevels(levels);\n setLevelsCallers(levelsCallers);\n setTotalProfileTicks(totalProfileTicks);\n setTotalProfileTicksRight(totalProfileTicksRight);\n setTotalViewTicks(totalViewTicks);\n }\n }, [data, sandwichItem]);\n\n if (!levels) {\n return null;\n }\n\n const commonCanvasProps = {\n data,\n rangeMin,\n rangeMax,\n matchedLabels,\n setRangeMin,\n setRangeMax,\n onItemFocused,\n focusedItemData,\n textAlign,\n onSandwich,\n colorScheme,\n totalProfileTicks,\n totalProfileTicksRight,\n totalViewTicks,\n showFlameGraphOnly,\n collapsedMap,\n setCollapsedMap,\n getExtraContextMenuButtons,\n collapsing,\n search,\n selectedView,\n };\n let canvas = null;\n\n if (levelsCallers?.length) {\n canvas = (\n <>\n <div className={styles.sandwichCanvasWrapper}>\n <div className={styles.sandwichMarker}>\n Callers\n <Icon className={styles.sandwichMarkerIcon} name={'arrow-down'} />\n </div>\n <FlameGraphCanvas\n {...commonCanvasProps}\n root={levelsCallers[levelsCallers.length - 1][0]}\n depth={levelsCallers.length}\n direction={'parents'}\n // We do not support collapsing in sandwich view for now.\n collapsing={false}\n />\n </div>\n\n <div className={styles.sandwichCanvasWrapper}>\n <div className={cx(styles.sandwichMarker, styles.sandwichMarkerCalees)}>\n <Icon className={styles.sandwichMarkerIcon} name={'arrow-up'} />\n Callees\n </div>\n <FlameGraphCanvas\n {...commonCanvasProps}\n root={levels[0][0]}\n depth={levels.length}\n direction={'children'}\n collapsing={false}\n />\n </div>\n </>\n );\n } else if (levels?.length) {\n canvas = (\n <FlameGraphCanvas {...commonCanvasProps} root={levels[0][0]} depth={levels.length} direction={'children'} />\n );\n }\n\n return (\n <div className={styles.graph}>\n <FlameGraphMetadata\n data={data}\n focusedItem={focusedItemData}\n sandwichedLabel={sandwichItem}\n totalTicks={totalViewTicks}\n onFocusPillClick={onFocusPillClick}\n onSandwichPillClick={onSandwichPillClick}\n />\n {canvas}\n </div>\n );\n};\n\nconst getStyles = () => ({\n graph: css({\n label: 'graph',\n overflow: 'auto',\n flexGrow: 1,\n flexBasis: '50%',\n }),\n sandwichCanvasWrapper: css({\n label: 'sandwichCanvasWrapper',\n display: 'flex',\n marginBottom: `${PIXELS_PER_LEVEL / window.devicePixelRatio}px`,\n }),\n sandwichMarker: css({\n label: 'sandwichMarker',\n writingMode: 'vertical-lr',\n transform: 'rotate(180deg)',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n }),\n sandwichMarkerCalees: css({\n label: 'sandwichMarkerCalees',\n textAlign: 'right',\n }),\n sandwichMarkerIcon: css({\n label: 'sandwichMarkerIcon',\n verticalAlign: 'baseline',\n }),\n});\n\nexport default FlameGraph;\n","import { groupBy } from 'lodash';\n\nimport { LevelItem } from './dataTransform';\n\ntype DataInterface = {\n getLabel: (index: number) => string;\n};\n\n// Merge parent subtree of the roots for the callers tree in the sandwich view of the flame graph.\nexport function mergeParentSubtrees(roots: LevelItem[], data: DataInterface): LevelItem[][] {\n const newRoots = getParentSubtrees(roots);\n return mergeSubtrees(newRoots, data, 'parents');\n}\n\n// Returns a subtrees per root that will have the parents resized to the same value as the root. When doing callers\n// tree we need to keep proper sizes of the parents, before we merge them, so we correctly attribute to the parents\n// only the value it contributed to the root.\n// So if we have something like:\n// [0/////////////]\n// [1//][4/////][6]\n// [2] [5/////]\n// [6] [6/][8/]\n// [7]\n// Taking all the node with '6' will create:\n// [0][0/]\n// [1][4/]\n// [2][5/][0]\n// [6][6/][6]\n// Which we can later merge.\nfunction getParentSubtrees(roots: LevelItem[]) {\n return roots.map((r) => {\n if (!r.parents?.length) {\n return r;\n }\n\n const newRoot = {\n ...r,\n children: [],\n };\n const stack: Array<{ child: undefined | LevelItem; parent: LevelItem }> = [\n { child: newRoot, parent: r.parents[0] },\n ];\n\n while (stack.length) {\n const args = stack.shift()!;\n const newNode = {\n ...args.parent,\n children: args.child ? [args.child] : [],\n parents: [],\n };\n\n if (args.child) {\n newNode.value = args.child.value;\n args.child.parents = [newNode];\n }\n\n if (args.parent.parents?.length) {\n stack.push({ child: newNode, parent: args.parent.parents[0] });\n }\n }\n return newRoot;\n });\n}\n\n// Merge subtrees into a single tree. Returns an array of levels for easy rendering. It assumes roots are mergeable,\n// meaning they represent the same unit of work (same label). Then we walk the tree in a specified direction,\n// merging nodes with the same label and same parent/child into single bigger node. This copies the tree (and all nodes)\n// as we are creating new merged nodes and modifying the parents/children.\nexport function mergeSubtrees(\n roots: LevelItem[],\n data: DataInterface,\n direction: 'parents' | 'children' = 'children'\n): LevelItem[][] {\n const oppositeDirection = direction === 'parents' ? 'children' : 'parents';\n const levels: LevelItem[][] = [];\n\n // Loop instead of recursion to be sure we don't blow stack size limit and save some memory. Each stack item is\n // basically a list of arrays you would pass to each level of recursion.\n const stack: Array<{ previous: undefined | LevelItem; items: LevelItem[]; level: number }> = [\n { previous: undefined, items: roots, level: 0 },\n ];\n\n while (stack.length) {\n const args = stack.shift()!;\n const indexes = args.items.flatMap((i) => i.itemIndexes);\n const newItem: LevelItem = {\n // We use the items value instead of value from the data frame, cause we could have changed it in the process\n value: args.items.reduce((acc, i) => acc + i.value, 0),\n itemIndexes: indexes,\n // these will change later\n children: [],\n parents: [],\n start: 0,\n level: args.level,\n };\n\n levels[args.level] = levels[args.level] || [];\n levels[args.level].push(newItem);\n\n if (args.previous) {\n // Not the first level, so we need to make sure we update previous items to keep the child/parent relationships\n // and compute correct new start offset for the item.\n newItem[oppositeDirection] = [args.previous];\n const prevSiblingsVal =\n args.previous[direction]?.reduce((acc, node) => {\n return acc + node.value;\n }, 0) || 0;\n newItem.start = args.previous.start + prevSiblingsVal;\n args.previous[direction]!.push(newItem);\n }\n\n const nextItems = args.items.flatMap((i) => i[direction] || []);\n // Group by label which for now is the only identifier by which we decide if node represents the same unit of work.\n const nextGroups = groupBy(nextItems, (c) => data.getLabel(c.itemIndexes[0]));\n for (const g of Object.values(nextGroups)) {\n stack.push({ previous: newItem, items: g, level: args.level + 1 });\n }\n }\n\n // Reverse the levels if we are doing callers tree, so we return levels in the correct order.\n if (direction === 'parents') {\n levels.reverse();\n levels.forEach((level, index) => {\n level.forEach((item) => {\n item.level = index;\n });\n });\n }\n\n return levels;\n}\n","import {\n createTheme,\n DataFrame,\n DisplayProcessor,\n Field,\n FieldType,\n getDisplayProcessor,\n GrafanaTheme2,\n} from '@grafana/data';\n\nimport { SampleUnit } from '../types';\n\nimport { mergeParentSubtrees, mergeSubtrees } from './treeTransforms';\n\nexport type LevelItem = {\n // Offset from the start of the level.\n start: number;\n // Value here can be different from a value of items in the data frame as for callers tree in sandwich view we have\n // to trim the value to correspond only to the part used by the children in the subtree.\n // In case of diff profile this is actually left + right value.\n value: number;\n // Only exists for diff profiles.\n valueRight?: number;\n // Index into the data frame. It is an array because for sandwich views we may be merging multiple items into single\n // node.\n itemIndexes: number[];\n children: LevelItem[];\n level: number;\n parents?: LevelItem[];\n};\n\nexport type CollapseConfig = {\n items: LevelItem[];\n collapsed: boolean;\n};\n\n/**\n * Convert data frame with nested set format into array of level. This is mainly done for compatibility with current\n * rendering code.\n */\nexport function nestedSetToLevels(\n container: FlameGraphDataContainer,\n options?: Options\n): [LevelItem[][], Record<string, LevelItem[]>, CollapsedMap] {\n const levels: LevelItem[][] = [];\n let offset = 0;\n\n let parent: LevelItem | undefined = undefined;\n const uniqueLabels: Record<string, LevelItem[]> = {};\n\n for (let i = 0; i < container.data.length; i++) {\n const currentLevel = container.getLevel(i);\n const prevLevel = i > 0 ? container.getLevel(i - 1) : undefined;\n\n levels[currentLevel] = levels[currentLevel] || [];\n\n if (prevLevel && prevLevel >= currentLevel) {\n // 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.\n // So we have to compute the correct offset based on the last sibling.\n const lastSibling = levels[currentLevel][levels[currentLevel].length - 1];\n offset =\n lastSibling.start +\n container.getValue(lastSibling.itemIndexes[0]) +\n container.getValueRight(lastSibling.itemIndexes[0]);\n // we assume there is always a single root node so lastSibling should always have a parent.\n // Also it has to have the same parent because of how the items are ordered.\n parent = lastSibling.parents![0];\n }\n\n const newItem: LevelItem = {\n itemIndexes: [i],\n value: container.getValue(i) + container.getValueRight(i),\n valueRight: container.isDiffFlamegraph() ? container.getValueRight(i) : undefined,\n start: offset,\n parents: parent && [parent],\n children: [],\n level: currentLevel,\n };\n\n if (uniqueLabels[container.getLabel(i)]) {\n uniqueLabels[container.getLabel(i)].push(newItem);\n } else {\n uniqueLabels[container.getLabel(i)] = [newItem];\n }\n\n if (parent) {\n parent.children.push(newItem);\n }\n\n parent = newItem;\n levels[currentLevel].push(newItem);\n }\n\n const collapsedMapContainer = new CollapsedMapBuilder(options?.collapsingThreshold);\n if (options?.collapsing) {\n // We collapse similar items here, where it seems like parent and child are the same thing and so the distinction\n // isn't that important. We create a map of items that should be collapsed together. We need to do it with complete\n // tree as we need to know how many children an item has to know if we can collapse it.\n collapsedMapContainer.addTree(levels[0][0]);\n }\n\n return [levels, uniqueLabels, collapsedMapContainer.getCollapsedMap()];\n}\n\n/**\n * Small wrapper around the map of items that should be visually collapsed in the flame graph. Reason this is a wrapper\n * is that we want to make sure that when this is in the state we don't update the map directly but create a new map\n * and to have a place for the methods to collapse/expand either single item or all the items.\n */\nexport class CollapsedMap {\n // The levelItem used as a key is the item that will always be rendered in the flame graph. The config.items are all\n // the items that are in the group and if the config.collapsed is true they will be hidden.\n private map: Map<LevelItem, CollapseConfig> = new Map();\n\n constructor(map?: Map<LevelItem, CollapseConfig>) {\n this.map = map || new Map();\n }\n\n get(item: LevelItem) {\n return this.map.get(item);\n }\n\n keys() {\n return this.map.keys();\n }\n\n values() {\n return this.map.values();\n }\n\n size() {\n return this.map.size;\n }\n\n setCollapsedStatus(item: LevelItem, collapsed: boolean) {\n const newMap = new Map(this.map);\n const collapsedConfig = this.map.get(item)!;\n const newConfig = { ...collapsedConfig, collapsed };\n for (const item of collapsedConfig.items) {\n newMap.set(item, newConfig);\n }\n return new CollapsedMap(newMap);\n }\n\n setAllCollapsedStatus(collapsed: boolean) {\n const newMap = new Map(this.map);\n for (const item of this.map.keys()) {\n const collapsedConfig = this.map.get(item)!;\n const newConfig = { ...collapsedConfig, collapsed };\n newMap.set(item, newConfig);\n }\n\n return new CollapsedMap(newMap);\n }\n}\n\n/**\n * Similar to CollapsedMap but this one is mutable and used during transformation of the dataFrame data into structure\n * we use for rendering. This should not be passed to the React components.\n */\nexport class CollapsedMapBuilder {\n private map = new Map();\n private threshold = 0.99;\n\n constructor(threshold?: number) {\n if (threshold !== undefined) {\n this.threshold = threshold;\n }\n }\n\n addTree(root: LevelItem) {\n const stack = [root];\n while (stack.length) {\n const current = stack.shift()!;\n\n if (current.parents?.length) {\n this.addItem(current, current.parents[0]);\n }\n\n if (current.children.length) {\n stack.unshift(...current.children);\n }\n }\n }\n\n // The heuristics here is pretty simple right now. Just check if it's single child and if we are within threshold.\n // We assume items with small self just aren't too important while we cannot really collapse items with siblings\n // as it's not clear what to do with said sibling.\n addItem(item: LevelItem, parent?: LevelItem) {\n if (parent && item.value > parent.value * this.threshold && parent.children.length === 1) {\n if (this.map.has(parent)) {\n const config = this.map.get(parent)!;\n this.map.set(item, config);\n config.items.push(item);\n } else {\n const config = { items: [parent, item], collapsed: true };\n this.map.set(parent, config);\n this.map.set(item, config);\n }\n }\n }\n\n getCollapsedMap() {\n return new CollapsedMap(this.map);\n }\n}\n\nexport function getMessageCheckFieldsResult(wrongFields: CheckFieldsResult) {\n if (wrongFields.missingFields.length) {\n return `Data is missing fields: ${wrongFields.missingFields.join(', ')}`;\n }\n\n if (wrongFields.wrongTypeFields.length) {\n return `Data has fields of wrong type: ${wrongFields.wrongTypeFields\n .map((f) => `${f.name} has type ${f.type} but should be ${f.expectedTypes.join(' or ')}`)\n .join(', ')}`;\n }\n\n return '';\n}\n\nexport type CheckFieldsResult = {\n wrongTypeFields: Array<{ name: string; expectedTypes: FieldType[]; type: FieldType }>;\n missingFields: string[];\n};\n\nexport function checkFields(data: DataFrame): CheckFieldsResult | undefined {\n const fields: Array<[string, FieldType[]]> = [\n ['label', [FieldType.string, FieldType.enum]],\n ['level', [FieldType.number]],\n ['value', [FieldType.number]],\n ['self', [FieldType.number]],\n ];\n\n const missingFields = [];\n const wrongTypeFields = [];\n\n for (const field of fields) {\n const [name, types] = field;\n const frameField = data?.fields.find((f) => f.name === name);\n if (!frameField) {\n missingFields.push(name);\n continue;\n }\n if (!types.includes(frameField.type)) {\n wrongTypeFields.push({ name, expectedTypes: types, type: frameField.type });\n }\n }\n\n if (missingFields.length > 0 || wrongTypeFields.length > 0) {\n return {\n wrongTypeFields,\n missingFields,\n };\n }\n return undefined;\n}\n\nexport type Options = {\n collapsing: boolean;\n collapsingThreshold?: number;\n};\n\nexport class FlameGraphDataContainer {\n data: DataFrame;\n options: Options;\n\n labelField: Field;\n levelField: Field;\n valueField: Field;\n selfField: Field;\n\n // Optional fields for diff view\n valueRightField?: Field;\n selfRightField?: Field;\n\n labelDisplayProcessor: DisplayProcessor;\n valueDisplayProcessor: DisplayProcessor;\n uniqueLabels: string[];\n\n private levels: LevelItem[][] | undefined;\n private uniqueLabelsMap: Record<string, LevelItem[]> | undefined;\n private collapsedMap: CollapsedMap | undefined;\n\n constructor(data: DataFrame, options: Options, theme: GrafanaTheme2 = createTheme()) {\n this.data = data;\n this.options = options;\n\n const wrongFields = checkFields(data);\n if (wrongFields) {\n throw new Error(getMessageCheckFieldsResult(wrongFields));\n }\n\n this.labelField = data.fields.find((f) => f.name === 'label')!;\n this.levelField = data.fields.find((f) => f.name === 'level')!;\n this.valueField = data.fields.find((f) => f.name === 'value')!;\n this.selfField = data.fields.find((f) => f.name === 'self')!;\n\n this.valueRightField = data.fields.find((f) => f.name === 'valueRight')!;\n this.selfRightField = data.fields.find((f) => f.name === 'selfRight')!;\n\n if ((this.valueField || this.selfField) && !(this.valueField && this.selfField)) {\n throw new Error(\n 'Malformed dataFrame: both valueRight and selfRight has to be present if one of them is present.'\n );\n }\n\n const enumConfig = this.labelField?.config?.type?.enum;\n // Label can actually be an enum field so depending on that we have to access it through display processor. This is\n // both a backward compatibility but also to allow using a simple dataFrame without enum config. This would allow\n // users to use this panel with correct query from data sources that do not return profiles natively.\n if (enumConfig) {\n this.labelDisplayProcessor = getDisplayProcessor({ field: this.labelField, theme });\n this.uniqueLabels = enumConfig.text || [];\n } else {\n this.labelDisplayProcessor = (value) => ({\n text: value + '',\n numeric: 0,\n });\n this.uniqueLabels = [...new Set<string>(this.labelField.values)];\n }\n\n this.valueDisplayProcessor = getDisplayProcessor({\n field: this.valueField,\n theme,\n });\n }\n\n isDiffFlamegraph() {\n return Boolean(this.valueRightField && this.selfRightField);\n }\n\n getLabel(index: number) {\n return this.labelDisplayProcessor(this.labelField.values[index]).text;\n }\n\n getLevel(index: number) {\n return this.levelField.values[index];\n }\n\n getValue(index: number | number[]) {\n return fieldAccessor(this.valueField, index);\n }\n\n getValueRight(index: number | number[]) {\n return fieldAccessor(this.valueRightField, index);\n }\n\n getSelf(index: number | number[]) {\n return fieldAccessor(this.selfField, index);\n }\n\n getSelfRight(index: number | number[]) {\n return fieldAccessor(this.selfRightField, index);\n }\n\n getSelfDisplay(index: number | number[]) {\n return this.valueDisplayProcessor(this.getSelf(index));\n }\n\n getUniqueLabels() {\n return this.uniqueLabels;\n }\n\n getUnitTitle() {\n switch (this.valueField.config.unit) {\n case SampleUnit.Bytes:\n return 'RAM';\n case SampleUnit.Nanoseconds:\n return 'Time';\n }\n\n return 'Count';\n }\n\n getLevels() {\n this.initLevels();\n return this.levels!;\n }\n\n getSandwichLevels(label: string): [LevelItem[][], LevelItem[][]] {\n const nodes = this.getNodesWithLabel(label);\n\n if (!nodes?.length) {\n return [[], []];\n }\n\n const callers = mergeParentSubtrees(nodes, this);\n const callees = mergeSubtrees(nodes, this);\n\n return [callers, callees];\n }\n\n getNodesWithLabel(label: string) {\n this.initLevels();\n return this.uniqueLabelsMap![label];\n }\n\n getCollapsedMap() {\n this.initLevels();\n return this.collapsedMap!;\n }\n\n private initLevels() {\n if (!this.levels) {\n const [levels, uniqueLabelsMap, collapsedMap] = nestedSetToLevels(this, this.options);\n this.levels = levels;\n this.uniqueLabelsMap = uniqueLabelsMap;\n this.collapsedMap = collapsedMap;\n }\n }\n}\n\n// Access field value with either single index or array of indexes. This is needed as we sometimes merge multiple\n// into one, and we want to access aggregated values.\nfunction fieldAccessor(field: Field | undefined, index: number | number[]) {\n if (!field) {\n return 0;\n }\n let indexArray: number[] = typeof index === 'number' ? [index] : index;\n return indexArray.reduce((acc, index) => {\n return acc + field.values[index];\n }, 0);\n}\n","import { css, cx } from '@emotion/css';\nimport { useEffect, useState } from 'react';\nimport * as React from 'react';\nimport useDebounce from 'react-use/lib/useDebounce';\nimport usePrevious from 'react-use/lib/usePrevious';\n\nimport { GrafanaTheme2, SelectableValue } from '@grafana/data';\nimport { Button, ButtonGroup, Dropdown, Input, Menu, RadioButtonGroup, useStyles2 } from '@grafana/ui';\n\nimport { byPackageGradient, byValueGradient, diffColorBlindGradient, diffDefaultGradient } from './FlameGraph/colors';\nimport { CollapsedMap } from './FlameGraph/dataTransform';\nimport { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from './constants';\nimport { ColorScheme, ColorSchemeDiff, SelectedView, TextAlign } from './types';\n\ntype Props = {\n search: string;\n setSearch: (search: string) => void;\n selectedView: SelectedView;\n setSelectedView: (view: SelectedView) => void;\n containerWidth: number;\n onReset: () => void;\n textAlign: TextAlign;\n onTextAlignChange: (align: TextAlign) => void;\n showResetButton: boolean;\n colorScheme: ColorScheme | ColorSchemeDiff;\n onColorSchemeChange: (colorScheme: ColorScheme | ColorSchemeDiff) => void;\n stickyHeader: boolean;\n vertical?: boolean;\n isDiffMode: boolean;\n setCollapsedMap: (collapsedMap: CollapsedMap) => void;\n collapsedMap: CollapsedMap;\n\n extraHeaderElements?: React.ReactNode;\n};\n\nconst FlameGraphHeader = ({\n search,\n setSearch,\n selectedView,\n setSelectedView,\n containerWidth,\n onReset,\n textAlign,\n onTextAlignChange,\n showResetButton,\n colorScheme,\n onColorSchemeChange,\n stickyHeader,\n extraHeaderElements,\n vertical,\n isDiffMode,\n setCollapsedMap,\n collapsedMap,\n}: Props) => {\n const styles = useStyles2(getStyles);\n const [localSearch, setLocalSearch] = useSearchInput(search, setSearch);\n\n const suffix =\n localSearch !== '' ? (\n <Button\n icon=\"times\"\n fill=\"text\"\n size=\"sm\"\n onClick={() => {\n // We could set only one and wait them to sync but there is no need to debounce this.\n setSearch('');\n setLocalSearch('');\n }}\n >\n Clear\n </Button>\n ) : null;\n\n return (\n <div className={cx(styles.header, { [styles.stickyHeader]: stickyHeader })}>\n <div className={styles.inputContainer}>\n <Input\n value={localSearch || ''}\n onChange={(v) => {\n setLocalSearch(v.currentTarget.value);\n }}\n placeholder={'Search...'}\n suffix={suffix}\n />\n </div>\n\n <div className={styles.rightContainer}>\n {showResetButton && (\n <Button\n variant={'secondary'}\n fill={'outline'}\n size={'sm'}\n icon={'history-alt'}\n tooltip={'Reset focus and sandwich state'}\n onClick={() => {\n onReset();\n }}\n className={styles.buttonSpacing}\n aria-label={'Reset focus and sandwich state'}\n />\n )}\n <ColorSchemeButton value={colorScheme} onChange={onColorSchemeChange} isDiffMode={isDiffMode} />\n <ButtonGroup className={styles.buttonSpacing}>\n <Button\n variant={'secondary'}\n fill={'outline'}\n size={'sm'}\n tooltip={'Expand all groups'}\n onClick={() => {\n setCollapsedMap(collapsedMap.setAllCollapsedStatus(false));\n }}\n aria-label={'Expand all groups'}\n icon={'angle-double-down'}\n disabled={selectedView === SelectedView.TopTable}\n />\n <Button\n variant={'secondary'}\n fill={'outline'}\n size={'sm'}\n tooltip={'Collapse all groups'}\n onClick={() => {\n setCollapsedMap(collapsedMap.setAllCollapsedStatus(true));\n }}\n aria-label={'Collapse all groups'}\n icon={'angle-double-up'}\n disabled={selectedView === SelectedView.TopTable}\n />\n </ButtonGroup>\n <RadioButtonGroup<TextAlign>\n size=\"sm\"\n disabled={selectedView === SelectedView.TopTable}\n options={alignOptions}\n value={textAlign}\n onChange={onTextAlignChange}\n className={styles.buttonSpacing}\n />\n <RadioButtonGroup<SelectedView>\n size=\"sm\"\n options={getViewOptions(containerWidth, vertical)}\n value={selectedView}\n onChange={setSelectedView}\n />\n {extraHeaderElements && <div className={styles.extraElements}>{extraHeaderElements}</div>}\n </div>\n </div>\n );\n};\n\ntype ColorSchemeButtonProps = {\n value: ColorScheme | ColorSchemeDiff;\n onChange: (colorScheme: ColorScheme | ColorSchemeDiff) => void;\n isDiffMode: boolean;\n};\nfunction ColorSchemeButton(props: ColorSchemeButtonProps) {\n // TODO: probably create separate getStyles\n const styles = useStyles2(getStyles);\n let menu = (\n <Menu>\n <Menu.Item label=\"By package name\" onClick={() => props.onChange(ColorScheme.PackageBased)} />\n <Menu.Item label=\"By value\" onClick={() => props.onChange(ColorScheme.ValueBased)} />\n </Menu>\n );\n\n // Show a bit different gradient as a way to indicate selected value\n const colorDotStyle =\n {\n [ColorScheme.ValueBased]: styles.colorDotByValue,\n [ColorScheme.PackageBased]: styles.colorDotByPackage,\n [ColorSchemeDiff.DiffColorBlind]: styles.colorDotDiffColorBlind,\n [ColorSchemeDiff.Default]: styles.colorDotDiffDefault,\n }[props.value] || styles.colorDotByValue;\n\n let contents = <span className={cx(styles.colorDot, colorDotStyle)} />;\n\n if (props.isDiffMode) {\n menu = (\n <Menu>\n <Menu.Item label=\"Default (green to red)\" onClick={() => props.onChange(ColorSchemeDiff.Default)} />\n <Menu.Item label=\"Color blind (blue to red)\" onClick={() => props.onChange(ColorSchemeDiff.DiffColorBlind)} />\n </Menu>\n );\n\n contents = (\n <div className={cx(styles.colorDotDiff, colorDotStyle)}>\n <div>-100% (removed)</div>\n <div>0%</div>\n <div>+100% (added)</div>\n </div>\n );\n }\n\n return (\n <Dropdown overlay={menu}>\n <Button\n variant={'secondary'}\n fill={'outline'}\n size={'sm'}\n tooltip={'Change color scheme'}\n onClick={() => {}}\n className={styles.buttonSpacing}\n aria-label={'Change color scheme'}\n >\n {contents}\n </Button>\n </Dropdown>\n );\n}\n\nconst alignOptions: Array<SelectableValue<TextAlign>> = [\n { value: 'left', description: 'Align text left', icon: 'align-left' },\n { value: 'right', description: 'Align text right', icon: 'align-right' },\n];\n\nfunction getViewOptions(width: number, vertical?: boolean): Array<SelectableValue<SelectedView>> {\n let viewOptions: Array<{ value: SelectedView; label: string; description: string }> = [\n { value: SelectedView.TopTable, label: 'Top Table', description: 'Only show top table' },\n { value: SelectedView.FlameGraph, label: 'Flame Graph', description: 'Only show flame graph' },\n ];\n\n if (width >= MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH || vertical) {\n viewOptions.push({\n value: SelectedView.Both,\n label: 'Both',\n description: 'Show both the top table and flame graph',\n });\n }\n\n return viewOptions;\n}\n\nfunction useSearchInput(\n search: string,\n setSearch: (search: string) => void\n): [string | undefined, (search: string) => void] {\n const [localSearchState, setLocalSearchState] = useState(search);\n const prevSearch = usePrevious(search);\n\n // Debouncing cause changing parent search triggers rerender on both the flamegraph and table\n useDebounce(\n () => {\n setSearch(localSearchState);\n },\n 250,\n [localSearchState]\n );\n\n // Make sure we still handle updates from parent (from clicking on a table item for example). We check if the parent\n // search value changed to something that isn't our local value.\n useEffect(() => {\n if (prevSearch !== search && search !== localSearchState) {\n setLocalSearchState(search);\n }\n }, [search, prevSearch, localSearchState]);\n\n return [localSearchState, setLocalSearchState];\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n header: css({\n label: 'header',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n width: '100%',\n top: 0,\n gap: theme.spacing(1),\n marginTop: theme.spacing(1),\n }),\n stickyHeader: css({\n zIndex: theme.zIndex.navbarFixed,\n position: 'sticky',\n background: theme.colors.background.primary,\n }),\n inputContainer: css({\n label: 'inputContainer',\n flexGrow: 1,\n minWidth: '150px',\n maxWidth: '350px',\n }),\n rightContainer: css({\n label: 'rightContainer',\n display: 'flex',\n alignItems: 'flex-start',\n flexWrap: 'wrap',\n }),\n buttonSpacing: css({\n label: 'buttonSpacing',\n marginRight: theme.spacing(1),\n }),\n resetButton: css({\n label: 'resetButton',\n display: 'flex',\n marginRight: theme.spacing(2),\n }),\n resetButtonIconWrapper: css({\n label: 'resetButtonIcon',\n padding: '0 5px',\n color: theme.colors.text.disabled,\n }),\n colorDot: css({\n label: 'colorDot',\n display: 'inline-block',\n width: '10px',\n height: '10px',\n // eslint-disable-next-line @grafana/no-border-radius-literal\n borderRadius: '50%',\n }),\n colorDotDiff: css({\n label: 'colorDotDiff',\n display: 'flex',\n width: '200px',\n height: '12px',\n color: 'white',\n fontSize: 9,\n lineHeight: 1.3,\n fontWeight: 300,\n justifyContent: 'space-between',\n padding: '0 2px',\n // We have a specific sizing for this so probably makes sense to use hardcoded value here\n // eslint-disable-next-line @grafana/no-border-radius-literal\n borderRadius: '2px',\n }),\n colorDotByValue: css({\n label: 'colorDotByValue',\n background: byValueGradient,\n }),\n colorDotByPackage: css({\n label: 'colorDotByPackage',\n background: byPackageGradient,\n }),\n colorDotDiffDefault: css({\n label: 'colorDotDiffDefault',\n background: diffDefaultGradient,\n }),\n colorDotDiffColorBlind: css({\n label: 'colorDotDiffColorBlind',\n background: diffColorBlindGradient,\n }),\n extraElements: css({\n label: 'extraElements',\n marginLeft: theme.spacing(1),\n }),\n});\n\nexport default FlameGraphHeader;\n","import { css } from '@emotion/css';\nimport { memo, useMemo, useState } from 'react';\nimport AutoSizer from 'react-virtualized-auto-sizer';\n\nimport {\n applyFieldOverrides,\n DataFrame,\n DataLinkClickEvent,\n Field,\n FieldType,\n GrafanaTheme2,\n MappingType,\n} from '@grafana/data';\nimport {\n IconButton,\n Table,\n TableCellDisplayMode,\n TableCustomCellOptions,\n TableFieldOptions,\n TableSortByFieldState,\n useStyles2,\n useTheme2,\n} from '@grafana/ui';\n\nimport { diffColorBlindColors, diffDefaultColors } from '../FlameGraph/colors';\nimport { FlameGraphDataContainer } from '../FlameGraph/dataTransform';\nimport { TOP_TABLE_COLUMN_WIDTH } from '../constants';\nimport { ColorScheme, ColorSchemeDiff, TableData } from '../types';\n\ntype Props = {\n data: FlameGraphDataContainer;\n onSymbolClick: (symbol: string) => void;\n // This is used for highlighting the search button in case there is exact match.\n search?: string;\n // We use these to filter out rows in the table if users is doing text search.\n matchedLabels?: Set<string>;\n sandwichItem?: string;\n onSearch: (str: string) => void;\n onSandwich: (str?: string) => void;\n onTableSort?: (sort: string) => void;\n colorScheme: ColorScheme | ColorSchemeDiff;\n};\n\nconst FlameGraphTopTableContainer = memo(\n ({\n data,\n onSymbolClick,\n search,\n matchedLabels,\n onSearch,\n sandwichItem,\n onSandwich,\n onTableSort,\n colorScheme,\n }: Props) => {\n const table = useMemo(() => {\n // Group the data by label, we show only one row per label and sum the values\n // TODO: should be by filename + funcName + linenumber?\n let filteredTable: { [key: string]: TableData } = {};\n for (let i = 0; i < data.data.length; i++) {\n const value = data.getValue(i);\n const valueRight = data.getValueRight(i);\n const self = data.getSelf(i);\n const label = data.getLabel(i);\n\n // If user is doing text search we filter out labels in the same way we highlight them in flame graph.\n if (!matchedLabels || matchedLabels.has(label)) {\n filteredTable[label] = filteredTable[label] || {};\n filteredTable[label].self = filteredTable[label].self ? filteredTable[label].self + self : self;\n filteredTable[label].total = filteredTable[label].total ? filteredTable[label].total + value : value;\n filteredTable[label].totalRight = filteredTable[label].totalRight\n ? filteredTable[label].totalRight + valueRight\n : valueRight;\n }\n }\n return filteredTable;\n }, [data, matchedLabels]);\n\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n\n const [sort, setSort] = useState<TableSortByFieldState[]>([{ displayName: 'Self', desc: true }]);\n\n return (\n <div className={styles.topTableContainer} data-testid=\"topTable\">\n <AutoSizer style={{ width: '100%' }}>\n {({ width, height }) => {\n if (width < 3 || height < 3) {\n return null;\n }\n\n const frame = buildTableDataFrame(\n data,\n table,\n width,\n onSymbolClick,\n onSearch,\n onSandwich,\n theme,\n colorScheme,\n search,\n sandwichItem\n );\n return (\n <Table\n initialSortBy={sort}\n onSortByChange={(s) => {\n if (s && s.length) {\n onTableSort?.(s[0].displayName + '_' + (s[0].desc ? 'desc' : 'asc'));\n }\n setSort(s);\n }}\n data={frame}\n width={width}\n height={height}\n />\n );\n }}\n </AutoSizer>\n </div>\n );\n }\n);\n\nFlameGraphTopTableContainer.displayName = 'FlameGraphTopTableContainer';\n\nfunction buildTableDataFrame(\n data: FlameGraphDataContainer,\n table: { [key: string]: TableData },\n width: number,\n onSymbolClick: (str: string) => void,\n onSearch: (str: string) => void,\n onSandwich: (str?: string) => void,\n theme: GrafanaTheme2,\n colorScheme: ColorScheme | ColorSchemeDiff,\n search?: string,\n sandwichItem?: string\n): DataFrame {\n const actionField: Field = createActionField(onSandwich, onSearch, search, sandwichItem);\n\n const symbolField: Field = {\n type: FieldType.string,\n name: 'Symbol',\n values: [],\n config: {\n custom: { width: width - actionColumnWidth - TOP_TABLE_COLUMN_WIDTH * 2 },\n links: [\n {\n title: 'Highlight symbol',\n url: '',\n onClick: (e: DataLinkClickEvent) => {\n const field: Field = e.origin.field;\n const value = field.values[e.origin.rowIndex];\n onSymbolClick(value);\n },\n },\n ],\n },\n };\n\n let frame;\n\n if (data.isDiffFlamegraph()) {\n symbolField.config.custom.width = width - actionColumnWidth - TOP_TABLE_COLUMN_WIDTH * 3;\n\n const baselineField = createNumberField('Baseline', 'percent');\n const comparisonField = createNumberField('Comparison', 'percent');\n const diffField = createNumberField('Diff', 'percent');\n diffField.config.custom.cellOptions.type = TableCellDisplayMode.ColorText;\n\n const [removeColor, addColor] =\n colorScheme === ColorSchemeDiff.DiffColorBlind\n ? [diffColorBlindColors[0], diffColorBlindColors[2]]\n : [diffDefaultColors[0], diffDefaultColors[2]];\n\n diffField.config.mappings = [\n { type: MappingType.ValueToText, options: { [Infinity]: { text: 'new', color: addColor } } },\n { type: MappingType.ValueToText, options: { [-100]: { text: 'removed', color: removeColor } } },\n { type: MappingType.RangeToText, options: { from: 0, to: Infinity, result: { color: addColor } } },\n { type: MappingType.RangeToText, options: { from: -Infinity, to: 0, result: { color: removeColor } } },\n ];\n\n // For this we don't really consider sandwich view even though you can switch it on.\n const levels = data.getLevels();\n const totalTicks = levels.length ? levels[0][0].value : 0;\n const totalTicksRight = levels.length ? levels[0][0].valueRight : undefined;\n\n for (let key in table) {\n actionField.values.push(null);\n symbolField.values.push(key);\n\n const ticksLeft = table[key].total;\n const ticksRight = table[key].totalRight;\n\n // We are iterating over table of the data so totalTicksRight needs to be defined\n const totalTicksLeft = totalTicks - totalTicksRight!;\n\n const percentageLeft = Math.round((10000 * ticksLeft) / totalTicksLeft) / 100;\n const percentageRight = Math.round((10000 * ticksRight) / totalTicksRight!) / 100;\n\n const diff = ((percentageRight - percentageLeft) / percentageLeft) * 100;\n\n diffField.values.push(diff);\n baselineField.values.push(percentageLeft);\n comparisonField.values.push(percentageRight);\n }\n\n frame = {\n fields: [actionField, symbolField, baselineField, comparisonField, diffField],\n length: symbolField.values.length,\n };\n } else {\n const selfField = createNumberField('Self', data.selfField.config.unit);\n const totalField = createNumberField('Total', data.valueField.config.unit);\n\n for (let key in table) {\n actionField.values.push(null);\n symbolField.values.push(key);\n selfField.values.push(table[key].self);\n totalField.values.push(table[key].total);\n }\n\n frame = { fields: [actionField, symbolField, selfField, totalField], length: symbolField.values.length };\n }\n\n const dataFrames = applyFieldOverrides({\n data: [frame],\n fieldConfig: {\n defaults: {},\n overrides: [],\n },\n replaceVariables: (value: string) => value,\n theme,\n });\n\n return dataFrames[0];\n}\n\nfunction createNumberField(name: string, unit?: string): Field {\n const tableFieldOptions: TableFieldOptions = {\n width: TOP_TABLE_COLUMN_WIDTH,\n align: 'auto',\n inspect: false,\n cellOptions: { type: TableCellDisplayMode.Auto },\n };\n\n return {\n type: FieldType.number,\n name,\n values: [],\n config: {\n unit,\n custom: tableFieldOptions,\n },\n };\n}\n\nconst actionColumnWidth = 61;\n\nfunction createActionField(\n onSandwich: (str?: string) => void,\n onSearch: (str: string) => void,\n search?: string,\n sandwichItem?: string\n): Field {\n const options: TableCustomCellOptions = {\n type: TableCellDisplayMode.Custom,\n cellComponent: (props) => {\n return (\n <ActionCell\n frame={props.frame}\n onSandwich={onSandwich}\n onSearch={onSearch}\n search={search}\n sandwichItem={sandwichItem}\n rowIndex={props.rowIndex}\n />\n );\n },\n };\n\n const actionFieldTableConfig: TableFieldOptions = {\n filterable: false,\n width: actionColumnWidth,\n hideHeader: true,\n inspect: false,\n align: 'auto',\n cellOptions: options,\n };\n\n return {\n type: FieldType.number,\n name: 'actions',\n values: [],\n config: {\n custom: actionFieldTableConfig,\n },\n };\n}\n\ntype ActionCellProps = {\n frame: DataFrame;\n rowIndex: number;\n search?: string;\n sandwichItem?: string;\n onSearch: (symbol: string) => void;\n onSandwich: (symbol: string) => void;\n};\n\nfunction ActionCell(props: ActionCellProps) {\n const styles = getStylesActionCell();\n const symbol = props.frame.fields.find((f: Field) => f.name === 'Symbol')?.values[props.rowIndex];\n const isSearched = props.search === symbol;\n const isSandwiched = props.sandwichItem === symbol;\n\n return (\n <div className={styles.actionCellWrapper}>\n <IconButton\n className={styles.actionCellButton}\n name={'search'}\n variant={isSearched ? 'primary' : 'secondary'}\n tooltip={isSearched ? 'Clear from search' : 'Search for symbol'}\n aria-label={isSearched ? 'Clear from search' : 'Search for symbol'}\n onClick={() => {\n props.onSearch(isSearched ? '' : symbol);\n }}\n />\n <IconButton\n className={styles.actionCellButton}\n name={'gf-show-context'}\n tooltip={isSandwiched ? 'Remove from sandwich view' : 'Show in sandwich view'}\n variant={isSandwiched ? 'primary' : 'secondary'}\n aria-label={isSandwiched ? 'Remove from sandwich view' : 'Show in sandwich view'}\n onClick={() => {\n props.onSandwich(isSandwiched ? undefined : symbol);\n }}\n />\n </div>\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n topTableContainer: css({\n label: 'topTableContainer',\n padding: theme.spacing(1),\n backgroundColor: theme.colors.background.secondary,\n height: '100%',\n }),\n };\n};\n\nconst getStylesActionCell = () => {\n return {\n actionCellWrapper: css({\n label: 'actionCellWrapper',\n display: 'flex',\n height: '24px',\n }),\n actionCellButton: css({\n label: 'actionCellButton',\n marginRight: 0,\n width: '24px',\n }),\n };\n};\n\nexport default FlameGraphTopTableContainer;\n","import { css } from '@emotion/css';\nimport uFuzzy from '@leeoniya/ufuzzy';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport * as React from 'react';\nimport { useMeasure } from 'react-use';\n\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { ThemeContext } from '@grafana/ui';\n\nimport FlameGraph from './FlameGraph/FlameGraph';\nimport { GetExtraContextMenuButtonsFunction } from './FlameGraph/FlameGraphContextMenu';\nimport { CollapsedMap, FlameGraphDataContainer } from './FlameGraph/dataTransform';\nimport FlameGraphHeader from './FlameGraphHeader';\nimport FlameGraphTopTableContainer from './TopTable/FlameGraphTopTableContainer';\nimport { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from './constants';\nimport { ClickedItemData, ColorScheme, ColorSchemeDiff, SelectedView, TextAlign } from './types';\n\nconst ufuzzy = new uFuzzy();\n\nexport type Props = {\n /**\n * DataFrame with the profile data. The dataFrame needs to have the following fields:\n * label: string - the label of the node\n * level: number - the nesting level of the node\n * value: number - the total value of the node\n * self: number - the self value of the node\n * Optionally if it represents diff of 2 different profiles it can also have fields:\n * valueRight: number - the total value of the node in the right profile\n * selfRight: number - the self value of the node in the right profile\n */\n data?: DataFrame;\n\n /**\n * Whether the header should be sticky and be always visible on the top when scrolling.\n */\n stickyHeader?: boolean;\n\n /**\n * Provides a theme for the visualization on which colors and some sizes are based.\n */\n getTheme: () => GrafanaTheme2;\n\n /**\n * Various interaction hooks that can be used to report on the interaction.\n */\n onTableSymbolClick?: (symbol: string) => void;\n onViewSelected?: (view: string) => void;\n onTextAlignSelected?: (align: string) => void;\n onTableSort?: (sort: string) => void;\n\n /**\n * Elements that will be shown in the header on the right side of the header buttons. Useful for additional\n * functionality.\n */\n extraHeaderElements?: React.ReactNode;\n\n /**\n * Extra buttons that will be shown in the context menu when user clicks on a Node.\n */\n getExtraContextMenuButtons?: GetExtraContextMenuButtonsFunction;\n\n /**\n * If true the flamegraph will be rendered on top of the table.\n */\n vertical?: boolean;\n\n /**\n * If true only the flamegraph will be rendered.\n */\n showFlameGraphOnly?: boolean;\n\n /**\n * Disable behaviour where similar items in the same stack will be collapsed into single item.\n */\n disableCollapsing?: boolean;\n /**\n * Whether or not to keep any focused item when the profile data changes.\n */\n keepFocusOnDataChange?: boolean;\n};\n\nconst FlameGraphContainer = ({\n data,\n onTableSymbolClick,\n onViewSelected,\n onTextAlignSelected,\n onTableSort,\n getTheme,\n stickyHeader,\n extraHeaderElements,\n vertical,\n showFlameGraphOnly,\n disableCollapsing,\n keepFocusOnDataChange,\n getExtraContextMenuButtons,\n}: Props) => {\n const [focusedItemData, setFocusedItemData] = useState<ClickedItemData>();\n\n const [rangeMin, setRangeMin] = useState(0);\n const [rangeMax, setRangeMax] = useState(1);\n const [search, setSearch] = useState('');\n const [selectedView, setSelectedView] = useState(SelectedView.Both);\n const [sizeRef, { width: containerWidth }] = useMeasure<HTMLDivElement>();\n const [textAlign, setTextAlign] = useState<TextAlign>('left');\n // This is a label of the item because in sandwich view we group all items by label and present a merged graph\n const [sandwichItem, setSandwichItem] = useState<string>();\n const [collapsedMap, setCollapsedMap] = useState(new CollapsedMap());\n\n const theme = useMemo(() => getTheme(), [getTheme]);\n const dataContainer = useMemo((): FlameGraphDataContainer | undefined => {\n if (!data) {\n return;\n }\n\n const container = new FlameGraphDataContainer(data, { collapsing: !disableCollapsing }, theme);\n setCollapsedMap(container.getCollapsedMap());\n return container;\n }, [data, theme, disableCollapsing]);\n const [colorScheme, setColorScheme] = useColorScheme(dataContainer);\n const styles = getStyles(theme);\n const matchedLabels = useLabelSearch(search, dataContainer);\n\n // If user resizes window with both as the selected view\n useEffect(() => {\n if (\n containerWidth > 0 &&\n containerWidth < MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH &&\n selectedView === SelectedView.Both &&\n !vertical\n ) {\n setSelectedView(SelectedView.FlameGraph);\n }\n }, [selectedView, setSelectedView, containerWidth, vertical]);\n\n const resetFocus = useCallback(() => {\n setFocusedItemData(undefined);\n setRangeMin(0);\n setRangeMax(1);\n }, [setFocusedItemData, setRangeMax, setRangeMin]);\n\n const resetSandwich = useCallback(() => {\n setSandwichItem(undefined);\n }, [setSandwichItem]);\n\n useEffect(() => {\n if (!keepFocusOnDataChange) {\n resetFocus();\n resetSandwich();\n return;\n }\n\n if (dataContainer && focusedItemData) {\n const item = dataContainer.getNodesWithLabel(focusedItemData.label)?.[0];\n\n if (item) {\n setFocusedItemData({ ...focusedItemData, item });\n\n const levels = dataContainer.getLevels();\n const totalViewTicks = levels.length ? levels[0][0].value : 0;\n setRangeMin(item.start / totalViewTicks);\n setRangeMax((item.start + item.value) / totalViewTicks);\n } else {\n setFocusedItemData({\n ...focusedItemData,\n item: {\n start: 0,\n value: 0,\n itemIndexes: [],\n children: [],\n level: 0,\n },\n });\n\n setRangeMin(0);\n setRangeMax(1);\n }\n }\n }, [dataContainer, keepFocusOnDataChange]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const onSymbolClick = useCallback(\n (symbol: string) => {\n if (search === symbol) {\n setSearch('');\n } else {\n onTableSymbolClick?.(symbol);\n setSearch(symbol);\n resetFocus();\n }\n },\n [setSearch, resetFocus, onTableSymbolClick, search]\n );\n\n if (!dataContainer) {\n return null;\n }\n\n const flameGraph = (\n <FlameGraph\n data={dataContainer}\n rangeMin={rangeMin}\n rangeMax={rangeMax}\n matchedLabels={matchedLabels}\n setRangeMin={setRangeMin}\n setRangeMax={setRangeMax}\n onItemFocused={(data) => setFocusedItemData(data)}\n focusedItemData={focusedItemData}\n textAlign={textAlign}\n sandwichItem={sandwichItem}\n onSandwich={(label: string) => {\n resetFocus();\n setSandwichItem(label);\n }}\n onFocusPillClick={resetFocus}\n onSandwichPillClick={resetSandwich}\n colorScheme={colorScheme}\n showFlameGraphOnly={showFlameGraphOnly}\n collapsing={!disableCollapsing}\n getExtraContextMenuButtons={getExtraContextMenuButtons}\n selectedView={selectedView}\n search={search}\n collapsedMap={collapsedMap}\n setCollapsedMap={setCollapsedMap}\n />\n );\n\n const table = (\n <FlameGraphTopTableContainer\n data={dataContainer}\n onSymbolClick={onSymbolClick}\n search={search}\n matchedLabels={matchedLabels}\n sandwichItem={sandwichItem}\n onSandwich={setSandwichItem}\n onSearch={setSearch}\n onTableSort={onTableSort}\n colorScheme={colorScheme}\n />\n );\n\n let body;\n if (showFlameGraphOnly || selectedView === SelectedView.FlameGraph) {\n body = flameGraph;\n } else if (selectedView === SelectedView.TopTable) {\n body = <div className={styles.tableContainer}>{table}</div>;\n } else if (selectedView === SelectedView.Both) {\n if (vertical) {\n body = (\n <div>\n <div className={styles.verticalGraphContainer}>{flameGraph}</div>\n <div className={styles.verticalTableContainer}>{table}</div>\n </div>\n );\n } else {\n body = (\n <div className={styles.horizontalContainer}>\n <div className={styles.horizontalTableContainer}>{table}</div>\n <div className={styles.horizontalGraphContainer}>{flameGraph}</div>\n </div>\n );\n }\n }\n\n return (\n // We add the theme context to bridge the gap if this is rendered in non grafana environment where the context\n // isn't already provided.\n <ThemeContext.Provider value={theme}>\n <div ref={sizeRef} className={styles.container}>\n {!showFlameGraphOnly && (\n <FlameGraphHeader\n search={search}\n setSearch={setSearch}\n selectedView={selectedView}\n setSelectedView={(view) => {\n setSelectedView(view);\n onViewSelected?.(view);\n }}\n containerWidth={containerWidth}\n onReset={() => {\n resetFocus();\n resetSandwich();\n }}\n textAlign={textAlign}\n onTextAlignChange={(align) => {\n setTextAlign(align);\n onTextAlignSelected?.(align);\n }}\n showResetButton={Boolean(focusedItemData || sandwichItem)}\n colorScheme={colorScheme}\n onColorSchemeChange={setColorScheme}\n stickyHeader={Boolean(stickyHeader)}\n extraHeaderElements={extraHeaderElements}\n vertical={vertical}\n isDiffMode={dataContainer.isDiffFlamegraph()}\n setCollapsedMap={setCollapsedMap}\n collapsedMap={collapsedMap}\n />\n )}\n\n <div className={styles.body}>{body}</div>\n </div>\n </ThemeContext.Provider>\n );\n};\n\nfunction useColorScheme(dataContainer: FlameGraphDataContainer | undefined) {\n const defaultColorScheme = dataContainer?.isDiffFlamegraph() ? ColorSchemeDiff.Default : ColorScheme.PackageBased;\n const [colorScheme, setColorScheme] = useState<ColorScheme | ColorSchemeDiff>(defaultColorScheme);\n\n // This makes sure that if we change the data to/from diff profile we reset the color scheme.\n useEffect(() => {\n setColorScheme(defaultColorScheme);\n }, [defaultColorScheme]);\n\n return [colorScheme, setColorScheme] as const;\n}\n\n/**\n * Based on the search string it does a fuzzy search over all the unique labels, so we can highlight them later.\n */\nfunction useLabelSearch(\n search: string | undefined,\n data: FlameGraphDataContainer | undefined\n): Set<string> | undefined {\n return useMemo(() => {\n if (search && data) {\n const foundLabels = new Set<string>();\n let idxs = ufuzzy.filter(data.getUniqueLabels(), search);\n\n if (idxs) {\n for (let idx of idxs) {\n foundLabels.add(data.getUniqueLabels()[idx]);\n }\n }\n\n return foundLabels;\n }\n // In this case undefined means there was no search so no attempt to highlighting anything should be made.\n return undefined;\n }, [search, data]);\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n label: 'container',\n overflow: 'auto',\n height: '100%',\n display: 'flex',\n flex: '1 1 0',\n flexDirection: 'column',\n minHeight: 0,\n gap: theme.spacing(1),\n }),\n body: css({\n label: 'body',\n flexGrow: 1,\n }),\n\n tableContainer: css({\n // This is not ideal for dashboard panel where it creates a double scroll. In a panel it should be 100% but then\n // in explore we need a specific height.\n height: 800,\n }),\n\n horizontalContainer: css({\n label: 'horizontalContainer',\n display: 'flex',\n minHeight: 0,\n flexDirection: 'row',\n columnGap: theme.spacing(1),\n width: '100%',\n }),\n\n horizontalGraphContainer: css({\n flexBasis: '50%',\n }),\n\n horizontalTableContainer: css({\n flexBasis: '50%',\n maxHeight: 800,\n }),\n\n verticalGraphContainer: css({\n marginBottom: theme.spacing(1),\n }),\n\n verticalTableContainer: css({\n height: 800,\n }),\n };\n}\n\nexport default FlameGraphContainer;\n","import { DataFrameDTO } from '@grafana/data';\n\nexport const data: DataFrameDTO = {\n name: 'response',\n refId: 'A',\n // @ts-ignore\n meta: { preferredVisualisationType: 'flamegraph' },\n fields: [\n {\n name: 'level',\n values: [\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 23, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4,\n ],\n },\n {\n name: 'value',\n values: [\n 16460000000, 4100000000, 4100000000, 3670000000, 1130000000, 1060000000, 1020000000, 150000000, 150000000,\n 50000000, 30000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 80000000, 40000000, 10000000, 10000000, 530000000, 80000000, 40000000, 70000000,\n 50000000, 50000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000,\n 390000000, 390000000, 180000000, 70000000, 50000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 20000000, 10000000, 10000000, 10000000, 110000000, 80000000, 60000000,\n 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 20000000, 10000000, 10000000, 30000000, 20000000, 40000000, 30000000, 20000000, 10000000, 10000000, 40000000,\n 40000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 210000000, 210000000, 210000000,\n 130000000, 130000000, 10000000, 50000000, 40000000, 40000000, 70000000, 10000000, 40000000, 1840000000,\n 240000000, 240000000, 50000000, 10000000, 10000000, 190000000, 130000000, 50000000, 20000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 80000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 60000000, 10000000, 1330000000, 1290000000, 320000000, 10000000,\n 10000000, 10000000, 130000000, 10000000, 10000000, 60000000, 30000000, 100000000, 40000000, 10000000, 10000000,\n 40000000, 30000000, 10000000, 10000000, 70000000, 10000000, 10000000, 50000000, 40000000, 10000000, 30000000,\n 20000000, 10000000, 430000000, 430000000, 430000000, 430000000, 10000000, 40000000, 20000000, 370000000,\n 20000000, 10000000, 180000000, 10000000, 30000000, 10000000, 10000000, 10000000, 5630000000, 5580000000,\n 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5540000000, 5540000000,\n 5530000000, 5510000000, 5500000000, 5490000000, 5490000000, 1610000000, 1610000000, 1540000000, 1540000000,\n 190000000, 170000000, 170000000, 10000000, 20000000, 120000000, 10000000, 10000000, 20000000, 20000000,\n 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 850000000, 350000000, 300000000, 120000000, 110000000, 80000000, 20000000, 10000000, 80000000,\n 40000000, 20000000, 10000000, 10000000, 50000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000,\n 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 370000000, 40000000, 20000000, 10000000, 100000000,\n 10000000, 10000000, 10000000, 30000000, 30000000, 80000000, 20000000, 10000000, 10000000, 10000000, 40000000,\n 10000000, 10000000, 10000000, 20000000, 10000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 110000000, 110000000, 60000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 480000000, 150000000, 10000000, 130000000, 10000000, 10000000,\n 50000000, 140000000, 80000000, 40000000, 10000000, 10000000, 20000000, 10000000, 10000000, 20000000, 120000000,\n 60000000, 40000000, 10000000, 10000000, 10000000, 10000000, 20000000, 30000000, 30000000, 20000000, 20000000,\n 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 60000000, 60000000, 60000000, 60000000,\n 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 30000000, 30000000, 30000000, 30000000,\n 30000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 3880000000, 3880000000, 3880000000,\n 3880000000, 3870000000, 3230000000, 3230000000, 3210000000, 320000000, 70000000, 70000000, 40000000, 40000000,\n 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000,\n 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000,\n 20000000, 20000000, 70000000, 60000000, 20000000, 30000000, 10000000, 10000000, 10000000, 100000000, 20000000,\n 50000000, 1850000000, 410000000, 110000000, 110000000, 90000000, 60000000, 60000000, 40000000, 20000000,\n 20000000, 20000000, 30000000, 30000000, 30000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000,\n 20000000, 20000000, 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 30000000, 20000000, 10000000,\n 40000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 40000000, 10000000, 80000000, 30000000, 30000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 20000000, 60000000, 30000000, 30000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 160000000, 120000000, 20000000, 100000000, 50000000, 10000000, 10000000,\n 640000000, 10000000, 550000000, 410000000, 80000000, 60000000, 260000000, 20000000, 170000000, 60000000,\n 30000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 20000000, 50000000, 40000000, 10000000,\n 10000000, 10000000, 70000000, 30000000, 40000000, 290000000, 90000000, 30000000, 10000000, 10000000, 10000000,\n 10000000, 210000000, 20000000, 10000000, 10000000, 10000000, 120000000, 90000000, 90000000, 60000000, 10000000,\n 30000000, 30000000, 30000000, 30000000, 10000000, 20000000, 50000000, 10000000, 10000000, 10000000, 280000000,\n 150000000, 150000000, 150000000, 60000000, 30000000, 80000000, 50000000, 20000000, 20000000, 20000000, 20000000,\n 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 130000000, 130000000, 130000000, 70000000, 30000000, 30000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 40000000, 10000000, 590000000, 20000000,\n 20000000, 10000000, 40000000, 150000000, 30000000, 30000000, 120000000, 10000000, 80000000, 370000000,\n 260000000, 40000000, 150000000, 110000000, 90000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 70000000, 60000000,\n 20000000, 20000000, 640000000, 640000000, 250000000, 250000000, 230000000, 180000000, 170000000, 170000000,\n 170000000, 170000000, 50000000, 10000000, 40000000, 10000000, 10000000, 60000000, 60000000, 10000000, 30000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 50000000, 50000000, 20000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 390000000,\n 60000000, 40000000, 30000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 30000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 90000000, 10000000, 10000000, 60000000, 10000000, 40000000,\n 40000000, 40000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 180000000, 170000000, 50000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 30000000, 30000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 90000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 70000000, 70000000,\n 70000000, 70000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000,\n 20000000, 20000000, 20000000, 10000000, 40000000, 40000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000, 10000000, 6190000000, 6170000000,\n 6170000000, 6070000000, 4460000000, 10000000, 50000000, 440000000, 540000000, 20000000, 10000000, 10000000,\n 10000000, 980000000, 10000000, 50000000, 480000000, 540000000, 50000000, 210000000, 30000000, 30000000,\n 60000000, 180000000, 10000000, 210000000, 20000000, 20000000, 20000000, 100000000, 20000000, 20000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 40000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000,\n 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 170000000, 160000000, 70000000, 30000000,\n 10000000, 40000000, 10000000, 170000000, 90000000, 90000000, 70000000, 20000000, 10000000, 30000000, 30000000,\n 30000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 80000000,\n 10000000, 10000000, 70000000, 60000000, 10000000, 10000000, 20000000, 20000000, 20000000, 10000000, 80000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000,\n 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 50000000, 50000000, 50000000, 50000000, 50000000,\n 50000000, 50000000, 10000000, 10000000, 10000000, 60000000, 60000000, 60000000, 60000000, 60000000, 60000000,\n 60000000, 40000000, 40000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n 10000000, 10000000,\n ],\n config: {\n unit: 'short',\n },\n },\n {\n name: 'self',\n values: [\n 16460, 4100, 4100, 3670, 1130, 1060, 1020, 150, 150, 50, 30, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 80,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 180, 10, 30, 10, 10, 10, 5630, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5540, 5540, 5530, 5510, 5500,\n 5490, 5490, 1610, 1610, 1540, 1540, 190, 170, 170, 10, 20, 120, 10, 10, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 10, 10, 10, 10,\n ],\n config: {\n unit: 'short',\n },\n },\n {\n name: 'label',\n values: [\n 'total',\n 'test/pkg/agent.(*Target).start.func1',\n 'test/pkg/agent.(*Target).scrape',\n 'test/pkg/distributor.(*Distributor).Push',\n 'compress/gzip.(*Writer).Write',\n 'compress/flate.(*compressor).write',\n 'compress/flate.(*compressor).deflate',\n 'compress/flate.(*compressor).writeBlock',\n 'compress/flate.(*huffmanBitWriter).writeBlock',\n 'compress/flate.(*huffmanBitWriter).indexTokens',\n 'compress/flate.(*huffmanEncoder).generate',\n 'compress/flate.(*huffmanEncoder).bitCounts',\n 'runtime.memmove',\n 'compress/flate.(*huffmanEncoder).assignEncodingAndSize',\n 'sort.Sort',\n 'sort.quickSort',\n 'sort.quickSort',\n 'sort.quickSort',\n 'sort.insertionSort',\n 'compress/flate.(*byFreq).sort',\n 'sort.Sort',\n 'sort.quickSort',\n 'sort.doPivot',\n 'compress/flate.(*huffmanBitWriter).writeTokens',\n 'compress/flate.(*huffmanBitWriter).writeCode',\n 'compress/flate.offsetCode',\n 'compress/flate.(*huffmanBitWriter).dynamicSize',\n 'compress/flate.(*compressor).findMatch',\n 'compress/flate.matchLen',\n 'compress/flate.hash4',\n 'compress/flate.NewWriter',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointers',\n 'runtime.gcAssistAlloc',\n 'runtime.systemstack',\n 'runtime.gcAssistAlloc.func1',\n 'runtime.gcAssistAlloc1',\n 'runtime.gcDrainN',\n 'runtime.scanobject',\n 'runtime.heapBitsSetType',\n 'runtime.heapBitsSetTypeGCProg',\n 'runtime.runGCProg',\n 'compress/flate.(*compressor).initDeflate',\n 'runtime.makeslice',\n 'runtime.mallocgc',\n 'runtime.gcAssistAlloc',\n 'runtime.systemstack',\n 'runtime.gcAssistAlloc.func1',\n 'runtime.gcAssistAlloc1',\n 'runtime.gcDrainN',\n 'runtime.scanobject',\n 'runtime.pageIndexOf',\n 'test/pkg/pprof.OpenRaw',\n 'test/pkg/gen/google/v1.(*Profile).UnmarshalVT',\n 'test/pkg/gen/google/v1.(*Sample).UnmarshalVT',\n 'runtime.makeslice',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointers',\n 'runtime.(*mcache).nextFree',\n 'runtime.(*mcache).refill',\n 'runtime.(*mcentral).uncacheSpan',\n 'runtime.(*spanSet).push',\n 'runtime.(*mcentral).cacheSpan',\n 'runtime.(*mcentral).grow',\n 'runtime.(*mheap).alloc',\n 'runtime.getMCache',\n 'runtime.nextFreeFast',\n 'runtime.newobject',\n 'runtime.nextFreeFast',\n 'runtime.mallocgc',\n 'runtime.growslice',\n 'test/pkg/gen/google/v1.(*Location).UnmarshalVT',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.heapBitsForAddr',\n 'runtime.(*mcache).nextFree',\n 'runtime.(*mcache).refill',\n 'runtime.(*mcentral).cacheSpan',\n 'runtime.(*mcentral).grow',\n 'runtime.(*mheap).alloc',\n 'runtime.systemstack',\n 'runtime.(*mheap).alloc.func1',\n 'runtime.(*mheap).allocSpan',\n 'runtime.(*mheap).allocMSpanLocked',\n 'runtime.(*fixalloc).alloc',\n 'runtime.heapBitsSetType',\n 'runtime.nextFreeFast',\n 'runtime.getMCache',\n 'runtime.growslice',\n 'runtime.mallocgc',\n 'runtime.growslice',\n 'runtime.mallocgc',\n 'runtime.heapBitsSetType',\n 'runtime.memclrNoHeapPointers',\n 'runtime.memmove',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.heapBitsSetType',\n 'runtime.memclrNoHeapPointers',\n 'runtime.(*mcache).nextFree',\n 'runtime.(*mcache).refill',\n 'runtime.(*mcentral).uncacheSpan',\n 'runtime.(*spanSet).push',\n 'runtime.(*headTailIndex).incTail',\n 'compress/gzip.(*Writer).Close',\n 'compress/flate.(*compressor).close',\n 'compress/flate.(*compressor).deflate',\n 'compress/flate.(*compressor).writeBlock',\n 'compress/flate.(*huffmanBitWriter).writeBlock',\n 'compress/flate.offsetCode',\n 'compress/flate.(*huffmanBitWriter).indexTokens',\n 'compress/flate.(*huffmanEncoder).generate',\n 'compress/flate.(*huffmanEncoder).bitCounts',\n 'compress/flate.(*huffmanBitWriter).writeTokens',\n 'compress/flate.(*huffmanBitWriter).writeCode',\n 'compress/flate.(*compressor).findMatch',\n 'test/pkg/pprof.(*Profile).Normalize',\n 'sort.Sort',\n 'sort.quickSort',\n 'sort.doPivot',\n 'test/pkg/pprof.(*sortedSample).Less',\n 'test/pkg/pprof.(*sortedSample).Swap',\n 'sort.quickSort',\n 'sort.quickSort',\n 'sort.quickSort',\n 'sort.quickSort',\n 'sort.quickSort',\n 'sort.insertionSort',\n 'test/pkg/pprof.(*sortedSample).Less',\n 'sort.doPivot',\n 'sort.insertionSort',\n 'test/pkg/pprof.(*sortedSample).Swap',\n 'sort.doPivot',\n 'test/pkg/pprof.(*sortedSample).Less',\n 'test/pkg/pprof.(*sortedSample).Swap',\n 'runtime.gcWriteBarrierR8',\n 'runtime.gcWriteBarrier',\n 'runtime.wbBufFlush',\n 'runtime.systemstack',\n 'runtime.wbBufFlush.func1',\n 'runtime.wbBufFlush1',\n 'runtime.findObject',\n 'sort.doPivot',\n 'test/pkg/pprof.(*sortedSample).Less',\n 'test/pkg/pprof.(*Profile).clearSampleReferences',\n 'test/pkg/slices.RemoveInPlace[...]',\n 'test/pkg/pprof.(*Profile).clearSampleReferences.func1',\n 'runtime.growslice',\n 'runtime.memmove',\n 'runtime.memmove',\n 'test/pkg/pprof.StacktracesHasher.Hashes',\n 'github.com/cespare/xxhash/v2.round',\n 'github.com/cespare/xxhash/v2.(*Digest).Sum64',\n 'github.com/cespare/xxhash/v2.(*Digest).Write',\n 'github.com/cespare/xxhash/v2.u64',\n 'github.com/samber/lo.Uniq[...]',\n 'runtime.mapaccess2_fast64',\n 'runtime.memhash64',\n 'runtime.bucketMask',\n 'test/pkg/slices.RemoveInPlace[...]',\n 'test/pkg/pprof.(*Profile).Normalize.func1',\n 'test/pkg/slices.RemoveInPlace[...]',\n 'test/pkg/pprof.(*Profile).Normalize.func1.1',\n 'test/pkg/gen/google/v1.(*Profile).MarshalToVT',\n 'test/pkg/gen/google/v1.(*Profile).MarshalToSizedBufferVT',\n 'test/pkg/gen/google/v1.(*Sample).MarshalToSizedBufferVT',\n 'test/pkg/gen/google/v1.(*Profile).SizeVT',\n 'test/pkg/gen/google/v1.(*Sample).SizeVT',\n 'test/pkg/gen/google/v1.encodeVarint',\n 'test/pkg/gen/google/v1.(*Profile).SizeVT',\n 'test/pkg/gen/google/v1.(*Location).SizeVT',\n 'test/pkg/gen/google/v1.(*Sample).SizeVT',\n 'io/ioutil.ReadAll',\n 'io.ReadAll',\n 'compress/gzip.(*Reader).Read',\n 'compress/flate.(*decompressor).Read',\n 'runtime.memmove',\n 'compress/flate.(*dictDecoder).tryWriteCopy',\n 'runtime.memmove',\n 'compress/flate.(*decompressor).huffmanBlock',\n 'compress/flate.(*dictDecoder).writeCopy',\n 'runtime.memmove',\n 'compress/flate.(*decompressor).huffSym',\n 'bytes.(*Reader).ReadByte',\n 'compress/flate.(*decompressor).moreBits',\n 'compress/flate.(*decompressor).nextBlock',\n 'compress/flate.(*decompressor).huffmanBlock',\n 'compress/flate.(*decompressor).moreBits',\n 'net/http.(*conn).serve',\n 'net/http.serverHandler.ServeHTTP',\n 'net/http.HandlerFunc.ServeHTTP',\n 'test/pkg/util.glob..func1.1',\n 'golang.org/x/net/http2/h2c.h2cHandler.ServeHTTP',\n 'net/http.HandlerFunc.ServeHTTP',\n 'test/pkg/create.(*create).initServer.func2.1',\n 'net/http.HandlerFunc.ServeHTTP',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.MiddlewareFunc.func5',\n 'net/http.HandlerFunc.ServeHTTP',\n 'github.com/weaveworks/common/middleware.Log.Wrap.func1',\n 'net/http.HandlerFunc.ServeHTTP',\n 'github.com/weaveworks/common/middleware.Instrument.Wrap.func1',\n 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics',\n 'github.com/weaveworks/common/middleware.Instrument.Wrap.func1.2',\n 'github.com/gorilla/mux.(*Router).ServeHTTP',\n 'github.com/bufbuild/connect-go.(*Handler).ServeHTTP',\n 'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1',\n 'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1.1',\n 'test/pkg/ingester.(*Ingester).Push',\n 'io.ReadAll',\n 'github.com/klauspost/compress/gzip.(*Reader).Read',\n 'github.com/klauspost/compress/flate.(*decompressor).Read',\n 'github.com/klauspost/compress/flate.(*dictDecoder).tryWriteCopy',\n 'github.com/klauspost/compress/flate.(*dictDecoder).writeByte',\n 'github.com/klauspost/compress/flate.(*decompressor).huffmanBytesReader',\n 'github.com/klauspost/compress/flate.(*dictDecoder).writeCopy',\n 'runtime.memmove',\n 'github.com/klauspost/compress/flate.(*decompressor).nextBlock',\n 'github.com/klauspost/compress/flate.(*decompressor).huffmanBytesReader',\n 'runtime.growslice',\n 'runtime.memmove',\n 'runtime.mallocgc',\n 'runtime.(*mcache).allocLarge',\n 'runtime.(*mheap).alloc',\n 'runtime.systemstack',\n 'runtime.(*mheap).alloc.func1',\n 'runtime.(*mheap).allocSpan',\n 'runtime.(*pageAlloc).alloc',\n 'runtime.(*pageAlloc).allocRange',\n 'runtime.(*pageAlloc).update',\n 'runtime.(*pallocBits).summarize',\n 'test/pkg/create.(*Head).Ingest',\n 'test/pkg/create.(*Head).convertSamples',\n 'test/pkg/create.(*deduplicatingSlice[...]).ingest',\n 'test/pkg/create.(*stacktracesHelper).rewrite',\n 'test/pkg/create.idConversionTable.rewriteUint64',\n 'runtime.mapaccess2_fast64',\n 'runtime.memhash64',\n 'runtime.add',\n 'test/pkg/create.(*stacktracesHelper).key',\n 'github.com/cespare/xxhash/v2.(*Digest).Write',\n 'runtime.memmove',\n 'github.com/cespare/xxhash/v2.round',\n 'runtime.mapaccess2_fast64',\n 'runtime.mapassign_fast64',\n 'runtime.hashGrow',\n 'runtime.makeBucketArray',\n 'runtime.newarray',\n 'runtime.mallocgc',\n 'runtime.profilealloc',\n 'runtime.mProf_Malloc',\n 'runtime.callers',\n 'runtime.systemstack',\n 'runtime.callers.func1',\n 'runtime.gentraceback',\n 'runtime.findfunc',\n 'runtime.(*hmap).newoverflow',\n 'runtime.growslice',\n 'runtime.releasem',\n 'runtime.growWork_fast64',\n 'runtime.evacuate_fast64',\n 'encoding/binary.littleEndian.PutUint64',\n 'runtime.newobject',\n 'runtime.acquirem',\n 'runtime.mallocgc',\n 'runtime.heapBitsSetType',\n 'test/pkg/create.(*labelCache).rewriteLabels',\n 'runtime.mapaccess1_fast64',\n 'test/pkg/create.(*deduplicatingSlice[...]).ingest',\n 'runtime.mapaccess2_faststr',\n 'aeshashbody',\n 'memeqbody',\n 'runtime.mapassign_fast64',\n 'runtime.(*hmap).newoverflow',\n 'runtime.growslice',\n 'runtime.nextFreeFast',\n 'runtime.growWork_fast64',\n 'runtime.evacuate_fast64',\n 'runtime.mapaccess2',\n 'memeqbody',\n 'runtime.memhash_varlen',\n 'aeshashbody',\n 'runtime.evacuated',\n 'test/pkg/create.(*locationsHelper).key',\n 'github.com/cespare/xxhash/v2.(*Digest).Sum64',\n 'github.com/cespare/xxhash/v2.(*Digest).Write',\n 'runtime.bucketShift',\n 'test/pkg/create.(*stringsHelper).addToRewriter',\n 'encoding/binary.littleEndian.PutUint64',\n 'runtime.add',\n 'test/pkg/create.(*locationsHelper).rewrite',\n 'test/pkg/create.idConversionTable.rewriteUint64',\n 'runtime.mapaccess2_fast64',\n 'github.com/prometheus/client_golang/prometheus.(*CounterVec).WithLabelValues',\n 'github.com/prometheus/client_golang/prometheus.(*MetricVec).GetMetricWithLabelValues',\n 'github.com/prometheus/client_golang/prometheus.(*MetricVec).hashLabelValues',\n 'github.com/prometheus/client_golang/prometheus.hashAdd',\n 'test/pkg/create.(*deltaProfiles).computeDelta',\n 'test/pkg/create.deltaSamples',\n 'runtime.mapassign_fast64',\n 'runtime.growWork_fast64',\n 'runtime.evacuate_fast64',\n 'runtime.typedmemmove',\n 'runtime.bulkBarrierPreWrite',\n 'runtime.hashGrow',\n 'runtime.makeBucketArray',\n 'runtime.newarray',\n 'runtime.mallocgc',\n 'runtime.heapBitsSetType',\n 'runtime.mapaccess2_fast64',\n 'test/pkg/create.copySlice[...]',\n 'runtime.mallocgc',\n 'runtime.(*mcache).nextFree',\n 'runtime.(*mcache).refill',\n 'runtime.(*mcentral).cacheSpan',\n 'runtime.(*mcentral).grow',\n 'runtime.(*mheap).alloc',\n 'runtime.systemstack',\n 'runtime.(*mheap).alloc.func1',\n 'runtime.(*mheap).allocSpan',\n 'runtime.(*mheap).allocMSpanLocked',\n 'runtime.(*fixalloc).alloc',\n 'test/pkg/gen/google/v1.(*Profile).UnmarshalVT',\n 'runtime.newobject',\n 'runtime.nextFreeFast',\n 'runtime.mallocgc',\n 'runtime.add1',\n 'runtime.heapBitsForAddr',\n 'runtime.heapBitsSetType',\n 'test/pkg/gen/google/v1.(*Location).UnmarshalVT',\n 'runtime.growslice',\n 'runtime.mallocgc',\n 'runtime.heapBitsSetType',\n 'runtime.nextFreeFast',\n 'runtime.newobject',\n 'runtime.getMCache',\n 'runtime.mallocgc',\n 'runtime.roundupsize',\n 'test/pkg/gen/google/v1.(*Sample).UnmarshalVT',\n 'runtime.makeslice',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointers',\n 'runtime.(*mcache).nextFree',\n 'runtime.(*mcache).refill',\n 'runtime.(*mcentral).cacheSpan',\n 'runtime.acquirem',\n 'runtime.growslice',\n 'runtime.mallocgc',\n 'runtime.profilealloc',\n 'runtime.mProf_Malloc',\n 'runtime.callers',\n 'runtime.systemstack',\n 'runtime.callers.func1',\n 'runtime.gentraceback',\n 'runtime.pcdatavalue',\n 'runtime.pcvalue',\n 'runtime.step',\n 'runtime.memclrNoHeapPointers',\n 'github.com/go-kit/log.(*context).Log',\n 'github.com/go-kit/log.bindValues',\n 'github.com/go-kit/log.Caller.func1',\n 'runtime.Caller',\n 'runtime.(*Frames).Next',\n 'runtime.funcline1',\n 'runtime.pcvalue',\n 'runtime.readvarint',\n 'test/pkg/gen/google/v1.(*Profile).ReturnToVTPool',\n 'test/pkg/gen/google/v1.(*Profile).ResetVT',\n 'github.com/bufbuild/connect-go.(*errorTranslatingSender).Send',\n 'github.com/bufbuild/connect-go.(*connectUnaryHandlerSender).Send',\n 'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).Marshal',\n 'github.com/bufbuild/connect-go.(*compressionPool).Compress',\n 'github.com/bufbuild/connect-go.(*compressionPool).putCompressor',\n 'compress/gzip.(*Writer).Close',\n 'compress/gzip.(*Writer).Write',\n 'compress/flate.NewWriter',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.gcAssistAlloc',\n 'runtime.systemstack',\n 'runtime.gcAssistAlloc.func1',\n 'runtime.gcAssistAlloc1',\n 'runtime.gcDrainN',\n 'runtime.scanobject',\n 'runtime.spanOf',\n 'compress/gzip.(*Writer).Reset',\n 'compress/gzip.(*Writer).init',\n 'compress/flate.(*Writer).Reset',\n 'compress/flate.(*compressor).reset',\n 'runtime.memclrNoHeapPointers',\n 'github.com/bufbuild/connect-go.(*compressionPool).getCompressor',\n 'compress/gzip.(*Writer).Reset',\n 'compress/gzip.(*Writer).init',\n 'compress/flate.(*Writer).Reset',\n 'compress/flate.(*compressor).reset',\n 'runtime.memclrNoHeapPointers',\n 'github.com/bufbuild/connect-go.receiveUnaryRequest[...]',\n 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Receive',\n 'github.com/bufbuild/connect-go.(*connectUnaryHandlerReceiver).Receive',\n 'github.com/bufbuild/connect-go.(*connectUnaryUnmarshaler).UnmarshalFunc',\n 'bytes.(*Buffer).ReadFrom',\n 'github.com/weaveworks/common/middleware.(*reqBody).Read',\n 'net/http.(*body).Read',\n 'net/http.(*body).readLocked',\n 'net/http/internal.(*chunkedReader).Read',\n 'bufio.(*Reader).Read',\n 'net/http.(*connReader).Read',\n 'net.(*conn).Read',\n 'net.(*netFD).Read',\n 'syscall.Read',\n 'syscall.read',\n 'syscall.Syscall',\n 'net/http.(*ServeMux).ServeHTTP',\n 'net/http.HandlerFunc.ServeHTTP',\n 'net/http/pprof.Index',\n 'net/http/pprof.handler.ServeHTTP',\n 'runtime/pprof.(*Profile).WriteTo',\n 'runtime/pprof.writeAlloc',\n 'runtime/pprof.writeHeapInternal',\n 'runtime/pprof.writeHeapProto',\n 'runtime/pprof.(*profileBuilder).pbSample',\n 'runtime/pprof.(*profileBuilder).flush',\n 'compress/gzip.(*Writer).Write',\n 'compress/flate.(*compressor).write',\n 'compress/flate.(*compressor).encSpeed',\n 'compress/flate.(*huffmanBitWriter).writeBlockDynamic',\n 'compress/flate.(*huffmanBitWriter).writeTokens',\n 'compress/flate.(*huffmanBitWriter).writeCode',\n 'github.com/felixge/httpsnoop.(*rw).Write',\n 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1',\n 'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write',\n 'net/http.(*response).Write',\n 'net/http.(*response).write',\n 'bufio.(*Writer).Write',\n 'bufio.(*Writer).Flush',\n 'net/http.(*chunkWriter).Write',\n 'bufio.(*Writer).Write',\n 'bufio.(*Writer).Flush',\n 'net/http.checkConnErrorWriter.Write',\n 'net.(*conn).Write',\n 'net.(*netFD).Write',\n 'internal/poll.(*FD).Write',\n 'syscall.write',\n 'syscall.Syscall',\n 'compress/flate.token.length',\n 'compress/flate.(*deflateFast).encode',\n 'compress/flate.NewWriter',\n 'compress/flate.(*compressor).init',\n 'runtime.makeslice',\n 'runtime.mallocgc',\n 'runtime.gcAssistAlloc',\n 'runtime.systemstack',\n 'runtime.gcAssistAlloc.func1',\n 'runtime.gcAssistAlloc1',\n 'runtime.gcDrainN',\n 'runtime.scanobject',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointers',\n 'runtime/pprof.writeHeapProto.func1',\n 'runtime/pprof.(*profileBuilder).pbLabel',\n 'runtime.mapaccess2_faststr',\n 'runtime/pprof.(*protobuf).int64Opt',\n 'runtime/pprof.(*protobuf).endMessage',\n 'runtime.memmove',\n 'runtime/pprof.(*protobuf).startMessage',\n 'runtime/pprof.(*protobuf).uint64s',\n 'runtime.memmove',\n 'runtime/pprof.(*protobuf).int64s',\n 'runtime/pprof.(*profileBuilder).appendLocsForStack',\n 'runtime/pprof.(*profileBuilder).emitLocation',\n 'runtime/pprof.(*profileBuilder).flush',\n 'compress/gzip.(*Writer).Write',\n 'compress/flate.NewWriter',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointers',\n 'runtime.heapBitsSetType',\n 'runtime.heapBitsSetTypeGCProg',\n 'runtime.runGCProg',\n 'compress/flate.(*compressor).init',\n 'runtime.makeslice',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointersChunked',\n 'runtime.memclrNoHeapPointers',\n 'runtime.gcAssistAlloc',\n 'runtime.systemstack',\n 'runtime.gcAssistAlloc.func1',\n 'runtime.gcAssistAlloc1',\n 'runtime.gcDrainN',\n 'runtime.scanobject',\n 'runtime.pageIndexOf',\n 'compress/flate.(*compressor).write',\n 'compress/flate.(*compressor).encSpeed',\n 'compress/flate.(*huffmanBitWriter).writeBlockDynamic',\n 'compress/flate.(*huffmanBitWriter).writeTokens',\n 'compress/flate.(*huffmanBitWriter).indexTokens',\n 'runtime.growslice',\n 'runtime.mallocgc',\n 'runtime.acquirem',\n 'runtime.mapassign_faststr',\n 'runtime.hashGrow',\n 'runtime.makeBucketArray',\n 'runtime.newarray',\n 'runtime.mallocgc',\n 'runtime.profilealloc',\n 'runtime.mProf_Malloc',\n 'runtime.callers',\n 'runtime.systemstack',\n 'runtime.callers.func1',\n 'runtime.gentraceback',\n 'runtime.pcdatavalue',\n 'runtime.pcvalue',\n 'runtime.step',\n 'runtime.mapaccess1_faststr',\n 'aeshashbody',\n 'runtime.mapassign_fast64',\n 'runtime.growWork_fast64',\n 'runtime.evacuate_fast64',\n 'runtime.memclrHasPointers',\n 'runtime.bulkBarrierPreWrite',\n 'runtime.wbBufFlush',\n 'runtime.systemstack',\n 'runtime.wbBufFlush.func1',\n 'runtime.wbBufFlush1',\n 'runtime.spanOf',\n 'runtime.memhash64',\n 'runtime/pprof.(*profileBuilder).pbLine',\n 'runtime/pprof.(*protobuf).int64Opt',\n 'runtime/pprof.(*protobuf).endMessage',\n 'runtime.memmove',\n 'runtime.duffcopy',\n 'runtime/pprof.(*protobuf).endMessage',\n 'runtime.memmove',\n 'runtime.duffzero',\n 'runtime/pprof.(*protobuf).int64Opt',\n 'runtime.CallersFrames',\n 'runtime.newobject',\n 'runtime.nextFreeFast',\n 'runtime.mallocgc',\n 'runtime.heapBitsSetType',\n 'runtime.memclrNoHeapPointers',\n 'runtime.heapBitsForAddr',\n 'runtime/pprof.allFrames',\n 'runtime.duffcopy',\n 'runtime.(*Frames).Next',\n 'runtime.funcline1',\n 'runtime.funcInfo.entry',\n 'runtime.(*moduledata).textAddr',\n 'runtime.pcvalue',\n 'runtime.readvarint',\n 'runtime.step',\n 'runtime.funcfile',\n 'runtime.findnull',\n 'indexbytebody',\n 'runtime.funcname',\n 'runtime.findnull',\n 'indexbytebody',\n 'runtime.findfunc',\n 'runtime.duffzero',\n 'runtime.(*Func).Entry',\n 'runtime.pcdatavalue1',\n 'runtime.pcvalue',\n 'runtime.step',\n 'runtime.funcInfo.entry',\n 'runtime.(*moduledata).textAddr',\n 'runtime.newobject',\n 'runtime.nextFreeFast',\n 'runtime.mallocgc',\n 'runtime.mapaccess2_fast64',\n 'runtime.memhash64',\n 'runtime/pprof.runtime_expandFinalInlineFrame',\n 'runtime.findfunc',\n 'runtime.pcdatavalue1',\n 'runtime.funcInfo.entry',\n 'runtime.(*moduledata).textAddr',\n 'runtime/pprof.(*profileBuilder).stringIndex',\n 'runtime.growslice',\n 'runtime.mallocgc',\n 'runtime.heapBitsSetType',\n 'runtime.memmove',\n 'runtime.mapassign_faststr',\n 'runtime.growWork_faststr',\n 'runtime.evacuate_faststr',\n 'aeshashbody',\n 'runtime.advanceEvacuationMark',\n 'runtime.hashGrow',\n 'runtime.makeBucketArray',\n 'runtime.newarray',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointers',\n 'runtime.heapBitsSetType',\n 'runtime.mapaccess2_faststr',\n 'aeshashbody',\n 'runtime/pprof.(*protobuf).uint64Opt',\n 'runtime.funcdata',\n 'runtime/pprof.(*profileBuilder).build',\n 'compress/gzip.(*Writer).Write',\n 'compress/flate.(*compressor).write',\n 'compress/flate.(*compressor).encSpeed',\n 'compress/flate.(*deflateFast).encode',\n 'compress/flate.(*deflateFast).matchLen',\n 'compress/flate.(*huffmanBitWriter).writeBlockDynamic',\n 'compress/flate.(*huffmanBitWriter).writeTokens',\n 'compress/flate.(*huffmanBitWriter).writeCode',\n 'github.com/felixge/httpsnoop.(*rw).Write',\n 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1',\n 'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write',\n 'net/http.(*response).Write',\n 'net/http.(*response).write',\n 'bufio.(*Writer).Write',\n 'bufio.(*Writer).Flush',\n 'net/http.(*chunkWriter).Write',\n 'bufio.(*Writer).Write',\n 'bufio.(*Writer).Flush',\n 'net/http.checkConnErrorWriter.Write',\n 'net.(*conn).Write',\n 'net.(*netFD).Write',\n 'internal/poll.(*FD).Write',\n 'syscall.write',\n 'syscall.Syscall',\n 'compress/flate.(*huffmanBitWriter).writeBits',\n 'compress/flate.(*huffmanBitWriter).indexTokens',\n 'compress/flate.(*huffmanEncoder).generate',\n 'compress/flate.(*huffmanEncoder).bitCounts',\n 'compress/flate.(*huffmanBitWriter).writeDynamicHeader',\n 'compress/flate.(*huffmanBitWriter).writeCode',\n 'github.com/felixge/httpsnoop.(*rw).Write',\n 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1',\n 'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write',\n 'net/http.(*response).Write',\n 'net/http.(*response).write',\n 'bufio.(*Writer).Write',\n 'bufio.(*Writer).Flush',\n 'net/http.(*chunkWriter).Write',\n 'bufio.(*Writer).Write',\n 'bufio.(*Writer).Flush',\n 'net/http.checkConnErrorWriter.Write',\n 'net.(*conn).Write',\n 'net.(*netFD).Write',\n 'internal/poll.(*FD).Write',\n 'syscall.write',\n 'syscall.Syscall',\n 'compress/flate.hash',\n 'compress/gzip.(*Writer).Close',\n 'compress/flate.(*compressor).close',\n 'compress/flate.(*compressor).encSpeed',\n 'compress/flate.(*huffmanBitWriter).writeBlockDynamic',\n 'compress/flate.(*huffmanBitWriter).indexTokens',\n 'compress/flate.(*huffmanBitWriter).writeTokens',\n 'compress/flate.(*huffmanBitWriter).writeBits',\n 'github.com/felixge/httpsnoop.(*rw).Write',\n 'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1',\n 'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write',\n 'net/http.(*response).Write',\n 'net/http.(*response).write',\n 'bufio.(*Writer).Write',\n 'bufio.(*Writer).Flush',\n 'net/http.(*chunkWriter).Write',\n 'fmt.Fprintf',\n 'fmt.(*pp).doPrintf',\n 'fmt.(*pp).printArg',\n 'fmt.(*pp).fmtInteger',\n 'fmt.(*fmt).fmtInteger',\n 'compress/flate.(*huffmanBitWriter).writeCode',\n 'compress/flate.token.offset',\n 'compress/flate.hash',\n 'compress/flate.(*deflateFast).encode',\n 'compress/flate.load64',\n 'runtime.FuncForPC',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.heapBitsSetType',\n 'runtime.findfunc',\n 'runtime.pcdatavalue1',\n 'runtime.funcInfo.entry',\n 'runtime.(*moduledata).textAddr',\n 'runtime.pcvalue',\n 'runtime.readvarint',\n 'runtime.step',\n 'runtime.funcline1',\n 'runtime.pcvalue',\n 'runtime.readvarint',\n 'runtime.step',\n 'runtime.funcInfo.entry',\n 'runtime.(*moduledata).textAddr',\n 'runtime/pprof.newProfileBuilder',\n 'runtime/pprof.(*profileBuilder).readMapping',\n 'os.ReadFile',\n 'runtime.growslice',\n 'runtime.mallocgc',\n 'runtime.gcAssistAlloc',\n 'runtime.systemstack',\n 'runtime.gcAssistAlloc.func1',\n 'runtime.gcAssistAlloc1',\n 'runtime.gcDrainN',\n 'runtime.duffcopy',\n 'runtime.(*Func).Name',\n 'runtime.funcname',\n 'runtime.findnull',\n 'indexbytebody',\n 'runtime/pprof.scaleHeapSample',\n 'math.archExp',\n 'runtime.(*MemProfileRecord).Stack',\n 'runtime.duffcopy',\n 'runtime/pprof.writeGoroutine',\n 'runtime/pprof.writeRuntimeProfile',\n 'runtime/pprof.runtime_goroutineProfileWithLabels',\n 'runtime.goroutineProfileWithLabels',\n 'runtime.forEachGRace',\n 'runtime.goroutineProfileWithLabels.func4',\n 'runtime.systemstack',\n 'runtime.goroutineProfileWithLabels.func4.1',\n 'runtime.saveg',\n 'runtime.gentraceback',\n 'runtime.pcdatavalue',\n 'runtime.funcInfo.entry',\n 'runtime.pcvalue',\n 'runtime.step',\n 'runtime.readvarint',\n 'runtime.funcspdelta',\n 'runtime.pcvalue',\n 'runtime.readvarint',\n 'runtime.step',\n 'runtime.findfunc',\n 'runtime.goroutineProfileWithLabels.func1',\n 'runtime.isSystemGoroutine',\n 'runtime.funcname',\n 'runtime.findnull',\n 'runtime.goroutineProfileWithLabels.func2',\n 'runtime.goroutineProfileWithLabels.func1',\n 'runtime.isSystemGoroutine',\n 'runtime.startTheWorld',\n 'runtime.systemstack',\n 'runtime.startTheWorld.func1',\n 'runtime.startTheWorldWithSema',\n 'runtime.wakep',\n 'runtime.startm',\n 'runtime.notewakeup',\n 'runtime.futexwakeup',\n 'runtime.futex',\n 'runtime.systemstack',\n 'runtime.goroutineProfileWithLabels.func3',\n 'runtime.saveg',\n 'runtime.gentraceback',\n 'runtime/pprof.printCountProfile',\n 'runtime/pprof.printCountProfile.func1',\n 'fmt.Fprintf',\n 'fmt.(*pp).doPrintf',\n 'fmt.(*pp).printArg',\n 'fmt.(*pp).fmtInteger',\n 'fmt.(*fmt).fmtInteger',\n 'bytes.(*Buffer).Write',\n 'runtime.memmove',\n 'runtime.slicebytetostring',\n 'runtime.nextFreeFast',\n 'runtime.mapassign_faststr',\n 'runtime.hashGrow',\n 'runtime.makeBucketArray',\n 'runtime.newarray',\n 'runtime.nextFreeFast',\n 'aeshashbody',\n 'runtime/pprof.(*profileBuilder).appendLocsForStack',\n 'runtime/pprof.(*profileBuilder).stringIndex',\n 'runtime.overLoadFactor',\n 'runtime/pprof.(*profileBuilder).emitLocation',\n 'runtime/pprof.(*profileBuilder).pbLine',\n 'runtime/pprof.(*profileBuilder).flush',\n 'compress/gzip.(*Writer).Write',\n 'compress/flate.NewWriter',\n 'compress/flate.(*compressor).init',\n 'runtime.makeslice',\n 'runtime.mallocgc',\n 'runtime.gcAssistAlloc',\n 'runtime.systemstack',\n 'runtime.gcAssistAlloc.func1',\n 'runtime.gcAssistAlloc1',\n 'runtime.gcDrainN',\n 'runtime.heapBits.bits',\n 'runtime.scanobject',\n 'runtime.greyobject',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointers',\n 'runtime/pprof.allFrames',\n 'runtime.newobject',\n 'runtime.nextFreeFast',\n 'runtime.(*Frames).Next',\n 'runtime.funcline1',\n 'runtime.pcvalue',\n 'runtime/pprof.newProfileBuilder',\n 'runtime/pprof.(*profileBuilder).readMapping',\n 'runtime/pprof.parseProcSelfMaps',\n 'runtime/pprof.elfBuildID',\n 'os.OpenFile',\n 'syscall.Open',\n 'syscall.openat',\n 'syscall.Syscall6',\n 'runtime/pprof.parseProcSelfMaps.func1',\n 'bytes.Cut',\n 'runtime.slicebytetostring',\n 'runtime.nextFreeFast',\n 'runtime/pprof.(*profileBuilder).addMapping',\n 'runtime.growslice',\n 'os.Open',\n 'os.OpenFile',\n 'syscall.Open',\n 'syscall.openat',\n 'syscall.Syscall6',\n 'os.openFileNolog',\n 'os.newFile',\n 'runtime.SetFinalizer',\n 'runtime.systemstack',\n 'runtime.SetFinalizer.func2',\n 'runtime.addfinalizer',\n 'runtime.addspecial',\n 'os.ReadFile',\n 'runtime.growslice',\n 'runtime.mallocgc',\n 'runtime.(*mcache).nextFree',\n 'runtime.(*mcache).refill',\n 'runtime.(*mcentral).cacheSpan',\n 'runtime.(*mcentral).grow',\n 'runtime.(*mheap).alloc',\n 'runtime.systemstack',\n 'runtime.(*mheap).alloc.func1',\n 'runtime.(*mheap).allocSpan',\n 'runtime.(*pageAlloc).allocToCache',\n 'os.(*File).Stat',\n 'internal/poll.(*FD).Fstat',\n 'syscall.Fstat',\n 'syscall.Syscall',\n 'os.(*File).Read',\n 'syscall.Read',\n 'syscall.read',\n 'syscall.Syscall',\n 'runtime.newobject',\n 'sort.Sort',\n 'sort.quickSort',\n 'sort.doPivot',\n 'runtime/pprof.(*keysByCount).Less',\n 'cmpbody',\n 'sort.quickSort',\n 'sort.insertionSort',\n 'runtime/pprof.(*keysByCount).Less',\n 'runtime.mapaccess1_faststr',\n 'runtime/pprof.(*profileBuilder).pbSample',\n 'runtime/pprof.(*protobuf).uint64s',\n 'runtime.newobject',\n 'github.com/prometheus/client_golang/prometheus.(*GaugeVec).WithLabelValues',\n 'runtime.assertI2I',\n 'runtime.getitab',\n 'runtime.(*itabTableType).find',\n 'github.com/weaveworks/common/middleware.Instrument.getRouteName',\n 'github.com/weaveworks/common/middleware.getRouteName',\n 'github.com/weaveworks/common/middleware.MakeLabelValue',\n 'strings.Trim',\n 'github.com/gorilla/mux.(*Router).Match',\n 'github.com/gorilla/mux.(*Route).Match',\n 'github.com/gorilla/mux.(*routeRegexp).Match',\n 'regexp.(*Regexp).doExecute',\n 'regexp.(*Regexp).backtrack',\n 'regexp.(*Regexp).tryBacktrack',\n 'github.com/weaveworks/common/logging.gokit.Debugf',\n 'github.com/go-kit/log.(*context).Log',\n 'github.com/go-kit/log.bindValues',\n 'github.com/go-kit/log.Caller.func1',\n 'runtime.Caller',\n 'runtime.callers',\n 'github.com/uber/jaeger-client-go.(*Tracer).Extract',\n 'github.com/uber/jaeger-client-go.(*TextMapPropagator).Extract',\n 'runtime.assertE2I2',\n 'runtime.getitab',\n 'runtime.(*itabTableType).find',\n 'runtime.newobject',\n 'runtime.nextFreeFast',\n 'github.com/weaveworks/common/middleware.Tracer.Wrap.func1',\n 'github.com/weaveworks/common/middleware.getRouteName',\n 'github.com/gorilla/mux.(*Router).Match',\n 'github.com/gorilla/mux.(*Route).Match',\n 'github.com/gorilla/mux.(*routeRegexp).Match',\n 'regexp.(*Regexp).doExecute',\n 'net/http.(*response).finishRequest',\n 'bufio.(*Writer).Flush',\n 'net/http.(*chunkWriter).Write',\n 'net/http.(*chunkWriter).writeHeader',\n 'net/http.Header.writeSubset',\n 'net/http.Header.sortedKeyValues',\n 'sync.(*Pool).Get',\n 'net/http.checkConnErrorWriter.Write',\n 'net.(*conn).Write',\n 'net.(*netFD).Write',\n 'internal/poll.(*FD).Write',\n 'syscall.write',\n 'syscall.Syscall',\n 'net/http.(*conn).readRequest',\n 'runtime.mapiterinit',\n 'runtime.gcBgMarkWorker',\n 'runtime.systemstack',\n 'runtime.gcBgMarkWorker.func2',\n 'runtime.gcDrain',\n 'runtime.scanobject',\n 'runtime.(*gcBits).bytep',\n 'runtime.(*mspan).objIndex',\n 'runtime.pageIndexOf',\n 'runtime.greyobject',\n 'runtime.(*gcWork).put',\n 'runtime.getempty',\n 'runtime.putfull',\n 'runtime.(*lfstack).push',\n 'runtime.findObject',\n 'runtime.spanOf',\n 'runtime.(*mspan).markBitsForIndex',\n 'runtime.spanOf',\n 'runtime.markBits.isMarked',\n 'runtime.arenaIndex',\n 'runtime.heapBitsForAddr',\n 'runtime.(*gcWork).tryGet',\n 'runtime.trygetfull',\n 'runtime.spanOfUnchecked',\n 'runtime.heapBits.next',\n 'runtime.gcFlushBgCredit',\n 'runtime.heapBits.bits',\n 'runtime.(*gcWork).balance',\n 'runtime.handoff',\n 'runtime.getempty',\n 'runtime.(*gcWork).tryGetFast',\n 'runtime.gcMarkDone',\n 'runtime.gcMarkTermination',\n 'runtime.mProf_Flush',\n 'runtime.mProf_FlushLocked',\n 'runtime.(*bucket).mp',\n 'runtime.systemstack',\n 'runtime.gcMarkTermination.func4',\n 'runtime.forEachP',\n 'runtime.gcMarkTermination.func4.1',\n 'runtime.(*mcache).prepareForSweep',\n 'runtime.(*mcache).releaseAll',\n 'net/http.(*persistConn).readLoop',\n 'runtime.selectgo',\n 'runtime.send',\n 'runtime.goready',\n 'runtime.systemstack',\n 'runtime.goready.func1',\n 'runtime.ready',\n 'runtime.runqput',\n 'bufio.(*Reader).Peek',\n 'bufio.(*Reader).fill',\n 'net/http.(*persistConn).Read',\n 'net.(*conn).Read',\n 'net.(*netFD).Read',\n 'syscall.Read',\n 'syscall.read',\n 'syscall.Syscall',\n 'net/http.(*persistConn).readResponse',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.(*Tracer).gotFirstResponseByte',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.memclrNoHeapPointers',\n 'runtime.bgsweep',\n 'runtime.sweepone',\n 'runtime.(*sweepLocker).tryAcquire',\n 'runtime.(*sweepLocked).sweep',\n 'runtime.(*gcBitsArena).tryAlloc',\n 'runtime.spanClass.sizeclass',\n 'runtime/internal/atomic.(*Uint32).CompareAndSwap',\n 'runtime.mcall',\n 'runtime.park_m',\n 'runtime.schedule',\n 'runtime.findrunnable',\n 'runtime.netpoll',\n 'runtime.epollwait',\n 'runtime.stopm',\n 'runtime.notesleep',\n 'runtime.futexsleep',\n 'runtime.futex',\n 'runtime.(*randomOrder).start',\n 'runtime.checkTimers',\n 'runtime.runtimer',\n 'runtime.dodeltimer0',\n 'runtime.gcstopm',\n 'runtime.lock2',\n 'runtime.procyield',\n 'runtime.(*lfstack).pop',\n 'runtime.gosched_m',\n 'runtime.lock',\n 'runtime.lock2',\n 'runtime.goschedImpl',\n 'runtime.schedule',\n 'runtime.execute',\n 'runtime.casgstatus',\n 'runtime.checkTimers',\n 'runtime.findrunnable',\n 'runtime.checkTimers',\n 'runtime.casgstatus',\n 'net/http.(*persistConn).writeLoop',\n 'net/http.(*Request).write',\n 'net/http.newTransferWriter',\n 'runtime.convI2I',\n 'runtime.getitab',\n 'runtime.(*itabTableType).find',\n 'runtime.chansend1',\n 'runtime.chansend',\n 'runtime.send',\n 'runtime.goready',\n 'runtime.systemstack',\n 'runtime.goready.func1',\n 'runtime.ready',\n 'runtime.wakep',\n 'runtime.startm',\n 'runtime.notewakeup',\n 'runtime.futexwakeup',\n 'runtime.futex',\n 'bufio.(*Writer).Flush',\n 'net/http.persistConnWriter.Write',\n 'net.(*conn).Write',\n 'net.(*netFD).Write',\n 'internal/poll.(*FD).Write',\n 'syscall.write',\n 'syscall.Syscall',\n 'runtime.exitsyscall',\n 'runtime.exitsyscallfast',\n 'runtime.exitsyscallfast_reacquired',\n 'test/pkg/distributor.(*Distributor).Push.func1',\n 'test/pkg/distributor.(*Distributor).sendProfiles',\n 'test/pkg/distributor.(*Distributor).sendProfilesErr',\n 'test/pkg/gen/ingester/v1/ingesterv1connect.(*ingesterServiceClient).Push',\n 'github.com/bufbuild/connect-go.(*Client[...]).CallUnary',\n 'github.com/bufbuild/connect-go.NewClient[...].func2',\n 'github.com/bufbuild/connect-go.NewClient[...].func1',\n 'github.com/bufbuild/connect-go.receiveUnaryResponse[...]',\n 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Receive',\n 'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Receive',\n 'github.com/bufbuild/connect-go.(*connectUnaryUnmarshaler).UnmarshalFunc',\n 'github.com/bufbuild/connect-go.(*compressionPool).Decompress',\n 'github.com/bufbuild/connect-go.(*compressionPool).getDecompressor',\n 'compress/gzip.(*Reader).Reset',\n 'compress/gzip.(*Reader).readHeader',\n 'compress/flate.(*dictDecoder).init',\n 'runtime.makeslice',\n 'runtime.mallocgc',\n 'runtime.(*mcache).nextFree',\n 'runtime.(*mcache).refill',\n 'runtime.(*mcentral).cacheSpan',\n 'runtime.(*mcentral).grow',\n 'runtime.heapBits.initSpan',\n 'compress/flate.(*decompressor).Reset',\n 'runtime.newstack',\n 'runtime.copystack',\n 'runtime.gentraceback',\n 'compress/flate.NewReader',\n 'compress/flate.fixedHuffmanDecoderInit',\n 'runtime.newstack',\n 'runtime.copystack',\n 'runtime.gentraceback',\n 'runtime.funcspdelta',\n 'runtime.pcvalue',\n 'runtime.step',\n 'github.com/bufbuild/connect-go.(*errorTranslatingSender).Send',\n 'github.com/bufbuild/connect-go.(*connectClientSender).Send',\n 'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).Marshal',\n 'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).write',\n 'github.com/bufbuild/connect-go.(*duplexHTTPCall).Write',\n 'io.(*pipe).write',\n 'runtime.chanrecv1',\n 'runtime.chanrecv',\n 'runtime.recv',\n 'runtime.gcWriteBarrierR8',\n 'runtime.gcWriteBarrier',\n 'runtime.wbBufFlush',\n 'runtime.systemstack',\n 'runtime.wbBufFlush.func1',\n 'runtime.wbBufFlush1',\n 'runtime.findObject',\n 'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Close',\n 'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Close',\n 'github.com/bufbuild/connect-go.(*duplexHTTPCall).CloseRead',\n 'github.com/opentracing-contrib/go-stdlib/nethttp.closeTracker.Close',\n 'runtime.newobject',\n 'runtime.mallocgc',\n 'runtime.heapBitsSetType',\n 'runtime/pprof.profileWriter',\n 'runtime/pprof.(*profileBuilder).addCPUData',\n 'runtime/pprof.(*profMap).lookup',\n 'runtime.makeslice',\n 'runtime.mallocgc',\n 'runtime.gcAssistAlloc',\n 'runtime.systemstack',\n 'runtime.gcAssistAlloc.func1',\n 'runtime.gcAssistAlloc1',\n 'runtime.gcDrainN',\n 'runtime.scanobject',\n 'runtime.pageIndexOf',\n 'net/http.(*connReader).backgroundRead',\n 'net.(*conn).Read',\n 'net.(*netFD).Read',\n 'internal/poll.(*FD).Read',\n ],\n },\n {\n name: 'fileName',\n values: [\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n ],\n },\n {\n name: 'line',\n values: [\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 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,\n 23, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4,\n ],\n },\n ],\n};\n"],"names":["jsxs","Fragment","jsx","MenuItem","MenuGroup","ContextMenu","useStyles2","getStyles","InteractiveTable","Portal","VizTooltipContainer","getValueFormat","css","SampleUnit","SelectedView","ColorScheme","ColorSchemeDiff","color","scaleLinear","rgbString","useTheme2","useMemo","useEffect","useCallback","useState","ctx","useMeasure","useRef","memo","Tooltip","Icon","IconButton","levels","totalProfileTicks","totalProfileTicksRight","totalViewTicks","levelsCallers","cx","groupBy","item","FieldType","createTheme","getDisplayProcessor","index","Button","Input","ButtonGroup","RadioButtonGroup","Menu","Dropdown","usePrevious","useDebounce","AutoSizer","Table","TableCellDisplayMode","MappingType","applyFieldOverrides","uFuzzy","data","ThemeContext"],"mappings":"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G,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC7G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC7G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAA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AU,GAAA;AAAA,QAAU,GAAA;AAAA,QAC9F,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAC/F,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACrG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACtG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QACvG,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QACrG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QA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AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACvG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QACrG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAC5F,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACvG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QACjG,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACtG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACtG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,KAAA;AAAA,QAAY,KAAA;AAAA,QAC5F,KAAA;AAAA,QAAY,KAAA;AAAA,QAAY,KAAA;AAAA,QAAY,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAClG,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAC9F,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACvG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QACtG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACrG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;A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AA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QACtG,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,IAAA;AAAA,QAAM,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAC7G,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QACzG,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAC5G,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAC1G,IAAA;AAAA,QAAM,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI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A;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC7G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC7G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG;AAAA;AAChF;AACF;AAEJ;;;;;;;"}
|