From 142a03a01c993cca2f209196a1800d394684eb31 Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Fri, 21 Apr 2023 15:07:13 -0700 Subject: [PATCH 01/11] feat(dashboard): Refresh Rollouts dashboard UI (#2723) * feat: Refresh Rollouts dashboard Signed-off-by: Remington Breeze * rearrange individual rollout view Signed-off-by: Remington Breeze * fix letter L bug Signed-off-by: Remington Breeze * fix single namespace display Signed-off-by: Remington Breeze * bug fixes Signed-off-by: Remington Breeze * remove all dependencies on argo-ui/v2 Signed-off-by: Remington Breeze * feat: Refresh Rollouts dashboard Signed-off-by: Remington Breeze * rearrange individual rollout view Signed-off-by: Remington Breeze * fix letter L bug Signed-off-by: Remington Breeze * fix single namespace display Signed-off-by: Remington Breeze * bug fixes Signed-off-by: Remington Breeze * remove all dependencies on argo-ui/v2 Signed-off-by: Remington Breeze * fix: make logo image path relative Signed-off-by: Remington Breeze --------- Signed-off-by: Remington Breeze --- ui/package.json | 8 +- ui/src/app/App.scss | 4 +- ui/src/app/App.tsx | 108 ++- .../confirm-button/confirm-button.tsx | 72 ++ .../ellipsis-middle/ellipsis-middle.tsx | 13 + ui/src/app/components/header/header.scss | 47 +- ui/src/app/components/header/header.tsx | 67 +- .../app/components/info-item/info-item.scss | 80 ++ ui/src/app/components/info-item/info-item.tsx | 61 ++ ui/src/app/components/pods/pods.scss | 5 +- ui/src/app/components/pods/pods.tsx | 209 +++--- .../rollout-actions/rollout-actions.tsx | 52 +- ui/src/app/components/rollout/containers.tsx | 69 +- ui/src/app/components/rollout/revision.tsx | 73 +- ui/src/app/components/rollout/rollout.scss | 87 +-- ui/src/app/components/rollout/rollout.tsx | 214 +++--- .../rollouts-list/rollouts-list.scss | 59 +- .../rollouts-list/rollouts-list.tsx | 180 ++--- .../components/status-icon/status-icon.tsx | 10 +- ui/src/assets/images/argologo.svg | 1 + ui/src/config/theme.ts | 15 + ui/yarn.lock | 683 +++++++++++++++++- 22 files changed, 1521 insertions(+), 596 deletions(-) create mode 100644 ui/src/app/components/confirm-button/confirm-button.tsx create mode 100644 ui/src/app/components/ellipsis-middle/ellipsis-middle.tsx create mode 100644 ui/src/app/components/info-item/info-item.scss create mode 100644 ui/src/app/components/info-item/info-item.tsx create mode 100644 ui/src/assets/images/argologo.svg create mode 100644 ui/src/config/theme.ts diff --git a/ui/package.json b/ui/package.json index aaaf3de4cb..fac0a758f3 100644 --- a/ui/package.json +++ b/ui/package.json @@ -3,6 +3,10 @@ "version": "0.1.0", "private": true, "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.4.0", + "@fortawesome/free-solid-svg-icons": "^6.4.0", + "@fortawesome/react-fontawesome": "^0.2.0", + "antd": "^5.4.2", "argo-ui": "git+https://github.com/argoproj/argo-ui.git", "classnames": "2.2.6", "isomorphic-fetch": "^3.0.0", @@ -16,7 +20,7 @@ "react-keyhooks": "^0.2.3", "react-router-dom": "5.2.0", "rxjs": "^6.6.6", - "typescript": "4.3.5", + "typescript": "^5.0.4", "web-vitals": "^1.0.1" }, "scripts": { @@ -69,4 +73,4 @@ "resolutions": { "@types/react": "16.9.3" } -} \ No newline at end of file +} diff --git a/ui/src/app/App.scss b/ui/src/app/App.scss index ac371917d0..0254cb4ac1 100644 --- a/ui/src/app/App.scss +++ b/ui/src/app/App.scss @@ -27,7 +27,7 @@ html { } a { - color: inherit; + color: inherit !important; text-decoration: none; } @@ -38,7 +38,7 @@ a { .rollouts { height: 100%; overflow-y: auto; - font-family: 'Heebo', sans-serif; + font-family: system-ui, sans-serif; background-color: $argo-color-gray-3; &--dark { diff --git a/ui/src/app/App.tsx b/ui/src/app/App.tsx index b1d28fa5d5..60ba5419c6 100644 --- a/ui/src/app/App.tsx +++ b/ui/src/app/App.tsx @@ -1,8 +1,7 @@ -import {ThemeDiv, ThemeProvider} from 'argo-ui/v2'; import {Header} from './components/header/header'; import {createBrowserHistory} from 'history'; import * as React from 'react'; -import {Key, KeybindingContext, KeybindingProvider} from 'react-keyhooks'; +import {KeybindingProvider} from 'react-keyhooks'; import {Route, Router, Switch} from 'react-router-dom'; import './App.scss'; import {NamespaceContext, RolloutAPI} from './shared/context/api'; @@ -10,46 +9,39 @@ import {Modal} from './components/modal/modal'; import {Rollout} from './components/rollout/rollout'; import {RolloutsList} from './components/rollouts-list/rollouts-list'; import {Shortcut, Shortcuts} from './components/shortcuts/shortcuts'; +import {ConfigProvider} from 'antd'; +import {theme} from '../config/theme'; const bases = document.getElementsByTagName('base'); const base = bases.length > 0 ? bases[0].getAttribute('href') || '/' : '/'; export const history = createBrowserHistory({basename: base}); const Page = (props: {path: string; component: React.ReactNode; exact?: boolean; shortcuts?: Shortcut[]; changeNamespace: (val: string) => void}) => { - const {useKeybinding} = React.useContext(KeybindingContext); const [showShortcuts, setShowShortcuts] = React.useState(false); - useKeybinding( - [Key.SHIFT, Key.H], - () => { - if (props.shortcuts) { - setShowShortcuts(!showShortcuts); - } - return false; - }, - true - ); return ( - - {showShortcuts && ( - setShowShortcuts(false)}> - - - )} - - -
{ - if (props.shortcuts) { - setShowShortcuts(true); - } - }} - /> - {props.component} - - - + +
+ {showShortcuts && ( + setShowShortcuts(false)}> + + + )} + + +
{ + if (props.shortcuts) { + setShowShortcuts(true); + } + }} + /> + {props.component} + + +
+
); }; @@ -84,31 +76,29 @@ const App = () => { }; return ( - - {namespace && ( - - - - - } - shortcuts={[ - {key: '/', description: 'Search'}, - {key: 'TAB', description: 'Search, navigate search items'}, - {key: ['fa-arrow-left', 'fa-arrow-right', 'fa-arrow-up', 'fa-arrow-down'], description: 'Navigate rollouts list', icon: true}, - {key: ['SHIFT', 'H'], description: 'Show help menu', combo: true}, - ]} - changeNamespace={changeNamespace} - /> - } changeNamespace={changeNamespace} /> - - - - - )} - + namespace && ( + + + + + } + shortcuts={[ + {key: '/', description: 'Search'}, + {key: 'TAB', description: 'Search, navigate search items'}, + {key: ['fa-arrow-left', 'fa-arrow-right', 'fa-arrow-up', 'fa-arrow-down'], description: 'Navigate rollouts list', icon: true}, + {key: ['SHIFT', 'H'], description: 'Show help menu', combo: true}, + ]} + changeNamespace={changeNamespace} + /> + } changeNamespace={changeNamespace} /> + + + + + ) ); }; diff --git a/ui/src/app/components/confirm-button/confirm-button.tsx b/ui/src/app/components/confirm-button/confirm-button.tsx new file mode 100644 index 0000000000..4dd4f37e7c --- /dev/null +++ b/ui/src/app/components/confirm-button/confirm-button.tsx @@ -0,0 +1,72 @@ +import * as React from 'react'; + +import {Button, Popconfirm, Tooltip} from 'antd'; +import {ButtonProps} from 'antd/es/button/button'; +import {useState} from 'react'; +import { TooltipPlacement } from 'antd/es/tooltip'; + +interface ConfirmButtonProps extends ButtonProps { + skipconfirm?: boolean; + tooltip?: string; + placement?: TooltipPlacement; +} + +export const ConfirmButton = (props: ConfirmButtonProps) => { + const [open, setOpen] = useState(false); + const [buttonProps, setButtonProps] = useState(props); + + React.useEffect(() => { + const tmp = {...props}; + delete tmp.skipconfirm; + delete tmp.children; + delete tmp.onClick; + setButtonProps(tmp); + }, [props]); + + const confirm = () => { + setOpen(false); + if (props.onClick) { + props.onClick(null); + } + }; + + const cancel = () => { + setOpen(false); + }; + + const handleOpenChange = (newOpen: boolean) => { + if (!newOpen) { + setOpen(newOpen); + return; + } + if (props.skipconfirm) { + confirm(); // next step + } else { + setOpen(newOpen); + } + }; + + return ( +
{ + e.stopPropagation(); + e.preventDefault(); + }}> + +
+ + + +
+
+
+ ); +}; diff --git a/ui/src/app/components/ellipsis-middle/ellipsis-middle.tsx b/ui/src/app/components/ellipsis-middle/ellipsis-middle.tsx new file mode 100644 index 0000000000..4eba37f8b6 --- /dev/null +++ b/ui/src/app/components/ellipsis-middle/ellipsis-middle.tsx @@ -0,0 +1,13 @@ +import * as React from 'react'; +import {Typography} from 'antd'; + +const {Text} = Typography; +export const EllipsisMiddle: React.FC<{suffixCount: number; children: string; style: React.CSSProperties}> = ({suffixCount, children, style}) => { + const start = children.slice(0, children.length - suffixCount).trim(); + const suffix = children.slice(-suffixCount).trim(); + return ( + + {start} + + ); +}; diff --git a/ui/src/app/components/header/header.scss b/ui/src/app/components/header/header.scss index 395271d8f2..b1f48904a6 100644 --- a/ui/src/app/components/header/header.scss +++ b/ui/src/app/components/header/header.scss @@ -2,13 +2,12 @@ .rollouts-header { display: flex; - background: $slate; + background: #0f2733; color: white; align-items: center; padding: 10px 0; &__brand { - color: $shine; display: flex; align-items: center; text-decoration: none; @@ -16,44 +15,18 @@ -moz-user-select: none; -ms-user-select: none; user-select: none; - } - - &__welcome { - position: absolute; - transform-origin: left; - display: block; - overflow: hidden; - width: 174px; - white-space: nowrap; - transition: transform 1s ease 1s, opacity 1s ease; + margin-left: 10px; } &__title { - position: absolute; - transform: translateX(174px); - transition: transform 500ms ease 750ms; display: flex; align-items: center; - } - - h1 { - position: relative; + color: white !important; + font-weight: 600; font-size: 22px; - font-weight: 400; - margin: 0; - display: flex; - align-items: center; - } - - h2 { - font-size: 18px; - color: $sherbert; - margin: 0; - margin-left: 10px; - flex-grow: 1; - white-space: nowrap; + width: 200px; } - + &__info { margin-left: auto; display: flex; @@ -61,13 +34,11 @@ } &__label { color: $shine; - margin: 0 15px; margin: auto; - padding: 5px; + font-size: 10px; + font-weight: 600; } &__namespace { - color: black; - display: flex; - position: relative; + margin: 0 20px; } } diff --git a/ui/src/app/components/header/header.tsx b/ui/src/app/components/header/header.tsx index 3c3eba392e..e267822108 100644 --- a/ui/src/app/components/header/header.tsx +++ b/ui/src/app/components/header/header.tsx @@ -1,18 +1,19 @@ import * as React from 'react'; -import {ActionButton, Brand, InfoItemRow, ThemeToggle, Tooltip, Header as GenericHeader, Autocomplete, ThemeDiv} from 'argo-ui/v2'; import {useParams} from 'react-router'; import {NamespaceContext, RolloutAPIContext} from '../../shared/context/api'; import './header.scss'; import {Link, useHistory} from 'react-router-dom'; +import {AutoComplete, Button, Input, Tooltip} from 'antd'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {faBook, faKeyboard} from '@fortawesome/free-solid-svg-icons'; -const Logo = () => Argo Logo; +const Logo = () => Argo Logo; export const Header = (props: {pageHasShortcuts: boolean; changeNamespace: (val: string) => void; showHelp: () => void}) => { const history = useHistory(); const namespaceInfo = React.useContext(NamespaceContext); - const {name} = useParams<{name: string}>(); const {namespace} = useParams<{namespace: string}>(); const api = React.useContext(RolloutAPIContext); const [version, setVersion] = React.useState('v?'); @@ -25,52 +26,54 @@ export const Header = (props: {pageHasShortcuts: boolean; changeNamespace: (val: getVersion(); }, []); React.useEffect(() => { - if (namespace && namespace != namespaceInfo.namespace) { - props.changeNamespace(namespace); - setNsInput(namespace); - } + if (namespace && namespace != namespaceInfo.namespace) { + props.changeNamespace(namespace); + setNsInput(namespace); + } }, []); return ( - - - } /> +
+ + +
+
+ Argo Text Logo +
+
Rollouts {version}
+
{props.pageHasShortcuts && ( - - + +
- +
); }; diff --git a/ui/src/app/components/info-item/info-item.scss b/ui/src/app/components/info-item/info-item.scss new file mode 100644 index 0000000000..0cd040dde6 --- /dev/null +++ b/ui/src/app/components/info-item/info-item.scss @@ -0,0 +1,80 @@ +@import 'node_modules/argo-ui/v2/styles/colors'; + +.info-item { + background-color: $argo-color-gray-4; + border-radius: 3px; + border: 1px solid $argo-color-gray-5; + padding: 5px 7px; + margin-right: 5px; + color: $argo-color-gray-8; + display: flex; + align-items: center; + min-width: 0; + + &--lightweight { + border: none; + background: none; + font-weight: 500; + padding-left: 0; + padding-right: 0; + } + + &--dark { + background-color: $fog; + border: 1px solid $silver-lining; + color: $dull-shine; + } + + &--colored { + background-color: $sherbert; + border: 1px solid $sherbert; + color: white; + } + + &--dark#{&}--colored { + background-color: $spray-tan; + border: 1px solid $sherbert; + color: white; + } + + &--canary { + background-color: $canary; + border: 1px solid $canary; + color: $space; + } + + &--bluegreen { + background-color: $sea; + border: 1px solid $sea; + color: white; + } + + &--monospace { + font-family: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono', 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro', 'Fira Mono', + 'Droid Sans Mono', 'Courier New', monospace; + font-size: 14px; + } + + &--row { + display: flex; + align-items: center; + flex-grow: 1; + label { + margin-right: auto; + padding-right: 5px; + } + .info-item { + margin: 0.25em 0; + margin-left: 5px; + } + + &__container { + margin-left: auto; + display: flex; + min-width: 0; + padding-left: 25px; + flex-wrap: wrap; + justify-content: flex-end; + } + } +} diff --git a/ui/src/app/components/info-item/info-item.tsx b/ui/src/app/components/info-item/info-item.tsx new file mode 100644 index 0000000000..7e7bf8e617 --- /dev/null +++ b/ui/src/app/components/info-item/info-item.tsx @@ -0,0 +1,61 @@ +import * as React from 'react'; +import './info-item.scss'; +import { Tooltip } from 'antd'; + +export enum InfoItemKind { + Default = 'default', + Colored = 'colored', + Monospace = 'monospace', + Canary = 'canary', + BlueGreen = 'bluegreen', +} + +export interface InfoItemProps { + content?: string; + icon?: string; + style?: React.CSSProperties; + kind?: InfoItemKind; + truncate?: boolean; + lightweight?: boolean; +} + +/** + * Displays a small piece encapsulated piece of data + */ +export const InfoItem = (props: InfoItemProps) => { + const truncateStyle = props.truncate ? {overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis'} : {}; + const item = ( +
+ {props.icon && ( + + + + )} +
{props.content}
+
+ ); + return props.truncate ? {item} : item; +}; + +/** + * Displays a right justified InfoItem (or multiple InfoItems) and a left justfied label + */ +export const InfoItemRow = (props: {label: string | React.ReactNode; items?: InfoItemProps | InfoItemProps[]; lightweight?: boolean}) => { + let {label, items} = props; + let itemComponents = null; + if (!Array.isArray(items)) { + items = [items]; + } + itemComponents = items.map((c, i) => ); + + return ( +
+ {props.label && ( +
+ +
+ )} + {props.items &&
{itemComponents}
} +
+ ); +}; diff --git a/ui/src/app/components/pods/pods.scss b/ui/src/app/components/pods/pods.scss index ee3121b111..b55f08c9d6 100644 --- a/ui/src/app/components/pods/pods.scss +++ b/ui/src/app/components/pods/pods.scss @@ -7,6 +7,7 @@ $POD_SIZE: 30px; font-size: 16px; font-weight: 500; display: flex; + max-width: 100%; align-items: center; &__tags { margin-left: auto; @@ -25,10 +26,6 @@ $POD_SIZE: 30px; .pod-icon { margin: 3px; } - &--dark { - border-color: $silver-lining; - background-color: $space; - } } } diff --git a/ui/src/app/components/pods/pods.tsx b/ui/src/app/components/pods/pods.tsx index c9be978570..c3e5fecb32 100644 --- a/ui/src/app/components/pods/pods.tsx +++ b/ui/src/app/components/pods/pods.tsx @@ -1,10 +1,14 @@ -import {Menu, ThemeDiv, Tooltip, WaitFor, InfoItem} from 'argo-ui/v2'; import * as React from 'react'; import * as moment from 'moment'; import {Duration, Ticker} from 'argo-ui'; import {RolloutReplicaSetInfo} from '../../../models/rollout/generated'; import {ReplicaSetStatus, ReplicaSetStatusIcon} from '../status-icon/status-icon'; import './pods.scss'; +import {Dropdown, MenuProps, Tooltip} from 'antd'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {IconDefinition, faCheck, faCircleNotch, faClipboard, faExclamationTriangle, faQuestionCircle, faTimes} from '@fortawesome/free-solid-svg-icons'; +import {EllipsisMiddle} from '../ellipsis-middle/ellipsis-middle'; +import {InfoItem} from '../info-item/info-item'; export enum PodStatus { Pending = 'pending', @@ -36,52 +40,6 @@ export const ParsePodStatus = (status: string): PodStatus => { } }; -export const PodIcon = (props: {status: string; customIcon?: string}) => { - const {status, customIcon} = props; - let icon; - let spin = false; - if (status.startsWith('Init:')) { - icon = 'fa-circle-notch'; - spin = true; - } - if (status.startsWith('Signal:') || status.startsWith('ExitCode:')) { - icon = 'fa-times'; - } - if (status.endsWith('Error') || status.startsWith('Err')) { - icon = 'fa-exclamation-triangle'; - } - - const className = ParsePodStatus(status); - - if (customIcon) icon = customIcon; - else - switch (className) { - case PodStatus.Pending: - icon = 'fa-circle-notch'; - spin = true; - break; - case PodStatus.Success: - icon = 'fa-check'; - break; - case PodStatus.Failed: - icon = 'fa-times'; - break; - case PodStatus.Warning: - icon = 'fa-exclamation-triangle'; - break; - default: - spin = false; - icon = 'fa-question-circle'; - break; - } - - return ( - - - - ); -}; - export const ReplicaSets = (props: {replicaSets: RolloutReplicaSetInfo[]; showRevisions?: boolean}) => { const {replicaSets} = props; if (!replicaSets || replicaSets.length < 1) { @@ -106,60 +64,119 @@ export const ReplicaSets = (props: {replicaSets: RolloutReplicaSetInfo[]; showRe export const ReplicaSet = (props: {rs: RolloutReplicaSetInfo; showRevision?: boolean}) => { const rsName = props.rs.objectMeta.name; return ( - +
{rsName && ( - - {rsName} - {props.showRevision &&
Revision {props.rs.revision}
} - {props.rs.scaleDownDeadline && ( -
- - {(now) => { - const time = moment(props.rs.scaleDownDeadline).diff(now.toDate(), 'second'); - return time <= 0 ? null : ( - - Scaledown in - - }> - ) as any} icon='fa fa-clock'> - - ); - }} - -
- )} -
+ +
+ + {rsName} + + + {props.showRevision &&
Revision {props.rs.revision}
} + {props.rs.scaleDownDeadline && ( +
+ + {(now) => { + const time = moment(props.rs.scaleDownDeadline).diff(now.toDate(), 'second'); + return time <= 0 ? null : ( + + Scaledown in + + }> + ) as any} icon='fa fa-clock'> + + ); + }} + +
+ )} +
+
)} {props.rs.pods && props.rs.pods.length > 0 && ( - - - {props.rs.pods.map((pod, i) => ( - -
Status: {pod.status}
-
{pod.objectMeta?.name}
-
- } - /> - ))} - -
+
+ {(props.rs?.pods || []).map((pod, i) => ( + +
Status: {pod.status}
+
{pod.objectMeta?.name}
+
+ } + /> + ))} + )} - + ); }; -export const PodWidget = ({name, status, tooltip, customIcon}: {name: string; status: string; tooltip: React.ReactNode; customIcon?: string}) => ( - navigator.clipboard.writeText(name), icon: 'fa-clipboard'}]}> - - - - -); +const CopyMenu = (name: string): MenuProps['items'] => { + return [ + { + key: 1, + label: ( +
navigator.clipboard.writeText(name)}> + Copy Name +
+ ), + }, + ]; +}; + +export const PodWidget = ({name, status, tooltip, customIcon}: {name: string; status: string; tooltip: React.ReactNode; customIcon?: IconDefinition}) => { + let icon: IconDefinition; + let spin = false; + if (status.startsWith('Init:')) { + icon = faCircleNotch; + spin = true; + } + if (status.startsWith('Signal:') || status.startsWith('ExitCode:')) { + icon = faTimes; + } + if (status.endsWith('Error') || status.startsWith('Err')) { + icon = faExclamationTriangle; + } + + const className = ParsePodStatus(status); + + if (customIcon) { + icon = customIcon; + } else { + switch (className) { + case PodStatus.Pending: + icon = faCircleNotch; + spin = true; + break; + case PodStatus.Success: + icon = faCheck; + break; + case PodStatus.Failed: + icon = faTimes; + break; + case PodStatus.Warning: + icon = faExclamationTriangle; + break; + default: + spin = false; + icon = faQuestionCircle; + break; + } + } + + return ( + + +
+ +
+
+
+ ); +}; diff --git a/ui/src/app/components/rollout-actions/rollout-actions.tsx b/ui/src/app/components/rollout-actions/rollout-actions.tsx index 283af8c4ca..94a4b289f2 100644 --- a/ui/src/app/components/rollout-actions/rollout-actions.tsx +++ b/ui/src/app/components/rollout-actions/rollout-actions.tsx @@ -2,8 +2,11 @@ import * as React from 'react'; import {RolloutInfo} from '../../../models/rollout/rollout'; import {NamespaceContext, RolloutAPIContext} from '../../shared/context/api'; import {formatTimestamp} from '../../shared/utils/utils'; -import {ActionButton, ActionButtonProps} from 'argo-ui/v2'; import {RolloutStatus} from '../status-icon/status-icon'; +import {ConfirmButton} from '../confirm-button/confirm-button'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {faArrowCircleUp, faChevronCircleUp, faExclamationCircle, faRedoAlt, faSync} from '@fortawesome/free-solid-svg-icons'; +import {IconProp} from '@fortawesome/fontawesome-svg-core'; export enum RolloutAction { Restart = 'Restart', @@ -13,19 +16,28 @@ export enum RolloutAction { PromoteFull = 'PromoteFull', } +interface ActionData { + label: string; + icon: IconProp; + action: (body: any, namespace: string, name: string) => Promise; + tooltip?: string; + disabled?: boolean; + shouldConfirm?: boolean; +} + export const RolloutActionButton = (props: {action: RolloutAction; rollout: RolloutInfo; callback?: Function; indicateLoading: boolean; disabled?: boolean}) => { const api = React.useContext(RolloutAPIContext); const namespaceCtx = React.useContext(NamespaceContext); const restartedAt = formatTimestamp(props.rollout.restartedAt || ''); - const isDeploying = props.rollout.status === RolloutStatus.Progressing || props.rollout.status === RolloutStatus.Paused + const isDeploying = props.rollout.status === RolloutStatus.Progressing || props.rollout.status === RolloutStatus.Paused; - const actionMap = new Map([ + const actionMap = new Map([ [ RolloutAction.Restart, { label: 'RESTART', - icon: 'fa-sync', + icon: faSync, action: api.rolloutServiceRestartRollout, tooltip: restartedAt === 'Never' ? 'Never restarted' : `Last restarted ${restartedAt}`, shouldConfirm: true, @@ -35,7 +47,7 @@ export const RolloutActionButton = (props: {action: RolloutAction; rollout: Roll RolloutAction.Retry, { label: 'RETRY', - icon: 'fa-redo-alt', + icon: faRedoAlt, action: api.rolloutServiceRetryRollout, disabled: props.rollout.status !== RolloutStatus.Degraded, shouldConfirm: true, @@ -45,7 +57,7 @@ export const RolloutActionButton = (props: {action: RolloutAction; rollout: Roll RolloutAction.Abort, { label: 'ABORT', - icon: 'fa-exclamation-circle', + icon: faExclamationCircle, action: api.rolloutServiceAbortRollout, disabled: !isDeploying, shouldConfirm: true, @@ -55,7 +67,7 @@ export const RolloutActionButton = (props: {action: RolloutAction; rollout: Roll RolloutAction.Promote, { label: 'PROMOTE', - icon: 'fa-chevron-circle-up', + icon: faChevronCircleUp, action: api.rolloutServicePromoteRollout, body: {full: false}, disabled: !isDeploying, @@ -66,7 +78,7 @@ export const RolloutActionButton = (props: {action: RolloutAction; rollout: Roll RolloutAction.PromoteFull, { label: 'PROMOTE-FULL', - icon: 'fa-arrow-circle-up', + icon: faArrowCircleUp, action: api.rolloutServicePromoteRollout, body: {full: true}, disabled: !isDeploying, @@ -77,17 +89,27 @@ export const RolloutActionButton = (props: {action: RolloutAction; rollout: Roll const ap = actionMap.get(props.action); + const [loading, setLoading] = React.useState(false); + return ( - { - ap.action(ap.body || {}, namespaceCtx.namespace, props.rollout.objectMeta?.name || ''); + { + setLoading(true); + await ap.action(ap.body || {}, namespaceCtx.namespace, props.rollout.objectMeta?.name || ''); if (props.callback) { - props.callback(); + await props.callback(); } + setLoading(false); }} - indicateLoading={props.indicateLoading} - /> + disabled={ap.disabled} + loading={loading} + tooltip={ap.tooltip} + icon={}> + {props.action} + ); }; diff --git a/ui/src/app/components/rollout/containers.tsx b/ui/src/app/components/rollout/containers.tsx index 051c8c606c..c69b30658b 100644 --- a/ui/src/app/components/rollout/containers.tsx +++ b/ui/src/app/components/rollout/containers.tsx @@ -1,7 +1,10 @@ -import {ActionButton, Autocomplete, InfoItem, ThemeDiv, useInput} from 'argo-ui/v2'; import * as React from 'react'; import {RolloutContainerInfo} from '../../../models/rollout/generated'; import {ImageInfo, ReactStatePair} from './rollout'; +import {AutoComplete, Button, Input} from 'antd'; +import {ConfirmButton} from '../confirm-button/confirm-button'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {faExclamationCircle, faPencilAlt, faSave, faTimes} from '@fortawesome/free-solid-svg-icons'; interface ContainersWidgetProps { containers: RolloutContainerInfo[]; @@ -25,25 +28,28 @@ export const ContainersWidget = (props: ContainersWidgetProps) => { return (
- +
Containers - +
{interactive && (interactive?.editState[0] ? (
- { +
) : ( - setEditing(true)} style={{cursor: 'pointer', marginLeft: 'auto'}} /> + ))}
{containers.map((c, i) => ( @@ -80,12 +87,11 @@ export const ContainersWidget = (props: ContainersWidgetProps) => { /> ))} {containers.length < 2 && ( - +
- Add more containers to fill this space! - +
)}
); @@ -93,16 +99,31 @@ export const ContainersWidget = (props: ContainersWidgetProps) => { const ContainerWidget = (props: {container: RolloutContainerInfo; images: ImageInfo[]; setInput: (image: string) => void; editing: boolean}) => { const {container, editing} = props; - const [, , newImageInput] = useInput(container.image, (val) => props.setInput(val)); + const [input, setInput] = React.useState(container.image); + + const update = (val: string) => { + setInput(val); + props.setInput(val); + }; return ( -
-
{container.name}
-
+
+
{container.name}
+
{!editing ? ( - + ) : ( - img.image)} placeholder='New Image' {...newImageInput} /> + { + return {label: img.image, value: img.image}; + })} + placeholder='New Image' + value={input} + onSelect={update} + onChange={update} + /> )}
diff --git a/ui/src/app/components/rollout/revision.tsx b/ui/src/app/components/rollout/revision.tsx index f61a9229c7..e2fcd11526 100644 --- a/ui/src/app/components/rollout/revision.tsx +++ b/ui/src/app/components/rollout/revision.tsx @@ -1,4 +1,3 @@ -import {ActionButton, EffectDiv, formatTimestamp, InfoItemProps, InfoItemRow, ThemeDiv, Tooltip} from 'argo-ui/v2'; import * as React from 'react'; import {RolloutAnalysisRunInfo, RolloutExperimentInfo, RolloutReplicaSetInfo} from '../../../models/rollout/generated'; import {IconForTag} from '../../shared/utils/utils'; @@ -6,6 +5,21 @@ import {PodWidget, ReplicaSets} from '../pods/pods'; import {ImageInfo, parseImages} from './rollout'; import './rollout.scss'; import '../pods/pods.scss'; +import {ConfirmButton} from '../confirm-button/confirm-button'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {faChartBar, faChevronCircleDown, faChevronCircleUp, faUndoAlt} from '@fortawesome/free-solid-svg-icons'; +import {Button, Tooltip} from 'antd'; +import moment = require('moment'); +import {InfoItemProps, InfoItemRow} from '../info-item/info-item'; + +function formatTimestamp(ts: string): string { + const inputFormat = 'YYYY-MM-DD HH:mm:ss Z z'; + const m = moment(ts, inputFormat); + if (!ts || !m.isValid()) { + return 'Never'; + } + return m.format('MMM D YYYY [at] hh:mm:ss'); +} export interface Revision { number: string; @@ -24,7 +38,7 @@ const ImageItems = (props: {images: ImageInfo[]}) => { if (imageItems.length === 0) { imageItems = []; } - return {img.image}} items={imageItems} />; + return {img.image}
} items={imageItems} />; })}
); @@ -41,31 +55,29 @@ interface RevisionWidgetProps { export const RevisionWidget = (props: RevisionWidgetProps) => { const {revision, initCollapsed} = props; const [collapsed, setCollapsed] = React.useState(initCollapsed); - const icon = collapsed ? 'fa-chevron-circle-down' : 'fa-chevron-circle-up'; + const icon = collapsed ? faChevronCircleDown : faChevronCircleUp; const images = parseImages(revision.replicaSets); + const hasPods = (revision.replicaSets || []).some((rs) => rs.pods?.length > 0); return ( - - +
+
Revision {revision.number}
{!props.current && props.rollback && ( - props.rollback(Number(revision.number))} - label='ROLLBACK' - icon='fa-undo-alt' - style={{fontSize: '13px'}} - indicateLoading - shouldConfirm - /> + props.rollback(Number(revision.number))} + type='default' + icon={} + style={{fontSize: '13px', marginRight: '10px'}}> + Rollback + )} - setCollapsed(!collapsed)}> - - + {hasPods && setCollapsed(!collapsed)} />}
- - +
+
- +
{!collapsed && ( @@ -79,7 +91,7 @@ export const RevisionWidget = (props: RevisionWidgetProps) => { )} )} - +
); }; @@ -88,7 +100,7 @@ const AnalysisRunWidget = (props: {analysisRuns: RolloutAnalysisRunInfo[]}) => { const [selection, setSelection] = React.useState(null); return ( - +
Analysis Runs
{analysisRuns.map((ar) => { @@ -97,7 +109,7 @@ const AnalysisRunWidget = (props: {analysisRuns: RolloutAnalysisRunInfo[]}) => { return (
Name: {ar.objectMeta.name} @@ -116,10 +128,9 @@ const AnalysisRunWidget = (props: {analysisRuns: RolloutAnalysisRunInfo[]}) => { className={`analysis__runs-action ${ ar.status === 'Running' ? 'analysis--pending' : ar.status === 'Successful' ? 'analysis--success' : 'analysis--failure' }`}> - (selection?.objectMeta.name === ar.objectMeta.name ? setSelection(null) : setSelection(ar))} - label={`Analysis ${temp[len - 2] + '-' + temp[len - 1]}`} - /> +
); @@ -149,13 +160,13 @@ const AnalysisRunWidget = (props: {analysisRuns: RolloutAnalysisRunInfo[]}) => {
MetricName: {job.metricName}
} - customIcon='fa-chart-bar' + customIcon={faChartBar} /> ); })}
metric.name === selection.jobs[0].metricName) .map((metric) => { return ( @@ -212,13 +223,13 @@ const AnalysisRunWidget = (props: {analysisRuns: RolloutAnalysisRunInfo[]}) => {
MetricName: {nonJob.metricName}
} - customIcon='fa-chart-bar' + customIcon={faChartBar} /> ); })} metric.name === selection.nonJobInfo[0].metricName) .map((metric) => { return ( @@ -260,6 +271,6 @@ const AnalysisRunWidget = (props: {analysisRuns: RolloutAnalysisRunInfo[]}) => { )} )} -
+ ); }; diff --git a/ui/src/app/components/rollout/rollout.scss b/ui/src/app/components/rollout/rollout.scss index 88819de47b..ad6247c478 100644 --- a/ui/src/app/components/rollout/rollout.scss +++ b/ui/src/app/components/rollout/rollout.scss @@ -1,26 +1,13 @@ -@import 'node_modules/argo-ui/v2/styles/colors'; +@import "node_modules/argo-ui/v2/styles/colors"; .revision { padding: 15px; margin-bottom: 1em; background: none; - &__background { - background: $argo-color-gray-2; - border: 1px solid $argo-color-gray-4; - border-radius: 5px; - } - - &--dark > &__background { - border: none; - background: $slate; - } - - &:hover > &__background { - transform: scale(1.02); - box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.1); - } - + background: $argo-color-gray-1; + border-radius: 5px; + &__header { display: flex; align-items: center; @@ -40,39 +27,36 @@ } .steps { - width: 250px; + width: 300px; flex-shrink: 0; - max-height: 500px; overflow-y: auto; &__step { padding: 15px 18px; - &__background { - border-radius: 10px; - border: 1px solid $argo-color-gray-4; - &--dark { - border: 1px solid $silver-lining; - } + border-radius: 10px; + border: 1px solid $argo-color-gray-4; + &--dark { + border: 1px solid $silver-lining; } - &:hover > &__background { + &:hover { border: 1px solid $sherbert; } - &--complete > &__background { + &--complete { border: 2px solid $argo-success-color; } - &--complete:hover > &__background { + &--complete:hover { border: 2px solid $argo-success-color; } - &--current > &__background { + &--current { border: 2px solid $sherbert; } - &--current:hover > &__background { + &--current:hover { border: 2px solid $sherbert; } @@ -105,6 +89,7 @@ display: flex; align-items: center; justify-content: space-between; + font-weight: 600; } &-title { @@ -112,20 +97,6 @@ padding-bottom: 4px; font-size: 14px; } - - &-value { - font-weight: 600; - padding-bottom: 4px; - border-bottom: 1px solid $argo-color-gray-4; - &:last-child { - padding-bottom: -8px; - border-bottom: none; - } - } - } - - &:hover > &__background { - transform: scale(1.02); } } @@ -163,9 +134,8 @@ } .info { - border: 1px solid $argo-color-gray-4; border-radius: 5px; - padding: 20px; + padding: 15px; background-color: white; height: max-content; box-sizing: border-box; @@ -217,27 +187,23 @@ } .action-button { - font-size: '10px'; + font-size: "10px"; line-height: 1; - border: '1px solid'; - padding: '8px 8px 8px 10px'; - border-radius: '12px'; - color: 'white'; + border: "1px solid"; + padding: "8px 8px 8px 10px"; + border-radius: "12px"; + color: "white"; margin-top: 4px; } &.analysis--success .action-button:hover { - .action-button__background { - background-color: seagreen; - border-color: seagreen; - } + background-color: seagreen; + border-color: seagreen; } &.analysis--failure .action-button:hover { - .action-button__background { - background-color: red; - border-color: red; - } + background-color: red; + border-color: red; } } } @@ -362,6 +328,7 @@ &__toolbar { box-sizing: border-box; font-size: 14px; + font-weight: 600; display: flex; align-items: center; padding: 0 10px; @@ -386,7 +353,7 @@ } &__revisions { - width: 550px; + width: 100%; } &__body { diff --git a/ui/src/app/components/rollout/rollout.tsx b/ui/src/app/components/rollout/rollout.tsx index 77d6607ac4..91b6c0a9d8 100644 --- a/ui/src/app/components/rollout/rollout.tsx +++ b/ui/src/app/components/rollout/rollout.tsx @@ -1,8 +1,6 @@ -import {EffectDiv, InfoItemKind, InfoItemRow, Spinner, ThemeDiv, WaitFor} from 'argo-ui/v2'; import * as React from 'react'; import {Helmet} from 'react-helmet'; -import {Key, KeybindingContext} from 'react-keyhooks'; -import {useHistory, useParams} from 'react-router-dom'; +import {useParams} from 'react-router-dom'; import { GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStep, GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1HeaderRoutingMatch, @@ -21,6 +19,9 @@ import {ContainersWidget} from './containers'; import {Revision, RevisionWidget} from './revision'; import './rollout.scss'; import {Fragment} from 'react'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {faChevronCircleDown, faChevronCircleUp, faCircleNotch} from '@fortawesome/free-solid-svg-icons'; +import {InfoItemKind, InfoItemRow} from '../info-item/info-item'; const RolloutActions = React.lazy(() => import('../rollout-actions/rollout-actions')); export interface ImageInfo { @@ -104,78 +105,85 @@ export const RolloutWidget = (props: {rollout: RolloutRolloutInfo; interactive?: } return ( - -
- -
Summary
- - - - {rollout.strategy === Strategy.Canary && ( - - - - {' '} - - )} - -
- - { - interactive.api.rolloutServiceSetRolloutImage({}, interactive.namespace, rollout.objectMeta?.name, container, image, tag); - }, - } - : null - } - /> - +
+
+ {(rollout?.strategy || '').toLowerCase() === 'canary' && rollout.steps && rollout.steps.length > 0 && }
-
- {rollout.replicaSets && rollout.replicaSets.length > 0 && ( - -
Revisions
-
- {revisions.map((r, i) => ( - interactive.api.rolloutServiceUndoRollout({}, interactive.namespace, rollout.objectMeta.name, `${r}`) : null} - current={i === 0} - message={rollout.message} - /> - ))} +
+
+
+
Summary
+ + +
+ {rollout.strategy === Strategy.Canary && ( + + + + {' '} + + )}
- - )} - {(rollout?.strategy || '').toLowerCase() === 'canary' && rollout.steps && rollout.steps.length > 0 && ( - - Steps -
- {rollout.steps - .filter((step) => Object.keys(step).length) - .map((step, i, arr) => ( - +
+
+ { + interactive.api.rolloutServiceSetRolloutImage({}, interactive.namespace, rollout.objectMeta?.name, container, image, tag); + }, + } + : null + } + /> +
+
+ +
+ {rollout.replicaSets && rollout.replicaSets.length > 0 && ( +
+
Revisions
+
+ {revisions.map((r, i) => ( + interactive.api.rolloutServiceUndoRollout({}, interactive.namespace, rollout.objectMeta.name, `${r}`) : null} + current={i === 0} + message={rollout.message} + /> ))} +
- - )} + )} +
- +
); }; +const Steps = (props: {rollout: RolloutInfo; curStep: number}) => ( +
+
Steps
+
+ {props.rollout.steps + .filter((step) => Object.keys(step).length) + .map((step, i, arr) => ( + + ))} +
+
+); + export const Rollout = () => { const {name} = useParams<{name: string}>(); @@ -183,39 +191,25 @@ export const Rollout = () => { const api = React.useContext(RolloutAPIContext); const namespaceCtx = React.useContext(NamespaceContext); - const {useKeybinding} = React.useContext(KeybindingContext); const editState = React.useState(false); - const history = useHistory(); - - useKeybinding(Key.L, () => { - if (editState[0]) { - return false; - } - history.push('/rollouts'); - return true; - }); return (
{name} / Argo Rollouts - - +
+
{name}
- +
- }> + }>
- +
- - - - - +
{!loading && }
); }; @@ -328,7 +322,7 @@ const Step = (props: {step: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1 return ( - +
} {content} {unit} {props.step.setCanaryScale && ( - setOpenCanary(!openCanary)}> +
setOpenCanary(!openCanary)}> - +
)} {props.step.analysis && ( - setOpenAnalysis(!openAnalysis)}> +
setOpenAnalysis(!openAnalysis)}> - +
)} {props.step.setHeaderRoute && props.step.setHeaderRoute.match && ( - setOpenHeader(!openHeader)}> +
setOpenHeader(!openHeader)}> - +
)} {props.step.setMirrorRoute && props.step.setMirrorRoute.match && ( - setOpenMirror(!openMirror)}> +
setOpenMirror(!openMirror)}> - +
)}
{props.step.experiment?.templates && ( @@ -387,8 +381,8 @@ const Step = (props: {step: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1 {props.step?.setCanaryScale && openCanary && } {props.step?.setHeaderRoute && openHeader && } {props.step?.setMirrorRoute && openMirror && } - - {!props.last && } +
+ {!props.last &&
} ); }; @@ -402,23 +396,21 @@ const ExperimentWidget = ({ opened: boolean; onToggle: (name: string) => void; }) => { - const icon = opened ? 'fa-chevron-circle-up' : 'fa-chevron-circle-down'; + const icon = opened ? faChevronCircleUp : faChevronCircleDown; return ( - - +
+
{template.name} - onToggle(opened ? '' : template.name)}> - - - + onToggle(opened ? '' : template.name)} style={{cursor: 'pointer'}} /> +
{opened && } - +
); }; const WidgetItem = ({values}: {values: Record}) => { return ( - +
{Object.keys(values).map((val) => { if (!values[val]) return null; return ( @@ -428,14 +420,14 @@ const WidgetItem = ({values}: {values: Record}) => { ); })} - +
); }; const WidgetItemSetMirror = ({value}: {value: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SetMirrorRoute}) => { if (!value) return null; return ( - +
Name
{value.name}
@@ -493,14 +485,14 @@ const WidgetItemSetMirror = ({value}: {value: GithubComArgoprojArgoRolloutsPkgAp return fragments; })}
- +
); }; const WidgetItemSetHeader = ({values}: {values: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1HeaderRoutingMatch[]}) => { if (!values) return null; return ( - +
{values.map((record) => { if (!record.headerName) return null; if (!record.headerValue) return null; @@ -528,6 +520,6 @@ const WidgetItemSetHeader = ({values}: {values: GithubComArgoprojArgoRolloutsPkg ); })} - +
); }; diff --git a/ui/src/app/components/rollouts-list/rollouts-list.scss b/ui/src/app/components/rollouts-list/rollouts-list.scss index 3892e8cb9a..f0ec5fdcc7 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.scss +++ b/ui/src/app/components/rollouts-list/rollouts-list.scss @@ -16,6 +16,11 @@ $colWidth: ($WIDGET_WIDTH + (2 * $widgetPadding)) + $widgetMarginRight; margin: 0 auto; } + &__search { + width: 100%; + font-size: 15px; + } + &__rollouts-container { padding: 20px; display: flex; @@ -89,7 +94,7 @@ $colWidth: ($WIDGET_WIDTH + (2 * $widgetPadding)) + $widgetMarginRight; &__toolbar { width: 100%; - padding-top: 1.5em; + padding: 1em 0; background-color: white; border-bottom: 1px solid white; @@ -111,48 +116,30 @@ $colWidth: ($WIDGET_WIDTH + (2 * $widgetPadding)) + $widgetMarginRight; flex-shrink: 0; margin-bottom: 1.5em; border-radius: 5px; + background-color: white; + box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.05); + border: 1px solid $argo-color-gray-4; + z-index: 0; - &__pods { - margin-bottom: 1em; - } - - &__background { - background-color: white; - box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.05); - border: 1px solid $argo-color-gray-4; - - border-radius: 5px; - &--dark { - border-color: $silver-lining; - box-shadow: 1px 2px 3px 1px $space; - background: none; - } - } - - &:hover > &__background, - &--selected > &__background { - transform: scale(1.01); - border-color: $sherbert; + &:hover, + &--selected { + border-color: $argo-running-color; } - &--dark:hover > &__background, - &--dark#{&}--selected > &__background { - border-color: $spray-tan; + &__pods { + margin-bottom: 1em; } &--dark { color: $dull-shine; - } - - &__container { - position: relative; - display: block; - z-index: 2; + border-color: $silver-lining; + box-shadow: 1px 2px 3px 1px $space; + background: none; } &__refresh { &:hover { - color: $sherbert; + color: $argo-running-color; } } @@ -169,10 +156,8 @@ $colWidth: ($WIDGET_WIDTH + (2 * $widgetPadding)) + $widgetMarginRight; color: $argo-color-gray-8; display: flex; align-items: center; - font-weight: 500; - font-size: 18px; - border-bottom: 1px solid $argo-color-gray-4; - padding-bottom: 1em; + font-weight: 600; + font-size: 20px; margin-bottom: 1em; } @@ -181,9 +166,11 @@ $colWidth: ($WIDGET_WIDTH + (2 * $widgetPadding)) + $widgetMarginRight; border-bottom: 1px solid $silver-lining; } &__actions { + position: relative; display: flex; align-items: center; margin-top: 1.5em; + z-index: 10 !important; } } } diff --git a/ui/src/app/components/rollouts-list/rollouts-list.tsx b/ui/src/app/components/rollouts-list/rollouts-list.tsx index ba7189adb5..e8c9a4dc5f 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.tsx +++ b/ui/src/app/components/rollouts-list/rollouts-list.tsx @@ -1,4 +1,3 @@ -import {Autocomplete, EffectDiv, InfoItemKind, InfoItemRow, Spinner, ThemeDiv, useAutocomplete, WaitFor} from 'argo-ui/v2'; import * as React from 'react'; import {Key, KeybindingContext, useNav} from 'react-keyhooks'; import {Link, useHistory} from 'react-router-dom'; @@ -10,9 +9,20 @@ import {ParsePodStatus, PodStatus, ReplicaSets} from '../pods/pods'; import {RolloutAction, RolloutActionButton} from '../rollout-actions/rollout-actions'; import {RolloutStatus, StatusIcon} from '../status-icon/status-icon'; import './rollouts-list.scss'; +import {AutoComplete, Tooltip} from 'antd'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {faCircleNotch, faRedoAlt} from '@fortawesome/free-solid-svg-icons'; +import {InfoItemKind, InfoItemRow} from '../info-item/info-item'; const useRolloutNames = (rollouts: RolloutInfo[]) => { - const parseNames = (rl: RolloutInfo[]) => (rl || []).map((r) => r.objectMeta?.name || ''); + const parseNames = (rl: RolloutInfo[]) => + (rl || []).map((r) => { + const name = r.objectMeta?.name || ''; + return { + label: name, + value: name, + }; + }); const [rolloutNames, setRolloutNames] = React.useState(parseNames(rollouts)); React.useEffect(() => { @@ -28,26 +38,25 @@ export const RolloutsList = () => { const loading = rolloutsList.loading; const [filteredRollouts, setFilteredRollouts] = React.useState(rollouts); const [pos, nav, reset] = useNav(filteredRollouts.length); - const [searchString, setSearchString, searchInput] = useAutocomplete(''); + const [searchString, setSearchString] = React.useState(''); const searchParam = new URLSearchParams(window.location.search).get('q'); React.useEffect(() => { - if (searchParam && searchParam != searchString) { - setSearchString(searchParam); - } + if (searchParam && searchParam != searchString) { + setSearchString(searchParam); + } }, []); - const {useKeybinding, keybindingState} = React.useContext(KeybindingContext); + const searchRef = React.useRef(null); - // ignore H key when typing - const hGroup = keybindingState.groupForKey[Key.H]; - const showHelpMenu = keybindingState.groups[hGroup][Key.H].action; - keybindingState.groups[hGroup][Key.H].action = () => { - if (searchInput.inputref.current === document.activeElement) { - return false; - } else { - return showHelpMenu(); + React.useEffect(() => { + if (searchRef.current) { + // or, if Input component in your ref, then use input property like: + // searchRef.current.input.focus(); + searchRef.current.focus(); } - }; + }, [searchRef]); + + const {useKeybinding} = React.useContext(KeybindingContext); useKeybinding(Key.RIGHT, () => nav(1)); useKeybinding(Key.LEFT, () => nav(-1)); @@ -66,8 +75,8 @@ export const RolloutsList = () => { useKeybinding(Key.SLASH, () => { if (!searchString) { - if (searchInput.inputref.current) { - searchInput.inputref.current.focus(); + if (searchRef) { + searchRef.current.focus(); } return true; } @@ -88,7 +97,9 @@ export const RolloutsList = () => { setFilteredRollouts(filtered); } if (searchString) { - history.replace(`/${namespaceCtx.namespace}?q=${searchString}`); + history.replace(`/${namespaceCtx.namespace}?q=${searchString}`); + } else { + history.replace(`/${namespaceCtx.namespace}`); } }, [searchString, rollouts]); @@ -96,32 +107,35 @@ export const RolloutsList = () => { return (
- - {(rollouts || []).length > 0 ? ( - - -
- history.push(`/rollout/${namespaceCtx.namespace}/${item}`)} - icon='fa-search' - {...searchInput} - /> -
-
-
- {(filteredRollouts.sort((a, b) => (a.objectMeta.name < b.objectMeta.name ? -1 : 1)) || []).map((rollout, i) => ( - reset()} /> - ))} + {loading ? ( +
+ + Loading... +
+ ) : (rollouts || []).length > 0 ? ( + +
+
+ history.push(`/rollout/${namespaceCtx.namespace}/${val}`)} + options={rolloutNames} + onChange={(val) => setSearchString(val)} + value={searchString} + ref={searchRef} + />
- - ) : ( - - )} - +
+
+ {(filteredRollouts.sort((a, b) => (a.objectMeta.name < b.objectMeta.name ? -1 : 1)) || []).map((rollout, i) => ( + reset()} /> + ))} +
+
+ ) : ( + + )}
); }; @@ -131,7 +145,7 @@ const EmptyMessage = (props: {namespace: string}) => { return
 navigator.clipboard.writeText(props.children)}>{props.children}
; }; return ( - +

No Rollouts to display!

Make sure you are running the API server in the correct namespace. Your current namespace is:
@@ -149,7 +163,7 @@ const EmptyMessage = (props: {namespace: string}) => { .
- +
); }; @@ -184,33 +198,33 @@ export const RolloutWidget = (props: {rollout: RolloutInfo; deselect: () => void }, [watching, rollout]); return ( - - - { - subscribe(true); - setTimeout(() => { - subscribe(false); - }, 1000); - }} + + { + subscribe(true); + setTimeout(() => { + subscribe(false); + }, 1000); + }} + /> +
+ - - - {(rollout.strategy || '').toLocaleLowerCase() === 'canary' && } - - }> - - -
- subscribe(true)} indicateLoading /> - subscribe(true)} indicateLoading /> -
- - + {(rollout.strategy || '').toLocaleLowerCase() === 'canary' && } +
+ {(rollout.replicaSets || []).length < 1 && } + +
+ subscribe(true)} indicateLoading /> + subscribe(true)} indicateLoading /> +
+ ); }; @@ -224,15 +238,19 @@ const WidgetHeader = (props: {rollout: RolloutInfo; refresh: () => void}) => {
{rollout.objectMeta?.name} - { - props.refresh(); - setLoading(true); - e.preventDefault(); - }} - /> + + { + props.refresh(); + setLoading(true); + e.preventDefault(); + }} + /> +
diff --git a/ui/src/app/components/status-icon/status-icon.tsx b/ui/src/app/components/status-icon/status-icon.tsx index 7f18813f4b..257dc50567 100644 --- a/ui/src/app/components/status-icon/status-icon.tsx +++ b/ui/src/app/components/status-icon/status-icon.tsx @@ -1,6 +1,6 @@ -import {Tooltip} from 'argo-ui/v2'; import * as React from 'react'; import './status-icon.scss'; +import {Tooltip} from 'antd'; export enum RolloutStatus { Progressing = 'Progressing', @@ -40,7 +40,11 @@ export const StatusIcon = (props: {status: RolloutStatus}): JSX.Element => { className = 'unknown'; } } - return ; + return ( + + + + ); }; export enum ReplicaSetStatus { @@ -84,7 +88,7 @@ export const ReplicaSetStatusIcon = (props: {status: ReplicaSetStatus}) => { } } return ( - + ); diff --git a/ui/src/assets/images/argologo.svg b/ui/src/assets/images/argologo.svg new file mode 100644 index 0000000000..eeeb3fb36d --- /dev/null +++ b/ui/src/assets/images/argologo.svg @@ -0,0 +1 @@ +Asset 3 \ No newline at end of file diff --git a/ui/src/config/theme.ts b/ui/src/config/theme.ts new file mode 100644 index 0000000000..c377896a2e --- /dev/null +++ b/ui/src/config/theme.ts @@ -0,0 +1,15 @@ +import { ThemeConfig } from 'antd/es/config-provider'; + +export const theme: ThemeConfig = { + components: { + Button: { + colorPrimary: '#44505f', + colorPrimaryBgHover: '#626f7e', + colorPrimaryHover: '#626f7e', + colorPrimaryActive: '#626f7e', + borderRadius: 100, + borderRadiusSM: 100, + borderRadiusLG: 100 + } + } +}; diff --git a/ui/yarn.lock b/ui/yarn.lock index dbaded50fa..29f5446d37 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -2,6 +2,53 @@ # yarn lockfile v1 +"@ant-design/colors@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-7.0.0.tgz#eb7eecead124c3533aea05d61254f0a17f2b61b3" + integrity sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg== + dependencies: + "@ctrl/tinycolor" "^3.4.0" + +"@ant-design/cssinjs@^1.7.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.8.1.tgz#326682e779f5cd074668391a6698b50342a07d92" + integrity sha512-pOQJV9H9viB6qB9u7hkpKEOIQGx4dd8zjpwzF1v8YNwjffbZTlyUNQYln56gwpFF7SFskpYpnSfgoqTK4sFE/Q== + dependencies: + "@babel/runtime" "^7.11.1" + "@emotion/hash" "^0.8.0" + "@emotion/unitless" "^0.7.5" + classnames "^2.3.1" + csstype "^3.0.10" + rc-util "^5.27.0" + stylis "^4.0.13" + +"@ant-design/icons-svg@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz#8630da8eb4471a4aabdaed7d1ff6a97dcb2cf05a" + integrity sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw== + +"@ant-design/icons@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.0.1.tgz#febb1fdc5776f58187b2c953ac9a4496069d045b" + integrity sha512-ZyF4ksXCcdtwA/1PLlnFLcF/q8/MhwxXhKHh4oCHDA4Ip+ZzAHoICtyp4wZWfiCVDP0yuz3HsjyvuldHFb3wjA== + dependencies: + "@ant-design/colors" "^7.0.0" + "@ant-design/icons-svg" "^4.2.1" + "@babel/runtime" "^7.11.2" + classnames "^2.2.6" + rc-util "^5.9.4" + +"@ant-design/react-slick@~1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@ant-design/react-slick/-/react-slick-1.0.0.tgz#4696eecaa2dea0429e47ae24c267015cfd6df35c" + integrity sha512-OKxZsn8TAf8fYxP79rDXgLs9zvKMTslK6dJ4iLhDXOujUqC5zJPBRszyrcEHXcMPOm1Sgk40JgyF3yiL/Swd7w== + dependencies: + "@babel/runtime" "^7.10.4" + classnames "^2.2.5" + json2mq "^0.2.0" + resize-observer-polyfill "^1.5.1" + throttle-debounce "^5.0.0" + "@babel/code-frame@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" @@ -1164,6 +1211,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/runtime@^7.12.1": version "7.17.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" @@ -1232,11 +1286,26 @@ resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== +"@ctrl/tinycolor@^3.4.0", "@ctrl/tinycolor@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz#53fa5fe9c34faee89469e48f91d51a3766108bc8" + integrity sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ== + "@discoveryjs/json-ext@^0.5.0": version "0.5.2" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== +"@emotion/hash@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== + +"@emotion/unitless@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + "@eslint/eslintrc@^0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" @@ -1252,11 +1321,37 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@fortawesome/fontawesome-common-types@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz#88da2b70d6ca18aaa6ed3687832e11f39e80624b" + integrity sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ== + "@fortawesome/fontawesome-free@^5.8.1": version "5.15.4" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== +"@fortawesome/fontawesome-svg-core@^6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz#3727552eff9179506e9203d72feb5b1063c11a21" + integrity sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw== + dependencies: + "@fortawesome/fontawesome-common-types" "6.4.0" + +"@fortawesome/free-solid-svg-icons@^6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz#48c0e790847fa56299e2f26b82b39663b8ad7119" + integrity sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ== + dependencies: + "@fortawesome/fontawesome-common-types" "6.4.0" + +"@fortawesome/react-fontawesome@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz#d90dd8a9211830b4e3c08e94b63a0ba7291ddcf4" + integrity sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw== + dependencies: + prop-types "^15.8.1" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -1522,6 +1617,63 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28" integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ== +"@rc-component/context@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@rc-component/context/-/context-1.3.0.tgz#608ccf0abcbec9406751b17a4b35db08e481c110" + integrity sha512-6QdaCJ7Wn5UZLJs15IEfqy4Ru3OaL5ctqpQYWd5rlfV9wwzrzdt6+kgAQZV/qdB0MUPN4nhyBfRembQCIvBf+w== + dependencies: + "@babel/runtime" "^7.10.1" + rc-util "^5.27.0" + +"@rc-component/mini-decimal@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@rc-component/mini-decimal/-/mini-decimal-1.0.1.tgz#e5dbc20a6a5b0e234d279bc71ce730ab865d3910" + integrity sha512-9N8nRk0oKj1qJzANKl+n9eNSMUGsZtjwNuDCiZ/KA+dt1fE3zq5x2XxclRcAbOIXnZcJ53ozP2Pa60gyELXagA== + dependencies: + "@babel/runtime" "^7.18.0" + +"@rc-component/mutate-observer@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@rc-component/mutate-observer/-/mutate-observer-1.0.0.tgz#ce99af3239ed9c74ee3e7302f1c67098de920b46" + integrity sha512-okqRJSfNisXdI6CUeOLZC5ukBW/8kir2Ii4PJiKpUt+3+uS7dxwJUMxsUZquxA1rQuL8YcEmKVp/TCnR+yUdZA== + dependencies: + "@babel/runtime" "^7.18.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/portal@^1.0.0-6", "@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.0.2", "@rc-component/portal@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@rc-component/portal/-/portal-1.1.1.tgz#1a30ffe51c240b54360cba8e8bfc5d1f559325c4" + integrity sha512-m8w3dFXX0H6UkJ4wtfrSwhe2/6M08uz24HHrF8pWfAXPwA9hwCuTE5per/C86KwNLouRpwFGcr7LfpHaa1F38g== + dependencies: + "@babel/runtime" "^7.18.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/tour@~1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.8.0.tgz#fda8b533e36db1d4254e3ffbcefe3395c346eb1c" + integrity sha512-rrRGioHTLQlGca27G2+lw7QpRb3uuMYCUIJjj31/B44VCJS0P2tqYhOgtzvWQmaLMlWH3ZlpzotkKX13NT4XEA== + dependencies: + "@babel/runtime" "^7.18.0" + "@rc-component/portal" "^1.0.0-9" + "@rc-component/trigger" "^1.3.6" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/trigger@^1.0.4", "@rc-component/trigger@^1.3.6", "@rc-component/trigger@^1.5.0", "@rc-component/trigger@^1.7.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-1.8.0.tgz#9eb26ecdd29971d7e6d30e83716d40f27b8bb596" + integrity sha512-O9d4Tlg/FiCUlkQ+aAUUO5KmrBbj4XYq6qYfZE/hvNHzIepHqwLGx8H/d+1fG13dVPq70nGDf5ha9PQ96YRMVg== + dependencies: + "@babel/runtime" "^7.18.3" + "@rc-component/portal" "^1.1.0" + classnames "^2.3.2" + rc-align "^4.0.0" + rc-motion "^2.0.0" + rc-resize-observer "^1.3.1" + rc-util "^5.29.2" + "@rollup/plugin-node-resolve@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" @@ -2458,6 +2610,60 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +antd@^5.4.2: + version "5.4.2" + resolved "https://registry.yarnpkg.com/antd/-/antd-5.4.2.tgz#3923b96da76fc7276992e9fc0286ebb3a638e016" + integrity sha512-OxXZ7joFf6Um4zeXm07tyJ9WV6eMwUw1KUmewfM/BDceUFVtJVf7YbBTBfX3JTl+jOuSpMSb4naFhOCgVwtyFw== + dependencies: + "@ant-design/colors" "^7.0.0" + "@ant-design/cssinjs" "^1.7.1" + "@ant-design/icons" "^5.0.0" + "@ant-design/react-slick" "~1.0.0" + "@babel/runtime" "^7.18.3" + "@ctrl/tinycolor" "^3.6.0" + "@rc-component/mutate-observer" "^1.0.0" + "@rc-component/tour" "~1.8.0" + "@rc-component/trigger" "^1.7.0" + classnames "^2.2.6" + copy-to-clipboard "^3.2.0" + dayjs "^1.11.1" + qrcode.react "^3.1.0" + rc-cascader "~3.10.0" + rc-checkbox "~3.0.0" + rc-collapse "~3.5.2" + rc-dialog "~9.1.0" + rc-drawer "~6.1.1" + rc-dropdown "~4.0.0" + rc-field-form "~1.29.0" + rc-image "~5.16.0" + rc-input "~1.0.4" + rc-input-number "~7.4.0" + rc-mentions "~2.2.0" + rc-menu "~9.8.3" + rc-motion "^2.6.1" + rc-notification "~5.0.0" + rc-pagination "~3.3.1" + rc-picker "~3.6.1" + rc-progress "~3.4.1" + rc-rate "~2.10.0" + rc-resize-observer "^1.2.0" + rc-segmented "~2.1.2" + rc-select "~14.4.3" + rc-slider "~10.1.0" + rc-steps "~6.0.0" + rc-switch "~4.0.0" + rc-table "~7.31.0" + rc-tabs "~12.5.6" + rc-textarea "~1.2.2" + rc-tooltip "~6.0.0" + rc-tree "~5.7.0" + rc-tree-select "~5.8.0" + rc-trigger "^5.3.4" + rc-upload "~4.3.0" + rc-util "^5.27.0" + scroll-into-view-if-needed "^3.0.3" + throttle-debounce "^5.0.0" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -2558,6 +2764,11 @@ array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: get-intrinsic "^1.1.1" is-string "^1.0.5" +array-tree-filter@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" + integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -2664,6 +2875,11 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async-validator@^4.1.0: + version "4.2.5" + resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339" + integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== + async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -3459,6 +3675,11 @@ classnames@2.2.6, classnames@^2.2.5, classnames@^2.2.6: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== +classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.3.1, classnames@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + clean-css@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" @@ -3639,6 +3860,11 @@ compression@^1.7.4: safe-buffer "5.1.2" vary "~1.1.2" +compute-scroll-into-view@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz#c418900a5c56e2b04b885b54995df164535962b1" + integrity sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -3730,6 +3956,13 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +copy-to-clipboard@^3.2.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== + dependencies: + toggle-selection "^1.0.6" + copy-webpack-plugin@^6.3.2: version "6.4.1" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz#138cd9b436dbca0a6d071720d5414848992ec47e" @@ -4105,6 +4338,11 @@ csstype@^2.2.0: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== +csstype@^3.0.10: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + csstype@^3.0.2: version "3.0.8" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" @@ -4144,6 +4382,11 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +dayjs@^1.11.1: + version "1.11.7" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" + integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -4371,6 +4614,11 @@ dom-accessibility-api@^0.5.4: resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz#b06d059cdd4a4ad9a79275f9d414a5c126241166" integrity sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ== +dom-align@^1.7.0: + version "1.12.4" + resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511" + integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== + dom-converter@^0.2: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" @@ -7114,6 +7362,13 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" + integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== + dependencies: + string-convert "^0.2.0" + json3@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" @@ -9291,6 +9546,15 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.1, object-assign "^4.1.1" react-is "^16.8.1" +prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + proxy-addr@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" @@ -9366,6 +9630,11 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= +qrcode.react@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.1.0.tgz#5c91ddc0340f768316fbdb8fff2765134c2aecd8" + integrity sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q== + qs@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" @@ -9454,6 +9723,374 @@ raw-loader@^4.0.2: loader-utils "^2.0.0" schema-utils "^3.0.0" +rc-align@^4.0.0: + version "4.0.15" + resolved "https://registry.yarnpkg.com/rc-align/-/rc-align-4.0.15.tgz#2bbd665cf85dfd0b0244c5a752b07565e9098577" + integrity sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + dom-align "^1.7.0" + rc-util "^5.26.0" + resize-observer-polyfill "^1.5.1" + +rc-cascader@~3.10.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.10.1.tgz#bee2732c4ef86dcca06de83d065b1b0d612ff057" + integrity sha512-tImBYEAqLlIZ+jnRmfQQEm5gOXa09N9aGV9AKxriXlCvsNEfdZMIRyY0p74sEZIUn0ycXHo8VcOlqsgLcgFknQ== + dependencies: + "@babel/runtime" "^7.12.5" + array-tree-filter "^2.1.0" + classnames "^2.3.1" + rc-select "~14.4.0" + rc-tree "~5.7.0" + rc-util "^5.6.1" + +rc-checkbox@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-3.0.0.tgz#6b426d16c7d2ed9fee219a1dfb14d2c504a45300" + integrity sha512-tOEs1+wWDUei7DuP2EsJCZfam5vxMjKTCGcZdXVgsiOcNszc41Esycbo31P0/jFwUAPmd5oPYFWkcnFUCTLZxA== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.3.2" + rc-util "^5.25.2" + +rc-collapse@~3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.5.2.tgz#abb7d144ad55bd9cbd201fa95bc5b271da2aa7c3" + integrity sha512-/TNiT3DW1t3sUCiVD/DPUYooJZ3BLA93/2rZsB3eM2bGJCCla2X9D2E4tgm7LGMQGy5Atb2lMUn2FQuvQNvavQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.3.4" + rc-util "^5.27.0" + +rc-dialog@~9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.1.0.tgz#6bf6fcc0453503b7643e54a5a445e835e3850649" + integrity sha512-5ry+JABAWEbaKyYsmITtrJbZbJys8CtMyzV8Xn4LYuXMeUx5XVHNyJRoqLFE4AzBuXXzOWeaC49cg+XkxK6kHA== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/portal" "^1.0.0-8" + classnames "^2.2.6" + rc-motion "^2.3.0" + rc-util "^5.21.0" + +rc-drawer@~6.1.1: + version "6.1.5" + resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-6.1.5.tgz#c4137b944c16b7c179d0dba6f06ebe54f9311ec8" + integrity sha512-MDRomQXFi+tvDuwsRAddJ2Oy2ayLCZ29weMzp3rJFO9UNEVLEVV7nuyx5lEgNJIdM//tE6wWQV95cTUiMVqD6w== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/portal" "^1.0.0-6" + classnames "^2.2.6" + rc-motion "^2.6.1" + rc-util "^5.21.2" + +rc-dropdown@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-4.0.1.tgz#f65d9d3d89750241057db59d5a75e43cd4576b68" + integrity sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g== + dependencies: + "@babel/runtime" "^7.18.3" + classnames "^2.2.6" + rc-trigger "^5.3.1" + rc-util "^5.17.0" + +rc-field-form@~1.29.0: + version "1.29.2" + resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.29.2.tgz#1c07f29eb88c13e2987fd0bd1e977dfea9e789a7" + integrity sha512-gXNkthHMUjJ7gDKYmD/lJWJrpMqAjiEPQE4QmlOuZoiHF51LybCL/y+iAmLXpdEjPfJ41WtZBH5hZMUEnEnHXA== + dependencies: + "@babel/runtime" "^7.18.0" + async-validator "^4.1.0" + rc-util "^5.8.0" + +rc-image@~5.16.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-5.16.0.tgz#79d5864bc1c5d66c4620176cc131d34cd4f4bea8" + integrity sha512-11DOye57IgTXh2yTsmxFNynZJG3tdx8RZnnaqb38eYWrBPPyhVHIuURxyiSZ8B68lEUAggR7SBA0Zb95KP/CyQ== + dependencies: + "@babel/runtime" "^7.11.2" + "@rc-component/portal" "^1.0.2" + classnames "^2.2.6" + rc-dialog "~9.1.0" + rc-motion "^2.6.2" + rc-util "^5.0.6" + +rc-input-number@~7.4.0: + version "7.4.2" + resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-7.4.2.tgz#7c52d26b986461aa16e486d469dc0476d97c6ea3" + integrity sha512-yGturTw7WGP+M1GbJ+UTAO7L4buxeW6oilhL9Sq3DezsRS8/9qec4UiXUbeoiX9bzvRXH11JvgskBtxSp4YSNg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/mini-decimal" "^1.0.1" + classnames "^2.2.5" + rc-util "^5.28.0" + +rc-input@~1.0.0, rc-input@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.0.4.tgz#2f2c73c884f41e80685bb2eb7b9d5533e8540a77" + integrity sha512-clY4oneVHRtKHYf/HCxT/MO+4BGzCIywSNLosXWOm7fcQAS0jQW7n0an8Raa8JMB8kpxc8m28p7SNwFZmlMj6g== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.18.1" + +rc-mentions@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.2.0.tgz#27900ec04d067c58205309897efd190f5d8f4ac8" + integrity sha512-R7ncCldr02uKgJBBPlXdtnOGQIjZ9C3uoIMi4fabU3CPFdmefYlNF6QM4u2AzgcGt8V0KkoHTN5T6HPdUpet8g== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^1.5.0" + classnames "^2.2.6" + rc-input "~1.0.0" + rc-menu "~9.8.0" + rc-textarea "~1.2.0" + rc-util "^5.22.5" + +rc-menu@~9.8.0, rc-menu@~9.8.3: + version "9.8.4" + resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.8.4.tgz#58bf19d471e3c74ff4bcfdb0f02a3826ebe2553b" + integrity sha512-lmw2j8I2fhdIzHmC9ajfImfckt0WDb2KVJJBBRIsxPEw2kGkEfjLMUoB1NgiNT/Q5cC8PdjGOGQjHJIJMwyNMw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.4.3" + rc-overflow "^1.2.8" + rc-trigger "^5.1.2" + rc-util "^5.27.0" + +rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.6.0, rc-motion@^2.6.1, rc-motion@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.6.3.tgz#e6d8ca06591c2c1bcd3391a8e7a822ebc4d94e9c" + integrity sha512-xFLkes3/7VL/J+ah9jJruEW/Akbx5F6jVa2wG5o/ApGKQKSOd5FR3rseHLL9+xtJg4PmCwo6/1tqhDO/T+jFHA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.21.0" + +rc-notification@~5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.0.3.tgz#2566d4a6b2334c171bad0cb9a8b80cb1a24b29e6" + integrity sha512-+wHbHu6RiTNtsZYx42WxWA+tC5m0qyKvJAauO4/6LIEyJspK8fRlFQz+OCFgFwGuNs3cOdo9tLs+cPfztSZwbQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.6.0" + rc-util "^5.20.1" + +rc-overflow@^1.0.0, rc-overflow@^1.2.8: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.3.0.tgz#964f7db14aab611c3047788d3b8ee472732fee09" + integrity sha512-p2Qt4SWPTHAYl4oAao1THy669Fm5q8pYBDBHRaFOekCvcdcrgIx0ByXQMEkyPm8wUDX4BK6aARWecvCRc/7CTA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-resize-observer "^1.0.0" + rc-util "^5.19.2" + +rc-pagination@~3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-3.3.1.tgz#38e364674adf2a753a4fa26e0d9d88ebe523ed0f" + integrity sha512-eI4dSeB3OrFxll7KzWa3ZH63LV2tHxt0AUmZmDwuI6vc3CK5lZhaKUYq0fRowb5586hN+L26j5WZoSz9cwEfjg== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.1" + +rc-picker@~3.6.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-3.6.2.tgz#68d13af7d240e792769a306ed6447e66e47040aa" + integrity sha512-acLNCi2WTNAuvTtcEzKp72mU15ni0sqrIKVlEcj04KgLZxhlVPMabCS+Sc8VuOCPJbOcW0XeOydbNnJbWTvzxg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^1.5.0" + classnames "^2.2.1" + rc-util "^5.27.0" + +rc-progress@~3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/rc-progress/-/rc-progress-3.4.1.tgz#a9ffe099e88a4fc03afb09d8603162bf0760d743" + integrity sha512-eAFDHXlk8aWpoXl0llrenPMt9qKHQXphxcVsnKs0FHC6eCSk1ebJtyaVjJUzKe0233ogiLDeEFK1Uihz3s67hw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.6" + rc-util "^5.16.1" + +rc-rate@~2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.10.0.tgz#b16fd906c13bfc26b4776e27a14d13d06d50c635" + integrity sha512-TCjEpKPeN1m0EnGDDbb1KyxjNTJRzoReiPdtbrBJEey4Ryf/UGOQ6vqmz2yC6DJdYVDVUoZPdoz043ryh0t/nQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.0.1" + +rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.2.0, rc-resize-observer@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.3.1.tgz#b61b9f27048001243617b81f95e53d7d7d7a6a3d" + integrity sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg== + dependencies: + "@babel/runtime" "^7.20.7" + classnames "^2.2.1" + rc-util "^5.27.0" + resize-observer-polyfill "^1.5.1" + +rc-segmented@~2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/rc-segmented/-/rc-segmented-2.1.2.tgz#14c9077a1dae9c2ccb2ef5fbc5662c1c48c7ce8e" + integrity sha512-qGo1bCr83ESXpXVOCXjFe1QJlCAQXyi9KCiy8eX3rIMYlTeJr/ftySIaTnYsitL18SvWf5ZEHsfqIWoX0EMfFQ== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-motion "^2.4.4" + rc-util "^5.17.0" + +rc-select@~14.4.0, rc-select@~14.4.3: + version "14.4.3" + resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.4.3.tgz#68d7f1b6bcb41543f69901951facd5e097fb835d" + integrity sha512-qoz4gNqm3SN+4dYKSCRiRkxKSEEdbS3jC6gdFYoYwEjDZ9sdQFo5jHlfQbF+hhai01HOoj1Hf8Gq6tpUvU+Gmw== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^1.5.0" + classnames "2.x" + rc-motion "^2.0.1" + rc-overflow "^1.0.0" + rc-util "^5.16.1" + rc-virtual-list "^3.4.13" + +rc-slider@~10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.1.1.tgz#5e82036e60b61021aba3ea0e353744dd7c74e104" + integrity sha512-gn8oXazZISEhnmRinI89Z/JD/joAaM35jp+gDtIVSTD/JJMCCBqThqLk1SVJmvtfeiEF/kKaFY0+qt4SDHFUDw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.27.0" + +rc-steps@~6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rc-steps/-/rc-steps-6.0.0.tgz#f7148f8097d5d135f19b96c1b4f4b50ad6093753" + integrity sha512-+KfMZIty40mYCQSDvYbZ1jwnuObLauTiIskT1hL4FFOBHP6ZOr8LK0m143yD3kEN5XKHSEX1DIwCj3AYZpoeNQ== + dependencies: + "@babel/runtime" "^7.16.7" + classnames "^2.2.3" + rc-util "^5.16.1" + +rc-switch@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/rc-switch/-/rc-switch-4.0.0.tgz#55fbf99fc2d680791175037d379e170ba51fbe78" + integrity sha512-IfrYC99vN0gKaTyjQdqYuADU0eH00SAFHg3jOp8HrmUpJruhV1SohJzrCbPqPraZeX/6X/QKkdLfkdnUub05WA== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.1" + rc-util "^5.0.1" + +rc-table@~7.31.0: + version "7.31.1" + resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.31.1.tgz#85487b25d98559d6e684b3348e893da1d1f48232" + integrity sha512-KZPi35aGpv2VaL1Jbc58FBJo063HtKyVjhOFWX4AkBV7tjHHQokMdUoua5E+GPJh6QZUpK/a8PjKa9IZzPLIEA== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/context" "^1.3.0" + classnames "^2.2.5" + rc-resize-observer "^1.1.0" + rc-util "^5.27.1" + +rc-tabs@~12.5.6: + version "12.5.10" + resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-12.5.10.tgz#0e41c723fac66c4f0bcad3271429fff6653b0721" + integrity sha512-Ay0l0jtd4eXepFH9vWBvinBjqOpqzcsJTerBGwJy435P2S90Uu38q8U/mvc1sxUEVOXX5ZCFbxcWPnfG3dH+tQ== + dependencies: + "@babel/runtime" "^7.11.2" + classnames "2.x" + rc-dropdown "~4.0.0" + rc-menu "~9.8.0" + rc-motion "^2.6.2" + rc-resize-observer "^1.0.0" + rc-util "^5.16.0" + +rc-textarea@~1.2.0, rc-textarea@~1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.2.2.tgz#111fa90fcedba6d244bc94615b7971b8d8f68815" + integrity sha512-S9fkiek5VezfwJe2McEs/NH63xgnnZ4iDh6a8n01mIfzyNJj0HkS0Uz6boyR3/eONYjmKaqhrpuJJuEClRDEBw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.1" + rc-input "~1.0.4" + rc-resize-observer "^1.0.0" + rc-util "^5.27.0" + +rc-tooltip@~6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-6.0.1.tgz#6a5e33bd6c3f6afe8851ea90e7af43e5c26b3cc6" + integrity sha512-MdvPlsD1fDSxKp9+HjXrc/CxLmA/s11QYIh1R7aExxfodKP7CZA++DG1AjrW80F8IUdHYcR43HAm0Y2BYPelHA== + dependencies: + "@babel/runtime" "^7.11.2" + "@rc-component/trigger" "^1.0.4" + classnames "^2.3.1" + +rc-tree-select@~5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.8.0.tgz#b3d861b7b2111d3a96b56040b851d5e280d71c95" + integrity sha512-NozrkVLR8k3cpx8R5/YFmJMptgOacR5zEQHZGMQg31bD6jEgGiJeOn2cGRI6x0Xdyvi1CSqCbUsIoqiej74wzw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-select "~14.4.0" + rc-tree "~5.7.0" + rc-util "^5.16.1" + +rc-tree@~5.7.0: + version "5.7.3" + resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.7.3.tgz#5da576ba87039486d59092eb4490831690b8b3b5" + integrity sha512-Oql2S9+ZmT+mfTp5SNo1XM0QvkENjc0mPRFsHWRFSPuKird0OYMZZKmLznUJ+0aGDeFFWN42wiUZJtMFhrLgLw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.0.1" + rc-util "^5.16.1" + rc-virtual-list "^3.4.8" + +rc-trigger@^5.1.2, rc-trigger@^5.3.1, rc-trigger@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.3.4.tgz#6b4b26e32825677c837d1eb4d7085035eecf9a61" + integrity sha512-mQv+vas0TwKcjAO2izNPkqR4j86OemLRmvL2nOzdP9OWNWA1ivoTt5hzFqYNW9zACwmTezRiN8bttrC7cZzYSw== + dependencies: + "@babel/runtime" "^7.18.3" + classnames "^2.2.6" + rc-align "^4.0.0" + rc-motion "^2.0.0" + rc-util "^5.19.2" + +rc-upload@~4.3.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.3.4.tgz#83ff7d3867631c37adbfd72ea3d1fd7e97ca84af" + integrity sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ== + dependencies: + "@babel/runtime" "^7.18.3" + classnames "^2.2.5" + rc-util "^5.2.0" + +rc-util@^5.0.1, rc-util@^5.0.6, rc-util@^5.15.0, rc-util@^5.16.0, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.19.2, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.21.2, rc-util@^5.22.5, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.26.0, rc-util@^5.27.0, rc-util@^5.27.1, rc-util@^5.28.0, rc-util@^5.29.2, rc-util@^5.6.1, rc-util@^5.8.0, rc-util@^5.9.4: + version "5.29.3" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.29.3.tgz#dc02b7b2103468e9fdf14e0daa58584f47898e37" + integrity sha512-wX6ZwQTzY2v7phJBquN4mSEIFR0E0qumlENx0zjENtDvoVSq2s7cR95UidKRO1hOHfDsecsfM9D1gO4Kebs7fA== + dependencies: + "@babel/runtime" "^7.18.3" + react-is "^16.12.0" + +rc-virtual-list@^3.4.13, rc-virtual-list@^3.4.8: + version "3.4.13" + resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.4.13.tgz#20acc934b263abcf7b7c161f50ef82281b2f7e8d" + integrity sha512-cPOVDmcNM7rH6ANotanMDilW/55XnFPw0Jh/GQYtrzZSy3AmWvCnqVNyNC/pgg3lfVmX2994dlzAhuUrd4jG7w== + dependencies: + "@babel/runtime" "^7.20.0" + classnames "^2.2.6" + rc-resize-observer "^1.0.0" + rc-util "^5.15.0" + react-app-polyfill@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz#a0bea50f078b8a082970a9d853dc34b6dcc6a3cf" @@ -9563,7 +10200,7 @@ react-hot-loader@^3.1.3: redbox-react "^1.3.6" source-map "^0.6.1" -react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -9918,6 +10555,11 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -10073,6 +10715,11 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -10380,6 +11027,13 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +scroll-into-view-if-needed@^3.0.3: + version "3.0.10" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz#38fbfe770d490baff0fb2ba34ae3539f6ec44e13" + integrity sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg== + dependencies: + compute-scroll-into-view "^3.0.2" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -10897,6 +11551,11 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" + integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -11058,6 +11717,11 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" +stylis@^4.0.13: + version "4.1.3" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7" + integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -11239,6 +11903,11 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== +throttle-debounce@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz#a17a4039e82a2ed38a5e7268e4132d6960d41933" + integrity sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg== + through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -11328,6 +11997,11 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== + toidentifier@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" @@ -11506,11 +12180,16 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@4.3.5, typescript@^4.0.3: +typescript@^4.0.3: version "4.3.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== +typescript@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" + integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== + unbox-primitive@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" From 3c9c29178b147e431b1bd4ff54ab5b00671893f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Apr 2023 00:09:28 +0200 Subject: [PATCH 02/11] chore(deps): bump codecov/codecov-action from 3.1.2 to 3.1.3 (#2735) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.2 to 3.1.3. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v3.1.2...v3.1.3) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/go.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index fb1e1911f3..c4e4debbf1 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -90,7 +90,7 @@ jobs: path: coverage.out - name: Upload code coverage information to codecov.io - uses: codecov/codecov-action@v3.1.2 + uses: codecov/codecov-action@v3.1.3 with: file: coverage.out From 4273813f14b4fc06925e34a6db57d952c6c6fd55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Apr 2023 09:31:13 -0500 Subject: [PATCH 03/11] chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.9 to 1.19.10 (#2747) chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.9 to 1.19.10. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.9...service/efs/v1.19.10) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 13 ++++++++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 3f1d99f46c..f5ea4c067d 100644 --- a/go.mod +++ b/go.mod @@ -6,10 +6,10 @@ require ( github.com/antonmedv/expr v1.12.5 github.com/argoproj/notifications-engine v0.4.0 github.com/argoproj/pkg v0.13.6 - github.com/aws/aws-sdk-go-v2 v1.17.8 + github.com/aws/aws-sdk-go-v2 v1.18.0 github.com/aws/aws-sdk-go-v2/config v1.18.21 github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.9 - github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.9 + github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.10 github.com/blang/semver v3.5.1+incompatible github.com/bombsimon/logrusr/v4 v4.0.0 github.com/evanphx/json-patch/v5 v5.6.0 @@ -83,8 +83,8 @@ require ( github.com/aws/aws-sdk-go v1.44.39 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.13.20 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.32 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.26 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.3.33 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.26 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.12.8 // indirect diff --git a/go.sum b/go.sum index 653ab25fa8..c227dc4553 100644 --- a/go.sum +++ b/go.sum @@ -131,24 +131,27 @@ github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2z github.com/aws/aws-sdk-go v1.38.49/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.44.39 h1:pMxYLqnuDidT0ZTDAhYC66fb3W3Yc+oShmfzEL4fTDI= github.com/aws/aws-sdk-go v1.44.39/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go-v2 v1.17.8 h1:GMupCNNI7FARX27L7GjCJM8NgivWbRgpjNI/hOQjFS8= github.com/aws/aws-sdk-go-v2 v1.17.8/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= +github.com/aws/aws-sdk-go-v2 v1.18.0 h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY= +github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2/config v1.18.21 h1:ENTXWKwE8b9YXgQCsruGLhvA9bhg+RqAsL9XEMEsa2c= github.com/aws/aws-sdk-go-v2/config v1.18.21/go.mod h1:+jPQiVPz1diRnjj6VGqWcLK6EzNmQ42l7J3OqGTLsSY= github.com/aws/aws-sdk-go-v2/credentials v1.13.20 h1:oZCEFcrMppP/CNiS8myzv9JgOzq2s0d3v3MXYil/mxQ= github.com/aws/aws-sdk-go-v2/credentials v1.13.20/go.mod h1:xtZnXErtbZ8YGXC3+8WfajpMBn5Ga/3ojZdxHq6iI8o= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.2 h1:jOzQAesnBFDmz93feqKnsTHsXrlwWORNZMFHMV+WLFU= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.2/go.mod h1:cDh1p6XkSGSwSRIArWRc6+UqAQ7x4alQ0QfpVR6f+co= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.32 h1:dpbVNUjczQ8Ae3QKHbpHBpfvaVkRdesxpTOe9pTouhU= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.32/go.mod h1:RudqOgadTWdcS3t/erPQo24pcVEoYyqj/kKW5Vya21I= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.26 h1:QH2kOS3Ht7x+u0gHCh06CXL/h6G8LQJFpZfFBYBNboo= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 h1:kG5eQilShqmJbv11XL1VpyDbaEJzWxd4zRiCG30GSn4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33/go.mod h1:7i0PF1ME/2eUPFcjkVIwq+DOygHEoK92t5cDqNgYbIw= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.26/go.mod h1:vq86l7956VgFr0/FWQ2BWnK07QC3WYsepKzy33qqY5U= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 h1:vFQlirhuM8lLlpI7imKOMsjdQLuN9CPi+k44F/OFVsk= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27/go.mod h1:UrHnn3QV/d0pBZ6QBAEQcqFLf8FAzLmoUfPVIueOvoM= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.33 h1:HbH1VjUgrCdLJ+4lnnuLI4iVNRvBbBELGaJ5f69ClA8= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.33/go.mod h1:zG2FcwjQarWaqXSCGpgcr3RSjZ6dHGguZSppUL0XR7Q= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.9 h1:7jgW378oM948BxuOBarXeeaKSrRaCj7didsdeSwYGGo= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.9/go.mod h1:hwbKzCoQcD/EvmfhhoM1Zdk+zADOiFBrHVff0+y4hEQ= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.9 h1:5SFRhHdPrqPgH14WrakFssW78i0eq9e/4mC3ujodNM0= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.9/go.mod h1:kxVa+BAqpYmSp4+SrbmY4lph9TKiioxaJNM643o1QZk= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.10 h1:RnL6Jg/DG9CAnY0MP9D0vJYQB3vv/gkKzJPw9nCqeo8= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.10/go.mod h1:oPHYtcocUcfHOE7qygtvyZMw82nedCKZSop/R9jxlAM= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.26 h1:uUt4XctZLhl9wBE1L8lobU3bVN8SNUP7T+olb0bWBO4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.26/go.mod h1:Bd4C/4PkVGubtNe5iMXu5BNnaBi/9t/UsFspPt4ram8= github.com/aws/aws-sdk-go-v2/service/sso v1.12.8 h1:5cb3D6xb006bPTqEfCNaEA6PPEfBXxxy4NNeX/44kGk= From 2355e8b30afee7b9501b36a18b7579a7fc3011f8 Mon Sep 17 00:00:00 2001 From: Wilson Wu Date: Fri, 28 Apr 2023 01:40:36 +0800 Subject: [PATCH 04/11] docs: Add contour trafficrouter plugin (#2729) Add contour trafficrouter plugin Signed-off-by: Wilson Wu --- docs/features/traffic-management/plugins.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/features/traffic-management/plugins.md b/docs/features/traffic-management/plugins.md index f0d1634ee3..660900e6ae 100644 --- a/docs/features/traffic-management/plugins.md +++ b/docs/features/traffic-management/plugins.md @@ -71,3 +71,6 @@ responsibility of the Argo Rollouts administrator to define the plugin installat #### [rollouts-plugin-trafficrouter-sample-nginx](https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-sample-nginx) * This is just a sample plugin that can be used as a starting point for creating your own plugin. It is not meant to be used in production. It is based on the built-in prometheus provider. + +#### [rollouts-plugin-trafficrouter-contour](https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-contour) +* This is a plugin for support Contour. From cc78ac5487cc93fbc2f785f38f7182c06c2a9dd2 Mon Sep 17 00:00:00 2001 From: Zach Aller Date: Fri, 28 Apr 2023 09:46:35 -0500 Subject: [PATCH 05/11] docs: copy argo cd docs drop down fix (#2731) copy argo rollouts drop down fix for docs Signed-off-by: zachaller --- docs/assets/versions.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/docs/assets/versions.js b/docs/assets/versions.js index 057ce03158..1336443d1a 100644 --- a/docs/assets/versions.js +++ b/docs/assets/versions.js @@ -9,16 +9,6 @@ setTimeout(function() { caret.innerHTML = "" caret.classList.add('dropdown-caret') div.querySelector('.rst-current-version').appendChild(caret); - div.querySelector('.rst-current-version').addEventListener('click', function() { - const classes = container.className.split(' '); - const index = classes.indexOf('shift-up'); - if (index === -1) { - classes.push('shift-up'); - } else { - classes.splice(index, 1); - } - container.className = classes.join(' '); - }); } var CSSLink = document.createElement('link'); From ba11d16a730e252171d9e1ecd99d46ffc30ed1b0 Mon Sep 17 00:00:00 2001 From: Zach Aller Date: Fri, 28 Apr 2023 10:46:48 -0500 Subject: [PATCH 06/11] fix: change logic of analysis run to better handle errors (#2695) * change logic of analysis run to better haneld errors Signed-off-by: zachaller * change logic to not call GetMetaData if not nil like the old behavior Signed-off-by: zachaller * move code closer to usage Signed-off-by: zachaller * change logic to not always call GetMetadata keeps original behavior Signed-off-by: zachaller * fix logic Signed-off-by: zachaller * cleanup Signed-off-by: zachaller * add test Signed-off-by: zachaller --------- Signed-off-by: zachaller --- analysis/analysis.go | 40 ++++++++++++++++++------------------- analysis/controller_test.go | 39 ++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 20 deletions(-) diff --git a/analysis/analysis.go b/analysis/analysis.go index 4e98556794..c826280d19 100644 --- a/analysis/analysis.go +++ b/analysis/analysis.go @@ -321,26 +321,10 @@ func (c *Controller) runMeasurements(run *v1alpha1.AnalysisRun, tasks []metricTa //redact secret values from logs logger := logutil.WithRedactor(*logutil.WithAnalysisRun(run).WithField("metric", t.metric.Name), secrets) - resultsLock.Lock() - metricResult := analysisutil.GetResult(run, t.metric.Name) - resultsLock.Unlock() - - provider, err := c.newProvider(*logger, t.metric) - if err != nil { - log.Errorf("Error in getting metric provider :%v", err) - return err - } - if metricResult == nil { - metricResult = &v1alpha1.MetricResult{ - Name: t.metric.Name, - Phase: v1alpha1.AnalysisPhaseRunning, - DryRun: dryRunMetricsMap[t.metric.Name], - Metadata: provider.GetMetadata(t.metric), - } - } - var newMeasurement v1alpha1.Measurement - if err != nil { + provider, providerErr := c.newProvider(*logger, t.metric) + if providerErr != nil { + log.Errorf("Error in getting metric provider :%v", providerErr) if t.incompleteMeasurement != nil { newMeasurement = *t.incompleteMeasurement } else { @@ -348,7 +332,7 @@ func (c *Controller) runMeasurements(run *v1alpha1.AnalysisRun, tasks []metricTa newMeasurement.StartedAt = &startedAt } newMeasurement.Phase = v1alpha1.AnalysisPhaseError - newMeasurement.Message = err.Error() + newMeasurement.Message = providerErr.Error() } else { if t.incompleteMeasurement == nil { newMeasurement = provider.Run(run, t.metric) @@ -366,12 +350,28 @@ func (c *Controller) runMeasurements(run *v1alpha1.AnalysisRun, tasks []metricTa } } + resultsLock.Lock() + metricResult := analysisutil.GetResult(run, t.metric.Name) + resultsLock.Unlock() + if metricResult == nil { + metricResult = &v1alpha1.MetricResult{ + Name: t.metric.Name, + Phase: v1alpha1.AnalysisPhaseRunning, + DryRun: dryRunMetricsMap[t.metric.Name], + } + + if provider != nil && providerErr == nil { + metricResult.Metadata = provider.GetMetadata(t.metric) + } + } + if newMeasurement.Phase.Completed() { logger.Infof("Measurement Completed. Result: %s", newMeasurement.Phase) if newMeasurement.FinishedAt == nil { finishedAt := timeutil.MetaNow() newMeasurement.FinishedAt = &finishedAt } + switch newMeasurement.Phase { case v1alpha1.AnalysisPhaseSuccessful: metricResult.Successful++ diff --git a/analysis/controller_test.go b/analysis/controller_test.go index 8d5efe11f9..cde8ba853e 100644 --- a/analysis/controller_test.go +++ b/analysis/controller_test.go @@ -3,6 +3,7 @@ package analysis import ( "context" "encoding/json" + "fmt" "reflect" "testing" "time" @@ -317,6 +318,44 @@ func TestNoReconcileForAnalysisRunWithDeletionTimestamp(t *testing.T) { f.run(getKey(ar, t)) } +func TestFailedToCreateProviderError(t *testing.T) { + f := newFixture(t) + defer f.Close() + + ar := &v1alpha1.AnalysisRun{ + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + Namespace: metav1.NamespaceDefault, + }, + Spec: v1alpha1.AnalysisRunSpec{ + Metrics: []v1alpha1.Metric{ + { + Name: "metric1", + Provider: v1alpha1.MetricProvider{ + Plugin: map[string]json.RawMessage{"mypluginns/myplugin": []byte(`{"invalid": "json"}`)}, + }, + }, + }, + }, + } + f.analysisRunLister = append(f.analysisRunLister, ar) + f.objects = append(f.objects, ar) + + c, i, k8sI := f.newController(noResyncPeriodFunc) + c.newProvider = func(logCtx log.Entry, metric v1alpha1.Metric) (metric.Provider, error) { + return nil, fmt.Errorf("failed to create provider") + } + + pi := f.expectPatchAnalysisRunAction(ar) + + f.runController(getKey(ar, t), true, false, c, i, k8sI) + + updatedAr := f.getPatchedAnalysisRun(pi) + + assert.Equal(t, v1alpha1.AnalysisPhaseError, updatedAr.Status.MetricResults[0].Measurements[0].Phase) + assert.Equal(t, "failed to create provider", updatedAr.Status.MetricResults[0].Measurements[0].Message) +} + func TestRun(t *testing.T) { f := newFixture(t) defer f.Close() From 0a9c6f1b2c9a26652a675d2c2cda01a341f4e153 Mon Sep 17 00:00:00 2001 From: Zach Aller Date: Fri, 28 Apr 2023 12:23:42 -0500 Subject: [PATCH 07/11] chore: bump k8s deps to v0.25.8 (#2712) * bump to v0.24.12 Signed-off-by: zachaller * bump to v0.26.3 Signed-off-by: zachaller * bump to v0.25.8 Signed-off-by: zachaller * add new interface functions Signed-off-by: zachaller * fix wrong dep inclusion Signed-off-by: zachaller --------- Signed-off-by: zachaller --- .../features/kustomize/rollout_cr_schema.json | 275 +++++++++ go.mod | 117 ++-- go.sum | 559 ++---------------- manifests/crds/analysis-run-crd.yaml | 56 ++ manifests/crds/analysis-template-crd.yaml | 56 ++ .../crds/cluster-analysis-template-crd.yaml | 56 ++ manifests/crds/experiment-crd.yaml | 11 + manifests/crds/rollout-crd.yaml | 11 + manifests/install.yaml | 190 ++++++ pkg/apiclient/rollout/rollout.swagger.json | 37 +- rollout/trafficrouting/apisix/mocks/apisix.go | 8 + .../trafficrouting/traefik/mocks/traefik.go | 8 + ui/src/models/rollout/generated/api.ts | 38 +- 13 files changed, 834 insertions(+), 588 deletions(-) diff --git a/docs/features/kustomize/rollout_cr_schema.json b/docs/features/kustomize/rollout_cr_schema.json index 09d0393a53..6e645d3a4c 100644 --- a/docs/features/kustomize/rollout_cr_schema.json +++ b/docs/features/kustomize/rollout_cr_schema.json @@ -323,6 +323,72 @@ "format": "int32", "type": "integer" }, + "podFailurePolicy": { + "properties": { + "rules": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "onExitCodes": { + "properties": { + "containerName": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "values": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "operator", + "values" + ], + "type": "object" + }, + "onPodConditions": { + "items": { + "properties": { + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "status", + "type" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "action", + "onPodConditions" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "rules" + ], + "type": "object" + }, "selector": { "properties": { "matchExpressions": { @@ -2808,6 +2874,9 @@ "hostPID": { "type": "boolean" }, + "hostUsers": { + "type": "boolean" + }, "hostname": { "type": "string" }, @@ -3975,6 +4044,13 @@ }, "type": "object" }, + "matchLabelKeys": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, "maxSkew": { "format": "int32", "type": "integer" @@ -3983,6 +4059,12 @@ "format": "int32", "type": "integer" }, + "nodeAffinityPolicy": { + "type": "string" + }, + "nodeTaintsPolicy": { + "type": "string" + }, "topologyKey": { "type": "string" }, @@ -4612,6 +4694,72 @@ "format": "int32", "type": "integer" }, + "podFailurePolicy": { + "properties": { + "rules": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "onExitCodes": { + "properties": { + "containerName": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "values": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "operator", + "values" + ], + "type": "object" + }, + "onPodConditions": { + "items": { + "properties": { + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "status", + "type" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "action", + "onPodConditions" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "rules" + ], + "type": "object" + }, "selector": { "properties": { "matchExpressions": { @@ -7097,6 +7245,9 @@ "hostPID": { "type": "boolean" }, + "hostUsers": { + "type": "boolean" + }, "hostname": { "type": "string" }, @@ -8264,6 +8415,13 @@ }, "type": "object" }, + "matchLabelKeys": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, "maxSkew": { "format": "int32", "type": "integer" @@ -8272,6 +8430,12 @@ "format": "int32", "type": "integer" }, + "nodeAffinityPolicy": { + "type": "string" + }, + "nodeTaintsPolicy": { + "type": "string" + }, "topologyKey": { "type": "string" }, @@ -8901,6 +9065,72 @@ "format": "int32", "type": "integer" }, + "podFailurePolicy": { + "properties": { + "rules": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "onExitCodes": { + "properties": { + "containerName": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "values": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "required": [ + "operator", + "values" + ], + "type": "object" + }, + "onPodConditions": { + "items": { + "properties": { + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "status", + "type" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "action", + "onPodConditions" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "rules" + ], + "type": "object" + }, "selector": { "properties": { "matchExpressions": { @@ -11386,6 +11616,9 @@ "hostPID": { "type": "boolean" }, + "hostUsers": { + "type": "boolean" + }, "hostname": { "type": "string" }, @@ -12553,6 +12786,13 @@ }, "type": "object" }, + "matchLabelKeys": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, "maxSkew": { "format": "int32", "type": "integer" @@ -12561,6 +12801,12 @@ "format": "int32", "type": "integer" }, + "nodeAffinityPolicy": { + "type": "string" + }, + "nodeTaintsPolicy": { + "type": "string" + }, "topologyKey": { "type": "string" }, @@ -15486,6 +15732,9 @@ "hostPID": { "type": "boolean" }, + "hostUsers": { + "type": "boolean" + }, "hostname": { "type": "string" }, @@ -16653,6 +16902,13 @@ }, "type": "object" }, + "matchLabelKeys": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, "maxSkew": { "format": "int32", "type": "integer" @@ -16661,6 +16917,12 @@ "format": "int32", "type": "integer" }, + "nodeAffinityPolicy": { + "type": "string" + }, + "nodeTaintsPolicy": { + "type": "string" + }, "topologyKey": { "type": "string" }, @@ -19787,6 +20049,13 @@ }, "type": "object" }, + "matchLabelKeys": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, "maxSkew": { "format": "int32", "type": "integer" @@ -19795,6 +20064,12 @@ "format": "int32", "type": "integer" }, + "nodeAffinityPolicy": { + "type": "string" + }, + "nodeTaintsPolicy": { + "type": "string" + }, "topologyKey": { "type": "string" }, diff --git a/go.mod b/go.mod index f5ea4c067d..2e3e6a473c 100644 --- a/go.mod +++ b/go.mod @@ -40,47 +40,48 @@ require ( google.golang.org/grpc v1.54.0 google.golang.org/protobuf v1.30.0 gopkg.in/yaml.v2 v2.4.0 - k8s.io/api v0.24.2 - k8s.io/apiextensions-apiserver v0.24.2 - k8s.io/apimachinery v0.24.2 - k8s.io/apiserver v0.24.2 - k8s.io/cli-runtime v0.24.2 - k8s.io/client-go v0.24.2 - k8s.io/code-generator v0.24.2 - k8s.io/component-base v0.24.2 - k8s.io/klog/v2 v2.70.1 - k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8 - k8s.io/kubectl v0.24.2 - k8s.io/kubernetes v1.24.2 - k8s.io/utils v0.0.0-20220706174534-f6158b442e7c + k8s.io/api v0.25.8 + k8s.io/apiextensions-apiserver v0.25.8 + k8s.io/apimachinery v0.25.8 + k8s.io/apiserver v0.25.8 + k8s.io/cli-runtime v0.25.8 + k8s.io/client-go v0.25.8 + k8s.io/code-generator v0.25.8 + k8s.io/component-base v0.25.8 + k8s.io/klog/v2 v2.80.1 + k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 + k8s.io/kubectl v0.25.8 + k8s.io/kubernetes v1.25.8 + k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 ) require ( + cloud.google.com/go/compute v1.15.1 // indirect + cloud.google.com/go/compute/metadata v0.2.3 // indirect + github.com/Azure/go-autorest v14.2.0+incompatible // indirect + github.com/Azure/go-autorest/autorest v0.11.27 // indirect + github.com/Azure/go-autorest/autorest/adal v0.9.20 // indirect + github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect + github.com/Azure/go-autorest/logger v0.2.1 // indirect + github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/PagerDuty/go-pagerduty v1.6.0 // indirect github.com/bradleyfalzon/ghinstallation/v2 v2.1.0 // indirect github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 // indirect github.com/google/go-github/v41 v41.0.0 // indirect github.com/google/go-github/v45 v45.2.0 // indirect github.com/matryer/is v1.4.0 // indirect + github.com/russross/blackfriday v1.6.0 // indirect ) require ( - cloud.google.com/go/compute v1.15.1 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/Azure/go-autorest v14.2.0+incompatible // indirect - github.com/Azure/go-autorest/autorest v0.11.27 // indirect - github.com/Azure/go-autorest/autorest/adal v0.9.20 // indirect - github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect - github.com/Azure/go-autorest/logger v0.2.1 // indirect - github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver v1.5.0 // indirect github.com/Masterminds/sprig v2.22.0+incompatible // indirect github.com/RocketChat/Rocket.Chat.Go.SDK v0.0.0-20220708192748-b73dcb041214 // indirect - github.com/aws/aws-sdk-go v1.44.39 // indirect + github.com/aws/aws-sdk-go v1.44.116 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.13.20 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 // indirect @@ -94,7 +95,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 // indirect + github.com/chai2010/gettext-go v1.0.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deepmap/oapi-codegen v1.11.0 // indirect github.com/docker/distribution v2.8.1+incompatible // indirect @@ -145,20 +146,18 @@ require ( github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/spdystream v0.2.0 // indirect - github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect + github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/oklog/run v1.0.0 // indirect - github.com/onsi/ginkgo v1.16.4 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opsgenie/opsgenie-go-sdk-v2 v1.2.13 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/procfs v0.9.0 // indirect - github.com/russross/blackfriday v1.6.0 // indirect github.com/slack-go/slack v0.12.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.0 // indirect @@ -166,7 +165,7 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fastjson v1.6.3 // indirect github.com/whilp/git-urls v0.0.0-20191001220047-6db9661140c0 // indirect - github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca // indirect + github.com/xlab/treeprint v1.1.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect golang.org/x/crypto v0.5.0 // indirect golang.org/x/mod v0.8.0 // indirect @@ -184,41 +183,41 @@ require ( gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/cluster-bootstrap v0.24.2 // indirect - k8s.io/component-helpers v0.24.2 // indirect - k8s.io/gengo v0.0.0-20211129171323-c02415ce4185 // indirect - sigs.k8s.io/json v0.0.0-20220525155127-227cbc7cc124 // indirect - sigs.k8s.io/kustomize/api v0.11.5 // indirect - sigs.k8s.io/kustomize/kyaml v0.13.7 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect + k8s.io/cluster-bootstrap v0.25.8 // indirect + k8s.io/component-helpers v0.25.8 // indirect + k8s.io/gengo v0.0.0-20220902162205-c0856e24416d // indirect + sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect + sigs.k8s.io/kustomize/api v0.12.1 // indirect + sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) replace ( github.com/go-check/check => github.com/go-check/check v0.0.0-20180628173108-788fd7840127 - k8s.io/api v0.0.0 => k8s.io/api v0.24.2 - k8s.io/apiextensions-apiserver v0.0.0 => k8s.io/apiextensions-apiserver v0.24.2 - k8s.io/apimachinery v0.0.0 => k8s.io/apimachinery v0.24.2 - k8s.io/apiserver v0.0.0 => k8s.io/apiserver v0.24.2 - k8s.io/cli-runtime v0.0.0 => k8s.io/cli-runtime v0.24.2 - k8s.io/client-go v0.0.0 => k8s.io/client-go v0.24.2 - k8s.io/cloud-provider v0.0.0 => k8s.io/cloud-provider v0.24.2 - k8s.io/cluster-bootstrap v0.0.0 => k8s.io/cluster-bootstrap v0.24.2 - k8s.io/code-generator v0.0.0 => k8s.io/code-generator v0.24.2 - k8s.io/component-base v0.0.0 => k8s.io/component-base v0.24.2 - k8s.io/component-helpers v0.0.0 => k8s.io/component-helpers v0.24.2 - k8s.io/controller-manager v0.0.0 => k8s.io/controller-manager v0.24.2 - k8s.io/cri-api v0.0.0 => k8s.io/cri-api v0.24.2 - k8s.io/csi-translation-lib v0.0.0 => k8s.io/csi-translation-lib v0.24.2 - k8s.io/kube-aggregator v0.0.0 => k8s.io/kube-aggregator v0.24.2 - k8s.io/kube-controller-manager v0.0.0 => k8s.io/kube-controller-manager v0.24.2 - k8s.io/kube-proxy v0.0.0 => k8s.io/kube-proxy v0.24.2 - k8s.io/kube-scheduler v0.0.0 => k8s.io/kube-scheduler v0.24.2 - k8s.io/kubectl v0.0.0 => k8s.io/kubectl v0.24.2 - k8s.io/kubelet v0.0.0 => k8s.io/kubelet v0.24.2 - k8s.io/legacy-cloud-providers v0.0.0 => k8s.io/legacy-cloud-providers v0.24.2 - k8s.io/metrics v0.0.0 => k8s.io/metrics v0.24.2 - k8s.io/mount-utils v0.0.0 => k8s.io/mount-utils v0.24.2 - k8s.io/pod-security-admission v0.0.0 => k8s.io/pod-security-admission v0.24.2 - k8s.io/sample-apiserver v0.0.0 => k8s.io/sample-apiserver v0.24.2 + k8s.io/api v0.0.0 => k8s.io/api v0.25.8 + k8s.io/apiextensions-apiserver v0.0.0 => k8s.io/apiextensions-apiserver v0.25.8 + k8s.io/apimachinery v0.0.0 => k8s.io/apimachinery v0.25.8 + k8s.io/apiserver v0.0.0 => k8s.io/apiserver v0.25.8 + k8s.io/cli-runtime v0.0.0 => k8s.io/cli-runtime v0.25.8 + k8s.io/client-go v0.0.0 => k8s.io/client-go v0.25.8 + k8s.io/cloud-provider v0.0.0 => k8s.io/cloud-provider v0.25.8 + k8s.io/cluster-bootstrap v0.0.0 => k8s.io/cluster-bootstrap v0.25.8 + k8s.io/code-generator v0.0.0 => k8s.io/code-generator v0.25.8 + k8s.io/component-base v0.0.0 => k8s.io/component-base v0.25.8 + k8s.io/component-helpers v0.0.0 => k8s.io/component-helpers v0.25.8 + k8s.io/controller-manager v0.0.0 => k8s.io/controller-manager v0.25.8 + k8s.io/cri-api v0.0.0 => k8s.io/cri-api v0.25.8 + k8s.io/csi-translation-lib v0.0.0 => k8s.io/csi-translation-lib v0.25.8 + k8s.io/kube-aggregator v0.0.0 => k8s.io/kube-aggregator v0.25.8 + k8s.io/kube-controller-manager v0.0.0 => k8s.io/kube-controller-manager v0.25.8 + k8s.io/kube-proxy v0.0.0 => k8s.io/kube-proxy v0.25.8 + k8s.io/kube-scheduler v0.0.0 => k8s.io/kube-scheduler v0.25.8 + k8s.io/kubectl v0.0.0 => k8s.io/kubectl v0.25.8 + k8s.io/kubelet v0.0.0 => k8s.io/kubelet v0.25.8 + k8s.io/legacy-cloud-providers v0.0.0 => k8s.io/legacy-cloud-providers v0.25.8 + k8s.io/metrics v0.0.0 => k8s.io/metrics v0.25.8 + k8s.io/mount-utils v0.0.0 => k8s.io/mount-utils v0.25.8 + k8s.io/pod-security-admission v0.0.0 => k8s.io/pod-security-admission v0.25.8 + k8s.io/sample-apiserver v0.0.0 => k8s.io/sample-apiserver v0.25.8 ) diff --git a/go.sum b/go.sum index c227dc4553..dbb4669683 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,3 @@ -bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -15,11 +13,6 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -32,7 +25,6 @@ cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGB cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -43,18 +35,14 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v55.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= github.com/Azure/go-autorest/autorest v0.11.27 h1:F3R3q42aWytozkV8ihzcgMO4OA4cuqr3bNlsEuF6//A= github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= github.com/Azure/go-autorest/autorest/adal v0.9.20 h1:gJ3E98kMpFB1MFqQCvA1yFab8vthOeD4VlFRQULxahg= github.com/Azure/go-autorest/autorest/adal v0.9.20/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= @@ -66,8 +54,6 @@ github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxB github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw= github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= -github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= @@ -76,11 +62,8 @@ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUM github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v1.16.1-0.20210702024009-ea6160c1d0e3/go.mod h1:8XasY4ymP2V/tn2OOV9ZadmiTE1FIB/h3W+yNlPttKw= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= @@ -89,11 +72,7 @@ github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3Q github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Microsoft/go-winio v0.4.15/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/hcsshim v0.8.22/go.mod h1:91uVCVzvX2QD16sMCenoxxXo6L1wJnLMX2PSufFMtF0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PagerDuty/go-pagerduty v1.6.0 h1:am81SzvG5Pw+s3JZ5yEy6kGvsXXklTNRrGr3d8WKpsU= github.com/PagerDuty/go-pagerduty v1.6.0/go.mod h1:7eaBLzsDpK7VUvU0SJ5mohczQkoWrrr5CjDaw5gh1as= @@ -103,14 +82,12 @@ github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdko github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/RocketChat/Rocket.Chat.Go.SDK v0.0.0-20220708192748-b73dcb041214 h1:MdZskg1II+YVe+9ss935i8+paqqf4KEuYcTYUWSwABI= github.com/RocketChat/Rocket.Chat.Go.SDK v0.0.0-20220708192748-b73dcb041214/go.mod h1:rjP7sIipbZcagro/6TCk6X0ZeFT2eyudH5+fve/cbBA= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= github.com/antonmedv/expr v1.12.5 h1:Fq4okale9swwL3OeLLs9WD9H6GbgBLJyN/NUHRv+n0E= github.com/antonmedv/expr v1.12.5/go.mod h1:FPC8iWArxls7axbVLsW+kpg1mz29A1b2M6jt+hZfDkU= github.com/appscode/go v0.0.0-20191119085241-0887d8ec2ecc/go.mod h1:OawnOmAL4ZX3YaPdN+8HTNwBveT1jMsqP74moa9XUbE= @@ -118,19 +95,12 @@ github.com/argoproj/notifications-engine v0.4.0 h1:XyE4jAw0oeRQKL9vlDQBnycmqhN7E github.com/argoproj/notifications-engine v0.4.0/go.mod h1:uGas18+DbCCwjif1zSwWWuwR0xJ18FXF+c2dkhPbF2k= github.com/argoproj/pkg v0.13.6 h1:36WPD9MNYECHcO1/R1pj6teYspiK7uMQLCgLGft2abM= github.com/argoproj/pkg v0.13.6/go.mod h1:I698DoJBKuvNFaixh4vFl2C88cNIT1WS7KCbz5ewyF8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/auth0/go-jwt-middleware v1.0.1/go.mod h1:YSeUX3z6+TF2H+7padiEqNJ73Zy9vXW72U//IgN0BIM= -github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= -github.com/aws/aws-sdk-go v1.38.49/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= -github.com/aws/aws-sdk-go v1.44.39 h1:pMxYLqnuDidT0ZTDAhYC66fb3W3Yc+oShmfzEL4fTDI= github.com/aws/aws-sdk-go v1.44.39/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.44.116 h1:NpLIhcvLWXJZAEwvPj3TDHeqp7DleK6ZUVYyW01WNHY= +github.com/aws/aws-sdk-go v1.44.116/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go-v2 v1.17.8/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2 v1.18.0 h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY= github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= @@ -163,20 +133,15 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.18.9/go.mod h1:yyW88BEPXA2fGFyI2KCcZ github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= -github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/bombsimon/logrusr/v4 v4.0.0 h1:Pm0InGphX0wMhPqC02t31onlq9OVyJ98eP/Vh63t1Oo= github.com/bombsimon/logrusr/v4 v4.0.0/go.mod h1:pjfHC5e59CvjTBIU3V3sGhFWFAnsnhOR03TRc6im0l8= github.com/bradleyfalzon/ghinstallation/v2 v2.1.0 h1:5+NghM1Zred9Z078QEZtm28G/kfDfZN/92gkDlLwGVA= @@ -185,69 +150,29 @@ github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx2 github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= +github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= -github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= -github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= -github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= github.com/codeskyblue/go-sh v0.0.0-20190412065543-76bd3d59ff27/go.mod h1:VQx0hjo2oUeQkQUET7wRwradO6f+fN5jzXgB/zROxxE= -github.com/container-storage-interface/spec v1.5.0/go.mod h1:8K96oQNkJ7pFcC2R9Z1ynGGBB1I93kcS6PGg3SsOk8s= -github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= -github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= -github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= -github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.12/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= -github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= -github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= -github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= -github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= -github.com/coredns/caddy v1.1.0/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4= -github.com/coredns/corefile-migration v1.0.14/go.mod h1:XnhgULOEouimnzgn0t4WPuFDN2/PJQcTxdWKC5eXNGE= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/deckarep/golang-set v1.7.1/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE= @@ -255,14 +180,8 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeC github.com/deepmap/oapi-codegen v1.11.0 h1:f/X2NdIkaBKsSdpeuwLnY/vDI0AtPUrmB5LMgc7YD+A= github.com/deepmap/oapi-codegen v1.11.0/go.mod h1:k+ujhoQGxmQYBZBbxhOZNZf4j08qv5mC+OH+fFTnKxM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v2.8.0+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v20.10.12+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -276,45 +195,28 @@ github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRr github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc= github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= -github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getkin/kin-openapi v0.94.0/go.mod h1:LWZfzOd7PRy8GJ1dJ6mCU6tNdSfOwRac1BUPam4aw6Q= -github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew= @@ -322,7 +224,6 @@ github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U= github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= @@ -340,7 +241,6 @@ github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTg github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= @@ -349,7 +249,6 @@ github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34 github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= @@ -357,10 +256,8 @@ github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8 github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.21.1 h1:wm0rhTb5z7qpJRHBdPOMuY4QjVUMbF6/kwoYeRAOrKU= github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= @@ -369,19 +266,13 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc= github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8= github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho= github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -392,7 +283,6 @@ github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzw github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.4.3 h1:Hxl6lhQFj4AnOX6MLrsCb/+7tCj7DxP7VA+2rDIq5AU= github.com/golang-jwt/jwt/v4 v4.4.3/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= @@ -410,7 +300,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -429,21 +318,14 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/cadvisor v0.44.1/go.mod h1:GQ9KQfz0iNHQk3D6ftzJWK4TXabfIgM10Oy3FkR+Gzg= -github.com/google/cel-go v0.10.1/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w= -github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA= -github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -454,7 +336,6 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -475,7 +356,6 @@ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -483,10 +363,6 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= @@ -499,13 +375,10 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4 h1:4EZlYQIiyecYJlUbVkFXCXHz1QPhVXcHnQKAzBTPfQo= github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4/go.mod h1:lEO7XoHJ/xNRBCxrn4h/CEB67h0kW1B0t4ooP2yrjUA= github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -516,14 +389,8 @@ github.com/gregdel/pushover v1.1.0/go.mod h1:EcaO66Nn1StkpEm1iKtBTV3d2A16SoMsVER github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= @@ -532,37 +399,21 @@ github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/S github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.14.1 h1:nQcJDQwIAGnmoUWp8ubocEX40cCml/17YkF6csQLReU= github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-plugin v1.4.9 h1:ESiK220/qE0aGxWdzKIvRH69iLiuN/PjoLTm69RoWtU= github.com/hashicorp/go-plugin v1.4.9/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= github.com/hashicorp/go-retryablehttp v0.5.1/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1aJLQ4LJJbTQ= github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb h1:b5rjCoWHc7eqmAS4/qyk21ZsHyb6Mxv/jykxvNTkU4M= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/heketi/heketi v10.3.0+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/howeyc/gopass v0.0.0-20170109162249-bf9dde6d0d2c/go.mod h1:lADxMC39cJJqL93Duh1xhAs4I2Zs8mKS89XWXFGp9cs= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= @@ -573,7 +424,6 @@ github.com/influxdata/influxdb-client-go/v2 v2.12.3 h1:28nRlNMRIV4QbtIUvxhWqaxn0 github.com/influxdata/influxdb-client-go/v2 v2.12.3/go.mod h1:IrrLUbCjjfkmRuaCiGQg4m2GbkaeJDcuWoxiWdQEbA0= github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf h1:7JTmneyiNEwVBOHSjoMxiWAqB992atOeepeFYegn5RU= github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= github.com/jaytaylor/html2text v0.0.0-20190408195923-01ec452cbe43/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE= @@ -582,8 +432,6 @@ github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHW github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= @@ -602,9 +450,6 @@ github.com/juju/ansiterm v1.0.0 h1:gmMvnZRq7JZJx6jkfSq9/+2LMrVEwGwt7UR6G+lmDEg= github.com/juju/ansiterm v1.0.0/go.mod h1:PyXUpnI3olx3bsPcHt98FGPX/KCFZ1Fi+hw1XLI6384= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -612,9 +457,7 @@ github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -638,20 +481,14 @@ github.com/lestrrat-go/iter v1.0.1/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbq github.com/lestrrat-go/iter v1.0.2/go.mod h1:Momfcq3AnRlRjI5b5O8/G5/BvpzrhoFTZcn06fEOPt4= github.com/lestrrat-go/jwx v1.2.24/go.mod h1:zoNuZymNl5lgdcu6P7K6ie2QRll5HVfF4xwxBBK1NxY= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= github.com/lunixbochs/vtclean v1.0.0 h1:xu2sLAri4lGiovBDQKxl5mrXyESr3gUr5m5SM5+LVb8= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/lusis/go-slackbot v0.0.0-20180109053408-401027ccfef5/go.mod h1:c2mYKRyMb1BPkO5St0c/ps62L4S0W2NAkaTXj9qEI+0= github.com/lusis/slack-test v0.0.0-20190426140909-c40012f20018/go.mod h1:sFlOUpQL1YcjhFVXhg1CG8ZASEs/Mf1oVb6H75JL/zg= github.com/machinebox/graphql v0.2.2 h1:dWKpJligYKhYKO5A2gvNhkJdQMNZeChZYyBbrZkBZfo= github.com/machinebox/graphql v0.2.2/go.mod h1:F+kbVMHuwrQ5tYgU9JXlnskM8nOaFxCAEolaQybkjWA= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailgun/mailgun-go v2.0.0+incompatible/go.mod h1:NWTyU+O4aczg/nsGhQnvHL6v2n5Gy6Sv5tNDVvC6FbU= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -677,43 +514,28 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= github.com/minio/minio-go/v7 v7.0.29/go.mod h1:x81+AX5gHSfCSqw7jxRKHvxUXMlE5uKX0Vb75Xk5yYg= github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= -github.com/moby/sys/mountinfo v0.6.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae h1:O4SWKdcHVCvYqyDV+9CJA1fcDN2L11Bule0iFy3YlAI= +github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -721,16 +543,12 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= -github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -740,13 +558,9 @@ github.com/newrelic/newrelic-client-go v1.1.0/go.mod h1:RYMXt7hgYw7nzuXIGd2BH0F1 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nlopes/slack v0.5.0/go.mod h1:jVI4BBK3lSktibKahxBF74txcK2vyvkza1z/+rRnVAM= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -754,33 +568,20 @@ github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.14.1 h1:jMU0WaQrP0a/YAEq8eJmJKjBoMs+pClEr1vDMlM/Do4= github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= +github.com/onsi/ginkgo/v2 v2.1.6 h1:Fx2POJZfKRQcM1pH49qSZiYeu319wji004qX+GDovrU= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= +github.com/onsi/gomega v1.20.1 h1:PA/3qinGoukvymdIDV8pii6tiZgC8kbmJO6Z5+b002Q= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= -github.com/opencontainers/runc v1.1.1/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opsgenie/opsgenie-go-sdk-v2 v1.2.13 h1:nV98dkBpqaYbDnhefmOQ+Rn4hE+jD6AtjYHXaU5WyJI= github.com/opsgenie/opsgenie-go-sdk-v2 v1.2.13/go.mod h1:4OjcxgwdXzezqytxN534MooNmrxRD50geWZxTD7845s= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -788,17 +589,13 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -807,31 +604,20 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.8/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -839,35 +625,23 @@ github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTE github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/servicemeshinterface/smi-sdk-go v0.5.0 h1:9cZdhvGbGDlmnp9qqmcQL+RL6KZ3IzHfDLoA5Axg8n0= github.com/servicemeshinterface/smi-sdk-go v0.5.0/go.mod h1:nm1Slf3pfaZPP3g2tE/K5wDmQ1uWVSP0p3uu5rQAQLc= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/slack-go/slack v0.12.1 h1:X97b9g2hnITDtNsNe5GkGx6O2/Sz/uC20ejRZN6QxOw= github.com/slack-go/slack v0.12.1/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/sony/sonyflake v1.0.0 h1:MpU6Ro7tfXwgn2l5eluf9xQvQJDROTBImNCfRXn/YeM= @@ -875,31 +649,17 @@ github.com/sony/sonyflake v1.0.0/go.mod h1:Jv3cfhf/UFtolOTTRd3q4Nl6ENqM+KfyZ5Pse github.com/spaceapegames/go-wavefront v1.8.1 h1:Xuby0uBfw1WVxD9d+l8Gh+zINqnBfd0RJT8e/3i3vBM= github.com/spaceapegames/go-wavefront v1.8.1/go.mod h1:GtdIjtJ0URkfPmaKx0+7vMSDvT/MON9v+4pbdagA8As= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf/go.mod h1:RJID2RhlZKId02nZ62WenDCkgHFerpIOmW0iT7GKmXM= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= -github.com/storageos/go-api v2.2.0+incompatible/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -917,22 +677,14 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk= github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 h1:nrZ3ySNYwJbSpD6ce9duiP+QkD3JuLCcWkdaehUS/3Y= github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80/go.mod h1:iFyPdL66DjUD96XmzVL3ZntbzcflLnznH0fr99w5VqE= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= @@ -940,68 +692,28 @@ github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLr github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/whilp/git-urls v0.0.0-20191001220047-6db9661140c0 h1:qqllXPzXh+So+mmANlX/gCJrgo+1kQyshMoQ+NASzm0= github.com/whilp/git-urls v0.0.0-20191001220047-6db9661140c0/go.mod h1:2rx5KE5FLD0HRfkkpyn8JwbVLBdhgeiOb2D2D9LLKM4= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI= -github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk= +github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.etcd.io/etcd/client/v3 v3.5.1/go.mod h1:OnjH4M8OnAotwaB2l9bVgZzRFKru7/ZMoS46OtKyd3Q= -go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= -go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= -go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= -go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= -go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= -go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -1009,28 +721,20 @@ golang.org/x/crypto v0.0.0-20190422183909-d864b10871cd/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220513210258-46612604a0f9/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= @@ -1038,8 +742,6 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20210220032938-85be41e4509f/go.mod h1:I6l2HNBLBZEcrOoCpyKLdY2lHoRZ8lI4x60KMCQDft4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1052,21 +754,14 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20201217150744-e6ae53a27f4f/go.mod h1:skQtrUTUwhdJvXM/2KKJzY8pDgNr9I/FOMqDVRPBUS4= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= @@ -1075,17 +770,13 @@ golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1110,19 +801,13 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1134,16 +819,7 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1163,8 +839,6 @@ golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1175,31 +849,26 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1212,41 +881,21 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220406155245-289d7a0edf71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220513210249-45d2b4557a2a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1263,7 +912,6 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -1273,18 +921,13 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220411224347-583f2d630306/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1302,8 +945,6 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1311,7 +952,6 @@ golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117012304-6edc0a871e69/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1332,18 +972,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= @@ -1357,12 +987,6 @@ gomodules.xyz/envconfig v1.3.1-0.20190308184047-426f31af0d45/go.mod h1:41y72mzHT gomodules.xyz/notify v0.1.1 h1:1tTuoyswmPvzqPCTEDQK8SZ3ukCxLsonAAwst2+y1a0= gomodules.xyz/notify v0.1.1/go.mod h1:QgQyU4xEA/plJcDeT66J2Go2V7U4c0pD9wjo7HfFil4= gomodules.xyz/version v0.1.0/go.mod h1:Y8xuV02mL/45psyPKG3NCVOwvAOy6T5Kx0l3rCjKSjU= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1379,13 +1003,6 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/api v0.46.0/go.mod h1:ceL4oozhkAiTID8XMmJBsIxID/9wMXJVVFXPg4ylg3I= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1407,7 +1024,6 @@ google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -1416,7 +1032,6 @@ google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -1426,27 +1041,11 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201102152239-715cce707fb0/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -1457,15 +1056,8 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= @@ -1496,21 +1088,12 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1529,7 +1112,6 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= -gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1539,107 +1121,68 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.17.8/go.mod h1:N++Llhs8kCixMUoCaXXAyMMPbo8dDVnh+IQ36xZV2/0= k8s.io/api v0.18.8/go.mod h1:d/CXqwWv+Z2XEG1LgceeDmHQwpUJhROPx16SlxJgERY= -k8s.io/api v0.24.2 h1:g518dPU/L7VRLxWfcadQn2OnsiGWVOadTLpdnqgY2OI= -k8s.io/api v0.24.2/go.mod h1:AHqbSkTm6YrQ0ObxjO3Pmp/ubFF/KuM7jU+3khoBsOg= -k8s.io/apiextensions-apiserver v0.24.2 h1:/4NEQHKlEz1MlaK/wHT5KMKC9UKYz6NZz6JE6ov4G6k= -k8s.io/apiextensions-apiserver v0.24.2/go.mod h1:e5t2GMFVngUEHUd0wuCJzw8YDwZoqZfJiGOW6mm2hLQ= +k8s.io/api v0.25.8 h1:pcbnWkCcmjNhp6OEKqR+ojO0CJydpOOw7WiWedjLJAU= +k8s.io/api v0.25.8/go.mod h1:FaJqAtI13XOERtpLOQTkW3SiSf0lqsUohYqaxCyHI18= +k8s.io/apiextensions-apiserver v0.25.8 h1:PBji7zCXwYoEabNcNOfvb3asd5LIwZKh1mowrbwn010= +k8s.io/apiextensions-apiserver v0.25.8/go.mod h1:3wN73ddXCwLTE1exhoBiWp5G3u6xRfoNt0cKTHZ5KGE= k8s.io/apimachinery v0.17.8/go.mod h1:Lg8zZ5iC/O8UjCqW6DNhcQG2m4TdjF9kwG3891OWbbA= k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig= -k8s.io/apimachinery v0.24.2 h1:5QlH9SL2C8KMcrNJPor+LbXVTaZRReml7svPEh4OKDM= -k8s.io/apimachinery v0.24.2/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= -k8s.io/apiserver v0.24.2 h1:orxipm5elPJSkkFNlwH9ClqaKEDJJA3yR2cAAlCnyj4= -k8s.io/apiserver v0.24.2/go.mod h1:pSuKzr3zV+L+MWqsEo0kHHYwCo77AT5qXbFXP2jbvFI= -k8s.io/cli-runtime v0.24.2 h1:KxY6tSgPGsahA6c1/dmR3uF5jOxXPx2QQY6C5ZrLmtE= -k8s.io/cli-runtime v0.24.2/go.mod h1:1LIhKL2RblkhfG4v5lZEt7FtgFG5mVb8wqv5lE9m5qY= +k8s.io/apimachinery v0.25.8 h1:c4kI9xm0U5nid8sBpBvM+2VHlv4Af8KnbhZIodZF/54= +k8s.io/apimachinery v0.25.8/go.mod h1:ZTl0drTQaFi5gMM3snYI5tWV1XJmRH1gfnDx2QCLsxk= +k8s.io/apiserver v0.25.8 h1:ZTYdLdouAu8D6h9QavMaQZiAV+EfWK87VGdOyb6RZMQ= +k8s.io/apiserver v0.25.8/go.mod h1:IJ1r0vqXxwa+3QbrxAHWqdmoGZnVDDMzWtIK9ju3maI= +k8s.io/cli-runtime v0.25.8 h1:3+I4zgdcY0KoCAWgqfQEMkhKOK35ailULxeTMcrBAfs= +k8s.io/cli-runtime v0.25.8/go.mod h1:Kbi+0tb9s/Gtsp3HfMJ/P20K3MYeC4t/CMDaV4pZiJQ= k8s.io/client-go v0.17.8/go.mod h1:SJsDS64AAtt9VZyeaQMb4Ck5etCitZ/FwajWdzua5eY= k8s.io/client-go v0.18.8/go.mod h1:HqFqMllQ5NnQJNwjro9k5zMyfhZlOwpuTLVrxjkYSxU= -k8s.io/client-go v0.24.2 h1:CoXFSf8if+bLEbinDqN9ePIDGzcLtqhfd6jpfnwGOFA= -k8s.io/client-go v0.24.2/go.mod h1:zg4Xaoo+umDsfCWr4fCnmLEtQXyCNXCvJuSsglNcV30= -k8s.io/cloud-provider v0.24.2/go.mod h1:a7jyWjizk+IKbcIf8+mX2cj3NvpRv9ZyGdXDyb8UEkI= -k8s.io/cluster-bootstrap v0.24.2 h1:p177dIhDst4INUWBZgTnqSad8oJiUdKo0cLLVU24AzE= -k8s.io/cluster-bootstrap v0.24.2/go.mod h1:eIHV338K03vBm3u/ROZiNXxWJ4AJRoTR9PEUhcTvYkg= +k8s.io/client-go v0.25.8 h1:PruqsI6qccbowI5wjeNosyE1BiKViChRWVOvCZtYnXY= +k8s.io/client-go v0.25.8/go.mod h1:Wiu5CQCaOqWugLrdvl04HK90P0QMc4oxQ3BXoJGjD+A= +k8s.io/cluster-bootstrap v0.25.8 h1:2JoXlDAnki1rmYMdrExP5tYXJgJhCERYHtAbucjZgs8= +k8s.io/cluster-bootstrap v0.25.8/go.mod h1:O7q/A8Os259t1Tm2S9Zn9XipZ9eej0AfApj1htCT0Lc= k8s.io/code-generator v0.18.8/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c= -k8s.io/code-generator v0.24.2 h1:EGeRWzJrpwi6T6CvoNl0spM6fnAnOdCr0rz7H4NU1rk= -k8s.io/code-generator v0.24.2/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w= -k8s.io/component-base v0.24.2 h1:kwpQdoSfbcH+8MPN4tALtajLDfSfYxBDYlXobNWI6OU= -k8s.io/component-base v0.24.2/go.mod h1:ucHwW76dajvQ9B7+zecZAP3BVqvrHoOxm8olHEg0nmM= -k8s.io/component-helpers v0.24.2 h1:gtXmI/TjVINtkAdZn7m5p8+Vd0Mk4d1q8kwJMMLBdwY= -k8s.io/component-helpers v0.24.2/go.mod h1:TRQPBQKfmqkmV6c0HAmUs8cXVNYYYLsXy4zu8eODi9g= -k8s.io/controller-manager v0.24.2/go.mod h1:hpwCof4KxP4vrw/M5QiVxU6Zmmggmr1keGXtjGHF+vc= -k8s.io/cri-api v0.24.2/go.mod h1:t3tImFtGeStN+ES69bQUX9sFg67ek38BM9YIJhMmuig= -k8s.io/csi-translation-lib v0.24.2/go.mod h1:pdHc2CYLViQYYsOqOp79hjKYi8J4NZ7vpiVzn1SqBrg= +k8s.io/code-generator v0.25.8 h1:rhj7PQgiTdDiV2D9Ep0wHRppQ/jrG7DDJ5vPpEtRtck= +k8s.io/code-generator v0.25.8/go.mod h1:DHfpdhSUrwqF0f4oLqCtF8gYbqlndNetjBEz45nWzJI= +k8s.io/component-base v0.25.8 h1:lQ5Ouw7lupdpXn5slRjAeHnlMK/aAEbPf9jjSWbOD3c= +k8s.io/component-base v0.25.8/go.mod h1:MkC9Lz4fXoGOgB2WhFBU4zjiviIEeJS3sVhTxX9vt6s= +k8s.io/component-helpers v0.25.8 h1:jTi68SNaCis1s4//S7CXOtmzIOqhiY5CUroZuD2+OEg= +k8s.io/component-helpers v0.25.8/go.mod h1:+EZENL02v1dJXJvAYXZfAldATLviWL7Y/K3Pw8LB3MU= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/gengo v0.0.0-20211129171323-c02415ce4185 h1:TT1WdmqqXareKxZ/oNXEUSwKlLiHzPMyB0t8BaFeBYI= -k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20220902162205-c0856e24416d h1:U9tB195lKdzwqicbJvyJeOXV7Klv+wNAWENRnXEGi08= +k8s.io/gengo v0.0.0-20220902162205-c0856e24416d/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/klog/v2 v2.70.1 h1:7aaoSdahviPmR+XkS7FyxlkkXs6tHISSG03RxleQAVQ= -k8s.io/klog/v2 v2.70.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-aggregator v0.24.2/go.mod h1:Ju2jNDixn+vqeeKEBfjfpc204bO1pbdXX0N9knCxeMQ= -k8s.io/kube-controller-manager v0.24.2/go.mod h1:KDE0yqiEvxYiO0WRpPA4rVx8AcK1vsWydUF37AJ9lTI= +k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= +k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29/go.mod h1:F+5wygcW0wmRTnM3cOgIqGivxkwSWIWT5YdsDbeAOaU= -k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= -k8s.io/kube-openapi v0.0.0-20220401212409-b28bf2818661/go.mod h1:daOouuuwd9JXpv1L7Y34iV3yf6nxzipkKMWWlqlvK9M= -k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8 h1:yEQKdMCjzAOvGeiTwG4hO/hNVNtDOuUFvMUZ0OlaIzs= -k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8/go.mod h1:mbJ+NSUoAhuR14N0S63bPkh8MGVSo3VYSGZtH/mfMe0= -k8s.io/kube-proxy v0.24.2/go.mod h1:bozS2ufl/Ns6s40Ue34eV7rqyLVygi5usSmCgW7rFU8= -k8s.io/kube-scheduler v0.24.2/go.mod h1:DRa+aeXKSYUUOHHIc/9EcaO9+FW5FydaOfPSvaSW5Ko= -k8s.io/kubectl v0.24.2 h1:+RfQVhth8akUmIc2Ge8krMl/pt66V7210ka3RE/p0J4= -k8s.io/kubectl v0.24.2/go.mod h1:+HIFJc0bA6Tzu5O/YcuUt45APAxnNL8LeMuXwoiGsPg= -k8s.io/kubelet v0.24.2/go.mod h1:Xm9DkWQjwOs+uGOUIIGIPMvvmenvj0lDVOErvIKOOt0= -k8s.io/kubernetes v1.24.2 h1:AyjtHzSysliKR04Km91njmk2yaKmOa3ZISQZCIGUnVI= -k8s.io/kubernetes v1.24.2/go.mod h1:8e8maMiZzBR2/8Po5Uulx+MXZUYJuN3vtKwD4Ct1Xi0= -k8s.io/legacy-cloud-providers v0.24.2/go.mod h1:sgkasgIP2ZOew8fzoOq0mQLVXJ4AmB57IUbFUjzPWEo= -k8s.io/metrics v0.24.2/go.mod h1:5NWURxZ6Lz5gj8TFU83+vdWIVASx7W8lwPpHYCqopMo= -k8s.io/mount-utils v0.24.2/go.mod h1:XrSqB3a2e8sq+aU+rlbcBtQ3EgcuDk5RP9ZsGxjoDrI= -k8s.io/pod-security-admission v0.24.2/go.mod h1:znnuDHWWWvh/tpbYYPwTsd4y//qHi3cOX+wGxET/mMI= -k8s.io/sample-apiserver v0.24.2/go.mod h1:mf8qgDdu450wqpCJOkSAmoTgU4PIMAcfa5uTBwmJekE= -k8s.io/system-validators v1.7.0/go.mod h1:gP1Ky+R9wtrSiFbrpEPwWMeYz9yqyy1S/KOh0Vci7WI= +k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E= +k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= +k8s.io/kubectl v0.25.8 h1:i6nlpU5LQyg9J19mKihJo1oE7FE7+Zg1cF4TOpJQmEQ= +k8s.io/kubectl v0.25.8/go.mod h1:IPmVLfTvFIZKl0vwyl0LkegIbk2jsnaVmkpDgDymCPI= +k8s.io/kubernetes v1.25.8 h1:RQ3Rf3aScxhg/xDT1GebWFHOtYodM83Q/Yxvgku39G4= +k8s.io/kubernetes v1.25.8/go.mod h1:mEIT8S9Ir6R4R8N6VLmfxcNFAmGU2hEtV780TuPYlug= k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20220706174534-f6158b442e7c h1:hFZO68mv/0xe8+V0gRT9BAq3/31cKjjeVv4nScriuBk= -k8s.io/utils v0.0.0-20220706174534-f6158b442e7c/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= +k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= +k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.30/go.mod h1:fEO7lRTdivWO2qYVCVG7dEADOMo/MLDCVr8So2g88Uw= -sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= -sigs.k8s.io/json v0.0.0-20220525155127-227cbc7cc124 h1:2sgAQQcY0dEW2SsQwTXhQV4vO6+rSslYx8K3XmM5hqQ= -sigs.k8s.io/json v0.0.0-20220525155127-227cbc7cc124/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= -sigs.k8s.io/kustomize/api v0.11.4/go.mod h1:k+8RsqYbgpkIrJ4p9jcdPqe8DprLxFUUO0yNOq8C+xI= -sigs.k8s.io/kustomize/api v0.11.5 h1:vLDp++YAX7iy2y2CVPJNy9pk9CY8XaUKgHkjbVtnWag= -sigs.k8s.io/kustomize/api v0.11.5/go.mod h1:2UDpxS6AonWXow2ZbySd4AjUxmdXLeTlvGBC46uSiq8= -sigs.k8s.io/kustomize/cmd/config v0.10.6/go.mod h1:/S4A4nUANUa4bZJ/Edt7ZQTyKOY9WCER0uBS1SW2Rco= -sigs.k8s.io/kustomize/kustomize/v4 v4.5.4/go.mod h1:Zo/Xc5FKD6sHl0lilbrieeGeZHVYCA4BzxeAaLI05Bg= -sigs.k8s.io/kustomize/kyaml v0.13.6/go.mod h1:yHP031rn1QX1lr/Xd934Ri/xdVNG8BE2ECa78Ht/kEg= -sigs.k8s.io/kustomize/kyaml v0.13.7 h1:/EZ/nPaLUzeJKF/BuJ4QCuMVJWiEVoI8iftOHY3g3tk= -sigs.k8s.io/kustomize/kyaml v0.13.7/go.mod h1:6K+IUOuir3Y7nucPRAjw9yth04KSWBnP5pqUTGwj/qU= +sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= +sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM= +sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s= +sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk= +sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4= sigs.k8s.io/structured-merge-diff/v2 v2.0.1/go.mod h1:Wb7vfKAodbKgf6tn1Kl0VvGj7mRH6DGaRcixXEJXTsE= sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.2.1 h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y= -sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= diff --git a/manifests/crds/analysis-run-crd.yaml b/manifests/crds/analysis-run-crd.yaml index a4316fa4f9..920eaff7b5 100644 --- a/manifests/crds/analysis-run-crd.yaml +++ b/manifests/crds/analysis-run-crd.yaml @@ -232,6 +232,51 @@ spec: parallelism: format: int32 type: integer + podFailurePolicy: + properties: + rules: + items: + properties: + action: + type: string + onExitCodes: + properties: + containerName: + type: string + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + - values + type: object + onPodConditions: + items: + properties: + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-type: atomic + required: + - action + - onPodConditions + type: object + type: array + x-kubernetes-list-type: atomic + required: + - rules + type: object selector: properties: matchExpressions: @@ -1824,6 +1869,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -2571,12 +2618,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: diff --git a/manifests/crds/analysis-template-crd.yaml b/manifests/crds/analysis-template-crd.yaml index 528e3f6fc7..e60e521f1f 100644 --- a/manifests/crds/analysis-template-crd.yaml +++ b/manifests/crds/analysis-template-crd.yaml @@ -228,6 +228,51 @@ spec: parallelism: format: int32 type: integer + podFailurePolicy: + properties: + rules: + items: + properties: + action: + type: string + onExitCodes: + properties: + containerName: + type: string + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + - values + type: object + onPodConditions: + items: + properties: + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-type: atomic + required: + - action + - onPodConditions + type: object + type: array + x-kubernetes-list-type: atomic + required: + - rules + type: object selector: properties: matchExpressions: @@ -1820,6 +1865,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -2567,12 +2614,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: diff --git a/manifests/crds/cluster-analysis-template-crd.yaml b/manifests/crds/cluster-analysis-template-crd.yaml index cfc93db1ba..3849f1f3b8 100644 --- a/manifests/crds/cluster-analysis-template-crd.yaml +++ b/manifests/crds/cluster-analysis-template-crd.yaml @@ -228,6 +228,51 @@ spec: parallelism: format: int32 type: integer + podFailurePolicy: + properties: + rules: + items: + properties: + action: + type: string + onExitCodes: + properties: + containerName: + type: string + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + - values + type: object + onPodConditions: + items: + properties: + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-type: atomic + required: + - action + - onPodConditions + type: object + type: array + x-kubernetes-list-type: atomic + required: + - rules + type: object selector: properties: matchExpressions: @@ -1820,6 +1865,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -2567,12 +2614,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: diff --git a/manifests/crds/experiment-crd.yaml b/manifests/crds/experiment-crd.yaml index f856a4b9a9..5fb7940b31 100644 --- a/manifests/crds/experiment-crd.yaml +++ b/manifests/crds/experiment-crd.yaml @@ -1720,6 +1720,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -2467,12 +2469,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index bbd547baee..2b026746b6 100755 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -2456,6 +2456,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -3203,12 +3205,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: diff --git a/manifests/install.yaml b/manifests/install.yaml index 8ac2ebaaca..7d9ae8ac33 100755 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -233,6 +233,51 @@ spec: parallelism: format: int32 type: integer + podFailurePolicy: + properties: + rules: + items: + properties: + action: + type: string + onExitCodes: + properties: + containerName: + type: string + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + - values + type: object + onPodConditions: + items: + properties: + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-type: atomic + required: + - action + - onPodConditions + type: object + type: array + x-kubernetes-list-type: atomic + required: + - rules + type: object selector: properties: matchExpressions: @@ -1825,6 +1870,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -2572,12 +2619,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: @@ -3124,6 +3180,51 @@ spec: parallelism: format: int32 type: integer + podFailurePolicy: + properties: + rules: + items: + properties: + action: + type: string + onExitCodes: + properties: + containerName: + type: string + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + - values + type: object + onPodConditions: + items: + properties: + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-type: atomic + required: + - action + - onPodConditions + type: object + type: array + x-kubernetes-list-type: atomic + required: + - rules + type: object selector: properties: matchExpressions: @@ -4716,6 +4817,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -5463,12 +5566,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: @@ -5901,6 +6013,51 @@ spec: parallelism: format: int32 type: integer + podFailurePolicy: + properties: + rules: + items: + properties: + action: + type: string + onExitCodes: + properties: + containerName: + type: string + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + - values + type: object + onPodConditions: + items: + properties: + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-type: atomic + required: + - action + - onPodConditions + type: object + type: array + x-kubernetes-list-type: atomic + required: + - rules + type: object selector: properties: matchExpressions: @@ -7493,6 +7650,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -8240,12 +8399,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: @@ -10170,6 +10338,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -10917,12 +11087,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: @@ -13511,6 +13690,8 @@ spec: type: boolean hostPID: type: boolean + hostUsers: + type: boolean hostname: type: string imagePullSecrets: @@ -14258,12 +14439,21 @@ spec: type: string type: object type: object + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic maxSkew: format: int32 type: integer minDomains: format: int32 type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string topologyKey: type: string whenUnsatisfiable: diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index b47f017c91..134bfbf595 100755 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -2220,7 +2220,7 @@ "items": { "$ref": "#/definitions/k8s.io.api.core.v1.ContainerPort" }, - "title": "List of ports to expose from the container. Exposing a port here gives\nthe system additional information about the network connections a\ncontainer uses, but is primarily informational. Not specifying a port here\nDOES NOT prevent that port from being exposed. Any port which is\nlistening on the default \"0.0.0.0\" address inside a container will be\naccessible from the network.\nCannot be updated.\n+optional\n+patchMergeKey=containerPort\n+patchStrategy=merge\n+listType=map\n+listMapKey=containerPort\n+listMapKey=protocol" + "title": "List of ports to expose from the container. Not specifying a port here\nDOES NOT prevent that port from being exposed. Any port which is\nlistening on the default \"0.0.0.0\" address inside a container will be\naccessible from the network.\nModifying this array with strategic merge patch may corrupt the data.\nFor more information See https://github.com/kubernetes/kubernetes/issues/108255.\nCannot be updated.\n+optional\n+patchMergeKey=containerPort\n+patchStrategy=merge\n+listType=map\n+listMapKey=containerPort\n+listMapKey=protocol" }, "envFrom": { "type": "array", @@ -2467,7 +2467,7 @@ "description": "If set, the name of the container from PodSpec that this ephemeral container targets.\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\nIf not set then the ephemeral container uses the namespaces configured in the Pod spec.\n\nThe container runtime must implement support for this feature. If the runtime does not\nsupport namespace targeting then the result of setting this field is undefined.\n+optional" } }, - "description": "An EphemeralContainer is a temporary container that you may add to an existing Pod for\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\nPod to exceed its resource allocation.\n\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\nPod. Ephemeral containers may not be removed or restarted.\n\nThis is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate." + "description": "An EphemeralContainer is a temporary container that you may add to an existing Pod for\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\nscheduling guarantees, and they will not be restarted when they exit or when a Pod is\nremoved or restarted. The kubelet may evict a Pod if an ephemeral container causes the\nPod to exceed its resource allocation.\n\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing\nPod. Ephemeral containers may not be removed or restarted." }, "k8s.io.api.core.v1.EphemeralContainerCommon": { "type": "object", @@ -3343,7 +3343,7 @@ "items": { "$ref": "#/definitions/k8s.io.api.core.v1.EphemeralContainer" }, - "title": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\npod to perform user-initiated actions such as debugging. This list cannot be specified when\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\nThis field is beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\n+optional\n+patchMergeKey=name\n+patchStrategy=merge" + "title": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\npod to perform user-initiated actions such as debugging. This list cannot be specified when\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\n+optional\n+patchMergeKey=name\n+patchStrategy=merge" }, "restartPolicy": { "type": "string", @@ -3495,7 +3495,11 @@ }, "os": { "$ref": "#/definitions/k8s.io.api.core.v1.PodOS", - "description": "Specifies the OS of the containers in the pod.\nSome pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset:\n-securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset:\n- spec.hostPID\n- spec.hostIPC\n- spec.securityContext.seLinuxOptions\n- spec.securityContext.seccompProfile\n- spec.securityContext.fsGroup\n- spec.securityContext.fsGroupChangePolicy\n- spec.securityContext.sysctls\n- spec.shareProcessNamespace\n- spec.securityContext.runAsUser\n- spec.securityContext.runAsGroup\n- spec.securityContext.supplementalGroups\n- spec.containers[*].securityContext.seLinuxOptions\n- spec.containers[*].securityContext.seccompProfile\n- spec.containers[*].securityContext.capabilities\n- spec.containers[*].securityContext.readOnlyRootFilesystem\n- spec.containers[*].securityContext.privileged\n- spec.containers[*].securityContext.allowPrivilegeEscalation\n- spec.containers[*].securityContext.procMount\n- spec.containers[*].securityContext.runAsUser\n- spec.containers[*].securityContext.runAsGroup\n+optional\nThis is a beta field and requires the IdentifyPodOS feature" + "description": "Specifies the OS of the containers in the pod.\nSome pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset:\n-securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset:\n- spec.hostPID\n- spec.hostIPC\n- spec.hostUsers\n- spec.securityContext.seLinuxOptions\n- spec.securityContext.seccompProfile\n- spec.securityContext.fsGroup\n- spec.securityContext.fsGroupChangePolicy\n- spec.securityContext.sysctls\n- spec.shareProcessNamespace\n- spec.securityContext.runAsUser\n- spec.securityContext.runAsGroup\n- spec.securityContext.supplementalGroups\n- spec.containers[*].securityContext.seLinuxOptions\n- spec.containers[*].securityContext.seccompProfile\n- spec.containers[*].securityContext.capabilities\n- spec.containers[*].securityContext.readOnlyRootFilesystem\n- spec.containers[*].securityContext.privileged\n- spec.containers[*].securityContext.allowPrivilegeEscalation\n- spec.containers[*].securityContext.procMount\n- spec.containers[*].securityContext.runAsUser\n- spec.containers[*].securityContext.runAsGroup\n+optional" + }, + "hostUsers": { + "type": "boolean", + "title": "Use the host's user namespace.\nOptional: Default to true.\nIf set to true or not present, the pod will be run in the host user namespace, useful\nfor when the pod needs a feature only available to the host user namespace, such as\nloading a kernel module with CAP_SYS_MODULE.\nWhen set to false, a new userns is created for the pod. Setting false is useful for\nmitigating container breakout vulnerabilities even allowing users to run their\ncontainers as root without actually having root privileges on the host.\nThis field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\n+k8s:conversion-gen=false\n+optional" } }, "description": "PodSpec is a description of a pod." @@ -4059,7 +4063,7 @@ }, "topologyKey": { "type": "string", - "description": "TopologyKey is the key of node labels. Nodes that have a label with this key\nand identical values are considered to be in the same topology.\nWe consider each \u003ckey, value\u003e as a \"bucket\", and try to put balanced number\nof pods into each bucket.\nWe define a domain as a particular instance of a topology.\nAlso, we define an eligible domain as a domain whose nodes match the node selector.\ne.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology.\nAnd, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology.\nIt's a required field." + "description": "TopologyKey is the key of node labels. Nodes that have a label with this key\nand identical values are considered to be in the same topology.\nWe consider each \u003ckey, value\u003e as a \"bucket\", and try to put balanced number\nof pods into each bucket.\nWe define a domain as a particular instance of a topology.\nAlso, we define an eligible domain as a domain whose nodes meet the requirements of\nnodeAffinityPolicy and nodeTaintsPolicy.\ne.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology.\nAnd, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology.\nIt's a required field." }, "whenUnsatisfiable": { "type": "string", @@ -4072,7 +4076,22 @@ "minDomains": { "type": "integer", "format": "int32", - "description": "MinDomains indicates a minimum number of eligible domains.\nWhen the number of eligible domains with matching topology keys is less than minDomains,\nPod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\nthis value has no effect on scheduling.\nAs a result, when the number of eligible domains is less than minDomains,\nscheduler won't schedule more than maxSkew Pods to those domains.\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\nValid values are integers greater than 0.\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\nlabelSelector spread as 2/2/2:\n+-------+-------+-------+\n| zone1 | zone2 | zone3 |\n+-------+-------+-------+\n| P P | P P | P P |\n+-------+-------+-------+\nThe number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\nIn this situation, new pod with the same labelSelector cannot be scheduled,\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\nit will violate MaxSkew.\n\nThis is an alpha field and requires enabling MinDomainsInPodTopologySpread feature gate.\n+optional" + "description": "MinDomains indicates a minimum number of eligible domains.\nWhen the number of eligible domains with matching topology keys is less than minDomains,\nPod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\nAnd when the number of eligible domains with matching topology keys equals or greater than minDomains,\nthis value has no effect on scheduling.\nAs a result, when the number of eligible domains is less than minDomains,\nscheduler won't schedule more than maxSkew Pods to those domains.\nIf value is nil, the constraint behaves as if MinDomains is equal to 1.\nValid values are integers greater than 0.\nWhen value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\nlabelSelector spread as 2/2/2:\n+-------+-------+-------+\n| zone1 | zone2 | zone3 |\n+-------+-------+-------+\n| P P | P P | P P |\n+-------+-------+-------+\nThe number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\nIn this situation, new pod with the same labelSelector cannot be scheduled,\nbecause computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\nit will violate MaxSkew.\n\nThis is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default).\n+optional" + }, + "nodeAffinityPolicy": { + "type": "string", + "description": "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\nwhen calculating pod topology spread skew. Options are:\n- Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\n- Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\nIf this value is nil, the behavior is equivalent to the Honor policy.\nThis is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n+optional" + }, + "nodeTaintsPolicy": { + "type": "string", + "description": "NodeTaintsPolicy indicates how we will treat node taints when calculating\npod topology spread skew. Options are:\n- Honor: nodes without taints, along with tainted nodes for which the incoming pod\nhas a toleration, are included.\n- Ignore: node taints are ignored. All nodes are included.\n\nIf this value is nil, the behavior is equivalent to the Ignore policy.\nThis is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n+optional" + }, + "matchLabelKeys": { + "type": "array", + "items": { + "type": "string" + }, + "title": "MatchLabelKeys is a set of pod label keys to select the pods over which\nspreading will be calculated. The keys are used to lookup values from the\nincoming pod labels, those key-value labels are ANDed with labelSelector\nto select the group of existing pods over which spreading will be calculated\nfor the incoming pod. Keys that don't exist in the incoming pod labels will\nbe ignored. A null or empty list means only match against labelSelector.\n+listType=atomic\n+optional" } }, "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology." @@ -4363,7 +4382,7 @@ "type": "string" } }, - "description": "Quantity is a fixed-point representation of a number.\nIt provides convenient marshaling/unmarshaling in JSON and YAML,\nin addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9\n\u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e\n\u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e\n\u003csign\u003e ::= \"+\" | \"-\"\n\u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e\n\u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e\n\u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent\na number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal\nplaces. Numbers larger or more precise will be capped or rounded up.\n(E.g.: 0.1m will rounded up to 1m.)\nThis may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix\nit had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\".\nThis means that Exponent/suffix will be adjusted up or down (with a\ncorresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a\nfloating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed,\nbut will be re-emitted in their canonical form. (So always use canonical\nform, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without\nwriting some sort of special handling code in the hopes that that will\ncause implementors to also use a fixed point implementation.\n\n+protobuf=true\n+protobuf.embed=string\n+protobuf.options.marshal=false\n+protobuf.options.(gogoproto.goproto_stringer)=false\n+k8s:deepcopy-gen=true\n+k8s:openapi-gen=true" + "description": "Quantity is a fixed-point representation of a number.\nIt provides convenient marshaling/unmarshaling in JSON and YAML,\nin addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n```\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n\n\t(Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\n\u003cdigit\u003e ::= 0 | 1 | ... | 9\n\u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e\n\u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e\n\u003csign\u003e ::= \"+\" | \"-\"\n\u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e\n\u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e\n\u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n\n\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n\n\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n```\n\nNo matter which of the three exponent forms is used, no quantity may represent\na number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal\nplaces. Numbers larger or more precise will be capped or rounded up.\n(E.g.: 0.1m will rounded up to 1m.)\nThis may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix\nit had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\".\nThis means that Exponent/suffix will be adjusted up or down (with a\ncorresponding increase or decrease in Mantissa) such that:\n\n- No precision is lost\n- No fractional digits will be emitted\n- The exponent (or suffix) is as large as possible.\n\nThe sign will be omitted unless the number is negative.\n\nExamples:\n\n- 1.5 will be serialized as \"1500m\"\n- 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a\nfloating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed,\nbut will be re-emitted in their canonical form. (So always use canonical\nform, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without\nwriting some sort of special handling code in the hopes that that will\ncause implementors to also use a fixed point implementation.\n\n+protobuf=true\n+protobuf.embed=string\n+protobuf.options.marshal=false\n+protobuf.options.(gogoproto.goproto_stringer)=false\n+k8s:deepcopy-gen=true\n+k8s:openapi-gen=true" }, "k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1": { "type": "object", @@ -4524,10 +4543,6 @@ }, "title": "Must be empty before the object is deleted from the registry. Each entry\nis an identifier for the responsible component that will remove the entry\nfrom the list. If the deletionTimestamp of the object is non-nil, entries\nin this list can only be removed.\nFinalizers may be processed and removed in any order. Order is NOT enforced\nbecause it introduces significant risk of stuck finalizers.\nfinalizers is a shared field, any actor with permission can reorder it.\nIf the finalizer list is processed in order, then this can lead to a situation\nin which the component responsible for the first finalizer in the list is\nwaiting for a signal (field value, external system, or other) produced by a\ncomponent responsible for a finalizer later in the list, resulting in a deadlock.\nWithout enforced ordering finalizers are free to order amongst themselves and\nare not vulnerable to ordering changes in the list.\n+optional\n+patchStrategy=merge" }, - "clusterName": { - "type": "string", - "description": "Deprecated: ClusterName is a legacy field that was always cleared by\nthe system and never used; it will be removed completely in 1.25.\n\nThe name in the go struct is changed to help clients detect\naccidental use.\n\n+optional" - }, "managedFields": { "type": "array", "items": { diff --git a/rollout/trafficrouting/apisix/mocks/apisix.go b/rollout/trafficrouting/apisix/mocks/apisix.go index 5931fb456a..c884167412 100644 --- a/rollout/trafficrouting/apisix/mocks/apisix.go +++ b/rollout/trafficrouting/apisix/mocks/apisix.go @@ -133,3 +133,11 @@ func (f *FakeClient) Namespace(string) dynamic.ResourceInterface { func (f *FakeDynamicClient) Resource(schema.GroupVersionResource) dynamic.NamespaceableResourceInterface { return &FakeClient{IsListError: f.IsListError} } + +func (f *FakeClient) Apply(ctx context.Context, name string, obj *unstructured.Unstructured, options metav1.ApplyOptions, subresources ...string) (*unstructured.Unstructured, error) { + return nil, nil +} + +func (f *FakeClient) ApplyStatus(ctx context.Context, name string, obj *unstructured.Unstructured, options metav1.ApplyOptions) (*unstructured.Unstructured, error) { + return nil, nil +} diff --git a/rollout/trafficrouting/traefik/mocks/traefik.go b/rollout/trafficrouting/traefik/mocks/traefik.go index e1ce30a648..aedfd659cd 100644 --- a/rollout/trafficrouting/traefik/mocks/traefik.go +++ b/rollout/trafficrouting/traefik/mocks/traefik.go @@ -97,3 +97,11 @@ func (f *FakeClient) Namespace(string) dynamic.ResourceInterface { func (f *FakeDynamicClient) Resource(schema.GroupVersionResource) dynamic.NamespaceableResourceInterface { return &FakeClient{} } + +func (f *FakeClient) Apply(ctx context.Context, name string, obj *unstructured.Unstructured, options metav1.ApplyOptions, subresources ...string) (*unstructured.Unstructured, error) { + return nil, nil +} + +func (f *FakeClient) ApplyStatus(ctx context.Context, name string, obj *unstructured.Unstructured, options metav1.ApplyOptions) (*unstructured.Unstructured, error) { + return nil, nil +} diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index e95c8a4899..4146a6b4cc 100755 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -2648,7 +2648,7 @@ export interface K8sIoApiCoreV1EnvVarSource { secretKeyRef?: K8sIoApiCoreV1SecretKeySelector; } /** - * An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. This is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate. + * An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. * @export * @interface K8sIoApiCoreV1EphemeralContainer */ @@ -3933,6 +3933,12 @@ export interface K8sIoApiCoreV1PodSpec { * @memberof K8sIoApiCoreV1PodSpec */ os?: K8sIoApiCoreV1PodOS; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PodSpec + */ + hostUsers?: boolean; } /** * @@ -4678,7 +4684,7 @@ export interface K8sIoApiCoreV1TopologySpreadConstraint { */ maxSkew?: number; /** - * TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes match the node selector. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field. + * TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field. * @type {string} * @memberof K8sIoApiCoreV1TopologySpreadConstraint */ @@ -4696,11 +4702,29 @@ export interface K8sIoApiCoreV1TopologySpreadConstraint { */ labelSelector?: K8sIoApimachineryPkgApisMetaV1LabelSelector; /** - * MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: +-------+-------+-------+ | zone1 | zone2 | zone3 | +-------+-------+-------+ | P P | P P | P P | +-------+-------+-------+ The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. This is an alpha field and requires enabling MinDomainsInPodTopologySpread feature gate. +optional + * MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: +-------+-------+-------+ | zone1 | zone2 | zone3 | +-------+-------+-------+ | P P | P P | P P | +-------+-------+-------+ The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). +optional * @type {number} * @memberof K8sIoApiCoreV1TopologySpreadConstraint */ minDomains?: number; + /** + * NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. +optional + * @type {string} + * @memberof K8sIoApiCoreV1TopologySpreadConstraint + */ + nodeAffinityPolicy?: string; + /** + * NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. +optional + * @type {string} + * @memberof K8sIoApiCoreV1TopologySpreadConstraint + */ + nodeTaintsPolicy?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1TopologySpreadConstraint + */ + matchLabelKeys?: Array; } /** * @@ -5102,7 +5126,7 @@ export interface K8sIoApiCoreV1WindowsSecurityContextOptions { hostProcess?: boolean; } /** - * Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors. The serialization format is: ::= (Note that may be empty, from the \"\" case in .) ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html) ::= m | \"\" | k | M | G | T | P | E (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.) ::= \"e\" | \"E\" No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities. When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized. Before serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that: a. No precision is lost b. No fractional digits will be emitted c. The exponent (or suffix) is as large as possible. The sign will be omitted unless the number is negative. Examples: 1.5 will be serialized as \"1500m\" 1.5Gi will be serialized as \"1536Mi\" Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise. Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.) This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation. +protobuf=true +protobuf.embed=string +protobuf.options.marshal=false +protobuf.options.(gogoproto.goproto_stringer)=false +k8s:deepcopy-gen=true +k8s:openapi-gen=true + * Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors. The serialization format is: ``` ::= (Note that may be empty, from the \"\" case in .) ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html) ::= m | \"\" | k | M | G | T | P | E (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.) ::= \"e\" | \"E\" ``` No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities. When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized. Before serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that: - No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible. The sign will be omitted unless the number is negative. Examples: - 1.5 will be serialized as \"1500m\" - 1.5Gi will be serialized as \"1536Mi\" Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise. Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.) This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation. +protobuf=true +protobuf.embed=string +protobuf.options.marshal=false +protobuf.options.(gogoproto.goproto_stringer)=false +k8s:deepcopy-gen=true +k8s:openapi-gen=true * @export * @interface K8sIoApimachineryPkgApiResourceQuantity */ @@ -5310,12 +5334,6 @@ export interface K8sIoApimachineryPkgApisMetaV1ObjectMeta { * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta */ finalizers?: Array; - /** - * Deprecated: ClusterName is a legacy field that was always cleared by the system and never used; it will be removed completely in 1.25. The name in the go struct is changed to help clients detect accidental use. +optional - * @type {string} - * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta - */ - clusterName?: string; /** * ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object. +optional * @type {Array} From 96f164f8014e3e3e2117543598b22ba0d95f74a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Apr 2023 12:24:36 -0500 Subject: [PATCH 08/11] chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.9 to 1.25.10 (#2745) chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.9 to 1.25.10. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/polly/v1.25.9...service/cloudwatch/v1.25.10) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2e3e6a473c..1d8fe300d7 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/argoproj/pkg v0.13.6 github.com/aws/aws-sdk-go-v2 v1.18.0 github.com/aws/aws-sdk-go-v2/config v1.18.21 - github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.9 + github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.10 github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.10 github.com/blang/semver v3.5.1+incompatible github.com/bombsimon/logrusr/v4 v4.0.0 diff --git a/go.sum b/go.sum index dbb4669683..564b43f875 100644 --- a/go.sum +++ b/go.sum @@ -118,8 +118,8 @@ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 h1:vFQlirhuM8lLlpI7im github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27/go.mod h1:UrHnn3QV/d0pBZ6QBAEQcqFLf8FAzLmoUfPVIueOvoM= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.33 h1:HbH1VjUgrCdLJ+4lnnuLI4iVNRvBbBELGaJ5f69ClA8= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.33/go.mod h1:zG2FcwjQarWaqXSCGpgcr3RSjZ6dHGguZSppUL0XR7Q= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.9 h1:7jgW378oM948BxuOBarXeeaKSrRaCj7didsdeSwYGGo= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.9/go.mod h1:hwbKzCoQcD/EvmfhhoM1Zdk+zADOiFBrHVff0+y4hEQ= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.10 h1:m7nFc1xk7O5vriDJc6lymQLbfIHbW4sjNTrjcnDpQlM= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.10/go.mod h1:t5mizLPjCYafXoHCXOHJU7z4OvLbY70Echvb1ciBTV4= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.10 h1:RnL6Jg/DG9CAnY0MP9D0vJYQB3vv/gkKzJPw9nCqeo8= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.10/go.mod h1:oPHYtcocUcfHOE7qygtvyZMw82nedCKZSop/R9jxlAM= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.26 h1:uUt4XctZLhl9wBE1L8lobU3bVN8SNUP7T+olb0bWBO4= From cb4d6ff77af55847e38846b36e82811be5c810f9 Mon Sep 17 00:00:00 2001 From: Zach Aller Date: Sun, 30 Apr 2023 23:20:46 -0500 Subject: [PATCH 09/11] fix(controller): Fix for rollouts getting stuck in loop (#2689) * possible fix for sutck rollouts Signed-off-by: zachaller * add comments Signed-off-by: zachaller * add comments Signed-off-by: zachaller * update comments Signed-off-by: zachaller --------- Signed-off-by: zachaller --- rollout/controller.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/rollout/controller.go b/rollout/controller.go index 1fa0c73ce0..b5d8122ac3 100644 --- a/rollout/controller.go +++ b/rollout/controller.go @@ -413,13 +413,18 @@ func (c *Controller) syncHandler(ctx context.Context, key string) error { } err = roCtx.reconcile() - if roCtx.newRollout != nil { - c.writeBackToInformer(roCtx.newRollout) - } if err != nil { logCtx.Errorf("roCtx.reconcile err %v", err) + // return an err here so that we do not update the informer cache with a "bad" rollout object, for the case when + // we get an error during reconciliation but c.newRollout still gets updated this can happen in syncReplicaSetRevision + // https://github.com/argoproj/argo-rollouts/issues/2522#issuecomment-1492181154 I also believe there are other cases + // that newRollout can get updated while we get an error during reconciliation + return err } - return err + if roCtx.newRollout != nil { + c.writeBackToInformer(roCtx.newRollout) + } + return nil } // writeBackToInformer writes a just recently updated Rollout back into the informer cache. From 04b1e30d74354ce1084452cfcd8c74a29d239b05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 23:21:08 -0500 Subject: [PATCH 10/11] chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.21 to 1.18.22 (#2746) chore(deps): bump github.com/aws/aws-sdk-go-v2/config Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.21 to 1.18.22. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.21...config/v1.18.22) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 35 ++++++++++++++++------------------- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 1d8fe300d7..a5f56e4961 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/argoproj/notifications-engine v0.4.0 github.com/argoproj/pkg v0.13.6 github.com/aws/aws-sdk-go-v2 v1.18.0 - github.com/aws/aws-sdk-go-v2/config v1.18.21 + github.com/aws/aws-sdk-go-v2/config v1.18.22 github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.10 github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.10 github.com/blang/semver v3.5.1+incompatible @@ -82,15 +82,15 @@ require ( github.com/Masterminds/sprig v2.22.0+incompatible // indirect github.com/RocketChat/Rocket.Chat.Go.SDK v0.0.0-20220708192748-b73dcb041214 // indirect github.com/aws/aws-sdk-go v1.44.116 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.20 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.2 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.21 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.33 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.26 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.12.8 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.8 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.18.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.12.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.9 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.18.10 // indirect github.com/aws/smithy-go v1.13.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect diff --git a/go.sum b/go.sum index 564b43f875..076313fc26 100644 --- a/go.sum +++ b/go.sum @@ -101,35 +101,32 @@ github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2z github.com/aws/aws-sdk-go v1.44.39/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.116 h1:NpLIhcvLWXJZAEwvPj3TDHeqp7DleK6ZUVYyW01WNHY= github.com/aws/aws-sdk-go v1.44.116/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go-v2 v1.17.8/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2 v1.18.0 h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY= github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2/config v1.18.21 h1:ENTXWKwE8b9YXgQCsruGLhvA9bhg+RqAsL9XEMEsa2c= -github.com/aws/aws-sdk-go-v2/config v1.18.21/go.mod h1:+jPQiVPz1diRnjj6VGqWcLK6EzNmQ42l7J3OqGTLsSY= -github.com/aws/aws-sdk-go-v2/credentials v1.13.20 h1:oZCEFcrMppP/CNiS8myzv9JgOzq2s0d3v3MXYil/mxQ= -github.com/aws/aws-sdk-go-v2/credentials v1.13.20/go.mod h1:xtZnXErtbZ8YGXC3+8WfajpMBn5Ga/3ojZdxHq6iI8o= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.2 h1:jOzQAesnBFDmz93feqKnsTHsXrlwWORNZMFHMV+WLFU= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.2/go.mod h1:cDh1p6XkSGSwSRIArWRc6+UqAQ7x4alQ0QfpVR6f+co= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.32/go.mod h1:RudqOgadTWdcS3t/erPQo24pcVEoYyqj/kKW5Vya21I= +github.com/aws/aws-sdk-go-v2/config v1.18.22 h1:7vkUEmjjv+giht4wIROqLs+49VWmiQMMHSduxmoNKLU= +github.com/aws/aws-sdk-go-v2/config v1.18.22/go.mod h1:mN7Li1wxaPxSSy4Xkr6stFuinJGf3VZW3ZSNvO0q6sI= +github.com/aws/aws-sdk-go-v2/credentials v1.13.21 h1:VRiXnPEaaPeGeoFcXvMZOB5K/yfIXOYE3q97Kgb0zbU= +github.com/aws/aws-sdk-go-v2/credentials v1.13.21/go.mod h1:90Dk1lJoMyspa/EDUrldTxsPns0wn6+KpRKpdAWc0uA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 h1:jJPgroehGvjrde3XufFIJUZVK5A2L9a3KwSFgKy9n8w= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3/go.mod h1:4Q0UFP0YJf0NrsEuEYHpM9fTSEVnD16Z3uyEF7J9JGM= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 h1:kG5eQilShqmJbv11XL1VpyDbaEJzWxd4zRiCG30GSn4= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33/go.mod h1:7i0PF1ME/2eUPFcjkVIwq+DOygHEoK92t5cDqNgYbIw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.26/go.mod h1:vq86l7956VgFr0/FWQ2BWnK07QC3WYsepKzy33qqY5U= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 h1:vFQlirhuM8lLlpI7imKOMsjdQLuN9CPi+k44F/OFVsk= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27/go.mod h1:UrHnn3QV/d0pBZ6QBAEQcqFLf8FAzLmoUfPVIueOvoM= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.33 h1:HbH1VjUgrCdLJ+4lnnuLI4iVNRvBbBELGaJ5f69ClA8= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.33/go.mod h1:zG2FcwjQarWaqXSCGpgcr3RSjZ6dHGguZSppUL0XR7Q= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 h1:gGLG7yKaXG02/jBlg210R7VgQIotiQntNhsCFejawx8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34/go.mod h1:Etz2dj6UHYuw+Xw830KfzCfWGMzqvUTCjUj5b76GVDc= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.10 h1:m7nFc1xk7O5vriDJc6lymQLbfIHbW4sjNTrjcnDpQlM= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.25.10/go.mod h1:t5mizLPjCYafXoHCXOHJU7z4OvLbY70Echvb1ciBTV4= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.10 h1:RnL6Jg/DG9CAnY0MP9D0vJYQB3vv/gkKzJPw9nCqeo8= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.19.10/go.mod h1:oPHYtcocUcfHOE7qygtvyZMw82nedCKZSop/R9jxlAM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.26 h1:uUt4XctZLhl9wBE1L8lobU3bVN8SNUP7T+olb0bWBO4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.26/go.mod h1:Bd4C/4PkVGubtNe5iMXu5BNnaBi/9t/UsFspPt4ram8= -github.com/aws/aws-sdk-go-v2/service/sso v1.12.8 h1:5cb3D6xb006bPTqEfCNaEA6PPEfBXxxy4NNeX/44kGk= -github.com/aws/aws-sdk-go-v2/service/sso v1.12.8/go.mod h1:GNIveDnP+aE3jujyUSH5aZ/rktsTM5EvtKnCqBZawdw= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.8 h1:NZaj0ngZMzsubWZbrEFSB4rgSQRbFq38Sd6KBxHuOIU= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.8/go.mod h1:44qFP1g7pfd+U+sQHLPalAPKnyfTZjJsYR4xIwsJy5o= -github.com/aws/aws-sdk-go-v2/service/sts v1.18.9 h1:Qf1aWwnsNkyAoqDqmdM3nHwN78XQjec27LjM6b9vyfI= -github.com/aws/aws-sdk-go-v2/service/sts v1.18.9/go.mod h1:yyW88BEPXA2fGFyI2KCcZC3dNpiT0CZAHaF+i656/tQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 h1:0iKliEXAcCa2qVtRs7Ot5hItA2MsufrphbRFlz1Owxo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27/go.mod h1:EOwBD4J4S5qYszS5/3DpkejfuK+Z5/1uzICfPaZLtqw= +github.com/aws/aws-sdk-go-v2/service/sso v1.12.9 h1:GAiaQWuQhQQui76KjuXeShmyXqECwQ0mGRMc/rwsL+c= +github.com/aws/aws-sdk-go-v2/service/sso v1.12.9/go.mod h1:ouy2P4z6sJN70fR3ka3wD3Ro3KezSxU6eKGQI2+2fjI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.9 h1:TraLwncRJkWqtIBVKI/UqBymq4+hL+3MzUOtUATuzkA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.9/go.mod h1:AFvkxc8xfBe8XA+5St5XIHHrQQtkxqrRincx4hmMHOk= +github.com/aws/aws-sdk-go-v2/service/sts v1.18.10 h1:6UbNM/KJhMBfOI5+lpVcJ/8OA7cBSz0O6OX37SRKlSw= +github.com/aws/aws-sdk-go-v2/service/sts v1.18.10/go.mod h1:BgQOMsg8av8jset59jelyPW7NoZcZXLVpDsXunGDrk8= github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= From f72e565960e074fd885c14d88334168859c44a66 Mon Sep 17 00:00:00 2001 From: Lukasz <106734180+lukaszgyg@users.noreply.github.com> Date: Thu, 4 May 2023 21:38:24 +0200 Subject: [PATCH 11/11] feat(controller): Add custom metadata support for AnalysisRun. Fixes #2740 (#2743) Add custom metadata support for AnalysisRun Signed-off-by: lukasz --- docs/features/analysis.md | 20 + docs/features/specification.md | 6 + manifests/crds/rollout-crd.yaml | 44 + manifests/install.yaml | 44 + pkg/apiclient/rollout/rollout.swagger.json | 24 + pkg/apis/rollouts/v1alpha1/generated.pb.go | 1756 +++++++++++------ pkg/apis/rollouts/v1alpha1/generated.proto | 15 + .../rollouts/v1alpha1/openapi_generated.go | 64 +- pkg/apis/rollouts/v1alpha1/types.go | 13 + .../v1alpha1/zz_generated.deepcopy.go | 31 + rollout/analysis.go | 6 + rollout/analysis_test.go | 51 + ui/src/models/rollout/generated/api.ts | 25 + 13 files changed, 1475 insertions(+), 624 deletions(-) diff --git a/docs/features/analysis.md b/docs/features/analysis.md index 9e96cd1d65..1a81a71274 100644 --- a/docs/features/analysis.md +++ b/docs/features/analysis.md @@ -804,6 +804,26 @@ spec: limit: 20 ``` +### Define custom Labels/Annotations for AnalysisRun + +If you would like to annotate/label the `AnalysisRun` with the custom labels your can do it by specifying +`analysisRunMetadata` field. + +```yaml hl_lines="9 10 11" +kind: Rollout +spec: +... + steps: + - analysis: + templates: + - templateName: my-template + analysisRunMetadata: + labels: + my-custom-label: label-value + annotations: + my-custom-annotation: annotation-value +``` + ### Measurements Retention for Experiments If an experiment wants to retain more results of its analysis metrics, it simply needs to specify the diff --git a/docs/features/specification.md b/docs/features/specification.md index 12feeb9240..025ab529c4 100644 --- a/docs/features/specification.md +++ b/docs/features/specification.md @@ -348,6 +348,12 @@ spec: analyses: - name : mann-whitney templateName: mann-whitney + # Metadata which will be attached to the AnalysisRun. + analysisRunMetadata: + labels: + app.service.io/analysisType: smoke-test + annotations: + link.argocd.argoproj.io/external-link: http://my-loggin-platform.com/pre-generated-link # Anti-affinity configuration between desired and previous ReplicaSet. # Only one must be specified. diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index 2b026746b6..80fcbb69e3 100755 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -153,6 +153,17 @@ spec: x-kubernetes-int-or-string: true postPromotionAnalysis: properties: + analysisRunMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object args: items: properties: @@ -210,6 +221,17 @@ spec: type: object prePromotionAnalysis: properties: + analysisRunMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object args: items: properties: @@ -297,6 +319,17 @@ spec: type: integer analysis: properties: + analysisRunMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object args: items: properties: @@ -430,6 +463,17 @@ spec: properties: analysis: properties: + analysisRunMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object args: items: properties: diff --git a/manifests/install.yaml b/manifests/install.yaml index 7d9ae8ac33..b4f0bbffc3 100755 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -11387,6 +11387,17 @@ spec: x-kubernetes-int-or-string: true postPromotionAnalysis: properties: + analysisRunMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object args: items: properties: @@ -11444,6 +11455,17 @@ spec: type: object prePromotionAnalysis: properties: + analysisRunMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object args: items: properties: @@ -11531,6 +11553,17 @@ spec: type: integer analysis: properties: + analysisRunMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object args: items: properties: @@ -11664,6 +11697,17 @@ spec: properties: analysis: properties: + analysisRunMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object args: items: properties: diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index 134bfbf595..071eb37dbc 100755 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -568,6 +568,26 @@ }, "title": "AnalysisRunArgument argument to add to analysisRun" }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunMetadata": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Labels Additional labels to add to the AnalysisRun\n+optional" + }, + "annotations": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Annotations additional annotations to add to the AnalysisRun\n+optional" + } + }, + "title": "AnalysisRunMetadata extra labels to add to the AnalysisRun" + }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunStrategy": { "type": "object", "properties": { @@ -1225,6 +1245,10 @@ "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.MeasurementRetention" }, "title": "MeasurementRetention object contains the settings for retaining the number of measurements during the analysis\n+patchMergeKey=metricName\n+patchStrategy=merge\n+optional" + }, + "analysisRunMetadata": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunMetadata", + "title": "AnalysisRunMetadata labels and annotations that will be added to the AnalysisRuns\n+optional" } }, "title": "RolloutAnalysis defines a template that is used to create a analysisRun" diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index a485999856..998e3ea168 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -217,10 +217,38 @@ func (m *AnalysisRunList) XXX_DiscardUnknown() { var xxx_messageInfo_AnalysisRunList proto.InternalMessageInfo +func (m *AnalysisRunMetadata) Reset() { *m = AnalysisRunMetadata{} } +func (*AnalysisRunMetadata) ProtoMessage() {} +func (*AnalysisRunMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{6} +} +func (m *AnalysisRunMetadata) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisRunMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisRunMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisRunMetadata.Merge(m, src) +} +func (m *AnalysisRunMetadata) XXX_Size() int { + return m.Size() +} +func (m *AnalysisRunMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisRunMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisRunMetadata proto.InternalMessageInfo + func (m *AnalysisRunSpec) Reset() { *m = AnalysisRunSpec{} } func (*AnalysisRunSpec) ProtoMessage() {} func (*AnalysisRunSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{6} + return fileDescriptor_e0e705f843545fab, []int{7} } func (m *AnalysisRunSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -248,7 +276,7 @@ var xxx_messageInfo_AnalysisRunSpec proto.InternalMessageInfo func (m *AnalysisRunStatus) Reset() { *m = AnalysisRunStatus{} } func (*AnalysisRunStatus) ProtoMessage() {} func (*AnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{7} + return fileDescriptor_e0e705f843545fab, []int{8} } func (m *AnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -276,7 +304,7 @@ var xxx_messageInfo_AnalysisRunStatus proto.InternalMessageInfo func (m *AnalysisRunStrategy) Reset() { *m = AnalysisRunStrategy{} } func (*AnalysisRunStrategy) ProtoMessage() {} func (*AnalysisRunStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{8} + return fileDescriptor_e0e705f843545fab, []int{9} } func (m *AnalysisRunStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -304,7 +332,7 @@ var xxx_messageInfo_AnalysisRunStrategy proto.InternalMessageInfo func (m *AnalysisTemplate) Reset() { *m = AnalysisTemplate{} } func (*AnalysisTemplate) ProtoMessage() {} func (*AnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{9} + return fileDescriptor_e0e705f843545fab, []int{10} } func (m *AnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -332,7 +360,7 @@ var xxx_messageInfo_AnalysisTemplate proto.InternalMessageInfo func (m *AnalysisTemplateList) Reset() { *m = AnalysisTemplateList{} } func (*AnalysisTemplateList) ProtoMessage() {} func (*AnalysisTemplateList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{10} + return fileDescriptor_e0e705f843545fab, []int{11} } func (m *AnalysisTemplateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -360,7 +388,7 @@ var xxx_messageInfo_AnalysisTemplateList proto.InternalMessageInfo func (m *AnalysisTemplateSpec) Reset() { *m = AnalysisTemplateSpec{} } func (*AnalysisTemplateSpec) ProtoMessage() {} func (*AnalysisTemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{11} + return fileDescriptor_e0e705f843545fab, []int{12} } func (m *AnalysisTemplateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -388,7 +416,7 @@ var xxx_messageInfo_AnalysisTemplateSpec proto.InternalMessageInfo func (m *AntiAffinity) Reset() { *m = AntiAffinity{} } func (*AntiAffinity) ProtoMessage() {} func (*AntiAffinity) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{12} + return fileDescriptor_e0e705f843545fab, []int{13} } func (m *AntiAffinity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -416,7 +444,7 @@ var xxx_messageInfo_AntiAffinity proto.InternalMessageInfo func (m *ApisixRoute) Reset() { *m = ApisixRoute{} } func (*ApisixRoute) ProtoMessage() {} func (*ApisixRoute) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{13} + return fileDescriptor_e0e705f843545fab, []int{14} } func (m *ApisixRoute) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -444,7 +472,7 @@ var xxx_messageInfo_ApisixRoute proto.InternalMessageInfo func (m *ApisixTrafficRouting) Reset() { *m = ApisixTrafficRouting{} } func (*ApisixTrafficRouting) ProtoMessage() {} func (*ApisixTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{14} + return fileDescriptor_e0e705f843545fab, []int{15} } func (m *ApisixTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -472,7 +500,7 @@ var xxx_messageInfo_ApisixTrafficRouting proto.InternalMessageInfo func (m *AppMeshTrafficRouting) Reset() { *m = AppMeshTrafficRouting{} } func (*AppMeshTrafficRouting) ProtoMessage() {} func (*AppMeshTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{15} + return fileDescriptor_e0e705f843545fab, []int{16} } func (m *AppMeshTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -500,7 +528,7 @@ var xxx_messageInfo_AppMeshTrafficRouting proto.InternalMessageInfo func (m *AppMeshVirtualNodeGroup) Reset() { *m = AppMeshVirtualNodeGroup{} } func (*AppMeshVirtualNodeGroup) ProtoMessage() {} func (*AppMeshVirtualNodeGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{16} + return fileDescriptor_e0e705f843545fab, []int{17} } func (m *AppMeshVirtualNodeGroup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -528,7 +556,7 @@ var xxx_messageInfo_AppMeshVirtualNodeGroup proto.InternalMessageInfo func (m *AppMeshVirtualNodeReference) Reset() { *m = AppMeshVirtualNodeReference{} } func (*AppMeshVirtualNodeReference) ProtoMessage() {} func (*AppMeshVirtualNodeReference) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{17} + return fileDescriptor_e0e705f843545fab, []int{18} } func (m *AppMeshVirtualNodeReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -556,7 +584,7 @@ var xxx_messageInfo_AppMeshVirtualNodeReference proto.InternalMessageInfo func (m *AppMeshVirtualService) Reset() { *m = AppMeshVirtualService{} } func (*AppMeshVirtualService) ProtoMessage() {} func (*AppMeshVirtualService) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{18} + return fileDescriptor_e0e705f843545fab, []int{19} } func (m *AppMeshVirtualService) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -584,7 +612,7 @@ var xxx_messageInfo_AppMeshVirtualService proto.InternalMessageInfo func (m *Argument) Reset() { *m = Argument{} } func (*Argument) ProtoMessage() {} func (*Argument) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{19} + return fileDescriptor_e0e705f843545fab, []int{20} } func (m *Argument) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -612,7 +640,7 @@ var xxx_messageInfo_Argument proto.InternalMessageInfo func (m *ArgumentValueFrom) Reset() { *m = ArgumentValueFrom{} } func (*ArgumentValueFrom) ProtoMessage() {} func (*ArgumentValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{20} + return fileDescriptor_e0e705f843545fab, []int{21} } func (m *ArgumentValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -640,7 +668,7 @@ var xxx_messageInfo_ArgumentValueFrom proto.InternalMessageInfo func (m *AwsResourceRef) Reset() { *m = AwsResourceRef{} } func (*AwsResourceRef) ProtoMessage() {} func (*AwsResourceRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{21} + return fileDescriptor_e0e705f843545fab, []int{22} } func (m *AwsResourceRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -668,7 +696,7 @@ var xxx_messageInfo_AwsResourceRef proto.InternalMessageInfo func (m *BlueGreenStatus) Reset() { *m = BlueGreenStatus{} } func (*BlueGreenStatus) ProtoMessage() {} func (*BlueGreenStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{22} + return fileDescriptor_e0e705f843545fab, []int{23} } func (m *BlueGreenStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -696,7 +724,7 @@ var xxx_messageInfo_BlueGreenStatus proto.InternalMessageInfo func (m *BlueGreenStrategy) Reset() { *m = BlueGreenStrategy{} } func (*BlueGreenStrategy) ProtoMessage() {} func (*BlueGreenStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{23} + return fileDescriptor_e0e705f843545fab, []int{24} } func (m *BlueGreenStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -724,7 +752,7 @@ var xxx_messageInfo_BlueGreenStrategy proto.InternalMessageInfo func (m *CanaryStatus) Reset() { *m = CanaryStatus{} } func (*CanaryStatus) ProtoMessage() {} func (*CanaryStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{24} + return fileDescriptor_e0e705f843545fab, []int{25} } func (m *CanaryStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -752,7 +780,7 @@ var xxx_messageInfo_CanaryStatus proto.InternalMessageInfo func (m *CanaryStep) Reset() { *m = CanaryStep{} } func (*CanaryStep) ProtoMessage() {} func (*CanaryStep) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{25} + return fileDescriptor_e0e705f843545fab, []int{26} } func (m *CanaryStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -780,7 +808,7 @@ var xxx_messageInfo_CanaryStep proto.InternalMessageInfo func (m *CanaryStrategy) Reset() { *m = CanaryStrategy{} } func (*CanaryStrategy) ProtoMessage() {} func (*CanaryStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{26} + return fileDescriptor_e0e705f843545fab, []int{27} } func (m *CanaryStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -808,7 +836,7 @@ var xxx_messageInfo_CanaryStrategy proto.InternalMessageInfo func (m *CloudWatchMetric) Reset() { *m = CloudWatchMetric{} } func (*CloudWatchMetric) ProtoMessage() {} func (*CloudWatchMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{27} + return fileDescriptor_e0e705f843545fab, []int{28} } func (m *CloudWatchMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -836,7 +864,7 @@ var xxx_messageInfo_CloudWatchMetric proto.InternalMessageInfo func (m *CloudWatchMetricDataQuery) Reset() { *m = CloudWatchMetricDataQuery{} } func (*CloudWatchMetricDataQuery) ProtoMessage() {} func (*CloudWatchMetricDataQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{28} + return fileDescriptor_e0e705f843545fab, []int{29} } func (m *CloudWatchMetricDataQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -864,7 +892,7 @@ var xxx_messageInfo_CloudWatchMetricDataQuery proto.InternalMessageInfo func (m *CloudWatchMetricStat) Reset() { *m = CloudWatchMetricStat{} } func (*CloudWatchMetricStat) ProtoMessage() {} func (*CloudWatchMetricStat) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{29} + return fileDescriptor_e0e705f843545fab, []int{30} } func (m *CloudWatchMetricStat) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -892,7 +920,7 @@ var xxx_messageInfo_CloudWatchMetricStat proto.InternalMessageInfo func (m *CloudWatchMetricStatMetric) Reset() { *m = CloudWatchMetricStatMetric{} } func (*CloudWatchMetricStatMetric) ProtoMessage() {} func (*CloudWatchMetricStatMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{30} + return fileDescriptor_e0e705f843545fab, []int{31} } func (m *CloudWatchMetricStatMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -920,7 +948,7 @@ var xxx_messageInfo_CloudWatchMetricStatMetric proto.InternalMessageInfo func (m *CloudWatchMetricStatMetricDimension) Reset() { *m = CloudWatchMetricStatMetricDimension{} } func (*CloudWatchMetricStatMetricDimension) ProtoMessage() {} func (*CloudWatchMetricStatMetricDimension) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{31} + return fileDescriptor_e0e705f843545fab, []int{32} } func (m *CloudWatchMetricStatMetricDimension) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -948,7 +976,7 @@ var xxx_messageInfo_CloudWatchMetricStatMetricDimension proto.InternalMessageInf func (m *ClusterAnalysisTemplate) Reset() { *m = ClusterAnalysisTemplate{} } func (*ClusterAnalysisTemplate) ProtoMessage() {} func (*ClusterAnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{32} + return fileDescriptor_e0e705f843545fab, []int{33} } func (m *ClusterAnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -976,7 +1004,7 @@ var xxx_messageInfo_ClusterAnalysisTemplate proto.InternalMessageInfo func (m *ClusterAnalysisTemplateList) Reset() { *m = ClusterAnalysisTemplateList{} } func (*ClusterAnalysisTemplateList) ProtoMessage() {} func (*ClusterAnalysisTemplateList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{33} + return fileDescriptor_e0e705f843545fab, []int{34} } func (m *ClusterAnalysisTemplateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1004,7 +1032,7 @@ var xxx_messageInfo_ClusterAnalysisTemplateList proto.InternalMessageInfo func (m *DatadogMetric) Reset() { *m = DatadogMetric{} } func (*DatadogMetric) ProtoMessage() {} func (*DatadogMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{34} + return fileDescriptor_e0e705f843545fab, []int{35} } func (m *DatadogMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1032,7 +1060,7 @@ var xxx_messageInfo_DatadogMetric proto.InternalMessageInfo func (m *DryRun) Reset() { *m = DryRun{} } func (*DryRun) ProtoMessage() {} func (*DryRun) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{35} + return fileDescriptor_e0e705f843545fab, []int{36} } func (m *DryRun) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1060,7 +1088,7 @@ var xxx_messageInfo_DryRun proto.InternalMessageInfo func (m *Experiment) Reset() { *m = Experiment{} } func (*Experiment) ProtoMessage() {} func (*Experiment) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{36} + return fileDescriptor_e0e705f843545fab, []int{37} } func (m *Experiment) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1088,7 +1116,7 @@ var xxx_messageInfo_Experiment proto.InternalMessageInfo func (m *ExperimentAnalysisRunStatus) Reset() { *m = ExperimentAnalysisRunStatus{} } func (*ExperimentAnalysisRunStatus) ProtoMessage() {} func (*ExperimentAnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{37} + return fileDescriptor_e0e705f843545fab, []int{38} } func (m *ExperimentAnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1116,7 +1144,7 @@ var xxx_messageInfo_ExperimentAnalysisRunStatus proto.InternalMessageInfo func (m *ExperimentAnalysisTemplateRef) Reset() { *m = ExperimentAnalysisTemplateRef{} } func (*ExperimentAnalysisTemplateRef) ProtoMessage() {} func (*ExperimentAnalysisTemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{38} + return fileDescriptor_e0e705f843545fab, []int{39} } func (m *ExperimentAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1144,7 +1172,7 @@ var xxx_messageInfo_ExperimentAnalysisTemplateRef proto.InternalMessageInfo func (m *ExperimentCondition) Reset() { *m = ExperimentCondition{} } func (*ExperimentCondition) ProtoMessage() {} func (*ExperimentCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{39} + return fileDescriptor_e0e705f843545fab, []int{40} } func (m *ExperimentCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1172,7 +1200,7 @@ var xxx_messageInfo_ExperimentCondition proto.InternalMessageInfo func (m *ExperimentList) Reset() { *m = ExperimentList{} } func (*ExperimentList) ProtoMessage() {} func (*ExperimentList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{40} + return fileDescriptor_e0e705f843545fab, []int{41} } func (m *ExperimentList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1200,7 +1228,7 @@ var xxx_messageInfo_ExperimentList proto.InternalMessageInfo func (m *ExperimentSpec) Reset() { *m = ExperimentSpec{} } func (*ExperimentSpec) ProtoMessage() {} func (*ExperimentSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{41} + return fileDescriptor_e0e705f843545fab, []int{42} } func (m *ExperimentSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1228,7 +1256,7 @@ var xxx_messageInfo_ExperimentSpec proto.InternalMessageInfo func (m *ExperimentStatus) Reset() { *m = ExperimentStatus{} } func (*ExperimentStatus) ProtoMessage() {} func (*ExperimentStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{42} + return fileDescriptor_e0e705f843545fab, []int{43} } func (m *ExperimentStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1256,7 +1284,7 @@ var xxx_messageInfo_ExperimentStatus proto.InternalMessageInfo func (m *FieldRef) Reset() { *m = FieldRef{} } func (*FieldRef) ProtoMessage() {} func (*FieldRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{43} + return fileDescriptor_e0e705f843545fab, []int{44} } func (m *FieldRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1284,7 +1312,7 @@ var xxx_messageInfo_FieldRef proto.InternalMessageInfo func (m *GraphiteMetric) Reset() { *m = GraphiteMetric{} } func (*GraphiteMetric) ProtoMessage() {} func (*GraphiteMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{44} + return fileDescriptor_e0e705f843545fab, []int{45} } func (m *GraphiteMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1312,7 +1340,7 @@ var xxx_messageInfo_GraphiteMetric proto.InternalMessageInfo func (m *HeaderRoutingMatch) Reset() { *m = HeaderRoutingMatch{} } func (*HeaderRoutingMatch) ProtoMessage() {} func (*HeaderRoutingMatch) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{45} + return fileDescriptor_e0e705f843545fab, []int{46} } func (m *HeaderRoutingMatch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1340,7 +1368,7 @@ var xxx_messageInfo_HeaderRoutingMatch proto.InternalMessageInfo func (m *InfluxdbMetric) Reset() { *m = InfluxdbMetric{} } func (*InfluxdbMetric) ProtoMessage() {} func (*InfluxdbMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{46} + return fileDescriptor_e0e705f843545fab, []int{47} } func (m *InfluxdbMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1368,7 +1396,7 @@ var xxx_messageInfo_InfluxdbMetric proto.InternalMessageInfo func (m *IstioDestinationRule) Reset() { *m = IstioDestinationRule{} } func (*IstioDestinationRule) ProtoMessage() {} func (*IstioDestinationRule) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{47} + return fileDescriptor_e0e705f843545fab, []int{48} } func (m *IstioDestinationRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1396,7 +1424,7 @@ var xxx_messageInfo_IstioDestinationRule proto.InternalMessageInfo func (m *IstioTrafficRouting) Reset() { *m = IstioTrafficRouting{} } func (*IstioTrafficRouting) ProtoMessage() {} func (*IstioTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{48} + return fileDescriptor_e0e705f843545fab, []int{49} } func (m *IstioTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1424,7 +1452,7 @@ var xxx_messageInfo_IstioTrafficRouting proto.InternalMessageInfo func (m *IstioVirtualService) Reset() { *m = IstioVirtualService{} } func (*IstioVirtualService) ProtoMessage() {} func (*IstioVirtualService) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{49} + return fileDescriptor_e0e705f843545fab, []int{50} } func (m *IstioVirtualService) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1452,7 +1480,7 @@ var xxx_messageInfo_IstioVirtualService proto.InternalMessageInfo func (m *JobMetric) Reset() { *m = JobMetric{} } func (*JobMetric) ProtoMessage() {} func (*JobMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{50} + return fileDescriptor_e0e705f843545fab, []int{51} } func (m *JobMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1480,7 +1508,7 @@ var xxx_messageInfo_JobMetric proto.InternalMessageInfo func (m *KayentaMetric) Reset() { *m = KayentaMetric{} } func (*KayentaMetric) ProtoMessage() {} func (*KayentaMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{51} + return fileDescriptor_e0e705f843545fab, []int{52} } func (m *KayentaMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1508,7 +1536,7 @@ var xxx_messageInfo_KayentaMetric proto.InternalMessageInfo func (m *KayentaScope) Reset() { *m = KayentaScope{} } func (*KayentaScope) ProtoMessage() {} func (*KayentaScope) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{52} + return fileDescriptor_e0e705f843545fab, []int{53} } func (m *KayentaScope) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1536,7 +1564,7 @@ var xxx_messageInfo_KayentaScope proto.InternalMessageInfo func (m *KayentaThreshold) Reset() { *m = KayentaThreshold{} } func (*KayentaThreshold) ProtoMessage() {} func (*KayentaThreshold) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{53} + return fileDescriptor_e0e705f843545fab, []int{54} } func (m *KayentaThreshold) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1564,7 +1592,7 @@ var xxx_messageInfo_KayentaThreshold proto.InternalMessageInfo func (m *MangedRoutes) Reset() { *m = MangedRoutes{} } func (*MangedRoutes) ProtoMessage() {} func (*MangedRoutes) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{54} + return fileDescriptor_e0e705f843545fab, []int{55} } func (m *MangedRoutes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1592,7 +1620,7 @@ var xxx_messageInfo_MangedRoutes proto.InternalMessageInfo func (m *Measurement) Reset() { *m = Measurement{} } func (*Measurement) ProtoMessage() {} func (*Measurement) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{55} + return fileDescriptor_e0e705f843545fab, []int{56} } func (m *Measurement) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1620,7 +1648,7 @@ var xxx_messageInfo_Measurement proto.InternalMessageInfo func (m *MeasurementRetention) Reset() { *m = MeasurementRetention{} } func (*MeasurementRetention) ProtoMessage() {} func (*MeasurementRetention) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{56} + return fileDescriptor_e0e705f843545fab, []int{57} } func (m *MeasurementRetention) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1648,7 +1676,7 @@ var xxx_messageInfo_MeasurementRetention proto.InternalMessageInfo func (m *Metric) Reset() { *m = Metric{} } func (*Metric) ProtoMessage() {} func (*Metric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{57} + return fileDescriptor_e0e705f843545fab, []int{58} } func (m *Metric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1676,7 +1704,7 @@ var xxx_messageInfo_Metric proto.InternalMessageInfo func (m *MetricProvider) Reset() { *m = MetricProvider{} } func (*MetricProvider) ProtoMessage() {} func (*MetricProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{58} + return fileDescriptor_e0e705f843545fab, []int{59} } func (m *MetricProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1704,7 +1732,7 @@ var xxx_messageInfo_MetricProvider proto.InternalMessageInfo func (m *MetricResult) Reset() { *m = MetricResult{} } func (*MetricResult) ProtoMessage() {} func (*MetricResult) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{59} + return fileDescriptor_e0e705f843545fab, []int{60} } func (m *MetricResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1732,7 +1760,7 @@ var xxx_messageInfo_MetricResult proto.InternalMessageInfo func (m *NewRelicMetric) Reset() { *m = NewRelicMetric{} } func (*NewRelicMetric) ProtoMessage() {} func (*NewRelicMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{60} + return fileDescriptor_e0e705f843545fab, []int{61} } func (m *NewRelicMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1760,7 +1788,7 @@ var xxx_messageInfo_NewRelicMetric proto.InternalMessageInfo func (m *NginxTrafficRouting) Reset() { *m = NginxTrafficRouting{} } func (*NginxTrafficRouting) ProtoMessage() {} func (*NginxTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{61} + return fileDescriptor_e0e705f843545fab, []int{62} } func (m *NginxTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1788,7 +1816,7 @@ var xxx_messageInfo_NginxTrafficRouting proto.InternalMessageInfo func (m *ObjectRef) Reset() { *m = ObjectRef{} } func (*ObjectRef) ProtoMessage() {} func (*ObjectRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{62} + return fileDescriptor_e0e705f843545fab, []int{63} } func (m *ObjectRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1816,7 +1844,7 @@ var xxx_messageInfo_ObjectRef proto.InternalMessageInfo func (m *PauseCondition) Reset() { *m = PauseCondition{} } func (*PauseCondition) ProtoMessage() {} func (*PauseCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{63} + return fileDescriptor_e0e705f843545fab, []int{64} } func (m *PauseCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1844,7 +1872,7 @@ var xxx_messageInfo_PauseCondition proto.InternalMessageInfo func (m *PingPongSpec) Reset() { *m = PingPongSpec{} } func (*PingPongSpec) ProtoMessage() {} func (*PingPongSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{64} + return fileDescriptor_e0e705f843545fab, []int{65} } func (m *PingPongSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1872,7 +1900,7 @@ var xxx_messageInfo_PingPongSpec proto.InternalMessageInfo func (m *PodTemplateMetadata) Reset() { *m = PodTemplateMetadata{} } func (*PodTemplateMetadata) ProtoMessage() {} func (*PodTemplateMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{65} + return fileDescriptor_e0e705f843545fab, []int{66} } func (m *PodTemplateMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1902,7 +1930,7 @@ func (m *PreferredDuringSchedulingIgnoredDuringExecution) Reset() { } func (*PreferredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} func (*PreferredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{66} + return fileDescriptor_e0e705f843545fab, []int{67} } func (m *PreferredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1930,7 +1958,7 @@ var xxx_messageInfo_PreferredDuringSchedulingIgnoredDuringExecution proto.Intern func (m *PrometheusMetric) Reset() { *m = PrometheusMetric{} } func (*PrometheusMetric) ProtoMessage() {} func (*PrometheusMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{67} + return fileDescriptor_e0e705f843545fab, []int{68} } func (m *PrometheusMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1960,7 +1988,7 @@ func (m *RequiredDuringSchedulingIgnoredDuringExecution) Reset() { } func (*RequiredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} func (*RequiredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{68} + return fileDescriptor_e0e705f843545fab, []int{69} } func (m *RequiredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1988,7 +2016,7 @@ var xxx_messageInfo_RequiredDuringSchedulingIgnoredDuringExecution proto.Interna func (m *RollbackWindowSpec) Reset() { *m = RollbackWindowSpec{} } func (*RollbackWindowSpec) ProtoMessage() {} func (*RollbackWindowSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{69} + return fileDescriptor_e0e705f843545fab, []int{70} } func (m *RollbackWindowSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2016,7 +2044,7 @@ var xxx_messageInfo_RollbackWindowSpec proto.InternalMessageInfo func (m *Rollout) Reset() { *m = Rollout{} } func (*Rollout) ProtoMessage() {} func (*Rollout) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{70} + return fileDescriptor_e0e705f843545fab, []int{71} } func (m *Rollout) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2044,7 +2072,7 @@ var xxx_messageInfo_Rollout proto.InternalMessageInfo func (m *RolloutAnalysis) Reset() { *m = RolloutAnalysis{} } func (*RolloutAnalysis) ProtoMessage() {} func (*RolloutAnalysis) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{71} + return fileDescriptor_e0e705f843545fab, []int{72} } func (m *RolloutAnalysis) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2072,7 +2100,7 @@ var xxx_messageInfo_RolloutAnalysis proto.InternalMessageInfo func (m *RolloutAnalysisBackground) Reset() { *m = RolloutAnalysisBackground{} } func (*RolloutAnalysisBackground) ProtoMessage() {} func (*RolloutAnalysisBackground) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{72} + return fileDescriptor_e0e705f843545fab, []int{73} } func (m *RolloutAnalysisBackground) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2100,7 +2128,7 @@ var xxx_messageInfo_RolloutAnalysisBackground proto.InternalMessageInfo func (m *RolloutAnalysisRunStatus) Reset() { *m = RolloutAnalysisRunStatus{} } func (*RolloutAnalysisRunStatus) ProtoMessage() {} func (*RolloutAnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{73} + return fileDescriptor_e0e705f843545fab, []int{74} } func (m *RolloutAnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2128,7 +2156,7 @@ var xxx_messageInfo_RolloutAnalysisRunStatus proto.InternalMessageInfo func (m *RolloutAnalysisTemplate) Reset() { *m = RolloutAnalysisTemplate{} } func (*RolloutAnalysisTemplate) ProtoMessage() {} func (*RolloutAnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{74} + return fileDescriptor_e0e705f843545fab, []int{75} } func (m *RolloutAnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2156,7 +2184,7 @@ var xxx_messageInfo_RolloutAnalysisTemplate proto.InternalMessageInfo func (m *RolloutCondition) Reset() { *m = RolloutCondition{} } func (*RolloutCondition) ProtoMessage() {} func (*RolloutCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{75} + return fileDescriptor_e0e705f843545fab, []int{76} } func (m *RolloutCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2184,7 +2212,7 @@ var xxx_messageInfo_RolloutCondition proto.InternalMessageInfo func (m *RolloutExperimentStep) Reset() { *m = RolloutExperimentStep{} } func (*RolloutExperimentStep) ProtoMessage() {} func (*RolloutExperimentStep) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{76} + return fileDescriptor_e0e705f843545fab, []int{77} } func (m *RolloutExperimentStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2214,7 +2242,7 @@ func (m *RolloutExperimentStepAnalysisTemplateRef) Reset() { } func (*RolloutExperimentStepAnalysisTemplateRef) ProtoMessage() {} func (*RolloutExperimentStepAnalysisTemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{77} + return fileDescriptor_e0e705f843545fab, []int{78} } func (m *RolloutExperimentStepAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2242,7 +2270,7 @@ var xxx_messageInfo_RolloutExperimentStepAnalysisTemplateRef proto.InternalMessa func (m *RolloutExperimentTemplate) Reset() { *m = RolloutExperimentTemplate{} } func (*RolloutExperimentTemplate) ProtoMessage() {} func (*RolloutExperimentTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{78} + return fileDescriptor_e0e705f843545fab, []int{79} } func (m *RolloutExperimentTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2270,7 +2298,7 @@ var xxx_messageInfo_RolloutExperimentTemplate proto.InternalMessageInfo func (m *RolloutList) Reset() { *m = RolloutList{} } func (*RolloutList) ProtoMessage() {} func (*RolloutList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{79} + return fileDescriptor_e0e705f843545fab, []int{80} } func (m *RolloutList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2298,7 +2326,7 @@ var xxx_messageInfo_RolloutList proto.InternalMessageInfo func (m *RolloutPause) Reset() { *m = RolloutPause{} } func (*RolloutPause) ProtoMessage() {} func (*RolloutPause) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{80} + return fileDescriptor_e0e705f843545fab, []int{81} } func (m *RolloutPause) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2326,7 +2354,7 @@ var xxx_messageInfo_RolloutPause proto.InternalMessageInfo func (m *RolloutSpec) Reset() { *m = RolloutSpec{} } func (*RolloutSpec) ProtoMessage() {} func (*RolloutSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{81} + return fileDescriptor_e0e705f843545fab, []int{82} } func (m *RolloutSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2354,7 +2382,7 @@ var xxx_messageInfo_RolloutSpec proto.InternalMessageInfo func (m *RolloutStatus) Reset() { *m = RolloutStatus{} } func (*RolloutStatus) ProtoMessage() {} func (*RolloutStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{82} + return fileDescriptor_e0e705f843545fab, []int{83} } func (m *RolloutStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2382,7 +2410,7 @@ var xxx_messageInfo_RolloutStatus proto.InternalMessageInfo func (m *RolloutStrategy) Reset() { *m = RolloutStrategy{} } func (*RolloutStrategy) ProtoMessage() {} func (*RolloutStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{83} + return fileDescriptor_e0e705f843545fab, []int{84} } func (m *RolloutStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2410,7 +2438,7 @@ var xxx_messageInfo_RolloutStrategy proto.InternalMessageInfo func (m *RolloutTrafficRouting) Reset() { *m = RolloutTrafficRouting{} } func (*RolloutTrafficRouting) ProtoMessage() {} func (*RolloutTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{84} + return fileDescriptor_e0e705f843545fab, []int{85} } func (m *RolloutTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2438,7 +2466,7 @@ var xxx_messageInfo_RolloutTrafficRouting proto.InternalMessageInfo func (m *RouteMatch) Reset() { *m = RouteMatch{} } func (*RouteMatch) ProtoMessage() {} func (*RouteMatch) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{85} + return fileDescriptor_e0e705f843545fab, []int{86} } func (m *RouteMatch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2466,7 +2494,7 @@ var xxx_messageInfo_RouteMatch proto.InternalMessageInfo func (m *RunSummary) Reset() { *m = RunSummary{} } func (*RunSummary) ProtoMessage() {} func (*RunSummary) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{86} + return fileDescriptor_e0e705f843545fab, []int{87} } func (m *RunSummary) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2494,7 +2522,7 @@ var xxx_messageInfo_RunSummary proto.InternalMessageInfo func (m *SMITrafficRouting) Reset() { *m = SMITrafficRouting{} } func (*SMITrafficRouting) ProtoMessage() {} func (*SMITrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{87} + return fileDescriptor_e0e705f843545fab, []int{88} } func (m *SMITrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2522,7 +2550,7 @@ var xxx_messageInfo_SMITrafficRouting proto.InternalMessageInfo func (m *ScopeDetail) Reset() { *m = ScopeDetail{} } func (*ScopeDetail) ProtoMessage() {} func (*ScopeDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{88} + return fileDescriptor_e0e705f843545fab, []int{89} } func (m *ScopeDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2550,7 +2578,7 @@ var xxx_messageInfo_ScopeDetail proto.InternalMessageInfo func (m *SecretKeyRef) Reset() { *m = SecretKeyRef{} } func (*SecretKeyRef) ProtoMessage() {} func (*SecretKeyRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{89} + return fileDescriptor_e0e705f843545fab, []int{90} } func (m *SecretKeyRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2578,7 +2606,7 @@ var xxx_messageInfo_SecretKeyRef proto.InternalMessageInfo func (m *SetCanaryScale) Reset() { *m = SetCanaryScale{} } func (*SetCanaryScale) ProtoMessage() {} func (*SetCanaryScale) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{90} + return fileDescriptor_e0e705f843545fab, []int{91} } func (m *SetCanaryScale) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2606,7 +2634,7 @@ var xxx_messageInfo_SetCanaryScale proto.InternalMessageInfo func (m *SetHeaderRoute) Reset() { *m = SetHeaderRoute{} } func (*SetHeaderRoute) ProtoMessage() {} func (*SetHeaderRoute) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{91} + return fileDescriptor_e0e705f843545fab, []int{92} } func (m *SetHeaderRoute) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2634,7 +2662,7 @@ var xxx_messageInfo_SetHeaderRoute proto.InternalMessageInfo func (m *SetMirrorRoute) Reset() { *m = SetMirrorRoute{} } func (*SetMirrorRoute) ProtoMessage() {} func (*SetMirrorRoute) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{92} + return fileDescriptor_e0e705f843545fab, []int{93} } func (m *SetMirrorRoute) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2662,7 +2690,7 @@ var xxx_messageInfo_SetMirrorRoute proto.InternalMessageInfo func (m *SkyWalkingMetric) Reset() { *m = SkyWalkingMetric{} } func (*SkyWalkingMetric) ProtoMessage() {} func (*SkyWalkingMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{93} + return fileDescriptor_e0e705f843545fab, []int{94} } func (m *SkyWalkingMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2690,7 +2718,7 @@ var xxx_messageInfo_SkyWalkingMetric proto.InternalMessageInfo func (m *StickinessConfig) Reset() { *m = StickinessConfig{} } func (*StickinessConfig) ProtoMessage() {} func (*StickinessConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{94} + return fileDescriptor_e0e705f843545fab, []int{95} } func (m *StickinessConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2718,7 +2746,7 @@ var xxx_messageInfo_StickinessConfig proto.InternalMessageInfo func (m *StringMatch) Reset() { *m = StringMatch{} } func (*StringMatch) ProtoMessage() {} func (*StringMatch) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{95} + return fileDescriptor_e0e705f843545fab, []int{96} } func (m *StringMatch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2746,7 +2774,7 @@ var xxx_messageInfo_StringMatch proto.InternalMessageInfo func (m *TCPRoute) Reset() { *m = TCPRoute{} } func (*TCPRoute) ProtoMessage() {} func (*TCPRoute) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{96} + return fileDescriptor_e0e705f843545fab, []int{97} } func (m *TCPRoute) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2774,7 +2802,7 @@ var xxx_messageInfo_TCPRoute proto.InternalMessageInfo func (m *TLSRoute) Reset() { *m = TLSRoute{} } func (*TLSRoute) ProtoMessage() {} func (*TLSRoute) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{97} + return fileDescriptor_e0e705f843545fab, []int{98} } func (m *TLSRoute) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2802,7 +2830,7 @@ var xxx_messageInfo_TLSRoute proto.InternalMessageInfo func (m *TemplateService) Reset() { *m = TemplateService{} } func (*TemplateService) ProtoMessage() {} func (*TemplateService) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{98} + return fileDescriptor_e0e705f843545fab, []int{99} } func (m *TemplateService) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2830,7 +2858,7 @@ var xxx_messageInfo_TemplateService proto.InternalMessageInfo func (m *TemplateSpec) Reset() { *m = TemplateSpec{} } func (*TemplateSpec) ProtoMessage() {} func (*TemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{99} + return fileDescriptor_e0e705f843545fab, []int{100} } func (m *TemplateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2858,7 +2886,7 @@ var xxx_messageInfo_TemplateSpec proto.InternalMessageInfo func (m *TemplateStatus) Reset() { *m = TemplateStatus{} } func (*TemplateStatus) ProtoMessage() {} func (*TemplateStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{100} + return fileDescriptor_e0e705f843545fab, []int{101} } func (m *TemplateStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2886,7 +2914,7 @@ var xxx_messageInfo_TemplateStatus proto.InternalMessageInfo func (m *TraefikTrafficRouting) Reset() { *m = TraefikTrafficRouting{} } func (*TraefikTrafficRouting) ProtoMessage() {} func (*TraefikTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{101} + return fileDescriptor_e0e705f843545fab, []int{102} } func (m *TraefikTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2914,7 +2942,7 @@ var xxx_messageInfo_TraefikTrafficRouting proto.InternalMessageInfo func (m *TrafficWeights) Reset() { *m = TrafficWeights{} } func (*TrafficWeights) ProtoMessage() {} func (*TrafficWeights) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{102} + return fileDescriptor_e0e705f843545fab, []int{103} } func (m *TrafficWeights) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2942,7 +2970,7 @@ var xxx_messageInfo_TrafficWeights proto.InternalMessageInfo func (m *ValueFrom) Reset() { *m = ValueFrom{} } func (*ValueFrom) ProtoMessage() {} func (*ValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{103} + return fileDescriptor_e0e705f843545fab, []int{104} } func (m *ValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2970,7 +2998,7 @@ var xxx_messageInfo_ValueFrom proto.InternalMessageInfo func (m *WavefrontMetric) Reset() { *m = WavefrontMetric{} } func (*WavefrontMetric) ProtoMessage() {} func (*WavefrontMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{104} + return fileDescriptor_e0e705f843545fab, []int{105} } func (m *WavefrontMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2998,7 +3026,7 @@ var xxx_messageInfo_WavefrontMetric proto.InternalMessageInfo func (m *WebMetric) Reset() { *m = WebMetric{} } func (*WebMetric) ProtoMessage() {} func (*WebMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{105} + return fileDescriptor_e0e705f843545fab, []int{106} } func (m *WebMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3026,7 +3054,7 @@ var xxx_messageInfo_WebMetric proto.InternalMessageInfo func (m *WebMetricHeader) Reset() { *m = WebMetricHeader{} } func (*WebMetricHeader) ProtoMessage() {} func (*WebMetricHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{106} + return fileDescriptor_e0e705f843545fab, []int{107} } func (m *WebMetricHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3054,7 +3082,7 @@ var xxx_messageInfo_WebMetricHeader proto.InternalMessageInfo func (m *WeightDestination) Reset() { *m = WeightDestination{} } func (*WeightDestination) ProtoMessage() {} func (*WeightDestination) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{107} + return fileDescriptor_e0e705f843545fab, []int{108} } func (m *WeightDestination) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3086,6 +3114,9 @@ func init() { proto.RegisterType((*AnalysisRun)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRun") proto.RegisterType((*AnalysisRunArgument)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunArgument") proto.RegisterType((*AnalysisRunList)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunList") + proto.RegisterType((*AnalysisRunMetadata)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunMetadata") + proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunMetadata.AnnotationsEntry") + proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunMetadata.LabelsEntry") proto.RegisterType((*AnalysisRunSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunSpec") proto.RegisterType((*AnalysisRunStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunStatus") proto.RegisterType((*AnalysisRunStrategy)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunStrategy") @@ -3203,505 +3234,509 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 7967 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x6c, 0x24, 0xd9, - 0x75, 0xd8, 0x16, 0x9b, 0xaf, 0x3e, 0xe4, 0xf0, 0x71, 0x87, 0xa3, 0xe1, 0x72, 0x77, 0xa6, 0x57, - 0xb5, 0xc6, 0x66, 0x6d, 0xaf, 0x48, 0x69, 0x1f, 0xc9, 0x5a, 0xab, 0x6c, 0xd2, 0x4d, 0xce, 0xec, - 0x70, 0x96, 0x9c, 0xed, 0x3d, 0xcd, 0xd9, 0x91, 0x25, 0xad, 0xad, 0x62, 0xf7, 0x65, 0xb3, 0x86, - 0xdd, 0x55, 0xed, 0xaa, 0x6a, 0x72, 0xb8, 0x5a, 0x58, 0x2b, 0x0b, 0xab, 0x28, 0x86, 0x04, 0x2b, - 0xb1, 0x85, 0x20, 0x48, 0x10, 0x28, 0x86, 0x00, 0x3b, 0xb1, 0xbf, 0x8c, 0x04, 0xf9, 0x31, 0x10, - 0x23, 0x7e, 0x44, 0x3f, 0x0e, 0xe4, 0x8f, 0x44, 0x76, 0x00, 0xd3, 0x11, 0x95, 0x9f, 0x04, 0x09, - 0x8c, 0x00, 0x0e, 0x02, 0xcf, 0x47, 0x10, 0xdc, 0x67, 0xdd, 0xaa, 0xae, 0xe6, 0x74, 0xb3, 0x8b, - 0x23, 0x21, 0xf6, 0x5f, 0xf7, 0x3d, 0xe7, 0x9e, 0x73, 0xea, 0x3e, 0xcf, 0x3d, 0xf7, 0x9c, 0x73, - 0x61, 0xab, 0xe9, 0x46, 0xfb, 0xdd, 0xdd, 0xd5, 0xba, 0xdf, 0x5e, 0x73, 0x82, 0xa6, 0xdf, 0x09, - 0xfc, 0xfb, 0xfc, 0xc7, 0xc7, 0x02, 0xbf, 0xd5, 0xf2, 0xbb, 0x51, 0xb8, 0xd6, 0x39, 0x68, 0xae, - 0x39, 0x1d, 0x37, 0x5c, 0xd3, 0x25, 0x87, 0x9f, 0x70, 0x5a, 0x9d, 0x7d, 0xe7, 0x13, 0x6b, 0x4d, - 0xea, 0xd1, 0xc0, 0x89, 0x68, 0x63, 0xb5, 0x13, 0xf8, 0x91, 0x4f, 0x3e, 0x15, 0x53, 0x5b, 0x55, - 0xd4, 0xf8, 0x8f, 0x9f, 0x55, 0x75, 0x57, 0x3b, 0x07, 0xcd, 0x55, 0x46, 0x6d, 0x55, 0x97, 0x28, - 0x6a, 0x2b, 0x1f, 0x33, 0x64, 0x69, 0xfa, 0x4d, 0x7f, 0x8d, 0x13, 0xdd, 0xed, 0xee, 0xf1, 0x7f, - 0xfc, 0x0f, 0xff, 0x25, 0x98, 0xad, 0x3c, 0x7b, 0xf0, 0x6a, 0xb8, 0xea, 0xfa, 0x4c, 0xb6, 0xb5, - 0x5d, 0x27, 0xaa, 0xef, 0xaf, 0x1d, 0xf6, 0x48, 0xb4, 0x62, 0x1b, 0x48, 0x75, 0x3f, 0xa0, 0x59, - 0x38, 0x2f, 0xc7, 0x38, 0x6d, 0xa7, 0xbe, 0xef, 0x7a, 0x34, 0x38, 0x8e, 0xbf, 0xba, 0x4d, 0x23, - 0x27, 0xab, 0xd6, 0x5a, 0xbf, 0x5a, 0x41, 0xd7, 0x8b, 0xdc, 0x36, 0xed, 0xa9, 0xf0, 0x37, 0x1f, - 0x55, 0x21, 0xac, 0xef, 0xd3, 0xb6, 0xd3, 0x53, 0xef, 0xa5, 0x7e, 0xf5, 0xba, 0x91, 0xdb, 0x5a, - 0x73, 0xbd, 0x28, 0x8c, 0x82, 0x74, 0x25, 0xfb, 0xf7, 0x0a, 0x50, 0x2c, 0x6f, 0x55, 0x6a, 0x91, - 0x13, 0x75, 0x43, 0xf2, 0x15, 0x0b, 0x66, 0x5b, 0xbe, 0xd3, 0xa8, 0x38, 0x2d, 0xc7, 0xab, 0xd3, - 0x60, 0xd9, 0x7a, 0xc6, 0x7a, 0x7e, 0xe6, 0xc5, 0xad, 0xd5, 0x51, 0xfa, 0x6b, 0xb5, 0x7c, 0x14, - 0x22, 0x0d, 0xfd, 0x6e, 0x50, 0xa7, 0x48, 0xf7, 0x2a, 0x4b, 0xdf, 0x39, 0x29, 0x3d, 0x71, 0x7a, - 0x52, 0x9a, 0xdd, 0x32, 0x38, 0x61, 0x82, 0x2f, 0xf9, 0xa6, 0x05, 0x8b, 0x75, 0xc7, 0x73, 0x82, - 0xe3, 0x1d, 0x27, 0x68, 0xd2, 0xe8, 0x8d, 0xc0, 0xef, 0x76, 0x96, 0xc7, 0x2e, 0x40, 0x9a, 0x27, - 0xa5, 0x34, 0x8b, 0xeb, 0x69, 0x76, 0xd8, 0x2b, 0x01, 0x97, 0x2b, 0x8c, 0x9c, 0xdd, 0x16, 0x35, - 0xe5, 0x2a, 0x5c, 0xa4, 0x5c, 0xb5, 0x34, 0x3b, 0xec, 0x95, 0xc0, 0xfe, 0xb0, 0x00, 0x8b, 0xe5, - 0xad, 0xca, 0x4e, 0xe0, 0xec, 0xed, 0xb9, 0x75, 0xf4, 0xbb, 0x91, 0xeb, 0x35, 0xc9, 0x8f, 0xc3, - 0x94, 0xeb, 0x35, 0x03, 0x1a, 0x86, 0xbc, 0x23, 0x8b, 0x95, 0x79, 0x49, 0x74, 0x6a, 0x53, 0x14, - 0xa3, 0x82, 0x93, 0x57, 0x60, 0x26, 0xa4, 0xc1, 0xa1, 0x5b, 0xa7, 0x55, 0x3f, 0x88, 0x78, 0x4b, - 0x4f, 0x54, 0x2e, 0x4b, 0xf4, 0x99, 0x5a, 0x0c, 0x42, 0x13, 0x8f, 0x55, 0x0b, 0x7c, 0x3f, 0x92, - 0x70, 0xde, 0x10, 0xc5, 0xb8, 0x1a, 0xc6, 0x20, 0x34, 0xf1, 0xc8, 0x37, 0x2c, 0x58, 0x08, 0x23, - 0xb7, 0x7e, 0xe0, 0x7a, 0x34, 0x0c, 0xd7, 0x7d, 0x6f, 0xcf, 0x6d, 0x2e, 0x4f, 0xf0, 0x56, 0xbc, - 0x33, 0x5a, 0x2b, 0xd6, 0x52, 0x54, 0x2b, 0x4b, 0xa7, 0x27, 0xa5, 0x85, 0x74, 0x29, 0xf6, 0x70, - 0x27, 0x1b, 0xb0, 0xe0, 0x78, 0x9e, 0x1f, 0x39, 0x91, 0xeb, 0x7b, 0xd5, 0x80, 0xee, 0xb9, 0x0f, - 0x96, 0xc7, 0xf9, 0xe7, 0x2c, 0xcb, 0xcf, 0x59, 0x28, 0xa7, 0xe0, 0xd8, 0x53, 0xc3, 0xde, 0x80, - 0xe5, 0x72, 0x7b, 0xd7, 0x09, 0x43, 0xa7, 0xe1, 0x07, 0xa9, 0xde, 0x78, 0x1e, 0xa6, 0xdb, 0x4e, - 0xa7, 0xe3, 0x7a, 0x4d, 0xd6, 0x1d, 0x85, 0xe7, 0x8b, 0x95, 0xd9, 0xd3, 0x93, 0xd2, 0xf4, 0xb6, - 0x2c, 0x43, 0x0d, 0xb5, 0xff, 0x64, 0x0c, 0x66, 0xca, 0x9e, 0xd3, 0x3a, 0x0e, 0xdd, 0x10, 0xbb, - 0x1e, 0xf9, 0x3c, 0x4c, 0xb3, 0xd5, 0xa5, 0xe1, 0x44, 0x8e, 0x9c, 0x91, 0x1f, 0x5f, 0x15, 0x93, - 0x7d, 0xd5, 0x9c, 0xec, 0x71, 0xbb, 0x30, 0xec, 0xd5, 0xc3, 0x4f, 0xac, 0xbe, 0xb5, 0x7b, 0x9f, - 0xd6, 0xa3, 0x6d, 0x1a, 0x39, 0x15, 0x22, 0xbf, 0x02, 0xe2, 0x32, 0xd4, 0x54, 0x89, 0x0f, 0xe3, - 0x61, 0x87, 0xd6, 0xe5, 0x0c, 0xdb, 0x1e, 0x71, 0x24, 0xc7, 0xa2, 0xd7, 0x3a, 0xb4, 0x5e, 0x99, - 0x95, 0xac, 0xc7, 0xd9, 0x3f, 0xe4, 0x8c, 0xc8, 0x11, 0x4c, 0x86, 0x7c, 0xcd, 0x91, 0x93, 0xe7, - 0xad, 0xfc, 0x58, 0x72, 0xb2, 0x95, 0x39, 0xc9, 0x74, 0x52, 0xfc, 0x47, 0xc9, 0xce, 0xfe, 0xcf, - 0x16, 0x5c, 0x36, 0xb0, 0xcb, 0x41, 0xb3, 0xdb, 0xa6, 0x5e, 0x44, 0x9e, 0x81, 0x71, 0xcf, 0x69, - 0x53, 0x39, 0x51, 0xb4, 0xc8, 0x77, 0x9c, 0x36, 0x45, 0x0e, 0x21, 0xcf, 0xc2, 0xc4, 0xa1, 0xd3, - 0xea, 0x52, 0xde, 0x48, 0xc5, 0xca, 0x25, 0x89, 0x32, 0xf1, 0x0e, 0x2b, 0x44, 0x01, 0x23, 0xef, - 0x43, 0x91, 0xff, 0xb8, 0x19, 0xf8, 0xed, 0x9c, 0x3e, 0x4d, 0x4a, 0xf8, 0x8e, 0x22, 0x5b, 0xb9, - 0x74, 0x7a, 0x52, 0x2a, 0xea, 0xbf, 0x18, 0x33, 0xb4, 0xff, 0xcc, 0x82, 0x79, 0xe3, 0xe3, 0xb6, - 0xdc, 0x30, 0x22, 0x9f, 0xeb, 0x19, 0x3c, 0xab, 0x83, 0x0d, 0x1e, 0x56, 0x9b, 0x0f, 0x9d, 0x05, - 0xf9, 0xa5, 0xd3, 0xaa, 0xc4, 0x18, 0x38, 0x1e, 0x4c, 0xb8, 0x11, 0x6d, 0x87, 0xcb, 0x63, 0xcf, - 0x14, 0x9e, 0x9f, 0x79, 0x71, 0x33, 0xb7, 0x6e, 0x8c, 0xdb, 0x77, 0x93, 0xd1, 0x47, 0xc1, 0xc6, - 0xfe, 0xad, 0xf1, 0xc4, 0x17, 0xb2, 0x11, 0x45, 0x7c, 0x98, 0x6a, 0xd3, 0x28, 0x70, 0xeb, 0x62, - 0x5e, 0xcd, 0xbc, 0xb8, 0x31, 0x9a, 0x14, 0xdb, 0x9c, 0x58, 0xbc, 0x58, 0x8a, 0xff, 0x21, 0x2a, - 0x2e, 0x64, 0x1f, 0xc6, 0x9d, 0xa0, 0xa9, 0xbe, 0xf9, 0x66, 0x3e, 0xfd, 0x1b, 0x8f, 0xb9, 0x72, - 0xd0, 0x0c, 0x91, 0x73, 0x20, 0x6b, 0x50, 0x8c, 0x68, 0xd0, 0x76, 0x3d, 0x27, 0x12, 0xab, 0xeb, - 0x74, 0x65, 0x51, 0xa2, 0x15, 0x77, 0x14, 0x00, 0x63, 0x1c, 0xd2, 0x82, 0xc9, 0x46, 0x70, 0x8c, - 0x5d, 0x6f, 0x79, 0x3c, 0x8f, 0xa6, 0xd8, 0xe0, 0xb4, 0xe2, 0xc9, 0x24, 0xfe, 0xa3, 0xe4, 0x41, - 0xbe, 0x6d, 0xc1, 0x52, 0x9b, 0x3a, 0x61, 0x37, 0xa0, 0xec, 0x13, 0x90, 0x46, 0xd4, 0x63, 0xab, - 0xe1, 0xf2, 0x04, 0x67, 0x8e, 0xa3, 0xf6, 0x43, 0x2f, 0xe5, 0xca, 0xd3, 0x52, 0x94, 0xa5, 0x2c, - 0x28, 0x66, 0x4a, 0x63, 0xff, 0xc9, 0x38, 0x2c, 0xf6, 0xac, 0x10, 0xe4, 0x65, 0x98, 0xe8, 0xec, - 0x3b, 0xa1, 0x9a, 0xf2, 0xd7, 0xd5, 0x78, 0xab, 0xb2, 0xc2, 0x87, 0x27, 0xa5, 0x4b, 0xaa, 0x0a, - 0x2f, 0x40, 0x81, 0xcc, 0xf6, 0xd4, 0x36, 0x0d, 0x43, 0xa7, 0xa9, 0xd6, 0x01, 0x63, 0x98, 0xf0, - 0x62, 0x54, 0x70, 0xf2, 0xf7, 0x2c, 0xb8, 0x24, 0x86, 0x0c, 0xd2, 0xb0, 0xdb, 0x8a, 0xd8, 0x5a, - 0xc7, 0x9a, 0xe5, 0x76, 0x1e, 0xc3, 0x53, 0x90, 0xac, 0x5c, 0x91, 0xdc, 0x2f, 0x99, 0xa5, 0x21, - 0x26, 0xf9, 0x92, 0x7b, 0x50, 0x0c, 0x23, 0x27, 0x88, 0x68, 0xa3, 0x1c, 0xf1, 0x5d, 0x6d, 0xe6, - 0xc5, 0x9f, 0x18, 0x6c, 0x11, 0xd8, 0x71, 0xdb, 0x54, 0x2c, 0x38, 0x35, 0x45, 0x00, 0x63, 0x5a, - 0xe4, 0x7d, 0x80, 0xa0, 0xeb, 0xd5, 0xba, 0xed, 0xb6, 0x13, 0x1c, 0xcb, 0x1d, 0xfc, 0xd6, 0x68, - 0x9f, 0x87, 0x9a, 0x5e, 0xbc, 0x67, 0xc5, 0x65, 0x68, 0xf0, 0x23, 0x5f, 0xb2, 0xe0, 0x92, 0x18, - 0x89, 0x4a, 0x82, 0xc9, 0x9c, 0x25, 0x58, 0x64, 0x4d, 0xbb, 0x61, 0xb2, 0xc0, 0x24, 0x47, 0xfb, - 0x3f, 0x26, 0xf7, 0x93, 0x5a, 0xc4, 0xb4, 0xeb, 0xe6, 0x31, 0xf9, 0x2c, 0x3c, 0x19, 0x76, 0xeb, - 0x75, 0x1a, 0x86, 0x7b, 0xdd, 0x16, 0x76, 0xbd, 0x5b, 0x6e, 0x18, 0xf9, 0xc1, 0xf1, 0x96, 0xdb, - 0x76, 0x23, 0x3e, 0xe2, 0x26, 0x2a, 0xd7, 0x4e, 0x4f, 0x4a, 0x4f, 0xd6, 0xfa, 0x21, 0x61, 0xff, - 0xfa, 0xc4, 0x81, 0xa7, 0xba, 0x5e, 0x7f, 0xf2, 0x42, 0x7b, 0x2b, 0x9d, 0x9e, 0x94, 0x9e, 0xba, - 0xdb, 0x1f, 0x0d, 0xcf, 0xa2, 0x61, 0xff, 0x77, 0x0b, 0x16, 0xd4, 0x77, 0xed, 0xd0, 0x76, 0xa7, - 0xc5, 0x56, 0x97, 0x8b, 0x57, 0x44, 0xa2, 0x84, 0x22, 0x82, 0xf9, 0x6c, 0x27, 0x4a, 0xfe, 0x7e, - 0xda, 0x88, 0xfd, 0xdf, 0x2c, 0x58, 0x4a, 0x23, 0x3f, 0x86, 0xcd, 0x33, 0x4c, 0x6e, 0x9e, 0x77, - 0xf2, 0xfd, 0xda, 0x3e, 0x3b, 0xe8, 0x57, 0xc6, 0x7b, 0xbf, 0xf5, 0xff, 0xf7, 0x6d, 0x34, 0xde, - 0x15, 0x0b, 0x3f, 0xcc, 0x5d, 0x71, 0xfc, 0x47, 0x6a, 0x57, 0xfc, 0xf5, 0x71, 0x98, 0x2d, 0x7b, - 0x91, 0x5b, 0xde, 0xdb, 0x73, 0x3d, 0x37, 0x3a, 0x26, 0x5f, 0x1b, 0x83, 0xb5, 0x4e, 0x40, 0xf7, - 0x68, 0x10, 0xd0, 0xc6, 0x46, 0x37, 0x70, 0xbd, 0x66, 0xad, 0xbe, 0x4f, 0x1b, 0xdd, 0x96, 0xeb, - 0x35, 0x37, 0x9b, 0x9e, 0xaf, 0x8b, 0x6f, 0x3c, 0xa0, 0xf5, 0x2e, 0xff, 0x24, 0x31, 0x29, 0xda, - 0xa3, 0x7d, 0x52, 0x75, 0x38, 0xa6, 0x95, 0x97, 0x4e, 0x4f, 0x4a, 0x6b, 0x43, 0x56, 0xc2, 0x61, - 0x3f, 0x8d, 0x7c, 0x75, 0x0c, 0x56, 0x03, 0xfa, 0x73, 0x5d, 0x77, 0xf0, 0xd6, 0x10, 0xab, 0x56, - 0x6b, 0xc4, 0xed, 0x67, 0x28, 0x9e, 0x95, 0x17, 0x4f, 0x4f, 0x4a, 0x43, 0xd6, 0xc1, 0x21, 0xbf, - 0xcb, 0xae, 0xc2, 0x4c, 0xb9, 0xe3, 0x86, 0xee, 0x03, 0x76, 0x96, 0xa5, 0x03, 0x9c, 0x95, 0x4a, - 0x30, 0x11, 0x74, 0x5b, 0x54, 0xcc, 0xed, 0x62, 0xa5, 0xc8, 0x56, 0x21, 0x64, 0x05, 0x28, 0xca, - 0xed, 0x5f, 0x60, 0x2b, 0x2e, 0x27, 0x99, 0x3a, 0x25, 0xdf, 0x87, 0x89, 0x80, 0x31, 0x91, 0x23, - 0x6b, 0xd4, 0x03, 0x45, 0x2c, 0xb5, 0x14, 0x82, 0xfd, 0x44, 0xc1, 0xc2, 0xfe, 0xdd, 0x31, 0xb8, - 0x52, 0xee, 0x74, 0xb6, 0x69, 0xb8, 0x9f, 0x92, 0xe2, 0x97, 0x2c, 0x98, 0x3b, 0x74, 0x83, 0xa8, - 0xeb, 0xb4, 0x94, 0x6d, 0x43, 0xc8, 0x53, 0x1b, 0x55, 0x1e, 0xce, 0xed, 0x9d, 0x04, 0xe9, 0x0a, - 0x39, 0x3d, 0x29, 0xcd, 0x25, 0xcb, 0x30, 0xc5, 0x9e, 0xfc, 0x23, 0x0b, 0x16, 0x64, 0xd1, 0x1d, - 0xbf, 0x41, 0x4d, 0x83, 0xd8, 0xdd, 0x3c, 0x65, 0xd2, 0xc4, 0x85, 0xe5, 0x24, 0x5d, 0x8a, 0x3d, - 0x42, 0xd8, 0xff, 0x73, 0x0c, 0xae, 0xf6, 0xa1, 0x41, 0x7e, 0xcd, 0x82, 0x25, 0x61, 0x45, 0x33, - 0x40, 0x48, 0xf7, 0x64, 0x6b, 0xfe, 0x74, 0xde, 0x92, 0x23, 0x9b, 0xe2, 0xd4, 0xab, 0xd3, 0xca, - 0x32, 0x5b, 0x0d, 0xd7, 0x33, 0x58, 0x63, 0xa6, 0x40, 0x5c, 0x52, 0x61, 0x57, 0x4b, 0x49, 0x3a, - 0xf6, 0x58, 0x24, 0xad, 0x65, 0xb0, 0xc6, 0x4c, 0x81, 0xec, 0xbf, 0x03, 0x4f, 0x9d, 0x41, 0xee, - 0xd1, 0x93, 0xd3, 0x7e, 0x57, 0x8f, 0xfa, 0xe4, 0x98, 0x1b, 0x60, 0x5e, 0xdb, 0x30, 0xc9, 0xa7, - 0x8e, 0x9a, 0xd8, 0xc0, 0xb6, 0x3f, 0x3e, 0xa7, 0x42, 0x94, 0x10, 0xfb, 0x77, 0x2d, 0x98, 0x1e, - 0xc2, 0xac, 0x52, 0x4a, 0x9a, 0x55, 0x8a, 0x3d, 0x26, 0x95, 0xa8, 0xd7, 0xa4, 0xf2, 0xc6, 0x68, - 0xbd, 0x31, 0x88, 0x29, 0xe5, 0xcf, 0x2d, 0x58, 0xec, 0x31, 0xbd, 0x90, 0x7d, 0x58, 0xea, 0xf8, - 0x0d, 0xa5, 0x36, 0xdd, 0x72, 0xc2, 0x7d, 0x0e, 0x93, 0x9f, 0xf7, 0x32, 0xeb, 0xc9, 0x6a, 0x06, - 0xfc, 0xe1, 0x49, 0x69, 0x59, 0x13, 0x49, 0x21, 0x60, 0x26, 0x45, 0xd2, 0x81, 0xe9, 0x3d, 0x97, - 0xb6, 0x1a, 0xf1, 0x10, 0x1c, 0x51, 0x41, 0xba, 0x29, 0xa9, 0x09, 0xab, 0xa3, 0xfa, 0x87, 0x9a, - 0x8b, 0xfd, 0x45, 0x98, 0x4b, 0xda, 0xa0, 0x07, 0xe8, 0xbc, 0x6b, 0x50, 0x70, 0x02, 0x4f, 0x76, - 0xdd, 0x8c, 0x44, 0x28, 0x94, 0xf1, 0x0e, 0xb2, 0x72, 0xf2, 0x02, 0x4c, 0xef, 0x75, 0x5b, 0x2d, - 0x56, 0x41, 0xda, 0x86, 0xb5, 0x3a, 0x7c, 0x53, 0x96, 0xa3, 0xc6, 0xb0, 0xff, 0x72, 0x1c, 0xe6, - 0x2b, 0xad, 0x2e, 0x7d, 0x23, 0xa0, 0x54, 0x1d, 0xd2, 0xcb, 0x30, 0xdf, 0x09, 0xe8, 0xa1, 0x4b, - 0x8f, 0x6a, 0xb4, 0x45, 0xeb, 0x91, 0x1f, 0x48, 0x69, 0xae, 0x4a, 0x42, 0xf3, 0xd5, 0x24, 0x18, - 0xd3, 0xf8, 0xe4, 0x75, 0x98, 0x73, 0xea, 0x91, 0x7b, 0x48, 0x35, 0x05, 0x21, 0xee, 0x47, 0x24, - 0x85, 0xb9, 0x72, 0x02, 0x8a, 0x29, 0x6c, 0xf2, 0x39, 0x58, 0x0e, 0xeb, 0x4e, 0x8b, 0xde, 0xed, - 0x48, 0x56, 0xeb, 0xfb, 0xb4, 0x7e, 0x50, 0xf5, 0x5d, 0x2f, 0x92, 0x26, 0x99, 0x67, 0x24, 0xa5, - 0xe5, 0x5a, 0x1f, 0x3c, 0xec, 0x4b, 0x81, 0xfc, 0x5b, 0x0b, 0xae, 0x75, 0x02, 0x5a, 0x0d, 0xfc, - 0xb6, 0xcf, 0xf6, 0xda, 0x1e, 0x3b, 0x85, 0x3c, 0xaf, 0xbf, 0x33, 0xa2, 0x52, 0x21, 0x4a, 0x7a, - 0xed, 0xa4, 0x1f, 0x3d, 0x3d, 0x29, 0x5d, 0xab, 0x9e, 0x25, 0x00, 0x9e, 0x2d, 0x1f, 0xf9, 0x77, - 0x16, 0x5c, 0xef, 0xf8, 0x61, 0x74, 0xc6, 0x27, 0x4c, 0x5c, 0xe8, 0x27, 0xd8, 0xa7, 0x27, 0xa5, - 0xeb, 0xd5, 0x33, 0x25, 0xc0, 0x47, 0x48, 0x68, 0x9f, 0xce, 0xc0, 0xa2, 0x31, 0xf6, 0xe4, 0x21, - 0xfe, 0x35, 0xb8, 0xa4, 0x06, 0x43, 0xac, 0x04, 0x14, 0x63, 0xa3, 0x4b, 0xd9, 0x04, 0x62, 0x12, - 0x97, 0x8d, 0x3b, 0x3d, 0x14, 0x45, 0xed, 0xd4, 0xb8, 0xab, 0x26, 0xa0, 0x98, 0xc2, 0x26, 0x9b, - 0x70, 0x59, 0x96, 0x20, 0xed, 0xb4, 0xdc, 0xba, 0xb3, 0xee, 0x77, 0xe5, 0x90, 0x9b, 0xa8, 0x5c, - 0x3d, 0x3d, 0x29, 0x5d, 0xae, 0xf6, 0x82, 0x31, 0xab, 0x0e, 0xd9, 0x82, 0x25, 0xa7, 0x1b, 0xf9, - 0xfa, 0xfb, 0x6f, 0x78, 0x6c, 0x5f, 0x69, 0xf0, 0xa1, 0x35, 0x2d, 0x36, 0xa0, 0x72, 0x06, 0x1c, - 0x33, 0x6b, 0x91, 0x6a, 0x8a, 0x5a, 0x8d, 0xd6, 0x7d, 0xaf, 0x21, 0x7a, 0x79, 0x22, 0x3e, 0x8a, - 0x94, 0x33, 0x70, 0x30, 0xb3, 0x26, 0x69, 0xc1, 0x5c, 0xdb, 0x79, 0x70, 0xd7, 0x73, 0x0e, 0x1d, - 0xb7, 0xc5, 0x98, 0x48, 0x43, 0x4e, 0x7f, 0xeb, 0x42, 0x37, 0x72, 0x5b, 0xab, 0xe2, 0x4e, 0x73, - 0x75, 0xd3, 0x8b, 0xde, 0x0a, 0x6a, 0x11, 0x53, 0x59, 0x85, 0x2a, 0xb5, 0x9d, 0xa0, 0x85, 0x29, - 0xda, 0xe4, 0x2d, 0xb8, 0xc2, 0xa7, 0xe3, 0x86, 0x7f, 0xe4, 0x6d, 0xd0, 0x96, 0x73, 0xac, 0x3e, - 0x60, 0x8a, 0x7f, 0xc0, 0x93, 0xa7, 0x27, 0xa5, 0x2b, 0xb5, 0x2c, 0x04, 0xcc, 0xae, 0x47, 0x1c, - 0x78, 0x2a, 0x09, 0x40, 0x7a, 0xe8, 0x86, 0xae, 0xef, 0x09, 0x73, 0xcc, 0x74, 0x6c, 0x8e, 0xa9, - 0xf5, 0x47, 0xc3, 0xb3, 0x68, 0x90, 0x7f, 0x62, 0xc1, 0x52, 0xd6, 0x34, 0x5c, 0x2e, 0xe6, 0x71, - 0x63, 0x93, 0x9a, 0x5a, 0x62, 0x44, 0x64, 0x2e, 0x0a, 0x99, 0x42, 0x90, 0x0f, 0x2c, 0x98, 0x75, - 0x8c, 0xa3, 0xe4, 0x32, 0x70, 0xa9, 0x6e, 0x8f, 0x6a, 0xd0, 0x88, 0x29, 0x56, 0x16, 0x4e, 0x4f, - 0x4a, 0x89, 0xe3, 0x2a, 0x26, 0x38, 0x92, 0x7f, 0x66, 0xc1, 0x95, 0xcc, 0x39, 0xbe, 0x3c, 0x73, - 0x11, 0x2d, 0xc4, 0x07, 0x49, 0xf6, 0x9a, 0x93, 0x2d, 0x06, 0xf9, 0x86, 0xa5, 0xb7, 0xb2, 0x6d, - 0x65, 0x52, 0x9a, 0xe5, 0xa2, 0xbd, 0x3d, 0xe2, 0xe9, 0x39, 0x56, 0x1f, 0x14, 0xe1, 0xca, 0x65, - 0x63, 0x67, 0x54, 0x85, 0x98, 0x66, 0x4f, 0xbe, 0x6e, 0xa9, 0xad, 0x51, 0x4b, 0x74, 0xe9, 0xa2, - 0x24, 0x22, 0xf1, 0x4e, 0xab, 0x05, 0x4a, 0x31, 0x27, 0x3f, 0x03, 0x2b, 0xce, 0xae, 0x1f, 0x44, - 0x99, 0x93, 0x6f, 0x79, 0x8e, 0x4f, 0xa3, 0xeb, 0xa7, 0x27, 0xa5, 0x95, 0x72, 0x5f, 0x2c, 0x3c, - 0x83, 0x82, 0xfd, 0x9b, 0x13, 0x30, 0x2b, 0x8e, 0x04, 0x72, 0xeb, 0xfa, 0x6d, 0x0b, 0x9e, 0xae, - 0x77, 0x83, 0x80, 0x7a, 0x51, 0x2d, 0xa2, 0x9d, 0xde, 0x8d, 0xcb, 0xba, 0xd0, 0x8d, 0xeb, 0x99, - 0xd3, 0x93, 0xd2, 0xd3, 0xeb, 0x67, 0xf0, 0xc7, 0x33, 0xa5, 0x23, 0xff, 0xc1, 0x02, 0x5b, 0x22, - 0x54, 0x9c, 0xfa, 0x41, 0x33, 0xf0, 0xbb, 0x5e, 0xa3, 0xf7, 0x23, 0xc6, 0x2e, 0xf4, 0x23, 0x9e, - 0x3b, 0x3d, 0x29, 0xd9, 0xeb, 0x8f, 0x94, 0x02, 0x07, 0x90, 0x94, 0xbc, 0x01, 0x8b, 0x12, 0xeb, - 0xc6, 0x83, 0x0e, 0x0d, 0x5c, 0xa6, 0x7c, 0x4b, 0xc5, 0x31, 0xf6, 0xd3, 0x48, 0x23, 0x60, 0x6f, - 0x1d, 0x12, 0xc2, 0xd4, 0x11, 0x75, 0x9b, 0xfb, 0x91, 0x52, 0x9f, 0x46, 0x74, 0xce, 0x90, 0xe6, - 0x81, 0x7b, 0x82, 0x66, 0x65, 0xe6, 0xf4, 0xa4, 0x34, 0x25, 0xff, 0xa0, 0xe2, 0x44, 0xee, 0xc0, - 0x9c, 0x38, 0xb0, 0x55, 0x5d, 0xaf, 0x59, 0xf5, 0x3d, 0xe1, 0xd2, 0x50, 0xac, 0x3c, 0xa7, 0x36, - 0xfc, 0x5a, 0x02, 0xfa, 0xf0, 0xa4, 0x34, 0xab, 0x7e, 0xef, 0x1c, 0x77, 0x28, 0xa6, 0x6a, 0xdb, - 0x7f, 0x30, 0x09, 0xa0, 0x86, 0x2b, 0xed, 0x90, 0x9f, 0x84, 0x62, 0x48, 0x23, 0xc1, 0x55, 0xde, - 0x20, 0x88, 0x8b, 0x19, 0x55, 0x88, 0x31, 0x9c, 0x1c, 0xc0, 0x44, 0xc7, 0xe9, 0x86, 0x54, 0x76, - 0xfe, 0xed, 0x5c, 0x3a, 0xbf, 0xca, 0x28, 0x8a, 0x13, 0x1a, 0xff, 0x89, 0x82, 0x07, 0xf9, 0xb2, - 0x05, 0x40, 0x93, 0x1d, 0x36, 0xb2, 0xa5, 0x44, 0xb2, 0x8c, 0xfb, 0x94, 0xb5, 0x41, 0x65, 0xee, - 0xf4, 0xa4, 0x04, 0x46, 0xd7, 0x1b, 0x6c, 0xc9, 0x11, 0x4c, 0x3b, 0x6a, 0xcd, 0x1f, 0xbf, 0x88, - 0x35, 0x9f, 0x1f, 0x9c, 0xf4, 0xa0, 0xd5, 0xcc, 0xc8, 0x57, 0x2d, 0x98, 0x0b, 0x69, 0x24, 0xbb, - 0x8a, 0xad, 0x3c, 0x52, 0xe1, 0x1d, 0x71, 0xd0, 0xd5, 0x12, 0x34, 0xc5, 0x0a, 0x9a, 0x2c, 0xc3, - 0x14, 0x5f, 0x25, 0xca, 0x2d, 0xea, 0x34, 0x68, 0xc0, 0xcf, 0xe5, 0x52, 0x93, 0x1a, 0x5d, 0x14, - 0x83, 0xa6, 0x16, 0xc5, 0x28, 0xc3, 0x14, 0x5f, 0x25, 0xca, 0xb6, 0x1b, 0x04, 0xbe, 0x14, 0x65, - 0x3a, 0x27, 0x51, 0x0c, 0x9a, 0x5a, 0x14, 0xa3, 0x0c, 0x53, 0x7c, 0xed, 0x6f, 0x5d, 0x82, 0x39, - 0x35, 0x91, 0x62, 0xcd, 0x5e, 0x98, 0x81, 0xfa, 0x68, 0xf6, 0xeb, 0x26, 0x10, 0x93, 0xb8, 0xac, - 0xb2, 0x98, 0xaa, 0x49, 0xc5, 0x5e, 0x57, 0xae, 0x99, 0x40, 0x4c, 0xe2, 0x92, 0x36, 0x4c, 0x84, - 0x11, 0xed, 0xa8, 0xcb, 0xe0, 0x11, 0xef, 0x2a, 0xe3, 0xf5, 0x21, 0xbe, 0xee, 0x61, 0xff, 0x42, - 0x14, 0x5c, 0xb8, 0x25, 0x33, 0x4a, 0x18, 0x37, 0xe5, 0xe4, 0xc8, 0x67, 0x7e, 0x26, 0xed, 0xa6, - 0xa2, 0x37, 0x92, 0x65, 0x98, 0x62, 0x9f, 0xa1, 0xec, 0x4f, 0x5c, 0xa0, 0xb2, 0xff, 0x19, 0x98, - 0x6e, 0x3b, 0x0f, 0x6a, 0xdd, 0xa0, 0x79, 0xfe, 0x43, 0x85, 0xf4, 0xd3, 0x12, 0x54, 0x50, 0xd3, - 0x23, 0x5f, 0xb2, 0x8c, 0x25, 0x67, 0x8a, 0x13, 0xbf, 0x97, 0xef, 0x92, 0xa3, 0xf7, 0xca, 0xbe, - 0x8b, 0x4f, 0x8f, 0xea, 0x3d, 0xfd, 0xd8, 0x55, 0x6f, 0xa6, 0x46, 0x8a, 0x09, 0xa2, 0xd5, 0xc8, - 0xe2, 0x85, 0xaa, 0x91, 0xeb, 0x09, 0x66, 0x98, 0x62, 0xce, 0xe5, 0x11, 0x73, 0x4e, 0xcb, 0x03, - 0x17, 0x2a, 0x4f, 0x2d, 0xc1, 0x0c, 0x53, 0xcc, 0xfb, 0x9f, 0x37, 0x67, 0x2e, 0xe6, 0xbc, 0x39, - 0x9b, 0xc3, 0x79, 0xf3, 0x6c, 0x55, 0xfc, 0xd2, 0xa8, 0xaa, 0x38, 0xb9, 0x0d, 0xa4, 0x71, 0xec, - 0x39, 0x6d, 0xb7, 0x2e, 0x17, 0x4b, 0xbe, 0x6d, 0xce, 0x71, 0x7b, 0xc4, 0x8a, 0x5c, 0xc8, 0xc8, - 0x46, 0x0f, 0x06, 0x66, 0xd4, 0x22, 0x11, 0x4c, 0x77, 0x94, 0xc6, 0x35, 0x9f, 0xc7, 0xe8, 0x57, - 0x1a, 0x98, 0xf0, 0x17, 0x60, 0x13, 0x4f, 0x95, 0xa0, 0xe6, 0x44, 0xb6, 0x60, 0xa9, 0xed, 0x7a, - 0x55, 0xbf, 0x11, 0x56, 0x69, 0x20, 0xad, 0x2d, 0x35, 0x1a, 0x2d, 0x2f, 0xf0, 0xb6, 0xe1, 0x27, - 0xe8, 0xed, 0x0c, 0x38, 0x66, 0xd6, 0xb2, 0xff, 0xb7, 0x05, 0x0b, 0xeb, 0x2d, 0xbf, 0xdb, 0xb8, - 0xe7, 0x44, 0xf5, 0x7d, 0x71, 0x55, 0x4e, 0x5e, 0x87, 0x69, 0xd7, 0x8b, 0x68, 0x70, 0xe8, 0xb4, - 0xe4, 0xfe, 0x64, 0x2b, 0xf3, 0xe9, 0xa6, 0x2c, 0x7f, 0x78, 0x52, 0x9a, 0xdb, 0xe8, 0x06, 0xdc, - 0x07, 0x55, 0xac, 0x56, 0xa8, 0xeb, 0x90, 0x6f, 0x59, 0xb0, 0x28, 0x2e, 0xdb, 0x37, 0x9c, 0xc8, - 0x79, 0xbb, 0x4b, 0x03, 0x97, 0xaa, 0xeb, 0xf6, 0x11, 0x17, 0xaa, 0xb4, 0xac, 0x8a, 0xc1, 0x71, - 0xac, 0xa8, 0x6f, 0xa7, 0x39, 0x63, 0xaf, 0x30, 0xf6, 0x2f, 0x17, 0xe0, 0xc9, 0xbe, 0xb4, 0xc8, - 0x0a, 0x8c, 0xb9, 0x0d, 0xf9, 0xe9, 0x20, 0xe9, 0x8e, 0x6d, 0x36, 0x70, 0xcc, 0x6d, 0x90, 0x55, - 0xae, 0x73, 0x06, 0x34, 0x0c, 0xd5, 0xcd, 0x6b, 0x51, 0xab, 0x87, 0xb2, 0x14, 0x0d, 0x0c, 0x52, - 0x82, 0x89, 0x96, 0xb3, 0x4b, 0x5b, 0xf2, 0x3c, 0xc1, 0xb5, 0xd8, 0x2d, 0x56, 0x80, 0xa2, 0x9c, - 0xfc, 0x82, 0x05, 0x20, 0x04, 0x64, 0xa7, 0x11, 0xb9, 0x4b, 0x62, 0xbe, 0xcd, 0xc4, 0x28, 0x0b, - 0x29, 0xe3, 0xff, 0x68, 0x70, 0x25, 0x3b, 0x30, 0xc9, 0x14, 0x5a, 0xbf, 0x71, 0xee, 0x4d, 0x91, - 0x5f, 0xc9, 0x54, 0x39, 0x0d, 0x94, 0xb4, 0x58, 0x5b, 0x05, 0x34, 0xea, 0x06, 0x1e, 0x6b, 0x5a, - 0xbe, 0x0d, 0x4e, 0x0b, 0x29, 0x50, 0x97, 0xa2, 0x81, 0x61, 0xff, 0x9b, 0x31, 0x58, 0xca, 0x12, - 0x9d, 0xed, 0x36, 0x93, 0x42, 0x5a, 0x79, 0x34, 0xfe, 0x74, 0xfe, 0xed, 0x23, 0xfd, 0x46, 0xb4, - 0x77, 0x85, 0xf4, 0x6c, 0x93, 0x7c, 0xc9, 0xa7, 0x75, 0x0b, 0x8d, 0x9d, 0xb3, 0x85, 0x34, 0xe5, - 0x54, 0x2b, 0x3d, 0x03, 0xe3, 0x21, 0xeb, 0xf9, 0x42, 0xf2, 0xba, 0x83, 0xf7, 0x11, 0x87, 0x30, - 0x8c, 0xae, 0xe7, 0x46, 0xd2, 0x31, 0x5c, 0x63, 0xdc, 0xf5, 0xdc, 0x08, 0x39, 0xc4, 0xfe, 0xe6, - 0x18, 0xac, 0xf4, 0xff, 0x28, 0xf2, 0x4d, 0x0b, 0xa0, 0xc1, 0x8e, 0x2b, 0x6c, 0x48, 0x2a, 0x3f, - 0x1b, 0xe7, 0xa2, 0xda, 0x70, 0x43, 0x71, 0x8a, 0x9d, 0xae, 0x74, 0x51, 0x88, 0x86, 0x20, 0xe4, - 0x45, 0x35, 0xf4, 0xf9, 0x55, 0x8d, 0x98, 0x4c, 0xba, 0xce, 0xb6, 0x86, 0xa0, 0x81, 0xc5, 0xce, - 0xa3, 0x9e, 0xd3, 0xa6, 0x61, 0xc7, 0xd1, 0x9e, 0xff, 0xfc, 0x3c, 0x7a, 0x47, 0x15, 0x62, 0x0c, - 0xb7, 0x5b, 0xf0, 0xec, 0x00, 0x72, 0xe6, 0xe4, 0x85, 0x6d, 0xff, 0x2f, 0x0b, 0xae, 0xae, 0xb7, - 0xba, 0x61, 0x44, 0x83, 0xbf, 0x32, 0x3e, 0x6c, 0xff, 0xc7, 0x82, 0xa7, 0xfa, 0x7c, 0xf3, 0x63, - 0x70, 0x65, 0x7b, 0x2f, 0xe9, 0xca, 0x76, 0x77, 0xd4, 0x21, 0x9d, 0xf9, 0x1d, 0x7d, 0x3c, 0xda, - 0x7e, 0xdd, 0x82, 0x4b, 0x6c, 0xd9, 0x6a, 0xf8, 0xcd, 0x9c, 0x36, 0xce, 0x67, 0x61, 0xe2, 0xe7, - 0xd8, 0x06, 0x94, 0x1e, 0x64, 0x7c, 0x57, 0x42, 0x01, 0x63, 0x73, 0xc6, 0xe9, 0xb8, 0xef, 0xd0, - 0x80, 0x6f, 0x40, 0x85, 0xe4, 0x9c, 0x29, 0x6b, 0x08, 0x1a, 0x58, 0xf6, 0xa7, 0x40, 0x3a, 0x8b, - 0xa5, 0x66, 0x9c, 0x35, 0xc8, 0x8c, 0xb3, 0xff, 0xd3, 0x18, 0x18, 0xc6, 0x8f, 0xc7, 0x30, 0x92, - 0xbd, 0xc4, 0x48, 0x1e, 0xf1, 0xe0, 0x6e, 0x98, 0x72, 0xfa, 0x45, 0x85, 0x1c, 0xa6, 0xa2, 0x42, - 0xee, 0xe4, 0xc6, 0xf1, 0xec, 0xa0, 0x90, 0xef, 0x59, 0xf0, 0x54, 0x8c, 0xdc, 0x6b, 0x97, 0x7c, - 0xf4, 0xb2, 0xf4, 0x0a, 0xcc, 0x38, 0x71, 0x35, 0x39, 0x6e, 0x74, 0x20, 0x94, 0x41, 0x11, 0x4d, - 0xbc, 0xd8, 0x07, 0xbd, 0x70, 0x4e, 0x1f, 0xf4, 0xf1, 0xb3, 0x7d, 0xd0, 0xed, 0xbf, 0x18, 0x83, - 0x6b, 0xbd, 0x5f, 0xa6, 0x26, 0xd4, 0x60, 0x97, 0xfc, 0xaf, 0xc2, 0x6c, 0x24, 0x2b, 0x18, 0xdb, - 0x83, 0x0e, 0xe3, 0xdb, 0x31, 0x60, 0x98, 0xc0, 0x64, 0x35, 0xeb, 0x62, 0x2a, 0xd7, 0xea, 0x7e, - 0x47, 0x45, 0x30, 0xe8, 0x9a, 0xeb, 0x06, 0x0c, 0x13, 0x98, 0xda, 0x37, 0x74, 0xfc, 0xc2, 0x7d, - 0x43, 0x6b, 0x70, 0x45, 0x79, 0xc3, 0xdd, 0xf4, 0x83, 0x75, 0xbf, 0xdd, 0x69, 0x51, 0x19, 0xc3, - 0xc0, 0x84, 0xbd, 0x26, 0xab, 0x5c, 0xc1, 0x2c, 0x24, 0xcc, 0xae, 0x6b, 0x7f, 0xaf, 0x00, 0x97, - 0xe3, 0x66, 0x5f, 0xf7, 0xbd, 0x86, 0xcb, 0x7d, 0x0a, 0x5f, 0x83, 0xf1, 0xe8, 0xb8, 0xa3, 0x1a, - 0xfb, 0x6f, 0x28, 0x71, 0x76, 0x8e, 0x3b, 0xac, 0xb7, 0xaf, 0x66, 0x54, 0xe1, 0x96, 0x61, 0x5e, - 0x89, 0x6c, 0xe9, 0xd9, 0x21, 0x7a, 0xe0, 0xe5, 0xe4, 0x68, 0x7e, 0x78, 0x52, 0xca, 0x88, 0x62, - 0x5d, 0xd5, 0x94, 0x92, 0x63, 0x9e, 0xdc, 0x87, 0xb9, 0x96, 0x13, 0x46, 0x77, 0x3b, 0x0d, 0x27, - 0xa2, 0x3b, 0xae, 0xf4, 0xd0, 0x18, 0x2e, 0x30, 0x40, 0x5f, 0x65, 0x6f, 0x25, 0x28, 0x61, 0x8a, - 0x32, 0x39, 0x04, 0xc2, 0x4a, 0x76, 0x02, 0xc7, 0x0b, 0xc5, 0x57, 0x31, 0x7e, 0xc3, 0x07, 0x22, - 0xe8, 0x93, 0xe1, 0x56, 0x0f, 0x35, 0xcc, 0xe0, 0x40, 0x9e, 0x83, 0xc9, 0x80, 0x3a, 0xa1, 0xec, - 0xcc, 0x62, 0x3c, 0xff, 0x91, 0x97, 0xa2, 0x84, 0x9a, 0x13, 0x6a, 0xf2, 0x11, 0x13, 0xea, 0x4f, - 0x2d, 0x98, 0x8b, 0xbb, 0xe9, 0x31, 0xec, 0xac, 0xed, 0xe4, 0xce, 0x7a, 0x2b, 0xaf, 0x25, 0xb1, - 0xcf, 0x66, 0xfa, 0xef, 0x27, 0xcd, 0xef, 0xe3, 0x8e, 0xe1, 0x5f, 0x80, 0xa2, 0x9a, 0xd5, 0x4a, - 0x65, 0x1d, 0xf1, 0x80, 0x9d, 0x50, 0x66, 0x8c, 0x80, 0x26, 0xc9, 0x04, 0x63, 0x7e, 0x6c, 0x2b, - 0x6f, 0xc8, 0x6d, 0x5a, 0x0e, 0x7b, 0xbd, 0x95, 0xab, 0xed, 0x3b, 0x6b, 0x2b, 0x57, 0x75, 0xc8, - 0x5d, 0xb8, 0xda, 0x09, 0x7c, 0x1e, 0xe4, 0xba, 0x41, 0x9d, 0x46, 0xcb, 0xf5, 0xa8, 0xb2, 0x62, - 0x08, 0x4f, 0x8a, 0xa7, 0x4e, 0x4f, 0x4a, 0x57, 0xab, 0xd9, 0x28, 0xd8, 0xaf, 0x6e, 0x32, 0x30, - 0x6b, 0x7c, 0x80, 0xc0, 0xac, 0xbf, 0xaf, 0x6d, 0x85, 0x34, 0x94, 0xe1, 0x51, 0x9f, 0xcd, 0xab, - 0x2b, 0x33, 0x96, 0xf5, 0x78, 0x48, 0x95, 0x25, 0x53, 0xd4, 0xec, 0xfb, 0x1b, 0xa4, 0x26, 0xcf, - 0x69, 0x90, 0x8a, 0xfd, 0xeb, 0xa7, 0x7e, 0x98, 0xfe, 0xf5, 0xd3, 0x3f, 0x52, 0xfe, 0xf5, 0x1f, - 0x4e, 0xc0, 0x42, 0x5a, 0x03, 0xb9, 0xf8, 0xa0, 0xb3, 0x7f, 0x68, 0xc1, 0x82, 0x9a, 0x3d, 0x82, - 0x27, 0x55, 0x57, 0x0d, 0x5b, 0x39, 0x4d, 0x5a, 0xa1, 0x4b, 0xe9, 0xb0, 0xe8, 0x9d, 0x14, 0x37, - 0xec, 0xe1, 0x4f, 0xde, 0x85, 0x19, 0x6d, 0x91, 0x3f, 0x57, 0x04, 0xda, 0x3c, 0xd7, 0xa2, 0x62, - 0x12, 0x68, 0xd2, 0x23, 0x1f, 0x5a, 0x00, 0x75, 0xb5, 0xcd, 0xa9, 0xd9, 0xf5, 0x76, 0x5e, 0xb3, - 0x4b, 0x6f, 0xa0, 0xb1, 0xb2, 0xac, 0x8b, 0x42, 0x34, 0x18, 0x93, 0x5f, 0xe6, 0xb6, 0x78, 0xad, - 0xdd, 0xb1, 0xf9, 0x54, 0x18, 0xdd, 0x77, 0xf8, 0x0c, 0xc5, 0x34, 0x56, 0xa5, 0x0c, 0x50, 0x88, - 0x09, 0x21, 0xec, 0xd7, 0x40, 0x7b, 0x7b, 0xb2, 0x65, 0x8b, 0xfb, 0x7b, 0x56, 0x9d, 0x68, 0x5f, - 0x0e, 0x41, 0xbd, 0x6c, 0xdd, 0x54, 0x00, 0x8c, 0x71, 0xec, 0xcf, 0xc3, 0xdc, 0x1b, 0x81, 0xd3, - 0xd9, 0x77, 0xb9, 0xcd, 0x9b, 0x9d, 0xad, 0x7e, 0x1c, 0xa6, 0x9c, 0x46, 0x23, 0x2b, 0xa9, 0x40, - 0x59, 0x14, 0xa3, 0x82, 0x0f, 0x74, 0x8c, 0xb2, 0xff, 0xc0, 0x02, 0x12, 0xdf, 0x1b, 0xba, 0x5e, - 0x73, 0xdb, 0x89, 0xea, 0xfb, 0xec, 0x7c, 0xb4, 0xcf, 0x4b, 0xb3, 0xce, 0x47, 0xb7, 0x34, 0x04, - 0x0d, 0x2c, 0xf2, 0x3e, 0xcc, 0x88, 0x7f, 0xef, 0x68, 0x0b, 0xc1, 0xc8, 0x11, 0x04, 0x62, 0x43, - 0xe1, 0x32, 0x89, 0x51, 0x78, 0x2b, 0xe6, 0x80, 0x26, 0x3b, 0xd6, 0x54, 0x9b, 0xde, 0x5e, 0xab, - 0xfb, 0xa0, 0xb1, 0x1b, 0x37, 0x55, 0x27, 0xf0, 0xf7, 0xdc, 0x16, 0x4d, 0x37, 0x55, 0x55, 0x14, - 0xa3, 0x82, 0x0f, 0xd6, 0x54, 0xbf, 0x67, 0xc1, 0xd2, 0x66, 0x18, 0xb9, 0xfe, 0x06, 0x0d, 0x23, - 0xb6, 0xad, 0xb0, 0xc5, 0xa7, 0xdb, 0x1a, 0xc4, 0x71, 0x7b, 0x03, 0x16, 0xe4, 0x1d, 0x66, 0x77, - 0x37, 0xa4, 0x91, 0xa1, 0xc7, 0xeb, 0x79, 0xbc, 0x9e, 0x82, 0x63, 0x4f, 0x0d, 0x46, 0x45, 0x5e, - 0x66, 0xc6, 0x54, 0x0a, 0x49, 0x2a, 0xb5, 0x14, 0x1c, 0x7b, 0x6a, 0xd8, 0xdf, 0x2d, 0xc0, 0x65, - 0xfe, 0x19, 0xa9, 0xa0, 0x8b, 0xaf, 0xf7, 0x0b, 0xba, 0x18, 0x71, 0x2a, 0x73, 0x5e, 0xe7, 0x08, - 0xb9, 0xf8, 0x07, 0x16, 0xcc, 0x37, 0x92, 0x2d, 0x9d, 0x8f, 0x4d, 0x27, 0xab, 0x0f, 0x85, 0xcb, - 0x56, 0xaa, 0x10, 0xd3, 0xfc, 0xc9, 0xaf, 0x58, 0x30, 0x9f, 0x14, 0x53, 0xad, 0xee, 0x17, 0xd0, - 0x48, 0xda, 0xc7, 0x3a, 0x59, 0x1e, 0x62, 0x5a, 0x04, 0xfb, 0x0f, 0xc7, 0x64, 0x97, 0x5e, 0x44, - 0x44, 0x01, 0x39, 0x82, 0x62, 0xd4, 0x0a, 0x45, 0xa1, 0xfc, 0xda, 0x11, 0x4f, 0x84, 0x3b, 0x5b, - 0x35, 0xe1, 0x3e, 0x10, 0x2b, 0x6d, 0xb2, 0x84, 0x29, 0x9f, 0x8a, 0x17, 0x67, 0x5c, 0xef, 0x48, - 0xc6, 0xb9, 0x1c, 0x45, 0x77, 0xd6, 0xab, 0x69, 0xc6, 0xb2, 0x84, 0x31, 0x56, 0xbc, 0xec, 0xdf, - 0xb0, 0xa0, 0x78, 0xdb, 0x57, 0xeb, 0xc8, 0xcf, 0xe4, 0x60, 0xe8, 0xd1, 0xfa, 0xa0, 0xbe, 0xa6, - 0x8c, 0x8f, 0x18, 0xaf, 0x27, 0xcc, 0x3c, 0x4f, 0x1b, 0xb4, 0x57, 0x79, 0xc2, 0x24, 0x46, 0xea, - 0xb6, 0xbf, 0xdb, 0xd7, 0xf4, 0xf8, 0xab, 0x13, 0x70, 0xe9, 0x4d, 0xe7, 0x98, 0x7a, 0x91, 0x33, - 0xfc, 0x26, 0xf1, 0x0a, 0xcc, 0x38, 0x1d, 0x7e, 0x0f, 0x66, 0xe8, 0xf8, 0xb1, 0xe5, 0x24, 0x06, - 0xa1, 0x89, 0x17, 0x2f, 0x68, 0x22, 0x7f, 0x4b, 0xd6, 0x52, 0xb4, 0x9e, 0x82, 0x63, 0x4f, 0x0d, - 0x72, 0x1b, 0x88, 0x8c, 0x46, 0x2d, 0xd7, 0xeb, 0x7e, 0xd7, 0x13, 0x4b, 0x9a, 0x30, 0xaa, 0xe8, - 0xc3, 0xe6, 0x76, 0x0f, 0x06, 0x66, 0xd4, 0x22, 0x9f, 0x83, 0xe5, 0x3a, 0xa7, 0x2c, 0x8f, 0x1e, - 0x26, 0x45, 0x71, 0xfc, 0xd4, 0x71, 0x02, 0xeb, 0x7d, 0xf0, 0xb0, 0x2f, 0x05, 0x26, 0x69, 0x18, - 0xf9, 0x81, 0xd3, 0xa4, 0x26, 0xdd, 0xc9, 0xa4, 0xa4, 0xb5, 0x1e, 0x0c, 0xcc, 0xa8, 0x45, 0xbe, - 0x08, 0xc5, 0x68, 0x3f, 0xa0, 0xe1, 0xbe, 0xdf, 0x6a, 0x48, 0xbf, 0x85, 0x11, 0x2d, 0x6d, 0xb2, - 0xf7, 0x77, 0x14, 0x55, 0x63, 0x78, 0xab, 0x22, 0x8c, 0x79, 0x92, 0x00, 0x26, 0xc3, 0xba, 0xdf, - 0xa1, 0xa1, 0x54, 0xd9, 0x6f, 0xe7, 0xc2, 0x9d, 0x5b, 0x8e, 0x0c, 0x1b, 0x1f, 0xe7, 0x80, 0x92, - 0x93, 0xfd, 0xfb, 0x63, 0x30, 0x6b, 0x22, 0x0e, 0xb0, 0x36, 0x7d, 0xd9, 0x82, 0xd9, 0xba, 0xef, - 0x45, 0x81, 0xdf, 0x12, 0xf6, 0xab, 0x7c, 0x34, 0x0a, 0x46, 0x6a, 0x83, 0x46, 0x8e, 0xdb, 0x32, - 0x4c, 0x61, 0x06, 0x1b, 0x4c, 0x30, 0x25, 0x5f, 0xb3, 0x60, 0x3e, 0x76, 0x73, 0x8b, 0x0d, 0x69, - 0xb9, 0x0a, 0xa2, 0x97, 0xfa, 0x1b, 0x49, 0x4e, 0x98, 0x66, 0x6d, 0xef, 0xc2, 0x42, 0xba, 0xb7, - 0x59, 0x53, 0x76, 0x1c, 0x39, 0xd7, 0x0b, 0x71, 0x53, 0x56, 0x9d, 0x30, 0x44, 0x0e, 0x21, 0x2f, - 0xc0, 0x74, 0xdb, 0x09, 0x9a, 0xae, 0xe7, 0xb4, 0x78, 0x2b, 0x16, 0x8c, 0x05, 0x49, 0x96, 0xa3, - 0xc6, 0xb0, 0x3f, 0x0e, 0xb3, 0xdb, 0x8e, 0xd7, 0xa4, 0x0d, 0xb9, 0x0e, 0x3f, 0x3a, 0xa6, 0xed, - 0x07, 0xe3, 0x30, 0x63, 0x9c, 0xcd, 0x2e, 0xfe, 0x9c, 0x95, 0x48, 0xa9, 0x51, 0xc8, 0x31, 0xa5, - 0xc6, 0x67, 0x00, 0xf6, 0x5c, 0xcf, 0x0d, 0xf7, 0xcf, 0x99, 0xac, 0x83, 0xdf, 0xeb, 0xde, 0xd4, - 0x14, 0xd0, 0xa0, 0x16, 0x5f, 0x9e, 0x4d, 0x9c, 0x91, 0xc2, 0xe8, 0x43, 0xcb, 0xd8, 0x6e, 0x26, - 0xf3, 0x70, 0x16, 0x30, 0x3a, 0x66, 0x55, 0x6d, 0x3f, 0x37, 0xbc, 0x28, 0x38, 0x3e, 0x73, 0x57, - 0xda, 0x81, 0xe9, 0x80, 0x86, 0xdd, 0x36, 0x3b, 0x31, 0x4e, 0x0d, 0xdd, 0x0c, 0xdc, 0x6d, 0x03, - 0x65, 0x7d, 0xd4, 0x94, 0x56, 0x5e, 0x83, 0x4b, 0x09, 0x11, 0xc8, 0x02, 0x14, 0x0e, 0xe8, 0xb1, - 0x18, 0x27, 0xc8, 0x7e, 0x92, 0xa5, 0xc4, 0x15, 0xa3, 0x6c, 0x96, 0x4f, 0x8e, 0xbd, 0x6a, 0xd9, - 0x3e, 0x64, 0x1a, 0x00, 0xce, 0x73, 0x99, 0xc3, 0xfa, 0xa2, 0x65, 0x64, 0xeb, 0xd0, 0x7d, 0x21, - 0x9c, 0x73, 0x04, 0xcc, 0xfe, 0x8b, 0x49, 0x90, 0xf7, 0xdf, 0x03, 0x2c, 0x57, 0xe6, 0xad, 0xd7, - 0xd8, 0x39, 0x6e, 0xbd, 0x6e, 0xc3, 0xac, 0xeb, 0xb9, 0x91, 0xeb, 0xb4, 0xb8, 0x71, 0x47, 0x6e, - 0xa7, 0xca, 0x7b, 0x79, 0x76, 0xd3, 0x80, 0x65, 0xd0, 0x49, 0xd4, 0x25, 0x6f, 0xc3, 0x04, 0xdf, - 0x6f, 0xe4, 0x00, 0x1e, 0xfe, 0x92, 0x9e, 0xfb, 0x67, 0x88, 0x90, 0x26, 0x41, 0x89, 0x1f, 0x3e, - 0x44, 0xba, 0x12, 0x7d, 0xfc, 0x96, 0xe3, 0x38, 0x3e, 0x7c, 0xa4, 0xe0, 0xd8, 0x53, 0x83, 0x51, - 0xd9, 0x73, 0xdc, 0x56, 0x37, 0xa0, 0x31, 0x95, 0xc9, 0x24, 0x95, 0x9b, 0x29, 0x38, 0xf6, 0xd4, - 0x20, 0x7b, 0x30, 0x2b, 0xcb, 0x84, 0xcb, 0xd5, 0xd4, 0x39, 0xbf, 0x92, 0xbb, 0xd6, 0xdd, 0x34, - 0x28, 0x61, 0x82, 0x2e, 0xe9, 0xc2, 0xa2, 0xeb, 0xd5, 0x7d, 0xaf, 0xde, 0xea, 0x86, 0xee, 0x21, - 0x8d, 0xe3, 0x89, 0xce, 0xc3, 0xec, 0xca, 0xe9, 0x49, 0x69, 0x71, 0x33, 0x4d, 0x0e, 0x7b, 0x39, - 0x90, 0x2f, 0x59, 0x70, 0xa5, 0xee, 0x7b, 0x21, 0x8f, 0xff, 0x3f, 0xa4, 0x37, 0x82, 0xc0, 0x0f, - 0x04, 0xef, 0xe2, 0x39, 0x79, 0x73, 0x9b, 0xe2, 0x7a, 0x16, 0x49, 0xcc, 0xe6, 0x44, 0xde, 0x83, - 0xe9, 0x4e, 0xe0, 0x1f, 0xba, 0x0d, 0x1a, 0x48, 0xf7, 0xbd, 0xad, 0x3c, 0xf2, 0x91, 0x54, 0x25, - 0xcd, 0x78, 0xe9, 0x51, 0x25, 0xa8, 0xf9, 0xd9, 0xff, 0x77, 0x06, 0xe6, 0x92, 0xe8, 0xe4, 0xe7, - 0x01, 0x3a, 0x81, 0xdf, 0xa6, 0xd1, 0x3e, 0xd5, 0x71, 0x21, 0x77, 0x46, 0x4d, 0x7b, 0xa1, 0xe8, - 0x29, 0x97, 0x17, 0xb6, 0x5c, 0xc4, 0xa5, 0x68, 0x70, 0x24, 0x01, 0x4c, 0x1d, 0x88, 0x6d, 0x57, - 0x6a, 0x21, 0x6f, 0xe6, 0xa2, 0x33, 0x49, 0xce, 0x3c, 0xa0, 0x41, 0x16, 0xa1, 0x62, 0x44, 0x76, - 0xa1, 0x70, 0x44, 0x77, 0xf3, 0x89, 0xb9, 0xbe, 0x47, 0xe5, 0x69, 0xa6, 0x32, 0x75, 0x7a, 0x52, - 0x2a, 0xdc, 0xa3, 0xbb, 0xc8, 0x88, 0xb3, 0xef, 0x6a, 0x88, 0xbb, 0x7b, 0xb9, 0x54, 0x8c, 0xf8, - 0x5d, 0x09, 0x47, 0x00, 0xf1, 0x5d, 0xb2, 0x08, 0x15, 0x23, 0xf2, 0x1e, 0x14, 0x8f, 0x9c, 0x43, - 0xba, 0x17, 0xf8, 0x5e, 0x24, 0xfd, 0xac, 0x46, 0x0c, 0x15, 0xb8, 0xa7, 0xc8, 0x49, 0xbe, 0x7c, - 0x7b, 0xd7, 0x85, 0x18, 0xb3, 0x23, 0x87, 0x30, 0xed, 0xd1, 0x23, 0xa4, 0x2d, 0xb7, 0x9e, 0x8f, - 0x6b, 0xfe, 0x1d, 0x49, 0x4d, 0x72, 0xe6, 0xfb, 0x9e, 0x2a, 0x43, 0xcd, 0x8b, 0xf5, 0xe5, 0x7d, - 0x7f, 0x57, 0x2e, 0x54, 0x23, 0xf6, 0xa5, 0x3e, 0x99, 0x8a, 0xbe, 0xbc, 0xed, 0xef, 0x22, 0x23, - 0xce, 0xe6, 0x48, 0x5d, 0x3b, 0xf9, 0xc8, 0x65, 0xea, 0x4e, 0xbe, 0xce, 0x4d, 0x62, 0x8e, 0xc4, - 0xa5, 0x68, 0x70, 0x64, 0x6d, 0xdb, 0x94, 0xc6, 0x4a, 0xb9, 0x50, 0x8d, 0xd8, 0xb6, 0x49, 0xd3, - 0xa7, 0x68, 0x5b, 0x55, 0x86, 0x9a, 0x17, 0xe3, 0xeb, 0x4a, 0xcb, 0x5f, 0x3e, 0x4b, 0x55, 0xd2, - 0x8e, 0x28, 0xf8, 0xaa, 0x32, 0xd4, 0xbc, 0x58, 0x7b, 0x87, 0x07, 0xc7, 0x47, 0x4e, 0xeb, 0xc0, - 0xf5, 0x9a, 0x32, 0xce, 0x71, 0xd4, 0xfc, 0xa9, 0x07, 0xc7, 0xf7, 0x04, 0x3d, 0xb3, 0xbd, 0xe3, - 0x52, 0x34, 0x38, 0x92, 0x7f, 0x6a, 0xc1, 0x64, 0xa7, 0xd5, 0x6d, 0xba, 0xde, 0xf2, 0x2c, 0xd7, - 0x13, 0x3f, 0x9d, 0xe7, 0x0a, 0xbd, 0x5a, 0xe5, 0xa4, 0x85, 0xa2, 0xf8, 0x13, 0xda, 0x67, 0x8f, - 0x17, 0xfe, 0xe2, 0x9f, 0x95, 0x96, 0xa9, 0x57, 0xf7, 0x1b, 0xae, 0xd7, 0x5c, 0xbb, 0x1f, 0xfa, - 0xde, 0x2a, 0x3a, 0x47, 0x4a, 0x47, 0x97, 0x32, 0xad, 0xfc, 0x14, 0xcc, 0x18, 0x24, 0x1e, 0xa5, - 0xe8, 0xcd, 0x9a, 0x8a, 0xde, 0x6f, 0x4c, 0xc2, 0xac, 0x99, 0x51, 0x6f, 0x00, 0xed, 0x4b, 0x9f, - 0x38, 0xc6, 0x86, 0x39, 0x71, 0xb0, 0x23, 0xa6, 0x71, 0x7b, 0xa4, 0xcc, 0x5b, 0x9b, 0xb9, 0x29, - 0xdc, 0xf1, 0x11, 0xd3, 0x28, 0x0c, 0x31, 0xc1, 0x74, 0x08, 0x87, 0x12, 0xa6, 0xb6, 0x0a, 0xc5, - 0x6e, 0x22, 0xa9, 0xb6, 0x26, 0x54, 0xb5, 0x17, 0x01, 0xe2, 0xcc, 0x72, 0xf2, 0x56, 0x51, 0xeb, - 0xc3, 0x46, 0xc6, 0x3b, 0x03, 0x8b, 0x3c, 0x07, 0x93, 0x4c, 0xf5, 0xa1, 0x0d, 0x19, 0x86, 0xad, - 0xcf, 0xf1, 0x37, 0x79, 0x29, 0x4a, 0x28, 0x79, 0x95, 0x69, 0xa9, 0xb1, 0xc2, 0x22, 0xa3, 0xab, - 0x97, 0x62, 0x2d, 0x35, 0x86, 0x61, 0x02, 0x93, 0x89, 0x4e, 0x99, 0x7e, 0xc1, 0xd7, 0x06, 0x43, - 0x74, 0xae, 0x74, 0xa0, 0x80, 0x71, 0xbb, 0x52, 0x4a, 0x1f, 0xe1, 0x73, 0x7a, 0xc2, 0xb0, 0x2b, - 0xa5, 0xe0, 0xd8, 0x53, 0x83, 0x7d, 0x8c, 0xbc, 0x10, 0x9d, 0x11, 0xce, 0xb6, 0x7d, 0xae, 0x32, - 0xbf, 0x62, 0x9e, 0xb5, 0x72, 0x9c, 0x43, 0x62, 0xd4, 0x0e, 0x7e, 0xd8, 0x1a, 0xed, 0x58, 0xf4, - 0x79, 0x98, 0x4b, 0xee, 0x42, 0xb9, 0xdf, 0x7c, 0x7c, 0x75, 0x1c, 0x2e, 0xdf, 0x69, 0xba, 0x5e, - 0x3a, 0x5b, 0x54, 0x56, 0xd6, 0x66, 0x6b, 0xd8, 0xac, 0xcd, 0x71, 0x3c, 0x97, 0x4c, 0x8b, 0x9d, - 0x1d, 0xcf, 0xa5, 0x72, 0x66, 0x27, 0x71, 0xc9, 0x9f, 0x5a, 0xf0, 0xb4, 0xd3, 0x10, 0xe7, 0x02, - 0xa7, 0x25, 0x4b, 0x63, 0xa6, 0x6a, 0x46, 0x87, 0x23, 0xee, 0xf2, 0xbd, 0x1f, 0xbf, 0x5a, 0x3e, - 0x83, 0xab, 0xe8, 0xf1, 0x1f, 0x93, 0x5f, 0xf0, 0xf4, 0x59, 0xa8, 0x78, 0xa6, 0xf8, 0xe4, 0x6f, - 0xc3, 0x7c, 0xe2, 0x83, 0xa5, 0x25, 0xbc, 0x28, 0x2e, 0x2c, 0x6a, 0x49, 0x10, 0xa6, 0x71, 0x57, - 0xde, 0x82, 0x8f, 0x3e, 0x52, 0xce, 0xa1, 0x06, 0xdb, 0x97, 0x2d, 0x28, 0x0a, 0xbb, 0x36, 0xd2, - 0xbd, 0x94, 0x13, 0x66, 0xea, 0xe4, 0x5d, 0xae, 0x6e, 0x66, 0x38, 0x61, 0xb2, 0xb5, 0xfc, 0xc0, - 0xf5, 0x1a, 0xb2, 0x97, 0xf5, 0x5a, 0xfe, 0xa6, 0xeb, 0x35, 0x90, 0x43, 0xf4, 0x6a, 0x5f, 0xe8, - 0x6b, 0x6f, 0xfa, 0xb6, 0x05, 0x73, 0x3c, 0x06, 0x36, 0x3e, 0x13, 0xbe, 0xa2, 0x9d, 0x8d, 0x84, - 0x18, 0xd7, 0x92, 0xce, 0x46, 0x0f, 0x4f, 0x4a, 0x33, 0x22, 0x6a, 0x36, 0xe9, 0x7b, 0xf4, 0x59, - 0x69, 0x48, 0xe2, 0x2e, 0x51, 0x63, 0x43, 0xdb, 0x39, 0xb4, 0xa1, 0xb5, 0xa6, 0x88, 0x60, 0x4c, - 0xcf, 0x7e, 0x1f, 0x66, 0xcd, 0x60, 0x16, 0xf2, 0x0a, 0xcc, 0x74, 0x5c, 0xaf, 0x99, 0x0c, 0x7a, - 0xd4, 0xc6, 0xf6, 0x6a, 0x0c, 0x42, 0x13, 0x8f, 0x57, 0xf3, 0xe3, 0x6a, 0x29, 0x1b, 0x7d, 0xd5, - 0x37, 0xab, 0xc5, 0x7f, 0xec, 0x7f, 0x55, 0x80, 0xcb, 0x19, 0x41, 0x53, 0xe4, 0x43, 0x0b, 0x26, - 0x79, 0xcc, 0x85, 0x72, 0x27, 0x7a, 0x37, 0xf7, 0xc0, 0xac, 0x55, 0x1e, 0xda, 0x21, 0xa7, 0x81, - 0x5e, 0x7d, 0x45, 0x21, 0x4a, 0xe6, 0xe4, 0x1f, 0x5b, 0x30, 0xe3, 0x18, 0x33, 0x55, 0x78, 0x58, - 0xed, 0xe6, 0x2f, 0x4c, 0xcf, 0xc4, 0x34, 0x3c, 0x43, 0xe3, 0x79, 0x68, 0xca, 0xc2, 0x94, 0x17, - 0xe3, 0x13, 0x86, 0x99, 0x21, 0x2b, 0xaf, 0xc3, 0xc2, 0x48, 0x33, 0xec, 0xa7, 0x61, 0xd8, 0xe4, - 0x8a, 0x6c, 0xbf, 0x3b, 0x32, 0x03, 0xd3, 0x75, 0x8b, 0xcb, 0xc8, 0x74, 0x09, 0xb5, 0x77, 0x61, - 0x21, 0x7d, 0xea, 0xcd, 0xdd, 0xa1, 0xe0, 0xe3, 0x30, 0x64, 0x3a, 0x44, 0xfb, 0x06, 0x10, 0xf4, - 0x5b, 0xad, 0x5d, 0xa7, 0x7e, 0x70, 0xcf, 0xf5, 0x1a, 0xfe, 0x11, 0x9f, 0x2b, 0x6b, 0x50, 0x0c, - 0x64, 0x4c, 0x5c, 0x28, 0x3f, 0x4b, 0x4f, 0x36, 0x15, 0x2c, 0x17, 0x62, 0x8c, 0x63, 0xff, 0xe1, - 0x18, 0x4c, 0xc9, 0x00, 0xce, 0xc7, 0xe0, 0x9b, 0x7d, 0x90, 0xb8, 0xb4, 0xdb, 0xcc, 0x25, 0xee, - 0xb4, 0xaf, 0x63, 0x76, 0x98, 0x72, 0xcc, 0x7e, 0x33, 0x1f, 0x76, 0x67, 0x7b, 0x65, 0x7f, 0x7b, - 0x1c, 0xe6, 0x53, 0x01, 0xb1, 0x4c, 0x61, 0xea, 0x71, 0x46, 0xbc, 0x9b, 0x6b, 0xcc, 0xad, 0x0e, - 0x36, 0x38, 0xdb, 0x2f, 0x31, 0x4c, 0x24, 0xaf, 0x7d, 0x3b, 0xb7, 0xbc, 0xf7, 0x7f, 0x9d, 0xc7, - 0x76, 0x58, 0x3f, 0xbb, 0xff, 0x6a, 0xc1, 0x93, 0x7d, 0xe3, 0xa6, 0x79, 0xda, 0x9d, 0x20, 0x09, - 0x95, 0x13, 0x32, 0xe7, 0xec, 0x10, 0xfa, 0x06, 0x2d, 0x9d, 0x29, 0x25, 0xcd, 0x9e, 0xbc, 0x0c, - 0xb3, 0x7c, 0x87, 0x66, 0x4b, 0x53, 0x44, 0x3b, 0xf2, 0x02, 0x80, 0x9b, 0x82, 0x6b, 0x46, 0x39, - 0x26, 0xb0, 0xec, 0x6f, 0x59, 0xb0, 0xdc, 0x2f, 0x09, 0xcb, 0x00, 0xc7, 0xd3, 0xbf, 0x95, 0x72, - 0x1e, 0x2f, 0xf5, 0x38, 0x8f, 0xa7, 0x0e, 0xa8, 0xca, 0x4f, 0xdc, 0x38, 0x1b, 0x16, 0x1e, 0xe1, - 0x1b, 0xfd, 0x75, 0x0b, 0xae, 0xf6, 0x99, 0x4d, 0x3d, 0x41, 0x04, 0xd6, 0xb9, 0x83, 0x08, 0xc6, - 0x06, 0x0d, 0x22, 0xb0, 0xff, 0xa8, 0x00, 0x0b, 0x52, 0x9e, 0x58, 0x4d, 0x7b, 0x35, 0xe1, 0x82, - 0xff, 0x63, 0x29, 0x17, 0xfc, 0xa5, 0x34, 0xfe, 0x5f, 0xfb, 0xdf, 0xff, 0x68, 0xf9, 0xdf, 0xff, - 0xe5, 0x18, 0x5c, 0xc9, 0xcc, 0x0d, 0x43, 0xbe, 0x9a, 0xb1, 0x35, 0xdc, 0xcb, 0x39, 0x09, 0xcd, - 0x80, 0x9b, 0xc3, 0xa8, 0x4e, 0xeb, 0xbf, 0x62, 0x3a, 0x8b, 0x8b, 0xa5, 0x7e, 0xef, 0x02, 0xd2, - 0xe9, 0x0c, 0xe9, 0x37, 0x6e, 0xff, 0x62, 0x01, 0x9e, 0x1f, 0x94, 0xd0, 0x8f, 0x68, 0x5c, 0x51, - 0x98, 0x88, 0x2b, 0x7a, 0x4c, 0xdb, 0xf6, 0x85, 0x84, 0x18, 0xfd, 0xf3, 0x71, 0xbd, 0xed, 0xf5, - 0x8e, 0xcf, 0x81, 0x6e, 0x8b, 0xa7, 0x98, 0x6a, 0xa7, 0xf2, 0xcb, 0xc6, 0x4b, 0xe1, 0x54, 0x4d, - 0x14, 0x3f, 0x3c, 0x29, 0x2d, 0xc6, 0x19, 0x0a, 0x64, 0x21, 0xaa, 0x4a, 0xe4, 0x79, 0x98, 0x0e, - 0x04, 0x54, 0x45, 0x52, 0xc8, 0x2b, 0x77, 0x51, 0x86, 0x1a, 0x4a, 0xbe, 0x68, 0xe8, 0xc2, 0xe3, - 0x17, 0x95, 0x88, 0xe3, 0x2c, 0x4f, 0x82, 0x77, 0x61, 0x3a, 0x54, 0xb9, 0x5f, 0xc5, 0x75, 0xcf, - 0x4b, 0x03, 0x06, 0xe8, 0xb0, 0x13, 0x98, 0x4a, 0x04, 0x2b, 0xbe, 0x4f, 0xa7, 0x89, 0xd5, 0x24, - 0x89, 0xad, 0x0f, 0x3f, 0xc2, 0xd2, 0x09, 0xbd, 0x07, 0x1f, 0x12, 0xc1, 0x94, 0x7c, 0x37, 0x4d, - 0x5e, 0xc1, 0x6c, 0xe7, 0xe4, 0x8c, 0x2f, 0x5d, 0x35, 0xf9, 0x45, 0x97, 0x3a, 0x84, 0x2b, 0x56, - 0xf6, 0xf7, 0x2c, 0x98, 0x91, 0x63, 0xe4, 0x31, 0x44, 0x2a, 0xdd, 0x4f, 0x46, 0x2a, 0xdd, 0xc8, - 0x65, 0xc5, 0xea, 0x13, 0xa6, 0x74, 0x1f, 0x66, 0xcd, 0xa4, 0x64, 0xe4, 0x33, 0xc6, 0x8a, 0x6b, - 0x8d, 0x92, 0xe6, 0x47, 0xad, 0xc9, 0xf1, 0x6a, 0x6c, 0xff, 0x66, 0x51, 0xb7, 0x22, 0x3f, 0x18, - 0x9a, 0x23, 0xdf, 0x3a, 0x73, 0xe4, 0x9b, 0x03, 0x6f, 0x2c, 0xff, 0x81, 0xf7, 0x36, 0x4c, 0xab, - 0x65, 0x51, 0x2a, 0x0f, 0xcf, 0x9a, 0xbe, 0x9b, 0x4c, 0x03, 0x61, 0xc4, 0x8c, 0xe9, 0xc2, 0x0f, - 0x78, 0xba, 0x0f, 0xf5, 0x72, 0xad, 0xc9, 0x90, 0xf7, 0x60, 0xe6, 0xc8, 0x0f, 0x0e, 0x5a, 0xbe, - 0xc3, 0x33, 0x4f, 0x43, 0x1e, 0xd7, 0x85, 0xda, 0x5a, 0x27, 0x1c, 0xe8, 0xef, 0xc5, 0xf4, 0xd1, - 0x64, 0x46, 0xca, 0x30, 0xdf, 0x76, 0x3d, 0xa4, 0x4e, 0x43, 0x07, 0x24, 0x8d, 0x8b, 0x64, 0xb7, - 0x4a, 0xb5, 0xde, 0x4e, 0x82, 0x31, 0x8d, 0x4f, 0xbe, 0x66, 0xc1, 0x5c, 0x90, 0x38, 0xca, 0xcb, - 0x8c, 0x96, 0xd5, 0xd1, 0x07, 0x63, 0xd2, 0x3c, 0x20, 0x3c, 0xc8, 0x93, 0xe5, 0x98, 0xe2, 0x4d, - 0xbe, 0x00, 0xd3, 0xa1, 0xcc, 0x38, 0x96, 0xcf, 0x3d, 0xb3, 0x3e, 0x38, 0x0b, 0xa2, 0x71, 0x57, - 0xaa, 0x12, 0xd4, 0x0c, 0xc9, 0x16, 0x2c, 0x29, 0xdb, 0x44, 0xe2, 0x75, 0xa0, 0xc9, 0x38, 0x41, - 0x0d, 0x66, 0xc0, 0x31, 0xb3, 0x16, 0x53, 0xe5, 0x78, 0xb2, 0x3f, 0x71, 0x3d, 0x63, 0xdc, 0x68, - 0xf0, 0xf9, 0xd7, 0x40, 0x09, 0x3d, 0x2b, 0xde, 0x6e, 0x7a, 0x84, 0x78, 0xbb, 0x1a, 0x5c, 0x49, - 0x83, 0x78, 0xe6, 0x21, 0x9e, 0xec, 0xc8, 0xd8, 0x42, 0xab, 0x59, 0x48, 0x98, 0x5d, 0x97, 0xdc, - 0x83, 0x62, 0x40, 0xf9, 0x21, 0xab, 0xac, 0x3c, 0x5b, 0x86, 0xf6, 0xe1, 0x43, 0x45, 0x00, 0x63, - 0x5a, 0xac, 0xdf, 0x9d, 0x64, 0xfa, 0xd9, 0xb7, 0x73, 0x7c, 0xdf, 0x50, 0xf6, 0x7d, 0x9f, 0x8c, - 0x60, 0xf6, 0xf7, 0xe7, 0xe0, 0x52, 0xc2, 0xc0, 0x42, 0x9e, 0x85, 0x09, 0x9e, 0x8a, 0x89, 0xaf, - 0x56, 0xd3, 0xf1, 0x8a, 0x2a, 0x1a, 0x47, 0xc0, 0xc8, 0x2f, 0x59, 0x30, 0xdf, 0x49, 0x58, 0xb4, - 0xd5, 0x42, 0x3e, 0xe2, 0x65, 0x76, 0xd2, 0x4c, 0x6e, 0x24, 0x6e, 0x4f, 0x32, 0xc3, 0x34, 0x77, - 0xb6, 0x1e, 0x48, 0x47, 0xd8, 0x16, 0x0d, 0x38, 0xb6, 0x54, 0xf4, 0x34, 0x89, 0xf5, 0x24, 0x18, - 0xd3, 0xf8, 0xac, 0x87, 0xf9, 0xd7, 0x8d, 0xf2, 0xf0, 0x59, 0x59, 0x11, 0xc0, 0x98, 0x16, 0x79, - 0x1d, 0xe6, 0x64, 0xd6, 0xd1, 0xaa, 0xdf, 0xb8, 0xe5, 0x84, 0xfb, 0xf2, 0x84, 0xa3, 0x4f, 0x64, - 0xeb, 0x09, 0x28, 0xa6, 0xb0, 0xf9, 0xb7, 0xc5, 0xa9, 0x5d, 0x39, 0x81, 0xc9, 0x64, 0x5e, 0xfb, - 0xf5, 0x24, 0x18, 0xd3, 0xf8, 0xe4, 0x05, 0x63, 0x1b, 0x12, 0x57, 0xa6, 0x7a, 0x35, 0xc8, 0xd8, - 0x8a, 0xca, 0x30, 0xdf, 0xe5, 0x07, 0xc2, 0x86, 0x02, 0xca, 0xf9, 0xa8, 0x19, 0xde, 0x4d, 0x82, - 0x31, 0x8d, 0x4f, 0x5e, 0x83, 0x4b, 0x01, 0x5b, 0x6c, 0x35, 0x01, 0x71, 0x8f, 0xaa, 0xaf, 0xc9, - 0xd0, 0x04, 0x62, 0x12, 0x97, 0xbc, 0x01, 0x8b, 0x71, 0x92, 0x3e, 0x45, 0x40, 0x5c, 0xac, 0xea, - 0x8c, 0x51, 0xe5, 0x34, 0x02, 0xf6, 0xd6, 0x21, 0x7f, 0x17, 0x16, 0x8c, 0x96, 0xd8, 0xf4, 0x1a, - 0xf4, 0x81, 0x4c, 0xa4, 0xc6, 0x1f, 0x2c, 0x59, 0x4f, 0xc1, 0xb0, 0x07, 0x9b, 0x7c, 0x12, 0xe6, - 0xea, 0x7e, 0xab, 0xc5, 0xd7, 0x38, 0x91, 0x53, 0x5d, 0x64, 0x4c, 0x13, 0xb9, 0xe5, 0x12, 0x10, - 0x4c, 0x61, 0x92, 0xdb, 0x40, 0xfc, 0x5d, 0xa6, 0x5e, 0xd1, 0xc6, 0x1b, 0xe2, 0x29, 0x65, 0xa6, - 0x71, 0x5c, 0x4a, 0xba, 0xe1, 0xbf, 0xd5, 0x83, 0x81, 0x19, 0xb5, 0x78, 0xc2, 0x29, 0x23, 0x6c, - 0x71, 0x2e, 0x8f, 0x47, 0xc0, 0xd2, 0xe6, 0x8b, 0x47, 0xc6, 0x2c, 0x06, 0x30, 0x29, 0xa2, 0x22, - 0xf2, 0x49, 0x9d, 0x66, 0xa6, 0x57, 0x8e, 0xf7, 0x08, 0x51, 0x8a, 0x92, 0x13, 0xf9, 0x79, 0x28, - 0xee, 0xaa, 0x5c, 0xfb, 0x3c, 0x5f, 0xda, 0xc8, 0xfb, 0x62, 0xea, 0xd9, 0x88, 0xf8, 0x78, 0xae, - 0x01, 0x18, 0xb3, 0x24, 0xcf, 0xc1, 0xcc, 0xad, 0x6a, 0x59, 0x8f, 0xc2, 0x45, 0xde, 0xfb, 0xe3, - 0xac, 0x0a, 0x9a, 0x00, 0x36, 0xc3, 0xb4, 0xfa, 0x46, 0x92, 0xcf, 0x57, 0x64, 0x68, 0x63, 0x0c, - 0x9b, 0x5f, 0x7e, 0x62, 0x6d, 0xf9, 0x72, 0x0a, 0x5b, 0x96, 0xa3, 0xc6, 0x20, 0xef, 0xc2, 0x8c, - 0xdc, 0x2f, 0xf8, 0xda, 0xb4, 0x74, 0xbe, 0x90, 0x58, 0x8c, 0x49, 0xa0, 0x49, 0x8f, 0xdf, 0xd8, - 0xf1, 0x14, 0xe4, 0xf4, 0x66, 0xb7, 0xd5, 0x5a, 0xbe, 0xc2, 0xd7, 0xcd, 0xf8, 0xc6, 0x2e, 0x06, - 0xa1, 0x89, 0x47, 0x5e, 0x52, 0x4e, 0x2c, 0x1f, 0x49, 0x5c, 0x61, 0x6a, 0x27, 0x16, 0xad, 0x74, - 0xf7, 0xf1, 0x9a, 0xbf, 0xfa, 0x08, 0xef, 0x91, 0x5d, 0x58, 0x51, 0x1a, 0x5f, 0xef, 0x24, 0x59, - 0x5e, 0x4e, 0x98, 0x4a, 0x56, 0xee, 0xf5, 0xc5, 0xc4, 0x33, 0xa8, 0x90, 0x5d, 0x28, 0x38, 0xad, - 0xdd, 0xe5, 0x27, 0xf3, 0x50, 0x5d, 0xf5, 0xd3, 0xe8, 0xc2, 0xd3, 0xad, 0xbc, 0x55, 0x41, 0x46, - 0xdc, 0xfe, 0xd2, 0x98, 0xbe, 0x9a, 0xd0, 0x29, 0x65, 0xdf, 0x37, 0x47, 0xb5, 0x95, 0xc7, 0xd3, - 0xbf, 0x3d, 0x0f, 0x52, 0x88, 0x0d, 0x29, 0x73, 0x4c, 0x77, 0xf4, 0x3c, 0xce, 0x25, 0x59, 0x4f, - 0x32, 0x5d, 0xae, 0x38, 0xd2, 0x26, 0x67, 0xb1, 0xfd, 0x3b, 0xa0, 0x2d, 0x71, 0x29, 0xaf, 0x8c, - 0x00, 0x26, 0xdc, 0x30, 0x72, 0xfd, 0x1c, 0xc3, 0x37, 0x53, 0x79, 0x66, 0xb9, 0x77, 0x38, 0x07, - 0xa0, 0x60, 0xc5, 0x78, 0x7a, 0x4d, 0xd7, 0x7b, 0x20, 0x3f, 0xff, 0xed, 0xdc, 0xdd, 0x2d, 0x04, - 0x4f, 0x0e, 0x40, 0xc1, 0x8a, 0xdc, 0x17, 0x23, 0x2d, 0x9f, 0x67, 0x9e, 0xd3, 0xaf, 0xb7, 0x27, - 0x47, 0x1c, 0xe3, 0x15, 0xb6, 0x5d, 0xa9, 0xc3, 0x8c, 0xc8, 0xab, 0xb6, 0xbd, 0x99, 0xc5, 0xab, - 0xb6, 0xbd, 0x89, 0x8c, 0x09, 0xf9, 0x8a, 0x05, 0xe0, 0xe8, 0x67, 0xcc, 0xf3, 0x79, 0xbd, 0xa5, - 0xdf, 0xb3, 0xe8, 0xc2, 0xc1, 0x30, 0x86, 0xa2, 0xc1, 0x99, 0xbc, 0x07, 0x53, 0x8e, 0x78, 0xa9, - 0x4a, 0xfa, 0xca, 0xe6, 0xf3, 0xfc, 0x5a, 0x4a, 0x02, 0x6e, 0x3b, 0x91, 0x20, 0x54, 0x0c, 0x19, - 0xef, 0x28, 0x70, 0xe8, 0x9e, 0x7b, 0x20, 0x2d, 0x36, 0xb5, 0x91, 0x53, 0xc8, 0x33, 0x62, 0x59, - 0xbc, 0x25, 0x08, 0x15, 0x43, 0xf1, 0x72, 0xb0, 0xe3, 0x39, 0x3a, 0x02, 0x2a, 0x9f, 0x38, 0x39, - 0x33, 0xa6, 0xca, 0x78, 0x39, 0xd8, 0x64, 0x84, 0x49, 0xbe, 0xe4, 0x10, 0x26, 0x1d, 0xfe, 0x86, - 0x9e, 0x3c, 0x1f, 0x61, 0x1e, 0xef, 0xf1, 0xa5, 0xda, 0x80, 0x2f, 0x2e, 0xf2, 0xa5, 0x3e, 0xc9, - 0x8d, 0xfc, 0x9a, 0x05, 0x53, 0xc2, 0x8d, 0x93, 0x69, 0x89, 0xec, 0xdb, 0x3f, 0x7f, 0x01, 0xf9, - 0xaa, 0xa5, 0x8b, 0xa9, 0x74, 0xca, 0xf8, 0x49, 0xed, 0xa3, 0x26, 0x4a, 0xcf, 0x74, 0x32, 0x55, - 0xd2, 0xad, 0x7c, 0x12, 0x66, 0x4d, 0x2a, 0x43, 0xb9, 0x99, 0xfe, 0x79, 0x01, 0x80, 0x37, 0xb4, - 0xc8, 0x79, 0xd0, 0xe6, 0xc9, 0x35, 0xf7, 0xfd, 0x46, 0x3e, 0x8f, 0x1f, 0x9a, 0xa9, 0x0b, 0x40, - 0x66, 0xd2, 0xdc, 0xf7, 0x1b, 0x28, 0x99, 0x90, 0x26, 0x8c, 0x77, 0x9c, 0x68, 0x3f, 0xff, 0x3c, - 0x09, 0xd3, 0x22, 0xf8, 0x2f, 0xda, 0x47, 0xce, 0x80, 0x7c, 0x60, 0xc1, 0x94, 0xc8, 0x94, 0xa0, - 0x6e, 0x33, 0x46, 0xbe, 0xb2, 0x57, 0x6d, 0xb6, 0x2a, 0xd2, 0x31, 0xc8, 0x1e, 0xd4, 0x8a, 0x87, - 0x2c, 0x45, 0xc5, 0x76, 0xe5, 0x43, 0x0b, 0x66, 0x4d, 0xd4, 0x8c, 0x6e, 0xfa, 0x59, 0xb3, 0x9b, - 0xf2, 0x6c, 0x0f, 0xb3, 0xc7, 0xff, 0x87, 0x05, 0xc6, 0x6b, 0xd6, 0xb1, 0x37, 0xad, 0x35, 0xb0, - 0x37, 0xed, 0xd8, 0x90, 0xde, 0xb4, 0x85, 0xa1, 0xbc, 0x69, 0xc7, 0x87, 0xf7, 0xa6, 0x9d, 0xe8, - 0xef, 0x4d, 0x6b, 0x7f, 0xc3, 0x82, 0xc5, 0x9e, 0xdd, 0x86, 0x29, 0xa7, 0x81, 0xef, 0x47, 0x7d, - 0xbc, 0xd0, 0x30, 0x06, 0xa1, 0x89, 0x47, 0x36, 0x60, 0x41, 0xa6, 0x92, 0xaf, 0x75, 0x5a, 0x6e, - 0x66, 0x0e, 0x8b, 0x9d, 0x14, 0x1c, 0x7b, 0x6a, 0xd8, 0xbf, 0x63, 0xc1, 0x8c, 0x11, 0xf9, 0xca, - 0xbe, 0x83, 0x47, 0x08, 0x4b, 0x31, 0xe2, 0x2c, 0xfa, 0xfc, 0xf6, 0x48, 0xc0, 0xc4, 0x45, 0x66, - 0xd3, 0x48, 0x34, 0x1c, 0x5f, 0x64, 0xb2, 0x52, 0x94, 0x50, 0x91, 0x42, 0x96, 0x76, 0x78, 0xa3, - 0x17, 0xcc, 0x14, 0xb2, 0xb4, 0x83, 0x1c, 0xc2, 0xd9, 0x31, 0x2d, 0x5d, 0x3a, 0x5a, 0x1b, 0x49, - 0xfb, 0x9d, 0x20, 0x42, 0x01, 0x23, 0xd7, 0xa0, 0x40, 0xbd, 0x86, 0x34, 0x29, 0xe8, 0x67, 0xf5, - 0x6e, 0x78, 0x0d, 0x64, 0xe5, 0xf6, 0x5b, 0x30, 0x5b, 0xa3, 0xf5, 0x80, 0x46, 0x6f, 0xd2, 0xe3, - 0x81, 0xdf, 0xe9, 0x63, 0xa3, 0x3d, 0xf5, 0x4e, 0x1f, 0xab, 0xce, 0xca, 0xed, 0x7f, 0x69, 0x41, - 0xea, 0x65, 0x09, 0xe3, 0x52, 0xc3, 0xea, 0x7b, 0xa9, 0x61, 0x1a, 0xc2, 0xc7, 0xce, 0x34, 0x84, - 0xdf, 0x06, 0xd2, 0x66, 0x53, 0x21, 0xf1, 0x8e, 0x8a, 0xb4, 0xe6, 0xc4, 0x71, 0xf6, 0x3d, 0x18, - 0x98, 0x51, 0xcb, 0xfe, 0x17, 0x42, 0x58, 0xf3, 0xad, 0x89, 0x47, 0x37, 0x40, 0x17, 0x26, 0x38, - 0x29, 0x69, 0xd2, 0x1a, 0xd1, 0x1c, 0xdc, 0x9b, 0xaf, 0x26, 0xee, 0x48, 0x39, 0xe5, 0x39, 0x37, - 0xfb, 0x8f, 0x84, 0xac, 0xc6, 0x63, 0x14, 0x03, 0xc8, 0xda, 0x4e, 0xca, 0x7a, 0x2b, 0xaf, 0xb5, - 0x32, 0x5b, 0x46, 0xb2, 0x0a, 0xd0, 0xa1, 0x41, 0x9d, 0x7a, 0x91, 0xf2, 0xff, 0x9f, 0x90, 0x91, - 0x68, 0xba, 0x14, 0x0d, 0x0c, 0xfb, 0x57, 0x2d, 0x58, 0x48, 0x87, 0x89, 0xe4, 0xed, 0xc4, 0x97, - 0x88, 0x65, 0x2d, 0x0c, 0x1f, 0xcb, 0x6a, 0x7f, 0xc0, 0x84, 0x8c, 0xdc, 0xfa, 0x81, 0xeb, 0x89, - 0xf0, 0xcf, 0x3d, 0xb7, 0xc9, 0x84, 0xa4, 0xf2, 0xe5, 0x3b, 0x61, 0x09, 0xd5, 0x42, 0xaa, 0x07, - 0xef, 0x14, 0x9c, 0x94, 0x61, 0x5e, 0xdd, 0xff, 0x28, 0xf3, 0xb5, 0x08, 0x5b, 0xd7, 0xe6, 0xb2, - 0x8d, 0x24, 0x18, 0xd3, 0xf8, 0xf6, 0x17, 0x61, 0xc6, 0xd8, 0x04, 0xf8, 0x7a, 0xf9, 0xc0, 0xa9, - 0x47, 0xe9, 0x75, 0xe6, 0x06, 0x2b, 0x44, 0x01, 0xe3, 0x56, 0x76, 0xe1, 0xc5, 0x9e, 0x5a, 0x67, - 0xa4, 0xef, 0xba, 0x84, 0x32, 0x62, 0x01, 0x6d, 0xd2, 0x07, 0x2a, 0xef, 0xb2, 0x22, 0x86, 0xac, - 0x10, 0x05, 0xcc, 0x7e, 0x01, 0xa6, 0x55, 0x72, 0x11, 0x1e, 0xa1, 0xaf, 0x2c, 0xc0, 0x66, 0x84, - 0xbe, 0x1f, 0x44, 0xc8, 0x21, 0xf6, 0x3b, 0x30, 0xad, 0x72, 0xa0, 0x3c, 0x1a, 0x9b, 0x4d, 0xfd, - 0xd0, 0x73, 0x6f, 0xf9, 0x61, 0xa4, 0x12, 0xb7, 0x88, 0x4b, 0xaa, 0x3b, 0x9b, 0xbc, 0x0c, 0x35, - 0xd4, 0x7e, 0x09, 0xe6, 0x53, 0x97, 0x95, 0x03, 0x84, 0xf3, 0xff, 0x7e, 0x01, 0x66, 0x13, 0x8f, - 0xd3, 0x3f, 0x7a, 0xd6, 0x0c, 0xbe, 0x18, 0x65, 0xdc, 0x33, 0x15, 0x86, 0xbc, 0x67, 0x32, 0x2f, - 0xf6, 0xc6, 0x2f, 0xf6, 0x62, 0x6f, 0x22, 0x9f, 0x8b, 0x3d, 0xe3, 0x02, 0x7a, 0xf2, 0xf1, 0x5d, - 0x40, 0xff, 0xf6, 0x04, 0xcc, 0x25, 0xf3, 0xc3, 0x0d, 0xd0, 0x93, 0x2f, 0xf4, 0xf4, 0xe4, 0x90, - 0x86, 0xed, 0xc2, 0xa8, 0x86, 0xed, 0xf1, 0x51, 0x0d, 0xdb, 0x13, 0xe7, 0x30, 0x6c, 0xf7, 0x9a, - 0xa5, 0x27, 0x07, 0x36, 0x4b, 0x7f, 0x4a, 0xbb, 0xa6, 0x4d, 0x25, 0x7c, 0x39, 0x62, 0xd7, 0x34, - 0x92, 0xec, 0x86, 0x75, 0xbf, 0x91, 0xe9, 0xe2, 0x37, 0xfd, 0x08, 0x03, 0x5e, 0x90, 0xe9, 0x49, - 0x36, 0xfc, 0xdd, 0xd9, 0x47, 0x86, 0xf0, 0x22, 0x7b, 0x05, 0x66, 0xe4, 0x78, 0xe2, 0x2a, 0x1f, - 0x24, 0xd5, 0xc5, 0x5a, 0x0c, 0x42, 0x13, 0x8f, 0x3f, 0x1d, 0x9c, 0x7c, 0x59, 0x99, 0xdf, 0x13, - 0x98, 0x4f, 0x07, 0xa7, 0x5e, 0x62, 0x4e, 0xe3, 0xdb, 0x5f, 0x80, 0x2b, 0x99, 0xc7, 0x76, 0x6e, - 0xc7, 0xe4, 0xda, 0x08, 0x6d, 0x48, 0x04, 0x43, 0x8c, 0x54, 0xca, 0xf1, 0x95, 0x7b, 0x7d, 0x31, - 0xf1, 0x0c, 0x2a, 0xf6, 0x6f, 0x15, 0x60, 0x2e, 0xf9, 0xee, 0x1c, 0x39, 0xd2, 0x46, 0xbe, 0x5c, - 0xec, 0x8b, 0x82, 0xac, 0x91, 0x73, 0xac, 0xaf, 0xc5, 0xfe, 0x88, 0x8f, 0xaf, 0x5d, 0x9d, 0x00, - 0xed, 0xe2, 0x18, 0x4b, 0x53, 0xb9, 0x64, 0xc7, 0x9f, 0x96, 0x8b, 0xc3, 0x93, 0xe4, 0xe9, 0x31, - 0x77, 0xee, 0x71, 0xc4, 0x90, 0x66, 0x85, 0x06, 0x5b, 0xb6, 0xb7, 0x1c, 0xd2, 0xc0, 0xdd, 0x73, - 0xf5, 0x9b, 0xb9, 0x7c, 0xe5, 0x7e, 0x47, 0x96, 0xa1, 0x86, 0xda, 0x1f, 0x8c, 0x41, 0xfc, 0x9e, - 0x38, 0x7f, 0x9c, 0x29, 0x34, 0x34, 0x75, 0xd9, 0x6d, 0xb7, 0x47, 0x7d, 0x01, 0x2d, 0xa6, 0x28, - 0xdd, 0x86, 0x8d, 0x12, 0x4c, 0x70, 0xfc, 0x21, 0xbc, 0x23, 0xee, 0xc0, 0x7c, 0x2a, 0x1c, 0x3e, - 0xf7, 0x10, 0x8f, 0x1f, 0x14, 0xa0, 0xa8, 0x13, 0x0a, 0x90, 0x9f, 0x4a, 0x98, 0x4d, 0x8a, 0x95, - 0x8f, 0x1a, 0x2f, 0x87, 0xec, 0xfb, 0x8d, 0x87, 0x27, 0xa5, 0x79, 0x8d, 0x9c, 0x32, 0x81, 0x5c, - 0x83, 0x42, 0x37, 0x68, 0xa5, 0xcf, 0x45, 0x77, 0x71, 0x0b, 0x59, 0x39, 0x79, 0x90, 0xb6, 0x5b, - 0x6c, 0xe7, 0x94, 0x04, 0x41, 0x1c, 0x20, 0xfa, 0xdb, 0x2b, 0xd8, 0x2e, 0xb9, 0xeb, 0x37, 0x8e, - 0xd3, 0x2f, 0x8d, 0x54, 0xfc, 0xc6, 0x31, 0x72, 0x08, 0x79, 0x1d, 0xe6, 0x22, 0xb7, 0x4d, 0xfd, - 0x6e, 0x64, 0xbe, 0xbf, 0x5c, 0x88, 0x6f, 0xa0, 0x77, 0x12, 0x50, 0x4c, 0x61, 0xb3, 0x5d, 0xf6, - 0x7e, 0xe8, 0x7b, 0x3c, 0x13, 0xe8, 0x64, 0xf2, 0xba, 0xea, 0x76, 0xed, 0xad, 0x3b, 0xdc, 0x7c, - 0xa3, 0x31, 0x18, 0xb6, 0xcb, 0x63, 0x5c, 0x03, 0x2a, 0x1d, 0x40, 0x16, 0x62, 0x7d, 0x5c, 0x94, - 0xa3, 0xc6, 0x20, 0x1b, 0x82, 0x36, 0x93, 0x96, 0xef, 0x28, 0xb3, 0x95, 0xe7, 0x15, 0x5d, 0x56, - 0xf6, 0xf0, 0xe4, 0x0c, 0xc3, 0x9a, 0xae, 0x69, 0xdf, 0x85, 0xf9, 0x54, 0x83, 0xa9, 0x73, 0xac, - 0x95, 0x7d, 0x8e, 0x1d, 0xec, 0x71, 0x90, 0x7f, 0x6d, 0xc1, 0x62, 0xcf, 0x12, 0x30, 0x68, 0x04, - 0x53, 0x7a, 0x33, 0x1a, 0x3b, 0xff, 0x66, 0x54, 0x18, 0x6e, 0x33, 0xaa, 0xec, 0x7e, 0xe7, 0xfb, - 0xd7, 0x9f, 0xf8, 0xee, 0xf7, 0xaf, 0x3f, 0xf1, 0xc7, 0xdf, 0xbf, 0xfe, 0xc4, 0x07, 0xa7, 0xd7, - 0xad, 0xef, 0x9c, 0x5e, 0xb7, 0xbe, 0x7b, 0x7a, 0xdd, 0xfa, 0xe3, 0xd3, 0xeb, 0xd6, 0x7f, 0x39, - 0xbd, 0x6e, 0x7d, 0xe3, 0x07, 0xd7, 0x9f, 0xf8, 0xcc, 0xa7, 0xe2, 0x01, 0xba, 0xa6, 0x06, 0x28, - 0xff, 0xf1, 0x31, 0x35, 0x1c, 0xd7, 0x3a, 0x07, 0xcd, 0x35, 0x36, 0x40, 0xd7, 0x74, 0x89, 0x1a, - 0xa0, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x76, 0xad, 0x47, 0xe7, 0x99, 0x00, 0x00, + // 8026 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x6c, 0x24, 0xd9, + 0x71, 0xd8, 0x35, 0x87, 0x43, 0x72, 0x8a, 0x5c, 0x92, 0xfb, 0x76, 0x57, 0xcb, 0xe3, 0xdd, 0xee, + 0x9c, 0xfa, 0x8c, 0xcb, 0xd9, 0x3e, 0x91, 0xd2, 0x7d, 0x24, 0x27, 0x9d, 0x72, 0xc9, 0x0c, 0xb9, + 0x7b, 0xcb, 0x3d, 0x72, 0x6f, 0xb6, 0x86, 0x7b, 0x2b, 0x4b, 0x3a, 0x5b, 0xcd, 0x99, 0xc7, 0x61, + 0x2f, 0x67, 0xba, 0xc7, 0xdd, 0x3d, 0xdc, 0xe5, 0xe9, 0x60, 0x9d, 0x2c, 0x9c, 0xa2, 0x18, 0x12, + 0xac, 0xc4, 0x16, 0x82, 0x20, 0x41, 0xa0, 0x18, 0x06, 0xec, 0xc4, 0xfe, 0x65, 0x24, 0xc8, 0x1f, + 0x03, 0x31, 0xe2, 0x2f, 0xfd, 0x71, 0x20, 0xff, 0x48, 0x64, 0x07, 0x30, 0x1d, 0x51, 0xf9, 0x93, + 0x20, 0x81, 0x11, 0xc0, 0x41, 0xe0, 0xfd, 0x11, 0x04, 0xef, 0xb3, 0x5f, 0xf7, 0xf4, 0x70, 0x67, + 0x38, 0xcd, 0xd5, 0x25, 0xd6, 0xbf, 0x99, 0x57, 0xf5, 0xaa, 0xaa, 0xdf, 0x67, 0xbd, 0x7a, 0x55, + 0xf5, 0x60, 0xb3, 0xe5, 0x46, 0x7b, 0xbd, 0x9d, 0x95, 0x86, 0xdf, 0x59, 0x75, 0x82, 0x96, 0xdf, + 0x0d, 0xfc, 0x7b, 0xfc, 0xc7, 0xc7, 0x02, 0xbf, 0xdd, 0xf6, 0x7b, 0x51, 0xb8, 0xda, 0xdd, 0x6f, + 0xad, 0x3a, 0x5d, 0x37, 0x5c, 0xd5, 0x25, 0x07, 0x9f, 0x70, 0xda, 0xdd, 0x3d, 0xe7, 0x13, 0xab, + 0x2d, 0xea, 0xd1, 0xc0, 0x89, 0x68, 0x73, 0xa5, 0x1b, 0xf8, 0x91, 0x4f, 0x3e, 0x1d, 0x53, 0x5b, + 0x51, 0xd4, 0xf8, 0x8f, 0x9f, 0x51, 0x75, 0x57, 0xba, 0xfb, 0xad, 0x15, 0x46, 0x6d, 0x45, 0x97, + 0x28, 0x6a, 0xcb, 0x1f, 0x33, 0x64, 0x69, 0xf9, 0x2d, 0x7f, 0x95, 0x13, 0xdd, 0xe9, 0xed, 0xf2, + 0x7f, 0xfc, 0x0f, 0xff, 0x25, 0x98, 0x2d, 0x3f, 0xbb, 0xff, 0x6a, 0xb8, 0xe2, 0xfa, 0x4c, 0xb6, + 0xd5, 0x1d, 0x27, 0x6a, 0xec, 0xad, 0x1e, 0xf4, 0x49, 0xb4, 0x6c, 0x1b, 0x48, 0x0d, 0x3f, 0xa0, + 0x59, 0x38, 0x2f, 0xc7, 0x38, 0x1d, 0xa7, 0xb1, 0xe7, 0x7a, 0x34, 0x38, 0x8c, 0xbf, 0xba, 0x43, + 0x23, 0x27, 0xab, 0xd6, 0xea, 0xa0, 0x5a, 0x41, 0xcf, 0x8b, 0xdc, 0x0e, 0xed, 0xab, 0xf0, 0x37, + 0x1f, 0x55, 0x21, 0x6c, 0xec, 0xd1, 0x8e, 0xd3, 0x57, 0xef, 0xa5, 0x41, 0xf5, 0x7a, 0x91, 0xdb, + 0x5e, 0x75, 0xbd, 0x28, 0x8c, 0x82, 0x74, 0x25, 0xfb, 0xf7, 0x0a, 0x50, 0xaa, 0x6c, 0x56, 0xeb, + 0x91, 0x13, 0xf5, 0x42, 0xf2, 0x55, 0x0b, 0xe6, 0xda, 0xbe, 0xd3, 0xac, 0x3a, 0x6d, 0xc7, 0x6b, + 0xd0, 0x60, 0xc9, 0x7a, 0xc6, 0x7a, 0x7e, 0xf6, 0xc5, 0xcd, 0x95, 0x71, 0xfa, 0x6b, 0xa5, 0x72, + 0x3f, 0x44, 0x1a, 0xfa, 0xbd, 0xa0, 0x41, 0x91, 0xee, 0x56, 0x2f, 0x7e, 0xe7, 0xa8, 0xfc, 0xc4, + 0xf1, 0x51, 0x79, 0x6e, 0xd3, 0xe0, 0x84, 0x09, 0xbe, 0xe4, 0x5b, 0x16, 0x9c, 0x6f, 0x38, 0x9e, + 0x13, 0x1c, 0x6e, 0x3b, 0x41, 0x8b, 0x46, 0x6f, 0x04, 0x7e, 0xaf, 0xbb, 0x34, 0x71, 0x06, 0xd2, + 0x3c, 0x29, 0xa5, 0x39, 0xbf, 0x96, 0x66, 0x87, 0xfd, 0x12, 0x70, 0xb9, 0xc2, 0xc8, 0xd9, 0x69, + 0x53, 0x53, 0xae, 0xc2, 0x59, 0xca, 0x55, 0x4f, 0xb3, 0xc3, 0x7e, 0x09, 0xec, 0x0f, 0x0a, 0x70, + 0xbe, 0xb2, 0x59, 0xdd, 0x0e, 0x9c, 0xdd, 0x5d, 0xb7, 0x81, 0x7e, 0x2f, 0x72, 0xbd, 0x16, 0xf9, + 0x71, 0x98, 0x76, 0xbd, 0x56, 0x40, 0xc3, 0x90, 0x77, 0x64, 0xa9, 0xba, 0x20, 0x89, 0x4e, 0x6f, + 0x88, 0x62, 0x54, 0x70, 0xf2, 0x0a, 0xcc, 0x86, 0x34, 0x38, 0x70, 0x1b, 0xb4, 0xe6, 0x07, 0x11, + 0x6f, 0xe9, 0x62, 0xf5, 0x82, 0x44, 0x9f, 0xad, 0xc7, 0x20, 0x34, 0xf1, 0x58, 0xb5, 0xc0, 0xf7, + 0x23, 0x09, 0xe7, 0x0d, 0x51, 0x8a, 0xab, 0x61, 0x0c, 0x42, 0x13, 0x8f, 0x7c, 0xd3, 0x82, 0xc5, + 0x30, 0x72, 0x1b, 0xfb, 0xae, 0x47, 0xc3, 0x70, 0xcd, 0xf7, 0x76, 0xdd, 0xd6, 0x52, 0x91, 0xb7, + 0xe2, 0xad, 0xf1, 0x5a, 0xb1, 0x9e, 0xa2, 0x5a, 0xbd, 0x78, 0x7c, 0x54, 0x5e, 0x4c, 0x97, 0x62, + 0x1f, 0x77, 0xb2, 0x0e, 0x8b, 0x8e, 0xe7, 0xf9, 0x91, 0x13, 0xb9, 0xbe, 0x57, 0x0b, 0xe8, 0xae, + 0xfb, 0x60, 0x69, 0x92, 0x7f, 0xce, 0x92, 0xfc, 0x9c, 0xc5, 0x4a, 0x0a, 0x8e, 0x7d, 0x35, 0xec, + 0x75, 0x58, 0xaa, 0x74, 0x76, 0x9c, 0x30, 0x74, 0x9a, 0x7e, 0x90, 0xea, 0x8d, 0xe7, 0x61, 0xa6, + 0xe3, 0x74, 0xbb, 0xae, 0xd7, 0x62, 0xdd, 0x51, 0x78, 0xbe, 0x54, 0x9d, 0x3b, 0x3e, 0x2a, 0xcf, + 0x6c, 0xc9, 0x32, 0xd4, 0x50, 0xfb, 0x4f, 0x27, 0x60, 0xb6, 0xe2, 0x39, 0xed, 0xc3, 0xd0, 0x0d, + 0xb1, 0xe7, 0x91, 0x2f, 0xc0, 0x0c, 0x5b, 0x5d, 0x9a, 0x4e, 0xe4, 0xc8, 0x19, 0xf9, 0xf1, 0x15, + 0x31, 0xd9, 0x57, 0xcc, 0xc9, 0x1e, 0xb7, 0x0b, 0xc3, 0x5e, 0x39, 0xf8, 0xc4, 0xca, 0x5b, 0x3b, + 0xf7, 0x68, 0x23, 0xda, 0xa2, 0x91, 0x53, 0x25, 0xf2, 0x2b, 0x20, 0x2e, 0x43, 0x4d, 0x95, 0xf8, + 0x30, 0x19, 0x76, 0x69, 0x43, 0xce, 0xb0, 0xad, 0x31, 0x47, 0x72, 0x2c, 0x7a, 0xbd, 0x4b, 0x1b, + 0xd5, 0x39, 0xc9, 0x7a, 0x92, 0xfd, 0x43, 0xce, 0x88, 0xdc, 0x87, 0xa9, 0x90, 0xaf, 0x39, 0x72, + 0xf2, 0xbc, 0x95, 0x1f, 0x4b, 0x4e, 0xb6, 0x3a, 0x2f, 0x99, 0x4e, 0x89, 0xff, 0x28, 0xd9, 0xd9, + 0xff, 0xc9, 0x82, 0x0b, 0x06, 0x76, 0x25, 0x68, 0xf5, 0x3a, 0xd4, 0x8b, 0xc8, 0x33, 0x30, 0xe9, + 0x39, 0x1d, 0x2a, 0x27, 0x8a, 0x16, 0xf9, 0x96, 0xd3, 0xa1, 0xc8, 0x21, 0xe4, 0x59, 0x28, 0x1e, + 0x38, 0xed, 0x1e, 0xe5, 0x8d, 0x54, 0xaa, 0x9e, 0x93, 0x28, 0xc5, 0xb7, 0x59, 0x21, 0x0a, 0x18, + 0x79, 0x0f, 0x4a, 0xfc, 0xc7, 0xf5, 0xc0, 0xef, 0xe4, 0xf4, 0x69, 0x52, 0xc2, 0xb7, 0x15, 0xd9, + 0xea, 0xb9, 0xe3, 0xa3, 0x72, 0x49, 0xff, 0xc5, 0x98, 0xa1, 0xfd, 0xe7, 0x16, 0x2c, 0x18, 0x1f, + 0xb7, 0xe9, 0x86, 0x11, 0xf9, 0x7c, 0xdf, 0xe0, 0x59, 0x19, 0x6e, 0xf0, 0xb0, 0xda, 0x7c, 0xe8, + 0x2c, 0xca, 0x2f, 0x9d, 0x51, 0x25, 0xc6, 0xc0, 0xf1, 0xa0, 0xe8, 0x46, 0xb4, 0x13, 0x2e, 0x4d, + 0x3c, 0x53, 0x78, 0x7e, 0xf6, 0xc5, 0x8d, 0xdc, 0xba, 0x31, 0x6e, 0xdf, 0x0d, 0x46, 0x1f, 0x05, + 0x1b, 0xfb, 0x5f, 0x15, 0x12, 0xdd, 0xb7, 0xa5, 0xe4, 0xf8, 0xc0, 0x82, 0xa9, 0xb6, 0xb3, 0x43, + 0xdb, 0x62, 0x6e, 0xcd, 0xbe, 0xf8, 0x4e, 0x6e, 0x92, 0x28, 0x1e, 0x2b, 0x9b, 0x9c, 0xfe, 0x35, + 0x2f, 0x0a, 0x0e, 0xe3, 0xe1, 0x25, 0x0a, 0x51, 0x32, 0x27, 0xff, 0xd8, 0x82, 0xd9, 0x78, 0x55, + 0x50, 0xcd, 0xb2, 0x93, 0xbf, 0x30, 0xf1, 0x62, 0x24, 0x25, 0xd2, 0xab, 0xae, 0x01, 0x41, 0x53, + 0x96, 0xe5, 0x4f, 0xc2, 0xac, 0xf1, 0x09, 0x64, 0x11, 0x0a, 0xfb, 0xf4, 0x50, 0x0c, 0x78, 0x64, + 0x3f, 0xc9, 0xc5, 0xc4, 0x08, 0x97, 0x43, 0xfa, 0x53, 0x13, 0xaf, 0x5a, 0xcb, 0xaf, 0xc3, 0x62, + 0x9a, 0xe1, 0x28, 0xf5, 0xed, 0xdf, 0x9a, 0x4c, 0x0c, 0x4c, 0xb6, 0x10, 0x10, 0x1f, 0xa6, 0x3b, + 0x34, 0x0a, 0xdc, 0x86, 0xea, 0xb2, 0xf5, 0xf1, 0x5a, 0x69, 0x8b, 0x13, 0x8b, 0xf7, 0x38, 0xf1, + 0x3f, 0x44, 0xc5, 0x85, 0xec, 0xc1, 0xa4, 0x13, 0xb4, 0x54, 0x9f, 0x5c, 0xcf, 0x67, 0x5a, 0xc6, + 0x4b, 0x45, 0x25, 0x68, 0x85, 0xc8, 0x39, 0x90, 0x55, 0x28, 0x45, 0x34, 0xe8, 0xb8, 0x9e, 0x13, + 0x89, 0x4d, 0x71, 0xa6, 0x7a, 0x5e, 0xa2, 0x95, 0xb6, 0x15, 0x00, 0x63, 0x1c, 0xd2, 0x86, 0xa9, + 0x66, 0x70, 0x88, 0x3d, 0x6f, 0x69, 0x32, 0x8f, 0xa6, 0x58, 0xe7, 0xb4, 0xe2, 0x41, 0x2a, 0xfe, + 0xa3, 0xe4, 0x41, 0x7e, 0xd5, 0x82, 0x8b, 0x1d, 0xea, 0x84, 0xbd, 0x80, 0xb2, 0x4f, 0x40, 0x1a, + 0x51, 0x8f, 0x75, 0xec, 0x52, 0x91, 0x33, 0xc7, 0x71, 0xfb, 0xa1, 0x9f, 0x72, 0xf5, 0x69, 0x29, + 0xca, 0xc5, 0x2c, 0x28, 0x66, 0x4a, 0x63, 0xff, 0xe9, 0x24, 0x9c, 0xef, 0x5b, 0xd8, 0xc9, 0xcb, + 0x50, 0xec, 0xee, 0x39, 0xa1, 0x5a, 0xa9, 0xaf, 0xaa, 0x65, 0xa2, 0xc6, 0x0a, 0x1f, 0x1e, 0x95, + 0xcf, 0xa9, 0x2a, 0xbc, 0x00, 0x05, 0x32, 0x53, 0x85, 0x3a, 0x34, 0x0c, 0x9d, 0x96, 0x5a, 0xbe, + 0x8d, 0x61, 0xc2, 0x8b, 0x51, 0xc1, 0xc9, 0xdf, 0xb3, 0xe0, 0x9c, 0x18, 0x32, 0x48, 0xc3, 0x5e, + 0x3b, 0x62, 0x5b, 0x14, 0x6b, 0x96, 0x9b, 0x79, 0x0c, 0x4f, 0x41, 0xb2, 0x7a, 0x49, 0x72, 0x3f, + 0x67, 0x96, 0x86, 0x98, 0xe4, 0x4b, 0xee, 0x42, 0x29, 0x8c, 0x9c, 0x20, 0xa2, 0xcd, 0x4a, 0xc4, + 0x95, 0x91, 0xd9, 0x17, 0x7f, 0x62, 0xb8, 0xb5, 0x7b, 0xdb, 0xed, 0x50, 0xb1, 0x4f, 0xd4, 0x15, + 0x01, 0x8c, 0x69, 0x91, 0xf7, 0x00, 0x82, 0x9e, 0x57, 0xef, 0x75, 0x3a, 0x4e, 0x70, 0x28, 0x15, + 0xaf, 0x1b, 0xe3, 0x7d, 0x1e, 0x6a, 0x7a, 0xb1, 0xaa, 0x11, 0x97, 0xa1, 0xc1, 0x8f, 0x7c, 0xd9, + 0x82, 0x73, 0x62, 0x24, 0x2a, 0x09, 0xa6, 0x72, 0x96, 0xe0, 0x3c, 0x6b, 0xda, 0x75, 0x93, 0x05, + 0x26, 0x39, 0xda, 0xff, 0x21, 0xa9, 0x06, 0xd4, 0x23, 0x76, 0x28, 0x6a, 0x1d, 0x92, 0xcf, 0xc1, + 0x93, 0x61, 0xaf, 0xd1, 0xa0, 0x61, 0xb8, 0xdb, 0x6b, 0x63, 0xcf, 0xbb, 0xe1, 0x86, 0x91, 0x1f, + 0x1c, 0x6e, 0xba, 0x1d, 0x37, 0xe2, 0x23, 0xae, 0x58, 0xbd, 0x72, 0x7c, 0x54, 0x7e, 0xb2, 0x3e, + 0x08, 0x09, 0x07, 0xd7, 0x27, 0x0e, 0x3c, 0xd5, 0xf3, 0x06, 0x93, 0x17, 0x4a, 0x77, 0xf9, 0xf8, + 0xa8, 0xfc, 0xd4, 0x9d, 0xc1, 0x68, 0x78, 0x12, 0x0d, 0xfb, 0xbf, 0x59, 0x6c, 0xa5, 0x16, 0xdf, + 0xb5, 0x4d, 0x3b, 0xdd, 0x36, 0x5b, 0x5d, 0xce, 0x5e, 0x7f, 0x8c, 0x12, 0xfa, 0x23, 0xe6, 0xb3, + 0xdd, 0x29, 0xf9, 0x07, 0x29, 0x91, 0xf6, 0x7f, 0xb5, 0xe0, 0x62, 0x1a, 0xf9, 0x31, 0xe8, 0x3c, + 0x61, 0x52, 0xe7, 0xb9, 0x95, 0xef, 0xd7, 0x0e, 0x50, 0x7c, 0xbe, 0x3a, 0xd9, 0xff, 0xad, 0xff, + 0xbf, 0x6f, 0xa3, 0xf1, 0xae, 0x58, 0xf8, 0x61, 0xee, 0x8a, 0x93, 0x1f, 0xaa, 0x5d, 0xf1, 0xd7, + 0x27, 0x61, 0xae, 0xe2, 0x45, 0x6e, 0x65, 0x77, 0xd7, 0xf5, 0xdc, 0xe8, 0x90, 0x7c, 0x7d, 0x02, + 0x56, 0xbb, 0x01, 0xdd, 0xa5, 0x41, 0x40, 0x9b, 0xeb, 0xbd, 0xc0, 0xf5, 0x5a, 0xf5, 0xc6, 0x1e, + 0x6d, 0xf6, 0xda, 0xae, 0xd7, 0xda, 0x68, 0x79, 0xbe, 0x2e, 0xbe, 0xf6, 0x80, 0x36, 0x7a, 0xfc, + 0x93, 0xc4, 0xa4, 0xe8, 0x8c, 0xf7, 0x49, 0xb5, 0xd1, 0x98, 0x56, 0x5f, 0x3a, 0x3e, 0x2a, 0xaf, + 0x8e, 0x58, 0x09, 0x47, 0xfd, 0x34, 0xf2, 0xb5, 0x09, 0x58, 0x09, 0xe8, 0xcf, 0xf6, 0xdc, 0xe1, + 0x5b, 0x43, 0xac, 0x5a, 0xed, 0x31, 0xb7, 0x9f, 0x91, 0x78, 0x56, 0x5f, 0x3c, 0x3e, 0x2a, 0x8f, + 0x58, 0x07, 0x47, 0xfc, 0x2e, 0xbb, 0x06, 0xb3, 0x95, 0xae, 0x1b, 0xba, 0x0f, 0xd0, 0xef, 0x45, + 0x74, 0x88, 0x23, 0x6e, 0x19, 0x8a, 0x41, 0xaf, 0x4d, 0xc5, 0xdc, 0x2e, 0x55, 0x4b, 0x6c, 0x15, + 0x42, 0x56, 0x80, 0xa2, 0xdc, 0xfe, 0x79, 0xb6, 0xe2, 0x72, 0x92, 0x29, 0xe3, 0xc6, 0x3d, 0x28, + 0x06, 0x8c, 0x89, 0x1c, 0x59, 0xe3, 0x9e, 0x03, 0x63, 0xa9, 0xa5, 0x10, 0xec, 0x27, 0x0a, 0x16, + 0xf6, 0xef, 0x4e, 0xc0, 0xa5, 0x4a, 0xb7, 0xbb, 0x45, 0xc3, 0xbd, 0x94, 0x14, 0xbf, 0x68, 0xc1, + 0xfc, 0x81, 0x1b, 0x44, 0x3d, 0xa7, 0xad, 0x4c, 0x52, 0x42, 0x9e, 0xfa, 0xb8, 0xf2, 0x70, 0x6e, + 0x6f, 0x27, 0x48, 0x57, 0xc9, 0xf1, 0x51, 0x79, 0x3e, 0x59, 0x86, 0x29, 0xf6, 0xe4, 0x1f, 0x59, + 0xb0, 0x28, 0x8b, 0x6e, 0xf9, 0x4d, 0x6a, 0xda, 0x31, 0xef, 0xe4, 0x29, 0x93, 0x26, 0x2e, 0x0c, + 0x5e, 0xe9, 0x52, 0xec, 0x13, 0xc2, 0xfe, 0x1f, 0x13, 0x70, 0x79, 0x00, 0x0d, 0xf2, 0x6b, 0x16, + 0x5c, 0x14, 0xc6, 0x4f, 0x03, 0x84, 0x74, 0x57, 0xb6, 0xe6, 0x4f, 0xe5, 0x2d, 0x39, 0xb2, 0x29, + 0x4e, 0xbd, 0x06, 0xad, 0x2e, 0xb1, 0xd5, 0x70, 0x2d, 0x83, 0x35, 0x66, 0x0a, 0xc4, 0x25, 0x15, + 0xe6, 0xd0, 0x94, 0xa4, 0x13, 0x8f, 0x45, 0xd2, 0x7a, 0x06, 0x6b, 0xcc, 0x14, 0xc8, 0xfe, 0x3b, + 0xf0, 0xd4, 0x09, 0xe4, 0x1e, 0x3d, 0x39, 0xed, 0x77, 0xf4, 0xa8, 0x4f, 0x8e, 0xb9, 0x21, 0xe6, + 0xb5, 0x0d, 0x53, 0x7c, 0xea, 0xa8, 0x89, 0x0d, 0x6c, 0xfb, 0xe3, 0x73, 0x2a, 0x44, 0x09, 0xb1, + 0x7f, 0xd7, 0x82, 0x99, 0x11, 0xac, 0x61, 0xe5, 0xa4, 0x35, 0xac, 0xd4, 0x67, 0x09, 0x8b, 0xfa, + 0x2d, 0x61, 0x6f, 0x8c, 0xd7, 0x1b, 0xc3, 0x58, 0xc0, 0xfe, 0xc2, 0x82, 0xf3, 0x7d, 0x16, 0x33, + 0xb2, 0x07, 0x17, 0xbb, 0x7e, 0x53, 0xa9, 0x4d, 0x37, 0x9c, 0x70, 0x8f, 0xc3, 0xe4, 0xe7, 0xbd, + 0xcc, 0x7a, 0xb2, 0x96, 0x01, 0x7f, 0x78, 0x54, 0x5e, 0xd2, 0x44, 0x52, 0x08, 0x98, 0x49, 0x91, + 0x74, 0x61, 0x66, 0xd7, 0xa5, 0xed, 0x66, 0x3c, 0x04, 0xc7, 0x54, 0x90, 0xae, 0x4b, 0x6a, 0xc2, + 0x58, 0xac, 0xfe, 0xa1, 0xe6, 0x62, 0x7f, 0x09, 0xe6, 0x93, 0x57, 0x07, 0x43, 0x74, 0xde, 0x15, + 0x28, 0x38, 0x81, 0x27, 0xbb, 0x6e, 0x56, 0x22, 0x14, 0x2a, 0x78, 0x0b, 0x59, 0x39, 0x79, 0x01, + 0x66, 0x76, 0x7b, 0xed, 0x36, 0xab, 0x20, 0x4d, 0xfa, 0x5a, 0x1d, 0xbe, 0x2e, 0xcb, 0x51, 0x63, + 0xd8, 0x7f, 0x35, 0x09, 0x0b, 0xd5, 0x76, 0x8f, 0xbe, 0x11, 0x50, 0xaa, 0x0e, 0xe9, 0x15, 0x58, + 0xe8, 0x06, 0xf4, 0xc0, 0xa5, 0xf7, 0xeb, 0xb4, 0x4d, 0x1b, 0x91, 0x1f, 0x48, 0x69, 0x2e, 0x4b, + 0x42, 0x0b, 0xb5, 0x24, 0x18, 0xd3, 0xf8, 0xe4, 0x75, 0x98, 0x77, 0x1a, 0x91, 0x7b, 0x40, 0x35, + 0x05, 0x21, 0xee, 0x47, 0x24, 0x85, 0xf9, 0x4a, 0x02, 0x8a, 0x29, 0x6c, 0xf2, 0x79, 0x58, 0x0a, + 0x1b, 0x4e, 0x9b, 0xde, 0xe9, 0x4a, 0x56, 0x6b, 0x7b, 0xb4, 0xb1, 0x5f, 0xf3, 0x5d, 0x2f, 0x92, + 0x26, 0x99, 0x67, 0x24, 0xa5, 0xa5, 0xfa, 0x00, 0x3c, 0x1c, 0x48, 0x81, 0xfc, 0x5b, 0x0b, 0xae, + 0x74, 0x03, 0x5a, 0x0b, 0xfc, 0x8e, 0xcf, 0xf6, 0xda, 0x3e, 0x3b, 0x85, 0x3c, 0xaf, 0xbf, 0x3d, + 0xa6, 0x52, 0x21, 0x4a, 0xfa, 0xcd, 0xdb, 0x1f, 0x3d, 0x3e, 0x2a, 0x5f, 0xa9, 0x9d, 0x24, 0x00, + 0x9e, 0x2c, 0x1f, 0xf9, 0x77, 0x16, 0x5c, 0xed, 0xfa, 0x61, 0x74, 0xc2, 0x27, 0x14, 0xcf, 0xf4, + 0x13, 0xec, 0xe3, 0xa3, 0xf2, 0xd5, 0xda, 0x89, 0x12, 0xe0, 0x23, 0x24, 0xb4, 0x8f, 0x67, 0xe1, + 0xbc, 0x31, 0xf6, 0xe4, 0x21, 0xfe, 0x35, 0x38, 0xa7, 0x06, 0x43, 0xac, 0x04, 0x94, 0x62, 0xa3, + 0x4b, 0xc5, 0x04, 0x62, 0x12, 0x97, 0x8d, 0x3b, 0x3d, 0x14, 0x45, 0xed, 0xd4, 0xb8, 0xab, 0x25, + 0xa0, 0x98, 0xc2, 0x26, 0x1b, 0x70, 0x41, 0x96, 0x20, 0xed, 0xb6, 0xdd, 0x86, 0xb3, 0xe6, 0xf7, + 0xe4, 0x90, 0x2b, 0x56, 0x2f, 0x1f, 0x1f, 0x95, 0x2f, 0xd4, 0xfa, 0xc1, 0x98, 0x55, 0x87, 0x6c, + 0xc2, 0x45, 0xa7, 0x17, 0xf9, 0xfa, 0xfb, 0xaf, 0x79, 0x6c, 0x5f, 0x69, 0xf2, 0xa1, 0x35, 0x23, + 0x36, 0xa0, 0x4a, 0x06, 0x1c, 0x33, 0x6b, 0x91, 0x5a, 0x8a, 0x5a, 0x9d, 0x36, 0x7c, 0xaf, 0x29, + 0x7a, 0xb9, 0x18, 0x1f, 0x45, 0x2a, 0x19, 0x38, 0x98, 0x59, 0x93, 0xb4, 0x61, 0xbe, 0xe3, 0x3c, + 0xb8, 0xe3, 0x39, 0x07, 0x8e, 0xdb, 0x66, 0x4c, 0xa4, 0x21, 0x67, 0xb0, 0x75, 0xa1, 0x17, 0xb9, + 0xed, 0x15, 0x71, 0x15, 0xbd, 0xb2, 0xe1, 0x45, 0x6f, 0x05, 0xf5, 0x88, 0xa9, 0xac, 0x42, 0x95, + 0xda, 0x4a, 0xd0, 0xc2, 0x14, 0x6d, 0xf2, 0x16, 0x5c, 0xe2, 0xd3, 0x71, 0xdd, 0xbf, 0xef, 0xad, + 0xd3, 0xb6, 0x73, 0xa8, 0x3e, 0x60, 0x9a, 0x7f, 0xc0, 0x93, 0xc7, 0x47, 0xe5, 0x4b, 0xf5, 0x2c, + 0x04, 0xcc, 0xae, 0x47, 0x1c, 0x78, 0x2a, 0x09, 0x40, 0x7a, 0xe0, 0x86, 0xae, 0xef, 0x09, 0x73, + 0xcc, 0x4c, 0x6c, 0x8e, 0xa9, 0x0f, 0x46, 0xc3, 0x93, 0x68, 0x90, 0x7f, 0x62, 0xc1, 0xc5, 0xac, + 0x69, 0xb8, 0x54, 0xca, 0xe3, 0xa2, 0x2d, 0x35, 0xb5, 0xc4, 0x88, 0xc8, 0x5c, 0x14, 0x32, 0x85, + 0x20, 0xef, 0x5b, 0x30, 0xe7, 0x18, 0x47, 0xc9, 0x25, 0xe0, 0x52, 0xdd, 0x1c, 0xd7, 0xa0, 0x11, + 0x53, 0xac, 0x2e, 0x1e, 0x1f, 0x95, 0x13, 0xc7, 0x55, 0x4c, 0x70, 0x24, 0xff, 0xcc, 0x82, 0x4b, + 0x99, 0x73, 0x7c, 0x69, 0xf6, 0x2c, 0x5a, 0x88, 0x0f, 0x92, 0xec, 0x35, 0x27, 0x5b, 0x0c, 0xf2, + 0x4d, 0x4b, 0x6f, 0x65, 0xea, 0xee, 0x65, 0x69, 0x8e, 0x8b, 0x76, 0x7b, 0xcc, 0xd3, 0x73, 0xac, + 0x3e, 0x28, 0xc2, 0xd5, 0x0b, 0xc6, 0xce, 0xa8, 0x0a, 0x31, 0xcd, 0x9e, 0x7c, 0xc3, 0x52, 0x5b, + 0xa3, 0x96, 0xe8, 0xdc, 0x59, 0x49, 0x44, 0xe2, 0x9d, 0x56, 0x0b, 0x94, 0x62, 0x4e, 0x7e, 0x1a, + 0x96, 0x9d, 0x1d, 0x3f, 0x88, 0x32, 0x27, 0xdf, 0xd2, 0x3c, 0x9f, 0x46, 0x57, 0x8f, 0x8f, 0xca, + 0xcb, 0x95, 0x81, 0x58, 0x78, 0x02, 0x05, 0xfb, 0x37, 0x8b, 0x30, 0x27, 0x8e, 0x04, 0x72, 0xeb, + 0xfa, 0x6d, 0x0b, 0x9e, 0x6e, 0xf4, 0x82, 0x80, 0x7a, 0x51, 0x3d, 0xa2, 0xdd, 0xfe, 0x8d, 0xcb, + 0x3a, 0xd3, 0x8d, 0xeb, 0x99, 0xe3, 0xa3, 0xf2, 0xd3, 0x6b, 0x27, 0xf0, 0xc7, 0x13, 0xa5, 0x23, + 0xff, 0xde, 0x02, 0x5b, 0x22, 0x54, 0x9d, 0xc6, 0x7e, 0x2b, 0xf0, 0x7b, 0x5e, 0xb3, 0xff, 0x23, + 0x26, 0xce, 0xf4, 0x23, 0x9e, 0x3b, 0x3e, 0x2a, 0xdb, 0x6b, 0x8f, 0x94, 0x02, 0x87, 0x90, 0x94, + 0xbc, 0x01, 0xe7, 0x25, 0xd6, 0xb5, 0x07, 0x5d, 0x1a, 0xb8, 0x4c, 0xf9, 0x96, 0x8a, 0x63, 0xec, + 0x5e, 0x93, 0x46, 0xc0, 0xfe, 0x3a, 0x24, 0x84, 0xe9, 0xfb, 0xd4, 0x6d, 0xed, 0x45, 0x4a, 0x7d, + 0x1a, 0xd3, 0xa7, 0x46, 0x9a, 0x07, 0xee, 0x0a, 0x9a, 0xd5, 0xd9, 0xe3, 0xa3, 0xf2, 0xb4, 0xfc, + 0x83, 0x8a, 0x13, 0xb9, 0x05, 0xf3, 0xe2, 0xc0, 0x56, 0x73, 0xbd, 0x56, 0xcd, 0xf7, 0x84, 0x27, + 0x4a, 0xa9, 0xfa, 0x9c, 0xda, 0xf0, 0xeb, 0x09, 0xe8, 0xc3, 0xa3, 0xf2, 0x9c, 0xfa, 0xbd, 0x7d, + 0xd8, 0xa5, 0x98, 0xaa, 0x6d, 0xff, 0xc1, 0x14, 0x80, 0x1a, 0xae, 0xb4, 0x4b, 0x7e, 0x12, 0x4a, + 0x21, 0x8d, 0x04, 0x57, 0x79, 0x83, 0x20, 0x2e, 0x66, 0x54, 0x21, 0xc6, 0x70, 0xb2, 0x0f, 0xc5, + 0xae, 0xd3, 0x0b, 0xa9, 0xec, 0xfc, 0x9b, 0xb9, 0x74, 0x7e, 0x8d, 0x51, 0x14, 0x27, 0x34, 0xfe, + 0x13, 0x05, 0x0f, 0xf2, 0x15, 0x0b, 0x80, 0x26, 0x3b, 0x6c, 0x6c, 0x4b, 0x89, 0x64, 0x19, 0xf7, + 0x29, 0x6b, 0x83, 0xea, 0xfc, 0xf1, 0x51, 0x19, 0x8c, 0xae, 0x37, 0xd8, 0x92, 0xfb, 0x30, 0xe3, + 0xa8, 0x35, 0x7f, 0xf2, 0x2c, 0xd6, 0x7c, 0x7e, 0x70, 0xd2, 0x83, 0x56, 0x33, 0x23, 0x5f, 0xb3, + 0x60, 0x3e, 0xa4, 0x91, 0xec, 0x2a, 0xb6, 0xf2, 0x48, 0x85, 0x77, 0xcc, 0x41, 0x57, 0x4f, 0xd0, + 0x14, 0x2b, 0x68, 0xb2, 0x0c, 0x53, 0x7c, 0x95, 0x28, 0x37, 0xa8, 0xd3, 0xa4, 0x01, 0x3f, 0x97, + 0x4b, 0x4d, 0x6a, 0x7c, 0x51, 0x0c, 0x9a, 0x5a, 0x14, 0xa3, 0x0c, 0x53, 0x7c, 0x95, 0x28, 0x5b, + 0x6e, 0x10, 0xf8, 0x52, 0x94, 0x99, 0x9c, 0x44, 0x31, 0x68, 0x6a, 0x51, 0x8c, 0x32, 0x4c, 0xf1, + 0xb5, 0xbf, 0x7d, 0x0e, 0xe6, 0xd5, 0x44, 0x8a, 0x35, 0x7b, 0x61, 0x06, 0x1a, 0xa0, 0xd9, 0xaf, + 0x99, 0x40, 0x4c, 0xe2, 0xb2, 0xca, 0x62, 0xaa, 0x26, 0x15, 0x7b, 0x5d, 0xb9, 0x6e, 0x02, 0x31, + 0x89, 0x4b, 0x3a, 0x50, 0x0c, 0x23, 0xda, 0x55, 0x97, 0xc1, 0x63, 0xde, 0x55, 0xc6, 0xeb, 0x43, + 0x7c, 0xdd, 0xc3, 0xfe, 0x85, 0x28, 0xb8, 0x70, 0x4b, 0x66, 0x94, 0x30, 0x6e, 0xca, 0xc9, 0x91, + 0xcf, 0xfc, 0x4c, 0xda, 0x4d, 0x45, 0x6f, 0x24, 0xcb, 0x30, 0xc5, 0x3e, 0x43, 0xd9, 0x2f, 0x9e, + 0xa1, 0xb2, 0xff, 0x59, 0x98, 0xe9, 0x38, 0x0f, 0xea, 0xbd, 0xa0, 0x75, 0xfa, 0x43, 0x85, 0x74, + 0xaf, 0x13, 0x54, 0x50, 0xd3, 0x23, 0x5f, 0xb6, 0x8c, 0x25, 0x67, 0x9a, 0x13, 0xbf, 0x9b, 0xef, + 0x92, 0xa3, 0xf7, 0xca, 0x81, 0x8b, 0x4f, 0x9f, 0xea, 0x3d, 0xf3, 0xd8, 0x55, 0x6f, 0xa6, 0x46, + 0x8a, 0x09, 0xa2, 0xd5, 0xc8, 0xd2, 0x99, 0xaa, 0x91, 0x6b, 0x09, 0x66, 0x98, 0x62, 0xce, 0xe5, + 0x11, 0x73, 0x4e, 0xcb, 0x03, 0x67, 0x2a, 0x4f, 0x3d, 0xc1, 0x0c, 0x53, 0xcc, 0x07, 0x9f, 0x37, + 0x67, 0xcf, 0xe6, 0xbc, 0x39, 0x97, 0xc3, 0x79, 0xf3, 0x64, 0x55, 0xfc, 0xdc, 0xb8, 0xaa, 0x38, + 0xb9, 0x09, 0xa4, 0x79, 0xe8, 0x39, 0x1d, 0xb7, 0x21, 0x17, 0x4b, 0xbe, 0x6d, 0xce, 0x73, 0x7b, + 0xc4, 0xb2, 0x5c, 0xc8, 0xc8, 0x7a, 0x1f, 0x06, 0x66, 0xd4, 0x22, 0x11, 0xcc, 0x74, 0x95, 0xc6, + 0xb5, 0x90, 0xc7, 0xe8, 0x57, 0x1a, 0x98, 0xf0, 0x17, 0x60, 0x13, 0x4f, 0x95, 0xa0, 0xe6, 0x44, + 0x36, 0xe1, 0x62, 0xc7, 0xf5, 0x6a, 0x7e, 0x33, 0xac, 0xd1, 0x40, 0x5a, 0x5b, 0xea, 0x34, 0x5a, + 0x5a, 0xe4, 0x6d, 0xc3, 0x4f, 0xd0, 0x5b, 0x19, 0x70, 0xcc, 0xac, 0x65, 0xff, 0x2f, 0x0b, 0x16, + 0xd7, 0xda, 0x7e, 0xaf, 0x79, 0xd7, 0x89, 0x1a, 0x7b, 0xe2, 0xaa, 0x9c, 0xbc, 0x0e, 0x33, 0xae, + 0x17, 0xd1, 0xe0, 0xc0, 0x69, 0xcb, 0xfd, 0xc9, 0x56, 0xe6, 0xd3, 0x0d, 0x59, 0xfe, 0xf0, 0xa8, + 0x3c, 0xbf, 0xde, 0x0b, 0xb8, 0x3b, 0x9d, 0x58, 0xad, 0x50, 0xd7, 0x21, 0xdf, 0xb6, 0xe0, 0xbc, + 0xb8, 0x6c, 0x5f, 0x77, 0x22, 0xe7, 0x76, 0x8f, 0x06, 0x2e, 0x55, 0xd7, 0xed, 0x63, 0x2e, 0x54, + 0x69, 0x59, 0x15, 0x83, 0xc3, 0x58, 0x51, 0xdf, 0x4a, 0x73, 0xc6, 0x7e, 0x61, 0xec, 0x5f, 0x2a, + 0xc0, 0x93, 0x03, 0x69, 0x91, 0x65, 0x98, 0x70, 0x9b, 0xf2, 0xd3, 0x41, 0xd2, 0x9d, 0xd8, 0x68, + 0xe2, 0x84, 0xdb, 0x24, 0x2b, 0x5c, 0xe7, 0x0c, 0x68, 0x18, 0xaa, 0x9b, 0xd7, 0x92, 0x56, 0x0f, + 0x65, 0x29, 0x1a, 0x18, 0xa4, 0x0c, 0x45, 0xee, 0x5a, 0x29, 0xcf, 0x13, 0x5c, 0x8b, 0xe5, 0x5e, + 0x8c, 0x28, 0xca, 0xc9, 0xcf, 0x5b, 0x00, 0x42, 0x40, 0x76, 0x1a, 0x91, 0xbb, 0x24, 0xe6, 0xdb, + 0x4c, 0x8c, 0xb2, 0x90, 0x32, 0xfe, 0x8f, 0x06, 0x57, 0xb2, 0x0d, 0x53, 0x4c, 0xa1, 0xf5, 0x9b, + 0xa7, 0xde, 0x14, 0xf9, 0x95, 0x4c, 0x8d, 0xd3, 0x40, 0x49, 0x8b, 0xb5, 0x55, 0x40, 0xa3, 0x5e, + 0xe0, 0xb1, 0xa6, 0xe5, 0xdb, 0xe0, 0x8c, 0x90, 0x02, 0x75, 0x29, 0x1a, 0x18, 0xf6, 0xbf, 0x99, + 0x80, 0x8b, 0x59, 0xa2, 0xb3, 0xdd, 0x66, 0x4a, 0x48, 0x2b, 0x8f, 0xc6, 0x9f, 0xc9, 0xbf, 0x7d, + 0xa4, 0xdf, 0x88, 0xf6, 0xae, 0x90, 0x9e, 0x6d, 0x92, 0x2f, 0xf9, 0x8c, 0x6e, 0xa1, 0x89, 0x53, + 0xb6, 0x90, 0xa6, 0x9c, 0x6a, 0xa5, 0x67, 0x60, 0x32, 0x64, 0x3d, 0x5f, 0x48, 0x5e, 0x77, 0xf0, + 0x3e, 0xe2, 0x10, 0x86, 0xd1, 0xf3, 0xdc, 0x48, 0xfa, 0xf3, 0x6b, 0x8c, 0x3b, 0x9e, 0x1b, 0x21, + 0x87, 0xd8, 0xdf, 0x9a, 0x80, 0xe5, 0xc1, 0x1f, 0x45, 0xbe, 0x65, 0x01, 0x34, 0xd9, 0x71, 0x25, + 0xe4, 0x4e, 0xbd, 0xc2, 0xcf, 0xc6, 0x39, 0xab, 0x36, 0x5c, 0x57, 0x9c, 0x62, 0xa7, 0x2b, 0x5d, + 0x14, 0xa2, 0x21, 0x08, 0x79, 0x51, 0x0d, 0x7d, 0x7e, 0x55, 0x23, 0x26, 0x93, 0xae, 0xb3, 0xa5, + 0x21, 0x68, 0x60, 0xb1, 0xf3, 0xa8, 0xe7, 0x74, 0x68, 0xd8, 0x75, 0x74, 0xc0, 0x06, 0x3f, 0x8f, + 0xde, 0x52, 0x85, 0x18, 0xc3, 0xed, 0x36, 0x3c, 0x3b, 0x84, 0x9c, 0x39, 0x39, 0xcf, 0xdb, 0xff, + 0xd3, 0x82, 0xcb, 0x6b, 0xed, 0x5e, 0x18, 0xd1, 0xe0, 0xaf, 0x8d, 0x0f, 0xdb, 0xff, 0xb6, 0xe0, + 0xa9, 0x01, 0xdf, 0xfc, 0x18, 0x5c, 0xd9, 0xde, 0x4d, 0xba, 0xb2, 0xdd, 0x19, 0x77, 0x48, 0x67, + 0x7e, 0xc7, 0x00, 0x8f, 0xb6, 0x5f, 0xb7, 0xe0, 0x1c, 0x5b, 0xb6, 0x9a, 0x7e, 0x2b, 0xa7, 0x8d, + 0xf3, 0x59, 0x28, 0xfe, 0x2c, 0xdb, 0x80, 0xd2, 0x83, 0x8c, 0xef, 0x4a, 0x28, 0x60, 0x6c, 0xce, + 0x38, 0x5d, 0xf7, 0x6d, 0x1a, 0xf0, 0x0d, 0xa8, 0x90, 0x9c, 0x33, 0x15, 0x0d, 0x41, 0x03, 0xcb, + 0xfe, 0x34, 0x48, 0x67, 0xb1, 0xd4, 0x8c, 0xb3, 0x86, 0x99, 0x71, 0xf6, 0x7f, 0x9c, 0x00, 0xc3, + 0xf8, 0xf1, 0x18, 0x46, 0xb2, 0x97, 0x18, 0xc9, 0x63, 0x1e, 0xdc, 0x0d, 0x53, 0xce, 0xa0, 0x60, + 0x9e, 0x83, 0x54, 0x30, 0xcf, 0xad, 0xdc, 0x38, 0x9e, 0x1c, 0xcb, 0xf3, 0x3d, 0x0b, 0x9e, 0x8a, + 0x91, 0xfb, 0xed, 0x92, 0x8f, 0x5e, 0x96, 0x5e, 0x81, 0x59, 0x27, 0xae, 0x26, 0xc7, 0x8d, 0x11, + 0x49, 0xa1, 0x41, 0x68, 0xe2, 0xc5, 0x3e, 0xe8, 0x85, 0x53, 0xfa, 0xa0, 0x4f, 0x9e, 0xec, 0x83, + 0x6e, 0xff, 0xe5, 0x04, 0x5c, 0xe9, 0xff, 0x32, 0x35, 0xa1, 0x86, 0xbb, 0xe4, 0x7f, 0x15, 0xe6, + 0x22, 0x59, 0xc1, 0xd8, 0x1e, 0x74, 0xf4, 0xe5, 0xb6, 0x01, 0xc3, 0x04, 0x26, 0xab, 0xd9, 0x10, + 0x53, 0xb9, 0xde, 0xf0, 0xbb, 0x2a, 0x82, 0x41, 0xd7, 0x5c, 0x33, 0x60, 0x98, 0xc0, 0xd4, 0xbe, + 0xa1, 0x93, 0x67, 0xee, 0x1b, 0x5a, 0x87, 0x4b, 0xca, 0x1b, 0xee, 0xba, 0x1f, 0xac, 0xf9, 0x9d, + 0x6e, 0x9b, 0xca, 0x18, 0x06, 0x26, 0xec, 0x15, 0x59, 0xe5, 0x12, 0x66, 0x21, 0x61, 0x76, 0x5d, + 0xfb, 0x7b, 0x05, 0xb8, 0x10, 0x37, 0xfb, 0x9a, 0xef, 0x35, 0x5d, 0xee, 0x53, 0xf8, 0x1a, 0x4c, + 0x46, 0x87, 0x5d, 0xd5, 0xd8, 0x7f, 0x43, 0x89, 0xb3, 0x7d, 0xd8, 0x65, 0xbd, 0x7d, 0x39, 0xa3, + 0x0a, 0xb7, 0x0c, 0xf3, 0x4a, 0x64, 0x53, 0xcf, 0x0e, 0xd1, 0x03, 0x2f, 0x27, 0x47, 0xf3, 0xc3, + 0xa3, 0x72, 0x46, 0xf0, 0xf1, 0x8a, 0xa6, 0x94, 0x1c, 0xf3, 0xe4, 0x1e, 0xcc, 0xb7, 0x9d, 0x30, + 0xba, 0xd3, 0x6d, 0x3a, 0x11, 0xdd, 0x76, 0xa5, 0x87, 0xc6, 0x68, 0x81, 0x01, 0xfa, 0x2a, 0x7b, + 0x33, 0x41, 0x09, 0x53, 0x94, 0xc9, 0x01, 0x10, 0x56, 0xb2, 0x1d, 0x38, 0x5e, 0x28, 0xbe, 0x8a, + 0xf1, 0x1b, 0x3d, 0x10, 0x41, 0x9f, 0x0c, 0x37, 0xfb, 0xa8, 0x61, 0x06, 0x07, 0xf2, 0x1c, 0x4c, + 0x05, 0xd4, 0x09, 0x65, 0x67, 0x96, 0xe2, 0xf9, 0x8f, 0xbc, 0x14, 0x25, 0xd4, 0x9c, 0x50, 0x53, + 0x8f, 0x98, 0x50, 0x7f, 0x66, 0xc1, 0x7c, 0xdc, 0x4d, 0x8f, 0x61, 0x67, 0xed, 0x24, 0x77, 0xd6, + 0x1b, 0x79, 0x2d, 0x89, 0x03, 0x36, 0xd3, 0x3f, 0x9c, 0x32, 0xbf, 0x8f, 0x3b, 0x86, 0x7f, 0x11, + 0x4a, 0x6a, 0x56, 0x2b, 0x95, 0x75, 0xcc, 0x03, 0x76, 0x42, 0x99, 0x31, 0x02, 0x9a, 0x24, 0x13, + 0x8c, 0xf9, 0xb1, 0xad, 0xbc, 0x29, 0xb7, 0x69, 0x39, 0xec, 0xf5, 0x56, 0xae, 0xb6, 0xef, 0xac, + 0xad, 0x5c, 0xd5, 0x21, 0x77, 0xe0, 0x72, 0x37, 0xf0, 0x79, 0x6c, 0xf2, 0x3a, 0x75, 0x9a, 0x6d, + 0xd7, 0xa3, 0xca, 0x8a, 0x21, 0x3c, 0x29, 0x9e, 0x3a, 0x3e, 0x2a, 0x5f, 0xae, 0x65, 0xa3, 0xe0, + 0xa0, 0xba, 0xc9, 0xc0, 0xac, 0xc9, 0x21, 0x02, 0xb3, 0xfe, 0xbe, 0xb6, 0x15, 0xd2, 0x50, 0x86, + 0x47, 0x7d, 0x2e, 0xaf, 0xae, 0xcc, 0x58, 0xd6, 0xe3, 0x21, 0x55, 0x91, 0x4c, 0x51, 0xb3, 0x1f, + 0x6c, 0x90, 0x9a, 0x3a, 0xa5, 0x41, 0x2a, 0xf6, 0xaf, 0x9f, 0xfe, 0x61, 0xfa, 0xd7, 0xcf, 0x7c, + 0xa8, 0xfc, 0xeb, 0x3f, 0x28, 0xc2, 0x62, 0x5a, 0x03, 0x39, 0xfb, 0xa0, 0xb3, 0x7f, 0x68, 0xc1, + 0xa2, 0x9a, 0x3d, 0x82, 0x27, 0x55, 0x57, 0x0d, 0x9b, 0x39, 0x4d, 0x5a, 0xa1, 0x4b, 0xe9, 0x68, + 0xf6, 0xed, 0x14, 0x37, 0xec, 0xe3, 0x4f, 0xde, 0x81, 0x59, 0x6d, 0x91, 0x3f, 0x55, 0x04, 0xda, + 0x02, 0xd7, 0xa2, 0x62, 0x12, 0x68, 0xd2, 0x23, 0x1f, 0x58, 0x00, 0x0d, 0xb5, 0xcd, 0xa9, 0xd9, + 0x75, 0x3b, 0xaf, 0xd9, 0xa5, 0x37, 0xd0, 0x58, 0x59, 0xd6, 0x45, 0x21, 0x1a, 0x8c, 0xc9, 0x2f, + 0x71, 0x5b, 0xbc, 0xd6, 0xee, 0xd8, 0x7c, 0x2a, 0x8c, 0xef, 0x3b, 0x7c, 0x82, 0x62, 0x1a, 0xab, + 0x52, 0x06, 0x28, 0xc4, 0x84, 0x10, 0xf6, 0x6b, 0xa0, 0xbd, 0x3d, 0xd9, 0xb2, 0xc5, 0xfd, 0x3d, + 0x6b, 0x4e, 0xb4, 0x27, 0x87, 0xa0, 0x5e, 0xb6, 0xae, 0x2b, 0x00, 0xc6, 0x38, 0xf6, 0x17, 0x60, + 0xfe, 0x8d, 0xc0, 0xe9, 0xee, 0xb9, 0xdc, 0xe6, 0xcd, 0xce, 0x56, 0x3f, 0x0e, 0xd3, 0x4e, 0xb3, + 0x99, 0x95, 0x0b, 0xa2, 0x22, 0x8a, 0x51, 0xc1, 0x87, 0x3a, 0x46, 0xd9, 0x7f, 0x60, 0x01, 0x89, + 0xef, 0x0d, 0x5d, 0xaf, 0xb5, 0xe5, 0x44, 0x8d, 0x3d, 0x76, 0x3e, 0xda, 0xe3, 0xa5, 0x59, 0xe7, + 0xa3, 0x1b, 0x1a, 0x82, 0x06, 0x16, 0x79, 0x0f, 0x66, 0xc5, 0xbf, 0xb7, 0xb5, 0x85, 0x60, 0xec, + 0x08, 0x02, 0xb1, 0xa1, 0x70, 0x99, 0xc4, 0x28, 0xbc, 0x11, 0x73, 0x40, 0x93, 0x1d, 0x6b, 0xaa, + 0x0d, 0x6f, 0xb7, 0xdd, 0x7b, 0xd0, 0xdc, 0x89, 0x9b, 0xaa, 0x1b, 0xf8, 0xbb, 0x6e, 0x9b, 0xa6, + 0x9b, 0xaa, 0x26, 0x8a, 0x51, 0xc1, 0x87, 0x6b, 0xaa, 0xdf, 0xb3, 0xe0, 0xe2, 0x46, 0x18, 0xb9, + 0xfe, 0x3a, 0x0d, 0x23, 0xb6, 0xad, 0xb0, 0xc5, 0xa7, 0xd7, 0x1e, 0xc6, 0x71, 0x7b, 0x1d, 0x16, + 0xe5, 0x1d, 0x66, 0x6f, 0x27, 0xa4, 0x91, 0xa1, 0xc7, 0xeb, 0x79, 0xbc, 0x96, 0x82, 0x63, 0x5f, + 0x0d, 0x46, 0x45, 0x5e, 0x66, 0xc6, 0x54, 0x0a, 0x49, 0x2a, 0xf5, 0x14, 0x1c, 0xfb, 0x6a, 0xd8, + 0xdf, 0x2d, 0xc0, 0x05, 0xfe, 0x19, 0xa9, 0xa0, 0x8b, 0x6f, 0x0c, 0x0a, 0xba, 0x18, 0x73, 0x2a, + 0x73, 0x5e, 0xa7, 0x08, 0xb9, 0xf8, 0x07, 0x16, 0x2c, 0x34, 0x93, 0x2d, 0x9d, 0x8f, 0x4d, 0x27, + 0xab, 0x0f, 0x85, 0xcb, 0x56, 0xaa, 0x10, 0xd3, 0xfc, 0xc9, 0x2f, 0x5b, 0xb0, 0x90, 0x14, 0x53, + 0xad, 0xee, 0x67, 0xd0, 0x48, 0xda, 0xc7, 0x3a, 0x59, 0x1e, 0x62, 0x5a, 0x04, 0xfb, 0x8f, 0x26, + 0x64, 0x97, 0x9e, 0x45, 0x44, 0x01, 0xb9, 0x0f, 0xa5, 0xa8, 0x1d, 0x8a, 0x42, 0xf9, 0xb5, 0x63, + 0x9e, 0x08, 0xb7, 0x37, 0xeb, 0xc2, 0x7d, 0x20, 0x56, 0xda, 0x64, 0x09, 0x53, 0x3e, 0x15, 0x2f, + 0xce, 0xb8, 0xd1, 0x95, 0x8c, 0x73, 0x39, 0x8a, 0x6e, 0xaf, 0xd5, 0xd2, 0x8c, 0x65, 0x09, 0x63, + 0xac, 0x78, 0xd9, 0xbf, 0x61, 0x41, 0xe9, 0xa6, 0xaf, 0xd6, 0x91, 0x9f, 0xce, 0xc1, 0xd0, 0xa3, + 0xf5, 0x41, 0x7d, 0x4d, 0x19, 0x1f, 0x31, 0x5e, 0x4f, 0x98, 0x79, 0x9e, 0x36, 0x68, 0xaf, 0xf0, + 0x3c, 0x57, 0x8c, 0xd4, 0x4d, 0x7f, 0x67, 0xa0, 0xe9, 0xf1, 0x57, 0x8a, 0x70, 0xee, 0x4d, 0xe7, + 0x90, 0x7a, 0x91, 0x33, 0xfa, 0x26, 0xf1, 0x0a, 0xcc, 0x3a, 0x5d, 0x7e, 0x0f, 0x66, 0xe8, 0xf8, + 0xb1, 0xe5, 0x24, 0x06, 0xa1, 0x89, 0x17, 0x2f, 0x68, 0x22, 0xed, 0x4e, 0xd6, 0x52, 0xb4, 0x96, + 0x82, 0x63, 0x5f, 0x0d, 0x72, 0x13, 0x88, 0x8c, 0x46, 0xad, 0x34, 0x1a, 0x7e, 0xcf, 0x13, 0x4b, + 0x9a, 0x30, 0xaa, 0xe8, 0xc3, 0xe6, 0x56, 0x1f, 0x06, 0x66, 0xd4, 0x22, 0x9f, 0x87, 0xa5, 0x06, + 0xa7, 0x2c, 0x8f, 0x1e, 0x26, 0x45, 0x71, 0xfc, 0xd4, 0x71, 0x02, 0x6b, 0x03, 0xf0, 0x70, 0x20, + 0x05, 0x26, 0x69, 0x18, 0xf9, 0x81, 0xd3, 0xa2, 0x26, 0xdd, 0xa9, 0xa4, 0xa4, 0xf5, 0x3e, 0x0c, + 0xcc, 0xa8, 0x45, 0xbe, 0x04, 0xa5, 0x68, 0x2f, 0xa0, 0xe1, 0x9e, 0xdf, 0x6e, 0x4a, 0xbf, 0x85, + 0x31, 0x2d, 0x6d, 0xb2, 0xf7, 0xb7, 0x15, 0x55, 0x63, 0x78, 0xab, 0x22, 0x8c, 0x79, 0x92, 0x00, + 0xa6, 0xc2, 0x86, 0xdf, 0xa5, 0xa1, 0x54, 0xd9, 0x6f, 0xe6, 0xc2, 0x9d, 0x5b, 0x8e, 0x0c, 0x1b, + 0x1f, 0xe7, 0x80, 0x92, 0x93, 0xfd, 0xfb, 0x13, 0x30, 0x67, 0x22, 0x0e, 0xb1, 0x36, 0x7d, 0xc5, + 0x82, 0xb9, 0x86, 0xef, 0x45, 0x81, 0xdf, 0x16, 0xf6, 0xab, 0x7c, 0x34, 0x0a, 0x46, 0x6a, 0x9d, + 0x46, 0x8e, 0xdb, 0x36, 0x4c, 0x61, 0x06, 0x1b, 0x4c, 0x30, 0x25, 0x5f, 0xb7, 0x60, 0x21, 0x76, + 0x73, 0x8b, 0x0d, 0x69, 0xb9, 0x0a, 0xa2, 0x97, 0xfa, 0x6b, 0x49, 0x4e, 0x98, 0x66, 0x6d, 0xef, + 0xc0, 0x62, 0xba, 0xb7, 0x59, 0x53, 0x76, 0x1d, 0x39, 0xd7, 0x0b, 0x71, 0x53, 0xd6, 0x9c, 0x30, + 0x44, 0x0e, 0x21, 0x2f, 0xc0, 0x4c, 0xc7, 0x09, 0x5a, 0xae, 0xe7, 0xb4, 0x79, 0x2b, 0x16, 0x8c, + 0x05, 0x49, 0x96, 0xa3, 0xc6, 0xb0, 0x3f, 0x0e, 0x73, 0x5b, 0x8e, 0xd7, 0xa2, 0x4d, 0xb9, 0x0e, + 0x3f, 0x3a, 0xa6, 0xed, 0x07, 0x93, 0x30, 0x6b, 0x9c, 0xcd, 0xce, 0xfe, 0x9c, 0x95, 0x48, 0xa9, + 0x51, 0xc8, 0x31, 0xa5, 0xc6, 0x67, 0x01, 0x76, 0x5d, 0xcf, 0x0d, 0xf7, 0x4e, 0x99, 0xac, 0x83, + 0xdf, 0xeb, 0x5e, 0xd7, 0x14, 0xd0, 0xa0, 0x16, 0x5f, 0x9e, 0x15, 0x4f, 0xc8, 0x3c, 0xf5, 0x81, + 0x65, 0x6c, 0x37, 0x53, 0x79, 0x38, 0x0b, 0x18, 0x1d, 0xb3, 0xa2, 0xb6, 0x1f, 0x91, 0x6b, 0xe8, + 0xa4, 0x5d, 0x69, 0x1b, 0x66, 0x02, 0x1a, 0xf6, 0x3a, 0xec, 0xc4, 0x38, 0x3d, 0x72, 0x33, 0x70, + 0xb7, 0x0d, 0x94, 0xf5, 0x51, 0x53, 0x5a, 0x7e, 0x0d, 0xce, 0x25, 0x44, 0x18, 0x29, 0xfb, 0x90, + 0x0f, 0x99, 0x06, 0x80, 0xd3, 0x5c, 0xe6, 0xb0, 0xbe, 0x68, 0x1b, 0xd9, 0x3a, 0x74, 0x5f, 0x08, + 0xe7, 0x1c, 0x01, 0xb3, 0xff, 0x72, 0x0a, 0xe4, 0xfd, 0xf7, 0x10, 0xcb, 0x95, 0x79, 0xeb, 0x35, + 0x71, 0x8a, 0x5b, 0xaf, 0x9b, 0x30, 0xe7, 0x7a, 0x6e, 0xe4, 0x3a, 0x6d, 0x6e, 0xdc, 0x91, 0xdb, + 0xa9, 0xf2, 0x5e, 0x9e, 0xdb, 0x30, 0x60, 0x19, 0x74, 0x12, 0x75, 0xc9, 0x6d, 0x28, 0xf2, 0xfd, + 0x46, 0x0e, 0xe0, 0xd1, 0x2f, 0xe9, 0xb9, 0x7f, 0x86, 0x08, 0x69, 0x12, 0x94, 0xf8, 0xe1, 0x43, + 0xa4, 0x2b, 0xd1, 0xc7, 0x6f, 0x39, 0x8e, 0xe3, 0xc3, 0x47, 0x0a, 0x8e, 0x7d, 0x35, 0x18, 0x95, + 0x5d, 0xc7, 0x6d, 0xf7, 0x02, 0x1a, 0x53, 0x99, 0x4a, 0x52, 0xb9, 0x9e, 0x82, 0x63, 0x5f, 0x0d, + 0xb2, 0x0b, 0x73, 0xb2, 0x4c, 0xb8, 0x5c, 0x4d, 0x9f, 0xf2, 0x2b, 0xb9, 0x6b, 0xdd, 0x75, 0x83, + 0x12, 0x26, 0xe8, 0x92, 0x1e, 0x9c, 0x77, 0xbd, 0x86, 0xef, 0x35, 0xda, 0xbd, 0xd0, 0x3d, 0xa0, + 0x71, 0x3c, 0xd1, 0x69, 0x98, 0x5d, 0x3a, 0x3e, 0x2a, 0x9f, 0xdf, 0x48, 0x93, 0xc3, 0x7e, 0x0e, + 0xe4, 0xcb, 0x16, 0x5c, 0x6a, 0xf8, 0x5e, 0xc8, 0xe3, 0xff, 0x0f, 0xe8, 0xb5, 0x20, 0xf0, 0x03, + 0xc1, 0xbb, 0x74, 0x4a, 0xde, 0xdc, 0xa6, 0xb8, 0x96, 0x45, 0x12, 0xb3, 0x39, 0x91, 0x77, 0x61, + 0xa6, 0x1b, 0xf8, 0x07, 0x6e, 0x93, 0x06, 0xd2, 0x7d, 0x6f, 0x33, 0x8f, 0x7c, 0x24, 0x35, 0x49, + 0x33, 0x5e, 0x7a, 0x54, 0x09, 0x6a, 0x7e, 0xf6, 0xff, 0x99, 0x85, 0xf9, 0x24, 0x3a, 0xf9, 0x39, + 0x80, 0x6e, 0xe0, 0x77, 0x68, 0xb4, 0x47, 0x75, 0x5c, 0xc8, 0xad, 0x71, 0xd3, 0x5e, 0x28, 0x7a, + 0xca, 0xe5, 0x85, 0x2d, 0x17, 0x71, 0x29, 0x1a, 0x1c, 0x49, 0x00, 0xd3, 0xfb, 0x62, 0xdb, 0x95, + 0x5a, 0xc8, 0x9b, 0xb9, 0xe8, 0x4c, 0x92, 0x33, 0x0f, 0x68, 0x90, 0x45, 0xa8, 0x18, 0x91, 0x1d, + 0x28, 0xdc, 0xa7, 0x3b, 0xf9, 0xc4, 0x5c, 0xdf, 0xa5, 0xf2, 0x34, 0x53, 0x9d, 0x3e, 0x3e, 0x2a, + 0x17, 0xee, 0xd2, 0x1d, 0x64, 0xc4, 0xd9, 0x77, 0x35, 0xc5, 0xdd, 0xbd, 0x5c, 0x2a, 0xc6, 0xfc, + 0xae, 0x84, 0x23, 0x80, 0xf8, 0x2e, 0x59, 0x84, 0x8a, 0x11, 0x79, 0x17, 0x4a, 0xf7, 0x9d, 0x03, + 0xba, 0x1b, 0xf8, 0x5e, 0x24, 0xfd, 0xac, 0xc6, 0x0c, 0x15, 0xb8, 0xab, 0xc8, 0x49, 0xbe, 0x7c, + 0x7b, 0xd7, 0x85, 0x18, 0xb3, 0x23, 0x07, 0x30, 0xe3, 0xd1, 0xfb, 0x48, 0xdb, 0x6e, 0x23, 0x1f, + 0xd7, 0xfc, 0x5b, 0x92, 0x9a, 0xe4, 0xcc, 0xf7, 0x3d, 0x55, 0x86, 0x9a, 0x17, 0xeb, 0xcb, 0x7b, + 0xfe, 0x8e, 0x5c, 0xa8, 0xc6, 0xec, 0x4b, 0x7d, 0x32, 0x15, 0x7d, 0x79, 0xd3, 0xdf, 0x41, 0x46, + 0x9c, 0xcd, 0x91, 0x86, 0x76, 0xf2, 0x91, 0xcb, 0xd4, 0xad, 0x7c, 0x9d, 0x9b, 0xc4, 0x1c, 0x89, + 0x4b, 0xd1, 0xe0, 0xc8, 0xda, 0xb6, 0x25, 0x8d, 0x95, 0x72, 0xa1, 0x1a, 0xb3, 0x6d, 0x93, 0xa6, + 0x4f, 0xd1, 0xb6, 0xaa, 0x0c, 0x35, 0x2f, 0xc6, 0xd7, 0x95, 0x96, 0xbf, 0x7c, 0x96, 0xaa, 0xa4, + 0x1d, 0x51, 0xf0, 0x55, 0x65, 0xa8, 0x79, 0xb1, 0xf6, 0x0e, 0xf7, 0x0f, 0xef, 0x3b, 0xed, 0x7d, + 0xd7, 0x6b, 0xc9, 0x38, 0xc7, 0x71, 0xd3, 0xde, 0xee, 0x1f, 0xde, 0x15, 0xf4, 0xcc, 0xf6, 0x8e, + 0x4b, 0xd1, 0xe0, 0x48, 0xfe, 0xa9, 0x05, 0x53, 0xdd, 0x76, 0xaf, 0xe5, 0x7a, 0x4b, 0x73, 0x5c, + 0x4f, 0xfc, 0x4c, 0x9e, 0x2b, 0xf4, 0x4a, 0x8d, 0x93, 0x16, 0x8a, 0xe2, 0x4f, 0x68, 0x9f, 0x3d, + 0x5e, 0xf8, 0x0b, 0x7f, 0x5e, 0x5e, 0xa2, 0x5e, 0xc3, 0x6f, 0xba, 0x5e, 0x6b, 0xf5, 0x5e, 0xe8, + 0x7b, 0x2b, 0xe8, 0xdc, 0x57, 0x3a, 0xba, 0x94, 0x69, 0xf9, 0x93, 0x30, 0x6b, 0x90, 0x78, 0x94, + 0xa2, 0x37, 0x67, 0x2a, 0x7a, 0xbf, 0x31, 0x05, 0x73, 0x66, 0x46, 0xbd, 0x21, 0xb4, 0x2f, 0x7d, + 0xe2, 0x98, 0x18, 0xe5, 0xc4, 0xc1, 0x8e, 0x98, 0xc6, 0xed, 0x91, 0x32, 0x6f, 0x6d, 0xe4, 0xa6, + 0x70, 0xc7, 0x47, 0x4c, 0xa3, 0x30, 0xc4, 0x04, 0xd3, 0x11, 0x1c, 0x4a, 0x98, 0xda, 0x2a, 0x14, + 0xbb, 0x62, 0x52, 0x6d, 0x4d, 0xa8, 0x6a, 0x2f, 0x02, 0xc4, 0x99, 0xe5, 0xe4, 0xad, 0xa2, 0xd6, + 0x87, 0x8d, 0x8c, 0x77, 0x06, 0x16, 0x79, 0x0e, 0xa6, 0x98, 0xea, 0x43, 0x9b, 0x32, 0x0c, 0x5b, + 0x9f, 0xe3, 0xaf, 0xf3, 0x52, 0x94, 0x50, 0xf2, 0x2a, 0xd3, 0x52, 0x63, 0x85, 0x45, 0x46, 0x57, + 0x5f, 0x8c, 0xb5, 0xd4, 0x18, 0x86, 0x09, 0x4c, 0x26, 0x3a, 0x65, 0xfa, 0x05, 0x5f, 0x1b, 0x0c, + 0xd1, 0xb9, 0xd2, 0x81, 0x02, 0xc6, 0xed, 0x4a, 0x29, 0x7d, 0x84, 0xcf, 0xe9, 0xa2, 0x61, 0x57, + 0x4a, 0xc1, 0xb1, 0xaf, 0x06, 0xfb, 0x18, 0x79, 0x21, 0x3a, 0x2b, 0x9c, 0x6d, 0x07, 0x5c, 0x65, + 0x7e, 0xd5, 0x3c, 0x6b, 0xe5, 0x38, 0x87, 0xc4, 0xa8, 0x1d, 0xfe, 0xb0, 0x35, 0xde, 0xb1, 0xe8, + 0x0b, 0x30, 0x9f, 0xdc, 0x85, 0x72, 0xbf, 0xf9, 0xf8, 0xda, 0x24, 0x5c, 0xb8, 0xd5, 0x72, 0xbd, + 0x74, 0xb6, 0xa8, 0xac, 0x64, 0xdb, 0xd6, 0xa8, 0xc9, 0xb6, 0xe3, 0x78, 0x2e, 0x99, 0xcd, 0x3c, + 0x3b, 0x9e, 0x4b, 0xa5, 0x3a, 0x4f, 0xe2, 0x92, 0x3f, 0xb3, 0xe0, 0x69, 0xa7, 0x29, 0xce, 0x05, + 0x4e, 0x5b, 0x96, 0x1a, 0x39, 0x6e, 0xe5, 0x8c, 0x0e, 0xc7, 0xdc, 0xe5, 0xfb, 0x3f, 0x7e, 0xa5, + 0x72, 0x02, 0x57, 0xd1, 0xe3, 0x3f, 0x26, 0xbf, 0xe0, 0xe9, 0x93, 0x50, 0xf1, 0x44, 0xf1, 0xc9, + 0xdf, 0x86, 0x85, 0xc4, 0x07, 0x4b, 0x4b, 0x78, 0x49, 0x5c, 0x58, 0xd4, 0x93, 0x20, 0x4c, 0xe3, + 0x2e, 0xbf, 0x05, 0x1f, 0x7d, 0xa4, 0x9c, 0x23, 0x0d, 0xb6, 0xaf, 0x58, 0x50, 0x12, 0x76, 0x6d, + 0xa4, 0xbb, 0x29, 0x27, 0xcc, 0xd4, 0xc9, 0xbb, 0x52, 0xdb, 0xc8, 0x70, 0xc2, 0x64, 0x6b, 0xf9, + 0xbe, 0xeb, 0x35, 0x65, 0x2f, 0xeb, 0xb5, 0xfc, 0x4d, 0xd7, 0x6b, 0x22, 0x87, 0xe8, 0xd5, 0xbe, + 0x30, 0xd0, 0xde, 0xf4, 0xab, 0x16, 0xcc, 0xf3, 0x18, 0xd8, 0xf8, 0x4c, 0xf8, 0x8a, 0x76, 0x36, + 0x12, 0x62, 0x5c, 0x49, 0x3a, 0x1b, 0x3d, 0x3c, 0x2a, 0xcf, 0x8a, 0xa8, 0xd9, 0xa4, 0xef, 0xd1, + 0xe7, 0xa4, 0x21, 0x89, 0xbb, 0x44, 0x4d, 0x8c, 0x6c, 0xe7, 0xd0, 0x86, 0xd6, 0xba, 0x22, 0x82, + 0x31, 0x3d, 0xfb, 0x3d, 0x98, 0x33, 0x83, 0x59, 0xc8, 0x2b, 0x30, 0xdb, 0x75, 0xbd, 0x56, 0x32, + 0xe8, 0x51, 0x1b, 0xdb, 0x6b, 0x31, 0x08, 0x4d, 0x3c, 0x5e, 0xcd, 0x8f, 0xab, 0xa5, 0x6c, 0xf4, + 0x35, 0xdf, 0xac, 0x16, 0xff, 0xe1, 0x39, 0xb6, 0x33, 0x82, 0xa6, 0x72, 0xcf, 0xb1, 0x9d, 0xc1, + 0xe3, 0x87, 0x97, 0x63, 0x3b, 0x4b, 0x98, 0xff, 0xb7, 0x72, 0x6c, 0xff, 0x14, 0x8c, 0x9a, 0x5c, + 0x91, 0xed, 0x77, 0xf7, 0xcd, 0xc0, 0x74, 0xdd, 0xe2, 0x32, 0x32, 0x5d, 0x42, 0xed, 0x1d, 0x58, + 0x4c, 0x9f, 0x7a, 0x73, 0x77, 0x28, 0xf8, 0x38, 0x8c, 0x98, 0x0e, 0xd1, 0xbe, 0x06, 0x04, 0xfd, + 0x76, 0x7b, 0xc7, 0x69, 0xec, 0xdf, 0x75, 0xbd, 0xa6, 0x7f, 0x9f, 0xcf, 0x95, 0x55, 0x28, 0x05, + 0x32, 0x26, 0x2e, 0x94, 0x9f, 0xa5, 0x27, 0x9b, 0x0a, 0x96, 0x0b, 0x31, 0xc6, 0xb1, 0xff, 0x68, + 0x02, 0xa6, 0x65, 0x00, 0xe7, 0x63, 0xf0, 0xcd, 0xde, 0x4f, 0x5c, 0xda, 0x6d, 0xe4, 0x12, 0x77, + 0x3a, 0xd0, 0x31, 0x3b, 0x4c, 0x39, 0x66, 0xbf, 0x99, 0x0f, 0xbb, 0x93, 0xbd, 0xb2, 0xff, 0xb0, + 0x08, 0x0b, 0xa9, 0x80, 0x58, 0xa6, 0x30, 0xf5, 0x39, 0x23, 0xde, 0xc9, 0x35, 0xe6, 0x56, 0x07, + 0x1b, 0x9c, 0xec, 0x97, 0x18, 0x26, 0x92, 0xd7, 0xde, 0xce, 0x2d, 0x2f, 0xff, 0x8f, 0xf2, 0xd8, + 0x8e, 0xe8, 0x67, 0x47, 0xbe, 0x6d, 0xc1, 0x05, 0xa7, 0xff, 0x61, 0x03, 0x69, 0xd8, 0xb9, 0x9d, + 0xfb, 0x8b, 0x09, 0xd5, 0xa7, 0xa4, 0x90, 0x59, 0xef, 0x47, 0x60, 0x96, 0x28, 0xf6, 0x7f, 0xb1, + 0xe0, 0xc9, 0x81, 0xa1, 0xdd, 0x3c, 0x33, 0x50, 0x90, 0x84, 0xca, 0x35, 0x23, 0xe7, 0x04, 0x16, + 0xfa, 0x92, 0x2f, 0x9d, 0xcc, 0x25, 0xcd, 0x9e, 0xbc, 0x0c, 0x73, 0x5c, 0x89, 0x60, 0xab, 0x67, + 0x44, 0xbb, 0xf2, 0x8e, 0x82, 0x5b, 0xab, 0xeb, 0x46, 0x39, 0x26, 0xb0, 0xec, 0x6f, 0x5b, 0xb0, + 0x34, 0x28, 0x4f, 0xcc, 0x10, 0x27, 0xe8, 0xbf, 0x95, 0xf2, 0x6f, 0x2f, 0xf7, 0xf9, 0xb7, 0xa7, + 0xce, 0xd0, 0xca, 0x95, 0xdd, 0x38, 0xbe, 0x16, 0x1e, 0xe1, 0xbe, 0xfd, 0x0d, 0x0b, 0x2e, 0x0f, + 0x98, 0xf0, 0x7d, 0x71, 0x0e, 0xd6, 0xa9, 0xe3, 0x1c, 0x26, 0x86, 0x8d, 0x73, 0xb0, 0xff, 0xb8, + 0x00, 0x8b, 0x52, 0x9e, 0x58, 0x93, 0x7c, 0x35, 0x11, 0x25, 0xf0, 0x63, 0xa9, 0x28, 0x81, 0x8b, + 0x69, 0xfc, 0x1f, 0x85, 0x08, 0x7c, 0xb8, 0x42, 0x04, 0xfe, 0x6a, 0x02, 0x2e, 0x65, 0xa6, 0xaf, + 0x21, 0x5f, 0xcb, 0xd8, 0xbd, 0xee, 0xe6, 0x9c, 0x27, 0x67, 0xc8, 0xfd, 0x6b, 0x5c, 0xbf, 0xfa, + 0x5f, 0x36, 0xfd, 0xd9, 0xc5, 0x6e, 0xb4, 0x7b, 0x06, 0x19, 0x7f, 0x46, 0x74, 0x6d, 0xb7, 0x7f, + 0xa1, 0x00, 0xcf, 0x0f, 0x4b, 0xe8, 0x43, 0x1a, 0xfa, 0x14, 0x26, 0x42, 0x9f, 0x1e, 0x93, 0x66, + 0x71, 0x26, 0x51, 0x50, 0xff, 0x7c, 0x52, 0x6f, 0x7b, 0xfd, 0xe3, 0x73, 0xa8, 0x0b, 0xed, 0x69, + 0xa6, 0x7d, 0xaa, 0x14, 0xb8, 0xf1, 0x52, 0x38, 0x5d, 0x17, 0xc5, 0x0f, 0x8f, 0xca, 0xe7, 0xe3, + 0x24, 0x0a, 0xb2, 0x10, 0x55, 0x25, 0xf2, 0x3c, 0xcc, 0x04, 0x02, 0xaa, 0x82, 0x3d, 0xa4, 0x57, + 0x80, 0x28, 0x43, 0x0d, 0x25, 0x5f, 0x32, 0xd4, 0xf5, 0xc9, 0xb3, 0xca, 0x15, 0x72, 0x92, 0xb3, + 0xc3, 0x3b, 0x30, 0x13, 0xaa, 0xf4, 0xb4, 0x42, 0x71, 0x79, 0x69, 0xc8, 0x18, 0x22, 0x76, 0x48, + 0x54, 0xb9, 0x6a, 0xc5, 0xf7, 0xe9, 0x4c, 0xb6, 0x9a, 0x24, 0xb1, 0xf5, 0xf9, 0x4c, 0x18, 0x63, + 0xa1, 0xff, 0x6c, 0x46, 0x22, 0x98, 0x96, 0x2f, 0xf2, 0xc9, 0x5b, 0xa2, 0xad, 0x9c, 0xe2, 0x05, + 0xa4, 0x37, 0x29, 0xbf, 0x8b, 0x53, 0x76, 0x02, 0xc5, 0xca, 0xfe, 0x9e, 0x05, 0xb3, 0x72, 0x8c, + 0x3c, 0x86, 0x60, 0xaa, 0x7b, 0xc9, 0x60, 0xaa, 0x6b, 0xb9, 0xac, 0x58, 0x03, 0x22, 0xa9, 0xee, + 0xc1, 0x9c, 0x99, 0x37, 0x8d, 0x7c, 0xd6, 0x58, 0x71, 0xad, 0x71, 0x32, 0x11, 0xa9, 0x35, 0x39, + 0x5e, 0x8d, 0xed, 0xdf, 0x2c, 0xe9, 0x56, 0xe4, 0x67, 0x57, 0x73, 0xe4, 0x5b, 0x27, 0x8e, 0x7c, + 0x73, 0xe0, 0x4d, 0xe4, 0x3f, 0xf0, 0x6e, 0xc3, 0x8c, 0x5a, 0x16, 0xa5, 0xf2, 0xf0, 0xac, 0xe9, + 0x5e, 0xca, 0x34, 0x10, 0x46, 0xcc, 0x98, 0x2e, 0xfc, 0x0c, 0xaa, 0xfb, 0x50, 0x2f, 0xd7, 0x9a, + 0x0c, 0x79, 0x17, 0x66, 0xef, 0xfb, 0xc1, 0x7e, 0xdb, 0x77, 0x78, 0x72, 0x6c, 0xc8, 0xe3, 0x46, + 0x53, 0x1b, 0x14, 0x85, 0x8f, 0xff, 0xdd, 0x98, 0x3e, 0x9a, 0xcc, 0x48, 0x05, 0x16, 0x3a, 0xae, + 0x87, 0xd4, 0x69, 0xea, 0x98, 0xa9, 0x49, 0x91, 0x8f, 0x57, 0xa9, 0xd6, 0x5b, 0x49, 0x30, 0xa6, + 0xf1, 0xc9, 0xd7, 0x2d, 0x98, 0x0f, 0x12, 0xd6, 0x06, 0x99, 0x74, 0xb3, 0x36, 0xfe, 0x60, 0x4c, + 0x5a, 0x30, 0x84, 0x93, 0x7b, 0xb2, 0x1c, 0x53, 0xbc, 0xc9, 0x17, 0x61, 0x26, 0x94, 0x49, 0xd1, + 0xf2, 0xb9, 0x0a, 0xd7, 0x67, 0x7b, 0x41, 0x34, 0xee, 0x4a, 0x55, 0x82, 0x9a, 0x21, 0xd9, 0x84, + 0x8b, 0xca, 0x7c, 0x92, 0x78, 0xc0, 0x68, 0x2a, 0xce, 0xa1, 0x83, 0x19, 0x70, 0xcc, 0xac, 0xc5, + 0x54, 0x39, 0x9e, 0x8f, 0x50, 0xdc, 0x20, 0x19, 0x97, 0x2e, 0x7c, 0xfe, 0x35, 0x51, 0x42, 0x4f, + 0x0a, 0x09, 0x9c, 0x19, 0x23, 0x24, 0xb0, 0x0e, 0x97, 0xd2, 0x20, 0x9e, 0x1c, 0x89, 0xe7, 0x63, + 0x32, 0xb6, 0xd0, 0x5a, 0x16, 0x12, 0x66, 0xd7, 0x25, 0x77, 0xa1, 0x14, 0x50, 0x7e, 0xc8, 0xaa, + 0x28, 0xe7, 0x9b, 0x91, 0xdd, 0x0c, 0x51, 0x11, 0xc0, 0x98, 0x16, 0xeb, 0x77, 0x27, 0x99, 0x21, + 0xf7, 0x76, 0x8e, 0x2f, 0x67, 0xca, 0xbe, 0x1f, 0x90, 0xb4, 0xcc, 0xfe, 0xfe, 0x3c, 0x9c, 0x4b, + 0xd8, 0x80, 0xc8, 0xb3, 0x50, 0xe4, 0xd9, 0xa2, 0xf8, 0x6a, 0x35, 0x13, 0xaf, 0xa8, 0xa2, 0x71, + 0x04, 0x8c, 0xfc, 0xa2, 0x05, 0x0b, 0xdd, 0x84, 0xd1, 0x5d, 0x2d, 0xe4, 0x63, 0xde, 0xb7, 0x27, + 0x2d, 0xf9, 0x46, 0x6e, 0xf9, 0x24, 0x33, 0x4c, 0x73, 0x67, 0xeb, 0x81, 0xf4, 0xd5, 0x6d, 0xd3, + 0x80, 0x63, 0x4b, 0x45, 0x4f, 0x93, 0x58, 0x4b, 0x82, 0x31, 0x8d, 0xcf, 0x7a, 0x98, 0x7f, 0xdd, + 0x38, 0x6f, 0xb3, 0x55, 0x14, 0x01, 0x8c, 0x69, 0x91, 0xd7, 0x61, 0x5e, 0x26, 0x46, 0xad, 0xf9, + 0xcd, 0x1b, 0x4e, 0xb8, 0x27, 0x4f, 0x38, 0xfa, 0x44, 0xb6, 0x96, 0x80, 0x62, 0x0a, 0x9b, 0x7f, + 0x5b, 0x9c, 0x7d, 0x96, 0x13, 0x98, 0x4a, 0xa6, 0xde, 0x5f, 0x4b, 0x82, 0x31, 0x8d, 0x4f, 0x5e, + 0x30, 0xb6, 0x21, 0x71, 0xab, 0xab, 0x57, 0x83, 0x8c, 0xad, 0xa8, 0x02, 0x0b, 0x3d, 0x7e, 0x20, + 0x6c, 0x2a, 0xa0, 0x9c, 0x8f, 0x9a, 0xe1, 0x9d, 0x24, 0x18, 0xd3, 0xf8, 0xe4, 0x35, 0x38, 0x17, + 0xb0, 0xc5, 0x56, 0x13, 0x10, 0x57, 0xbd, 0xfa, 0x26, 0x0f, 0x4d, 0x20, 0x26, 0x71, 0xc9, 0x1b, + 0x70, 0x3e, 0xce, 0x23, 0xa8, 0x08, 0x88, 0xbb, 0x5f, 0x9d, 0xd4, 0xaa, 0x92, 0x46, 0xc0, 0xfe, + 0x3a, 0xe4, 0xef, 0xc2, 0xa2, 0xd1, 0x12, 0x1b, 0x5e, 0x93, 0x3e, 0x90, 0xb9, 0xde, 0xf8, 0x9b, + 0x2a, 0x6b, 0x29, 0x18, 0xf6, 0x61, 0x93, 0x4f, 0xc1, 0x7c, 0xc3, 0x6f, 0xb7, 0xf9, 0x1a, 0x27, + 0xd2, 0xbe, 0x8b, 0xa4, 0x6e, 0x22, 0xfd, 0x5d, 0x02, 0x82, 0x29, 0x4c, 0x72, 0x13, 0x88, 0xbf, + 0xc3, 0xd4, 0x2b, 0xda, 0x7c, 0x43, 0x3c, 0xd2, 0xcd, 0x34, 0x8e, 0x73, 0xc9, 0x48, 0x81, 0xb7, + 0xfa, 0x30, 0x30, 0xa3, 0x16, 0xcf, 0x89, 0x65, 0x44, 0x56, 0xce, 0xe7, 0xf1, 0x4e, 0x59, 0xda, + 0x7c, 0xf1, 0xc8, 0xb0, 0xca, 0x00, 0xa6, 0x44, 0xe0, 0x46, 0x3e, 0xd9, 0xdd, 0xcc, 0x0c, 0xd0, + 0xf1, 0x1e, 0x21, 0x4a, 0x51, 0x72, 0x22, 0x3f, 0x07, 0xa5, 0x1d, 0xf5, 0x1c, 0x00, 0x4f, 0xe9, + 0x36, 0xf6, 0xbe, 0x98, 0x7a, 0xd9, 0x22, 0x3e, 0x9e, 0x6b, 0x00, 0xc6, 0x2c, 0xc9, 0x73, 0x30, + 0x7b, 0xa3, 0x56, 0xd1, 0xa3, 0xf0, 0x3c, 0xef, 0xfd, 0x49, 0x56, 0x05, 0x4d, 0x00, 0x9b, 0x61, + 0x5a, 0x7d, 0x23, 0xc9, 0x17, 0x36, 0x32, 0xb4, 0x31, 0x86, 0xcd, 0xef, 0x67, 0xb1, 0xbe, 0x74, + 0x21, 0x85, 0x2d, 0xcb, 0x51, 0x63, 0x90, 0x77, 0x60, 0x56, 0xee, 0x17, 0x7c, 0x6d, 0xba, 0x78, + 0xba, 0xa8, 0x5d, 0x8c, 0x49, 0xa0, 0x49, 0x8f, 0x5f, 0x2a, 0xf2, 0x2c, 0xe9, 0xf4, 0x7a, 0xaf, + 0xdd, 0x5e, 0xba, 0xc4, 0xd7, 0xcd, 0xf8, 0x52, 0x31, 0x06, 0xa1, 0x89, 0x47, 0x5e, 0x52, 0x7e, + 0x36, 0x1f, 0x49, 0xdc, 0xb2, 0x6a, 0x3f, 0x1b, 0xad, 0x74, 0x0f, 0x70, 0xec, 0xbf, 0xfc, 0x08, + 0x07, 0x97, 0x1d, 0x58, 0x56, 0x1a, 0x5f, 0xff, 0x24, 0x59, 0x5a, 0x4a, 0x98, 0x4a, 0x96, 0xef, + 0x0e, 0xc4, 0xc4, 0x13, 0xa8, 0x90, 0x1d, 0x28, 0x38, 0xed, 0x9d, 0xa5, 0x27, 0xf3, 0x50, 0x5d, + 0xf5, 0xa3, 0xfb, 0xc2, 0x19, 0xaf, 0xb2, 0x59, 0x45, 0x46, 0xdc, 0xfe, 0xf2, 0x84, 0xbe, 0x3d, + 0xd1, 0x59, 0x6f, 0xdf, 0x33, 0x47, 0xb5, 0x95, 0xc7, 0xa3, 0xd2, 0x7d, 0x6f, 0x66, 0x88, 0x0d, + 0x29, 0x73, 0x4c, 0x77, 0xf5, 0x3c, 0xce, 0x25, 0x9f, 0x50, 0x32, 0xa3, 0xaf, 0x38, 0xd2, 0x26, + 0x67, 0xb1, 0xfd, 0x3b, 0xa0, 0x2d, 0x71, 0x29, 0xc7, 0x91, 0x00, 0x8a, 0x6e, 0x18, 0xb9, 0x7e, + 0x8e, 0x11, 0xa6, 0xa9, 0x54, 0xb8, 0xdc, 0x81, 0x9d, 0x03, 0x50, 0xb0, 0x62, 0x3c, 0xbd, 0x96, + 0xeb, 0x3d, 0x90, 0x9f, 0x7f, 0x3b, 0x77, 0x8f, 0x10, 0xc1, 0x93, 0x03, 0x50, 0xb0, 0x22, 0xf7, + 0xc4, 0x48, 0xcb, 0xe7, 0x01, 0xf1, 0xcd, 0x6a, 0x8a, 0x5f, 0x62, 0xc4, 0x31, 0x5e, 0x61, 0xc7, + 0x95, 0x3a, 0xcc, 0x98, 0xbc, 0xea, 0x5b, 0x1b, 0x59, 0xbc, 0xea, 0x5b, 0x1b, 0xc8, 0x98, 0x90, + 0xaf, 0x5a, 0x00, 0x8e, 0x7e, 0x20, 0x3f, 0x9f, 0x07, 0x66, 0x06, 0x3d, 0xb8, 0x2f, 0x7c, 0x20, + 0x63, 0x28, 0x1a, 0x9c, 0xc9, 0xbb, 0x30, 0xed, 0x88, 0xc7, 0xb4, 0xa4, 0x3b, 0x6f, 0x3e, 0x2f, + 0xc4, 0xa5, 0x24, 0xe0, 0xb6, 0x13, 0x09, 0x42, 0xc5, 0x90, 0xf1, 0x8e, 0x02, 0x87, 0xee, 0xba, + 0xfb, 0xd2, 0x62, 0x53, 0x1f, 0x3b, 0xcb, 0x3d, 0x23, 0x96, 0xc5, 0x5b, 0x82, 0x50, 0x31, 0x14, + 0x8f, 0x1b, 0x3b, 0x9e, 0xa3, 0x83, 0xb4, 0xf2, 0x09, 0xe5, 0x33, 0xc3, 0xbe, 0x8c, 0xc7, 0x8d, + 0x4d, 0x46, 0x98, 0xe4, 0x4b, 0x0e, 0x60, 0xca, 0xe1, 0xcf, 0xfc, 0xc9, 0xf3, 0x11, 0xe6, 0xf1, + 0x64, 0x60, 0xaa, 0x0d, 0xf8, 0xe2, 0x22, 0x1f, 0x13, 0x94, 0xdc, 0xc8, 0xaf, 0x59, 0x30, 0x2d, + 0x3c, 0x4d, 0x99, 0x96, 0xc8, 0xbe, 0xfd, 0x0b, 0x67, 0x90, 0x52, 0x5b, 0x7a, 0xc1, 0x4a, 0xbf, + 0x91, 0x9f, 0xd4, 0x6e, 0x74, 0xa2, 0xf4, 0x44, 0x3f, 0x58, 0x25, 0xdd, 0xf2, 0xa7, 0x60, 0xce, + 0xa4, 0x32, 0x92, 0x27, 0xec, 0x5f, 0x14, 0x00, 0x78, 0x43, 0x8b, 0xb4, 0x0c, 0x1d, 0x9e, 0xff, + 0x73, 0xcf, 0x6f, 0xe6, 0xf3, 0x3e, 0xa3, 0x99, 0x5d, 0x01, 0x64, 0xb2, 0xcf, 0x3d, 0xbf, 0x89, + 0x92, 0x09, 0x69, 0xc1, 0x64, 0xd7, 0x89, 0xf6, 0xf2, 0x4f, 0xe5, 0x30, 0x23, 0xe2, 0x13, 0xa3, + 0x3d, 0xe4, 0x0c, 0xc8, 0xfb, 0x16, 0x4c, 0x8b, 0x64, 0x0e, 0xea, 0x36, 0x63, 0x6c, 0xaf, 0x02, + 0xd5, 0x66, 0x2b, 0x22, 0x63, 0x84, 0xec, 0x41, 0xad, 0x78, 0xc8, 0x52, 0x54, 0x6c, 0x97, 0x3f, + 0xb0, 0x60, 0xce, 0x44, 0xcd, 0xe8, 0xa6, 0x9f, 0x31, 0xbb, 0x29, 0xcf, 0xf6, 0x30, 0x7b, 0xfc, + 0xbf, 0x5b, 0x60, 0x3c, 0xb8, 0x1d, 0x3b, 0xfc, 0x5a, 0x43, 0x3b, 0xfc, 0x4e, 0x8c, 0xe8, 0xf0, + 0x5b, 0x18, 0xc9, 0xe1, 0x77, 0x72, 0x74, 0x87, 0xdf, 0xe2, 0x60, 0x87, 0x5f, 0xfb, 0x9b, 0x16, + 0x9c, 0xef, 0xdb, 0x6d, 0x98, 0x72, 0x1a, 0xf8, 0x7e, 0x34, 0xc0, 0x51, 0x0e, 0x63, 0x10, 0x9a, + 0x78, 0x64, 0x1d, 0x16, 0x65, 0xb6, 0xfb, 0x7a, 0xb7, 0xed, 0x66, 0xa6, 0xd9, 0xd8, 0x4e, 0xc1, + 0xb1, 0xaf, 0x86, 0xfd, 0x3b, 0x16, 0xcc, 0x1a, 0xc1, 0xb9, 0xec, 0x3b, 0x78, 0x10, 0xb3, 0x14, + 0x23, 0x4e, 0xf4, 0xcf, 0x6f, 0x8f, 0x04, 0x4c, 0x5c, 0x64, 0xb6, 0x8c, 0x5c, 0xc8, 0xf1, 0x45, + 0x26, 0x2b, 0x45, 0x09, 0x15, 0x59, 0x6e, 0x69, 0x97, 0x37, 0x7a, 0xc1, 0xcc, 0x72, 0x4b, 0xbb, + 0xc8, 0x21, 0x9c, 0x1d, 0xd3, 0xd2, 0xa5, 0x2f, 0xb8, 0xf1, 0xae, 0x80, 0x13, 0x44, 0x28, 0x60, + 0xe4, 0x0a, 0x14, 0xa8, 0xd7, 0x94, 0x26, 0x05, 0xfd, 0xf2, 0xdf, 0x35, 0xaf, 0x89, 0xac, 0xdc, + 0x7e, 0x0b, 0xe6, 0xea, 0xb4, 0x11, 0xd0, 0xe8, 0x4d, 0x7a, 0x38, 0xf4, 0x53, 0x82, 0x6c, 0xb4, + 0xa7, 0x9e, 0x12, 0x64, 0xd5, 0x59, 0xb9, 0xfd, 0x2f, 0x2d, 0x48, 0x3d, 0x7e, 0x61, 0x5c, 0x6a, + 0x58, 0x03, 0x2f, 0x35, 0x4c, 0x43, 0xf8, 0xc4, 0x89, 0x86, 0xf0, 0x9b, 0x40, 0x3a, 0x6c, 0x2a, + 0x24, 0x9e, 0x7a, 0x91, 0xd6, 0x9c, 0x38, 0x15, 0x40, 0x1f, 0x06, 0x66, 0xd4, 0xb2, 0xff, 0x85, + 0x10, 0xd6, 0x7c, 0x0e, 0xe3, 0xd1, 0x0d, 0xd0, 0x83, 0x22, 0x27, 0x25, 0x4d, 0x5a, 0x63, 0x9a, + 0x83, 0xfb, 0x53, 0xea, 0xc4, 0x1d, 0x29, 0xa7, 0x3c, 0xe7, 0x66, 0xff, 0xb1, 0x90, 0xd5, 0x78, + 0x2f, 0x63, 0x08, 0x59, 0x3b, 0x49, 0x59, 0x6f, 0xe4, 0xb5, 0x56, 0x66, 0xcb, 0x48, 0x56, 0x00, + 0xba, 0x34, 0x68, 0x50, 0x2f, 0x52, 0x21, 0x0a, 0x45, 0x19, 0x2c, 0xa7, 0x4b, 0xd1, 0xc0, 0xb0, + 0x7f, 0xc5, 0x82, 0xc5, 0x74, 0x24, 0x4b, 0xde, 0x7e, 0x86, 0x89, 0x70, 0xdb, 0xc2, 0xe8, 0xe1, + 0xb6, 0xf6, 0xfb, 0x4c, 0xc8, 0xc8, 0x6d, 0xec, 0xbb, 0x9e, 0x88, 0x50, 0xdd, 0x75, 0x5b, 0x4c, + 0x48, 0x2a, 0x1f, 0xe7, 0x13, 0x96, 0x50, 0x2d, 0xa4, 0x7a, 0x93, 0x4f, 0xc1, 0x49, 0x05, 0x16, + 0xd4, 0xfd, 0x8f, 0x32, 0x5f, 0x8b, 0xc8, 0x7a, 0x6d, 0x2e, 0x5b, 0x4f, 0x82, 0x31, 0x8d, 0x6f, + 0x7f, 0x09, 0x66, 0x8d, 0x4d, 0x80, 0xaf, 0x97, 0x0f, 0x9c, 0x46, 0x94, 0x5e, 0x67, 0xae, 0xb1, + 0x42, 0x14, 0x30, 0x6e, 0x65, 0x17, 0x8e, 0xf6, 0xa9, 0x75, 0x46, 0xba, 0xd7, 0x4b, 0x28, 0x23, + 0x16, 0xd0, 0x16, 0x7d, 0xa0, 0x52, 0x43, 0x2b, 0x62, 0xc8, 0x0a, 0x51, 0xc0, 0xec, 0x17, 0x60, + 0x46, 0xe5, 0x3f, 0xe1, 0x49, 0x04, 0x94, 0x05, 0xd8, 0x4c, 0x22, 0xe0, 0x07, 0x11, 0x72, 0x88, + 0xfd, 0x36, 0xcc, 0xa8, 0x34, 0x2d, 0x8f, 0xc6, 0x66, 0x53, 0x3f, 0xf4, 0xdc, 0x1b, 0x7e, 0x18, + 0xa9, 0xdc, 0x32, 0xe2, 0x92, 0xea, 0xd6, 0x06, 0x2f, 0x43, 0x0d, 0xb5, 0x5f, 0x82, 0x85, 0xd4, + 0x65, 0xe5, 0x10, 0x19, 0x07, 0x7e, 0xbf, 0x00, 0x73, 0x89, 0xf7, 0xf3, 0x1f, 0x3d, 0x6b, 0x86, + 0x5f, 0x8c, 0x32, 0xee, 0x99, 0x0a, 0x23, 0xde, 0x33, 0x99, 0x17, 0x7b, 0x93, 0x67, 0x7b, 0xb1, + 0x57, 0xcc, 0xe7, 0x62, 0xcf, 0xb8, 0x80, 0x9e, 0x7a, 0x7c, 0x17, 0xd0, 0xbf, 0x5d, 0x84, 0xf9, + 0x64, 0x0a, 0xbb, 0x21, 0x7a, 0xf2, 0x85, 0xbe, 0x9e, 0x1c, 0xd1, 0xb0, 0x5d, 0x18, 0xd7, 0xb0, + 0x3d, 0x39, 0xae, 0x61, 0xbb, 0x78, 0x0a, 0xc3, 0x76, 0xbf, 0x59, 0x7a, 0x6a, 0x68, 0xb3, 0xf4, + 0xa7, 0xb5, 0x6b, 0xda, 0x74, 0xc2, 0x97, 0x23, 0x76, 0x4d, 0x23, 0xc9, 0x6e, 0x58, 0xf3, 0x9b, + 0x99, 0x2e, 0x7e, 0x33, 0x8f, 0x30, 0xe0, 0x05, 0x99, 0x9e, 0x64, 0xa3, 0xdf, 0x9d, 0x7d, 0x64, + 0x04, 0x2f, 0xb2, 0x57, 0x60, 0x56, 0x8e, 0x27, 0xae, 0xf2, 0x41, 0x52, 0x5d, 0xac, 0xc7, 0x20, + 0x34, 0xf1, 0xf8, 0xeb, 0xc6, 0xc9, 0xc7, 0x9f, 0xf9, 0x3d, 0x81, 0xf9, 0xba, 0x71, 0xea, 0xb1, + 0xe8, 0x34, 0xbe, 0xfd, 0x45, 0xb8, 0x94, 0x79, 0x6c, 0xe7, 0x76, 0x4c, 0xae, 0x8d, 0xd0, 0xa6, + 0x44, 0x30, 0xc4, 0x48, 0x65, 0x45, 0x5f, 0xbe, 0x3b, 0x10, 0x13, 0x4f, 0xa0, 0x62, 0xff, 0x56, + 0x01, 0xe6, 0x93, 0x4f, 0xe3, 0x91, 0xfb, 0xda, 0xc8, 0x97, 0x8b, 0x7d, 0x51, 0x90, 0x35, 0xd2, + 0xa2, 0x0d, 0xb4, 0xd8, 0xdf, 0xe7, 0xe3, 0x6b, 0x47, 0xe7, 0x68, 0x3b, 0x3b, 0xc6, 0xd2, 0x54, + 0x2e, 0xd9, 0xf1, 0xd7, 0xef, 0xe2, 0x08, 0x2a, 0x79, 0x7a, 0xcc, 0x9d, 0x7b, 0x1c, 0xd4, 0xa4, + 0x59, 0xa1, 0xc1, 0x96, 0xed, 0x2d, 0x07, 0x34, 0x70, 0x77, 0x5d, 0xfd, 0xac, 0x2f, 0x5f, 0xb9, + 0xdf, 0x96, 0x65, 0xa8, 0xa1, 0xf6, 0xfb, 0x13, 0x10, 0x3f, 0x79, 0xce, 0xdf, 0x8f, 0x0a, 0x0d, + 0x4d, 0x5d, 0x76, 0xdb, 0xcd, 0x71, 0x1f, 0x69, 0x8b, 0x29, 0x4a, 0xb7, 0x61, 0xa3, 0x04, 0x13, + 0x1c, 0x7f, 0x08, 0x4f, 0x9d, 0x3b, 0xb0, 0x90, 0x8a, 0xd8, 0xcf, 0x3d, 0x0a, 0xe5, 0x07, 0x05, + 0x28, 0xe9, 0x9c, 0x07, 0xe4, 0x93, 0x09, 0xb3, 0x49, 0xa9, 0xfa, 0x51, 0xe3, 0x71, 0x93, 0x3d, + 0xbf, 0xf9, 0xf0, 0xa8, 0xbc, 0xa0, 0x91, 0x53, 0x26, 0x90, 0x2b, 0x50, 0xe8, 0x05, 0xed, 0xf4, + 0xb9, 0xe8, 0x0e, 0x6e, 0x22, 0x2b, 0x27, 0x0f, 0xd2, 0x76, 0x8b, 0xad, 0x9c, 0xf2, 0x34, 0x88, + 0x03, 0xc4, 0x60, 0x7b, 0x05, 0xdb, 0x25, 0x77, 0xfc, 0xe6, 0x61, 0xfa, 0x31, 0x94, 0xaa, 0xdf, + 0x3c, 0x44, 0x0e, 0x21, 0xaf, 0xc3, 0x7c, 0xe4, 0x76, 0xa8, 0xdf, 0x8b, 0xcc, 0x27, 0xa2, 0x0b, + 0xf1, 0x0d, 0xf4, 0x76, 0x02, 0x8a, 0x29, 0x6c, 0xb6, 0xcb, 0xde, 0x0b, 0x7d, 0x8f, 0x27, 0x2b, + 0x9d, 0x4a, 0x5e, 0x57, 0xdd, 0xac, 0xbf, 0x75, 0x8b, 0x9b, 0x6f, 0x34, 0x06, 0xc3, 0x76, 0x79, + 0x18, 0x6e, 0x40, 0xa5, 0x03, 0xc8, 0x62, 0xac, 0x8f, 0x8b, 0x72, 0xd4, 0x18, 0x64, 0x5d, 0xd0, + 0x66, 0xd2, 0xf2, 0x1d, 0x65, 0xae, 0xfa, 0xbc, 0xa2, 0xcb, 0xca, 0x1e, 0x1e, 0x9d, 0x60, 0x58, + 0xd3, 0x35, 0xed, 0x3b, 0xb0, 0x90, 0x6a, 0x30, 0x75, 0x8e, 0xb5, 0xb2, 0xcf, 0xb1, 0xc3, 0xbd, + 0x5f, 0xf2, 0xaf, 0x2d, 0x38, 0xdf, 0xb7, 0x04, 0x0c, 0x1b, 0x64, 0x95, 0xde, 0x8c, 0x26, 0x4e, + 0xbf, 0x19, 0x15, 0x46, 0xdb, 0x8c, 0xaa, 0x3b, 0xdf, 0xf9, 0xfe, 0xd5, 0x27, 0xbe, 0xfb, 0xfd, + 0xab, 0x4f, 0xfc, 0xc9, 0xf7, 0xaf, 0x3e, 0xf1, 0xfe, 0xf1, 0x55, 0xeb, 0x3b, 0xc7, 0x57, 0xad, + 0xef, 0x1e, 0x5f, 0xb5, 0xfe, 0xe4, 0xf8, 0xaa, 0xf5, 0x9f, 0x8f, 0xaf, 0x5a, 0xdf, 0xfc, 0xc1, + 0xd5, 0x27, 0x3e, 0xfb, 0xe9, 0x78, 0x80, 0xae, 0xaa, 0x01, 0xca, 0x7f, 0x7c, 0x4c, 0x0d, 0xc7, + 0xd5, 0xee, 0x7e, 0x6b, 0x95, 0x0d, 0xd0, 0x55, 0x5d, 0xa2, 0x06, 0xe8, 0xff, 0x0d, 0x00, 0x00, + 0xff, 0xff, 0x07, 0x71, 0xea, 0xe7, 0x41, 0x9c, 0x00, 0x00, } func (m *ALBStatus) Marshal() (dAtA []byte, err error) { @@ -3987,6 +4022,77 @@ func (m *AnalysisRunList) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *AnalysisRunMetadata) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisRunMetadata) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisRunMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Annotations) > 0 { + keysForAnnotations := make([]string, 0, len(m.Annotations)) + for k := range m.Annotations { + keysForAnnotations = append(keysForAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + for iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- { + v := m.Annotations[string(keysForAnnotations[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForAnnotations[iNdEx]) + copy(dAtA[i:], keysForAnnotations[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Labels) > 0 { + keysForLabels := make([]string, 0, len(m.Labels)) + for k := range m.Labels { + keysForLabels = append(keysForLabels, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + for iNdEx := len(keysForLabels) - 1; iNdEx >= 0; iNdEx-- { + v := m.Labels[string(keysForLabels[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForLabels[iNdEx]) + copy(dAtA[i:], keysForLabels[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForLabels[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *AnalysisRunSpec) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7675,6 +7781,16 @@ func (m *RolloutAnalysis) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.AnalysisRunMetadata.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a if len(m.MeasurementRetention) > 0 { for iNdEx := len(m.MeasurementRetention) - 1; iNdEx >= 0; iNdEx-- { { @@ -9877,6 +9993,31 @@ func (m *AnalysisRunList) Size() (n int) { return n } +func (m *AnalysisRunMetadata) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Labels) > 0 { + for k, v := range m.Labels { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if len(m.Annotations) > 0 { + for k, v := range m.Annotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + return n +} + func (m *AnalysisRunSpec) Size() (n int) { if m == nil { return 0 @@ -11276,6 +11417,8 @@ func (m *RolloutAnalysis) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + l = m.AnalysisRunMetadata.Size() + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -12103,6 +12246,37 @@ func (this *AnalysisRunList) String() string { }, "") return s } +func (this *AnalysisRunMetadata) String() string { + if this == nil { + return "nil" + } + keysForLabels := make([]string, 0, len(this.Labels)) + for k := range this.Labels { + keysForLabels = append(keysForLabels, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + mapStringForLabels := "map[string]string{" + for _, k := range keysForLabels { + mapStringForLabels += fmt.Sprintf("%v: %v,", k, this.Labels[k]) + } + mapStringForLabels += "}" + keysForAnnotations := make([]string, 0, len(this.Annotations)) + for k := range this.Annotations { + keysForAnnotations = append(keysForAnnotations, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + mapStringForAnnotations := "map[string]string{" + for _, k := range keysForAnnotations { + mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) + } + mapStringForAnnotations += "}" + s := strings.Join([]string{`&AnalysisRunMetadata{`, + `Labels:` + mapStringForLabels + `,`, + `Annotations:` + mapStringForAnnotations + `,`, + `}`, + }, "") + return s +} func (this *AnalysisRunSpec) String() string { if this == nil { return "nil" @@ -13162,6 +13336,7 @@ func (this *RolloutAnalysis) String() string { `Args:` + repeatedStringForArgs + `,`, `DryRun:` + repeatedStringForDryRun + `,`, `MeasurementRetention:` + repeatedStringForMeasurementRetention + `,`, + `AnalysisRunMetadata:` + strings.Replace(strings.Replace(this.AnalysisRunMetadata.String(), "AnalysisRunMetadata", "AnalysisRunMetadata", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -14386,27 +14561,146 @@ func (m *AnalysisRunArgument) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValueFrom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ValueFrom == nil { + m.ValueFrom = &ArgumentValueFrom{} + } + if err := m.ValueFrom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnalysisRunList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisRunList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Value = string(dAtA[iNdEx:postIndex]) + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ValueFrom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14433,10 +14727,8 @@ func (m *AnalysisRunArgument) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ValueFrom == nil { - m.ValueFrom = &ArgumentValueFrom{} - } - if err := m.ValueFrom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Items = append(m.Items, AnalysisRun{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -14461,7 +14753,7 @@ func (m *AnalysisRunArgument) Unmarshal(dAtA []byte) error { } return nil } -func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { +func (m *AnalysisRunMetadata) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14484,15 +14776,15 @@ func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AnalysisRunList: wiretype end group for non-group") + return fmt.Errorf("proto: AnalysisRunMetadata: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AnalysisRunList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AnalysisRunMetadata: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14519,13 +14811,107 @@ func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if m.Labels == nil { + m.Labels = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } + m.Labels[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14552,10 +14938,103 @@ func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, AnalysisRun{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if m.Annotations == nil { + m.Annotations = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } + m.Annotations[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -26312,6 +26791,39 @@ func (m *RolloutAnalysis) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnalysisRunMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.AnalysisRunMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index 30e6874d3c..186c4ccc41 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -101,6 +101,17 @@ message AnalysisRunList { repeated AnalysisRun items = 2; } +// AnalysisRunMetadata extra labels to add to the AnalysisRun +message AnalysisRunMetadata { + // Labels Additional labels to add to the AnalysisRun + // +optional + map labels = 1; + + // Annotations additional annotations to add to the AnalysisRun + // +optional + map annotations = 2; +} + // AnalysisRunSpec is the spec for a AnalysisRun resource message AnalysisRunSpec { // Metrics contains the list of metrics to query as part of an analysis run @@ -1154,6 +1165,10 @@ message RolloutAnalysis { // +patchStrategy=merge // +optional repeated MeasurementRetention measurementRetention = 4; + + // AnalysisRunMetadata labels and annotations that will be added to the AnalysisRuns + // +optional + optional AnalysisRunMetadata analysisRunMetadata = 5; } // RolloutAnalysisBackground defines a template that is used to create a background analysisRun diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index 6cd83f8ed1..d857f05559 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -36,6 +36,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRun": schema_pkg_apis_rollouts_v1alpha1_AnalysisRun(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunArgument": schema_pkg_apis_rollouts_v1alpha1_AnalysisRunArgument(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunList": schema_pkg_apis_rollouts_v1alpha1_AnalysisRunList(ref), + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunMetadata": schema_pkg_apis_rollouts_v1alpha1_AnalysisRunMetadata(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunSpec": schema_pkg_apis_rollouts_v1alpha1_AnalysisRunSpec(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunStatus": schema_pkg_apis_rollouts_v1alpha1_AnalysisRunStatus(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunStrategy": schema_pkg_apis_rollouts_v1alpha1_AnalysisRunStrategy(ref), @@ -388,6 +389,51 @@ func schema_pkg_apis_rollouts_v1alpha1_AnalysisRunList(ref common.ReferenceCallb } } +func schema_pkg_apis_rollouts_v1alpha1_AnalysisRunMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "AnalysisRunMetadata extra labels to add to the AnalysisRun", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "labels": { + SchemaProps: spec.SchemaProps{ + Description: "Labels Additional labels to add to the AnalysisRun", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "annotations": { + SchemaProps: spec.SchemaProps{ + Description: "Annotations additional annotations to add to the AnalysisRun", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + func schema_pkg_apis_rollouts_v1alpha1_AnalysisRunSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -3518,11 +3564,18 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutAnalysis(ref common.ReferenceCallb }, }, }, + "analysisRunMetadata": { + SchemaProps: spec.SchemaProps{ + Description: "AnalysisRunMetadata labels and annotations that will be added to the AnalysisRuns", + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunMetadata"), + }, + }, }, }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunArgument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MeasurementRetention", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutAnalysisTemplate"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunArgument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunMetadata", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MeasurementRetention", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutAnalysisTemplate"}, } } @@ -3607,6 +3660,13 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutAnalysisBackground(ref common.Refe }, }, }, + "analysisRunMetadata": { + SchemaProps: spec.SchemaProps{ + Description: "AnalysisRunMetadata labels and annotations that will be added to the AnalysisRuns", + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunMetadata"), + }, + }, "startingStep": { SchemaProps: spec.SchemaProps{ Description: "StartingStep indicates which step the background analysis should start on If not listed, controller defaults to 0", @@ -3618,7 +3678,7 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutAnalysisBackground(ref common.Refe }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunArgument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MeasurementRetention", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutAnalysisTemplate"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunArgument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunMetadata", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MeasurementRetention", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutAnalysisTemplate"}, } } diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index 0e5c192be1..a3804ccddd 100755 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -578,6 +578,16 @@ type PodTemplateMetadata struct { Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,2,rep,name=annotations"` } +// AnalysisRunMetadata extra labels to add to the AnalysisRun +type AnalysisRunMetadata struct { + // Labels Additional labels to add to the AnalysisRun + // +optional + Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,1,rep,name=labels"` + // Annotations additional annotations to add to the AnalysisRun + // +optional + Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,2,rep,name=annotations"` +} + // ReplicaSetSpecRef defines which RS that the experiment's template will use. type ReplicaSetSpecRef string @@ -701,6 +711,9 @@ type RolloutAnalysis struct { // +patchStrategy=merge // +optional MeasurementRetention []MeasurementRetention `json:"measurementRetention,omitempty" patchStrategy:"merge" patchMergeKey:"metricName" protobuf:"bytes,4,rep,name=measurementRetention"` + // AnalysisRunMetadata labels and annotations that will be added to the AnalysisRuns + // +optional + AnalysisRunMetadata AnalysisRunMetadata `json:"analysisRunMetadata,omitempty" protobuf:"bytes,5,opt,name=analysisRunMetadata"` } type RolloutAnalysisTemplate struct { diff --git a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go index c787ce9216..e9f7e9a05e 100644 --- a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go @@ -172,6 +172,36 @@ func (in *AnalysisRunList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AnalysisRunMetadata) DeepCopyInto(out *AnalysisRunMetadata) { + *out = *in + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRunMetadata. +func (in *AnalysisRunMetadata) DeepCopy() *AnalysisRunMetadata { + if in == nil { + return nil + } + out := new(AnalysisRunMetadata) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AnalysisRunSpec) DeepCopyInto(out *AnalysisRunSpec) { *out = *in @@ -1966,6 +1996,7 @@ func (in *RolloutAnalysis) DeepCopyInto(out *RolloutAnalysis) { *out = make([]MeasurementRetention, len(*in)) copy(*out, *in) } + in.AnalysisRunMetadata.DeepCopyInto(&out.AnalysisRunMetadata) return } diff --git a/rollout/analysis.go b/rollout/analysis.go index 339aa3fec6..912237d9c3 100644 --- a/rollout/analysis.go +++ b/rollout/analysis.go @@ -457,9 +457,15 @@ func (c *rolloutContext) newAnalysisRunFromRollout(rolloutAnalysis *v1alpha1.Rol return nil, err } run.Labels = labels + for k, v := range rolloutAnalysis.AnalysisRunMetadata.Labels { + run.Labels[k] = v + } run.Annotations = map[string]string{ annotations.RevisionAnnotation: revision, } + for k, v := range rolloutAnalysis.AnalysisRunMetadata.Annotations { + run.Annotations[k] = v + } run.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(c.rollout, controllerKind)} return run, nil } diff --git a/rollout/analysis_test.go b/rollout/analysis_test.go index 87a30123ff..f6fa6c4bf2 100644 --- a/rollout/analysis_test.go +++ b/rollout/analysis_test.go @@ -2336,3 +2336,54 @@ func TestAbortRolloutOnErrorPostPromotionAnalysis(t *testing.T) { newConditions := updateConditionsPatch(*r2, progressingFalseAborted) assert.Equal(t, calculatePatch(r2, fmt.Sprintf(expectedPatch, now, newConditions, conditions.RolloutAbortedReason, progressingFalseAborted.Message)), patch) } + +func TestCreateAnalysisRunWithCustomAnalysisRunMetadata(t *testing.T) { + f := newFixture(t) + defer f.Close() + + steps := []v1alpha1.CanaryStep{{ + SetWeight: int32Ptr(10), + }} + at := analysisTemplate("bar") + r1 := newCanaryRollout("foo", 10, nil, steps, pointer.Int32Ptr(0), intstr.FromInt(0), intstr.FromInt(1)) + r2 := bumpVersion(r1) + ar := analysisRun(at, v1alpha1.RolloutTypeBackgroundRunLabel, r2) + r2.Spec.Strategy.Canary.Analysis = &v1alpha1.RolloutAnalysisBackground{ + RolloutAnalysis: v1alpha1.RolloutAnalysis{ + Templates: []v1alpha1.RolloutAnalysisTemplate{ + { + TemplateName: at.Name, + }, + }, + AnalysisRunMetadata: v1alpha1.AnalysisRunMetadata{ + Annotations: map[string]string{"testAnnotationKey": "testAnnotationValue"}, + Labels: map[string]string{"testLabelKey": "testLabelValue"}, + }, + }, + } + + rs1 := newReplicaSetWithStatus(r1, 10, 10) + rs2 := newReplicaSetWithStatus(r2, 0, 0) + f.kubeobjects = append(f.kubeobjects, rs1, rs2) + f.replicaSetLister = append(f.replicaSetLister, rs1, rs2) + rs1PodHash := rs1.Labels[v1alpha1.DefaultRolloutUniqueLabelKey] + rs2PodHash := rs2.Labels[v1alpha1.DefaultRolloutUniqueLabelKey] + + r2 = updateCanaryRolloutStatus(r2, rs1PodHash, 10, 0, 10, false) + _, _ = newProgressingCondition(conditions.ReplicaSetUpdatedReason, rs2, "") + + f.rolloutLister = append(f.rolloutLister, r2) + f.analysisTemplateLister = append(f.analysisTemplateLister, at) + f.objects = append(f.objects, r2, at) + + createdIndex := f.expectCreateAnalysisRunAction(ar) + f.expectUpdateReplicaSetAction(rs2) + _ = f.expectPatchRolloutAction(r1) + + f.run(getKey(r2, t)) + createdAr := f.getCreatedAnalysisRun(createdIndex) + expectedArName := fmt.Sprintf("%s-%s-%s", r2.Name, rs2PodHash, "2") + assert.Equal(t, expectedArName, createdAr.Name) + assert.Equal(t, "testAnnotationValue", createdAr.Annotations["testAnnotationKey"]) + assert.Equal(t, "testLabelValue", createdAr.Labels["testLabelKey"]) +} diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index 4146a6b4cc..a4064899f4 100755 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -177,6 +177,25 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRun */ valueFrom?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ArgumentValueFrom; } +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunMetadata + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunMetadata { + /** + * + * @type {{ [key: string]: string; }} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunMetadata + */ + labels?: { [key: string]: string; }; + /** + * + * @type {{ [key: string]: string; }} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunMetadata + */ + annotations?: { [key: string]: string; }; +} /** * * @export @@ -1037,6 +1056,12 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnal * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis */ measurementRetention?: Array; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunMetadata} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis + */ + analysisRunMetadata?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunMetadata; } /** *